[ENGCE-57552] skills(uipath-maestro-flow, uipath-platform): array filter + mandatory-filter contract#589
[ENGCE-57552] skills(uipath-maestro-flow, uipath-platform): array filter + mandatory-filter contract#589baishalighosh wants to merge 4 commits intomainfrom
Conversation
…ee authoring move [ENGCE-57552] Two coordinated doc updates aligned with the matching CLI fix in uipcli #1823 (ENGCE-57552 / RCA ENGCE-57498). uipath-maestro-flow connector-trigger/impl.md: - Drops the stale "Array-field filters are not yet supported" row from the "What NOT to generate" table — the CLI's shared JmesHelper now emits projection JMESPath for [*] field names ((tags[?@=='urgent']), (ParentFolders[?ID=='INBOX'])). - Adds a "What NOT to generate" row warning against duplicating connector-mandated event-parameter filters (Gmail folder, Slack channelId) as freeform leaves — the CLI auto-emits them from eventParameters and the freeform copy double-applies the constraint. - Trims the "How to build a filter tree from filterFields" subsection down to its surface-specific Step 1 (flow registry get) plus a link out to the canonical procedure now hosted on uipath-platform. uipath-platform integration-service/triggers.md: - Adds a new "Building Filter Trees from filterFields" section between Response Fields and Webhook URL Retrieval. Carries the 6-step procedure (operator selection → leaf composition → value wrapping → empty-filterFields fallback), the mandatory-filter pipeline contract (eventParameters → CLI buildMandatoryFilterExpression → essentialConfiguration.mandatoryFilterExpression → SW translator combinedFilterExpression), and array-shaped field projection emission. Source step is intentionally surface-specific and lives in the consuming skill (e.g. maestro-flow's flow registry get). The matching skill smoke test (trigger_with_array_filter.yaml) ships in a separate PR. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Claude finished @baishalighosh's task in 2m 26s —— View job PR Review:
|
| Area | Status | Notes |
|---|---|---|
| Frontmatter | OK | No frontmatter changes in this PR |
| E2E Tests | OK | Doc-only change; PR description notes the smoke test ships separately |
| Skill Body | OK | SKILL.md not modified |
| References & Assets | Issue | Cross-skill link from uipath-platform → uipath-maestro-flow (line 134 of triggers.md) |
| Repo Hygiene | OK | No secrets, no personal paths, CODEOWNERS already covers both paths, changes scoped to the two relevant files |
Issues for Manual Review
- CLI accuracy: The mandatory-filter pipeline description (
buildMandatoryFilterExpression→essentialConfiguration.mandatoryFilterExpression→combinedFilterExpression) matches the PR description's architecture context, but I cannot verify it matches the actual CLI implementation in uipcli #1823. - Array projection syntax: The JMESPath examples (
(tags[?@=='urgent']),(ParentFolders[?ID=='INBOX'])) should be verified against theJmesHelperoutput in the CLI to ensure exact syntax parity. - Merge ordering: PR description says to merge only after uipcli #1823 lands — reviewer should verify that dependency before approving.
Conclusion
Good documentation refactor that correctly extracts the filter-authoring procedure to the shared platform skill and adds valuable mandatory-filter / array-projection guidance. Two items to address before merge:
- High: Remove the cross-skill back-link from
uipath-platform/triggers.mdline 134 touipath-maestro-flow— replace with a generic reference to "the consuming skill's trigger reference." - Medium: Confirm the Step 3
AskUserQuestiondropdown guidance removal (impl.md line 134) is intentional — if not, restore it.
…552] SW persists the AND-joined `combinedFilterExpression` at top-level `inputs.detail.filterExpression` and classifies `mandatoryFilterExpression` as optional (TRIGGER_ACTIVITY_ESSENTIAL_PROPERTIES = base + 'filter' only). Earlier docs claimed the mandatory clause lands on `essentialConfiguration.mandatoryFilterExpression` — that diverged from SW and matched a now-fixed CLI behavior. Update both the platform-level reference (triggers.md "Mandatory filter parameters") and the maestro-flow connector-trigger impl anti-pattern row to describe the corrected contract. Pairs with cli PR #1833. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add documentation for ENGCE-57498: mandatory filter expression generation and combination logic in connector trigger configuration. Explains: - How required event parameters generate mandatory filters - AND combination logic with user-defined filters - Gmail Email Received example with ParentFolders - Where mandatory expression is persisted (essentialConfiguration) Example scenarios: - Both filters: "(ParentFolders[?ID=='INBOX']) && ((subject contains 'urgent'))" - Mandatory only: "(ParentFolders[?ID=='INBOX'])" - User only: "((subject contains 'urgent'))" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
6d9b912 to
00ede33
Compare
Correct the documentation to state that mandatoryFilterExpression is NOT stored in essentialConfiguration. It's computed from event parameters at configure-time and combined with user filters to produce detail.filterExpression, but not persisted separately. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
00ede33 to
3f8fead
Compare
Jira: ENGCE-57552 —
[Skills][CLI] Add support for array filter in triggerRCA: ENGCE-57498 — Gmail Email Received trigger returns 400 on Debug (Confluence)
Companion PR: skills #N — array filter smoke test (the matching
trigger_with_array_filter.yamleval ships separately so reviewers can land docs and tests independently).Expected
No user configured filters
filterExpression: "(ParentFolders[?ID=='INBOX'])"
Actual agent generated

Both work as expected