Skip to content

chore(aci): handle workflows or rules in integrations sans feature flag#106048

Merged
cathteng merged 6 commits intocathy/aci/workflow-rule-in-digestsfrom
cathy/aci/workflow-rule-integrations
Jan 12, 2026
Merged

chore(aci): handle workflows or rules in integrations sans feature flag#106048
cathteng merged 6 commits intocathy/aci/workflow-rule-in-digestsfrom
cathy/aci/workflow-rule-integrations

Conversation

@cathteng
Copy link
Copy Markdown
Contributor

@cathteng cathteng commented Jan 9, 2026

Update integrations code to handle using legacy_rule_id or workflow_id depending on if it exists. We prefer using legacy_rule_id if available, otherwise try workflow_id, then finally use rule.id

Builds on #105999

@github-actions github-actions Bot added the Scope: Backend Automatically applied to PRs that change backend components label Jan 9, 2026
@cathteng cathteng changed the title chore(aci): handle workflows or rules in digests sans feature flag chore(aci): handle workflows or rules in integrations sans feature flag Jan 10, 2026
)
)
key, value = get_rule_or_workflow_id(rules[0])
if key == "workflow_id":
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is where variant types would be nice..

it could be like

match get_rule_or_workflow_id(rules[0]):
     case WorkflowId(value):
           rule_url = ..
     case LegacyRuleId(_):
           rule_url = build_rule_url(...)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is supposed to be the workflow_id?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the rule_id is set to whatever value we end up picking in the logic above (it used to work like that and just keeping it for now)

@cathteng cathteng requested a review from kcons January 12, 2026 23:15

rule_id = None
rule_environment_id = None
key = "legacy_rule_id"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe 'rule_id_type'? "key" is pretty vague.



def get_rule_or_workflow_id(rule: Rule) -> tuple[str, str]:
def get_rule_or_workflow_id(rule: Rule) -> tuple[RuleIdType, str]:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't tuple[RuleIdType, int] be more accurate and cleaner here?

obj: Group | GroupEvent = self.event if self.event is not None else self.group
rule_id = None
rule_environment_id = None
key: RuleIdType = "legacy_rule_id"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thought: should we have a DEFAULT_RULE_ID_TYPE const to avoid needing to annotate and so this choice is uniform, obvious, and easy to change?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree, we should have an easy way to flip the default after GA to always read the workflow id

@cathteng cathteng merged commit c91f208 into cathy/aci/workflow-rule-in-digests Jan 12, 2026
60 of 61 checks passed
@cathteng cathteng deleted the cathy/aci/workflow-rule-integrations branch January 12, 2026 23:36
@github-actions github-actions Bot locked and limited conversation to collaborators Jan 28, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants