pychestrate-service 0.0.7rc0__py3-none-any.whl
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.
- ccai/pychestrate/admin/__init__.py +17 -0
- ccai/pychestrate/admin/__main__.py +108 -0
- ccai/pychestrate/cli/__init__.py +41 -0
- ccai/pychestrate/cli/argparsing.py +136 -0
- ccai/pychestrate/cli/builtin_operations.py +84 -0
- ccai/pychestrate/cli/command_names.py +255 -0
- ccai/pychestrate/cli/commands/__init__.py +21 -0
- ccai/pychestrate/cli/commands/api.py +868 -0
- ccai/pychestrate/cli/commands/auth.py +391 -0
- ccai/pychestrate/cli/commands/config.py +247 -0
- ccai/pychestrate/cli/commands/ext.py +438 -0
- ccai/pychestrate/cli/commands/runs.py +179 -0
- ccai/pychestrate/cli/commands/version.py +136 -0
- ccai/pychestrate/cli/context.py +375 -0
- ccai/pychestrate/cli/credentials.py +489 -0
- ccai/pychestrate/cli/entry.py +1051 -0
- ccai/pychestrate/cli/exceptions.py +142 -0
- ccai/pychestrate/cli/exit_codes.py +52 -0
- ccai/pychestrate/cli/extensions/__init__.py +49 -0
- ccai/pychestrate/cli/extensions/cli_subcommand.py +122 -0
- ccai/pychestrate/cli/extensions/discovery.py +166 -0
- ccai/pychestrate/cli/extensions/example_subcommand.py +55 -0
- ccai/pychestrate/cli/models.py +193 -0
- ccai/pychestrate/cli/openapi_cache.py +287 -0
- ccai/pychestrate/cli/pagination.py +195 -0
- ccai/pychestrate/cli/parser.py +885 -0
- ccai/pychestrate/cli/paths.py +180 -0
- ccai/pychestrate/cli/renderer.py +846 -0
- ccai/pychestrate/cli/suggestions.py +77 -0
- ccai/pychestrate/cli/transport.py +600 -0
- ccai/pychestrate/cli/version.py +47 -0
- ccai/pychestrate/core/__init__.py +0 -0
- ccai/pychestrate/core/dbconnection.py +269 -0
- ccai/pychestrate/core/defaults.py +49 -0
- ccai/pychestrate/core/managers/__init__.py +40 -0
- ccai/pychestrate/core/managers/allocation_manager.py +1866 -0
- ccai/pychestrate/core/managers/audit_logger.py +996 -0
- ccai/pychestrate/core/managers/build_manager.py +1554 -0
- ccai/pychestrate/core/managers/git_validation.py +148 -0
- ccai/pychestrate/core/managers/health_monitor.py +1258 -0
- ccai/pychestrate/core/managers/infrastructure_manager.py +1202 -0
- ccai/pychestrate/core/managers/ip_pool_manager.py +1744 -0
- ccai/pychestrate/core/managers/project_manager.py +2154 -0
- ccai/pychestrate/core/managers/release_manager.py +5446 -0
- ccai/pychestrate/core/managers/release_template_manager.py +921 -0
- ccai/pychestrate/core/managers/repository_manager.py +1370 -0
- ccai/pychestrate/core/managers/resource_manager.py +1708 -0
- ccai/pychestrate/core/managers/test_manager.py +1571 -0
- ccai/pychestrate/core/managers/user_manager.py +727 -0
- ccai/pychestrate/core/managers/watch_manager.py +1588 -0
- ccai/pychestrate/core/migrations/__init__.py +12 -0
- ccai/pychestrate/core/migrations/env.py +85 -0
- ccai/pychestrate/core/migrations/script.py.mako +24 -0
- ccai/pychestrate/core/migrations/versions/001_system_configuration_tables.py +398 -0
- ccai/pychestrate/core/migrations/versions/002_resource_management_tables.py +454 -0
- ccai/pychestrate/core/migrations/versions/003_project_management_tables.py +842 -0
- ccai/pychestrate/core/migrations/versions/004_phase1_identity_tables.py +673 -0
- ccai/pychestrate/core/migrations/versions/005_phase2_client_tables.py +176 -0
- ccai/pychestrate/core/migrations/versions/006_phase2_projects.py +105 -0
- ccai/pychestrate/core/migrations/versions/007_phase2_tagging.py +59 -0
- ccai/pychestrate/core/migrations/versions/008_phase2_global_variables.py +83 -0
- ccai/pychestrate/core/migrations/versions/009_phase2_notifications.py +150 -0
- ccai/pychestrate/core/migrations/versions/010_phase2_retention.py +134 -0
- ccai/pychestrate/core/migrations/versions/011_phase2_notifications_m2.py +65 -0
- ccai/pychestrate/core/migrations/versions/012_phase2_m3_hardening.py +73 -0
- ccai/pychestrate/core/migrations/versions/013_phase3_layer3_m1.py +285 -0
- ccai/pychestrate/core/migrations/versions/014_phase3_layer3_m2.py +98 -0
- ccai/pychestrate/core/migrations/versions/015_phase2_enrollment_m2.py +105 -0
- ccai/pychestrate/core/migrations/versions/016_phase3_job_envelope.py +96 -0
- ccai/pychestrate/core/migrations/versions/017_phase3_run_state.py +237 -0
- ccai/pychestrate/core/migrations/versions/018_phase3_dispatch_receipt.py +163 -0
- ccai/pychestrate/core/migrations/versions/019_phase3_results_ingest.py +340 -0
- ccai/pychestrate/core/migrations/versions/020_phase3_test_orchestration.py +156 -0
- ccai/pychestrate/core/migrations/versions/021_phase3_b4_artifact_cancel_offline.py +320 -0
- ccai/pychestrate/core/migrations/versions/022_phase4_resource_inventory_pools.py +162 -0
- ccai/pychestrate/core/migrations/versions/023_phase4_checkout_conflict_scheduler.py +193 -0
- ccai/pychestrate/core/migrations/versions/024_phase4_lease_health_usage.py +260 -0
- ccai/pychestrate/core/migrations/versions/025_phase5_matrix_sharding.py +193 -0
- ccai/pychestrate/core/migrations/versions/026_phase5_flake_tracking.py +241 -0
- ccai/pychestrate/core/migrations/versions/027_phase5_triage_compare.py +218 -0
- ccai/pychestrate/core/migrations/versions/028_phase6_pipeline_definition.py +305 -0
- ccai/pychestrate/core/migrations/versions/029_phase6_source_integrations.py +146 -0
- ccai/pychestrate/core/migrations/versions/030_phase6_build_orchestration_artifacts.py +341 -0
- ccai/pychestrate/core/migrations/versions/031_phase7_environment_registry.py +177 -0
- ccai/pychestrate/core/migrations/versions/032_phase7_infra_orchestration.py +153 -0
- ccai/pychestrate/core/migrations/versions/033_phase7_drift_guards.py +236 -0
- ccai/pychestrate/core/migrations/versions/034_phase8_extension_sandbox.py +77 -0
- ccai/pychestrate/core/migrations/versions/035_phase9_timeseries_metrics_ingest.py +82 -0
- ccai/pychestrate/core/migrations/versions/036_phase9_dashboards_alerts.py +194 -0
- ccai/pychestrate/core/migrations/versions/037_phase9_slo_views.py +125 -0
- ccai/pychestrate/core/migrations/versions/038_phase10_maintenance_webhooks_out.py +234 -0
- ccai/pychestrate/core/migrations/versions/039_phase10_webhooks_in.py +167 -0
- ccai/pychestrate/core/migrations/versions/040_phase10_release_channels_agent_upgrade.py +430 -0
- ccai/pychestrate/core/migrations/versions/__init__.py +12 -0
- ccai/pychestrate/core/orm.py +2648 -0
- ccai/pychestrate/core/utc_datetime.py +86 -0
- ccai/pychestrate/webservice/agents/__init__.py +57 -0
- ccai/pychestrate/webservice/agents/bus_subscriber.py +118 -0
- ccai/pychestrate/webservice/agents/capability_matcher.py +118 -0
- ccai/pychestrate/webservice/agents/capability_service.py +150 -0
- ccai/pychestrate/webservice/agents/events.py +44 -0
- ccai/pychestrate/webservice/agents/exceptions.py +48 -0
- ccai/pychestrate/webservice/agents/extensions/__init__.py +12 -0
- ccai/pychestrate/webservice/agents/extensions/capability_kind.py +81 -0
- ccai/pychestrate/webservice/agents/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/agents/factories/artifact_source.py +46 -0
- ccai/pychestrate/webservice/agents/factories/in_memory_transport.py +49 -0
- ccai/pychestrate/webservice/agents/factories/long_poll_transport.py +392 -0
- ccai/pychestrate/webservice/agents/factories/object_store_artifact_source.py +45 -0
- ccai/pychestrate/webservice/agents/factories/rollout_policy.py +60 -0
- ccai/pychestrate/webservice/agents/factories/transport.py +60 -0
- ccai/pychestrate/webservice/agents/inventory_service.py +126 -0
- ccai/pychestrate/webservice/agents/models.py +244 -0
- ccai/pychestrate/webservice/agents/protocol_service.py +227 -0
- ccai/pychestrate/webservice/agents/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/agents/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/agents/restapi/v1/agents_routes.py +565 -0
- ccai/pychestrate/webservice/agents/upgrade_service.py +483 -0
- ccai/pychestrate/webservice/api/__init__.py +41 -0
- ccai/pychestrate/webservice/api/error_catalogue.py +140 -0
- ccai/pychestrate/webservice/api/openapi_document.py +505 -0
- ccai/pychestrate/webservice/api/problem_json.py +411 -0
- ccai/pychestrate/webservice/api/problem_json_webworks.py +210 -0
- ccai/pychestrate/webservice/api/rest_authz.py +147 -0
- ccai/pychestrate/webservice/artifacts/__init__.py +61 -0
- ccai/pychestrate/webservice/artifacts/cas_layout.py +54 -0
- ccai/pychestrate/webservice/artifacts/errors.py +28 -0
- ccai/pychestrate/webservice/artifacts/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/artifacts/factories/default_promotion.py +61 -0
- ccai/pychestrate/webservice/artifacts/factories/promotion_strategy.py +62 -0
- ccai/pychestrate/webservice/artifacts/hashing.py +57 -0
- ccai/pychestrate/webservice/artifacts/models.py +108 -0
- ccai/pychestrate/webservice/artifacts/store.py +286 -0
- ccai/pychestrate/webservice/audit/__init__.py +149 -0
- ccai/pychestrate/webservice/audit/audit_presenter.py +420 -0
- ccai/pychestrate/webservice/audit/audit_query.py +314 -0
- ccai/pychestrate/webservice/audit/audit_writer.py +154 -0
- ccai/pychestrate/webservice/audit/bus_subscriber.py +278 -0
- ccai/pychestrate/webservice/audit/chain_verifier.py +115 -0
- ccai/pychestrate/webservice/audit/data_change_bridge.py +579 -0
- ccai/pychestrate/webservice/audit/events.py +24 -0
- ccai/pychestrate/webservice/audit/exceptions.py +26 -0
- ccai/pychestrate/webservice/audit/extensions/__init__.py +12 -0
- ccai/pychestrate/webservice/audit/extensions/data_change_events.py +82 -0
- ccai/pychestrate/webservice/audit/extensions/event_type.py +48 -0
- ccai/pychestrate/webservice/audit/extensions/ip_allocation_events.py +50 -0
- ccai/pychestrate/webservice/audit/extensions/notification_events.py +79 -0
- ccai/pychestrate/webservice/audit/extensions/project_events.py +119 -0
- ccai/pychestrate/webservice/audit/extensions/reservation_events.py +52 -0
- ccai/pychestrate/webservice/audit/extensions/resource_events.py +82 -0
- ccai/pychestrate/webservice/audit/extensions/role_events.py +124 -0
- ccai/pychestrate/webservice/audit/extensions/rpa_events.py +212 -0
- ccai/pychestrate/webservice/audit/extensions/secret_events.py +130 -0
- ccai/pychestrate/webservice/audit/extensions/session_events.py +104 -0
- ccai/pychestrate/webservice/audit/extensions/ui_profile_events.py +34 -0
- ccai/pychestrate/webservice/audit/extensions/user_events.py +192 -0
- ccai/pychestrate/webservice/audit/extensions/variable_events.py +54 -0
- ccai/pychestrate/webservice/audit/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/audit/factories/audit_sink.py +90 -0
- ccai/pychestrate/webservice/audit/factories/local_db_sink.py +66 -0
- ccai/pychestrate/webservice/audit/models.py +119 -0
- ccai/pychestrate/webservice/audit/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/audit/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/audit/restapi/v1/audit_routes.py +311 -0
- ccai/pychestrate/webservice/backup/__init__.py +108 -0
- ccai/pychestrate/webservice/backup/archive.py +343 -0
- ccai/pychestrate/webservice/backup/cli.py +394 -0
- ccai/pychestrate/webservice/backup/database_snapshot.py +816 -0
- ccai/pychestrate/webservice/backup/errors.py +80 -0
- ccai/pychestrate/webservice/backup/events.py +25 -0
- ccai/pychestrate/webservice/backup/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/backup/factories/local_backend.py +234 -0
- ccai/pychestrate/webservice/backup/factories/storage_backend.py +150 -0
- ccai/pychestrate/webservice/backup/key_material.py +561 -0
- ccai/pychestrate/webservice/backup/locations.py +150 -0
- ccai/pychestrate/webservice/backup/models.py +84 -0
- ccai/pychestrate/webservice/backup/repository.py +192 -0
- ccai/pychestrate/webservice/backup/restapi/__init__.py +0 -0
- ccai/pychestrate/webservice/backup/restapi/v1/__init__.py +9 -0
- ccai/pychestrate/webservice/backup/restapi/v1/backup_routes.py +769 -0
- ccai/pychestrate/webservice/backup/service.py +1214 -0
- ccai/pychestrate/webservice/clients/__init__.py +33 -0
- ccai/pychestrate/webservice/clients/enrollment/__init__.py +42 -0
- ccai/pychestrate/webservice/clients/enrollment/ca_adapter.py +618 -0
- ccai/pychestrate/webservice/clients/enrollment/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/clients/enrollment/factories/csr_subject_verifier.py +145 -0
- ccai/pychestrate/webservice/clients/enrollment/factories/identity_verifier.py +108 -0
- ccai/pychestrate/webservice/clients/enrollment/factories/scope_identity_verifier.py +61 -0
- ccai/pychestrate/webservice/clients/enrollment/factories/stdlib_token_issuer.py +97 -0
- ccai/pychestrate/webservice/clients/enrollment/factories/token_issuer.py +83 -0
- ccai/pychestrate/webservice/clients/enrollment/service.py +780 -0
- ccai/pychestrate/webservice/clients/enums.py +58 -0
- ccai/pychestrate/webservice/clients/events.py +28 -0
- ccai/pychestrate/webservice/clients/exceptions.py +90 -0
- ccai/pychestrate/webservice/clients/liveness_watchdog.py +212 -0
- ccai/pychestrate/webservice/clients/models.py +232 -0
- ccai/pychestrate/webservice/clients/mtls_identity.py +394 -0
- ccai/pychestrate/webservice/clients/registry/__init__.py +45 -0
- ccai/pychestrate/webservice/clients/registry/extensions/__init__.py +12 -0
- ccai/pychestrate/webservice/clients/registry/extensions/client_attribute_extension.py +36 -0
- ccai/pychestrate/webservice/clients/registry/extensions/concurrency_attribute.py +38 -0
- ccai/pychestrate/webservice/clients/registry/extensions/cpu_arch_attribute.py +32 -0
- ccai/pychestrate/webservice/clients/registry/extensions/os_kind_attribute.py +37 -0
- ccai/pychestrate/webservice/clients/registry/service.py +694 -0
- ccai/pychestrate/webservice/clients/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/clients/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/clients/restapi/v1/client_dispatch_routes.py +795 -0
- ccai/pychestrate/webservice/clients/restapi/v1/clients_routes.py +620 -0
- ccai/pychestrate/webservice/clients/restapi/v1/enrollment_routes.py +727 -0
- ccai/pychestrate/webservice/clients/revoked_client_gate.py +123 -0
- ccai/pychestrate/webservice/clients/upgrades/__init__.py +105 -0
- ccai/pychestrate/webservice/clients/upgrades/dtos.py +57 -0
- ccai/pychestrate/webservice/clients/upgrades/enums.py +55 -0
- ccai/pychestrate/webservice/clients/upgrades/errors.py +41 -0
- ccai/pychestrate/webservice/clients/upgrades/events.py +33 -0
- ccai/pychestrate/webservice/clients/upgrades/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/clients/upgrades/factories/fixed_set_policy.py +68 -0
- ccai/pychestrate/webservice/clients/upgrades/factories/object_store_source.py +102 -0
- ccai/pychestrate/webservice/clients/upgrades/factories/rollout_policy_protocol.py +53 -0
- ccai/pychestrate/webservice/clients/upgrades/factories/upgrade_artifact_source_protocol.py +50 -0
- ccai/pychestrate/webservice/clients/upgrades/models.py +159 -0
- ccai/pychestrate/webservice/clients/upgrades/pins.py +141 -0
- ccai/pychestrate/webservice/clients/upgrades/repository.py +237 -0
- ccai/pychestrate/webservice/clients/upgrades/service.py +506 -0
- ccai/pychestrate/webservice/configdocs/__init__.py +200 -0
- ccai/pychestrate/webservice/configdocs/domains.py +137 -0
- ccai/pychestrate/webservice/configdocs/errors.py +174 -0
- ccai/pychestrate/webservice/configdocs/loader.py +428 -0
- ccai/pychestrate/webservice/configdocs/merging.py +306 -0
- ccai/pychestrate/webservice/configdocs/models.py +660 -0
- ccai/pychestrate/webservice/configdocs/protocol.py +160 -0
- ccai/pychestrate/webservice/configdocs/resolver.py +279 -0
- ccai/pychestrate/webservice/configdocs/validation.py +239 -0
- ccai/pychestrate/webservice/csv_export.py +87 -0
- ccai/pychestrate/webservice/embed/__init__.py +63 -0
- ccai/pychestrate/webservice/embed/key_provider.py +128 -0
- ccai/pychestrate/webservice/embed/restapi/__init__.py +1 -0
- ccai/pychestrate/webservice/embed/restapi/v1/__init__.py +1 -0
- ccai/pychestrate/webservice/embed/restapi/v1/embed_routes.py +803 -0
- ccai/pychestrate/webservice/embed/signing.py +397 -0
- ccai/pychestrate/webservice/embed/view_catalog.py +159 -0
- ccai/pychestrate/webservice/extension/__init__.py +20 -0
- ccai/pychestrate/webservice/extension/docs_ext/__init__.py +177 -0
- ccai/pychestrate/webservice/extension/docs_ext/catalog_walker.py +252 -0
- ccai/pychestrate/webservice/extension/docs_ext/models.py +51 -0
- ccai/pychestrate/webservice/extension/docs_ext/templates/protocol_page.rst.jinja +19 -0
- ccai/pychestrate/webservice/extension/docs_ext/templates/protocols_index.rst.jinja +13 -0
- ccai/pychestrate/webservice/extension/docs_ext/templates/resource_page.rst.jinja +18 -0
- ccai/pychestrate/webservice/extension/docs_ext/templates/resources_index.rst.jinja +13 -0
- ccai/pychestrate/webservice/extension/pack_template/__init__.py +40 -0
- ccai/pychestrate/webservice/extension/pack_template/cli.py +214 -0
- ccai/pychestrate/webservice/extension/pack_template/corpus/v1/AGENTS.md.jinja +26 -0
- ccai/pychestrate/webservice/extension/pack_template/corpus/v1/README.rst.jinja +37 -0
- ccai/pychestrate/webservice/extension/pack_template/corpus/v1/_meta.yaml +6 -0
- ccai/pychestrate/webservice/extension/pack_template/corpus/v1/pychestrate_ext.yaml.jinja +30 -0
- ccai/pychestrate/webservice/extension/pack_template/corpus/v1/pyproject.toml.jinja +26 -0
- ccai/pychestrate/webservice/extension/pack_template/corpus/v1/source/packages/ccai/extensions/pychestrate/__NAME__/register.py.jinja +35 -0
- ccai/pychestrate/webservice/extension/pack_template/corpus/v1/source/packages/ccai/extensions/pychestrate/__NAME__/sample_resource.py.jinja +29 -0
- ccai/pychestrate/webservice/extension/pack_template/corpus/v1/source/packages/ccai/factories/pychestrate/__NAME__/sample_factory.py.jinja +40 -0
- ccai/pychestrate/webservice/extension/pack_template/corpus/v1/tests/unit/test_sample.py.jinja +26 -0
- ccai/pychestrate/webservice/extension/pack_template/corpus_loader.py +124 -0
- ccai/pychestrate/webservice/extension/pack_template/generator.py +355 -0
- ccai/pychestrate/webservice/extension/pack_template/models.py +82 -0
- ccai/pychestrate/webservice/extensions/__init__.py +21 -0
- ccai/pychestrate/webservice/extensions/bootstrap.py +229 -0
- ccai/pychestrate/webservice/extensions/cli_ext_pairing.py +137 -0
- ccai/pychestrate/webservice/extensions/discovery.py +212 -0
- ccai/pychestrate/webservice/extensions/ext_router.py +295 -0
- ccai/pychestrate/webservice/extensions/factory_protocol.py +40 -0
- ccai/pychestrate/webservice/extensions/phase2_bootstrap.py +120 -0
- ccai/pychestrate/webservice/extensions/phase3_bootstrap.py +75 -0
- ccai/pychestrate/webservice/extensions/phase4_bootstrap.py +69 -0
- ccai/pychestrate/webservice/extensions/phase5_bootstrap.py +520 -0
- ccai/pychestrate/webservice/extensions/phase6_bootstrap.py +435 -0
- ccai/pychestrate/webservice/extensions/phase7_bootstrap.py +370 -0
- ccai/pychestrate/webservice/extensions/phase8_bootstrap.py +87 -0
- ccai/pychestrate/webservice/extensions/registry.py +179 -0
- ccai/pychestrate/webservice/extensions/resource_extension.py +30 -0
- ccai/pychestrate/webservice/extensions/rest_endpoint_example.py +76 -0
- ccai/pychestrate/webservice/extensions/rest_endpoint_protocol.py +179 -0
- ccai/pychestrate/webservice/extensions/sandbox/__init__.py +65 -0
- ccai/pychestrate/webservice/extensions/sandbox/authority.py +383 -0
- ccai/pychestrate/webservice/extensions/sandbox/errors.py +29 -0
- ccai/pychestrate/webservice/extensions/sandbox/events.py +22 -0
- ccai/pychestrate/webservice/extensions/sandbox/models.py +57 -0
- ccai/pychestrate/webservice/extensions/sandbox/repository.py +153 -0
- ccai/pychestrate/webservice/extensions/sandbox/service.py +268 -0
- ccai/pychestrate/webservice/extensions/view_registry_self_check.py +211 -0
- ccai/pychestrate/webservice/hardening/__init__.py +17 -0
- ccai/pychestrate/webservice/hardening/collisions.py +69 -0
- ccai/pychestrate/webservice/hardening/idempotency.py +135 -0
- ccai/pychestrate/webservice/hardening/logs.py +86 -0
- ccai/pychestrate/webservice/hardening/metrics.py +114 -0
- ccai/pychestrate/webservice/hardening/platform_wsgi.py +160 -0
- ccai/pychestrate/webservice/hardening/rate_limit.py +112 -0
- ccai/pychestrate/webservice/hardening/security_headers.py +290 -0
- ccai/pychestrate/webservice/housekeeping/__init__.py +57 -0
- ccai/pychestrate/webservice/housekeeping/leases.py +191 -0
- ccai/pychestrate/webservice/housekeeping/models.py +44 -0
- ccai/pychestrate/webservice/housekeeping/tasks.py +381 -0
- ccai/pychestrate/webservice/identity/__init__.py +12 -0
- ccai/pychestrate/webservice/identity/flags/__init__.py +32 -0
- ccai/pychestrate/webservice/identity/flags/backend_router.py +198 -0
- ccai/pychestrate/webservice/identity/flags/cache.py +254 -0
- ccai/pychestrate/webservice/identity/flags/events.py +25 -0
- ccai/pychestrate/webservice/identity/flags/exceptions.py +30 -0
- ccai/pychestrate/webservice/identity/flags/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/identity/flags/factories/feature_flag_backend.py +115 -0
- ccai/pychestrate/webservice/identity/flags/factories/local_backend.py +74 -0
- ccai/pychestrate/webservice/identity/flags/flag_evaluator.py +251 -0
- ccai/pychestrate/webservice/identity/flags/flag_service.py +482 -0
- ccai/pychestrate/webservice/identity/flags/health_prober.py +228 -0
- ccai/pychestrate/webservice/identity/flags/models.py +113 -0
- ccai/pychestrate/webservice/identity/flags/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/identity/flags/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/identity/flags/restapi/v1/flags_routes.py +694 -0
- ccai/pychestrate/webservice/identity/flags/rules.py +60 -0
- ccai/pychestrate/webservice/identity/setup/__init__.py +29 -0
- ccai/pychestrate/webservice/identity/setup/exceptions.py +53 -0
- ccai/pychestrate/webservice/identity/setup/models.py +120 -0
- ccai/pychestrate/webservice/identity/setup/setup_manager.py +430 -0
- ccai/pychestrate/webservice/identity/setup/setup_service.py +547 -0
- ccai/pychestrate/webservice/identity/setup/testadmin_seeder.py +345 -0
- ccai/pychestrate/webservice/identity/users/__init__.py +29 -0
- ccai/pychestrate/webservice/identity/users/events.py +27 -0
- ccai/pychestrate/webservice/identity/users/exceptions.py +38 -0
- ccai/pychestrate/webservice/identity/users/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/identity/users/factories/local_directory.py +53 -0
- ccai/pychestrate/webservice/identity/users/factories/user_directory_source.py +96 -0
- ccai/pychestrate/webservice/identity/users/limits.py +32 -0
- ccai/pychestrate/webservice/identity/users/models.py +138 -0
- ccai/pychestrate/webservice/identity/users/repositories/__init__.py +12 -0
- ccai/pychestrate/webservice/identity/users/repositories/user_repository.py +138 -0
- ccai/pychestrate/webservice/identity/users/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/identity/users/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/identity/users/restapi/v1/users_routes.py +465 -0
- ccai/pychestrate/webservice/identity/users/user_service.py +193 -0
- ccai/pychestrate/webservice/ingest/__init__.py +18 -0
- ccai/pychestrate/webservice/ingest/progress/__init__.py +78 -0
- ccai/pychestrate/webservice/ingest/progress/errors.py +42 -0
- ccai/pychestrate/webservice/ingest/progress/events.py +26 -0
- ccai/pychestrate/webservice/ingest/progress/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/ingest/progress/factories/parser_protocol.py +101 -0
- ccai/pychestrate/webservice/ingest/progress/factories/testbase_v1.py +194 -0
- ccai/pychestrate/webservice/ingest/progress/models.py +160 -0
- ccai/pychestrate/webservice/ingest/progress/repositories.py +288 -0
- ccai/pychestrate/webservice/ingest/progress/schema.py +163 -0
- ccai/pychestrate/webservice/ingest/progress/service.py +590 -0
- ccai/pychestrate/webservice/ingest/result/__init__.py +73 -0
- ccai/pychestrate/webservice/ingest/result/classification.py +154 -0
- ccai/pychestrate/webservice/ingest/result/completion.py +657 -0
- ccai/pychestrate/webservice/ingest/result/errors.py +31 -0
- ccai/pychestrate/webservice/ingest/result/events.py +22 -0
- ccai/pychestrate/webservice/ingest/result/extensions/__init__.py +38 -0
- ccai/pychestrate/webservice/ingest/result/extensions/artifact_classifier.py +112 -0
- ccai/pychestrate/webservice/ingest/result/extensions/testbase_classifier.py +114 -0
- ccai/pychestrate/webservice/ingest/result/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/ingest/result/factories/junit_xml.py +522 -0
- ccai/pychestrate/webservice/ingest/result/factories/parser_protocol.py +120 -0
- ccai/pychestrate/webservice/ingest/result/factories/testbase_v1.py +285 -0
- ccai/pychestrate/webservice/ingest/result/models.py +170 -0
- ccai/pychestrate/webservice/ingest/result/repositories.py +363 -0
- ccai/pychestrate/webservice/ingest/result/scanner.py +303 -0
- ccai/pychestrate/webservice/jobs/__init__.py +21 -0
- ccai/pychestrate/webservice/jobs/cancel/__init__.py +58 -0
- ccai/pychestrate/webservice/jobs/cancel/client_cancel.py +189 -0
- ccai/pychestrate/webservice/jobs/cancel/dispatcher.py +298 -0
- ccai/pychestrate/webservice/jobs/cancel/errors.py +32 -0
- ccai/pychestrate/webservice/jobs/cancel/events.py +18 -0
- ccai/pychestrate/webservice/jobs/cancel/heartbeattransport.py +332 -0
- ccai/pychestrate/webservice/jobs/cancel/models.py +76 -0
- ccai/pychestrate/webservice/jobs/cancel/repository.py +171 -0
- ccai/pychestrate/webservice/jobs/dispatch/__init__.py +72 -0
- ccai/pychestrate/webservice/jobs/dispatch/dispatcher.py +333 -0
- ccai/pychestrate/webservice/jobs/dispatch/errors.py +58 -0
- ccai/pychestrate/webservice/jobs/dispatch/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/jobs/dispatch/factories/fifo.py +62 -0
- ccai/pychestrate/webservice/jobs/dispatch/factories/strategy.py +96 -0
- ccai/pychestrate/webservice/jobs/dispatch/models.py +92 -0
- ccai/pychestrate/webservice/jobs/dispatch/receipt/__init__.py +47 -0
- ccai/pychestrate/webservice/jobs/dispatch/receipt/errors.py +44 -0
- ccai/pychestrate/webservice/jobs/dispatch/receipt/models.py +69 -0
- ccai/pychestrate/webservice/jobs/dispatch/receipt/repository.py +151 -0
- ccai/pychestrate/webservice/jobs/dispatch/receipt/schema.py +57 -0
- ccai/pychestrate/webservice/jobs/dispatch/receipt/service.py +281 -0
- ccai/pychestrate/webservice/jobs/dispatch/receipt/timer_wheel.py +226 -0
- ccai/pychestrate/webservice/jobs/dispatch/repository.py +209 -0
- ccai/pychestrate/webservice/jobs/dispatch/transport_adapter.py +182 -0
- ccai/pychestrate/webservice/jobs/envelope/__init__.py +81 -0
- ccai/pychestrate/webservice/jobs/envelope/canonical.py +388 -0
- ccai/pychestrate/webservice/jobs/envelope/codec.py +237 -0
- ccai/pychestrate/webservice/jobs/envelope/errors.py +54 -0
- ccai/pychestrate/webservice/jobs/envelope/models.py +70 -0
- ccai/pychestrate/webservice/jobs/envelope/repository.py +156 -0
- ccai/pychestrate/webservice/jobs/envelope/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/jobs/envelope/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/jobs/envelope/restapi/v1/jwks_routes.py +421 -0
- ccai/pychestrate/webservice/jobs/envelope/restapi/v1/signing_keys_routes.py +204 -0
- ccai/pychestrate/webservice/jobs/envelope/schema.py +335 -0
- ccai/pychestrate/webservice/jobs/envelope/signer.py +466 -0
- ccai/pychestrate/webservice/jobs/envelope/startup.py +200 -0
- ccai/pychestrate/webservice/jobs/offline/__init__.py +48 -0
- ccai/pychestrate/webservice/jobs/offline/cancel_queue.py +151 -0
- ccai/pychestrate/webservice/jobs/offline/errors.py +30 -0
- ccai/pychestrate/webservice/jobs/offline/models.py +135 -0
- ccai/pychestrate/webservice/jobs/offline/pod_state.py +228 -0
- ccai/pychestrate/webservice/jobs/offline/replay.py +117 -0
- ccai/pychestrate/webservice/jobs/readiness.py +234 -0
- ccai/pychestrate/webservice/jobs/reconcile/__init__.py +29 -0
- ccai/pychestrate/webservice/jobs/reconcile/errors.py +15 -0
- ccai/pychestrate/webservice/jobs/reconcile/models.py +69 -0
- ccai/pychestrate/webservice/jobs/reconcile/reconciler.py +260 -0
- ccai/pychestrate/webservice/jobs/results/__init__.py +50 -0
- ccai/pychestrate/webservice/jobs/results/artifact_root.py +202 -0
- ccai/pychestrate/webservice/jobs/results/backend.py +238 -0
- ccai/pychestrate/webservice/jobs/results/errors.py +58 -0
- ccai/pychestrate/webservice/jobs/results/models.py +58 -0
- ccai/pychestrate/webservice/jobs/results/path_builder.py +111 -0
- ccai/pychestrate/webservice/jobs/results/presign.py +431 -0
- ccai/pychestrate/webservice/jobs/results/repository.py +87 -0
- ccai/pychestrate/webservice/jobs/run/__init__.py +17 -0
- ccai/pychestrate/webservice/jobs/run/state/__init__.py +69 -0
- ccai/pychestrate/webservice/jobs/run/state/advance.py +443 -0
- ccai/pychestrate/webservice/jobs/run/state/enums.py +101 -0
- ccai/pychestrate/webservice/jobs/run/state/errors.py +43 -0
- ccai/pychestrate/webservice/jobs/run/state/events.py +83 -0
- ccai/pychestrate/webservice/jobs/run/state/machine.py +496 -0
- ccai/pychestrate/webservice/jobs/run/state/models.py +139 -0
- ccai/pychestrate/webservice/jobs/run/state/outbox_publisher.py +89 -0
- ccai/pychestrate/webservice/jobs/run/state/repository.py +304 -0
- ccai/pychestrate/webservice/jobs/run/state/transition_table.py +227 -0
- ccai/pychestrate/webservice/jobs/scheduling/__init__.py +43 -0
- ccai/pychestrate/webservice/jobs/scheduling/scheduler.py +299 -0
- ccai/pychestrate/webservice/maintenance/__init__.py +59 -0
- ccai/pychestrate/webservice/maintenance/errors.py +28 -0
- ccai/pychestrate/webservice/maintenance/events.py +19 -0
- ccai/pychestrate/webservice/maintenance/gate.py +182 -0
- ccai/pychestrate/webservice/maintenance/models.py +70 -0
- ccai/pychestrate/webservice/maintenance/repository.py +134 -0
- ccai/pychestrate/webservice/maintenance/service.py +425 -0
- ccai/pychestrate/webservice/mcp/__init__.py +18 -0
- ccai/pychestrate/webservice/mcp/lab_tools.py +862 -0
- ccai/pychestrate/webservice/mcp/service_endpoint.py +913 -0
- ccai/pychestrate/webservice/mcp/tooling.py +298 -0
- ccai/pychestrate/webservice/messages.py +17 -0
- ccai/pychestrate/webservice/messaging/__init__.py +18 -0
- ccai/pychestrate/webservice/messaging/event_bus.py +125 -0
- ccai/pychestrate/webservice/messaging/outbox.py +93 -0
- ccai/pychestrate/webservice/metadata.py +55 -0
- ccai/pychestrate/webservice/metrics/__init__.py +14 -0
- ccai/pychestrate/webservice/metrics/alerts/__init__.py +83 -0
- ccai/pychestrate/webservice/metrics/alerts/errors.py +42 -0
- ccai/pychestrate/webservice/metrics/alerts/events.py +25 -0
- ccai/pychestrate/webservice/metrics/alerts/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/metrics/alerts/factories/rule_kind_protocol.py +100 -0
- ccai/pychestrate/webservice/metrics/alerts/factories/threshold_rule_kind.py +284 -0
- ccai/pychestrate/webservice/metrics/alerts/models.py +120 -0
- ccai/pychestrate/webservice/metrics/alerts/repository.py +227 -0
- ccai/pychestrate/webservice/metrics/alerts/service.py +635 -0
- ccai/pychestrate/webservice/metrics/dashboards/__init__.py +78 -0
- ccai/pychestrate/webservice/metrics/dashboards/errors.py +42 -0
- ccai/pychestrate/webservice/metrics/dashboards/events.py +18 -0
- ccai/pychestrate/webservice/metrics/dashboards/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/metrics/dashboards/factories/line_chart_tile_kind.py +101 -0
- ccai/pychestrate/webservice/metrics/dashboards/factories/single_stat_tile_kind.py +91 -0
- ccai/pychestrate/webservice/metrics/dashboards/factories/tile_kind_protocol.py +74 -0
- ccai/pychestrate/webservice/metrics/dashboards/models.py +57 -0
- ccai/pychestrate/webservice/metrics/dashboards/repository.py +102 -0
- ccai/pychestrate/webservice/metrics/dashboards/service.py +507 -0
- ccai/pychestrate/webservice/metrics/ingest/__init__.py +68 -0
- ccai/pychestrate/webservice/metrics/ingest/bus_bridge.py +189 -0
- ccai/pychestrate/webservice/metrics/ingest/errors.py +22 -0
- ccai/pychestrate/webservice/metrics/ingest/events.py +18 -0
- ccai/pychestrate/webservice/metrics/ingest/extensions/__init__.py +9 -0
- ccai/pychestrate/webservice/metrics/ingest/extensions/metric_definition.py +113 -0
- ccai/pychestrate/webservice/metrics/ingest/extensions/reservation_granted_counter.py +81 -0
- ccai/pychestrate/webservice/metrics/ingest/extensions/rpa_counters.py +203 -0
- ccai/pychestrate/webservice/metrics/ingest/service.py +218 -0
- ccai/pychestrate/webservice/metrics/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/metrics/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/metrics/restapi/v1/dashboards_routes.py +846 -0
- ccai/pychestrate/webservice/metrics/restapi/v1/metric_alerts_routes.py +721 -0
- ccai/pychestrate/webservice/metrics/restapi/v1/metrics_routes.py +788 -0
- ccai/pychestrate/webservice/metrics/restapi/v1/slos_routes.py +939 -0
- ccai/pychestrate/webservice/metrics/restapi/v1/ui_metrics_routes.py +492 -0
- ccai/pychestrate/webservice/metrics/slos/__init__.py +75 -0
- ccai/pychestrate/webservice/metrics/slos/errors.py +41 -0
- ccai/pychestrate/webservice/metrics/slos/events.py +22 -0
- ccai/pychestrate/webservice/metrics/slos/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/metrics/slos/factories/availability_ratio_kind.py +170 -0
- ccai/pychestrate/webservice/metrics/slos/factories/kind_protocol.py +99 -0
- ccai/pychestrate/webservice/metrics/slos/models.py +85 -0
- ccai/pychestrate/webservice/metrics/slos/repository.py +140 -0
- ccai/pychestrate/webservice/metrics/slos/service.py +528 -0
- ccai/pychestrate/webservice/metrics/timeseries/__init__.py +89 -0
- ccai/pychestrate/webservice/metrics/timeseries/errors.py +44 -0
- ccai/pychestrate/webservice/metrics/timeseries/events.py +22 -0
- ccai/pychestrate/webservice/metrics/timeseries/facade.py +414 -0
- ccai/pychestrate/webservice/metrics/timeseries/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/metrics/timeseries/factories/driver_protocol.py +62 -0
- ccai/pychestrate/webservice/metrics/timeseries/factories/native_pg_driver.py +61 -0
- ccai/pychestrate/webservice/metrics/timeseries/models.py +54 -0
- ccai/pychestrate/webservice/metrics/timeseries/repository.py +110 -0
- ccai/pychestrate/webservice/metrics/timeseries/selection.py +183 -0
- ccai/pychestrate/webservice/metrics/timeseries/service.py +158 -0
- ccai/pychestrate/webservice/middleware_setup_gate.py +300 -0
- ccai/pychestrate/webservice/middleware_webworks.py +952 -0
- ccai/pychestrate/webservice/notifications/__init__.py +66 -0
- ccai/pychestrate/webservice/notifications/channel_config.py +297 -0
- ccai/pychestrate/webservice/notifications/events.py +29 -0
- ccai/pychestrate/webservice/notifications/exceptions.py +108 -0
- ccai/pychestrate/webservice/notifications/extensions/__init__.py +12 -0
- ccai/pychestrate/webservice/notifications/extensions/channel_test_template.py +50 -0
- ccai/pychestrate/webservice/notifications/extensions/run_failed_template.py +74 -0
- ccai/pychestrate/webservice/notifications/extensions/run_succeeded_template.py +65 -0
- ccai/pychestrate/webservice/notifications/extensions/template.py +74 -0
- ccai/pychestrate/webservice/notifications/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/notifications/factories/channel.py +110 -0
- ccai/pychestrate/webservice/notifications/factories/smtp_email.py +134 -0
- ccai/pychestrate/webservice/notifications/factories/webhook_channels.py +248 -0
- ccai/pychestrate/webservice/notifications/models.py +201 -0
- ccai/pychestrate/webservice/notifications/repository.py +387 -0
- ccai/pychestrate/webservice/notifications/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/notifications/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/notifications/restapi/v1/channels_routes.py +572 -0
- ccai/pychestrate/webservice/notifications/restapi/v1/routing_rules_routes.py +211 -0
- ccai/pychestrate/webservice/notifications/router.py +228 -0
- ccai/pychestrate/webservice/notifications/rule_validation.py +128 -0
- ccai/pychestrate/webservice/notifications/run_notifier.py +267 -0
- ccai/pychestrate/webservice/notifications/service.py +1094 -0
- ccai/pychestrate/webservice/ops/__init__.py +9 -0
- ccai/pychestrate/webservice/ops/release/__init__.py +124 -0
- ccai/pychestrate/webservice/ops/release/errors.py +67 -0
- ccai/pychestrate/webservice/ops/release/events.py +24 -0
- ccai/pychestrate/webservice/ops/release/factories/__init__.py +10 -0
- ccai/pychestrate/webservice/ops/release/factories/hash_ring_policy.py +126 -0
- ccai/pychestrate/webservice/ops/release/factories/release_channel_policy.py +97 -0
- ccai/pychestrate/webservice/ops/release/manifest_signer.py +213 -0
- ccai/pychestrate/webservice/ops/release/manifest_verifier.py +139 -0
- ccai/pychestrate/webservice/ops/release/models.py +259 -0
- ccai/pychestrate/webservice/ops/release/policy_router.py +85 -0
- ccai/pychestrate/webservice/ops/release/release_aspects.py +81 -0
- ccai/pychestrate/webservice/ops/release/release_service.py +349 -0
- ccai/pychestrate/webservice/ops/release/repository.py +207 -0
- ccai/pychestrate/webservice/ops/release/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/ops/release/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/ops/release/restapi/v1/release_channels_routes.py +814 -0
- ccai/pychestrate/webservice/orchestration/__init__.py +18 -0
- ccai/pychestrate/webservice/orchestration/build/__init__.py +77 -0
- ccai/pychestrate/webservice/orchestration/build/artifacts/__init__.py +76 -0
- ccai/pychestrate/webservice/orchestration/build/artifacts/errors.py +35 -0
- ccai/pychestrate/webservice/orchestration/build/artifacts/events.py +22 -0
- ccai/pychestrate/webservice/orchestration/build/artifacts/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/build/artifacts/factories/artifact_type_protocol.py +49 -0
- ccai/pychestrate/webservice/orchestration/build/artifacts/factories/container_image_artifact_type.py +85 -0
- ccai/pychestrate/webservice/orchestration/build/artifacts/models.py +162 -0
- ccai/pychestrate/webservice/orchestration/build/artifacts/repository.py +205 -0
- ccai/pychestrate/webservice/orchestration/build/artifacts/service.py +464 -0
- ccai/pychestrate/webservice/orchestration/build/errors.py +62 -0
- ccai/pychestrate/webservice/orchestration/build/events.py +23 -0
- ccai/pychestrate/webservice/orchestration/build/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/build/factories/makefile_runner_kind.py +82 -0
- ccai/pychestrate/webservice/orchestration/build/factories/runner_protocol.py +54 -0
- ccai/pychestrate/webservice/orchestration/build/models.py +125 -0
- ccai/pychestrate/webservice/orchestration/build/repository.py +121 -0
- ccai/pychestrate/webservice/orchestration/build/repro_snapshot.py +92 -0
- ccai/pychestrate/webservice/orchestration/build/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/orchestration/build/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/orchestration/build/restapi/v1/build_runs_routes.py +1069 -0
- ccai/pychestrate/webservice/orchestration/build/service.py +1026 -0
- ccai/pychestrate/webservice/orchestration/infra/__init__.py +13 -0
- ccai/pychestrate/webservice/orchestration/infra/drift/__init__.py +84 -0
- ccai/pychestrate/webservice/orchestration/infra/drift/errors.py +49 -0
- ccai/pychestrate/webservice/orchestration/infra/drift/events.py +21 -0
- ccai/pychestrate/webservice/orchestration/infra/drift/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/infra/drift/factories/checker_protocol.py +46 -0
- ccai/pychestrate/webservice/orchestration/infra/drift/factories/terraform_checker.py +42 -0
- ccai/pychestrate/webservice/orchestration/infra/drift/models.py +144 -0
- ccai/pychestrate/webservice/orchestration/infra/drift/repository.py +169 -0
- ccai/pychestrate/webservice/orchestration/infra/drift/service.py +615 -0
- ccai/pychestrate/webservice/orchestration/infra/environment/__init__.py +84 -0
- ccai/pychestrate/webservice/orchestration/infra/environment/errors.py +49 -0
- ccai/pychestrate/webservice/orchestration/infra/environment/events.py +22 -0
- ccai/pychestrate/webservice/orchestration/infra/environment/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/infra/environment/factories/k8s_cluster_kind.py +111 -0
- ccai/pychestrate/webservice/orchestration/infra/environment/factories/kind_protocol.py +62 -0
- ccai/pychestrate/webservice/orchestration/infra/environment/models.py +130 -0
- ccai/pychestrate/webservice/orchestration/infra/environment/repository.py +146 -0
- ccai/pychestrate/webservice/orchestration/infra/environment/service.py +672 -0
- ccai/pychestrate/webservice/orchestration/infra/guards/__init__.py +83 -0
- ccai/pychestrate/webservice/orchestration/infra/guards/errors.py +35 -0
- ccai/pychestrate/webservice/orchestration/infra/guards/events.py +18 -0
- ccai/pychestrate/webservice/orchestration/infra/guards/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/infra/guards/factories/apply_requires_role_rule.py +64 -0
- ccai/pychestrate/webservice/orchestration/infra/guards/factories/frozen_env_block_rule.py +61 -0
- ccai/pychestrate/webservice/orchestration/infra/guards/factories/rule_protocol.py +116 -0
- ccai/pychestrate/webservice/orchestration/infra/guards/models.py +58 -0
- ccai/pychestrate/webservice/orchestration/infra/guards/repository.py +90 -0
- ccai/pychestrate/webservice/orchestration/infra/guards/service.py +478 -0
- ccai/pychestrate/webservice/orchestration/infra/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/orchestration/infra/restapi/v1/__init__.py +13 -0
- ccai/pychestrate/webservice/orchestration/infra/restapi/v1/drift_routes.py +642 -0
- ccai/pychestrate/webservice/orchestration/infra/restapi/v1/environments_routes.py +722 -0
- ccai/pychestrate/webservice/orchestration/infra/restapi/v1/guards_routes.py +1096 -0
- ccai/pychestrate/webservice/orchestration/infra/restapi/v1/provisioning_runs_routes.py +926 -0
- ccai/pychestrate/webservice/orchestration/infra/runs/__init__.py +80 -0
- ccai/pychestrate/webservice/orchestration/infra/runs/errors.py +61 -0
- ccai/pychestrate/webservice/orchestration/infra/runs/events.py +23 -0
- ccai/pychestrate/webservice/orchestration/infra/runs/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/infra/runs/factories/driver_protocol.py +63 -0
- ccai/pychestrate/webservice/orchestration/infra/runs/factories/terraform_driver.py +99 -0
- ccai/pychestrate/webservice/orchestration/infra/runs/models.py +105 -0
- ccai/pychestrate/webservice/orchestration/infra/runs/repository.py +108 -0
- ccai/pychestrate/webservice/orchestration/infra/runs/service.py +1047 -0
- ccai/pychestrate/webservice/orchestration/pipelines/__init__.py +15 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/__init__.py +112 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/canonicalization.py +75 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/dag.py +145 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/errors.py +50 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/events.py +24 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/factories/build_step_kind.py +93 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/factories/rpa_step_kind.py +94 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/factories/script_step_kind.py +98 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/factories/step_kind_protocol.py +88 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/factories/test_step_kind.py +95 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/models.py +233 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/parser.py +414 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/repository.py +384 -0
- ccai/pychestrate/webservice/orchestration/pipelines/definition/service.py +1069 -0
- ccai/pychestrate/webservice/orchestration/pipelines/execution/__init__.py +42 -0
- ccai/pychestrate/webservice/orchestration/pipelines/execution/errors.py +33 -0
- ccai/pychestrate/webservice/orchestration/pipelines/execution/orchestrator.py +1250 -0
- ccai/pychestrate/webservice/orchestration/pipelines/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/orchestration/pipelines/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/orchestration/pipelines/restapi/v1/pipeline_definitions_routes.py +1167 -0
- ccai/pychestrate/webservice/orchestration/pipelines/restapi/v1/pipeline_runs_routes.py +891 -0
- ccai/pychestrate/webservice/orchestration/pipelines/sharding/__init__.py +83 -0
- ccai/pychestrate/webservice/orchestration/pipelines/sharding/errors.py +44 -0
- ccai/pychestrate/webservice/orchestration/pipelines/sharding/events.py +23 -0
- ccai/pychestrate/webservice/orchestration/pipelines/sharding/expansion.py +290 -0
- ccai/pychestrate/webservice/orchestration/pipelines/sharding/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/pipelines/sharding/factories/cartesian_strategy.py +92 -0
- ccai/pychestrate/webservice/orchestration/pipelines/sharding/factories/fail_fast_strategy.py +70 -0
- ccai/pychestrate/webservice/orchestration/pipelines/sharding/factories/strategy_protocol.py +108 -0
- ccai/pychestrate/webservice/orchestration/pipelines/sharding/models.py +140 -0
- ccai/pychestrate/webservice/orchestration/pipelines/sharding/repository.py +133 -0
- ccai/pychestrate/webservice/orchestration/pipelines/sharding/service.py +471 -0
- ccai/pychestrate/webservice/orchestration/rpa/__init__.py +133 -0
- ccai/pychestrate/webservice/orchestration/rpa/candidates.py +164 -0
- ccai/pychestrate/webservice/orchestration/rpa/errors.py +139 -0
- ccai/pychestrate/webservice/orchestration/rpa/events.py +28 -0
- ccai/pychestrate/webservice/orchestration/rpa/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/rpa/factories/execution_mode_protocol.py +70 -0
- ccai/pychestrate/webservice/orchestration/rpa/factories/job_type_protocol.py +153 -0
- ccai/pychestrate/webservice/orchestration/rpa/factories/process_execution_mode.py +104 -0
- ccai/pychestrate/webservice/orchestration/rpa/factories/taskplus_execution_mode.py +95 -0
- ccai/pychestrate/webservice/orchestration/rpa/models.py +294 -0
- ccai/pychestrate/webservice/orchestration/rpa/packet.py +505 -0
- ccai/pychestrate/webservice/orchestration/rpa/repository.py +492 -0
- ccai/pychestrate/webservice/orchestration/rpa/restapi/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/rpa/restapi/v1/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/rpa/restapi/v1/rpa_routes.py +1194 -0
- ccai/pychestrate/webservice/orchestration/rpa/service.py +2183 -0
- ccai/pychestrate/webservice/orchestration/source/__init__.py +83 -0
- ccai/pychestrate/webservice/orchestration/source/errors.py +42 -0
- ccai/pychestrate/webservice/orchestration/source/events.py +21 -0
- ccai/pychestrate/webservice/orchestration/source/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/source/factories/github_provider.py +148 -0
- ccai/pychestrate/webservice/orchestration/source/factories/provider_protocol.py +152 -0
- ccai/pychestrate/webservice/orchestration/source/models.py +101 -0
- ccai/pychestrate/webservice/orchestration/source/repository.py +172 -0
- ccai/pychestrate/webservice/orchestration/source/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/orchestration/source/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/orchestration/source/restapi/v1/source_integrations_routes.py +568 -0
- ccai/pychestrate/webservice/orchestration/source/service.py +700 -0
- ccai/pychestrate/webservice/orchestration/test/__init__.py +59 -0
- ccai/pychestrate/webservice/orchestration/test/artifact_browser/__init__.py +65 -0
- ccai/pychestrate/webservice/orchestration/test/artifact_browser/errors.py +28 -0
- ccai/pychestrate/webservice/orchestration/test/artifact_browser/events.py +19 -0
- ccai/pychestrate/webservice/orchestration/test/artifact_browser/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/test/artifact_browser/factories/log_stream_renderer.py +71 -0
- ccai/pychestrate/webservice/orchestration/test/artifact_browser/factories/plain_text_renderer.py +66 -0
- ccai/pychestrate/webservice/orchestration/test/artifact_browser/factories/renderer_protocol.py +95 -0
- ccai/pychestrate/webservice/orchestration/test/artifact_browser/service.py +163 -0
- ccai/pychestrate/webservice/orchestration/test/catalog/__init__.py +54 -0
- ccai/pychestrate/webservice/orchestration/test/catalog/canonicalization.py +76 -0
- ccai/pychestrate/webservice/orchestration/test/catalog/catalog.py +199 -0
- ccai/pychestrate/webservice/orchestration/test/catalog/errors.py +25 -0
- ccai/pychestrate/webservice/orchestration/test/catalog/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/orchestration/test/catalog/factories/importer_protocol.py +65 -0
- ccai/pychestrate/webservice/orchestration/test/catalog/factories/testbase_project.py +307 -0
- ccai/pychestrate/webservice/orchestration/test/catalog/models.py +70 -0
- ccai/pychestrate/webservice/orchestration/test/catalog/payloads.py +113 -0
- ccai/pychestrate/webservice/orchestration/test/catalog/repository.py +89 -0
- ccai/pychestrate/webservice/orchestration/test/compare/__init__.py +74 -0
- ccai/pychestrate/webservice/orchestration/test/compare/errors.py +35 -0
- ccai/pychestrate/webservice/orchestration/test/compare/events.py +19 -0
- ccai/pychestrate/webservice/orchestration/test/compare/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/test/compare/factories/diff_viewer_protocol.py +79 -0
- ccai/pychestrate/webservice/orchestration/test/compare/factories/generic_two_pane_viewer.py +51 -0
- ccai/pychestrate/webservice/orchestration/test/compare/models.py +80 -0
- ccai/pychestrate/webservice/orchestration/test/compare/repository.py +81 -0
- ccai/pychestrate/webservice/orchestration/test/compare/service.py +442 -0
- ccai/pychestrate/webservice/orchestration/test/errors.py +39 -0
- ccai/pychestrate/webservice/orchestration/test/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/orchestration/test/factories/runner_protocol.py +78 -0
- ccai/pychestrate/webservice/orchestration/test/factories/testbase_runner.py +117 -0
- ccai/pychestrate/webservice/orchestration/test/flake/__init__.py +80 -0
- ccai/pychestrate/webservice/orchestration/test/flake/errors.py +34 -0
- ccai/pychestrate/webservice/orchestration/test/flake/events.py +22 -0
- ccai/pychestrate/webservice/orchestration/test/flake/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/test/flake/factories/classifier_protocol.py +94 -0
- ccai/pychestrate/webservice/orchestration/test/flake/factories/window_ratio_classifier.py +128 -0
- ccai/pychestrate/webservice/orchestration/test/flake/models.py +183 -0
- ccai/pychestrate/webservice/orchestration/test/flake/repository.py +207 -0
- ccai/pychestrate/webservice/orchestration/test/flake/service.py +545 -0
- ccai/pychestrate/webservice/orchestration/test/live/__init__.py +38 -0
- ccai/pychestrate/webservice/orchestration/test/live/bus_bridge.py +184 -0
- ccai/pychestrate/webservice/orchestration/test/live/hub.py +135 -0
- ccai/pychestrate/webservice/orchestration/test/live/relay.py +179 -0
- ccai/pychestrate/webservice/orchestration/test/live/snapshot.py +179 -0
- ccai/pychestrate/webservice/orchestration/test/live/sse_channel.py +85 -0
- ccai/pychestrate/webservice/orchestration/test/models.py +88 -0
- ccai/pychestrate/webservice/orchestration/test/orchestrator.py +385 -0
- ccai/pychestrate/webservice/orchestration/test/repository.py +110 -0
- ccai/pychestrate/webservice/orchestration/test/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/orchestration/test/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/orchestration/test/restapi/v1/test_catalog_routes.py +843 -0
- ccai/pychestrate/webservice/orchestration/test/restapi/v1/test_runs_routes.py +938 -0
- ccai/pychestrate/webservice/orchestration/test/triage/__init__.py +80 -0
- ccai/pychestrate/webservice/orchestration/test/triage/errors.py +39 -0
- ccai/pychestrate/webservice/orchestration/test/triage/events.py +18 -0
- ccai/pychestrate/webservice/orchestration/test/triage/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/orchestration/test/triage/factories/classifier_protocol.py +56 -0
- ccai/pychestrate/webservice/orchestration/test/triage/factories/infra_flake_classifier.py +88 -0
- ccai/pychestrate/webservice/orchestration/test/triage/factories/null_tracker_driver.py +59 -0
- ccai/pychestrate/webservice/orchestration/test/triage/factories/tracker_protocol.py +66 -0
- ccai/pychestrate/webservice/orchestration/test/triage/models.py +113 -0
- ccai/pychestrate/webservice/orchestration/test/triage/repository.py +128 -0
- ccai/pychestrate/webservice/orchestration/test/triage/service.py +425 -0
- ccai/pychestrate/webservice/persistence/__init__.py +12 -0
- ccai/pychestrate/webservice/persistence/schema.py +25 -0
- ccai/pychestrate/webservice/plugin_api/__init__.py +51 -0
- ccai/pychestrate/webservice/plugin_api/annotations.py +131 -0
- ccai/pychestrate/webservice/plugin_api/catalog_builder.py +203 -0
- ccai/pychestrate/webservice/plugin_api/catalog_validator.py +124 -0
- ccai/pychestrate/webservice/plugin_api/restapi/__init__.py +9 -0
- ccai/pychestrate/webservice/plugin_api/restapi/v1/__init__.py +9 -0
- ccai/pychestrate/webservice/plugin_api/restapi/v1/catalog_routes.py +365 -0
- ccai/pychestrate/webservice/plugin_api/restapi/v1/ext_mount_routes.py +222 -0
- ccai/pychestrate/webservice/plugin_api/runtime.py +80 -0
- ccai/pychestrate/webservice/pods/__init__.py +60 -0
- ccai/pychestrate/webservice/pods/bus_subscriber.py +226 -0
- ccai/pychestrate/webservice/pods/definitions_service.py +375 -0
- ccai/pychestrate/webservice/pods/dynamic_service.py +304 -0
- ccai/pychestrate/webservice/pods/events.py +57 -0
- ccai/pychestrate/webservice/pods/exceptions.py +63 -0
- ccai/pychestrate/webservice/pods/extensions/__init__.py +12 -0
- ccai/pychestrate/webservice/pods/extensions/member_kind.py +83 -0
- ccai/pychestrate/webservice/pods/extensions/renderer.py +73 -0
- ccai/pychestrate/webservice/pods/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/pods/factories/integrity_validator.py +64 -0
- ccai/pychestrate/webservice/pods/factories/libvirt_provisioner.py +52 -0
- ccai/pychestrate/webservice/pods/factories/provisioner.py +56 -0
- ccai/pychestrate/webservice/pods/factories/validator.py +52 -0
- ccai/pychestrate/webservice/pods/lifecycle_service.py +276 -0
- ccai/pychestrate/webservice/pods/models.py +303 -0
- ccai/pychestrate/webservice/pods/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/pods/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/pods/restapi/v1/pods_routes.py +1245 -0
- ccai/pychestrate/webservice/pods/scoped_config_service.py +254 -0
- ccai/pychestrate/webservice/pods/static_service.py +517 -0
- ccai/pychestrate/webservice/pods/topology_service.py +189 -0
- ccai/pychestrate/webservice/project_templates/__init__.py +37 -0
- ccai/pychestrate/webservice/project_templates/exceptions.py +25 -0
- ccai/pychestrate/webservice/project_templates/extensions/__init__.py +12 -0
- ccai/pychestrate/webservice/project_templates/extensions/standard_ci.py +93 -0
- ccai/pychestrate/webservice/project_templates/extensions/template.py +85 -0
- ccai/pychestrate/webservice/project_templates/registry.py +73 -0
- ccai/pychestrate/webservice/project_templates/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/project_templates/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/project_templates/restapi/v1/templates_routes.py +153 -0
- ccai/pychestrate/webservice/project_templates/service.py +405 -0
- ccai/pychestrate/webservice/projects/__init__.py +35 -0
- ccai/pychestrate/webservice/projects/bridge.py +773 -0
- ccai/pychestrate/webservice/projects/bus_subscriber.py +69 -0
- ccai/pychestrate/webservice/projects/events.py +25 -0
- ccai/pychestrate/webservice/projects/exceptions.py +57 -0
- ccai/pychestrate/webservice/projects/extensions/__init__.py +12 -0
- ccai/pychestrate/webservice/projects/extensions/cost_center.py +33 -0
- ccai/pychestrate/webservice/projects/extensions/metadata_field.py +91 -0
- ccai/pychestrate/webservice/projects/legacy_identity.py +45 -0
- ccai/pychestrate/webservice/projects/metadata_registry.py +126 -0
- ccai/pychestrate/webservice/projects/models.py +116 -0
- ccai/pychestrate/webservice/projects/repository.py +363 -0
- ccai/pychestrate/webservice/projects/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/projects/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/projects/restapi/v1/projects_routes.py +1038 -0
- ccai/pychestrate/webservice/projects/restapi/v1/release_templates_routes.py +1095 -0
- ccai/pychestrate/webservice/projects/service.py +657 -0
- ccai/pychestrate/webservice/projects/slug.py +56 -0
- ccai/pychestrate/webservice/public_endpoint.py +227 -0
- ccai/pychestrate/webservice/pychestrate_presence.py +194 -0
- ccai/pychestrate/webservice/pychestrate_variables.py +488 -0
- ccai/pychestrate/webservice/resources/__init__.py +22 -0
- ccai/pychestrate/webservice/resources/checkout/__init__.py +46 -0
- ccai/pychestrate/webservice/resources/checkout/errors.py +35 -0
- ccai/pychestrate/webservice/resources/checkout/events.py +20 -0
- ccai/pychestrate/webservice/resources/checkout/models.py +86 -0
- ccai/pychestrate/webservice/resources/checkout/repository.py +99 -0
- ccai/pychestrate/webservice/resources/checkout/service.py +305 -0
- ccai/pychestrate/webservice/resources/conflict/__init__.py +56 -0
- ccai/pychestrate/webservice/resources/conflict/errors.py +15 -0
- ccai/pychestrate/webservice/resources/conflict/evaluator.py +103 -0
- ccai/pychestrate/webservice/resources/conflict/rules/__init__.py +9 -0
- ccai/pychestrate/webservice/resources/conflict/rules/exclusive_rule.py +74 -0
- ccai/pychestrate/webservice/resources/conflict/rules/rule_protocol.py +66 -0
- ccai/pychestrate/webservice/resources/conflict/rules/shared_rule.py +53 -0
- ccai/pychestrate/webservice/resources/health/__init__.py +45 -0
- ccai/pychestrate/webservice/resources/health/errors.py +28 -0
- ccai/pychestrate/webservice/resources/health/events.py +20 -0
- ccai/pychestrate/webservice/resources/health/models.py +88 -0
- ccai/pychestrate/webservice/resources/health/repository.py +106 -0
- ccai/pychestrate/webservice/resources/health/service.py +311 -0
- ccai/pychestrate/webservice/resources/inventory/__init__.py +64 -0
- ccai/pychestrate/webservice/resources/inventory/errors.py +50 -0
- ccai/pychestrate/webservice/resources/inventory/events.py +21 -0
- ccai/pychestrate/webservice/resources/inventory/kinds/__init__.py +9 -0
- ccai/pychestrate/webservice/resources/inventory/kinds/device_kind.py +104 -0
- ccai/pychestrate/webservice/resources/inventory/kinds/kind_protocol.py +106 -0
- ccai/pychestrate/webservice/resources/inventory/models.py +75 -0
- ccai/pychestrate/webservice/resources/inventory/repository.py +152 -0
- ccai/pychestrate/webservice/resources/inventory/service.py +420 -0
- ccai/pychestrate/webservice/resources/lease/__init__.py +45 -0
- ccai/pychestrate/webservice/resources/lease/errors.py +36 -0
- ccai/pychestrate/webservice/resources/lease/events.py +20 -0
- ccai/pychestrate/webservice/resources/lease/models.py +93 -0
- ccai/pychestrate/webservice/resources/lease/repository.py +119 -0
- ccai/pychestrate/webservice/resources/lease/service.py +397 -0
- ccai/pychestrate/webservice/resources/pools/__init__.py +48 -0
- ccai/pychestrate/webservice/resources/pools/errors.py +34 -0
- ccai/pychestrate/webservice/resources/pools/events.py +19 -0
- ccai/pychestrate/webservice/resources/pools/models.py +77 -0
- ccai/pychestrate/webservice/resources/pools/repository.py +159 -0
- ccai/pychestrate/webservice/resources/pools/service.py +320 -0
- ccai/pychestrate/webservice/resources/restapi/__init__.py +10 -0
- ccai/pychestrate/webservice/resources/restapi/v1/__init__.py +9 -0
- ccai/pychestrate/webservice/resources/restapi/v1/resource_pools_routes.py +1278 -0
- ccai/pychestrate/webservice/resources/restapi/v1/resources_routes.py +1063 -0
- ccai/pychestrate/webservice/resources/scheduler/__init__.py +49 -0
- ccai/pychestrate/webservice/resources/scheduler/errors.py +44 -0
- ccai/pychestrate/webservice/resources/scheduler/events.py +22 -0
- ccai/pychestrate/webservice/resources/scheduler/models.py +98 -0
- ccai/pychestrate/webservice/resources/scheduler/repository.py +141 -0
- ccai/pychestrate/webservice/resources/scheduler/service.py +391 -0
- ccai/pychestrate/webservice/resources/usage_history/__init__.py +39 -0
- ccai/pychestrate/webservice/resources/usage_history/errors.py +21 -0
- ccai/pychestrate/webservice/resources/usage_history/events.py +19 -0
- ccai/pychestrate/webservice/resources/usage_history/models.py +100 -0
- ccai/pychestrate/webservice/resources/usage_history/repository.py +100 -0
- ccai/pychestrate/webservice/resources/usage_history/service.py +192 -0
- ccai/pychestrate/webservice/retention/__init__.py +35 -0
- ccai/pychestrate/webservice/retention/events.py +22 -0
- ccai/pychestrate/webservice/retention/exceptions.py +38 -0
- ccai/pychestrate/webservice/retention/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/retention/factories/action.py +64 -0
- ccai/pychestrate/webservice/retention/factories/additional_actions.py +104 -0
- ccai/pychestrate/webservice/retention/factories/delete_action.py +76 -0
- ccai/pychestrate/webservice/retention/legal_hold.py +141 -0
- ccai/pychestrate/webservice/retention/models.py +191 -0
- ccai/pychestrate/webservice/retention/repository.py +114 -0
- ccai/pychestrate/webservice/retention/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/retention/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/retention/restapi/v1/retention_routes.py +557 -0
- ccai/pychestrate/webservice/retention/service.py +512 -0
- ccai/pychestrate/webservice/runs/__init__.py +22 -0
- ccai/pychestrate/webservice/runs/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/runs/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/runs/restapi/v1/artifacts_routes.py +1238 -0
- ccai/pychestrate/webservice/runs/restapi/v1/runs_events_routes.py +700 -0
- ccai/pychestrate/webservice/runs/restapi/v1/runs_routes.py +2702 -0
- ccai/pychestrate/webservice/runs/restapi/v1/task_results.py +178 -0
- ccai/pychestrate/webservice/runtime_bootstrap.py +1079 -0
- ccai/pychestrate/webservice/secrets/__init__.py +27 -0
- ccai/pychestrate/webservice/secrets/events.py +26 -0
- ccai/pychestrate/webservice/secrets/exceptions.py +55 -0
- ccai/pychestrate/webservice/secrets/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/secrets/factories/local_backend.py +295 -0
- ccai/pychestrate/webservice/secrets/factories/secrets_backend.py +162 -0
- ccai/pychestrate/webservice/secrets/kek_loader.py +201 -0
- ccai/pychestrate/webservice/secrets/models.py +169 -0
- ccai/pychestrate/webservice/secrets/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/secrets/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/secrets/restapi/v1/secrets_routes.py +728 -0
- ccai/pychestrate/webservice/secrets/secret_bytes.py +84 -0
- ccai/pychestrate/webservice/secrets/secrets_aspects.py +68 -0
- ccai/pychestrate/webservice/secrets/secrets_service.py +927 -0
- ccai/pychestrate/webservice/security/__init__.py +12 -0
- ccai/pychestrate/webservice/security/auth/__init__.py +42 -0
- ccai/pychestrate/webservice/security/auth/anonymous_access.py +178 -0
- ccai/pychestrate/webservice/security/auth/api_tokens/__init__.py +56 -0
- ccai/pychestrate/webservice/security/auth/api_tokens/audit_events.py +116 -0
- ccai/pychestrate/webservice/security/auth/api_tokens/events.py +26 -0
- ccai/pychestrate/webservice/security/auth/api_tokens/exceptions.py +60 -0
- ccai/pychestrate/webservice/security/auth/api_tokens/models.py +101 -0
- ccai/pychestrate/webservice/security/auth/api_tokens/service.py +1136 -0
- ccai/pychestrate/webservice/security/auth/client_address.py +332 -0
- ccai/pychestrate/webservice/security/auth/cookies.py +79 -0
- ccai/pychestrate/webservice/security/auth/events.py +25 -0
- ccai/pychestrate/webservice/security/auth/exceptions.py +37 -0
- ccai/pychestrate/webservice/security/auth/extensions/__init__.py +35 -0
- ccai/pychestrate/webservice/security/auth/extensions/mfa_method.py +138 -0
- ccai/pychestrate/webservice/security/auth/extensions/totp_method.py +208 -0
- ccai/pychestrate/webservice/security/auth/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/security/auth/factories/auth_provider.py +122 -0
- ccai/pychestrate/webservice/security/auth/factories/local_provider.py +84 -0
- ccai/pychestrate/webservice/security/auth/factories/password_hasher.py +182 -0
- ccai/pychestrate/webservice/security/auth/factories/stdlib_scrypt_hasher.py +244 -0
- ccai/pychestrate/webservice/security/auth/local_flow.py +322 -0
- ccai/pychestrate/webservice/security/auth/models.py +241 -0
- ccai/pychestrate/webservice/security/auth/password_lifecycle.py +737 -0
- ccai/pychestrate/webservice/security/auth/password_policy.py +369 -0
- ccai/pychestrate/webservice/security/auth/pepper_loader.py +74 -0
- ccai/pychestrate/webservice/security/auth/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/security/auth/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/security/auth/restapi/v1/api_tokens_routes.py +709 -0
- ccai/pychestrate/webservice/security/auth/restapi/v1/auth_routes.py +242 -0
- ccai/pychestrate/webservice/security/auth/restapi/v1/me_routes.py +445 -0
- ccai/pychestrate/webservice/security/auth/session_service.py +401 -0
- ccai/pychestrate/webservice/security/rbac/__init__.py +58 -0
- ccai/pychestrate/webservice/security/rbac/binding_service.py +393 -0
- ccai/pychestrate/webservice/security/rbac/cache.py +219 -0
- ccai/pychestrate/webservice/security/rbac/catalog.py +83 -0
- ccai/pychestrate/webservice/security/rbac/events.py +22 -0
- ccai/pychestrate/webservice/security/rbac/exceptions.py +45 -0
- ccai/pychestrate/webservice/security/rbac/extensions/__init__.py +12 -0
- ccai/pychestrate/webservice/security/rbac/extensions/core_permissions.py +398 -0
- ccai/pychestrate/webservice/security/rbac/extensions/core_roles.py +348 -0
- ccai/pychestrate/webservice/security/rbac/extensions/permission_extension.py +56 -0
- ccai/pychestrate/webservice/security/rbac/extensions/project_permissions.py +65 -0
- ccai/pychestrate/webservice/security/rbac/extensions/project_roles.py +87 -0
- ccai/pychestrate/webservice/security/rbac/extensions/role_extension.py +45 -0
- ccai/pychestrate/webservice/security/rbac/extensions/workflow_roles.py +207 -0
- ccai/pychestrate/webservice/security/rbac/inheritance.py +175 -0
- ccai/pychestrate/webservice/security/rbac/models.py +151 -0
- ccai/pychestrate/webservice/security/rbac/rbac_evaluator.py +504 -0
- ccai/pychestrate/webservice/security/rbac/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/security/rbac/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/security/rbac/restapi/v1/rbac_routes.py +713 -0
- ccai/pychestrate/webservice/security/rbac/seeding.py +191 -0
- ccai/pychestrate/webservice/system/__init__.py +16 -0
- ccai/pychestrate/webservice/system/operations.py +554 -0
- ccai/pychestrate/webservice/system/prometheus.py +321 -0
- ccai/pychestrate/webservice/system/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/system/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/system/restapi/v1/operations_routes.py +155 -0
- ccai/pychestrate/webservice/system/restapi/v1/system_health_routes.py +453 -0
- ccai/pychestrate/webservice/tagging/__init__.py +40 -0
- ccai/pychestrate/webservice/tagging/bus_subscriber.py +93 -0
- ccai/pychestrate/webservice/tagging/canonical.py +94 -0
- ccai/pychestrate/webservice/tagging/exceptions.py +30 -0
- ccai/pychestrate/webservice/tagging/expression.py +221 -0
- ccai/pychestrate/webservice/tagging/extensions/__init__.py +12 -0
- ccai/pychestrate/webservice/tagging/extensions/environment.py +59 -0
- ccai/pychestrate/webservice/tagging/extensions/taxonomy.py +50 -0
- ccai/pychestrate/webservice/tagging/models.py +52 -0
- ccai/pychestrate/webservice/tagging/registry.py +62 -0
- ccai/pychestrate/webservice/tagging/repository.py +148 -0
- ccai/pychestrate/webservice/tagging/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/tagging/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/tagging/restapi/v1/tags_routes.py +531 -0
- ccai/pychestrate/webservice/tagging/service.py +225 -0
- ccai/pychestrate/webservice/variables/__init__.py +35 -0
- ccai/pychestrate/webservice/variables/cache.py +125 -0
- ccai/pychestrate/webservice/variables/events.py +21 -0
- ccai/pychestrate/webservice/variables/exceptions.py +30 -0
- ccai/pychestrate/webservice/variables/factories/__init__.py +12 -0
- ccai/pychestrate/webservice/variables/factories/database_resolver.py +62 -0
- ccai/pychestrate/webservice/variables/factories/secret_ref_dereferencer.py +89 -0
- ccai/pychestrate/webservice/variables/factories/variable_resolver.py +58 -0
- ccai/pychestrate/webservice/variables/models.py +127 -0
- ccai/pychestrate/webservice/variables/repository.py +155 -0
- ccai/pychestrate/webservice/variables/restapi/__init__.py +12 -0
- ccai/pychestrate/webservice/variables/restapi/v1/__init__.py +12 -0
- ccai/pychestrate/webservice/variables/restapi/v1/variables_routes.py +652 -0
- ccai/pychestrate/webservice/variables/service.py +590 -0
- ccai/pychestrate/webservice/variables/system_store.py +550 -0
- ccai/pychestrate/webservice/webhooks_in/__init__.py +113 -0
- ccai/pychestrate/webservice/webhooks_in/configuration_service.py +755 -0
- ccai/pychestrate/webservice/webhooks_in/dispatcher.py +441 -0
- ccai/pychestrate/webservice/webhooks_in/errors.py +74 -0
- ccai/pychestrate/webservice/webhooks_in/events.py +32 -0
- ccai/pychestrate/webservice/webhooks_in/factories/__init__.py +10 -0
- ccai/pychestrate/webservice/webhooks_in/factories/generic_hmac_parser.py +151 -0
- ccai/pychestrate/webservice/webhooks_in/factories/inbound_webhook_parser.py +105 -0
- ccai/pychestrate/webservice/webhooks_in/models.py +263 -0
- ccai/pychestrate/webservice/webhooks_in/normalization.py +106 -0
- ccai/pychestrate/webservice/webhooks_in/replay_cache.py +101 -0
- ccai/pychestrate/webservice/webhooks_in/repository.py +179 -0
- ccai/pychestrate/webservice/webhooks_in/restapi/__init__.py +0 -0
- ccai/pychestrate/webservice/webhooks_in/restapi/v1/__init__.py +0 -0
- ccai/pychestrate/webservice/webhooks_in/restapi/v1/webhooks_in_routes.py +1124 -0
- ccai/pychestrate/webservice/webhooks_in/verification.py +203 -0
- ccai/pychestrate/webservice/webhooks_out/__init__.py +82 -0
- ccai/pychestrate/webservice/webhooks_out/delivery.py +267 -0
- ccai/pychestrate/webservice/webhooks_out/errors.py +34 -0
- ccai/pychestrate/webservice/webhooks_out/events.py +20 -0
- ccai/pychestrate/webservice/webhooks_out/factories/__init__.py +9 -0
- ccai/pychestrate/webservice/webhooks_out/factories/notification_channel_protocol.py +45 -0
- ccai/pychestrate/webservice/webhooks_out/factories/webhook_channel.py +42 -0
- ccai/pychestrate/webservice/webhooks_out/models.py +130 -0
- ccai/pychestrate/webservice/webhooks_out/repository.py +154 -0
- ccai/pychestrate/webservice/webhooks_out/restapi/__init__.py +0 -0
- ccai/pychestrate/webservice/webhooks_out/restapi/v1/__init__.py +0 -0
- ccai/pychestrate/webservice/webhooks_out/restapi/v1/webhooks_out_routes.py +1068 -0
- ccai/pychestrate/webservice/webhooks_out/service.py +545 -0
- ccai/pychestrate/webservice/webinterface/__init__.py +12 -0
- ccai/pychestrate/webservice/webinterface/blueprints/__init__.py +32 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/__init__.py +28 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/auth_adapter.py +608 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/identity_admin.py +2738 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/permission_denied.py +95 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes.py +2189 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes_account.py +334 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes_audit.py +702 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes_enrollment.py +982 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes_notifications.py +908 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes_password.py +503 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes_roles.py +957 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes_rpa_types.py +712 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes_sessions.py +910 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes_tokens.py +956 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes_ui_profile.py +190 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes_users.py +1693 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/routes_variables.py +938 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/_password_rules.html +104 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/account_password.html +50 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/account_preferences.html +60 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/audit/list.html +140 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/base.html +95 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/bundle_mount.html +13 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/chromeless_base.html +46 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/enrollment/list.html +161 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/login.html +97 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/logout_confirm.html +43 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/notifications/channel_create.html +87 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/notifications/channel_detail.html +112 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/notifications/overview.html +130 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/notifications/rule_create.html +75 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/password_change_required.html +69 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/password_link.html +74 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/roles/create.html +69 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/roles/detail.html +127 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/roles/edit.html +59 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/roles/list.html +72 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/rpa_types/create.html +79 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/rpa_types/detail.html +165 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/rpa_types/edit.html +64 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/rpa_types/list.html +59 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/sessions/list.html +143 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/tokens/_minted.html +27 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/tokens/account.html +105 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/tokens/admin.html +160 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/ui_profile.html +39 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/users/create.html +138 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/users/detail.html +105 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/users/edit.html +91 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/users/list.html +102 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/users/password.html +134 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/variables/create.html +63 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/variables/detail.html +76 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/variables/edit.html +57 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/variables/history.html +80 -0
- ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/variables/list.html +114 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/__init__.py +36 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/dashboard_activity.py +310 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/project_access.py +447 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/repository_credentials.py +220 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/routes.py +2531 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_builds.py +1595 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_calendar.py +731 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_infrastructure.py +676 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_release_templates.py +1405 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_releases.py +828 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_repositories.py +1376 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_rpa.py +1309 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_tests.py +678 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_watches.py +1801 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/base.html +149 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/_build_macros.html +40 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/_step_format.html +11 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/detail.html +122 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/list.html +97 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/logs.html +34 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/spec_create.html +84 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/spec_detail.html +149 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/spec_edit.html +82 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/spec_list.html +88 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/calendar/event_detail.html +101 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/calendar/event_list.html +69 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/calendar/view.html +191 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/dashboard.html +180 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/infrastructure/detail.html +77 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/infrastructure/list.html +96 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/infrastructure/logs.html +31 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/infrastructure/spec_detail.html +89 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/infrastructure/spec_list.html +60 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/members/add.html +79 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/members/edit.html +54 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/members/list.html +97 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/projects/create.html +56 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/projects/detail.html +198 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/projects/edit.html +54 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/projects/list.html +67 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/release_templates/create.html +87 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/release_templates/detail.html +99 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/release_templates/edit.html +80 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/release_templates/list.html +65 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/releases/channel_list.html +60 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/releases/detail.html +136 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/releases/list.html +84 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/releases/pipeline_detail.html +113 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/releases/pipeline_list.html +67 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/releases/schedule_list.html +58 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/repositories/create.html +86 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/repositories/detail.html +107 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/repositories/edit.html +72 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/repositories/list.html +76 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/rpa/detail.html +126 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/rpa/list.html +98 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/rpa/logs.html +31 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/rpa/spec_create.html +108 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/rpa/spec_detail.html +294 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/rpa/spec_list.html +82 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/tests/detail.html +113 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/tests/list.html +101 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/tests/logs.html +31 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/tests/spec_detail.html +109 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/tests/spec_list.html +63 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/watches/create.html +158 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/watches/detail.html +284 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/watches/edit.html +133 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/watches/list.html +90 -0
- ccai/pychestrate/webservice/webinterface/blueprints/projects/watch_events.py +112 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/__init__.py +27 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/availability_view.py +300 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/exports.py +193 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/resource_import.py +327 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/routes.py +1961 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_allocations.py +855 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_health.py +1002 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_import.py +210 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_ip_pools.py +1389 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_pools.py +754 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_reservations.py +1414 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_tags.py +486 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/allocations/detail.html +152 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/allocations/history.html +114 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/allocations/list.html +110 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/allocations/utilization.html +84 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/base.html +100 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/dashboard.html +97 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/health/config.html +79 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/health/dashboard.html +164 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/health/detail.html +236 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/ip_pools/create.html +72 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/ip_pools/detail.html +234 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/ip_pools/edit.html +67 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/ip_pools/list.html +109 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/pools/create.html +39 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/pools/detail.html +158 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/pools/list.html +66 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/reservations/_viewer_zone.html +65 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/reservations/calendar.html +260 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/reservations/create.html +107 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/reservations/detail.html +119 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/reservations/edit.html +66 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/reservations/list.html +147 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/resources/create.html +105 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/resources/detail.html +264 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/resources/edit.html +128 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/resources/import.html +110 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/resources/list.html +174 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/tags/edit.html +37 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/tags/list.html +99 -0
- ccai/pychestrate/webservice/webinterface/blueprints/resources/utilization.py +300 -0
- ccai/pychestrate/webservice/webinterface/blueprints/setup/__init__.py +23 -0
- ccai/pychestrate/webservice/webinterface/blueprints/setup/routes.py +932 -0
- ccai/pychestrate/webservice/webinterface/blueprints/setup/templates/setup/_setup_base.html +164 -0
- ccai/pychestrate/webservice/webinterface/blueprints/setup/templates/setup/admin.html +86 -0
- ccai/pychestrate/webservice/webinterface/blueprints/setup/templates/setup/unlock.html +45 -0
- ccai/pychestrate/webservice/webinterface/foundation/__init__.py +30 -0
- ccai/pychestrate/webservice/webinterface/foundation/auth_guard.py +170 -0
- ccai/pychestrate/webservice/webinterface/foundation/cookie_session.py +611 -0
- ccai/pychestrate/webservice/webinterface/foundation/csrf.py +179 -0
- ccai/pychestrate/webservice/webinterface/foundation/flash.py +147 -0
- ccai/pychestrate/webservice/webinterface/foundation/form_drafts.py +354 -0
- ccai/pychestrate/webservice/webinterface/foundation/form_errors.py +168 -0
- ccai/pychestrate/webservice/webinterface/foundation/permission_presentation.py +312 -0
- ccai/pychestrate/webservice/webinterface/foundation/static_files.py +683 -0
- ccai/pychestrate/webservice/webinterface/foundation/templating.py +614 -0
- ccai/pychestrate/webservice/webinterface/foundation/url_for.py +210 -0
- ccai/pychestrate/webservice/webinterface/htmlui/__init__.py +24 -0
- ccai/pychestrate/webservice/webinterface/htmlui/next_validator.py +191 -0
- ccai/pychestrate/webservice/webinterface/site_shell/__init__.py +37 -0
- ccai/pychestrate/webservice/webinterface/site_shell/admin_contact.py +67 -0
- ccai/pychestrate/webservice/webinterface/site_shell/bundle_registry.py +373 -0
- ccai/pychestrate/webservice/webinterface/site_shell/catchall_route.py +415 -0
- ccai/pychestrate/webservice/webinterface/site_shell/chromeless_routes.py +155 -0
- ccai/pychestrate/webservice/webinterface/site_shell/error_pages.py +169 -0
- ccai/pychestrate/webservice/webinterface/site_shell/nav_manifest.py +715 -0
- ccai/pychestrate/webservice/webinterface/site_shell/preferences_models.py +47 -0
- ccai/pychestrate/webservice/webinterface/site_shell/shell_document.py +286 -0
- ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/_copy_buttons.html +61 -0
- ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/_local_times.html +57 -0
- ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/_macros.html +334 -0
- ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/_permission_filter.html +96 -0
- ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/_reveal_values.html +38 -0
- ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/chromeless_error.html +48 -0
- ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/error_catalogue.html +48 -0
- ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/error_page.html +22 -0
- ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/error_type.html +38 -0
- ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/shell_document.html +76 -0
- ccai/pychestrate/webservice/webinterface/site_shell/ui_profile.py +705 -0
- ccai/pychestrate/webservice/webinterface/site_shell/ui_profile_routes.py +168 -0
- ccai/pychestrate/webservice/webinterface/site_shell/user_guide_route.py +180 -0
- ccai/pychestrate/webservice/webinterface/static/favicon.svg +4 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/admin-overview-view.js +736 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/extension-registry-view.js +471 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/feature-flags-view.js +490 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/index.entry.js +219 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/index.js +2288 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/pyc-admin-bundle.css +374 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/system-health-view.js +308 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-builds-bundle/build-detail-view.js +913 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-builds-bundle/builds-list-view.js +1170 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-builds-bundle/index.entry.js +185 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-builds-bundle/index.js +2641 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-builds-bundle/pyc-builds-bundle.css +462 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-catalog-bundle/catalog-view.js +1154 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-catalog-bundle/index.entry.js +148 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-catalog-bundle/index.js +1539 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-catalog-bundle/pyc-catalog-bundle.css +272 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/environment-detail-view.js +484 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/environments-view.js +1459 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/guards-view.js +1505 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/index.entry.js +318 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/index.js +5515 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/provisioning-detail-view.js +596 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/provisioning-list-view.js +960 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/pyc-infra-bundle.css +552 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/alert-rules-view.js +1349 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/dashboard-editor-view.js +849 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/dashboards-view.js +1376 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/index.entry.js +393 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/index.js +6489 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/pyc-metrics-bundle.css +428 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/slos-view.js +1362 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/test-metrics-view.js +676 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/timeseries-view.js +485 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-mj-lib/index.js +15505 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-ops-bundle/index.entry.js +206 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-ops-bundle/index.js +3240 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-ops-bundle/pyc-ops-bundle.css +344 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-ops-bundle/release-channels-view.js +810 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-ops-bundle/webhooks-view.js +1989 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pipelines-bundle/index.entry.js +179 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pipelines-bundle/index.js +3013 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pipelines-bundle/pipeline-detail-view.js +1275 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pipelines-bundle/pipelines-list-view.js +1352 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pipelines-bundle/pyc-pipelines-bundle.css +546 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/client-detail-view.js +780 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/clients-list-view.js +1047 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/index.entry.js +284 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/index.js +4182 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/pod-detail-view.js +1258 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/pods-list-view.js +732 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/pyc-pods-bundle.css +494 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/index.entry.js +233 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/index.js +4092 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/pool-detail-view.js +1321 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/pyc-resources-bundle.css +403 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/resource-detail-view.js +1101 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/resource-inventory-view.js +424 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/resource-pools-view.js +939 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-runs-bundle/index.entry.js +151 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-runs-bundle/index.js +2709 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-runs-bundle/pyc-runs-bundle.css +655 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-runs-bundle/run-detail-view.js +1460 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-runs-bundle/runs-list-view.js +975 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-secrets-bundle/index.entry.js +124 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-secrets-bundle/index.js +1817 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-secrets-bundle/pyc-secrets-bundle.css +472 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-secrets-bundle/secrets-view.js +1660 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/chip-tone.js +115 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/confirm-delegate.js +285 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/degraded-banner.js +95 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/empty-state.js +66 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/flash-notices.js +115 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/form-draft.js +184 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/header.js +354 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/hidden-surface-notice.js +80 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/home-view.js +422 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/live-region.js +103 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/log-viewer.js +188 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/not-found-view.js +51 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/reveal-toggle.js +96 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/session-toast.js +54 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/index.entry.js +48 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/index.js +5061 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/observability/metrics-beacon.js +200 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/palette/entity-provider.js +201 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/palette/navigation-provider.js +144 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/palette/palette-dialog.js +391 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/palette/palette-registry.js +141 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/permissions/permission-cache.js +227 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/permissions/permission-set.js +85 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/pyc-site-shell.css +1181 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/pyc-site-shell.js +1219 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/routing/shell-router.js +77 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/sidebar/nav-manifest.js +94 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/sidebar/sidebar-keyboard.js +275 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/sidebar/sidebar-registry.js +197 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/sidebar/sidebar-renderer.js +410 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/theme-boot.js +27 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/admin-contact.js +36 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/confirm.js +48 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/datetime.js +137 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/empty-state.js +66 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/entity-names.js +80 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/filter-caption.js +20 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/page-title.js +30 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/permissions.js +68 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/problem-detail.js +70 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/reveal.js +81 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/run-artifacts.js +82 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/run-labels.js +120 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/run-project.js +30 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/toast.js +94 -0
- ccai/pychestrate/webservice/webinterface/static/javascript/shared/view-state.js +91 -0
- ccai/pychestrate/webservice/webinterface/static/styles/color-theme.css +25 -0
- ccai/pychestrate/webservice/webinterface/static/styles/pyc-fragment.css +1311 -0
- ccai/pychestrate/webservice/webinterface/static/styles/pyc-tokens.css +240 -0
- ccai/pychestrate/webservice/wsgi_dispatch.py +189 -0
- pychestrate_service-0.0.7rc0.dist-info/METADATA +139 -0
- pychestrate_service-0.0.7rc0.dist-info/RECORD +1350 -0
- pychestrate_service-0.0.7rc0.dist-info/WHEEL +4 -0
- pychestrate_service-0.0.7rc0.dist-info/entry_points.txt +4 -0
- pychestrate_service-0.0.7rc0.dist-info/licenses/LICENSE.md +204 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""
|
|
2
|
+
.. module:: pychestrate.admin
|
|
3
|
+
:platform: Darwin, Linux, Unix, Windows
|
|
4
|
+
:synopsis: Operator-facing administrative CLI tooling for Pychestrate.
|
|
5
|
+
|
|
6
|
+
.. moduleauthor:: Code Craft AI LLC
|
|
7
|
+
|
|
8
|
+
The ``pychestrate-admin`` console script entry point lives here. It is
|
|
9
|
+
deliberately separate from the runtime web-service code under
|
|
10
|
+
``pychestrate.webservice`` so service deployments do not pull in CLI
|
|
11
|
+
argparse / Jinja2 / file-generation utilities at request time.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
__author__ = "Code Craft AI LLC"
|
|
15
|
+
__copyright__ = "Copyright 2025, Code Craft AI LLC"
|
|
16
|
+
__credits__ = []
|
|
17
|
+
__version__ = "1.0.0"
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"""
|
|
2
|
+
.. module:: pychestrate.admin.__main__
|
|
3
|
+
:platform: Darwin, Linux, Unix, Windows
|
|
4
|
+
:synopsis: ``pychestrate-admin`` entry point dispatcher.
|
|
5
|
+
|
|
6
|
+
.. moduleauthor:: Code Craft AI LLC
|
|
7
|
+
|
|
8
|
+
Routes the first positional argument to a registered subsystem:
|
|
9
|
+
``pack-template`` and ``backup`` (create / list / verify / restore
|
|
10
|
+
backups, see :mod:`ccai.pychestrate.webservice.backup.cli`); future
|
|
11
|
+
subsystems (``manifest``, ``extensions``, …) register themselves here.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
__author__ = "Code Craft AI LLC"
|
|
15
|
+
__copyright__ = "Copyright 2025, Code Craft AI LLC"
|
|
16
|
+
__credits__ = []
|
|
17
|
+
__version__ = "1.0.0"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
import sys
|
|
21
|
+
|
|
22
|
+
from typing import List, Optional, Sequence
|
|
23
|
+
|
|
24
|
+
from ccai.pychestrate.webservice.extension.pack_template import cli as pack_template_cli
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
SUBSYSTEM_PACK_TEMPLATE: str = "pack-template"
|
|
28
|
+
SUBSYSTEM_BACKUP: str = "backup"
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
_SUBSYSTEM_HELP_LINES: List[str] = [
|
|
32
|
+
"usage: pychestrate-admin <subsystem> [args]",
|
|
33
|
+
"",
|
|
34
|
+
"subsystems:",
|
|
35
|
+
" pack-template Generate / upgrade pychestrate-ext-<name> packs.",
|
|
36
|
+
" backup Create, list, verify and restore backups.",
|
|
37
|
+
"",
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _print_top_level_help() -> None:
|
|
42
|
+
"""
|
|
43
|
+
Print the top-level help summary.
|
|
44
|
+
|
|
45
|
+
:returns: None.
|
|
46
|
+
"""
|
|
47
|
+
sys.stderr.write("\n".join(_SUBSYSTEM_HELP_LINES))
|
|
48
|
+
return
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def main(*, argv: Optional[Sequence[str]]) -> int:
|
|
52
|
+
"""
|
|
53
|
+
Dispatch a ``pychestrate-admin`` invocation.
|
|
54
|
+
|
|
55
|
+
:param argv: Override argv (mainly for tests). ``None`` defaults
|
|
56
|
+
to :data:`sys.argv` slicing.
|
|
57
|
+
|
|
58
|
+
:returns: Process exit code.
|
|
59
|
+
"""
|
|
60
|
+
if argv is None:
|
|
61
|
+
argv_list: Sequence[str] = sys.argv[1:]
|
|
62
|
+
else:
|
|
63
|
+
argv_list = argv
|
|
64
|
+
|
|
65
|
+
if len(argv_list) == 0:
|
|
66
|
+
_print_top_level_help()
|
|
67
|
+
rtnval = 2
|
|
68
|
+
return rtnval
|
|
69
|
+
|
|
70
|
+
subsystem = argv_list[0]
|
|
71
|
+
remainder: List[str] = list(argv_list[1:])
|
|
72
|
+
|
|
73
|
+
if subsystem == SUBSYSTEM_PACK_TEMPLATE:
|
|
74
|
+
rtnval = pack_template_cli.main(argv=remainder)
|
|
75
|
+
return rtnval
|
|
76
|
+
|
|
77
|
+
if subsystem == SUBSYSTEM_BACKUP:
|
|
78
|
+
# Imported here: the backup command pulls in SQLAlchemy and the
|
|
79
|
+
# service models, which pack-template does not need.
|
|
80
|
+
from ccai.pychestrate.webservice.backup import cli as backup_cli
|
|
81
|
+
rtnval = backup_cli.main(argv=remainder)
|
|
82
|
+
return rtnval
|
|
83
|
+
|
|
84
|
+
if subsystem in ("-h", "--help", "help"):
|
|
85
|
+
_print_top_level_help()
|
|
86
|
+
rtnval = 0
|
|
87
|
+
return rtnval
|
|
88
|
+
|
|
89
|
+
sys.stderr.write("error: unknown subsystem '{}'\n".format(subsystem))
|
|
90
|
+
_print_top_level_help()
|
|
91
|
+
rtnval = 2
|
|
92
|
+
return rtnval
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def console_main() -> None:
|
|
96
|
+
"""
|
|
97
|
+
The ``pychestrate-admin`` console script's entry point (declared in
|
|
98
|
+
``pyproject.toml``): runs :func:`main` on :data:`sys.argv` and exits with
|
|
99
|
+
its code. ``main`` takes ``argv`` as a keyword-only argument, so a console
|
|
100
|
+
script cannot name it directly.
|
|
101
|
+
|
|
102
|
+
:returns: None (raises :class:`SystemExit`).
|
|
103
|
+
"""
|
|
104
|
+
sys.exit(main(argv=None))
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
if __name__ == "__main__":
|
|
108
|
+
console_main()
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"""
|
|
2
|
+
.. module:: pychestrate.cli
|
|
3
|
+
:platform: Darwin, Linux, Unix, Windows
|
|
4
|
+
:synopsis: ``pyc`` CLI consuming Pychestrate's REST API.
|
|
5
|
+
|
|
6
|
+
.. moduleauthor:: Code Craft AI LLC
|
|
7
|
+
|
|
8
|
+
The CLI lives under ``source/site/ccai/pychestrate/cli/``, talks to
|
|
9
|
+
the service only through ``/api/v1``, and imports nothing but the
|
|
10
|
+
Python standard library and this package, so it is also packaged on
|
|
11
|
+
its own (``packages/pychestrate-cli``, the ``pychestrate-cli``
|
|
12
|
+
distribution):
|
|
13
|
+
|
|
14
|
+
* :mod:`entry` -- the dispatcher and console script
|
|
15
|
+
(:func:`entry.console_main`);
|
|
16
|
+
* :mod:`version` -- the one definition of pyc's version;
|
|
17
|
+
* :mod:`commands` -- ``login`` / ``logout`` / ``whoami``, ``config``,
|
|
18
|
+
``version``, the commands generated from the server's OpenAPI
|
|
19
|
+
document, ``runs wait``, ``ext`` and ``plugin-api catalog``;
|
|
20
|
+
* :mod:`renderer` / :mod:`pagination` -- table / JSON / YAML / TSV /
|
|
21
|
+
raw output, ``--fields``, ``--quiet``, ``--all`` / ``--limit``;
|
|
22
|
+
* :mod:`argparsing` / :mod:`suggestions` -- parsers that never exit
|
|
23
|
+
the process, and "did you mean" for typos;
|
|
24
|
+
* :mod:`credentials` / :mod:`paths` / :mod:`context` -- profiles in
|
|
25
|
+
``$XDG_CONFIG_HOME/pychestrate/credentials`` (mode ``0600``) and the
|
|
26
|
+
``PYC_SERVER_URL`` / ``PYC_TOKEN`` environment overrides;
|
|
27
|
+
* :mod:`transport` -- HTTP with the profile's API token as a bearer
|
|
28
|
+
token, no redirect following, and one exception per exit-code
|
|
29
|
+
category;
|
|
30
|
+
* :mod:`parser` / :mod:`command_names` / :mod:`openapi_cache` /
|
|
31
|
+
:mod:`builtin_operations` -- the command tree built from
|
|
32
|
+
``/api/v1/_meta/openapi.json`` (explicit command names, cached, with
|
|
33
|
+
a built-in fallback);
|
|
34
|
+
* :mod:`extensions` -- the ``CLISubcommandExtension`` surface behind
|
|
35
|
+
``pyc ext <ext-name> <verb>``.
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
__author__ = "Code Craft AI LLC"
|
|
39
|
+
__copyright__ = "Copyright 2025, Code Craft AI LLC"
|
|
40
|
+
__credits__ = []
|
|
41
|
+
__version__ = "1.0.0"
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"""
|
|
2
|
+
.. module:: cli.argparsing
|
|
3
|
+
:platform: Darwin, Linux, Unix, Windows
|
|
4
|
+
:synopsis: An :class:`argparse.ArgumentParser` that writes to the
|
|
5
|
+
invocation's streams and never exits the process.
|
|
6
|
+
|
|
7
|
+
.. moduleauthor:: Code Craft AI LLC
|
|
8
|
+
|
|
9
|
+
``pyc`` is callable in-process (tests, embedding), so a parser must
|
|
10
|
+
not call :func:`sys.exit` or write to the real ``sys.stdout``. Help
|
|
11
|
+
output goes to the context's stdout and raises :class:`ParserExit`
|
|
12
|
+
with status 0; a parse error raises :class:`CliUsageError`, which the
|
|
13
|
+
dispatcher reports and turns into exit code 2.
|
|
14
|
+
|
|
15
|
+
Options must be spelled out (no ``--per`` for ``--per-page``), and an
|
|
16
|
+
unrecognized option is reported with the closest known ones
|
|
17
|
+
("did you mean '--state'?").
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
__author__ = "Code Craft AI LLC"
|
|
21
|
+
__copyright__ = "Copyright 2026, Code Craft AI LLC"
|
|
22
|
+
__credits__ = []
|
|
23
|
+
__version__ = "1.0.0"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
import argparse
|
|
27
|
+
import sys
|
|
28
|
+
|
|
29
|
+
from typing import Any, List, Optional, TextIO
|
|
30
|
+
|
|
31
|
+
from ccai.pychestrate.cli import suggestions
|
|
32
|
+
from ccai.pychestrate.cli.exceptions import CliUsageError
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
_UNRECOGNIZED_PREFIX: str = "unrecognized arguments: "
|
|
36
|
+
|
|
37
|
+
#: pyc's global options (accepted anywhere on the line, parsed before
|
|
38
|
+
#: any command's parser runs). They are suggestion candidates too, so a
|
|
39
|
+
#: mistyped global -- or the pod client's "--service-url" -- names the
|
|
40
|
+
#: right spelling.
|
|
41
|
+
GLOBAL_OPTION_NAMES = (
|
|
42
|
+
"--profile", "--server-url", "--timeout", "--output", "-o", "--fields", "--quiet", "-q",
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class ParserExit(Exception):
|
|
47
|
+
"""
|
|
48
|
+
Raised instead of :func:`sys.exit` when a parser finishes early
|
|
49
|
+
(``--help``).
|
|
50
|
+
|
|
51
|
+
:param status: Exit status the parser asked for.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
def __init__(self, status: int) -> None:
|
|
55
|
+
super().__init__("parser exit {}".format(status))
|
|
56
|
+
self.status: int = status
|
|
57
|
+
return
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class CliArgumentParser(argparse.ArgumentParser):
|
|
61
|
+
"""
|
|
62
|
+
Argument parser bound to explicit output streams.
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
def __init__(self, *args: Any, out_stream: TextIO, err_stream: TextIO, **kwargs: Any) -> None:
|
|
66
|
+
kwargs.setdefault("formatter_class", argparse.RawDescriptionHelpFormatter)
|
|
67
|
+
kwargs.setdefault("allow_abbrev", False)
|
|
68
|
+
super().__init__(*args, **kwargs)
|
|
69
|
+
self._out_stream: TextIO = out_stream
|
|
70
|
+
self._err_stream: TextIO = err_stream
|
|
71
|
+
return
|
|
72
|
+
|
|
73
|
+
def _print_message(self, message: str, file: Optional[TextIO] = None) -> None:
|
|
74
|
+
if not message:
|
|
75
|
+
return
|
|
76
|
+
if file is None or file is sys.stdout:
|
|
77
|
+
self._out_stream.write(message)
|
|
78
|
+
else:
|
|
79
|
+
self._err_stream.write(message)
|
|
80
|
+
return
|
|
81
|
+
|
|
82
|
+
def exit(self, status: int = 0, message: Optional[str] = None) -> None:
|
|
83
|
+
if message:
|
|
84
|
+
self._err_stream.write(message)
|
|
85
|
+
raise ParserExit(status)
|
|
86
|
+
|
|
87
|
+
def known_option_strings(self) -> List[str]:
|
|
88
|
+
"""
|
|
89
|
+
Every listed option spelling of this parser (hidden
|
|
90
|
+
aliases excluded).
|
|
91
|
+
|
|
92
|
+
:returns: Option strings.
|
|
93
|
+
"""
|
|
94
|
+
known: List[str] = []
|
|
95
|
+
for action in self._actions:
|
|
96
|
+
if action.help == argparse.SUPPRESS:
|
|
97
|
+
continue
|
|
98
|
+
known.extend(action.option_strings)
|
|
99
|
+
rtnval = known
|
|
100
|
+
return rtnval
|
|
101
|
+
|
|
102
|
+
def _suggest_for_unrecognized(self, message: str) -> str:
|
|
103
|
+
"""
|
|
104
|
+
Add "did you mean" hints to argparse's "unrecognized
|
|
105
|
+
arguments" message.
|
|
106
|
+
|
|
107
|
+
:param message: argparse's message.
|
|
108
|
+
|
|
109
|
+
:returns: Message (unchanged when nothing is close).
|
|
110
|
+
"""
|
|
111
|
+
if not message.startswith(_UNRECOGNIZED_PREFIX):
|
|
112
|
+
return message
|
|
113
|
+
hints: List[str] = []
|
|
114
|
+
candidates = self.known_option_strings() + list(GLOBAL_OPTION_NAMES)
|
|
115
|
+
for token in message[len(_UNRECOGNIZED_PREFIX):].split():
|
|
116
|
+
if not token.startswith("-"):
|
|
117
|
+
continue
|
|
118
|
+
option = token.split("=", 1)[0]
|
|
119
|
+
hint = suggestions.did_you_mean(word=option, candidates=candidates)
|
|
120
|
+
if len(hint) > 0:
|
|
121
|
+
hints.append("{}: {}".format(option, hint))
|
|
122
|
+
if len(hints) == 0:
|
|
123
|
+
return message
|
|
124
|
+
rtnval = "{} ({})".format(message, "; ".join(hints))
|
|
125
|
+
return rtnval
|
|
126
|
+
|
|
127
|
+
def error(self, message: str) -> None:
|
|
128
|
+
self.print_usage(self._err_stream)
|
|
129
|
+
raise CliUsageError("{}: {}".format(self.prog, self._suggest_for_unrecognized(message)))
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
__all__ = [
|
|
133
|
+
"CliArgumentParser",
|
|
134
|
+
"GLOBAL_OPTION_NAMES",
|
|
135
|
+
"ParserExit",
|
|
136
|
+
]
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"""
|
|
2
|
+
.. module:: cli.builtin_operations
|
|
3
|
+
:platform: Darwin, Linux, Unix, Windows
|
|
4
|
+
:synopsis: The commands ``pyc`` knows without the server's OpenAPI
|
|
5
|
+
document.
|
|
6
|
+
|
|
7
|
+
.. moduleauthor:: Code Craft AI LLC
|
|
8
|
+
|
|
9
|
+
``pyc`` builds its API commands from the server's
|
|
10
|
+
``/api/v1/_meta/openapi.json``. When that document cannot be fetched
|
|
11
|
+
(an older server, a proxy that blocks it, no network yet) and no
|
|
12
|
+
cached copy exists, the CLI falls back to this small built-in
|
|
13
|
+
document so the everyday commands still work and the real request
|
|
14
|
+
reports the real problem (unreachable, 401, ...).
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
__author__ = "Code Craft AI LLC"
|
|
18
|
+
__copyright__ = "Copyright 2026, Code Craft AI LLC"
|
|
19
|
+
__credits__ = []
|
|
20
|
+
__version__ = "1.0.0"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
from typing import Any, Dict
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
_SLUG_PARAM: Dict[str, Any] = {
|
|
27
|
+
"name": "slug", "in": "path", "required": True, "schema": {"type": "string"},
|
|
28
|
+
}
|
|
29
|
+
_RUN_ID_PARAM: Dict[str, Any] = {
|
|
30
|
+
"name": "run_id", "in": "path", "required": True, "schema": {"type": "string"},
|
|
31
|
+
}
|
|
32
|
+
_PAGE_PARAMS = [
|
|
33
|
+
{"name": "page", "in": "query", "required": False, "schema": {"type": "integer"}},
|
|
34
|
+
{"name": "per_page", "in": "query", "required": False, "schema": {"type": "integer"}},
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
#: Minimal OpenAPI document (same shape and operation ids as the
|
|
38
|
+
#: server's) used when the real one is unavailable.
|
|
39
|
+
FALLBACK_OPENAPI_DOCUMENT: Dict[str, Any] = {
|
|
40
|
+
"openapi": "3.1.0",
|
|
41
|
+
"info": {"title": "Pychestrate (pyc built-in fallback)", "version": "pyc-builtin"},
|
|
42
|
+
"servers": [{"url": "/api/v1"}],
|
|
43
|
+
"paths": {
|
|
44
|
+
"/me": {
|
|
45
|
+
"get": {
|
|
46
|
+
"operationId": "me_get_identity", "tags": ["me"],
|
|
47
|
+
"summary": "Who the caller is and how the request authenticated.",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
"/projects": {
|
|
51
|
+
"get": {
|
|
52
|
+
"operationId": "projects_list", "tags": ["projects"],
|
|
53
|
+
"summary": "List projects.", "parameters": list(_PAGE_PARAMS),
|
|
54
|
+
},
|
|
55
|
+
"post": {
|
|
56
|
+
"operationId": "projects_create", "tags": ["projects"],
|
|
57
|
+
"summary": "Create a project.", "requestBody": {"required": True},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
"/projects/{slug}": {
|
|
61
|
+
"get": {
|
|
62
|
+
"operationId": "projects_get_by_slug", "tags": ["projects"],
|
|
63
|
+
"summary": "Read a project by slug.", "parameters": [_SLUG_PARAM],
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
"/runs": {
|
|
67
|
+
"get": {
|
|
68
|
+
"operationId": "runs_list", "tags": ["runs"],
|
|
69
|
+
"summary": "List runs.", "parameters": list(_PAGE_PARAMS),
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
"/runs/{run_id}": {
|
|
73
|
+
"get": {
|
|
74
|
+
"operationId": "runs_get_by_id", "tags": ["runs"],
|
|
75
|
+
"summary": "Read one run.", "parameters": [_RUN_ID_PARAM],
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
__all__ = [
|
|
83
|
+
"FALLBACK_OPENAPI_DOCUMENT",
|
|
84
|
+
]
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
"""
|
|
2
|
+
.. module:: cli.command_names
|
|
3
|
+
:platform: Darwin, Linux, Unix, Windows
|
|
4
|
+
:synopsis: The ``pyc <noun> <verb>`` names of the server's REST
|
|
5
|
+
operations.
|
|
6
|
+
|
|
7
|
+
.. moduleauthor:: Code Craft AI LLC
|
|
8
|
+
|
|
9
|
+
Every operation of the server's OpenAPI document is one
|
|
10
|
+
``pyc <noun> <verb>`` command. Its name comes from, in order:
|
|
11
|
+
|
|
12
|
+
1. the operation's ``x-cli`` extension in the OpenAPI document
|
|
13
|
+
(``x-cli: {noun: rpa-jobs, verb: trigger}``), so the REST contract
|
|
14
|
+
can name its own commands;
|
|
15
|
+
2. :data:`COMMAND_NAMES` below, for the operations whose derived name
|
|
16
|
+
reads badly: a tag that groups several REST resources (``rpa``
|
|
17
|
+
holds job types, specifications and jobs), or a verb that repeats
|
|
18
|
+
the resource (``notifications list-channels``);
|
|
19
|
+
3. derivation (see :mod:`cli.parser`): the first tag is the noun and
|
|
20
|
+
the ``operationId`` without the tag prefix is the verb, with the
|
|
21
|
+
:data:`VERB_SYNONYMS` spellings (``read`` and ``get-by-<x>`` are
|
|
22
|
+
``get``, ``patch`` is ``update``) when that verb is still free.
|
|
23
|
+
|
|
24
|
+
Nouns are the plural REST resource names (``projects``,
|
|
25
|
+
``rpa-jobs``); a singular noun is accepted too. The derived name always
|
|
26
|
+
stays an alias, so ``pyc projects get-by-slug demo`` still works next
|
|
27
|
+
to ``pyc projects get demo``.
|
|
28
|
+
|
|
29
|
+
The table is keyed by ``operationId``; the REST <-> CLI parity test
|
|
30
|
+
(``test_p27p_pyc_command_names_m3``) fails when an entry names an
|
|
31
|
+
operation the document no longer has, or when two operations end up
|
|
32
|
+
with the same name.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
__author__ = "Code Craft AI LLC"
|
|
36
|
+
__copyright__ = "Copyright 2026, Code Craft AI LLC"
|
|
37
|
+
__credits__ = []
|
|
38
|
+
__version__ = "1.0.0"
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
import re
|
|
42
|
+
|
|
43
|
+
from typing import Dict, Optional, Tuple
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
#: The OpenAPI operation extension that names an operation's command.
|
|
47
|
+
X_CLI_EXTENSION: str = "x-cli"
|
|
48
|
+
|
|
49
|
+
#: Derived verbs spelled with the standard verb instead, when free.
|
|
50
|
+
VERB_SYNONYMS: Dict[str, str] = {
|
|
51
|
+
"read": "get",
|
|
52
|
+
"patch": "update",
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
#: ``get-by-<anything>`` (``get-by-slug``, ``get-by-id``) is ``get``.
|
|
56
|
+
GET_BY_VERB_PATTERN = re.compile(r"^get-by-[a-z0-9-]+$")
|
|
57
|
+
|
|
58
|
+
#: Explicit names: ``operationId`` -> ``(noun, verb)``.
|
|
59
|
+
COMMAND_NAMES: Dict[str, Tuple[str, str]] = {
|
|
60
|
+
# agents: agent rollouts, and the capability records of clients.
|
|
61
|
+
"agents_create_rollout": ("agent-rollouts", "create"),
|
|
62
|
+
"agents_start_rollout": ("agent-rollouts", "start"),
|
|
63
|
+
"agents_get_client_capabilities": ("clients", "get-capabilities"),
|
|
64
|
+
"agents_put_client_capabilities": ("clients", "set-capabilities"),
|
|
65
|
+
"agents_get_client_inventory": ("clients", "inventory"),
|
|
66
|
+
|
|
67
|
+
# api_tokens
|
|
68
|
+
"api_tokens_read_mine": ("api-tokens", "get-mine"),
|
|
69
|
+
|
|
70
|
+
# artifacts, and the result-upload calls pods make (tag results).
|
|
71
|
+
"artifacts_get_entry": ("artifacts", "get"),
|
|
72
|
+
"artifacts_list_for_run": ("artifacts", "list"),
|
|
73
|
+
"artifacts_local_upload": ("artifacts", "local-upload"),
|
|
74
|
+
"artifacts_presign_upload": ("artifacts", "presign-upload"),
|
|
75
|
+
"results_post_complete": ("results", "complete"),
|
|
76
|
+
|
|
77
|
+
# dispatch: the envelope-signing keys pods verify jobs with, and
|
|
78
|
+
# the acknowledgement a pod sends for a dispatched run.
|
|
79
|
+
"envelope_signing_keys_jwks": ("envelope-signing-keys", "jwks"),
|
|
80
|
+
"envelope_signing_keys_list": ("envelope-signing-keys", "list"),
|
|
81
|
+
"dispatch_ack_run": ("runs", "ack-dispatch"),
|
|
82
|
+
|
|
83
|
+
# progress: the live-progress frames a pod posts for a run.
|
|
84
|
+
"progress_post_frame": ("runs", "post-progress"),
|
|
85
|
+
|
|
86
|
+
# drift
|
|
87
|
+
"drift_check_trigger": ("drift", "check"),
|
|
88
|
+
"drift_status_read": ("drift", "status"),
|
|
89
|
+
|
|
90
|
+
# enrollment: tokens pods enroll with.
|
|
91
|
+
"enrollment_create_token": ("enrollment-tokens", "create"),
|
|
92
|
+
"enrollment_delete_token": ("enrollment-tokens", "delete"),
|
|
93
|
+
"enrollment_list_tokens": ("enrollment-tokens", "list"),
|
|
94
|
+
"enrollment_redeem": ("enrollment-tokens", "redeem"),
|
|
95
|
+
"enrollment_revoke_client": ("enrollment-tokens", "revoke-client"),
|
|
96
|
+
|
|
97
|
+
# flags
|
|
98
|
+
"flags_get_history": ("flags", "history"),
|
|
99
|
+
|
|
100
|
+
# me
|
|
101
|
+
"me_get_identity": ("me", "get"),
|
|
102
|
+
"me_get_navigation": ("me", "navigation"),
|
|
103
|
+
"me_get_permissions": ("me", "permissions"),
|
|
104
|
+
"me_ui_surfaces_read": ("me", "get-ui-surfaces"),
|
|
105
|
+
"me_ui_surfaces_update": ("me", "set-ui-surfaces"),
|
|
106
|
+
"me_ui_surfaces_delete": ("me", "delete-ui-surfaces"),
|
|
107
|
+
|
|
108
|
+
# metrics
|
|
109
|
+
"metrics_catalog_list": ("metrics", "catalog"),
|
|
110
|
+
"metrics_test_read": ("metrics", "tests"),
|
|
111
|
+
"metrics_timeseries_query": ("metrics", "query"),
|
|
112
|
+
|
|
113
|
+
# notifications: notification channels.
|
|
114
|
+
"notifications_create_channel": ("notification-channels", "create"),
|
|
115
|
+
"notifications_get_channel": ("notification-channels", "get"),
|
|
116
|
+
"notifications_list_channels": ("notification-channels", "list"),
|
|
117
|
+
|
|
118
|
+
# pipelines: pipeline runs are their own resource.
|
|
119
|
+
"pipeline_runs_list": ("pipeline-runs", "list"),
|
|
120
|
+
"pipeline_runs_read": ("pipeline-runs", "get"),
|
|
121
|
+
"pipeline_runs_trigger": ("pipeline-runs", "trigger"),
|
|
122
|
+
|
|
123
|
+
# pods: pod definitions and pod templates are their own resources.
|
|
124
|
+
"pods_create_definition": ("pod-definitions", "create"),
|
|
125
|
+
"pods_get_definition": ("pod-definitions", "get"),
|
|
126
|
+
"pods_list_definitions": ("pod-definitions", "list"),
|
|
127
|
+
"pods_create_template": ("pod-templates", "create"),
|
|
128
|
+
"pods_delete_template": ("pod-templates", "delete"),
|
|
129
|
+
"pods_list_templates": ("pod-templates", "list"),
|
|
130
|
+
"pods_materialize_template": ("pod-templates", "materialize"),
|
|
131
|
+
"pods_update_template_parameters": ("pod-templates", "set-parameters"),
|
|
132
|
+
"pods_apply_state_transition": ("pods", "transition"),
|
|
133
|
+
"pods_get_registration": ("pods", "registration"),
|
|
134
|
+
"pods_list_registrations": ("pods", "registrations"),
|
|
135
|
+
"pods_get_state": ("pods", "state"),
|
|
136
|
+
"pods_get_state_history": ("pods", "state-history"),
|
|
137
|
+
"pods_get_topology": ("pods", "topology"),
|
|
138
|
+
|
|
139
|
+
# provisioning: provisioning runs.
|
|
140
|
+
"provisioning_runs_list": ("provisioning-runs", "list"),
|
|
141
|
+
"provisioning_runs_read": ("provisioning-runs", "get"),
|
|
142
|
+
"provisioning_runs_trigger": ("provisioning-runs", "trigger"),
|
|
143
|
+
|
|
144
|
+
# resources
|
|
145
|
+
"resources_list_usage_history": ("resources", "usage-history"),
|
|
146
|
+
"resources_read_health": ("resources", "health"),
|
|
147
|
+
"resources_transition_state": ("resources", "transition"),
|
|
148
|
+
|
|
149
|
+
# retention: retention policies.
|
|
150
|
+
"retention_create": ("retention-policies", "create"),
|
|
151
|
+
"retention_get_by_id": ("retention-policies", "get"),
|
|
152
|
+
"retention_list": ("retention-policies", "list"),
|
|
153
|
+
"retention_publish": ("retention-policies", "publish"),
|
|
154
|
+
|
|
155
|
+
# rpa: job types (and their versions), specifications, jobs.
|
|
156
|
+
"rpa_execution_modes_list": ("rpa-execution-modes", "list"),
|
|
157
|
+
"rpa_job_type_versions_deprecate": ("rpa-job-types", "deprecate-version"),
|
|
158
|
+
"rpa_job_type_versions_publish": ("rpa-job-types", "publish-version"),
|
|
159
|
+
"rpa_job_type_versions_retire": ("rpa-job-types", "retire-version"),
|
|
160
|
+
"rpa_job_types_create": ("rpa-job-types", "create"),
|
|
161
|
+
"rpa_job_types_list": ("rpa-job-types", "list"),
|
|
162
|
+
"rpa_job_types_read": ("rpa-job-types", "get"),
|
|
163
|
+
"rpa_job_types_retire": ("rpa-job-types", "retire"),
|
|
164
|
+
"rpa_job_types_update": ("rpa-job-types", "update"),
|
|
165
|
+
"rpa_jobs_cancel": ("rpa-jobs", "cancel"),
|
|
166
|
+
"rpa_jobs_list": ("rpa-jobs", "list"),
|
|
167
|
+
"rpa_jobs_logs": ("rpa-jobs", "logs"),
|
|
168
|
+
"rpa_jobs_read": ("rpa-jobs", "get"),
|
|
169
|
+
"rpa_jobs_trigger": ("rpa-jobs", "trigger"),
|
|
170
|
+
"rpa_specs_create": ("rpa-specs", "create"),
|
|
171
|
+
"rpa_specs_delete": ("rpa-specs", "delete"),
|
|
172
|
+
"rpa_specs_list": ("rpa-specs", "list"),
|
|
173
|
+
"rpa_specs_read": ("rpa-specs", "get"),
|
|
174
|
+
"rpa_specs_update": ("rpa-specs", "update"),
|
|
175
|
+
|
|
176
|
+
# runs
|
|
177
|
+
"runs_subscribe_events": ("runs", "events"),
|
|
178
|
+
|
|
179
|
+
# system
|
|
180
|
+
"system_health_read": ("system", "health"),
|
|
181
|
+
|
|
182
|
+
# tagging: the /tags resource.
|
|
183
|
+
"tagging_attach": ("tags", "attach"),
|
|
184
|
+
"tagging_detach": ("tags", "detach"),
|
|
185
|
+
"tagging_list_for_entity": ("tags", "list"),
|
|
186
|
+
"tagging_list_taxonomies": ("tags", "taxonomies"),
|
|
187
|
+
"tagging_search": ("tags", "search"),
|
|
188
|
+
|
|
189
|
+
# variables
|
|
190
|
+
"variables_delete_one": ("variables", "delete"),
|
|
191
|
+
"variables_get_effective": ("variables", "effective"),
|
|
192
|
+
"variables_get_one": ("variables", "get"),
|
|
193
|
+
"variables_list_scope": ("variables", "list"),
|
|
194
|
+
"variables_put_one": ("variables", "set"),
|
|
195
|
+
|
|
196
|
+
# webhooks: inbound integrations and outbound subscriptions.
|
|
197
|
+
"webhooks_in_create_integration": ("webhook-integrations", "create"),
|
|
198
|
+
"webhooks_in_list_integrations": ("webhook-integrations", "list"),
|
|
199
|
+
"webhooks_in_update_integration": ("webhook-integrations", "update"),
|
|
200
|
+
"webhooks_in_list_deliveries": ("webhook-integrations", "deliveries"),
|
|
201
|
+
"webhooks_in_receive": ("webhook-integrations", "receive"),
|
|
202
|
+
"webhooks_out_create_subscription": ("webhook-subscriptions", "create"),
|
|
203
|
+
"webhooks_out_delete_subscription": ("webhook-subscriptions", "delete"),
|
|
204
|
+
"webhooks_out_list_deliveries": ("webhook-subscriptions", "deliveries"),
|
|
205
|
+
"webhooks_out_list_subscriptions": ("webhook-subscriptions", "list"),
|
|
206
|
+
"webhooks_out_read_subscription": ("webhook-subscriptions", "get"),
|
|
207
|
+
"webhooks_out_test_subscription": ("webhook-subscriptions", "test"),
|
|
208
|
+
"webhooks_out_update_subscription": ("webhook-subscriptions", "update"),
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
#: A well-formed noun or verb: lower-case words joined by ``-``.
|
|
212
|
+
COMMAND_WORD_PATTERN = re.compile(r"^[a-z0-9]+(-[a-z0-9]+)*$")
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
def synonym_verb(verb: str) -> Optional[str]:
|
|
216
|
+
"""
|
|
217
|
+
The standard spelling of a derived verb (``read`` -> ``get``,
|
|
218
|
+
``get-by-slug`` -> ``get``, ``patch`` -> ``update``), or
|
|
219
|
+
``None`` when the verb is already standard.
|
|
220
|
+
|
|
221
|
+
:param verb: Derived, normalized verb.
|
|
222
|
+
|
|
223
|
+
:returns: Standard verb or ``None``.
|
|
224
|
+
"""
|
|
225
|
+
if verb in VERB_SYNONYMS:
|
|
226
|
+
rtnval: Optional[str] = VERB_SYNONYMS[verb]
|
|
227
|
+
return rtnval
|
|
228
|
+
if GET_BY_VERB_PATTERN.match(verb) is not None:
|
|
229
|
+
rtnval = "get"
|
|
230
|
+
return rtnval
|
|
231
|
+
rtnval = None
|
|
232
|
+
return rtnval
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
def is_well_formed_word(word: str) -> bool:
|
|
236
|
+
"""
|
|
237
|
+
Whether ``word`` is a well-formed noun or verb (lower case,
|
|
238
|
+
``-`` between words, no spaces or underscores).
|
|
239
|
+
|
|
240
|
+
:param word: Noun or verb.
|
|
241
|
+
|
|
242
|
+
:returns: Boolean.
|
|
243
|
+
"""
|
|
244
|
+
rtnval = COMMAND_WORD_PATTERN.match(word or "") is not None
|
|
245
|
+
return rtnval
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
__all__ = [
|
|
249
|
+
"COMMAND_NAMES",
|
|
250
|
+
"COMMAND_WORD_PATTERN",
|
|
251
|
+
"VERB_SYNONYMS",
|
|
252
|
+
"X_CLI_EXTENSION",
|
|
253
|
+
"is_well_formed_word",
|
|
254
|
+
"synonym_verb",
|
|
255
|
+
]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""
|
|
2
|
+
.. module:: cli.commands
|
|
3
|
+
:platform: Darwin, Linux, Unix, Windows
|
|
4
|
+
:synopsis: ``pyc`` command implementations.
|
|
5
|
+
|
|
6
|
+
.. moduleauthor:: Code Craft AI LLC
|
|
7
|
+
|
|
8
|
+
* :mod:`api` -- the commands generated from the server's OpenAPI
|
|
9
|
+
document (``pyc <noun> <verb>``), plus ``pyc commands``.
|
|
10
|
+
* :mod:`auth` -- ``pyc login``, ``pyc logout``, ``pyc whoami``.
|
|
11
|
+
* :mod:`config` -- ``pyc config init|set|get|unset|profiles|path``.
|
|
12
|
+
* :mod:`ext` -- ``pyc ext list``, ``pyc ext <ext-name> <verb>``,
|
|
13
|
+
``pyc plugin-api catalog``.
|
|
14
|
+
* :mod:`runs` -- ``pyc runs wait`` and ``--wait``.
|
|
15
|
+
* :mod:`version` -- ``pyc version``.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
__author__ = "Code Craft AI LLC"
|
|
19
|
+
__copyright__ = "Copyright 2026, Code Craft AI LLC"
|
|
20
|
+
__credits__ = []
|
|
21
|
+
__version__ = "1.0.0"
|