cortexapps-cli 1.32.0__tar.gz → 1.34.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/PKG-INFO +1 -1
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/solutions.py +3 -3
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/_lib/setup_base.py +5 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/github-actions-deploy/setup.py +1 -3
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/harness-deploy/_templates/trigger-harness-deploy.yaml +1 -1
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/harness-deploy/setup.py +1 -1
- cortexapps_cli-1.34.0/cortexapps_cli/solutions/workday/README.md +137 -0
- cortexapps_cli-1.34.0/cortexapps_cli/solutions/workday/data/configuration.json +31 -0
- cortexapps_cli-1.34.0/cortexapps_cli/solutions/workday/data/pied-piper-supervisory-org.json +113 -0
- cortexapps_cli-1.34.0/cortexapps_cli/solutions/workday/setup.py +145 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/pyproject.toml +1 -1
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/LICENSE +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/README.rst +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/__init__.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/cli.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/command_options.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/ai_skills.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/api_keys.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/audit_logs.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/backup.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/backup_commands/cortex_export.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/catalog.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/custom_data.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/custom_events.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/custom_metrics.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/dependencies.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/deploys.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/discovery_audit.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/docs.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/entity_relationship_types.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/entity_relationships.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/entity_types.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/gitops_logs.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/groups.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/initiatives.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/apiiro.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/argocd.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/aws.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/azure_active_directory.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/azure_devops.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/azure_resources.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/bamboohr.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/bitbucket.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/bugsnag.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/buildkite.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/checkmarx_sast.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/circleci.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/clickup.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/codecov.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/coralogix.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/datadog.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/dynatrace.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/firehydrant.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/github.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/gitlab.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/harness.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/incidentio.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/instana.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/jenkins.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/jira.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/launchdarkly.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/mend_sast.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/mend_sca.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/newrelic.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/okta.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/opsgenie.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/pagerduty.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/prometheus.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/rollbar.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/rootly.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/semgrep.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/sentry.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/servicenow.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/servicenow_cloud_observability.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/snyk.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/sonarqube.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/splunk_observability_cloud.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/splunk_on_call.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/sumologic.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/veracode.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/wiz.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/workday.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/xmatters.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/ip_allowlist.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/on_call.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/packages.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/packages_commands/go.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/packages_commands/java.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/packages_commands/node.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/packages_commands/nuget.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/packages_commands/python.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/plugins.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/queries.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/rest.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/scim.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/scorecards.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/scorecards_commands/exemptions.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/secrets.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/teams.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/users.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/users_commands/roles.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/workflows.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/cortex_client.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/models/team.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/__init__.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/_lib/__init__.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-agents/README.md +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-agents/catalog/address-reviews.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-agents/catalog/audit-flags.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-agents/catalog/code-review.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-agents/catalog/fix-issue.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-agents/catalog/incident-trends.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-agents/catalog/jira-to-kb.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-agents/catalog/release-to-sha.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-agents/catalog/search-troubleshooting-kb.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-agents/catalog/simplify-test.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-agents/entity-types/ai-agent.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-agents/scorecards/ai-agent-governance.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-skills/README.md +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-skills/catalog/api-doc-sync.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-skills/catalog/changelog-writer.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-skills/catalog/docs-generator.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-skills/catalog/docs-portal.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-skills/entity-relationship-types/ai-plugin-service.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-skills/entity-relationship-types/ai-plugin-skills.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-skills/entity-relationship-types/ai-skill-service.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-skills/entity-types/ai-plugin.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-skills/entity-types/ai-skill.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-skills/scorecards/ai-skills-quality.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/.github/workflows/sync-claude-spend.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/README.md +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/catalog/employee-alice-chen.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/catalog/employee-bob-martinez.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/catalog/employee-carol-kim.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/catalog/employee-david-osei.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/catalog/employee-emma-johnson.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/catalog/team-data.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/catalog/team-engineering.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/catalog/team-frontend.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/catalog/team-platform.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/custom-metrics/ai-spend.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/entity-relationship-types/team-member.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/entity-types/employee.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/plugins/team-ai-spend.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/scorecards/ai-spend-scorecard.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/ai-spend/scripts/sync-claude-spend.py +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/.github/workflows/cortex-service-version.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/README.md +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/api-gateway-3.0.1.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/api-gateway-3.1.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/api-gateway-3.1.1.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/api-gateway.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/auth-2.1.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/auth-2.1.1.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/auth-2.2.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/auth.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/aws-dev-us-west-2.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/billing-1.1.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/billing-1.2.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/billing.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/cart-1.0.2.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/cart.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/checkout-2.2.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/checkout-2.3.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/checkout-2.4.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/checkout.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/gcp-prod-us-east-1.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/gcp-prod-us-west-1.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/gcp-staging-us-east-1.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/notifications-1.0.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/notifications-1.0.1.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/notifications-1.1.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/notifications.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/order-service-2.0.1.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/order-service-2.1.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/order-service.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/payments-1.6.1.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/payments-1.7.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/payments-1.7.1.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/payments.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/release-2026-06-20.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/release-2026-07-01.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/release-2026-07-09.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/release-2026-07-10.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/search-4.0.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/search-4.1.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/search.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/user-service-1.2.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/user-service-1.3.0.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/catalog/user-service.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/entity-relationship-types/environments.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/entity-relationship-types/versions.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/entity-types/environment.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/entity-types/release.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/entity-types/service-version.json +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/workflows/create-environment.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/workflows/create-release.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/environments/workflows/trigger-github-release.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/github-actions-deploy/README.md +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/github-actions-deploy/_templates/cortex-async-callback.yml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/github-actions-deploy/_templates/cortex-deploy.yml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/github-actions-deploy/_templates/cortex-register-deploy.yml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/github-actions-deploy/_templates/github-actions-deploy.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/github-actions-deploy/catalog/github-actions-demo.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/github-actions-deploy/scorecards/deploy-health.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/harness-deploy/README.md +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/harness-deploy/_templates/cortex-async-callback-template.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/harness-deploy/_templates/cortex-deploy-pipeline.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/harness-deploy/_templates/cortex-record-deploy-template.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/harness-deploy/catalog/harness-demo.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/harness-deploy/scorecards/deploy-health.yaml +0 -0
- {cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/utils.py +0 -0
|
@@ -223,8 +223,8 @@ def _get_setup_description(solution_tag: str, solutions_dir: str | None = None)
|
|
|
223
223
|
"""Return the SETUP_DESCRIPTION from a solution's setup.py, or a generic fallback."""
|
|
224
224
|
module = _load_setup_module(solution_tag, solutions_dir)
|
|
225
225
|
if module:
|
|
226
|
-
return getattr(module, "SETUP_DESCRIPTION", "This solution includes a
|
|
227
|
-
return "This solution includes a
|
|
226
|
+
return getattr(module, "SETUP_DESCRIPTION", "This solution includes a setup script.")
|
|
227
|
+
return "This solution includes a setup script."
|
|
228
228
|
|
|
229
229
|
|
|
230
230
|
def _run_post_install_script(solution_tag: str, solutions_dir: str | None = None, ctx=None, no_prompt: bool = False) -> None:
|
|
@@ -700,7 +700,7 @@ def install(
|
|
|
700
700
|
if failed_m:
|
|
701
701
|
typer.echo(failed_m.group(0))
|
|
702
702
|
typer.echo(f"\n {total_imported} imported, {total_failed} failed")
|
|
703
|
-
|
|
703
|
+
elif total_imported > 0:
|
|
704
704
|
typer.echo(f" {total_imported} entities imported")
|
|
705
705
|
else:
|
|
706
706
|
typer.echo(output)
|
|
@@ -139,6 +139,11 @@ class SolutionSetup(ABC):
|
|
|
139
139
|
self._state[key] = True
|
|
140
140
|
self._save_file()
|
|
141
141
|
|
|
142
|
+
def mark_undone(self, key: str) -> None:
|
|
143
|
+
"""Clear a step's completion state (e.g., after the underlying resource is deleted)."""
|
|
144
|
+
self._state.pop(key, None)
|
|
145
|
+
self._save_file()
|
|
146
|
+
|
|
142
147
|
@abstractmethod
|
|
143
148
|
def collect_prompts(self) -> None:
|
|
144
149
|
"""Collect all user inputs upfront before executing steps."""
|
|
@@ -5,7 +5,7 @@ Run via: cortex solutions post-install -s github-actions-deploy
|
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
7
|
SETUP_DESCRIPTION = (
|
|
8
|
-
"This solution includes a
|
|
8
|
+
"This solution includes a setup script that will create a GitHub "
|
|
9
9
|
"repository, seed it with a GitHub workflow that will add a deploy to a Cortex entity, and configure the required secrets."
|
|
10
10
|
)
|
|
11
11
|
import base64
|
|
@@ -172,8 +172,6 @@ class GitHubActionsSetup(SolutionSetup):
|
|
|
172
172
|
|
|
173
173
|
if self._session_base_url:
|
|
174
174
|
self._answers["cortex_base_url"] = self._session_base_url
|
|
175
|
-
else:
|
|
176
|
-
self.prompt("cortex_base_url", "Cortex base URL", default=self._session_base_url)
|
|
177
175
|
else:
|
|
178
176
|
self.prompt(
|
|
179
177
|
"cortex_base_url",
|
|
@@ -166,7 +166,7 @@ actions:
|
|
|
166
166
|
schema:
|
|
167
167
|
type: HTTP_REQUEST_ASYNC
|
|
168
168
|
httpMethod: POST
|
|
169
|
-
url: "/v1/orgs/{{variables.harness-org}}/projects/{{variables.harness-project}}/pipelines/{{variables.harness-pipeline}}/execute
|
|
169
|
+
url: "/v1/orgs/{{variables.harness-org}}/projects/{{variables.harness-project}}/pipelines/{{variables.harness-pipeline}}/execute"
|
|
170
170
|
integration: Harness
|
|
171
171
|
integrationAlias: "PLACEHOLDER_INTEGRATION_ALIAS"
|
|
172
172
|
headers:
|
{cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/solutions/harness-deploy/setup.py
RENAMED
|
@@ -6,7 +6,7 @@ Run via: cortex solutions post-install -s harness-deploy
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
SETUP_DESCRIPTION = (
|
|
9
|
-
"This solution includes a
|
|
9
|
+
"This solution includes a setup script that will configure your Harness "
|
|
10
10
|
"integration in Cortex, create the deploy pipeline and cortex_api_key secret in Harness, "
|
|
11
11
|
"import the Cortex trigger workflow, and optionally fire a test deploy."
|
|
12
12
|
)
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Workday Integration
|
|
3
|
+
description: Configure the Cortex Workday integration with a sample org hierarchy from the fictional company Pied Piper (from the TV show Silicon Valley) to sync employees and teams into your service catalog.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Workday Integration
|
|
7
|
+
|
|
8
|
+
Get the Cortex Workday integration running in minutes using a sample org hierarchy from the fictional company Pied Piper (from the TV show *Silicon Valley*). After install, trigger a sync to see employees and teams appear in your catalog — including the full team hierarchy.
|
|
9
|
+
|
|
10
|
+
## Data Model
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
|
|
14
|
+
│ Workday Report │────▶│ Cortex Integration │────▶│ Team Catalog │
|
|
15
|
+
│ (JSON / RaaS) │ │ (field mapping) │ │ + Members │
|
|
16
|
+
└──────────────────────┘ └──────────────────────┘ └──────────────────────┘
|
|
17
|
+
|
|
18
|
+
Sample: Pied Piper supervisory org (Silicon Valley)
|
|
19
|
+
|
|
20
|
+
PP: Pied Piper (Erlich Bachman)
|
|
21
|
+
├── PP: Engineering (Richard Hendricks)
|
|
22
|
+
│ ├── PP: Platform (Bertram Gilfoyle)
|
|
23
|
+
│ │ └── PP: Infrastructure (Nelson Bighetti)
|
|
24
|
+
│ └── PP: Frontend (Dinesh Chugtai)
|
|
25
|
+
└── PP: Operations (Jared Dunn)
|
|
26
|
+
└── PP: People Ops (Monica Hall)
|
|
27
|
+
|
|
28
|
+
Report Format
|
|
29
|
+
─────────────
|
|
30
|
+
Each entry represents one employee. Workteam_Group lists the employee's teams.
|
|
31
|
+
Hierarchy is encoded as parentTeamId → teamName. Root teams use "NONE".
|
|
32
|
+
Managers have Team_Managed set to their team's teamName.
|
|
33
|
+
|
|
34
|
+
{
|
|
35
|
+
"Report_Entry": [
|
|
36
|
+
{
|
|
37
|
+
"Email": "erlich.bachman@piedpiper.com",
|
|
38
|
+
"Employee_ID": "PP-100000",
|
|
39
|
+
"First_Name": "Erlich",
|
|
40
|
+
"Last_Name": "Bachman",
|
|
41
|
+
"Managers_Email": "erlich.bachman@piedpiper.com",
|
|
42
|
+
"employeeRole": "CEO",
|
|
43
|
+
"Workteam_Group": [
|
|
44
|
+
{
|
|
45
|
+
"teamName": "PP: Pied Piper",
|
|
46
|
+
"teamDisplayName": "PP: Pied Piper",
|
|
47
|
+
"parentTeamId": "NONE",
|
|
48
|
+
"Team_Managed": "PP: Pied Piper"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
...
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
Field Mapping (data/configuration.json)
|
|
57
|
+
────────────────────────────────────────
|
|
58
|
+
Maps report columns to employee fields, team identity, and hierarchy.
|
|
59
|
+
Workday reports can be customized — the configuration defines the field
|
|
60
|
+
attributes and the hierarchy, so it works with any supervisory org report.
|
|
61
|
+
|
|
62
|
+
{
|
|
63
|
+
"ownershipReportUrl": "<your-report-url>",
|
|
64
|
+
"reportMappingV2": {
|
|
65
|
+
"email": { "columnName": "Email" },
|
|
66
|
+
"employeeId": { "columnName": "Employee_ID" },
|
|
67
|
+
"firstName": { "columnName": "First_Name" },
|
|
68
|
+
"lastName": { "columnName": "Last_Name" },
|
|
69
|
+
"employeeRole": { "columnName": "employeeRole" },
|
|
70
|
+
"teamListFields": {
|
|
71
|
+
"teamListKey": { "columnName": "Workteam_Group" },
|
|
72
|
+
"teamId": { "columnName": "teamName" },
|
|
73
|
+
"teamName": { "columnName": "teamDisplayName" },
|
|
74
|
+
"hierarchy": {
|
|
75
|
+
"fieldOnParentNode": { "columnName": "teamName" },
|
|
76
|
+
"fieldOnChildNode": { "columnName": "parentTeamId" }
|
|
77
|
+
},
|
|
78
|
+
"teamEmployeeManages": { "columnName": "Team_Managed" }
|
|
79
|
+
},
|
|
80
|
+
"type": "ONE_EMPLOYEE_MULTIPLE_TEAMS"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## After Installing
|
|
86
|
+
|
|
87
|
+
Trigger the sync in Cortex to import the Pied Piper org hierarchy:
|
|
88
|
+
|
|
89
|
+
**Catalog → All Entities → Import Entities → Workday → Sync Entities → Next Step**
|
|
90
|
+
|
|
91
|
+
You should see 7 teams appear in your catalog with the full hierarchy:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
PP: Pied Piper (Erlich Bachman)
|
|
95
|
+
├── PP: Engineering (Richard Hendricks)
|
|
96
|
+
│ ├── PP: Platform (Bertram Gilfoyle)
|
|
97
|
+
│ │ └── PP: Infrastructure (Nelson Bighetti)
|
|
98
|
+
│ └── PP: Frontend (Dinesh Chugtai)
|
|
99
|
+
└── PP: Operations (Jared Dunn)
|
|
100
|
+
└── PP: People Ops (Monica Hall)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Workday reports can be customized to match your org structure. The configuration defines which report columns map to employee fields, team identity, and the parent-child hierarchy — so the integration works with any supervisory org report that follows the same shape.
|
|
104
|
+
|
|
105
|
+
## What's Included
|
|
106
|
+
|
|
107
|
+
- **Pied Piper org data:** 7 employees across 4 levels of hierarchy (Erlich → Richard → Gilfoyle/Dinesh, Jared → Monica, Gilfoyle → Big Head)
|
|
108
|
+
- **Integration config:** field mapping and report URL pre-configured, pointing at the hosted data
|
|
109
|
+
- **Setup script:** one-command configuration of the Cortex Workday integration via API
|
|
110
|
+
|
|
111
|
+
## Quick Start
|
|
112
|
+
|
|
113
|
+
1. Install the solution:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
cortex solutions install -s workday
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
2. Follow the post-install setup prompts, or run later:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
cortex solutions post-install -s workday
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
3. Trigger the import in Cortex:
|
|
126
|
+
|
|
127
|
+
**Catalog → All Entities → Import Entities → Workday → Sync Entities → Next Step**
|
|
128
|
+
|
|
129
|
+
4. Check your team hierarchy to see the Pied Piper org chart.
|
|
130
|
+
|
|
131
|
+
## How It Works
|
|
132
|
+
|
|
133
|
+
The setup script calls the Cortex Workday integration API to configure a report URL pointing at the bundled Pied Piper supervisory org data. Cortex fetches the report and syncs employees and teams into your catalog on the next import run.
|
|
134
|
+
|
|
135
|
+
## Adapting to Real Workday Data
|
|
136
|
+
|
|
137
|
+
To connect your own Workday report, go to **Settings → Integrations → Workday** in the Cortex UI and update the Report URL, username, and password. The field mapping in `data/configuration.json` works unchanged for any Workday supervisory org report that uses the same column names.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"username": "ISU_Cortex",
|
|
3
|
+
"ownershipReportUrl": "https://jeff-test-org.github.io/workday-mocks/pied-piper-supervisory-org",
|
|
4
|
+
"reportMappingV2": {
|
|
5
|
+
"email": { "columnName": "Email" },
|
|
6
|
+
"employeeId": { "columnName": "Employee_ID" },
|
|
7
|
+
"firstName": { "columnName": "First_Name" },
|
|
8
|
+
"lastName": { "columnName": "Last_Name" },
|
|
9
|
+
"managerEmail": null,
|
|
10
|
+
"employeeRole": { "columnName": "employeeRole" },
|
|
11
|
+
"rootTeams": [],
|
|
12
|
+
"teamListFields": {
|
|
13
|
+
"teamListKey": { "columnName": "Workteam_Group" },
|
|
14
|
+
"teamId": { "columnName": "teamName" },
|
|
15
|
+
"teamName": { "columnName": "teamDisplayName" },
|
|
16
|
+
"hierarchy": {
|
|
17
|
+
"fieldOnChildNode": { "columnName": "parentTeamId" },
|
|
18
|
+
"fieldOnParentNode": { "columnName": "teamName", "isList": false }
|
|
19
|
+
},
|
|
20
|
+
"teamEmployeeManages": { "columnName": "Team_Managed" }
|
|
21
|
+
},
|
|
22
|
+
"fallbackFields": {
|
|
23
|
+
"teamId": null,
|
|
24
|
+
"teamName": null,
|
|
25
|
+
"fieldOnParentNode": null,
|
|
26
|
+
"fieldOnChildNode": null
|
|
27
|
+
},
|
|
28
|
+
"type": "ONE_EMPLOYEE_MULTIPLE_TEAMS"
|
|
29
|
+
},
|
|
30
|
+
"password": "asdf"
|
|
31
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Report_Entry": [
|
|
3
|
+
{
|
|
4
|
+
"Email": "erlich.bachman@piedpiper.com",
|
|
5
|
+
"Employee_ID": "PP-100000",
|
|
6
|
+
"First_Name": "Erlich",
|
|
7
|
+
"Last_Name": "Bachman",
|
|
8
|
+
"Managers_Email": "erlich.bachman@piedpiper.com",
|
|
9
|
+
"employeeRole": "CEO",
|
|
10
|
+
"Workteam_Group": [
|
|
11
|
+
{
|
|
12
|
+
"teamName": "PP: Pied Piper",
|
|
13
|
+
"teamDisplayName": "PP: Pied Piper",
|
|
14
|
+
"parentTeamId": "NONE",
|
|
15
|
+
"Team_Managed": "PP: Pied Piper"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"Email": "richard.hendricks@piedpiper.com",
|
|
21
|
+
"Employee_ID": "PP-100001",
|
|
22
|
+
"First_Name": "Richard",
|
|
23
|
+
"Last_Name": "Hendricks",
|
|
24
|
+
"Managers_Email": "erlich.bachman@piedpiper.com",
|
|
25
|
+
"employeeRole": "CTO",
|
|
26
|
+
"Workteam_Group": [
|
|
27
|
+
{
|
|
28
|
+
"teamName": "PP: Engineering",
|
|
29
|
+
"teamDisplayName": "PP: Engineering",
|
|
30
|
+
"parentTeamId": "PP: Pied Piper",
|
|
31
|
+
"Team_Managed": "PP: Engineering"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"Email": "bertram.gilfoyle@piedpiper.com",
|
|
37
|
+
"Employee_ID": "PP-100002",
|
|
38
|
+
"First_Name": "Bertram",
|
|
39
|
+
"Last_Name": "Gilfoyle",
|
|
40
|
+
"Managers_Email": "richard.hendricks@piedpiper.com",
|
|
41
|
+
"employeeRole": "Staff Engineer",
|
|
42
|
+
"Workteam_Group": [
|
|
43
|
+
{
|
|
44
|
+
"teamName": "PP: Platform",
|
|
45
|
+
"teamDisplayName": "PP: Platform",
|
|
46
|
+
"parentTeamId": "PP: Engineering",
|
|
47
|
+
"Team_Managed": "PP: Platform"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"Email": "dinesh.chugtai@piedpiper.com",
|
|
53
|
+
"Employee_ID": "PP-100003",
|
|
54
|
+
"First_Name": "Dinesh",
|
|
55
|
+
"Last_Name": "Chugtai",
|
|
56
|
+
"Managers_Email": "richard.hendricks@piedpiper.com",
|
|
57
|
+
"employeeRole": "Senior Engineer",
|
|
58
|
+
"Workteam_Group": [
|
|
59
|
+
{
|
|
60
|
+
"teamName": "PP: Frontend",
|
|
61
|
+
"teamDisplayName": "PP: Frontend",
|
|
62
|
+
"parentTeamId": "PP: Engineering"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"Email": "jared.dunn@piedpiper.com",
|
|
68
|
+
"Employee_ID": "PP-100004",
|
|
69
|
+
"First_Name": "Jared",
|
|
70
|
+
"Last_Name": "Dunn",
|
|
71
|
+
"Managers_Email": "erlich.bachman@piedpiper.com",
|
|
72
|
+
"employeeRole": "COO",
|
|
73
|
+
"Workteam_Group": [
|
|
74
|
+
{
|
|
75
|
+
"teamName": "PP: Operations",
|
|
76
|
+
"teamDisplayName": "PP: Operations",
|
|
77
|
+
"parentTeamId": "PP: Pied Piper",
|
|
78
|
+
"Team_Managed": "PP: Operations"
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"Email": "monica.hall@piedpiper.com",
|
|
84
|
+
"Employee_ID": "PP-100005",
|
|
85
|
+
"First_Name": "Monica",
|
|
86
|
+
"Last_Name": "Hall",
|
|
87
|
+
"Managers_Email": "jared.dunn@piedpiper.com",
|
|
88
|
+
"employeeRole": "VP People",
|
|
89
|
+
"Workteam_Group": [
|
|
90
|
+
{
|
|
91
|
+
"teamName": "PP: People Ops",
|
|
92
|
+
"teamDisplayName": "PP: People Ops",
|
|
93
|
+
"parentTeamId": "PP: Operations"
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"Email": "nelson.bighetti@piedpiper.com",
|
|
99
|
+
"Employee_ID": "PP-100006",
|
|
100
|
+
"First_Name": "Nelson",
|
|
101
|
+
"Last_Name": "Bighetti",
|
|
102
|
+
"Managers_Email": "bertram.gilfoyle@piedpiper.com",
|
|
103
|
+
"employeeRole": "Engineer",
|
|
104
|
+
"Workteam_Group": [
|
|
105
|
+
{
|
|
106
|
+
"teamName": "PP: Infrastructure",
|
|
107
|
+
"teamDisplayName": "PP: Infrastructure",
|
|
108
|
+
"parentTeamId": "PP: Platform"
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Post-install setup script for the workday solution.
|
|
3
|
+
Configures the Cortex Workday integration to sync the Pied Piper org hierarchy.
|
|
4
|
+
Run via: cortex solutions post-install -s workday
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
SETUP_DESCRIPTION = (
|
|
8
|
+
"This solution includes a setup script that will configure "
|
|
9
|
+
"the Cortex Workday integration to sync the Pied Piper org hierarchy."
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
import json
|
|
13
|
+
import sys
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
import requests
|
|
16
|
+
|
|
17
|
+
try:
|
|
18
|
+
from cortexapps_cli.solutions._lib.setup_base import SolutionSetup
|
|
19
|
+
except ImportError:
|
|
20
|
+
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
|
21
|
+
from _lib.setup_base import SolutionSetup
|
|
22
|
+
|
|
23
|
+
DATA_DIR = Path(__file__).parent / "data"
|
|
24
|
+
CONFIG_FILE = DATA_DIR / "configuration.json"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class WorkdayIntegrationSetup(SolutionSetup):
|
|
28
|
+
solution_tag = "workday"
|
|
29
|
+
|
|
30
|
+
def __init__(
|
|
31
|
+
self,
|
|
32
|
+
cortex_api_key: str = None,
|
|
33
|
+
cortex_base_url: str = None,
|
|
34
|
+
no_prompt: bool = False,
|
|
35
|
+
**kwargs,
|
|
36
|
+
):
|
|
37
|
+
super().__init__(no_prompt=no_prompt, **kwargs)
|
|
38
|
+
self._api_key = cortex_api_key or ""
|
|
39
|
+
self._base_url = (cortex_base_url or "https://api.getcortexapp.com").rstrip("/")
|
|
40
|
+
|
|
41
|
+
def _cortex_headers(self) -> dict:
|
|
42
|
+
return {
|
|
43
|
+
"Authorization": f"Bearer {self._api_key}",
|
|
44
|
+
"Content-Type": "application/json",
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
def collect_prompts(self) -> None:
|
|
48
|
+
pass # credentials come from CLI session
|
|
49
|
+
|
|
50
|
+
def _check_and_replace_existing(self) -> None:
|
|
51
|
+
"""Check for an existing Workday config; backup and delete it if user confirms."""
|
|
52
|
+
r = requests.get(
|
|
53
|
+
f"{self._base_url}/api/v1/workday/default-configuration",
|
|
54
|
+
headers=self._cortex_headers(),
|
|
55
|
+
)
|
|
56
|
+
if r.status_code == 404:
|
|
57
|
+
self.mark_undone("configure") # no integration on server — reconfigure regardless of cached state
|
|
58
|
+
return
|
|
59
|
+
r.raise_for_status()
|
|
60
|
+
|
|
61
|
+
if not self.confirm("Existing Workday integration found. Replace it?", default=False):
|
|
62
|
+
print("Keeping existing Workday integration. Exiting.")
|
|
63
|
+
raise SystemExit(0)
|
|
64
|
+
|
|
65
|
+
# Back up the existing config
|
|
66
|
+
backup_dir = Path.home() / ".cortex" / "solutions" / "workday"
|
|
67
|
+
backup_dir.mkdir(parents=True, exist_ok=True)
|
|
68
|
+
backup_file = backup_dir / "backup-config.json"
|
|
69
|
+
backup_file.write_text(json.dumps(r.json(), indent=2))
|
|
70
|
+
print(f" Backed up existing config to {backup_file}")
|
|
71
|
+
|
|
72
|
+
# Delete the existing config
|
|
73
|
+
del_r = requests.delete(
|
|
74
|
+
f"{self._base_url}/api/v1/workday/configurations",
|
|
75
|
+
headers=self._cortex_headers(),
|
|
76
|
+
)
|
|
77
|
+
del_r.raise_for_status()
|
|
78
|
+
self.mark_undone("configure")
|
|
79
|
+
|
|
80
|
+
def _configure_integration(self) -> None:
|
|
81
|
+
"""POST the bundled Workday integration configuration."""
|
|
82
|
+
if self.already_done("configure"):
|
|
83
|
+
return "Already configured (skipped)"
|
|
84
|
+
config = json.loads(CONFIG_FILE.read_text())
|
|
85
|
+
print(f" (cortex integrations workday add -f {CONFIG_FILE})")
|
|
86
|
+
r = requests.post(
|
|
87
|
+
f"{self._base_url}/api/v1/workday/configuration",
|
|
88
|
+
headers=self._cortex_headers(),
|
|
89
|
+
json=config,
|
|
90
|
+
)
|
|
91
|
+
if not r.ok:
|
|
92
|
+
raise RuntimeError(
|
|
93
|
+
f"Failed to configure Workday integration: {r.status_code} {r.text}"
|
|
94
|
+
)
|
|
95
|
+
self.mark_done("configure")
|
|
96
|
+
|
|
97
|
+
def _validate_integration(self) -> None:
|
|
98
|
+
"""Validate the Workday integration configuration."""
|
|
99
|
+
print(f" (cortex integrations workday validate)")
|
|
100
|
+
r = requests.post(
|
|
101
|
+
f"{self._base_url}/api/v1/workday/configuration/validate",
|
|
102
|
+
headers=self._cortex_headers(),
|
|
103
|
+
)
|
|
104
|
+
r.raise_for_status()
|
|
105
|
+
configs = r.json().get("configurations", [])
|
|
106
|
+
if not configs:
|
|
107
|
+
raise RuntimeError("Validation returned no results — is the integration configured?")
|
|
108
|
+
result = configs[0]
|
|
109
|
+
if not result.get("isValid", False):
|
|
110
|
+
raise RuntimeError(f"Validation failed: {result.get('message', 'unknown error')}")
|
|
111
|
+
print(f" ✓ Configuration validated successfully")
|
|
112
|
+
|
|
113
|
+
def _enable_auto_import(self) -> None:
|
|
114
|
+
"""Prompt user to enable Auto Import Workday Teams in Cortex settings."""
|
|
115
|
+
print(" In Cortex: Settings → Entities → Teams → Enable 'Auto import Workday teams'")
|
|
116
|
+
if not self.confirm(" Is 'Auto import Workday teams' enabled?", default=False):
|
|
117
|
+
print("Please enable it before continuing.")
|
|
118
|
+
raise SystemExit(0)
|
|
119
|
+
|
|
120
|
+
def steps(self) -> list:
|
|
121
|
+
return [
|
|
122
|
+
("Enable Auto Import Workday teams", self._enable_auto_import),
|
|
123
|
+
("Check for existing Workday integration", self._check_and_replace_existing),
|
|
124
|
+
("Configure Workday integration", self._configure_integration),
|
|
125
|
+
("Validate Workday integration", self._validate_integration),
|
|
126
|
+
]
|
|
127
|
+
|
|
128
|
+
def post_steps(self) -> None:
|
|
129
|
+
print("\n✓ Workday integration configured with the Pied Piper org hierarchy.\n")
|
|
130
|
+
print("Next: trigger a sync in Cortex:")
|
|
131
|
+
print(" Catalog → All Entities → Import Entities → Workday")
|
|
132
|
+
print(" Click 'Sync Entities', then 'Next Step' to import.\n")
|
|
133
|
+
print("Then check your team hierarchy to see the Pied Piper org chart.")
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def main(cortex_api_key=None, cortex_base_url=None, no_prompt=False, **kwargs):
|
|
137
|
+
WorkdayIntegrationSetup(
|
|
138
|
+
cortex_api_key=cortex_api_key,
|
|
139
|
+
cortex_base_url=cortex_base_url,
|
|
140
|
+
no_prompt=no_prompt,
|
|
141
|
+
).run()
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
if __name__ == "__main__":
|
|
145
|
+
main()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/entity_relationship_types.py
RENAMED
|
File without changes
|
{cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/entity_relationships.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cortexapps_cli-1.32.0 → cortexapps_cli-1.34.0}/cortexapps_cli/commands/integrations_commands/aws.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|