feat: add Workday integration solution - #235
Merged
Merged
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…isting config Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…eploy setup Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tegration solution
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- git mv cortexapps_cli/solutions/workday-integration → workday - Update solution_tag, backup_dir, and docstring in setup.py - Update ownershipReportUrl in configuration.json - Update CLI commands in README.md - Add Silicon Valley attribution to README description text - Update all workday-integration references in test_workday_setup.py Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix configuration.json: add teamId/teamName at root of reportMappingV2 (required by Cortex API for ONE_EMPLOYEE_ONE_TEAM type) - Add CLI-equivalent echo before API call in setup.py for transparency - Reorder README: move Org Hierarchy before Quick Start so Data Model menu shows the hierarchy diagram instead of install commands - Suppress "0 entities imported" line when no entities were imported - Change "post-install setup script" -> "setup script" across all solution SETUP_DESCRIPTIONs and the fallback in solutions.py Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…port instructions - Replace pied-piper-hierarchy.json with pied-piper-supervisory-org.json (uses childHierarchyColumn/parentHierarchyColumn for hierarchy linkage) - Update configuration.json: supervisory org field mapping, point ownershipReportUrl to GitHub Pages for local testing (will switch to raw.githubusercontent.com after merge) - Add _validate_integration() step that calls POST /api/v1/workday/configuration/validate and warns on failure without aborting - Update post_steps() instructions: Catalog → All Entities → Import Entities → Workday → Sync Entities → Next Step - Update tests for new data shape and validation step Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…alidate response
- Add mark_undone() to SolutionSetup base class so step state can be
cleared when the underlying resource is deleted
- Call mark_undone("configure") after deleting existing Workday config,
so the configure step isn't skipped on the next run
- Fix _validate_integration(): validate endpoint always returns HTTP 200;
must check configurations[0].isValid in the JSON body and raise on false
- Update tests for all three fixes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The already_done("configure") cache can go stale if the Workday
integration is deleted outside of the setup script. The check step
now calls mark_undone("configure") on 404 (no integration on server),
ensuring the configure step always runs when there's nothing to skip.
Combined with the previous fix (mark_undone after user-confirmed delete),
all paths are now covered:
- No integration on server (404) → mark_undone → configure runs
- Integration found, user deletes → mark_undone → configure runs
- Integration found, user keeps → state unchanged → configure skips
Also: update README Data Model section with architecture flow diagram
showing Workday Report → Cortex Integration → Team Catalog alongside
the Pied Piper org hierarchy.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
parent[fieldOnParentNode] must equal child[fieldOnChildNode] for Cortex to link teams in a hierarchy. The columns were reversed: fieldOnParentNode = parentHierarchyColumn (parent's own SUP ID) fieldOnChildNode = childHierarchyColumn (child's pointer to parent SUP ID) With the previous (wrong) values, Erlich's childHierarchyColumn (null) never matched any child's parentHierarchyColumn, so only the root team was imported.
…ormat - Workteam_Group is now a nested array of objects (not flat fields) - Root team uses parentTeamId: "NONE" (string, not null) matching cortex-cx - Team_Managed only present for managers - Managers_Email field added for reporting chain - configuration.json updated to ONE_EMPLOYEE_MULTIPLE_TEAMS matching cortex-cx - Tests updated for nested Workteam_Group structure Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…single code block
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.
Summary
workdayCortex CLI solution that configures the Cortex Workday integration with a sample Pied Piper org hierarchy (from the TV show Silicon Valley)Test plan
poetry run pytest tests/test_workday_setup.py tests/test_solutions_postinstall.py tests/test_setup_base.py tests/test_github_actions_setup.py -v— all 41 passcortex solutions install -s workday— installs with no entity import noisecortex solutions post-install -s workday— configures Workday integration, shows CLI-equivalent command🤖 Generated with Claude Code