cortexapps-cli 1.36.0__tar.gz → 1.38.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.36.0 → cortexapps_cli-1.38.0}/PKG-INFO +1 -1
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/README.md +175 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/catalog/cli-commands.yaml +17 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/catalog/cli-core.yaml +17 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/catalog/cli-docker.yaml +20 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/catalog/cli-solutions.yaml +17 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/catalog/cli-tests.yaml +17 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/scorecards/monorepo-component-health.yaml +54 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-commands/README.md +3 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-commands/cortex.yaml +17 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-commands/src/commands.py +22 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-core/README.md +3 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-core/cortex.yaml +17 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-core/src/cli.py +16 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-docker/Dockerfile +10 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-docker/README.md +3 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-docker/cortex.yaml +20 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-solutions/README.md +3 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-solutions/cortex.yaml +17 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-solutions/src/solutions.py +18 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-tests/README.md +3 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-tests/cortex.yaml +17 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-tests/src/test_cli.py +20 -0
- cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/setup.py +255 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/pyproject.toml +1 -1
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/LICENSE +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/README.rst +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/__init__.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/cli.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/command_options.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/ai_skills.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/api_keys.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/audit_logs.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/backup.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/backup_commands/cortex_export.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/catalog.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/custom_data.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/custom_events.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/custom_metrics.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/dependencies.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/deploys.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/discovery_audit.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/docs.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/entity_relationship_types.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/entity_relationships.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/entity_types.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/gitops_logs.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/groups.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/initiatives.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/apiiro.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/argocd.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/aws.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/azure_active_directory.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/azure_devops.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/azure_resources.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/bamboohr.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/bitbucket.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/bugsnag.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/buildkite.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/checkmarx_sast.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/circleci.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/clickup.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/codecov.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/coralogix.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/datadog.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/dynatrace.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/firehydrant.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/github.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/gitlab.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/harness.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/incidentio.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/instana.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/jenkins.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/jira.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/launchdarkly.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/mend_sast.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/mend_sca.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/newrelic.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/okta.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/opsgenie.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/pagerduty.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/prometheus.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/rollbar.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/rootly.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/semgrep.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/sentry.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/servicenow.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/servicenow_cloud_observability.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/snyk.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/sonarqube.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/splunk_observability_cloud.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/splunk_on_call.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/sumologic.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/veracode.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/wiz.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/workday.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/integrations_commands/xmatters.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/ip_allowlist.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/on_call.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/packages.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/packages_commands/go.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/packages_commands/java.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/packages_commands/node.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/packages_commands/nuget.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/packages_commands/python.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/plugins.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/queries.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/rest.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/scaffolders.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/scim.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/scorecards.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/scorecards_commands/exemptions.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/secrets.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/solutions.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/teams.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/users.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/users_commands/roles.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/commands/workflows.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/cortex_client.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/models/team.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/__init__.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/_lib/__init__.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/_lib/setup_base.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-agents/README.md +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-agents/catalog/address-reviews.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-agents/catalog/audit-flags.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-agents/catalog/code-review.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-agents/catalog/fix-issue.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-agents/catalog/incident-trends.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-agents/catalog/jira-to-kb.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-agents/catalog/release-to-sha.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-agents/catalog/search-troubleshooting-kb.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-agents/catalog/simplify-test.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-agents/entity-types/ai-agent.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-agents/scorecards/ai-agent-governance.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-skills/README.md +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-skills/catalog/api-doc-sync.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-skills/catalog/changelog-writer.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-skills/catalog/docs-generator.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-skills/catalog/docs-portal.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-skills/entity-relationship-types/ai-plugin-service.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-skills/entity-relationship-types/ai-plugin-skills.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-skills/entity-relationship-types/ai-skill-service.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-skills/entity-types/ai-plugin.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-skills/entity-types/ai-skill.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-skills/scorecards/ai-skills-quality.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/.github/workflows/sync-claude-spend.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/README.md +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/catalog/employee-alice-chen.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/catalog/employee-bob-martinez.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/catalog/employee-carol-kim.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/catalog/employee-david-osei.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/catalog/employee-emma-johnson.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/catalog/team-data.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/catalog/team-engineering.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/catalog/team-frontend.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/catalog/team-platform.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/custom-metrics/ai-spend.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/entity-relationship-types/team-member.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/entity-types/employee.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/plugins/team-ai-spend.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/scorecards/ai-spend-scorecard.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/ai-spend/scripts/sync-claude-spend.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/.github/workflows/cortex-service-version.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/README.md +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/api-gateway-3.0.1.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/api-gateway-3.1.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/api-gateway-3.1.1.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/api-gateway.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/auth-2.1.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/auth-2.1.1.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/auth-2.2.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/auth.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/aws-dev-us-west-2.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/billing-1.1.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/billing-1.2.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/billing.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/cart-1.0.2.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/cart.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/checkout-2.2.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/checkout-2.3.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/checkout-2.4.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/checkout.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/gcp-prod-us-east-1.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/gcp-prod-us-west-1.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/gcp-staging-us-east-1.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/notifications-1.0.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/notifications-1.0.1.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/notifications-1.1.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/notifications.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/order-service-2.0.1.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/order-service-2.1.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/order-service.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/payments-1.6.1.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/payments-1.7.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/payments-1.7.1.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/payments.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/release-2026-06-20.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/release-2026-07-01.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/release-2026-07-09.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/release-2026-07-10.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/search-4.0.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/search-4.1.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/search.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/user-service-1.2.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/user-service-1.3.0.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/catalog/user-service.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/entity-relationship-types/environments.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/entity-relationship-types/versions.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/entity-types/environment.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/entity-types/release.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/entity-types/service-version.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/workflows/create-environment.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/workflows/create-release.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/environments/workflows/trigger-github-release.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/github-actions-deploy/README.md +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/github-actions-deploy/_templates/cortex-async-callback.yml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/github-actions-deploy/_templates/cortex-deploy.yml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/github-actions-deploy/_templates/cortex-register-deploy.yml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/github-actions-deploy/_templates/github-actions-deploy.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/github-actions-deploy/catalog/github-actions-demo.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/github-actions-deploy/scorecards/deploy-health.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/github-actions-deploy/setup.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/harness-deploy/README.md +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/harness-deploy/_templates/cortex-async-callback-template.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/harness-deploy/_templates/cortex-deploy-pipeline.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/harness-deploy/_templates/cortex-record-deploy-template.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/harness-deploy/_templates/trigger-harness-deploy.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/harness-deploy/catalog/harness-demo.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/harness-deploy/scorecards/deploy-health.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/harness-deploy/setup.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/jenkins-deploy/README.md +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/jenkins-deploy/_templates/Jenkinsfile +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/jenkins-deploy/_templates/trigger-jenkins-deploy.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/jenkins-deploy/catalog/jenkins-demo.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/jenkins-deploy/scorecards/deploy-health.yaml +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/jenkins-deploy/setup.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/workday/README.md +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/workday/data/configuration.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/workday/data/pied-piper-supervisory-org.json +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/solutions/workday/setup.py +0 -0
- {cortexapps_cli-1.36.0 → cortexapps_cli-1.38.0}/cortexapps_cli/utils.py +0 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Monorepo
|
|
3
|
+
description: Model a real monorepo in Cortex — five Cortex services mapped to subdirectories of a single public GitHub repo, each scoped by basepath.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Monorepo
|
|
7
|
+
|
|
8
|
+
This solution demonstrates the monorepo pattern in Cortex using mock services inside the [`cortexapps/cli`](https://github.com/cortexapps/cli) repo. Five Cortex service entities each map to their own subdirectory under `cortexapps_cli/solutions/monorepo/services/`, complete with a `cortex.yaml`, a `README.md`, and mock source code. Each entity sees only the commits, PRs, and files in its own directory.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
https://github.com/cortexapps/cli/tree/main/cortexapps_cli/solutions/monorepo/services
|
|
12
|
+
════════════════════════════════════════════════════════════════════════
|
|
13
|
+
│
|
|
14
|
+
├── cli-core/ ──► ┌─────────────────────────────────┐
|
|
15
|
+
│ │ monorepo-demo-cli-core │
|
|
16
|
+
│ │ Core CLI package │
|
|
17
|
+
│ │ src/cli.py │
|
|
18
|
+
│ └─────────────────────────────────┘
|
|
19
|
+
│
|
|
20
|
+
├── cli-commands/ ──► ┌─────────────────────────────────┐
|
|
21
|
+
│ │ monorepo-demo-cli-commands │
|
|
22
|
+
│ │ Command implementations │
|
|
23
|
+
│ │ src/commands.py │
|
|
24
|
+
│ └─────────────────────────────────┘
|
|
25
|
+
│
|
|
26
|
+
├── cli-solutions/ ──► ┌─────────────────────────────────┐
|
|
27
|
+
│ │ monorepo-demo-cli-solutions │
|
|
28
|
+
│ │ Solutions framework │
|
|
29
|
+
│ │ src/solutions.py │
|
|
30
|
+
│ └─────────────────────────────────┘
|
|
31
|
+
│
|
|
32
|
+
├── cli-tests/ ──► ┌─────────────────────────────────┐
|
|
33
|
+
│ │ monorepo-demo-cli-tests │
|
|
34
|
+
│ │ Integration test suite │
|
|
35
|
+
│ │ src/test_cli.py │
|
|
36
|
+
│ └─────────────────────────────────┘
|
|
37
|
+
│
|
|
38
|
+
└── cli-docker/ ──► ┌─────────────────────────────────┐
|
|
39
|
+
│ monorepo-demo-cli-docker │
|
|
40
|
+
│ Container infrastructure │
|
|
41
|
+
│ Dockerfile │
|
|
42
|
+
└─────────────────────────────────┘
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Each service directory has this structure:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
services/
|
|
49
|
+
└── cli-core/
|
|
50
|
+
├── cortex.yaml ← Cortex entity definition (GitOps discoverable)
|
|
51
|
+
├── README.md ← Service documentation
|
|
52
|
+
└── src/
|
|
53
|
+
└── cli.py ← Mock source code
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Each entity is defined like this (the `x-cortex-git` block lives under `info:`):
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
info:
|
|
60
|
+
x-cortex-tag: monorepo-demo-cli-core
|
|
61
|
+
x-cortex-git:
|
|
62
|
+
github:
|
|
63
|
+
alias: cortex-cli # only needed with multiple GitHub integrations, and your repo isn't under the default
|
|
64
|
+
repository: cortexapps/cli
|
|
65
|
+
basepath: cortexapps_cli/solutions/monorepo/services/cli-core
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
All five entities are tagged with the group `monorepo-demo` for easy catalog filtering.
|
|
69
|
+
|
|
70
|
+
## What's Included
|
|
71
|
+
|
|
72
|
+
**5 service entities** (group: `monorepo-demo`)
|
|
73
|
+
|
|
74
|
+
| Tag | basepath | Description |
|
|
75
|
+
|---|---|---|
|
|
76
|
+
| `monorepo-demo-cli-core` | `services/cli-core` | Core CLI — Typer app, HTTP client, config, utils |
|
|
77
|
+
| `monorepo-demo-cli-commands` | `services/cli-commands` | Command implementations per Cortex resource |
|
|
78
|
+
| `monorepo-demo-cli-solutions` | `services/cli-solutions` | Solutions framework — installable bundles |
|
|
79
|
+
| `monorepo-demo-cli-tests` | `services/cli-tests` | Integration test suite against live Cortex API |
|
|
80
|
+
| `monorepo-demo-cli-docker` | `services/cli-docker` | Container infra — published `cortexapp/cli` image |
|
|
81
|
+
|
|
82
|
+
> Full basepaths are prefixed with `cortexapps_cli/solutions/monorepo/` — shortened above for readability.
|
|
83
|
+
|
|
84
|
+
**1 scorecard** — `monorepo-component-health` — Bronze/Silver/Gold:
|
|
85
|
+
- Bronze: has description + git configured with basepath
|
|
86
|
+
- Silver: belongs to at least one group
|
|
87
|
+
- Gold: verified within 90 days
|
|
88
|
+
|
|
89
|
+
**5 `cortex.yaml` files** committed into the repo — one per component — so GitOps discovers them automatically once GitHub is connected.
|
|
90
|
+
|
|
91
|
+
## Installation
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
cortex solutions install -s monorepo
|
|
95
|
+
cortex solutions post-install -s monorepo
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
The install step creates all 5 entities and the scorecard immediately. The post-install step configures the `cortex-cli` GitHub integration (PAT) so Cortex can read the repo.
|
|
99
|
+
|
|
100
|
+
## After Installing
|
|
101
|
+
|
|
102
|
+
**Create a catalog**
|
|
103
|
+
|
|
104
|
+
1. Go to [Catalogs](https://app.getcortexapp.com/admin/catalogs) → **New Catalog**
|
|
105
|
+
2. Name it **Monorepo Demo**
|
|
106
|
+
3. Set the catalog filter:
|
|
107
|
+
- **Entity type:** `service`
|
|
108
|
+
- **Advanced options → Groups → Include:** `monorepo-demo`
|
|
109
|
+
|
|
110
|
+
> Catalog creation will be automated once catalog API support is added to the CLI.
|
|
111
|
+
|
|
112
|
+
## GitOps Auto-Discovery
|
|
113
|
+
|
|
114
|
+
Once the `cortex-cli` integration is set up, add the repo in Cortex → **Settings → GitOps**:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
Repository: cortexapps/cli
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Cortex will find the five `cortex.yaml` files and keep entities in sync with any changes pushed to the repo:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
cortexapps_cli/solutions/monorepo/services/cli-core/cortex.yaml → monorepo-demo-cli-core
|
|
124
|
+
cortexapps_cli/solutions/monorepo/services/cli-commands/cortex.yaml → monorepo-demo-cli-commands
|
|
125
|
+
cortexapps_cli/solutions/monorepo/services/cli-solutions/cortex.yaml → monorepo-demo-cli-solutions
|
|
126
|
+
cortexapps_cli/solutions/monorepo/services/cli-tests/cortex.yaml → monorepo-demo-cli-tests
|
|
127
|
+
cortexapps_cli/solutions/monorepo/services/cli-docker/cortex.yaml → monorepo-demo-cli-docker
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Testing GitOps
|
|
131
|
+
|
|
132
|
+
To see GitOps discovery in action, delete one or more entities and let Cortex recreate them from the `cortex.yaml` files in the repo.
|
|
133
|
+
|
|
134
|
+
**Step 1 — Delete an entity (or all of them):**
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# Delete a single entity
|
|
138
|
+
cortex catalog delete --tag monorepo-demo-cli-core --force
|
|
139
|
+
|
|
140
|
+
# Or delete all five at once
|
|
141
|
+
cortex catalog delete --tag monorepo-demo-cli-core --force
|
|
142
|
+
cortex catalog delete --tag monorepo-demo-cli-commands --force
|
|
143
|
+
cortex catalog delete --tag monorepo-demo-cli-solutions --force
|
|
144
|
+
cortex catalog delete --tag monorepo-demo-cli-tests --force
|
|
145
|
+
cortex catalog delete --tag monorepo-demo-cli-docker --force
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Step 2 — Configure GitOps (if not already done):**
|
|
149
|
+
|
|
150
|
+
1. Go to **Settings → GitOps** in the Cortex UI
|
|
151
|
+
2. Click **Add Repository**
|
|
152
|
+
3. Enter `cortexapps/cli` and select the `cortex-cli` integration
|
|
153
|
+
4. Save — Cortex will immediately scan the repo for `cortex.yaml` files
|
|
154
|
+
|
|
155
|
+
**Step 3 — Trigger a sync:**
|
|
156
|
+
|
|
157
|
+
GitOps syncs automatically on each push to the repo. To trigger a manual sync without pushing:
|
|
158
|
+
|
|
159
|
+
1. Go to **Catalogs → All Entities**
|
|
160
|
+
2. Click **Import Entities → Import Manually**
|
|
161
|
+
3. Select **GitHub**
|
|
162
|
+
4. Follow the prompts to select the `cortexapps/cli` repository
|
|
163
|
+
|
|
164
|
+
Cortex will find the `cortex.yaml` files in each subdirectory and recreate the deleted entities exactly as defined — group, git basepath, description, and all.
|
|
165
|
+
|
|
166
|
+
## Adapting for Your Own Monorepo
|
|
167
|
+
|
|
168
|
+
1. Add a `cortex.yaml` to each component subdirectory in your repo
|
|
169
|
+
2. Set `x-cortex-git.github.repository` and `basepath` for each component
|
|
170
|
+
3. Add `x-cortex-git.github.alias` if you have more than one GitHub integration configured and your repo isn't under the default
|
|
171
|
+
4. Add a consistent group tag to all components (e.g. `my-monorepo`)
|
|
172
|
+
5. Add GitOps → your repo in Cortex Settings
|
|
173
|
+
6. Cortex discovers and syncs all components automatically
|
|
174
|
+
|
|
175
|
+
The `basepath` is what splits one repo into many scoped entities — each service sees only the activity in its own directory.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
openapi: "3.0.0"
|
|
2
|
+
info:
|
|
3
|
+
title: monorepo-demo-cli-commands
|
|
4
|
+
x-cortex-tag: monorepo-demo-cli-commands
|
|
5
|
+
x-cortex-type: service
|
|
6
|
+
x-cortex-description: CLI command implementations — one module per Cortex resource (catalog, scorecards, teams, etc.)
|
|
7
|
+
x-cortex-groups:
|
|
8
|
+
- monorepo-demo
|
|
9
|
+
x-cortex-git:
|
|
10
|
+
github:
|
|
11
|
+
alias: cortex-cli
|
|
12
|
+
repository: cortexapps/cli
|
|
13
|
+
basepath: cortexapps_cli/solutions/monorepo/services/cli-commands
|
|
14
|
+
x-cortex-link:
|
|
15
|
+
- name: GitHub
|
|
16
|
+
type: repo
|
|
17
|
+
url: https://github.com/cortexapps/cli/tree/main/cortexapps_cli/solutions/monorepo/services/cli-commands
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
openapi: "3.0.0"
|
|
2
|
+
info:
|
|
3
|
+
title: monorepo-demo-cli-core
|
|
4
|
+
x-cortex-tag: monorepo-demo-cli-core
|
|
5
|
+
x-cortex-type: service
|
|
6
|
+
x-cortex-description: Core CLI package — Typer app, HTTP client, config, and output utilities
|
|
7
|
+
x-cortex-groups:
|
|
8
|
+
- monorepo-demo
|
|
9
|
+
x-cortex-git:
|
|
10
|
+
github:
|
|
11
|
+
alias: cortex-cli
|
|
12
|
+
repository: cortexapps/cli
|
|
13
|
+
basepath: cortexapps_cli/solutions/monorepo/services/cli-core
|
|
14
|
+
x-cortex-link:
|
|
15
|
+
- name: GitHub
|
|
16
|
+
type: repo
|
|
17
|
+
url: https://github.com/cortexapps/cli/tree/main/cortexapps_cli/solutions/monorepo/services/cli-core
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
openapi: "3.0.0"
|
|
2
|
+
info:
|
|
3
|
+
title: monorepo-demo-cli-docker
|
|
4
|
+
x-cortex-tag: monorepo-demo-cli-docker
|
|
5
|
+
x-cortex-type: service
|
|
6
|
+
x-cortex-description: Container infrastructure — Dockerfile and config for the published cortexapp/cli Docker image
|
|
7
|
+
x-cortex-groups:
|
|
8
|
+
- monorepo-demo
|
|
9
|
+
x-cortex-git:
|
|
10
|
+
github:
|
|
11
|
+
alias: cortex-cli
|
|
12
|
+
repository: cortexapps/cli
|
|
13
|
+
basepath: cortexapps_cli/solutions/monorepo/services/cli-docker
|
|
14
|
+
x-cortex-link:
|
|
15
|
+
- name: GitHub
|
|
16
|
+
type: repo
|
|
17
|
+
url: https://github.com/cortexapps/cli/tree/main/cortexapps_cli/solutions/monorepo/services/cli-docker
|
|
18
|
+
- name: Docker Hub
|
|
19
|
+
type: documentation
|
|
20
|
+
url: https://hub.docker.com/r/cortexapp/cli
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
openapi: "3.0.0"
|
|
2
|
+
info:
|
|
3
|
+
title: monorepo-demo-cli-solutions
|
|
4
|
+
x-cortex-tag: monorepo-demo-cli-solutions
|
|
5
|
+
x-cortex-type: service
|
|
6
|
+
x-cortex-description: Solutions framework — bundled Cortex solution packages that can be installed via the CLI
|
|
7
|
+
x-cortex-groups:
|
|
8
|
+
- monorepo-demo
|
|
9
|
+
x-cortex-git:
|
|
10
|
+
github:
|
|
11
|
+
alias: cortex-cli
|
|
12
|
+
repository: cortexapps/cli
|
|
13
|
+
basepath: cortexapps_cli/solutions/monorepo/services/cli-solutions
|
|
14
|
+
x-cortex-link:
|
|
15
|
+
- name: GitHub
|
|
16
|
+
type: repo
|
|
17
|
+
url: https://github.com/cortexapps/cli/tree/main/cortexapps_cli/solutions/monorepo/services/cli-solutions
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
openapi: "3.0.0"
|
|
2
|
+
info:
|
|
3
|
+
title: monorepo-demo-cli-tests
|
|
4
|
+
x-cortex-tag: monorepo-demo-cli-tests
|
|
5
|
+
x-cortex-type: service
|
|
6
|
+
x-cortex-description: Integration test suite — pytest tests that run against a live Cortex API
|
|
7
|
+
x-cortex-groups:
|
|
8
|
+
- monorepo-demo
|
|
9
|
+
x-cortex-git:
|
|
10
|
+
github:
|
|
11
|
+
alias: cortex-cli
|
|
12
|
+
repository: cortexapps/cli
|
|
13
|
+
basepath: cortexapps_cli/solutions/monorepo/services/cli-tests
|
|
14
|
+
x-cortex-link:
|
|
15
|
+
- name: GitHub
|
|
16
|
+
type: repo
|
|
17
|
+
url: https://github.com/cortexapps/cli/tree/main/cortexapps_cli/solutions/monorepo/services/cli-tests
|
cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/scorecards/monorepo-component-health.yaml
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
tag: monorepo-component-health
|
|
2
|
+
name: Monorepo Component Health
|
|
3
|
+
description: Checks that each component within a monorepo is documented, owned, linked to its subdirectory, and actively maintained.
|
|
4
|
+
draft: false
|
|
5
|
+
notifications:
|
|
6
|
+
enabled: true
|
|
7
|
+
scoreDropNotificationsEnabled: true
|
|
8
|
+
exemptions:
|
|
9
|
+
enabled: true
|
|
10
|
+
autoApprove: false
|
|
11
|
+
userSpecificNotifications: false
|
|
12
|
+
evaluation:
|
|
13
|
+
window: 24
|
|
14
|
+
ladder:
|
|
15
|
+
name: Default Ladder
|
|
16
|
+
levels:
|
|
17
|
+
- name: Bronze
|
|
18
|
+
rank: 1
|
|
19
|
+
description: The component is discoverable — it has a description and a git reference scoped to its subdirectory.
|
|
20
|
+
color: "#CD7F32"
|
|
21
|
+
- name: Silver
|
|
22
|
+
rank: 2
|
|
23
|
+
description: The component is well-classified — it belongs to at least one group so it can be filtered and reported on.
|
|
24
|
+
color: "#C0C0C0"
|
|
25
|
+
- name: Gold
|
|
26
|
+
rank: 3
|
|
27
|
+
description: The component is actively verified as alive and its metadata is current.
|
|
28
|
+
color: "#D7AC58"
|
|
29
|
+
filter:
|
|
30
|
+
category: SERVICE
|
|
31
|
+
rules:
|
|
32
|
+
- title: Component has a description
|
|
33
|
+
description: Every monorepo component should have a description so developers understand its purpose without reading the source.
|
|
34
|
+
expression: entity.description().length > 0
|
|
35
|
+
weight: 1
|
|
36
|
+
level: Bronze
|
|
37
|
+
|
|
38
|
+
- title: Component has git configured with a basePath
|
|
39
|
+
description: The component's x-cortex-git must be set so Cortex can scope PRs, commits, and code coverage to this subdirectory.
|
|
40
|
+
expression: git != null
|
|
41
|
+
weight: 1
|
|
42
|
+
level: Bronze
|
|
43
|
+
|
|
44
|
+
- title: Component belongs to at least one group
|
|
45
|
+
description: Tag this component with a group (e.g. monorepo-demo) so it can be filtered and reported on across the catalog.
|
|
46
|
+
expression: groups().length > 0
|
|
47
|
+
weight: 1
|
|
48
|
+
level: Silver
|
|
49
|
+
|
|
50
|
+
- title: Component verified in the last 90 days
|
|
51
|
+
description: An engineer has confirmed this component is still in active use and its Cortex metadata is accurate.
|
|
52
|
+
expression: verifications().lastVerifiedAt() != null and verifications().lastVerifiedAt().fromNow() > duration("P-90D")
|
|
53
|
+
weight: 1
|
|
54
|
+
level: Gold
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
openapi: "3.0.0"
|
|
2
|
+
info:
|
|
3
|
+
title: monorepo-demo-cli-commands
|
|
4
|
+
x-cortex-tag: monorepo-demo-cli-commands
|
|
5
|
+
x-cortex-type: service
|
|
6
|
+
x-cortex-description: CLI command implementations — one module per Cortex resource (catalog, scorecards, teams, etc.)
|
|
7
|
+
x-cortex-groups:
|
|
8
|
+
- monorepo-demo
|
|
9
|
+
x-cortex-git:
|
|
10
|
+
github:
|
|
11
|
+
alias: cortex-cli
|
|
12
|
+
repository: cortexapps/cli
|
|
13
|
+
basepath: cortexapps_cli/solutions/monorepo/services/cli-commands
|
|
14
|
+
x-cortex-link:
|
|
15
|
+
- name: GitHub
|
|
16
|
+
type: repo
|
|
17
|
+
url: https://github.com/cortexapps/cli/tree/main/cortexapps_cli/solutions/monorepo/services/cli-commands
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"""
|
|
2
|
+
cli-commands — command implementations per Cortex resource.
|
|
3
|
+
"""
|
|
4
|
+
import typer
|
|
5
|
+
|
|
6
|
+
app = typer.Typer()
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@app.command()
|
|
10
|
+
def list_entities():
|
|
11
|
+
"""List all catalog entities."""
|
|
12
|
+
print("Listing entities from cli-commands...")
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@app.command()
|
|
16
|
+
def get_entity(tag: str):
|
|
17
|
+
"""Get a single entity by tag."""
|
|
18
|
+
print(f"Fetching entity: {tag}")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
if __name__ == "__main__":
|
|
22
|
+
app()
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
openapi: "3.0.0"
|
|
2
|
+
info:
|
|
3
|
+
title: monorepo-demo-cli-core
|
|
4
|
+
x-cortex-tag: monorepo-demo-cli-core
|
|
5
|
+
x-cortex-type: service
|
|
6
|
+
x-cortex-description: Core CLI package — Typer app, HTTP client, config, and output utilities
|
|
7
|
+
x-cortex-groups:
|
|
8
|
+
- monorepo-demo
|
|
9
|
+
x-cortex-git:
|
|
10
|
+
github:
|
|
11
|
+
alias: cortex-cli
|
|
12
|
+
repository: cortexapps/cli
|
|
13
|
+
basepath: cortexapps_cli/solutions/monorepo/services/cli-core
|
|
14
|
+
x-cortex-link:
|
|
15
|
+
- name: GitHub
|
|
16
|
+
type: repo
|
|
17
|
+
url: https://github.com/cortexapps/cli/tree/main/cortexapps_cli/solutions/monorepo/services/cli-core
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""
|
|
2
|
+
cli-core — main entry point and HTTP client for the Cortex CLI.
|
|
3
|
+
"""
|
|
4
|
+
import typer
|
|
5
|
+
|
|
6
|
+
app = typer.Typer()
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@app.command()
|
|
10
|
+
def hello(name: str = "world"):
|
|
11
|
+
"""Say hello from the core CLI package."""
|
|
12
|
+
print(f"Hello, {name}! This is cli-core.")
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
if __name__ == "__main__":
|
|
16
|
+
app()
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
openapi: "3.0.0"
|
|
2
|
+
info:
|
|
3
|
+
title: monorepo-demo-cli-docker
|
|
4
|
+
x-cortex-tag: monorepo-demo-cli-docker
|
|
5
|
+
x-cortex-type: service
|
|
6
|
+
x-cortex-description: Container infrastructure — Dockerfile and config for the published cortexapp/cli Docker image
|
|
7
|
+
x-cortex-groups:
|
|
8
|
+
- monorepo-demo
|
|
9
|
+
x-cortex-git:
|
|
10
|
+
github:
|
|
11
|
+
alias: cortex-cli
|
|
12
|
+
repository: cortexapps/cli
|
|
13
|
+
basepath: cortexapps_cli/solutions/monorepo/services/cli-docker
|
|
14
|
+
x-cortex-link:
|
|
15
|
+
- name: GitHub
|
|
16
|
+
type: repo
|
|
17
|
+
url: https://github.com/cortexapps/cli/tree/main/cortexapps_cli/solutions/monorepo/services/cli-docker
|
|
18
|
+
- name: Docker Hub
|
|
19
|
+
type: documentation
|
|
20
|
+
url: https://hub.docker.com/r/cortexapp/cli
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
openapi: "3.0.0"
|
|
2
|
+
info:
|
|
3
|
+
title: monorepo-demo-cli-solutions
|
|
4
|
+
x-cortex-tag: monorepo-demo-cli-solutions
|
|
5
|
+
x-cortex-type: service
|
|
6
|
+
x-cortex-description: Solutions framework — bundled Cortex solution packages that can be installed via the CLI
|
|
7
|
+
x-cortex-groups:
|
|
8
|
+
- monorepo-demo
|
|
9
|
+
x-cortex-git:
|
|
10
|
+
github:
|
|
11
|
+
alias: cortex-cli
|
|
12
|
+
repository: cortexapps/cli
|
|
13
|
+
basepath: cortexapps_cli/solutions/monorepo/services/cli-solutions
|
|
14
|
+
x-cortex-link:
|
|
15
|
+
- name: GitHub
|
|
16
|
+
type: repo
|
|
17
|
+
url: https://github.com/cortexapps/cli/tree/main/cortexapps_cli/solutions/monorepo/services/cli-solutions
|
cortexapps_cli-1.38.0/cortexapps_cli/solutions/monorepo/services/cli-solutions/src/solutions.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"""
|
|
2
|
+
cli-solutions — framework for installable Cortex solution bundles.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def install(solution_name: str) -> None:
|
|
7
|
+
"""Install a named solution bundle."""
|
|
8
|
+
print(f"Installing solution: {solution_name}")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def list_solutions() -> list:
|
|
12
|
+
"""Return available solution names."""
|
|
13
|
+
return ["monorepo", "backstage-migration", "team-health"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
if __name__ == "__main__":
|
|
17
|
+
for s in list_solutions():
|
|
18
|
+
print(f" - {s}")
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
openapi: "3.0.0"
|
|
2
|
+
info:
|
|
3
|
+
title: monorepo-demo-cli-tests
|
|
4
|
+
x-cortex-tag: monorepo-demo-cli-tests
|
|
5
|
+
x-cortex-type: service
|
|
6
|
+
x-cortex-description: Integration test suite — pytest tests that run against a live Cortex API
|
|
7
|
+
x-cortex-groups:
|
|
8
|
+
- monorepo-demo
|
|
9
|
+
x-cortex-git:
|
|
10
|
+
github:
|
|
11
|
+
alias: cortex-cli
|
|
12
|
+
repository: cortexapps/cli
|
|
13
|
+
basepath: cortexapps_cli/solutions/monorepo/services/cli-tests
|
|
14
|
+
x-cortex-link:
|
|
15
|
+
- name: GitHub
|
|
16
|
+
type: repo
|
|
17
|
+
url: https://github.com/cortexapps/cli/tree/main/cortexapps_cli/solutions/monorepo/services/cli-tests
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"""
|
|
2
|
+
cli-tests — integration tests for the Cortex CLI.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def test_hello():
|
|
7
|
+
"""Basic smoke test."""
|
|
8
|
+
assert True, "Hello from cli-tests!"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def test_entity_list():
|
|
12
|
+
"""Verify entity list returns results."""
|
|
13
|
+
entities = ["mock-service-a", "mock-service-b"]
|
|
14
|
+
assert len(entities) > 0
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
if __name__ == "__main__":
|
|
18
|
+
test_hello()
|
|
19
|
+
test_entity_list()
|
|
20
|
+
print("All tests passed.")
|