[ESS DA GA] Connect Workday Skill - #290
Open
Surendra Goutham (is-goutham) wants to merge 9 commits into
Open
Surendra Goutham (is-goutham) wants to merge 9 commits into
Surendra Goutham (is-goutham) wants to merge 9 commits into
Conversation
Copilot started reviewing on behalf of
Surendra Goutham (is-goutham)
September 17, 2026 21:52
View session
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Lifecycle regression handling, routing, readiness persistence, and Dataverse authorization contain blocking correctness and security issues.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds architecture-aware /connect workday support for ESS Declarative Agents and safer per-agent CEA lifecycle handling.
Changes:
- Adds DA HR Workday setup, validation, installation, and authorization workflows.
- Introduces resumable CEA lifecycle state, scoped validation, rollback, and publishing approval.
- Expands FlightCheck and automated tests for DA packages and active-agent scoping.
File summaries
| File | Description |
|---|---|
tests/setup/test_setup_router.py |
Tests architecture-aware routing. |
tests/scripts/test_install_workday_da_extension.py |
Tests DA package installation. |
tests/scripts/test_checkpoint.py |
Tests named scoped rollback. |
tests/flightcheck/test_cli.py |
Tests DA scope isolation. |
tests/flightcheck/test_cli_single_checkpoint.py |
Tests config overlays and agent scoping. |
tests/flightcheck/checks/test_workday_extension.py |
Tests active-agent validation. |
tests/flightcheck/checks/test_workday_da.py |
Tests DA package checks. |
tests/flightcheck/checks/test_entra_app.py |
Tests architecture-specific Entra hints. |
solutions/ess-maker-skills/src/skills/setup/workday-da/verify-connection.md |
Defines final runtime validation. |
solutions/ess-maker-skills/src/skills/setup/workday-da/tasks.md |
Defines the DA checklist. |
solutions/ess-maker-skills/src/skills/setup/workday-da/SKILL.md |
Orchestrates DA Workday setup. |
solutions/ess-maker-skills/src/skills/setup/workday-da/shared/permission-gate.md |
Defines shared role gates. |
solutions/ess-maker-skills/src/skills/setup/workday-da/shared/connection-fields.md |
Defines connection-field validation. |
solutions/ess-maker-skills/src/skills/setup/workday-da/shared/config-schema.md |
Documents DA state schema. |
solutions/ess-maker-skills/src/skills/setup/workday-da/shared/checklist-updater.md |
Persists checklist progress. |
solutions/ess-maker-skills/src/skills/setup/workday-da/provision-entra-app.md |
Guides Entra provisioning. |
solutions/ess-maker-skills/src/skills/setup/workday-da/install-extension.md |
Guides DA package installation. |
solutions/ess-maker-skills/src/skills/setup/workday-da/configure-tenant.md |
Guides Workday tenant setup. |
solutions/ess-maker-skills/src/skills/setup/workday-da/configure-power-platform.md |
Guides Power Platform integration. |
solutions/ess-maker-skills/src/skills/connect/workday/SKILL.md |
Starts installed CEA lifecycle. |
solutions/ess-maker-skills/src/skills/connect/workday/contract.json |
Defines Workday lifecycle phases. |
solutions/ess-maker-skills/src/skills/connect/workday/actions/wire-user-context-redirect.md |
Wires and publishes user context. |
solutions/ess-maker-skills/src/skills/connect/steps.md |
Documents architecture routing. |
solutions/ess-maker-skills/src/skills/connect/step1.md |
Implements integration routing. |
solutions/ess-maker-skills/src/skills/connect/SKILL.md |
Documents connect dispatch. |
solutions/ess-maker-skills/src/skills/connect/shared/lifecycle-runner.md |
Implements resumable lifecycles. |
solutions/ess-maker-skills/src/skills/connect/shared/lifecycle-contract-schema.md |
Documents lifecycle contracts. |
solutions/ess-maker-skills/scripts/install_workday_da_extension.py |
Installs the DA extension package. |
solutions/ess-maker-skills/scripts/flightcheck/registry.py |
Registers the DA checkpoint. |
solutions/ess-maker-skills/scripts/flightcheck/cli.py |
Adds config and agent arguments. |
solutions/ess-maker-skills/scripts/flightcheck/checks/workday_tenant.py |
Generalizes provider config messaging. |
solutions/ess-maker-skills/scripts/flightcheck/checks/workday_extension.py |
Scopes checks to one agent. |
solutions/ess-maker-skills/scripts/flightcheck/checks/workday_da.py |
Validates DA package presence. |
solutions/ess-maker-skills/scripts/flightcheck/checks/_workday_app_assignment.py |
Isolates explicit provider overlays. |
solutions/ess-maker-skills/scripts/checkpoint.py |
Adds named, path-scoped restoration. |
solutions/ess-maker-skills/scripts/alm/README.md |
Documents target-environment authorization. |
solutions/ess-maker-skills/scripts/alm/Enable-CosmosDAFlowAuthorization.ps1 |
Provisions Dataverse flow authorization. |
solutions/ess-maker-skills/README.md |
Documents DA Workday support. |
Review details
Suppressed comments (1)
solutions/ess-maker-skills/scripts/alm/Enable-CosmosDAFlowAuthorization.ps1:278
- When the lookup returns multiple teams, this prints
[FAIL]but leaves$oktrue. If the first team has the requested shares, the script exits 0 even though the documented success condition requires exactly one team and Flow-RP will choose ambiguously. Mark every count other than one as a failed verification.
} else {
Write-Fail "GetTeamsForBotId returned $($teamCheck.Count) teams; Flow-RP takes the first and expects exactly one"
if ($teamCheck.Count -eq 0) { $ok = $false }
- Files reviewed: 38/38 changed files
- Comments generated: 10
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+109
to
+110
| if ($null -ne $Body) { | ||
| $json = if ($Body -is [string]) { $Body } else { $Body | ConvertTo-Json -Depth 10 } |
Contributor
Author
There was a problem hiding this comment.
Kept the Microsoft PowerShell file unchanged; setup now blocks missing authorization/team creation until a corrected script is available.
…rkday as reference provider - src/skills/connect/shared/lifecycle-contract-schema.md: canonical JSON contract shape a provider supplies (phases, checkpoint gates, role gates, action fragments for mutating steps, pending-scoped-profile annotations). - src/skills/connect/shared/lifecycle-runner.md: the single provider-agnostic routine that shows the plan, collects attestation, live-re-verifies any previously-done phase before trusting it, runs each phase's FlightCheck checkpoints, renders results via the existing checklist-updater.md U.0/U.0a routine, and gates mutating phases through the existing permission-gate.md. Contains zero Workday-specific (or any provider-specific) logic. - src/skills/connect/workday/contract.json: Workday's contract - discovery (WD-PKG-001, DV-CONN-001, WD-CONN-012), agent-wiring (WD-REST-002, a programmatic Environment Maker gate reusing the exact Dataverse security-role query already proven in setup/workday/install-workday-extension-pack.md P5.0), validation (WD-RUN-001). Not-yet-available FlightCheck scoped connect profiles (ADO 7865450) are recorded as a pending annotation only - never fabricated as a passing result. - src/skills/connect/workday/actions/wire-user-context-redirect.md: the one bespoke mutation this provider needs - wiring the agent's User Context topic redirect, with checkpoint/scan/dry-run/push discipline. - src/skills/connect/workday/SKILL.md: thin entry point that hands off to the generic runner. - src/skills/connect/step1.md + SKILL.md: Workday routing now checks whether an extension is already installed anywhere in the environment (live WD-PKG-001 check) before deciding between this lightweight lifecycle and the full setup orchestrator; an already-completed lifecycle resumes through the same live re-verification path rather than a separate fast-path check. A future ISV (ServiceNow, SuccessFactors, ...) reuses this same runner by authoring its own contract.json + action fragments - no changes to the runner itself. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
pendingScopedProfile.tracking referenced an internal Azure DevOps work item ID inside contract.json / the schema reference doc - meaningless to anyone outside this team and unrelated to how the runner behaves. Dropped the whole unused pendingScopedProfile field (the runner never read it); kept the substantive engineering point - that a contract lists individual checkpoints today until FlightCheck ships a consolidated profile - as plain prose in the schema doc, with no internal ID. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds /connect workday support for ESS DA agents, including Workday extension package detection and installation, Entra and tenant configuration guidance, resumable validation, and HR/IT multi-vertical support. It also introduces architecture-aware routing and safer per-agent lifecycle handling for existing CEA Workday integrations.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Surendra Goutham (is-goutham)
force-pushed
the
users/gouthams/connect-isv-skill-workday
branch
from
September 21, 2026 18:27
011c29b to
e126ce5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds /connect workday support for ESS DA agents, including architecture-aware routing, Workday extension package installation for HR and IT, Entra and Workday tenant configuration guidance, resumable validation, and honest configuration status reporting.
Also introduces safer per-agent lifecycle handling for existing CEA Workday integrations, including scoped validation, explicit publish approval, and rollback support.
Related issue
Type of change
• Bug fix (non-breaking change which fixes an issue)
✓ New feature (non-breaking change which adds functionality)
• Breaking change (fix or feature that would cause existing functionality to not work as expected)
✓ Documentation update
✓ Refactor / cleanup
Testing
• Focused Connect Workday and FlightCheck tests: 96 passed
• Full test suite: 2,344 passed, 14 skipped
• The remaining 11 installer-related failures are pre-existing and reproducible on main .
Checklist
✓ My code follows the existing style
✓ I have added/updated tests where applicable
✓ I have updated documentation as needed
Static validation (samples/ only)