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.
Files changed (1350) hide show
  1. ccai/pychestrate/admin/__init__.py +17 -0
  2. ccai/pychestrate/admin/__main__.py +108 -0
  3. ccai/pychestrate/cli/__init__.py +41 -0
  4. ccai/pychestrate/cli/argparsing.py +136 -0
  5. ccai/pychestrate/cli/builtin_operations.py +84 -0
  6. ccai/pychestrate/cli/command_names.py +255 -0
  7. ccai/pychestrate/cli/commands/__init__.py +21 -0
  8. ccai/pychestrate/cli/commands/api.py +868 -0
  9. ccai/pychestrate/cli/commands/auth.py +391 -0
  10. ccai/pychestrate/cli/commands/config.py +247 -0
  11. ccai/pychestrate/cli/commands/ext.py +438 -0
  12. ccai/pychestrate/cli/commands/runs.py +179 -0
  13. ccai/pychestrate/cli/commands/version.py +136 -0
  14. ccai/pychestrate/cli/context.py +375 -0
  15. ccai/pychestrate/cli/credentials.py +489 -0
  16. ccai/pychestrate/cli/entry.py +1051 -0
  17. ccai/pychestrate/cli/exceptions.py +142 -0
  18. ccai/pychestrate/cli/exit_codes.py +52 -0
  19. ccai/pychestrate/cli/extensions/__init__.py +49 -0
  20. ccai/pychestrate/cli/extensions/cli_subcommand.py +122 -0
  21. ccai/pychestrate/cli/extensions/discovery.py +166 -0
  22. ccai/pychestrate/cli/extensions/example_subcommand.py +55 -0
  23. ccai/pychestrate/cli/models.py +193 -0
  24. ccai/pychestrate/cli/openapi_cache.py +287 -0
  25. ccai/pychestrate/cli/pagination.py +195 -0
  26. ccai/pychestrate/cli/parser.py +885 -0
  27. ccai/pychestrate/cli/paths.py +180 -0
  28. ccai/pychestrate/cli/renderer.py +846 -0
  29. ccai/pychestrate/cli/suggestions.py +77 -0
  30. ccai/pychestrate/cli/transport.py +600 -0
  31. ccai/pychestrate/cli/version.py +47 -0
  32. ccai/pychestrate/core/__init__.py +0 -0
  33. ccai/pychestrate/core/dbconnection.py +269 -0
  34. ccai/pychestrate/core/defaults.py +49 -0
  35. ccai/pychestrate/core/managers/__init__.py +40 -0
  36. ccai/pychestrate/core/managers/allocation_manager.py +1866 -0
  37. ccai/pychestrate/core/managers/audit_logger.py +996 -0
  38. ccai/pychestrate/core/managers/build_manager.py +1554 -0
  39. ccai/pychestrate/core/managers/git_validation.py +148 -0
  40. ccai/pychestrate/core/managers/health_monitor.py +1258 -0
  41. ccai/pychestrate/core/managers/infrastructure_manager.py +1202 -0
  42. ccai/pychestrate/core/managers/ip_pool_manager.py +1744 -0
  43. ccai/pychestrate/core/managers/project_manager.py +2154 -0
  44. ccai/pychestrate/core/managers/release_manager.py +5446 -0
  45. ccai/pychestrate/core/managers/release_template_manager.py +921 -0
  46. ccai/pychestrate/core/managers/repository_manager.py +1370 -0
  47. ccai/pychestrate/core/managers/resource_manager.py +1708 -0
  48. ccai/pychestrate/core/managers/test_manager.py +1571 -0
  49. ccai/pychestrate/core/managers/user_manager.py +727 -0
  50. ccai/pychestrate/core/managers/watch_manager.py +1588 -0
  51. ccai/pychestrate/core/migrations/__init__.py +12 -0
  52. ccai/pychestrate/core/migrations/env.py +85 -0
  53. ccai/pychestrate/core/migrations/script.py.mako +24 -0
  54. ccai/pychestrate/core/migrations/versions/001_system_configuration_tables.py +398 -0
  55. ccai/pychestrate/core/migrations/versions/002_resource_management_tables.py +454 -0
  56. ccai/pychestrate/core/migrations/versions/003_project_management_tables.py +842 -0
  57. ccai/pychestrate/core/migrations/versions/004_phase1_identity_tables.py +673 -0
  58. ccai/pychestrate/core/migrations/versions/005_phase2_client_tables.py +176 -0
  59. ccai/pychestrate/core/migrations/versions/006_phase2_projects.py +105 -0
  60. ccai/pychestrate/core/migrations/versions/007_phase2_tagging.py +59 -0
  61. ccai/pychestrate/core/migrations/versions/008_phase2_global_variables.py +83 -0
  62. ccai/pychestrate/core/migrations/versions/009_phase2_notifications.py +150 -0
  63. ccai/pychestrate/core/migrations/versions/010_phase2_retention.py +134 -0
  64. ccai/pychestrate/core/migrations/versions/011_phase2_notifications_m2.py +65 -0
  65. ccai/pychestrate/core/migrations/versions/012_phase2_m3_hardening.py +73 -0
  66. ccai/pychestrate/core/migrations/versions/013_phase3_layer3_m1.py +285 -0
  67. ccai/pychestrate/core/migrations/versions/014_phase3_layer3_m2.py +98 -0
  68. ccai/pychestrate/core/migrations/versions/015_phase2_enrollment_m2.py +105 -0
  69. ccai/pychestrate/core/migrations/versions/016_phase3_job_envelope.py +96 -0
  70. ccai/pychestrate/core/migrations/versions/017_phase3_run_state.py +237 -0
  71. ccai/pychestrate/core/migrations/versions/018_phase3_dispatch_receipt.py +163 -0
  72. ccai/pychestrate/core/migrations/versions/019_phase3_results_ingest.py +340 -0
  73. ccai/pychestrate/core/migrations/versions/020_phase3_test_orchestration.py +156 -0
  74. ccai/pychestrate/core/migrations/versions/021_phase3_b4_artifact_cancel_offline.py +320 -0
  75. ccai/pychestrate/core/migrations/versions/022_phase4_resource_inventory_pools.py +162 -0
  76. ccai/pychestrate/core/migrations/versions/023_phase4_checkout_conflict_scheduler.py +193 -0
  77. ccai/pychestrate/core/migrations/versions/024_phase4_lease_health_usage.py +260 -0
  78. ccai/pychestrate/core/migrations/versions/025_phase5_matrix_sharding.py +193 -0
  79. ccai/pychestrate/core/migrations/versions/026_phase5_flake_tracking.py +241 -0
  80. ccai/pychestrate/core/migrations/versions/027_phase5_triage_compare.py +218 -0
  81. ccai/pychestrate/core/migrations/versions/028_phase6_pipeline_definition.py +305 -0
  82. ccai/pychestrate/core/migrations/versions/029_phase6_source_integrations.py +146 -0
  83. ccai/pychestrate/core/migrations/versions/030_phase6_build_orchestration_artifacts.py +341 -0
  84. ccai/pychestrate/core/migrations/versions/031_phase7_environment_registry.py +177 -0
  85. ccai/pychestrate/core/migrations/versions/032_phase7_infra_orchestration.py +153 -0
  86. ccai/pychestrate/core/migrations/versions/033_phase7_drift_guards.py +236 -0
  87. ccai/pychestrate/core/migrations/versions/034_phase8_extension_sandbox.py +77 -0
  88. ccai/pychestrate/core/migrations/versions/035_phase9_timeseries_metrics_ingest.py +82 -0
  89. ccai/pychestrate/core/migrations/versions/036_phase9_dashboards_alerts.py +194 -0
  90. ccai/pychestrate/core/migrations/versions/037_phase9_slo_views.py +125 -0
  91. ccai/pychestrate/core/migrations/versions/038_phase10_maintenance_webhooks_out.py +234 -0
  92. ccai/pychestrate/core/migrations/versions/039_phase10_webhooks_in.py +167 -0
  93. ccai/pychestrate/core/migrations/versions/040_phase10_release_channels_agent_upgrade.py +430 -0
  94. ccai/pychestrate/core/migrations/versions/__init__.py +12 -0
  95. ccai/pychestrate/core/orm.py +2648 -0
  96. ccai/pychestrate/core/utc_datetime.py +86 -0
  97. ccai/pychestrate/webservice/agents/__init__.py +57 -0
  98. ccai/pychestrate/webservice/agents/bus_subscriber.py +118 -0
  99. ccai/pychestrate/webservice/agents/capability_matcher.py +118 -0
  100. ccai/pychestrate/webservice/agents/capability_service.py +150 -0
  101. ccai/pychestrate/webservice/agents/events.py +44 -0
  102. ccai/pychestrate/webservice/agents/exceptions.py +48 -0
  103. ccai/pychestrate/webservice/agents/extensions/__init__.py +12 -0
  104. ccai/pychestrate/webservice/agents/extensions/capability_kind.py +81 -0
  105. ccai/pychestrate/webservice/agents/factories/__init__.py +12 -0
  106. ccai/pychestrate/webservice/agents/factories/artifact_source.py +46 -0
  107. ccai/pychestrate/webservice/agents/factories/in_memory_transport.py +49 -0
  108. ccai/pychestrate/webservice/agents/factories/long_poll_transport.py +392 -0
  109. ccai/pychestrate/webservice/agents/factories/object_store_artifact_source.py +45 -0
  110. ccai/pychestrate/webservice/agents/factories/rollout_policy.py +60 -0
  111. ccai/pychestrate/webservice/agents/factories/transport.py +60 -0
  112. ccai/pychestrate/webservice/agents/inventory_service.py +126 -0
  113. ccai/pychestrate/webservice/agents/models.py +244 -0
  114. ccai/pychestrate/webservice/agents/protocol_service.py +227 -0
  115. ccai/pychestrate/webservice/agents/restapi/__init__.py +12 -0
  116. ccai/pychestrate/webservice/agents/restapi/v1/__init__.py +12 -0
  117. ccai/pychestrate/webservice/agents/restapi/v1/agents_routes.py +565 -0
  118. ccai/pychestrate/webservice/agents/upgrade_service.py +483 -0
  119. ccai/pychestrate/webservice/api/__init__.py +41 -0
  120. ccai/pychestrate/webservice/api/error_catalogue.py +140 -0
  121. ccai/pychestrate/webservice/api/openapi_document.py +505 -0
  122. ccai/pychestrate/webservice/api/problem_json.py +411 -0
  123. ccai/pychestrate/webservice/api/problem_json_webworks.py +210 -0
  124. ccai/pychestrate/webservice/api/rest_authz.py +147 -0
  125. ccai/pychestrate/webservice/artifacts/__init__.py +61 -0
  126. ccai/pychestrate/webservice/artifacts/cas_layout.py +54 -0
  127. ccai/pychestrate/webservice/artifacts/errors.py +28 -0
  128. ccai/pychestrate/webservice/artifacts/factories/__init__.py +9 -0
  129. ccai/pychestrate/webservice/artifacts/factories/default_promotion.py +61 -0
  130. ccai/pychestrate/webservice/artifacts/factories/promotion_strategy.py +62 -0
  131. ccai/pychestrate/webservice/artifacts/hashing.py +57 -0
  132. ccai/pychestrate/webservice/artifacts/models.py +108 -0
  133. ccai/pychestrate/webservice/artifacts/store.py +286 -0
  134. ccai/pychestrate/webservice/audit/__init__.py +149 -0
  135. ccai/pychestrate/webservice/audit/audit_presenter.py +420 -0
  136. ccai/pychestrate/webservice/audit/audit_query.py +314 -0
  137. ccai/pychestrate/webservice/audit/audit_writer.py +154 -0
  138. ccai/pychestrate/webservice/audit/bus_subscriber.py +278 -0
  139. ccai/pychestrate/webservice/audit/chain_verifier.py +115 -0
  140. ccai/pychestrate/webservice/audit/data_change_bridge.py +579 -0
  141. ccai/pychestrate/webservice/audit/events.py +24 -0
  142. ccai/pychestrate/webservice/audit/exceptions.py +26 -0
  143. ccai/pychestrate/webservice/audit/extensions/__init__.py +12 -0
  144. ccai/pychestrate/webservice/audit/extensions/data_change_events.py +82 -0
  145. ccai/pychestrate/webservice/audit/extensions/event_type.py +48 -0
  146. ccai/pychestrate/webservice/audit/extensions/ip_allocation_events.py +50 -0
  147. ccai/pychestrate/webservice/audit/extensions/notification_events.py +79 -0
  148. ccai/pychestrate/webservice/audit/extensions/project_events.py +119 -0
  149. ccai/pychestrate/webservice/audit/extensions/reservation_events.py +52 -0
  150. ccai/pychestrate/webservice/audit/extensions/resource_events.py +82 -0
  151. ccai/pychestrate/webservice/audit/extensions/role_events.py +124 -0
  152. ccai/pychestrate/webservice/audit/extensions/rpa_events.py +212 -0
  153. ccai/pychestrate/webservice/audit/extensions/secret_events.py +130 -0
  154. ccai/pychestrate/webservice/audit/extensions/session_events.py +104 -0
  155. ccai/pychestrate/webservice/audit/extensions/ui_profile_events.py +34 -0
  156. ccai/pychestrate/webservice/audit/extensions/user_events.py +192 -0
  157. ccai/pychestrate/webservice/audit/extensions/variable_events.py +54 -0
  158. ccai/pychestrate/webservice/audit/factories/__init__.py +12 -0
  159. ccai/pychestrate/webservice/audit/factories/audit_sink.py +90 -0
  160. ccai/pychestrate/webservice/audit/factories/local_db_sink.py +66 -0
  161. ccai/pychestrate/webservice/audit/models.py +119 -0
  162. ccai/pychestrate/webservice/audit/restapi/__init__.py +12 -0
  163. ccai/pychestrate/webservice/audit/restapi/v1/__init__.py +12 -0
  164. ccai/pychestrate/webservice/audit/restapi/v1/audit_routes.py +311 -0
  165. ccai/pychestrate/webservice/backup/__init__.py +108 -0
  166. ccai/pychestrate/webservice/backup/archive.py +343 -0
  167. ccai/pychestrate/webservice/backup/cli.py +394 -0
  168. ccai/pychestrate/webservice/backup/database_snapshot.py +816 -0
  169. ccai/pychestrate/webservice/backup/errors.py +80 -0
  170. ccai/pychestrate/webservice/backup/events.py +25 -0
  171. ccai/pychestrate/webservice/backup/factories/__init__.py +9 -0
  172. ccai/pychestrate/webservice/backup/factories/local_backend.py +234 -0
  173. ccai/pychestrate/webservice/backup/factories/storage_backend.py +150 -0
  174. ccai/pychestrate/webservice/backup/key_material.py +561 -0
  175. ccai/pychestrate/webservice/backup/locations.py +150 -0
  176. ccai/pychestrate/webservice/backup/models.py +84 -0
  177. ccai/pychestrate/webservice/backup/repository.py +192 -0
  178. ccai/pychestrate/webservice/backup/restapi/__init__.py +0 -0
  179. ccai/pychestrate/webservice/backup/restapi/v1/__init__.py +9 -0
  180. ccai/pychestrate/webservice/backup/restapi/v1/backup_routes.py +769 -0
  181. ccai/pychestrate/webservice/backup/service.py +1214 -0
  182. ccai/pychestrate/webservice/clients/__init__.py +33 -0
  183. ccai/pychestrate/webservice/clients/enrollment/__init__.py +42 -0
  184. ccai/pychestrate/webservice/clients/enrollment/ca_adapter.py +618 -0
  185. ccai/pychestrate/webservice/clients/enrollment/factories/__init__.py +12 -0
  186. ccai/pychestrate/webservice/clients/enrollment/factories/csr_subject_verifier.py +145 -0
  187. ccai/pychestrate/webservice/clients/enrollment/factories/identity_verifier.py +108 -0
  188. ccai/pychestrate/webservice/clients/enrollment/factories/scope_identity_verifier.py +61 -0
  189. ccai/pychestrate/webservice/clients/enrollment/factories/stdlib_token_issuer.py +97 -0
  190. ccai/pychestrate/webservice/clients/enrollment/factories/token_issuer.py +83 -0
  191. ccai/pychestrate/webservice/clients/enrollment/service.py +780 -0
  192. ccai/pychestrate/webservice/clients/enums.py +58 -0
  193. ccai/pychestrate/webservice/clients/events.py +28 -0
  194. ccai/pychestrate/webservice/clients/exceptions.py +90 -0
  195. ccai/pychestrate/webservice/clients/liveness_watchdog.py +212 -0
  196. ccai/pychestrate/webservice/clients/models.py +232 -0
  197. ccai/pychestrate/webservice/clients/mtls_identity.py +394 -0
  198. ccai/pychestrate/webservice/clients/registry/__init__.py +45 -0
  199. ccai/pychestrate/webservice/clients/registry/extensions/__init__.py +12 -0
  200. ccai/pychestrate/webservice/clients/registry/extensions/client_attribute_extension.py +36 -0
  201. ccai/pychestrate/webservice/clients/registry/extensions/concurrency_attribute.py +38 -0
  202. ccai/pychestrate/webservice/clients/registry/extensions/cpu_arch_attribute.py +32 -0
  203. ccai/pychestrate/webservice/clients/registry/extensions/os_kind_attribute.py +37 -0
  204. ccai/pychestrate/webservice/clients/registry/service.py +694 -0
  205. ccai/pychestrate/webservice/clients/restapi/__init__.py +12 -0
  206. ccai/pychestrate/webservice/clients/restapi/v1/__init__.py +12 -0
  207. ccai/pychestrate/webservice/clients/restapi/v1/client_dispatch_routes.py +795 -0
  208. ccai/pychestrate/webservice/clients/restapi/v1/clients_routes.py +620 -0
  209. ccai/pychestrate/webservice/clients/restapi/v1/enrollment_routes.py +727 -0
  210. ccai/pychestrate/webservice/clients/revoked_client_gate.py +123 -0
  211. ccai/pychestrate/webservice/clients/upgrades/__init__.py +105 -0
  212. ccai/pychestrate/webservice/clients/upgrades/dtos.py +57 -0
  213. ccai/pychestrate/webservice/clients/upgrades/enums.py +55 -0
  214. ccai/pychestrate/webservice/clients/upgrades/errors.py +41 -0
  215. ccai/pychestrate/webservice/clients/upgrades/events.py +33 -0
  216. ccai/pychestrate/webservice/clients/upgrades/factories/__init__.py +9 -0
  217. ccai/pychestrate/webservice/clients/upgrades/factories/fixed_set_policy.py +68 -0
  218. ccai/pychestrate/webservice/clients/upgrades/factories/object_store_source.py +102 -0
  219. ccai/pychestrate/webservice/clients/upgrades/factories/rollout_policy_protocol.py +53 -0
  220. ccai/pychestrate/webservice/clients/upgrades/factories/upgrade_artifact_source_protocol.py +50 -0
  221. ccai/pychestrate/webservice/clients/upgrades/models.py +159 -0
  222. ccai/pychestrate/webservice/clients/upgrades/pins.py +141 -0
  223. ccai/pychestrate/webservice/clients/upgrades/repository.py +237 -0
  224. ccai/pychestrate/webservice/clients/upgrades/service.py +506 -0
  225. ccai/pychestrate/webservice/configdocs/__init__.py +200 -0
  226. ccai/pychestrate/webservice/configdocs/domains.py +137 -0
  227. ccai/pychestrate/webservice/configdocs/errors.py +174 -0
  228. ccai/pychestrate/webservice/configdocs/loader.py +428 -0
  229. ccai/pychestrate/webservice/configdocs/merging.py +306 -0
  230. ccai/pychestrate/webservice/configdocs/models.py +660 -0
  231. ccai/pychestrate/webservice/configdocs/protocol.py +160 -0
  232. ccai/pychestrate/webservice/configdocs/resolver.py +279 -0
  233. ccai/pychestrate/webservice/configdocs/validation.py +239 -0
  234. ccai/pychestrate/webservice/csv_export.py +87 -0
  235. ccai/pychestrate/webservice/embed/__init__.py +63 -0
  236. ccai/pychestrate/webservice/embed/key_provider.py +128 -0
  237. ccai/pychestrate/webservice/embed/restapi/__init__.py +1 -0
  238. ccai/pychestrate/webservice/embed/restapi/v1/__init__.py +1 -0
  239. ccai/pychestrate/webservice/embed/restapi/v1/embed_routes.py +803 -0
  240. ccai/pychestrate/webservice/embed/signing.py +397 -0
  241. ccai/pychestrate/webservice/embed/view_catalog.py +159 -0
  242. ccai/pychestrate/webservice/extension/__init__.py +20 -0
  243. ccai/pychestrate/webservice/extension/docs_ext/__init__.py +177 -0
  244. ccai/pychestrate/webservice/extension/docs_ext/catalog_walker.py +252 -0
  245. ccai/pychestrate/webservice/extension/docs_ext/models.py +51 -0
  246. ccai/pychestrate/webservice/extension/docs_ext/templates/protocol_page.rst.jinja +19 -0
  247. ccai/pychestrate/webservice/extension/docs_ext/templates/protocols_index.rst.jinja +13 -0
  248. ccai/pychestrate/webservice/extension/docs_ext/templates/resource_page.rst.jinja +18 -0
  249. ccai/pychestrate/webservice/extension/docs_ext/templates/resources_index.rst.jinja +13 -0
  250. ccai/pychestrate/webservice/extension/pack_template/__init__.py +40 -0
  251. ccai/pychestrate/webservice/extension/pack_template/cli.py +214 -0
  252. ccai/pychestrate/webservice/extension/pack_template/corpus/v1/AGENTS.md.jinja +26 -0
  253. ccai/pychestrate/webservice/extension/pack_template/corpus/v1/README.rst.jinja +37 -0
  254. ccai/pychestrate/webservice/extension/pack_template/corpus/v1/_meta.yaml +6 -0
  255. ccai/pychestrate/webservice/extension/pack_template/corpus/v1/pychestrate_ext.yaml.jinja +30 -0
  256. ccai/pychestrate/webservice/extension/pack_template/corpus/v1/pyproject.toml.jinja +26 -0
  257. ccai/pychestrate/webservice/extension/pack_template/corpus/v1/source/packages/ccai/extensions/pychestrate/__NAME__/register.py.jinja +35 -0
  258. ccai/pychestrate/webservice/extension/pack_template/corpus/v1/source/packages/ccai/extensions/pychestrate/__NAME__/sample_resource.py.jinja +29 -0
  259. ccai/pychestrate/webservice/extension/pack_template/corpus/v1/source/packages/ccai/factories/pychestrate/__NAME__/sample_factory.py.jinja +40 -0
  260. ccai/pychestrate/webservice/extension/pack_template/corpus/v1/tests/unit/test_sample.py.jinja +26 -0
  261. ccai/pychestrate/webservice/extension/pack_template/corpus_loader.py +124 -0
  262. ccai/pychestrate/webservice/extension/pack_template/generator.py +355 -0
  263. ccai/pychestrate/webservice/extension/pack_template/models.py +82 -0
  264. ccai/pychestrate/webservice/extensions/__init__.py +21 -0
  265. ccai/pychestrate/webservice/extensions/bootstrap.py +229 -0
  266. ccai/pychestrate/webservice/extensions/cli_ext_pairing.py +137 -0
  267. ccai/pychestrate/webservice/extensions/discovery.py +212 -0
  268. ccai/pychestrate/webservice/extensions/ext_router.py +295 -0
  269. ccai/pychestrate/webservice/extensions/factory_protocol.py +40 -0
  270. ccai/pychestrate/webservice/extensions/phase2_bootstrap.py +120 -0
  271. ccai/pychestrate/webservice/extensions/phase3_bootstrap.py +75 -0
  272. ccai/pychestrate/webservice/extensions/phase4_bootstrap.py +69 -0
  273. ccai/pychestrate/webservice/extensions/phase5_bootstrap.py +520 -0
  274. ccai/pychestrate/webservice/extensions/phase6_bootstrap.py +435 -0
  275. ccai/pychestrate/webservice/extensions/phase7_bootstrap.py +370 -0
  276. ccai/pychestrate/webservice/extensions/phase8_bootstrap.py +87 -0
  277. ccai/pychestrate/webservice/extensions/registry.py +179 -0
  278. ccai/pychestrate/webservice/extensions/resource_extension.py +30 -0
  279. ccai/pychestrate/webservice/extensions/rest_endpoint_example.py +76 -0
  280. ccai/pychestrate/webservice/extensions/rest_endpoint_protocol.py +179 -0
  281. ccai/pychestrate/webservice/extensions/sandbox/__init__.py +65 -0
  282. ccai/pychestrate/webservice/extensions/sandbox/authority.py +383 -0
  283. ccai/pychestrate/webservice/extensions/sandbox/errors.py +29 -0
  284. ccai/pychestrate/webservice/extensions/sandbox/events.py +22 -0
  285. ccai/pychestrate/webservice/extensions/sandbox/models.py +57 -0
  286. ccai/pychestrate/webservice/extensions/sandbox/repository.py +153 -0
  287. ccai/pychestrate/webservice/extensions/sandbox/service.py +268 -0
  288. ccai/pychestrate/webservice/extensions/view_registry_self_check.py +211 -0
  289. ccai/pychestrate/webservice/hardening/__init__.py +17 -0
  290. ccai/pychestrate/webservice/hardening/collisions.py +69 -0
  291. ccai/pychestrate/webservice/hardening/idempotency.py +135 -0
  292. ccai/pychestrate/webservice/hardening/logs.py +86 -0
  293. ccai/pychestrate/webservice/hardening/metrics.py +114 -0
  294. ccai/pychestrate/webservice/hardening/platform_wsgi.py +160 -0
  295. ccai/pychestrate/webservice/hardening/rate_limit.py +112 -0
  296. ccai/pychestrate/webservice/hardening/security_headers.py +290 -0
  297. ccai/pychestrate/webservice/housekeeping/__init__.py +57 -0
  298. ccai/pychestrate/webservice/housekeeping/leases.py +191 -0
  299. ccai/pychestrate/webservice/housekeeping/models.py +44 -0
  300. ccai/pychestrate/webservice/housekeeping/tasks.py +381 -0
  301. ccai/pychestrate/webservice/identity/__init__.py +12 -0
  302. ccai/pychestrate/webservice/identity/flags/__init__.py +32 -0
  303. ccai/pychestrate/webservice/identity/flags/backend_router.py +198 -0
  304. ccai/pychestrate/webservice/identity/flags/cache.py +254 -0
  305. ccai/pychestrate/webservice/identity/flags/events.py +25 -0
  306. ccai/pychestrate/webservice/identity/flags/exceptions.py +30 -0
  307. ccai/pychestrate/webservice/identity/flags/factories/__init__.py +12 -0
  308. ccai/pychestrate/webservice/identity/flags/factories/feature_flag_backend.py +115 -0
  309. ccai/pychestrate/webservice/identity/flags/factories/local_backend.py +74 -0
  310. ccai/pychestrate/webservice/identity/flags/flag_evaluator.py +251 -0
  311. ccai/pychestrate/webservice/identity/flags/flag_service.py +482 -0
  312. ccai/pychestrate/webservice/identity/flags/health_prober.py +228 -0
  313. ccai/pychestrate/webservice/identity/flags/models.py +113 -0
  314. ccai/pychestrate/webservice/identity/flags/restapi/__init__.py +12 -0
  315. ccai/pychestrate/webservice/identity/flags/restapi/v1/__init__.py +12 -0
  316. ccai/pychestrate/webservice/identity/flags/restapi/v1/flags_routes.py +694 -0
  317. ccai/pychestrate/webservice/identity/flags/rules.py +60 -0
  318. ccai/pychestrate/webservice/identity/setup/__init__.py +29 -0
  319. ccai/pychestrate/webservice/identity/setup/exceptions.py +53 -0
  320. ccai/pychestrate/webservice/identity/setup/models.py +120 -0
  321. ccai/pychestrate/webservice/identity/setup/setup_manager.py +430 -0
  322. ccai/pychestrate/webservice/identity/setup/setup_service.py +547 -0
  323. ccai/pychestrate/webservice/identity/setup/testadmin_seeder.py +345 -0
  324. ccai/pychestrate/webservice/identity/users/__init__.py +29 -0
  325. ccai/pychestrate/webservice/identity/users/events.py +27 -0
  326. ccai/pychestrate/webservice/identity/users/exceptions.py +38 -0
  327. ccai/pychestrate/webservice/identity/users/factories/__init__.py +12 -0
  328. ccai/pychestrate/webservice/identity/users/factories/local_directory.py +53 -0
  329. ccai/pychestrate/webservice/identity/users/factories/user_directory_source.py +96 -0
  330. ccai/pychestrate/webservice/identity/users/limits.py +32 -0
  331. ccai/pychestrate/webservice/identity/users/models.py +138 -0
  332. ccai/pychestrate/webservice/identity/users/repositories/__init__.py +12 -0
  333. ccai/pychestrate/webservice/identity/users/repositories/user_repository.py +138 -0
  334. ccai/pychestrate/webservice/identity/users/restapi/__init__.py +12 -0
  335. ccai/pychestrate/webservice/identity/users/restapi/v1/__init__.py +12 -0
  336. ccai/pychestrate/webservice/identity/users/restapi/v1/users_routes.py +465 -0
  337. ccai/pychestrate/webservice/identity/users/user_service.py +193 -0
  338. ccai/pychestrate/webservice/ingest/__init__.py +18 -0
  339. ccai/pychestrate/webservice/ingest/progress/__init__.py +78 -0
  340. ccai/pychestrate/webservice/ingest/progress/errors.py +42 -0
  341. ccai/pychestrate/webservice/ingest/progress/events.py +26 -0
  342. ccai/pychestrate/webservice/ingest/progress/factories/__init__.py +12 -0
  343. ccai/pychestrate/webservice/ingest/progress/factories/parser_protocol.py +101 -0
  344. ccai/pychestrate/webservice/ingest/progress/factories/testbase_v1.py +194 -0
  345. ccai/pychestrate/webservice/ingest/progress/models.py +160 -0
  346. ccai/pychestrate/webservice/ingest/progress/repositories.py +288 -0
  347. ccai/pychestrate/webservice/ingest/progress/schema.py +163 -0
  348. ccai/pychestrate/webservice/ingest/progress/service.py +590 -0
  349. ccai/pychestrate/webservice/ingest/result/__init__.py +73 -0
  350. ccai/pychestrate/webservice/ingest/result/classification.py +154 -0
  351. ccai/pychestrate/webservice/ingest/result/completion.py +657 -0
  352. ccai/pychestrate/webservice/ingest/result/errors.py +31 -0
  353. ccai/pychestrate/webservice/ingest/result/events.py +22 -0
  354. ccai/pychestrate/webservice/ingest/result/extensions/__init__.py +38 -0
  355. ccai/pychestrate/webservice/ingest/result/extensions/artifact_classifier.py +112 -0
  356. ccai/pychestrate/webservice/ingest/result/extensions/testbase_classifier.py +114 -0
  357. ccai/pychestrate/webservice/ingest/result/factories/__init__.py +12 -0
  358. ccai/pychestrate/webservice/ingest/result/factories/junit_xml.py +522 -0
  359. ccai/pychestrate/webservice/ingest/result/factories/parser_protocol.py +120 -0
  360. ccai/pychestrate/webservice/ingest/result/factories/testbase_v1.py +285 -0
  361. ccai/pychestrate/webservice/ingest/result/models.py +170 -0
  362. ccai/pychestrate/webservice/ingest/result/repositories.py +363 -0
  363. ccai/pychestrate/webservice/ingest/result/scanner.py +303 -0
  364. ccai/pychestrate/webservice/jobs/__init__.py +21 -0
  365. ccai/pychestrate/webservice/jobs/cancel/__init__.py +58 -0
  366. ccai/pychestrate/webservice/jobs/cancel/client_cancel.py +189 -0
  367. ccai/pychestrate/webservice/jobs/cancel/dispatcher.py +298 -0
  368. ccai/pychestrate/webservice/jobs/cancel/errors.py +32 -0
  369. ccai/pychestrate/webservice/jobs/cancel/events.py +18 -0
  370. ccai/pychestrate/webservice/jobs/cancel/heartbeattransport.py +332 -0
  371. ccai/pychestrate/webservice/jobs/cancel/models.py +76 -0
  372. ccai/pychestrate/webservice/jobs/cancel/repository.py +171 -0
  373. ccai/pychestrate/webservice/jobs/dispatch/__init__.py +72 -0
  374. ccai/pychestrate/webservice/jobs/dispatch/dispatcher.py +333 -0
  375. ccai/pychestrate/webservice/jobs/dispatch/errors.py +58 -0
  376. ccai/pychestrate/webservice/jobs/dispatch/factories/__init__.py +12 -0
  377. ccai/pychestrate/webservice/jobs/dispatch/factories/fifo.py +62 -0
  378. ccai/pychestrate/webservice/jobs/dispatch/factories/strategy.py +96 -0
  379. ccai/pychestrate/webservice/jobs/dispatch/models.py +92 -0
  380. ccai/pychestrate/webservice/jobs/dispatch/receipt/__init__.py +47 -0
  381. ccai/pychestrate/webservice/jobs/dispatch/receipt/errors.py +44 -0
  382. ccai/pychestrate/webservice/jobs/dispatch/receipt/models.py +69 -0
  383. ccai/pychestrate/webservice/jobs/dispatch/receipt/repository.py +151 -0
  384. ccai/pychestrate/webservice/jobs/dispatch/receipt/schema.py +57 -0
  385. ccai/pychestrate/webservice/jobs/dispatch/receipt/service.py +281 -0
  386. ccai/pychestrate/webservice/jobs/dispatch/receipt/timer_wheel.py +226 -0
  387. ccai/pychestrate/webservice/jobs/dispatch/repository.py +209 -0
  388. ccai/pychestrate/webservice/jobs/dispatch/transport_adapter.py +182 -0
  389. ccai/pychestrate/webservice/jobs/envelope/__init__.py +81 -0
  390. ccai/pychestrate/webservice/jobs/envelope/canonical.py +388 -0
  391. ccai/pychestrate/webservice/jobs/envelope/codec.py +237 -0
  392. ccai/pychestrate/webservice/jobs/envelope/errors.py +54 -0
  393. ccai/pychestrate/webservice/jobs/envelope/models.py +70 -0
  394. ccai/pychestrate/webservice/jobs/envelope/repository.py +156 -0
  395. ccai/pychestrate/webservice/jobs/envelope/restapi/__init__.py +12 -0
  396. ccai/pychestrate/webservice/jobs/envelope/restapi/v1/__init__.py +12 -0
  397. ccai/pychestrate/webservice/jobs/envelope/restapi/v1/jwks_routes.py +421 -0
  398. ccai/pychestrate/webservice/jobs/envelope/restapi/v1/signing_keys_routes.py +204 -0
  399. ccai/pychestrate/webservice/jobs/envelope/schema.py +335 -0
  400. ccai/pychestrate/webservice/jobs/envelope/signer.py +466 -0
  401. ccai/pychestrate/webservice/jobs/envelope/startup.py +200 -0
  402. ccai/pychestrate/webservice/jobs/offline/__init__.py +48 -0
  403. ccai/pychestrate/webservice/jobs/offline/cancel_queue.py +151 -0
  404. ccai/pychestrate/webservice/jobs/offline/errors.py +30 -0
  405. ccai/pychestrate/webservice/jobs/offline/models.py +135 -0
  406. ccai/pychestrate/webservice/jobs/offline/pod_state.py +228 -0
  407. ccai/pychestrate/webservice/jobs/offline/replay.py +117 -0
  408. ccai/pychestrate/webservice/jobs/readiness.py +234 -0
  409. ccai/pychestrate/webservice/jobs/reconcile/__init__.py +29 -0
  410. ccai/pychestrate/webservice/jobs/reconcile/errors.py +15 -0
  411. ccai/pychestrate/webservice/jobs/reconcile/models.py +69 -0
  412. ccai/pychestrate/webservice/jobs/reconcile/reconciler.py +260 -0
  413. ccai/pychestrate/webservice/jobs/results/__init__.py +50 -0
  414. ccai/pychestrate/webservice/jobs/results/artifact_root.py +202 -0
  415. ccai/pychestrate/webservice/jobs/results/backend.py +238 -0
  416. ccai/pychestrate/webservice/jobs/results/errors.py +58 -0
  417. ccai/pychestrate/webservice/jobs/results/models.py +58 -0
  418. ccai/pychestrate/webservice/jobs/results/path_builder.py +111 -0
  419. ccai/pychestrate/webservice/jobs/results/presign.py +431 -0
  420. ccai/pychestrate/webservice/jobs/results/repository.py +87 -0
  421. ccai/pychestrate/webservice/jobs/run/__init__.py +17 -0
  422. ccai/pychestrate/webservice/jobs/run/state/__init__.py +69 -0
  423. ccai/pychestrate/webservice/jobs/run/state/advance.py +443 -0
  424. ccai/pychestrate/webservice/jobs/run/state/enums.py +101 -0
  425. ccai/pychestrate/webservice/jobs/run/state/errors.py +43 -0
  426. ccai/pychestrate/webservice/jobs/run/state/events.py +83 -0
  427. ccai/pychestrate/webservice/jobs/run/state/machine.py +496 -0
  428. ccai/pychestrate/webservice/jobs/run/state/models.py +139 -0
  429. ccai/pychestrate/webservice/jobs/run/state/outbox_publisher.py +89 -0
  430. ccai/pychestrate/webservice/jobs/run/state/repository.py +304 -0
  431. ccai/pychestrate/webservice/jobs/run/state/transition_table.py +227 -0
  432. ccai/pychestrate/webservice/jobs/scheduling/__init__.py +43 -0
  433. ccai/pychestrate/webservice/jobs/scheduling/scheduler.py +299 -0
  434. ccai/pychestrate/webservice/maintenance/__init__.py +59 -0
  435. ccai/pychestrate/webservice/maintenance/errors.py +28 -0
  436. ccai/pychestrate/webservice/maintenance/events.py +19 -0
  437. ccai/pychestrate/webservice/maintenance/gate.py +182 -0
  438. ccai/pychestrate/webservice/maintenance/models.py +70 -0
  439. ccai/pychestrate/webservice/maintenance/repository.py +134 -0
  440. ccai/pychestrate/webservice/maintenance/service.py +425 -0
  441. ccai/pychestrate/webservice/mcp/__init__.py +18 -0
  442. ccai/pychestrate/webservice/mcp/lab_tools.py +862 -0
  443. ccai/pychestrate/webservice/mcp/service_endpoint.py +913 -0
  444. ccai/pychestrate/webservice/mcp/tooling.py +298 -0
  445. ccai/pychestrate/webservice/messages.py +17 -0
  446. ccai/pychestrate/webservice/messaging/__init__.py +18 -0
  447. ccai/pychestrate/webservice/messaging/event_bus.py +125 -0
  448. ccai/pychestrate/webservice/messaging/outbox.py +93 -0
  449. ccai/pychestrate/webservice/metadata.py +55 -0
  450. ccai/pychestrate/webservice/metrics/__init__.py +14 -0
  451. ccai/pychestrate/webservice/metrics/alerts/__init__.py +83 -0
  452. ccai/pychestrate/webservice/metrics/alerts/errors.py +42 -0
  453. ccai/pychestrate/webservice/metrics/alerts/events.py +25 -0
  454. ccai/pychestrate/webservice/metrics/alerts/factories/__init__.py +9 -0
  455. ccai/pychestrate/webservice/metrics/alerts/factories/rule_kind_protocol.py +100 -0
  456. ccai/pychestrate/webservice/metrics/alerts/factories/threshold_rule_kind.py +284 -0
  457. ccai/pychestrate/webservice/metrics/alerts/models.py +120 -0
  458. ccai/pychestrate/webservice/metrics/alerts/repository.py +227 -0
  459. ccai/pychestrate/webservice/metrics/alerts/service.py +635 -0
  460. ccai/pychestrate/webservice/metrics/dashboards/__init__.py +78 -0
  461. ccai/pychestrate/webservice/metrics/dashboards/errors.py +42 -0
  462. ccai/pychestrate/webservice/metrics/dashboards/events.py +18 -0
  463. ccai/pychestrate/webservice/metrics/dashboards/factories/__init__.py +9 -0
  464. ccai/pychestrate/webservice/metrics/dashboards/factories/line_chart_tile_kind.py +101 -0
  465. ccai/pychestrate/webservice/metrics/dashboards/factories/single_stat_tile_kind.py +91 -0
  466. ccai/pychestrate/webservice/metrics/dashboards/factories/tile_kind_protocol.py +74 -0
  467. ccai/pychestrate/webservice/metrics/dashboards/models.py +57 -0
  468. ccai/pychestrate/webservice/metrics/dashboards/repository.py +102 -0
  469. ccai/pychestrate/webservice/metrics/dashboards/service.py +507 -0
  470. ccai/pychestrate/webservice/metrics/ingest/__init__.py +68 -0
  471. ccai/pychestrate/webservice/metrics/ingest/bus_bridge.py +189 -0
  472. ccai/pychestrate/webservice/metrics/ingest/errors.py +22 -0
  473. ccai/pychestrate/webservice/metrics/ingest/events.py +18 -0
  474. ccai/pychestrate/webservice/metrics/ingest/extensions/__init__.py +9 -0
  475. ccai/pychestrate/webservice/metrics/ingest/extensions/metric_definition.py +113 -0
  476. ccai/pychestrate/webservice/metrics/ingest/extensions/reservation_granted_counter.py +81 -0
  477. ccai/pychestrate/webservice/metrics/ingest/extensions/rpa_counters.py +203 -0
  478. ccai/pychestrate/webservice/metrics/ingest/service.py +218 -0
  479. ccai/pychestrate/webservice/metrics/restapi/__init__.py +12 -0
  480. ccai/pychestrate/webservice/metrics/restapi/v1/__init__.py +12 -0
  481. ccai/pychestrate/webservice/metrics/restapi/v1/dashboards_routes.py +846 -0
  482. ccai/pychestrate/webservice/metrics/restapi/v1/metric_alerts_routes.py +721 -0
  483. ccai/pychestrate/webservice/metrics/restapi/v1/metrics_routes.py +788 -0
  484. ccai/pychestrate/webservice/metrics/restapi/v1/slos_routes.py +939 -0
  485. ccai/pychestrate/webservice/metrics/restapi/v1/ui_metrics_routes.py +492 -0
  486. ccai/pychestrate/webservice/metrics/slos/__init__.py +75 -0
  487. ccai/pychestrate/webservice/metrics/slos/errors.py +41 -0
  488. ccai/pychestrate/webservice/metrics/slos/events.py +22 -0
  489. ccai/pychestrate/webservice/metrics/slos/factories/__init__.py +9 -0
  490. ccai/pychestrate/webservice/metrics/slos/factories/availability_ratio_kind.py +170 -0
  491. ccai/pychestrate/webservice/metrics/slos/factories/kind_protocol.py +99 -0
  492. ccai/pychestrate/webservice/metrics/slos/models.py +85 -0
  493. ccai/pychestrate/webservice/metrics/slos/repository.py +140 -0
  494. ccai/pychestrate/webservice/metrics/slos/service.py +528 -0
  495. ccai/pychestrate/webservice/metrics/timeseries/__init__.py +89 -0
  496. ccai/pychestrate/webservice/metrics/timeseries/errors.py +44 -0
  497. ccai/pychestrate/webservice/metrics/timeseries/events.py +22 -0
  498. ccai/pychestrate/webservice/metrics/timeseries/facade.py +414 -0
  499. ccai/pychestrate/webservice/metrics/timeseries/factories/__init__.py +9 -0
  500. ccai/pychestrate/webservice/metrics/timeseries/factories/driver_protocol.py +62 -0
  501. ccai/pychestrate/webservice/metrics/timeseries/factories/native_pg_driver.py +61 -0
  502. ccai/pychestrate/webservice/metrics/timeseries/models.py +54 -0
  503. ccai/pychestrate/webservice/metrics/timeseries/repository.py +110 -0
  504. ccai/pychestrate/webservice/metrics/timeseries/selection.py +183 -0
  505. ccai/pychestrate/webservice/metrics/timeseries/service.py +158 -0
  506. ccai/pychestrate/webservice/middleware_setup_gate.py +300 -0
  507. ccai/pychestrate/webservice/middleware_webworks.py +952 -0
  508. ccai/pychestrate/webservice/notifications/__init__.py +66 -0
  509. ccai/pychestrate/webservice/notifications/channel_config.py +297 -0
  510. ccai/pychestrate/webservice/notifications/events.py +29 -0
  511. ccai/pychestrate/webservice/notifications/exceptions.py +108 -0
  512. ccai/pychestrate/webservice/notifications/extensions/__init__.py +12 -0
  513. ccai/pychestrate/webservice/notifications/extensions/channel_test_template.py +50 -0
  514. ccai/pychestrate/webservice/notifications/extensions/run_failed_template.py +74 -0
  515. ccai/pychestrate/webservice/notifications/extensions/run_succeeded_template.py +65 -0
  516. ccai/pychestrate/webservice/notifications/extensions/template.py +74 -0
  517. ccai/pychestrate/webservice/notifications/factories/__init__.py +12 -0
  518. ccai/pychestrate/webservice/notifications/factories/channel.py +110 -0
  519. ccai/pychestrate/webservice/notifications/factories/smtp_email.py +134 -0
  520. ccai/pychestrate/webservice/notifications/factories/webhook_channels.py +248 -0
  521. ccai/pychestrate/webservice/notifications/models.py +201 -0
  522. ccai/pychestrate/webservice/notifications/repository.py +387 -0
  523. ccai/pychestrate/webservice/notifications/restapi/__init__.py +12 -0
  524. ccai/pychestrate/webservice/notifications/restapi/v1/__init__.py +12 -0
  525. ccai/pychestrate/webservice/notifications/restapi/v1/channels_routes.py +572 -0
  526. ccai/pychestrate/webservice/notifications/restapi/v1/routing_rules_routes.py +211 -0
  527. ccai/pychestrate/webservice/notifications/router.py +228 -0
  528. ccai/pychestrate/webservice/notifications/rule_validation.py +128 -0
  529. ccai/pychestrate/webservice/notifications/run_notifier.py +267 -0
  530. ccai/pychestrate/webservice/notifications/service.py +1094 -0
  531. ccai/pychestrate/webservice/ops/__init__.py +9 -0
  532. ccai/pychestrate/webservice/ops/release/__init__.py +124 -0
  533. ccai/pychestrate/webservice/ops/release/errors.py +67 -0
  534. ccai/pychestrate/webservice/ops/release/events.py +24 -0
  535. ccai/pychestrate/webservice/ops/release/factories/__init__.py +10 -0
  536. ccai/pychestrate/webservice/ops/release/factories/hash_ring_policy.py +126 -0
  537. ccai/pychestrate/webservice/ops/release/factories/release_channel_policy.py +97 -0
  538. ccai/pychestrate/webservice/ops/release/manifest_signer.py +213 -0
  539. ccai/pychestrate/webservice/ops/release/manifest_verifier.py +139 -0
  540. ccai/pychestrate/webservice/ops/release/models.py +259 -0
  541. ccai/pychestrate/webservice/ops/release/policy_router.py +85 -0
  542. ccai/pychestrate/webservice/ops/release/release_aspects.py +81 -0
  543. ccai/pychestrate/webservice/ops/release/release_service.py +349 -0
  544. ccai/pychestrate/webservice/ops/release/repository.py +207 -0
  545. ccai/pychestrate/webservice/ops/release/restapi/__init__.py +12 -0
  546. ccai/pychestrate/webservice/ops/release/restapi/v1/__init__.py +12 -0
  547. ccai/pychestrate/webservice/ops/release/restapi/v1/release_channels_routes.py +814 -0
  548. ccai/pychestrate/webservice/orchestration/__init__.py +18 -0
  549. ccai/pychestrate/webservice/orchestration/build/__init__.py +77 -0
  550. ccai/pychestrate/webservice/orchestration/build/artifacts/__init__.py +76 -0
  551. ccai/pychestrate/webservice/orchestration/build/artifacts/errors.py +35 -0
  552. ccai/pychestrate/webservice/orchestration/build/artifacts/events.py +22 -0
  553. ccai/pychestrate/webservice/orchestration/build/artifacts/factories/__init__.py +9 -0
  554. ccai/pychestrate/webservice/orchestration/build/artifacts/factories/artifact_type_protocol.py +49 -0
  555. ccai/pychestrate/webservice/orchestration/build/artifacts/factories/container_image_artifact_type.py +85 -0
  556. ccai/pychestrate/webservice/orchestration/build/artifacts/models.py +162 -0
  557. ccai/pychestrate/webservice/orchestration/build/artifacts/repository.py +205 -0
  558. ccai/pychestrate/webservice/orchestration/build/artifacts/service.py +464 -0
  559. ccai/pychestrate/webservice/orchestration/build/errors.py +62 -0
  560. ccai/pychestrate/webservice/orchestration/build/events.py +23 -0
  561. ccai/pychestrate/webservice/orchestration/build/factories/__init__.py +9 -0
  562. ccai/pychestrate/webservice/orchestration/build/factories/makefile_runner_kind.py +82 -0
  563. ccai/pychestrate/webservice/orchestration/build/factories/runner_protocol.py +54 -0
  564. ccai/pychestrate/webservice/orchestration/build/models.py +125 -0
  565. ccai/pychestrate/webservice/orchestration/build/repository.py +121 -0
  566. ccai/pychestrate/webservice/orchestration/build/repro_snapshot.py +92 -0
  567. ccai/pychestrate/webservice/orchestration/build/restapi/__init__.py +12 -0
  568. ccai/pychestrate/webservice/orchestration/build/restapi/v1/__init__.py +12 -0
  569. ccai/pychestrate/webservice/orchestration/build/restapi/v1/build_runs_routes.py +1069 -0
  570. ccai/pychestrate/webservice/orchestration/build/service.py +1026 -0
  571. ccai/pychestrate/webservice/orchestration/infra/__init__.py +13 -0
  572. ccai/pychestrate/webservice/orchestration/infra/drift/__init__.py +84 -0
  573. ccai/pychestrate/webservice/orchestration/infra/drift/errors.py +49 -0
  574. ccai/pychestrate/webservice/orchestration/infra/drift/events.py +21 -0
  575. ccai/pychestrate/webservice/orchestration/infra/drift/factories/__init__.py +9 -0
  576. ccai/pychestrate/webservice/orchestration/infra/drift/factories/checker_protocol.py +46 -0
  577. ccai/pychestrate/webservice/orchestration/infra/drift/factories/terraform_checker.py +42 -0
  578. ccai/pychestrate/webservice/orchestration/infra/drift/models.py +144 -0
  579. ccai/pychestrate/webservice/orchestration/infra/drift/repository.py +169 -0
  580. ccai/pychestrate/webservice/orchestration/infra/drift/service.py +615 -0
  581. ccai/pychestrate/webservice/orchestration/infra/environment/__init__.py +84 -0
  582. ccai/pychestrate/webservice/orchestration/infra/environment/errors.py +49 -0
  583. ccai/pychestrate/webservice/orchestration/infra/environment/events.py +22 -0
  584. ccai/pychestrate/webservice/orchestration/infra/environment/factories/__init__.py +9 -0
  585. ccai/pychestrate/webservice/orchestration/infra/environment/factories/k8s_cluster_kind.py +111 -0
  586. ccai/pychestrate/webservice/orchestration/infra/environment/factories/kind_protocol.py +62 -0
  587. ccai/pychestrate/webservice/orchestration/infra/environment/models.py +130 -0
  588. ccai/pychestrate/webservice/orchestration/infra/environment/repository.py +146 -0
  589. ccai/pychestrate/webservice/orchestration/infra/environment/service.py +672 -0
  590. ccai/pychestrate/webservice/orchestration/infra/guards/__init__.py +83 -0
  591. ccai/pychestrate/webservice/orchestration/infra/guards/errors.py +35 -0
  592. ccai/pychestrate/webservice/orchestration/infra/guards/events.py +18 -0
  593. ccai/pychestrate/webservice/orchestration/infra/guards/factories/__init__.py +9 -0
  594. ccai/pychestrate/webservice/orchestration/infra/guards/factories/apply_requires_role_rule.py +64 -0
  595. ccai/pychestrate/webservice/orchestration/infra/guards/factories/frozen_env_block_rule.py +61 -0
  596. ccai/pychestrate/webservice/orchestration/infra/guards/factories/rule_protocol.py +116 -0
  597. ccai/pychestrate/webservice/orchestration/infra/guards/models.py +58 -0
  598. ccai/pychestrate/webservice/orchestration/infra/guards/repository.py +90 -0
  599. ccai/pychestrate/webservice/orchestration/infra/guards/service.py +478 -0
  600. ccai/pychestrate/webservice/orchestration/infra/restapi/__init__.py +12 -0
  601. ccai/pychestrate/webservice/orchestration/infra/restapi/v1/__init__.py +13 -0
  602. ccai/pychestrate/webservice/orchestration/infra/restapi/v1/drift_routes.py +642 -0
  603. ccai/pychestrate/webservice/orchestration/infra/restapi/v1/environments_routes.py +722 -0
  604. ccai/pychestrate/webservice/orchestration/infra/restapi/v1/guards_routes.py +1096 -0
  605. ccai/pychestrate/webservice/orchestration/infra/restapi/v1/provisioning_runs_routes.py +926 -0
  606. ccai/pychestrate/webservice/orchestration/infra/runs/__init__.py +80 -0
  607. ccai/pychestrate/webservice/orchestration/infra/runs/errors.py +61 -0
  608. ccai/pychestrate/webservice/orchestration/infra/runs/events.py +23 -0
  609. ccai/pychestrate/webservice/orchestration/infra/runs/factories/__init__.py +9 -0
  610. ccai/pychestrate/webservice/orchestration/infra/runs/factories/driver_protocol.py +63 -0
  611. ccai/pychestrate/webservice/orchestration/infra/runs/factories/terraform_driver.py +99 -0
  612. ccai/pychestrate/webservice/orchestration/infra/runs/models.py +105 -0
  613. ccai/pychestrate/webservice/orchestration/infra/runs/repository.py +108 -0
  614. ccai/pychestrate/webservice/orchestration/infra/runs/service.py +1047 -0
  615. ccai/pychestrate/webservice/orchestration/pipelines/__init__.py +15 -0
  616. ccai/pychestrate/webservice/orchestration/pipelines/definition/__init__.py +112 -0
  617. ccai/pychestrate/webservice/orchestration/pipelines/definition/canonicalization.py +75 -0
  618. ccai/pychestrate/webservice/orchestration/pipelines/definition/dag.py +145 -0
  619. ccai/pychestrate/webservice/orchestration/pipelines/definition/errors.py +50 -0
  620. ccai/pychestrate/webservice/orchestration/pipelines/definition/events.py +24 -0
  621. ccai/pychestrate/webservice/orchestration/pipelines/definition/factories/__init__.py +9 -0
  622. ccai/pychestrate/webservice/orchestration/pipelines/definition/factories/build_step_kind.py +93 -0
  623. ccai/pychestrate/webservice/orchestration/pipelines/definition/factories/rpa_step_kind.py +94 -0
  624. ccai/pychestrate/webservice/orchestration/pipelines/definition/factories/script_step_kind.py +98 -0
  625. ccai/pychestrate/webservice/orchestration/pipelines/definition/factories/step_kind_protocol.py +88 -0
  626. ccai/pychestrate/webservice/orchestration/pipelines/definition/factories/test_step_kind.py +95 -0
  627. ccai/pychestrate/webservice/orchestration/pipelines/definition/models.py +233 -0
  628. ccai/pychestrate/webservice/orchestration/pipelines/definition/parser.py +414 -0
  629. ccai/pychestrate/webservice/orchestration/pipelines/definition/repository.py +384 -0
  630. ccai/pychestrate/webservice/orchestration/pipelines/definition/service.py +1069 -0
  631. ccai/pychestrate/webservice/orchestration/pipelines/execution/__init__.py +42 -0
  632. ccai/pychestrate/webservice/orchestration/pipelines/execution/errors.py +33 -0
  633. ccai/pychestrate/webservice/orchestration/pipelines/execution/orchestrator.py +1250 -0
  634. ccai/pychestrate/webservice/orchestration/pipelines/restapi/__init__.py +12 -0
  635. ccai/pychestrate/webservice/orchestration/pipelines/restapi/v1/__init__.py +12 -0
  636. ccai/pychestrate/webservice/orchestration/pipelines/restapi/v1/pipeline_definitions_routes.py +1167 -0
  637. ccai/pychestrate/webservice/orchestration/pipelines/restapi/v1/pipeline_runs_routes.py +891 -0
  638. ccai/pychestrate/webservice/orchestration/pipelines/sharding/__init__.py +83 -0
  639. ccai/pychestrate/webservice/orchestration/pipelines/sharding/errors.py +44 -0
  640. ccai/pychestrate/webservice/orchestration/pipelines/sharding/events.py +23 -0
  641. ccai/pychestrate/webservice/orchestration/pipelines/sharding/expansion.py +290 -0
  642. ccai/pychestrate/webservice/orchestration/pipelines/sharding/factories/__init__.py +9 -0
  643. ccai/pychestrate/webservice/orchestration/pipelines/sharding/factories/cartesian_strategy.py +92 -0
  644. ccai/pychestrate/webservice/orchestration/pipelines/sharding/factories/fail_fast_strategy.py +70 -0
  645. ccai/pychestrate/webservice/orchestration/pipelines/sharding/factories/strategy_protocol.py +108 -0
  646. ccai/pychestrate/webservice/orchestration/pipelines/sharding/models.py +140 -0
  647. ccai/pychestrate/webservice/orchestration/pipelines/sharding/repository.py +133 -0
  648. ccai/pychestrate/webservice/orchestration/pipelines/sharding/service.py +471 -0
  649. ccai/pychestrate/webservice/orchestration/rpa/__init__.py +133 -0
  650. ccai/pychestrate/webservice/orchestration/rpa/candidates.py +164 -0
  651. ccai/pychestrate/webservice/orchestration/rpa/errors.py +139 -0
  652. ccai/pychestrate/webservice/orchestration/rpa/events.py +28 -0
  653. ccai/pychestrate/webservice/orchestration/rpa/factories/__init__.py +9 -0
  654. ccai/pychestrate/webservice/orchestration/rpa/factories/execution_mode_protocol.py +70 -0
  655. ccai/pychestrate/webservice/orchestration/rpa/factories/job_type_protocol.py +153 -0
  656. ccai/pychestrate/webservice/orchestration/rpa/factories/process_execution_mode.py +104 -0
  657. ccai/pychestrate/webservice/orchestration/rpa/factories/taskplus_execution_mode.py +95 -0
  658. ccai/pychestrate/webservice/orchestration/rpa/models.py +294 -0
  659. ccai/pychestrate/webservice/orchestration/rpa/packet.py +505 -0
  660. ccai/pychestrate/webservice/orchestration/rpa/repository.py +492 -0
  661. ccai/pychestrate/webservice/orchestration/rpa/restapi/__init__.py +9 -0
  662. ccai/pychestrate/webservice/orchestration/rpa/restapi/v1/__init__.py +9 -0
  663. ccai/pychestrate/webservice/orchestration/rpa/restapi/v1/rpa_routes.py +1194 -0
  664. ccai/pychestrate/webservice/orchestration/rpa/service.py +2183 -0
  665. ccai/pychestrate/webservice/orchestration/source/__init__.py +83 -0
  666. ccai/pychestrate/webservice/orchestration/source/errors.py +42 -0
  667. ccai/pychestrate/webservice/orchestration/source/events.py +21 -0
  668. ccai/pychestrate/webservice/orchestration/source/factories/__init__.py +9 -0
  669. ccai/pychestrate/webservice/orchestration/source/factories/github_provider.py +148 -0
  670. ccai/pychestrate/webservice/orchestration/source/factories/provider_protocol.py +152 -0
  671. ccai/pychestrate/webservice/orchestration/source/models.py +101 -0
  672. ccai/pychestrate/webservice/orchestration/source/repository.py +172 -0
  673. ccai/pychestrate/webservice/orchestration/source/restapi/__init__.py +12 -0
  674. ccai/pychestrate/webservice/orchestration/source/restapi/v1/__init__.py +12 -0
  675. ccai/pychestrate/webservice/orchestration/source/restapi/v1/source_integrations_routes.py +568 -0
  676. ccai/pychestrate/webservice/orchestration/source/service.py +700 -0
  677. ccai/pychestrate/webservice/orchestration/test/__init__.py +59 -0
  678. ccai/pychestrate/webservice/orchestration/test/artifact_browser/__init__.py +65 -0
  679. ccai/pychestrate/webservice/orchestration/test/artifact_browser/errors.py +28 -0
  680. ccai/pychestrate/webservice/orchestration/test/artifact_browser/events.py +19 -0
  681. ccai/pychestrate/webservice/orchestration/test/artifact_browser/factories/__init__.py +9 -0
  682. ccai/pychestrate/webservice/orchestration/test/artifact_browser/factories/log_stream_renderer.py +71 -0
  683. ccai/pychestrate/webservice/orchestration/test/artifact_browser/factories/plain_text_renderer.py +66 -0
  684. ccai/pychestrate/webservice/orchestration/test/artifact_browser/factories/renderer_protocol.py +95 -0
  685. ccai/pychestrate/webservice/orchestration/test/artifact_browser/service.py +163 -0
  686. ccai/pychestrate/webservice/orchestration/test/catalog/__init__.py +54 -0
  687. ccai/pychestrate/webservice/orchestration/test/catalog/canonicalization.py +76 -0
  688. ccai/pychestrate/webservice/orchestration/test/catalog/catalog.py +199 -0
  689. ccai/pychestrate/webservice/orchestration/test/catalog/errors.py +25 -0
  690. ccai/pychestrate/webservice/orchestration/test/catalog/factories/__init__.py +12 -0
  691. ccai/pychestrate/webservice/orchestration/test/catalog/factories/importer_protocol.py +65 -0
  692. ccai/pychestrate/webservice/orchestration/test/catalog/factories/testbase_project.py +307 -0
  693. ccai/pychestrate/webservice/orchestration/test/catalog/models.py +70 -0
  694. ccai/pychestrate/webservice/orchestration/test/catalog/payloads.py +113 -0
  695. ccai/pychestrate/webservice/orchestration/test/catalog/repository.py +89 -0
  696. ccai/pychestrate/webservice/orchestration/test/compare/__init__.py +74 -0
  697. ccai/pychestrate/webservice/orchestration/test/compare/errors.py +35 -0
  698. ccai/pychestrate/webservice/orchestration/test/compare/events.py +19 -0
  699. ccai/pychestrate/webservice/orchestration/test/compare/factories/__init__.py +9 -0
  700. ccai/pychestrate/webservice/orchestration/test/compare/factories/diff_viewer_protocol.py +79 -0
  701. ccai/pychestrate/webservice/orchestration/test/compare/factories/generic_two_pane_viewer.py +51 -0
  702. ccai/pychestrate/webservice/orchestration/test/compare/models.py +80 -0
  703. ccai/pychestrate/webservice/orchestration/test/compare/repository.py +81 -0
  704. ccai/pychestrate/webservice/orchestration/test/compare/service.py +442 -0
  705. ccai/pychestrate/webservice/orchestration/test/errors.py +39 -0
  706. ccai/pychestrate/webservice/orchestration/test/factories/__init__.py +12 -0
  707. ccai/pychestrate/webservice/orchestration/test/factories/runner_protocol.py +78 -0
  708. ccai/pychestrate/webservice/orchestration/test/factories/testbase_runner.py +117 -0
  709. ccai/pychestrate/webservice/orchestration/test/flake/__init__.py +80 -0
  710. ccai/pychestrate/webservice/orchestration/test/flake/errors.py +34 -0
  711. ccai/pychestrate/webservice/orchestration/test/flake/events.py +22 -0
  712. ccai/pychestrate/webservice/orchestration/test/flake/factories/__init__.py +9 -0
  713. ccai/pychestrate/webservice/orchestration/test/flake/factories/classifier_protocol.py +94 -0
  714. ccai/pychestrate/webservice/orchestration/test/flake/factories/window_ratio_classifier.py +128 -0
  715. ccai/pychestrate/webservice/orchestration/test/flake/models.py +183 -0
  716. ccai/pychestrate/webservice/orchestration/test/flake/repository.py +207 -0
  717. ccai/pychestrate/webservice/orchestration/test/flake/service.py +545 -0
  718. ccai/pychestrate/webservice/orchestration/test/live/__init__.py +38 -0
  719. ccai/pychestrate/webservice/orchestration/test/live/bus_bridge.py +184 -0
  720. ccai/pychestrate/webservice/orchestration/test/live/hub.py +135 -0
  721. ccai/pychestrate/webservice/orchestration/test/live/relay.py +179 -0
  722. ccai/pychestrate/webservice/orchestration/test/live/snapshot.py +179 -0
  723. ccai/pychestrate/webservice/orchestration/test/live/sse_channel.py +85 -0
  724. ccai/pychestrate/webservice/orchestration/test/models.py +88 -0
  725. ccai/pychestrate/webservice/orchestration/test/orchestrator.py +385 -0
  726. ccai/pychestrate/webservice/orchestration/test/repository.py +110 -0
  727. ccai/pychestrate/webservice/orchestration/test/restapi/__init__.py +12 -0
  728. ccai/pychestrate/webservice/orchestration/test/restapi/v1/__init__.py +12 -0
  729. ccai/pychestrate/webservice/orchestration/test/restapi/v1/test_catalog_routes.py +843 -0
  730. ccai/pychestrate/webservice/orchestration/test/restapi/v1/test_runs_routes.py +938 -0
  731. ccai/pychestrate/webservice/orchestration/test/triage/__init__.py +80 -0
  732. ccai/pychestrate/webservice/orchestration/test/triage/errors.py +39 -0
  733. ccai/pychestrate/webservice/orchestration/test/triage/events.py +18 -0
  734. ccai/pychestrate/webservice/orchestration/test/triage/factories/__init__.py +9 -0
  735. ccai/pychestrate/webservice/orchestration/test/triage/factories/classifier_protocol.py +56 -0
  736. ccai/pychestrate/webservice/orchestration/test/triage/factories/infra_flake_classifier.py +88 -0
  737. ccai/pychestrate/webservice/orchestration/test/triage/factories/null_tracker_driver.py +59 -0
  738. ccai/pychestrate/webservice/orchestration/test/triage/factories/tracker_protocol.py +66 -0
  739. ccai/pychestrate/webservice/orchestration/test/triage/models.py +113 -0
  740. ccai/pychestrate/webservice/orchestration/test/triage/repository.py +128 -0
  741. ccai/pychestrate/webservice/orchestration/test/triage/service.py +425 -0
  742. ccai/pychestrate/webservice/persistence/__init__.py +12 -0
  743. ccai/pychestrate/webservice/persistence/schema.py +25 -0
  744. ccai/pychestrate/webservice/plugin_api/__init__.py +51 -0
  745. ccai/pychestrate/webservice/plugin_api/annotations.py +131 -0
  746. ccai/pychestrate/webservice/plugin_api/catalog_builder.py +203 -0
  747. ccai/pychestrate/webservice/plugin_api/catalog_validator.py +124 -0
  748. ccai/pychestrate/webservice/plugin_api/restapi/__init__.py +9 -0
  749. ccai/pychestrate/webservice/plugin_api/restapi/v1/__init__.py +9 -0
  750. ccai/pychestrate/webservice/plugin_api/restapi/v1/catalog_routes.py +365 -0
  751. ccai/pychestrate/webservice/plugin_api/restapi/v1/ext_mount_routes.py +222 -0
  752. ccai/pychestrate/webservice/plugin_api/runtime.py +80 -0
  753. ccai/pychestrate/webservice/pods/__init__.py +60 -0
  754. ccai/pychestrate/webservice/pods/bus_subscriber.py +226 -0
  755. ccai/pychestrate/webservice/pods/definitions_service.py +375 -0
  756. ccai/pychestrate/webservice/pods/dynamic_service.py +304 -0
  757. ccai/pychestrate/webservice/pods/events.py +57 -0
  758. ccai/pychestrate/webservice/pods/exceptions.py +63 -0
  759. ccai/pychestrate/webservice/pods/extensions/__init__.py +12 -0
  760. ccai/pychestrate/webservice/pods/extensions/member_kind.py +83 -0
  761. ccai/pychestrate/webservice/pods/extensions/renderer.py +73 -0
  762. ccai/pychestrate/webservice/pods/factories/__init__.py +12 -0
  763. ccai/pychestrate/webservice/pods/factories/integrity_validator.py +64 -0
  764. ccai/pychestrate/webservice/pods/factories/libvirt_provisioner.py +52 -0
  765. ccai/pychestrate/webservice/pods/factories/provisioner.py +56 -0
  766. ccai/pychestrate/webservice/pods/factories/validator.py +52 -0
  767. ccai/pychestrate/webservice/pods/lifecycle_service.py +276 -0
  768. ccai/pychestrate/webservice/pods/models.py +303 -0
  769. ccai/pychestrate/webservice/pods/restapi/__init__.py +12 -0
  770. ccai/pychestrate/webservice/pods/restapi/v1/__init__.py +12 -0
  771. ccai/pychestrate/webservice/pods/restapi/v1/pods_routes.py +1245 -0
  772. ccai/pychestrate/webservice/pods/scoped_config_service.py +254 -0
  773. ccai/pychestrate/webservice/pods/static_service.py +517 -0
  774. ccai/pychestrate/webservice/pods/topology_service.py +189 -0
  775. ccai/pychestrate/webservice/project_templates/__init__.py +37 -0
  776. ccai/pychestrate/webservice/project_templates/exceptions.py +25 -0
  777. ccai/pychestrate/webservice/project_templates/extensions/__init__.py +12 -0
  778. ccai/pychestrate/webservice/project_templates/extensions/standard_ci.py +93 -0
  779. ccai/pychestrate/webservice/project_templates/extensions/template.py +85 -0
  780. ccai/pychestrate/webservice/project_templates/registry.py +73 -0
  781. ccai/pychestrate/webservice/project_templates/restapi/__init__.py +12 -0
  782. ccai/pychestrate/webservice/project_templates/restapi/v1/__init__.py +12 -0
  783. ccai/pychestrate/webservice/project_templates/restapi/v1/templates_routes.py +153 -0
  784. ccai/pychestrate/webservice/project_templates/service.py +405 -0
  785. ccai/pychestrate/webservice/projects/__init__.py +35 -0
  786. ccai/pychestrate/webservice/projects/bridge.py +773 -0
  787. ccai/pychestrate/webservice/projects/bus_subscriber.py +69 -0
  788. ccai/pychestrate/webservice/projects/events.py +25 -0
  789. ccai/pychestrate/webservice/projects/exceptions.py +57 -0
  790. ccai/pychestrate/webservice/projects/extensions/__init__.py +12 -0
  791. ccai/pychestrate/webservice/projects/extensions/cost_center.py +33 -0
  792. ccai/pychestrate/webservice/projects/extensions/metadata_field.py +91 -0
  793. ccai/pychestrate/webservice/projects/legacy_identity.py +45 -0
  794. ccai/pychestrate/webservice/projects/metadata_registry.py +126 -0
  795. ccai/pychestrate/webservice/projects/models.py +116 -0
  796. ccai/pychestrate/webservice/projects/repository.py +363 -0
  797. ccai/pychestrate/webservice/projects/restapi/__init__.py +12 -0
  798. ccai/pychestrate/webservice/projects/restapi/v1/__init__.py +12 -0
  799. ccai/pychestrate/webservice/projects/restapi/v1/projects_routes.py +1038 -0
  800. ccai/pychestrate/webservice/projects/restapi/v1/release_templates_routes.py +1095 -0
  801. ccai/pychestrate/webservice/projects/service.py +657 -0
  802. ccai/pychestrate/webservice/projects/slug.py +56 -0
  803. ccai/pychestrate/webservice/public_endpoint.py +227 -0
  804. ccai/pychestrate/webservice/pychestrate_presence.py +194 -0
  805. ccai/pychestrate/webservice/pychestrate_variables.py +488 -0
  806. ccai/pychestrate/webservice/resources/__init__.py +22 -0
  807. ccai/pychestrate/webservice/resources/checkout/__init__.py +46 -0
  808. ccai/pychestrate/webservice/resources/checkout/errors.py +35 -0
  809. ccai/pychestrate/webservice/resources/checkout/events.py +20 -0
  810. ccai/pychestrate/webservice/resources/checkout/models.py +86 -0
  811. ccai/pychestrate/webservice/resources/checkout/repository.py +99 -0
  812. ccai/pychestrate/webservice/resources/checkout/service.py +305 -0
  813. ccai/pychestrate/webservice/resources/conflict/__init__.py +56 -0
  814. ccai/pychestrate/webservice/resources/conflict/errors.py +15 -0
  815. ccai/pychestrate/webservice/resources/conflict/evaluator.py +103 -0
  816. ccai/pychestrate/webservice/resources/conflict/rules/__init__.py +9 -0
  817. ccai/pychestrate/webservice/resources/conflict/rules/exclusive_rule.py +74 -0
  818. ccai/pychestrate/webservice/resources/conflict/rules/rule_protocol.py +66 -0
  819. ccai/pychestrate/webservice/resources/conflict/rules/shared_rule.py +53 -0
  820. ccai/pychestrate/webservice/resources/health/__init__.py +45 -0
  821. ccai/pychestrate/webservice/resources/health/errors.py +28 -0
  822. ccai/pychestrate/webservice/resources/health/events.py +20 -0
  823. ccai/pychestrate/webservice/resources/health/models.py +88 -0
  824. ccai/pychestrate/webservice/resources/health/repository.py +106 -0
  825. ccai/pychestrate/webservice/resources/health/service.py +311 -0
  826. ccai/pychestrate/webservice/resources/inventory/__init__.py +64 -0
  827. ccai/pychestrate/webservice/resources/inventory/errors.py +50 -0
  828. ccai/pychestrate/webservice/resources/inventory/events.py +21 -0
  829. ccai/pychestrate/webservice/resources/inventory/kinds/__init__.py +9 -0
  830. ccai/pychestrate/webservice/resources/inventory/kinds/device_kind.py +104 -0
  831. ccai/pychestrate/webservice/resources/inventory/kinds/kind_protocol.py +106 -0
  832. ccai/pychestrate/webservice/resources/inventory/models.py +75 -0
  833. ccai/pychestrate/webservice/resources/inventory/repository.py +152 -0
  834. ccai/pychestrate/webservice/resources/inventory/service.py +420 -0
  835. ccai/pychestrate/webservice/resources/lease/__init__.py +45 -0
  836. ccai/pychestrate/webservice/resources/lease/errors.py +36 -0
  837. ccai/pychestrate/webservice/resources/lease/events.py +20 -0
  838. ccai/pychestrate/webservice/resources/lease/models.py +93 -0
  839. ccai/pychestrate/webservice/resources/lease/repository.py +119 -0
  840. ccai/pychestrate/webservice/resources/lease/service.py +397 -0
  841. ccai/pychestrate/webservice/resources/pools/__init__.py +48 -0
  842. ccai/pychestrate/webservice/resources/pools/errors.py +34 -0
  843. ccai/pychestrate/webservice/resources/pools/events.py +19 -0
  844. ccai/pychestrate/webservice/resources/pools/models.py +77 -0
  845. ccai/pychestrate/webservice/resources/pools/repository.py +159 -0
  846. ccai/pychestrate/webservice/resources/pools/service.py +320 -0
  847. ccai/pychestrate/webservice/resources/restapi/__init__.py +10 -0
  848. ccai/pychestrate/webservice/resources/restapi/v1/__init__.py +9 -0
  849. ccai/pychestrate/webservice/resources/restapi/v1/resource_pools_routes.py +1278 -0
  850. ccai/pychestrate/webservice/resources/restapi/v1/resources_routes.py +1063 -0
  851. ccai/pychestrate/webservice/resources/scheduler/__init__.py +49 -0
  852. ccai/pychestrate/webservice/resources/scheduler/errors.py +44 -0
  853. ccai/pychestrate/webservice/resources/scheduler/events.py +22 -0
  854. ccai/pychestrate/webservice/resources/scheduler/models.py +98 -0
  855. ccai/pychestrate/webservice/resources/scheduler/repository.py +141 -0
  856. ccai/pychestrate/webservice/resources/scheduler/service.py +391 -0
  857. ccai/pychestrate/webservice/resources/usage_history/__init__.py +39 -0
  858. ccai/pychestrate/webservice/resources/usage_history/errors.py +21 -0
  859. ccai/pychestrate/webservice/resources/usage_history/events.py +19 -0
  860. ccai/pychestrate/webservice/resources/usage_history/models.py +100 -0
  861. ccai/pychestrate/webservice/resources/usage_history/repository.py +100 -0
  862. ccai/pychestrate/webservice/resources/usage_history/service.py +192 -0
  863. ccai/pychestrate/webservice/retention/__init__.py +35 -0
  864. ccai/pychestrate/webservice/retention/events.py +22 -0
  865. ccai/pychestrate/webservice/retention/exceptions.py +38 -0
  866. ccai/pychestrate/webservice/retention/factories/__init__.py +12 -0
  867. ccai/pychestrate/webservice/retention/factories/action.py +64 -0
  868. ccai/pychestrate/webservice/retention/factories/additional_actions.py +104 -0
  869. ccai/pychestrate/webservice/retention/factories/delete_action.py +76 -0
  870. ccai/pychestrate/webservice/retention/legal_hold.py +141 -0
  871. ccai/pychestrate/webservice/retention/models.py +191 -0
  872. ccai/pychestrate/webservice/retention/repository.py +114 -0
  873. ccai/pychestrate/webservice/retention/restapi/__init__.py +12 -0
  874. ccai/pychestrate/webservice/retention/restapi/v1/__init__.py +12 -0
  875. ccai/pychestrate/webservice/retention/restapi/v1/retention_routes.py +557 -0
  876. ccai/pychestrate/webservice/retention/service.py +512 -0
  877. ccai/pychestrate/webservice/runs/__init__.py +22 -0
  878. ccai/pychestrate/webservice/runs/restapi/__init__.py +12 -0
  879. ccai/pychestrate/webservice/runs/restapi/v1/__init__.py +12 -0
  880. ccai/pychestrate/webservice/runs/restapi/v1/artifacts_routes.py +1238 -0
  881. ccai/pychestrate/webservice/runs/restapi/v1/runs_events_routes.py +700 -0
  882. ccai/pychestrate/webservice/runs/restapi/v1/runs_routes.py +2702 -0
  883. ccai/pychestrate/webservice/runs/restapi/v1/task_results.py +178 -0
  884. ccai/pychestrate/webservice/runtime_bootstrap.py +1079 -0
  885. ccai/pychestrate/webservice/secrets/__init__.py +27 -0
  886. ccai/pychestrate/webservice/secrets/events.py +26 -0
  887. ccai/pychestrate/webservice/secrets/exceptions.py +55 -0
  888. ccai/pychestrate/webservice/secrets/factories/__init__.py +12 -0
  889. ccai/pychestrate/webservice/secrets/factories/local_backend.py +295 -0
  890. ccai/pychestrate/webservice/secrets/factories/secrets_backend.py +162 -0
  891. ccai/pychestrate/webservice/secrets/kek_loader.py +201 -0
  892. ccai/pychestrate/webservice/secrets/models.py +169 -0
  893. ccai/pychestrate/webservice/secrets/restapi/__init__.py +12 -0
  894. ccai/pychestrate/webservice/secrets/restapi/v1/__init__.py +12 -0
  895. ccai/pychestrate/webservice/secrets/restapi/v1/secrets_routes.py +728 -0
  896. ccai/pychestrate/webservice/secrets/secret_bytes.py +84 -0
  897. ccai/pychestrate/webservice/secrets/secrets_aspects.py +68 -0
  898. ccai/pychestrate/webservice/secrets/secrets_service.py +927 -0
  899. ccai/pychestrate/webservice/security/__init__.py +12 -0
  900. ccai/pychestrate/webservice/security/auth/__init__.py +42 -0
  901. ccai/pychestrate/webservice/security/auth/anonymous_access.py +178 -0
  902. ccai/pychestrate/webservice/security/auth/api_tokens/__init__.py +56 -0
  903. ccai/pychestrate/webservice/security/auth/api_tokens/audit_events.py +116 -0
  904. ccai/pychestrate/webservice/security/auth/api_tokens/events.py +26 -0
  905. ccai/pychestrate/webservice/security/auth/api_tokens/exceptions.py +60 -0
  906. ccai/pychestrate/webservice/security/auth/api_tokens/models.py +101 -0
  907. ccai/pychestrate/webservice/security/auth/api_tokens/service.py +1136 -0
  908. ccai/pychestrate/webservice/security/auth/client_address.py +332 -0
  909. ccai/pychestrate/webservice/security/auth/cookies.py +79 -0
  910. ccai/pychestrate/webservice/security/auth/events.py +25 -0
  911. ccai/pychestrate/webservice/security/auth/exceptions.py +37 -0
  912. ccai/pychestrate/webservice/security/auth/extensions/__init__.py +35 -0
  913. ccai/pychestrate/webservice/security/auth/extensions/mfa_method.py +138 -0
  914. ccai/pychestrate/webservice/security/auth/extensions/totp_method.py +208 -0
  915. ccai/pychestrate/webservice/security/auth/factories/__init__.py +12 -0
  916. ccai/pychestrate/webservice/security/auth/factories/auth_provider.py +122 -0
  917. ccai/pychestrate/webservice/security/auth/factories/local_provider.py +84 -0
  918. ccai/pychestrate/webservice/security/auth/factories/password_hasher.py +182 -0
  919. ccai/pychestrate/webservice/security/auth/factories/stdlib_scrypt_hasher.py +244 -0
  920. ccai/pychestrate/webservice/security/auth/local_flow.py +322 -0
  921. ccai/pychestrate/webservice/security/auth/models.py +241 -0
  922. ccai/pychestrate/webservice/security/auth/password_lifecycle.py +737 -0
  923. ccai/pychestrate/webservice/security/auth/password_policy.py +369 -0
  924. ccai/pychestrate/webservice/security/auth/pepper_loader.py +74 -0
  925. ccai/pychestrate/webservice/security/auth/restapi/__init__.py +12 -0
  926. ccai/pychestrate/webservice/security/auth/restapi/v1/__init__.py +12 -0
  927. ccai/pychestrate/webservice/security/auth/restapi/v1/api_tokens_routes.py +709 -0
  928. ccai/pychestrate/webservice/security/auth/restapi/v1/auth_routes.py +242 -0
  929. ccai/pychestrate/webservice/security/auth/restapi/v1/me_routes.py +445 -0
  930. ccai/pychestrate/webservice/security/auth/session_service.py +401 -0
  931. ccai/pychestrate/webservice/security/rbac/__init__.py +58 -0
  932. ccai/pychestrate/webservice/security/rbac/binding_service.py +393 -0
  933. ccai/pychestrate/webservice/security/rbac/cache.py +219 -0
  934. ccai/pychestrate/webservice/security/rbac/catalog.py +83 -0
  935. ccai/pychestrate/webservice/security/rbac/events.py +22 -0
  936. ccai/pychestrate/webservice/security/rbac/exceptions.py +45 -0
  937. ccai/pychestrate/webservice/security/rbac/extensions/__init__.py +12 -0
  938. ccai/pychestrate/webservice/security/rbac/extensions/core_permissions.py +398 -0
  939. ccai/pychestrate/webservice/security/rbac/extensions/core_roles.py +348 -0
  940. ccai/pychestrate/webservice/security/rbac/extensions/permission_extension.py +56 -0
  941. ccai/pychestrate/webservice/security/rbac/extensions/project_permissions.py +65 -0
  942. ccai/pychestrate/webservice/security/rbac/extensions/project_roles.py +87 -0
  943. ccai/pychestrate/webservice/security/rbac/extensions/role_extension.py +45 -0
  944. ccai/pychestrate/webservice/security/rbac/extensions/workflow_roles.py +207 -0
  945. ccai/pychestrate/webservice/security/rbac/inheritance.py +175 -0
  946. ccai/pychestrate/webservice/security/rbac/models.py +151 -0
  947. ccai/pychestrate/webservice/security/rbac/rbac_evaluator.py +504 -0
  948. ccai/pychestrate/webservice/security/rbac/restapi/__init__.py +12 -0
  949. ccai/pychestrate/webservice/security/rbac/restapi/v1/__init__.py +12 -0
  950. ccai/pychestrate/webservice/security/rbac/restapi/v1/rbac_routes.py +713 -0
  951. ccai/pychestrate/webservice/security/rbac/seeding.py +191 -0
  952. ccai/pychestrate/webservice/system/__init__.py +16 -0
  953. ccai/pychestrate/webservice/system/operations.py +554 -0
  954. ccai/pychestrate/webservice/system/prometheus.py +321 -0
  955. ccai/pychestrate/webservice/system/restapi/__init__.py +12 -0
  956. ccai/pychestrate/webservice/system/restapi/v1/__init__.py +12 -0
  957. ccai/pychestrate/webservice/system/restapi/v1/operations_routes.py +155 -0
  958. ccai/pychestrate/webservice/system/restapi/v1/system_health_routes.py +453 -0
  959. ccai/pychestrate/webservice/tagging/__init__.py +40 -0
  960. ccai/pychestrate/webservice/tagging/bus_subscriber.py +93 -0
  961. ccai/pychestrate/webservice/tagging/canonical.py +94 -0
  962. ccai/pychestrate/webservice/tagging/exceptions.py +30 -0
  963. ccai/pychestrate/webservice/tagging/expression.py +221 -0
  964. ccai/pychestrate/webservice/tagging/extensions/__init__.py +12 -0
  965. ccai/pychestrate/webservice/tagging/extensions/environment.py +59 -0
  966. ccai/pychestrate/webservice/tagging/extensions/taxonomy.py +50 -0
  967. ccai/pychestrate/webservice/tagging/models.py +52 -0
  968. ccai/pychestrate/webservice/tagging/registry.py +62 -0
  969. ccai/pychestrate/webservice/tagging/repository.py +148 -0
  970. ccai/pychestrate/webservice/tagging/restapi/__init__.py +12 -0
  971. ccai/pychestrate/webservice/tagging/restapi/v1/__init__.py +12 -0
  972. ccai/pychestrate/webservice/tagging/restapi/v1/tags_routes.py +531 -0
  973. ccai/pychestrate/webservice/tagging/service.py +225 -0
  974. ccai/pychestrate/webservice/variables/__init__.py +35 -0
  975. ccai/pychestrate/webservice/variables/cache.py +125 -0
  976. ccai/pychestrate/webservice/variables/events.py +21 -0
  977. ccai/pychestrate/webservice/variables/exceptions.py +30 -0
  978. ccai/pychestrate/webservice/variables/factories/__init__.py +12 -0
  979. ccai/pychestrate/webservice/variables/factories/database_resolver.py +62 -0
  980. ccai/pychestrate/webservice/variables/factories/secret_ref_dereferencer.py +89 -0
  981. ccai/pychestrate/webservice/variables/factories/variable_resolver.py +58 -0
  982. ccai/pychestrate/webservice/variables/models.py +127 -0
  983. ccai/pychestrate/webservice/variables/repository.py +155 -0
  984. ccai/pychestrate/webservice/variables/restapi/__init__.py +12 -0
  985. ccai/pychestrate/webservice/variables/restapi/v1/__init__.py +12 -0
  986. ccai/pychestrate/webservice/variables/restapi/v1/variables_routes.py +652 -0
  987. ccai/pychestrate/webservice/variables/service.py +590 -0
  988. ccai/pychestrate/webservice/variables/system_store.py +550 -0
  989. ccai/pychestrate/webservice/webhooks_in/__init__.py +113 -0
  990. ccai/pychestrate/webservice/webhooks_in/configuration_service.py +755 -0
  991. ccai/pychestrate/webservice/webhooks_in/dispatcher.py +441 -0
  992. ccai/pychestrate/webservice/webhooks_in/errors.py +74 -0
  993. ccai/pychestrate/webservice/webhooks_in/events.py +32 -0
  994. ccai/pychestrate/webservice/webhooks_in/factories/__init__.py +10 -0
  995. ccai/pychestrate/webservice/webhooks_in/factories/generic_hmac_parser.py +151 -0
  996. ccai/pychestrate/webservice/webhooks_in/factories/inbound_webhook_parser.py +105 -0
  997. ccai/pychestrate/webservice/webhooks_in/models.py +263 -0
  998. ccai/pychestrate/webservice/webhooks_in/normalization.py +106 -0
  999. ccai/pychestrate/webservice/webhooks_in/replay_cache.py +101 -0
  1000. ccai/pychestrate/webservice/webhooks_in/repository.py +179 -0
  1001. ccai/pychestrate/webservice/webhooks_in/restapi/__init__.py +0 -0
  1002. ccai/pychestrate/webservice/webhooks_in/restapi/v1/__init__.py +0 -0
  1003. ccai/pychestrate/webservice/webhooks_in/restapi/v1/webhooks_in_routes.py +1124 -0
  1004. ccai/pychestrate/webservice/webhooks_in/verification.py +203 -0
  1005. ccai/pychestrate/webservice/webhooks_out/__init__.py +82 -0
  1006. ccai/pychestrate/webservice/webhooks_out/delivery.py +267 -0
  1007. ccai/pychestrate/webservice/webhooks_out/errors.py +34 -0
  1008. ccai/pychestrate/webservice/webhooks_out/events.py +20 -0
  1009. ccai/pychestrate/webservice/webhooks_out/factories/__init__.py +9 -0
  1010. ccai/pychestrate/webservice/webhooks_out/factories/notification_channel_protocol.py +45 -0
  1011. ccai/pychestrate/webservice/webhooks_out/factories/webhook_channel.py +42 -0
  1012. ccai/pychestrate/webservice/webhooks_out/models.py +130 -0
  1013. ccai/pychestrate/webservice/webhooks_out/repository.py +154 -0
  1014. ccai/pychestrate/webservice/webhooks_out/restapi/__init__.py +0 -0
  1015. ccai/pychestrate/webservice/webhooks_out/restapi/v1/__init__.py +0 -0
  1016. ccai/pychestrate/webservice/webhooks_out/restapi/v1/webhooks_out_routes.py +1068 -0
  1017. ccai/pychestrate/webservice/webhooks_out/service.py +545 -0
  1018. ccai/pychestrate/webservice/webinterface/__init__.py +12 -0
  1019. ccai/pychestrate/webservice/webinterface/blueprints/__init__.py +32 -0
  1020. ccai/pychestrate/webservice/webinterface/blueprints/config/__init__.py +28 -0
  1021. ccai/pychestrate/webservice/webinterface/blueprints/config/auth_adapter.py +608 -0
  1022. ccai/pychestrate/webservice/webinterface/blueprints/config/identity_admin.py +2738 -0
  1023. ccai/pychestrate/webservice/webinterface/blueprints/config/permission_denied.py +95 -0
  1024. ccai/pychestrate/webservice/webinterface/blueprints/config/routes.py +2189 -0
  1025. ccai/pychestrate/webservice/webinterface/blueprints/config/routes_account.py +334 -0
  1026. ccai/pychestrate/webservice/webinterface/blueprints/config/routes_audit.py +702 -0
  1027. ccai/pychestrate/webservice/webinterface/blueprints/config/routes_enrollment.py +982 -0
  1028. ccai/pychestrate/webservice/webinterface/blueprints/config/routes_notifications.py +908 -0
  1029. ccai/pychestrate/webservice/webinterface/blueprints/config/routes_password.py +503 -0
  1030. ccai/pychestrate/webservice/webinterface/blueprints/config/routes_roles.py +957 -0
  1031. ccai/pychestrate/webservice/webinterface/blueprints/config/routes_rpa_types.py +712 -0
  1032. ccai/pychestrate/webservice/webinterface/blueprints/config/routes_sessions.py +910 -0
  1033. ccai/pychestrate/webservice/webinterface/blueprints/config/routes_tokens.py +956 -0
  1034. ccai/pychestrate/webservice/webinterface/blueprints/config/routes_ui_profile.py +190 -0
  1035. ccai/pychestrate/webservice/webinterface/blueprints/config/routes_users.py +1693 -0
  1036. ccai/pychestrate/webservice/webinterface/blueprints/config/routes_variables.py +938 -0
  1037. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/_password_rules.html +104 -0
  1038. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/account_password.html +50 -0
  1039. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/account_preferences.html +60 -0
  1040. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/audit/list.html +140 -0
  1041. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/base.html +95 -0
  1042. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/bundle_mount.html +13 -0
  1043. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/chromeless_base.html +46 -0
  1044. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/enrollment/list.html +161 -0
  1045. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/login.html +97 -0
  1046. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/logout_confirm.html +43 -0
  1047. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/notifications/channel_create.html +87 -0
  1048. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/notifications/channel_detail.html +112 -0
  1049. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/notifications/overview.html +130 -0
  1050. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/notifications/rule_create.html +75 -0
  1051. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/password_change_required.html +69 -0
  1052. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/password_link.html +74 -0
  1053. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/roles/create.html +69 -0
  1054. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/roles/detail.html +127 -0
  1055. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/roles/edit.html +59 -0
  1056. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/roles/list.html +72 -0
  1057. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/rpa_types/create.html +79 -0
  1058. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/rpa_types/detail.html +165 -0
  1059. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/rpa_types/edit.html +64 -0
  1060. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/rpa_types/list.html +59 -0
  1061. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/sessions/list.html +143 -0
  1062. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/tokens/_minted.html +27 -0
  1063. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/tokens/account.html +105 -0
  1064. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/tokens/admin.html +160 -0
  1065. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/ui_profile.html +39 -0
  1066. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/users/create.html +138 -0
  1067. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/users/detail.html +105 -0
  1068. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/users/edit.html +91 -0
  1069. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/users/list.html +102 -0
  1070. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/users/password.html +134 -0
  1071. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/variables/create.html +63 -0
  1072. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/variables/detail.html +76 -0
  1073. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/variables/edit.html +57 -0
  1074. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/variables/history.html +80 -0
  1075. ccai/pychestrate/webservice/webinterface/blueprints/config/templates/config/variables/list.html +114 -0
  1076. ccai/pychestrate/webservice/webinterface/blueprints/projects/__init__.py +36 -0
  1077. ccai/pychestrate/webservice/webinterface/blueprints/projects/dashboard_activity.py +310 -0
  1078. ccai/pychestrate/webservice/webinterface/blueprints/projects/project_access.py +447 -0
  1079. ccai/pychestrate/webservice/webinterface/blueprints/projects/repository_credentials.py +220 -0
  1080. ccai/pychestrate/webservice/webinterface/blueprints/projects/routes.py +2531 -0
  1081. ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_builds.py +1595 -0
  1082. ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_calendar.py +731 -0
  1083. ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_infrastructure.py +676 -0
  1084. ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_release_templates.py +1405 -0
  1085. ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_releases.py +828 -0
  1086. ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_repositories.py +1376 -0
  1087. ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_rpa.py +1309 -0
  1088. ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_tests.py +678 -0
  1089. ccai/pychestrate/webservice/webinterface/blueprints/projects/routes_watches.py +1801 -0
  1090. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/base.html +149 -0
  1091. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/_build_macros.html +40 -0
  1092. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/_step_format.html +11 -0
  1093. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/detail.html +122 -0
  1094. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/list.html +97 -0
  1095. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/logs.html +34 -0
  1096. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/spec_create.html +84 -0
  1097. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/spec_detail.html +149 -0
  1098. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/spec_edit.html +82 -0
  1099. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/builds/spec_list.html +88 -0
  1100. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/calendar/event_detail.html +101 -0
  1101. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/calendar/event_list.html +69 -0
  1102. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/calendar/view.html +191 -0
  1103. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/dashboard.html +180 -0
  1104. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/infrastructure/detail.html +77 -0
  1105. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/infrastructure/list.html +96 -0
  1106. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/infrastructure/logs.html +31 -0
  1107. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/infrastructure/spec_detail.html +89 -0
  1108. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/infrastructure/spec_list.html +60 -0
  1109. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/members/add.html +79 -0
  1110. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/members/edit.html +54 -0
  1111. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/members/list.html +97 -0
  1112. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/projects/create.html +56 -0
  1113. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/projects/detail.html +198 -0
  1114. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/projects/edit.html +54 -0
  1115. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/projects/list.html +67 -0
  1116. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/release_templates/create.html +87 -0
  1117. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/release_templates/detail.html +99 -0
  1118. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/release_templates/edit.html +80 -0
  1119. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/release_templates/list.html +65 -0
  1120. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/releases/channel_list.html +60 -0
  1121. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/releases/detail.html +136 -0
  1122. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/releases/list.html +84 -0
  1123. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/releases/pipeline_detail.html +113 -0
  1124. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/releases/pipeline_list.html +67 -0
  1125. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/releases/schedule_list.html +58 -0
  1126. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/repositories/create.html +86 -0
  1127. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/repositories/detail.html +107 -0
  1128. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/repositories/edit.html +72 -0
  1129. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/repositories/list.html +76 -0
  1130. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/rpa/detail.html +126 -0
  1131. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/rpa/list.html +98 -0
  1132. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/rpa/logs.html +31 -0
  1133. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/rpa/spec_create.html +108 -0
  1134. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/rpa/spec_detail.html +294 -0
  1135. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/rpa/spec_list.html +82 -0
  1136. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/tests/detail.html +113 -0
  1137. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/tests/list.html +101 -0
  1138. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/tests/logs.html +31 -0
  1139. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/tests/spec_detail.html +109 -0
  1140. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/tests/spec_list.html +63 -0
  1141. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/watches/create.html +158 -0
  1142. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/watches/detail.html +284 -0
  1143. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/watches/edit.html +133 -0
  1144. ccai/pychestrate/webservice/webinterface/blueprints/projects/templates/projects/watches/list.html +90 -0
  1145. ccai/pychestrate/webservice/webinterface/blueprints/projects/watch_events.py +112 -0
  1146. ccai/pychestrate/webservice/webinterface/blueprints/resources/__init__.py +27 -0
  1147. ccai/pychestrate/webservice/webinterface/blueprints/resources/availability_view.py +300 -0
  1148. ccai/pychestrate/webservice/webinterface/blueprints/resources/exports.py +193 -0
  1149. ccai/pychestrate/webservice/webinterface/blueprints/resources/resource_import.py +327 -0
  1150. ccai/pychestrate/webservice/webinterface/blueprints/resources/routes.py +1961 -0
  1151. ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_allocations.py +855 -0
  1152. ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_health.py +1002 -0
  1153. ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_import.py +210 -0
  1154. ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_ip_pools.py +1389 -0
  1155. ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_pools.py +754 -0
  1156. ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_reservations.py +1414 -0
  1157. ccai/pychestrate/webservice/webinterface/blueprints/resources/routes_tags.py +486 -0
  1158. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/allocations/detail.html +152 -0
  1159. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/allocations/history.html +114 -0
  1160. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/allocations/list.html +110 -0
  1161. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/allocations/utilization.html +84 -0
  1162. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/base.html +100 -0
  1163. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/dashboard.html +97 -0
  1164. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/health/config.html +79 -0
  1165. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/health/dashboard.html +164 -0
  1166. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/health/detail.html +236 -0
  1167. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/ip_pools/create.html +72 -0
  1168. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/ip_pools/detail.html +234 -0
  1169. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/ip_pools/edit.html +67 -0
  1170. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/ip_pools/list.html +109 -0
  1171. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/pools/create.html +39 -0
  1172. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/pools/detail.html +158 -0
  1173. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/pools/list.html +66 -0
  1174. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/reservations/_viewer_zone.html +65 -0
  1175. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/reservations/calendar.html +260 -0
  1176. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/reservations/create.html +107 -0
  1177. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/reservations/detail.html +119 -0
  1178. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/reservations/edit.html +66 -0
  1179. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/reservations/list.html +147 -0
  1180. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/resources/create.html +105 -0
  1181. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/resources/detail.html +264 -0
  1182. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/resources/edit.html +128 -0
  1183. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/resources/import.html +110 -0
  1184. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/resources/list.html +174 -0
  1185. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/tags/edit.html +37 -0
  1186. ccai/pychestrate/webservice/webinterface/blueprints/resources/templates/resources/tags/list.html +99 -0
  1187. ccai/pychestrate/webservice/webinterface/blueprints/resources/utilization.py +300 -0
  1188. ccai/pychestrate/webservice/webinterface/blueprints/setup/__init__.py +23 -0
  1189. ccai/pychestrate/webservice/webinterface/blueprints/setup/routes.py +932 -0
  1190. ccai/pychestrate/webservice/webinterface/blueprints/setup/templates/setup/_setup_base.html +164 -0
  1191. ccai/pychestrate/webservice/webinterface/blueprints/setup/templates/setup/admin.html +86 -0
  1192. ccai/pychestrate/webservice/webinterface/blueprints/setup/templates/setup/unlock.html +45 -0
  1193. ccai/pychestrate/webservice/webinterface/foundation/__init__.py +30 -0
  1194. ccai/pychestrate/webservice/webinterface/foundation/auth_guard.py +170 -0
  1195. ccai/pychestrate/webservice/webinterface/foundation/cookie_session.py +611 -0
  1196. ccai/pychestrate/webservice/webinterface/foundation/csrf.py +179 -0
  1197. ccai/pychestrate/webservice/webinterface/foundation/flash.py +147 -0
  1198. ccai/pychestrate/webservice/webinterface/foundation/form_drafts.py +354 -0
  1199. ccai/pychestrate/webservice/webinterface/foundation/form_errors.py +168 -0
  1200. ccai/pychestrate/webservice/webinterface/foundation/permission_presentation.py +312 -0
  1201. ccai/pychestrate/webservice/webinterface/foundation/static_files.py +683 -0
  1202. ccai/pychestrate/webservice/webinterface/foundation/templating.py +614 -0
  1203. ccai/pychestrate/webservice/webinterface/foundation/url_for.py +210 -0
  1204. ccai/pychestrate/webservice/webinterface/htmlui/__init__.py +24 -0
  1205. ccai/pychestrate/webservice/webinterface/htmlui/next_validator.py +191 -0
  1206. ccai/pychestrate/webservice/webinterface/site_shell/__init__.py +37 -0
  1207. ccai/pychestrate/webservice/webinterface/site_shell/admin_contact.py +67 -0
  1208. ccai/pychestrate/webservice/webinterface/site_shell/bundle_registry.py +373 -0
  1209. ccai/pychestrate/webservice/webinterface/site_shell/catchall_route.py +415 -0
  1210. ccai/pychestrate/webservice/webinterface/site_shell/chromeless_routes.py +155 -0
  1211. ccai/pychestrate/webservice/webinterface/site_shell/error_pages.py +169 -0
  1212. ccai/pychestrate/webservice/webinterface/site_shell/nav_manifest.py +715 -0
  1213. ccai/pychestrate/webservice/webinterface/site_shell/preferences_models.py +47 -0
  1214. ccai/pychestrate/webservice/webinterface/site_shell/shell_document.py +286 -0
  1215. ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/_copy_buttons.html +61 -0
  1216. ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/_local_times.html +57 -0
  1217. ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/_macros.html +334 -0
  1218. ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/_permission_filter.html +96 -0
  1219. ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/_reveal_values.html +38 -0
  1220. ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/chromeless_error.html +48 -0
  1221. ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/error_catalogue.html +48 -0
  1222. ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/error_page.html +22 -0
  1223. ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/error_type.html +38 -0
  1224. ccai/pychestrate/webservice/webinterface/site_shell/templates/site_shell/shell_document.html +76 -0
  1225. ccai/pychestrate/webservice/webinterface/site_shell/ui_profile.py +705 -0
  1226. ccai/pychestrate/webservice/webinterface/site_shell/ui_profile_routes.py +168 -0
  1227. ccai/pychestrate/webservice/webinterface/site_shell/user_guide_route.py +180 -0
  1228. ccai/pychestrate/webservice/webinterface/static/favicon.svg +4 -0
  1229. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/admin-overview-view.js +736 -0
  1230. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/extension-registry-view.js +471 -0
  1231. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/feature-flags-view.js +490 -0
  1232. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/index.entry.js +219 -0
  1233. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/index.js +2288 -0
  1234. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/pyc-admin-bundle.css +374 -0
  1235. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-admin-bundle/system-health-view.js +308 -0
  1236. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-builds-bundle/build-detail-view.js +913 -0
  1237. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-builds-bundle/builds-list-view.js +1170 -0
  1238. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-builds-bundle/index.entry.js +185 -0
  1239. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-builds-bundle/index.js +2641 -0
  1240. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-builds-bundle/pyc-builds-bundle.css +462 -0
  1241. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-catalog-bundle/catalog-view.js +1154 -0
  1242. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-catalog-bundle/index.entry.js +148 -0
  1243. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-catalog-bundle/index.js +1539 -0
  1244. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-catalog-bundle/pyc-catalog-bundle.css +272 -0
  1245. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/environment-detail-view.js +484 -0
  1246. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/environments-view.js +1459 -0
  1247. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/guards-view.js +1505 -0
  1248. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/index.entry.js +318 -0
  1249. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/index.js +5515 -0
  1250. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/provisioning-detail-view.js +596 -0
  1251. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/provisioning-list-view.js +960 -0
  1252. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-infra-bundle/pyc-infra-bundle.css +552 -0
  1253. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/alert-rules-view.js +1349 -0
  1254. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/dashboard-editor-view.js +849 -0
  1255. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/dashboards-view.js +1376 -0
  1256. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/index.entry.js +393 -0
  1257. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/index.js +6489 -0
  1258. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/pyc-metrics-bundle.css +428 -0
  1259. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/slos-view.js +1362 -0
  1260. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/test-metrics-view.js +676 -0
  1261. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-metrics-bundle/timeseries-view.js +485 -0
  1262. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-mj-lib/index.js +15505 -0
  1263. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-ops-bundle/index.entry.js +206 -0
  1264. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-ops-bundle/index.js +3240 -0
  1265. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-ops-bundle/pyc-ops-bundle.css +344 -0
  1266. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-ops-bundle/release-channels-view.js +810 -0
  1267. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-ops-bundle/webhooks-view.js +1989 -0
  1268. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pipelines-bundle/index.entry.js +179 -0
  1269. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pipelines-bundle/index.js +3013 -0
  1270. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pipelines-bundle/pipeline-detail-view.js +1275 -0
  1271. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pipelines-bundle/pipelines-list-view.js +1352 -0
  1272. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pipelines-bundle/pyc-pipelines-bundle.css +546 -0
  1273. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/client-detail-view.js +780 -0
  1274. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/clients-list-view.js +1047 -0
  1275. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/index.entry.js +284 -0
  1276. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/index.js +4182 -0
  1277. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/pod-detail-view.js +1258 -0
  1278. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/pods-list-view.js +732 -0
  1279. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-pods-bundle/pyc-pods-bundle.css +494 -0
  1280. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/index.entry.js +233 -0
  1281. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/index.js +4092 -0
  1282. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/pool-detail-view.js +1321 -0
  1283. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/pyc-resources-bundle.css +403 -0
  1284. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/resource-detail-view.js +1101 -0
  1285. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/resource-inventory-view.js +424 -0
  1286. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-resources-bundle/resource-pools-view.js +939 -0
  1287. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-runs-bundle/index.entry.js +151 -0
  1288. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-runs-bundle/index.js +2709 -0
  1289. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-runs-bundle/pyc-runs-bundle.css +655 -0
  1290. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-runs-bundle/run-detail-view.js +1460 -0
  1291. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-runs-bundle/runs-list-view.js +975 -0
  1292. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-secrets-bundle/index.entry.js +124 -0
  1293. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-secrets-bundle/index.js +1817 -0
  1294. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-secrets-bundle/pyc-secrets-bundle.css +472 -0
  1295. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-secrets-bundle/secrets-view.js +1660 -0
  1296. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/chip-tone.js +115 -0
  1297. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/confirm-delegate.js +285 -0
  1298. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/degraded-banner.js +95 -0
  1299. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/empty-state.js +66 -0
  1300. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/flash-notices.js +115 -0
  1301. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/form-draft.js +184 -0
  1302. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/header.js +354 -0
  1303. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/hidden-surface-notice.js +80 -0
  1304. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/home-view.js +422 -0
  1305. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/live-region.js +103 -0
  1306. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/log-viewer.js +188 -0
  1307. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/not-found-view.js +51 -0
  1308. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/reveal-toggle.js +96 -0
  1309. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/chrome/session-toast.js +54 -0
  1310. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/index.entry.js +48 -0
  1311. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/index.js +5061 -0
  1312. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/observability/metrics-beacon.js +200 -0
  1313. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/palette/entity-provider.js +201 -0
  1314. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/palette/navigation-provider.js +144 -0
  1315. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/palette/palette-dialog.js +391 -0
  1316. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/palette/palette-registry.js +141 -0
  1317. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/permissions/permission-cache.js +227 -0
  1318. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/permissions/permission-set.js +85 -0
  1319. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/pyc-site-shell.css +1181 -0
  1320. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/pyc-site-shell.js +1219 -0
  1321. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/routing/shell-router.js +77 -0
  1322. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/sidebar/nav-manifest.js +94 -0
  1323. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/sidebar/sidebar-keyboard.js +275 -0
  1324. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/sidebar/sidebar-registry.js +197 -0
  1325. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/sidebar/sidebar-renderer.js +410 -0
  1326. ccai/pychestrate/webservice/webinterface/static/javascript/pyc-site-shell/theme-boot.js +27 -0
  1327. ccai/pychestrate/webservice/webinterface/static/javascript/shared/admin-contact.js +36 -0
  1328. ccai/pychestrate/webservice/webinterface/static/javascript/shared/confirm.js +48 -0
  1329. ccai/pychestrate/webservice/webinterface/static/javascript/shared/datetime.js +137 -0
  1330. ccai/pychestrate/webservice/webinterface/static/javascript/shared/empty-state.js +66 -0
  1331. ccai/pychestrate/webservice/webinterface/static/javascript/shared/entity-names.js +80 -0
  1332. ccai/pychestrate/webservice/webinterface/static/javascript/shared/filter-caption.js +20 -0
  1333. ccai/pychestrate/webservice/webinterface/static/javascript/shared/page-title.js +30 -0
  1334. ccai/pychestrate/webservice/webinterface/static/javascript/shared/permissions.js +68 -0
  1335. ccai/pychestrate/webservice/webinterface/static/javascript/shared/problem-detail.js +70 -0
  1336. ccai/pychestrate/webservice/webinterface/static/javascript/shared/reveal.js +81 -0
  1337. ccai/pychestrate/webservice/webinterface/static/javascript/shared/run-artifacts.js +82 -0
  1338. ccai/pychestrate/webservice/webinterface/static/javascript/shared/run-labels.js +120 -0
  1339. ccai/pychestrate/webservice/webinterface/static/javascript/shared/run-project.js +30 -0
  1340. ccai/pychestrate/webservice/webinterface/static/javascript/shared/toast.js +94 -0
  1341. ccai/pychestrate/webservice/webinterface/static/javascript/shared/view-state.js +91 -0
  1342. ccai/pychestrate/webservice/webinterface/static/styles/color-theme.css +25 -0
  1343. ccai/pychestrate/webservice/webinterface/static/styles/pyc-fragment.css +1311 -0
  1344. ccai/pychestrate/webservice/webinterface/static/styles/pyc-tokens.css +240 -0
  1345. ccai/pychestrate/webservice/wsgi_dispatch.py +189 -0
  1346. pychestrate_service-0.0.7rc0.dist-info/METADATA +139 -0
  1347. pychestrate_service-0.0.7rc0.dist-info/RECORD +1350 -0
  1348. pychestrate_service-0.0.7rc0.dist-info/WHEEL +4 -0
  1349. pychestrate_service-0.0.7rc0.dist-info/entry_points.txt +4 -0
  1350. 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"