Skip to content

feat(search): support workflowsummaries and workflowexecutions indices - #268

Open
ajdunker wants to merge 1 commit into
sailpoint-oss:mainfrom
ajdunker:feat/search-workflow-indices
Open

ajdunker wants to merge 1 commit into
sailpoint-oss:mainfrom
ajdunker:feat/search-workflow-indices

Conversation

@ajdunker

@ajdunker ajdunker commented Oct 22, 2026 •

Copy link
Copy Markdown

What

Adds support for the workflowsummaries and workflowexecutions indices to sail search query, fixing #267.

  • ParseIndices now accepts workflowsummaries and workflowexecutions. The golang-sdk search.Index type is a plain string (its generated comment notes "Additional values may be added in the future without notice"), so these are handled with direct casts until the SDK enum gains constants. Unknown indices still fail fast locally with index provided is invalid.
  • New WorkflowSummary and WorkflowExecution result types (per the searchable workflow history fields: step events with workflowExecutionId, eventId, stepName/task/input/result/error under a permissive attributes map; executions with status, startTime, closeTime, requestId, failureType, failureMessage, owner, and trigger).
  • _type dispatch for workflowsummary / workflowexecution added to both PerformSearch and PerformSearchWithLimit, so results are decoded instead of silently dropped.
  • IterateIndices saves the new result sets alongside the existing six.
  • --indices flag help lists all eight valid values.

Why

Closes #267 — workflow history is searchable in these two indices but the CLI rejected them, leaving sail api post /v2025/search as the only workaround (which skips CLI paging and result handling).

Validation

  • go build ./... — clean
  • go vet ./internal/search/... ./cmd/search/... — clean
  • go test -count=1 ./cmd/search/... — existing tests pass
  • Live: sail search query against a tenant with --indices workflowsummaries and --indices workflowexecutions saves decoded results with all fields populated, including mixed with --indices roles

@ajdunker
ajdunker force-pushed the feat/search-workflow-indices branch 3 times, most recently from 963e352 to c97997d Compare October 22, 2026 22:17
@ajdunker

Copy link
Copy Markdown
Author

Live test results

Built from c97997d (go build -o sail .) and run against a non-production Identity Security Cloud tenant. All commands are read-only searches, run one at a time. The query filtered on one event-triggered workflow that has both completed and failed runs.

# Command Result
1 --indices workflowsummaries ✅ 693 step events saved. eventId decodes as an integer. All WorkflowExecutionStarted events (25/25) keep attributes.input
2 --indices workflowexecutions ✅ 25 executions saved. startTime, closeTime, requestId, owner and trigger are populated on all 25. failureMessage is set on all 16 failed runs
3 --indices workflowsummaries --indices workflowexecutions ✅ Writes both result files, with counts matching runs 1 and 2
4 --indices roles --indices workflowexecutions ✅ Existing index still works alongside a new one (2 roles; no execution matches, so no extra file)
5 workflowexecutions with status:Failed and --sort -startTime ✅ 16 results, all Failed, newest first
6 --indices workflowhistory (invalid) ✅ Still rejected locally with index provided is invalid
7 --indices events (existing index) ✅ No regression: 10,000 events saved

Notes:

  • The only step events without attributes are TimerStarted/TimerFired (10/693). The API returns no attributes for those event types.
  • Before the second commit, run 1 failed with 'EventId' expected type 'string', got unconvertible type 'float64'. Run 2 saved empty start/close values, because the API returns startTime/closeTime.

@ajdunker
ajdunker force-pushed the feat/search-workflow-indices branch 2 times, most recently from c97997d to ad609b4 Compare October 22, 2026 22:31
@ajdunker
ajdunker force-pushed the feat/search-workflow-indices branch from ad609b4 to c87f2c7 Compare October 22, 2026 22:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Support the workflowsummaries and workflowexecutions indices in sail search query

1 participant