orchestrator-core 4.0.4__tar.gz → 4.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (678) hide show
  1. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.bumpversion.cfg +1 -1
  2. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/PKG-INFO +3 -3
  3. orchestrator_core-4.1.0/docs/reference-docs/app/settings_overview.md +89 -0
  4. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/auth-backend-and-frontend.md +317 -0
  5. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/cli.md +0 -1
  6. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/mkdocs.yml +1 -0
  7. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/__init__.py +1 -1
  8. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/processes.py +61 -11
  9. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/settings.py +12 -1
  10. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/celery.py +7 -2
  11. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/processes.py +1 -10
  12. orchestrator_core-4.1.0/orchestrator/services/settings_env_variables.py +68 -0
  13. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/settings.py +11 -2
  14. orchestrator_core-4.1.0/orchestrator/utils/auth.py +9 -0
  15. orchestrator_core-4.1.0/orchestrator/utils/expose_settings.py +45 -0
  16. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/workflow.py +45 -7
  17. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/workflows/steps.py +3 -0
  18. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/workflows/utils.py +10 -4
  19. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/pyproject.toml +2 -2
  20. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_processes.py +162 -1
  21. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_settings.py +22 -0
  22. orchestrator_core-4.1.0/test/unit_tests/services/test_expose_settings.py +35 -0
  23. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.coveragerc +0 -0
  24. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  25. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  26. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/dependabot.yml +0 -0
  27. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/workflows/README.md +0 -0
  28. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/workflows/build-push-container.yml +0 -0
  29. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/workflows/changelog.yml +0 -0
  30. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/workflows/codeql-analysis.yml +0 -0
  31. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/workflows/gh-pages.yml +0 -0
  32. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/workflows/issues.yml +0 -0
  33. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/workflows/publish-package.yml +0 -0
  34. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/workflows/run-codspeed-tests.yml +0 -0
  35. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/workflows/run-linting-tests.yml +0 -0
  36. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/workflows/run-unit-tests.yml +0 -0
  37. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.github/workflows/scheduled-build.yml +0 -0
  38. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.gitignore +0 -0
  39. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.pre-commit-config.yaml +0 -0
  40. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/.stignore +0 -0
  41. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/CHANGELOG.md +0 -0
  42. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/Dockerfile +0 -0
  43. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/LICENSE +0 -0
  44. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/NOTICE +0 -0
  45. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/README.md +0 -0
  46. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/codecov.yml +0 -0
  47. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/application/domainmodels.md +0 -0
  48. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/application/forms-frontend.md +0 -0
  49. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/application/tasks.md +0 -0
  50. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/application/workflow.md +0 -0
  51. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/framework.md +0 -0
  52. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/img/base-orchestrator-setup.png +0 -0
  53. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/img/custom-orchestrator-setup.png +0 -0
  54. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/orchestration/img/Custom-orchestrator-ui-using-override.png +0 -0
  55. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/orchestration/img/Standard-orchestrator-ui.png +0 -0
  56. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/orchestration/orchestrator-ui.md +0 -0
  57. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/orchestration/philosophy.md +0 -0
  58. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/backfilling.md +0 -0
  59. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/context.md +0 -0
  60. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/imports.md +0 -0
  61. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/introduction.md +0 -0
  62. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/ip_static.md +0 -0
  63. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/ip_static.png +0 -0
  64. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/l2_point_to_point.md +0 -0
  65. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/l2_point_to_point.png +0 -0
  66. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/l2_vpn.md +0 -0
  67. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/l2_vpn.png +0 -0
  68. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/modelling.md +0 -0
  69. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/node.md +0 -0
  70. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/node.png +0 -0
  71. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/port.md +0 -0
  72. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/port.png +0 -0
  73. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/product_block_graph.md +0 -0
  74. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/product_block_graph.png +0 -0
  75. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/standards.md +0 -0
  76. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/product_modelling/terminology.md +0 -0
  77. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/architecture/tldr.md +0 -0
  78. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/contributing/development.md +0 -0
  79. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/contributing/guidelines.md +0 -0
  80. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/contributing/testing.md +0 -0
  81. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/css/custom.css +0 -0
  82. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/css/style.css +0 -0
  83. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/css/termynal.css +0 -0
  84. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/getting-started/base.md +0 -0
  85. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/getting-started/docker.md +0 -0
  86. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/getting-started/orchestration-ui.md +0 -0
  87. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/getting-started/prepare-source-folder.md +0 -0
  88. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/getting-started/versions.md +0 -0
  89. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/img/WFO-Emblem-White.png +0 -0
  90. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/img/favicon.ico +0 -0
  91. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/index.md +0 -0
  92. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/js/custom.js +0 -0
  93. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/js/termynal.js +0 -0
  94. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/migration-guide/2.0.md +0 -0
  95. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/migration-guide/3.0.md +0 -0
  96. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/migration-guide/4.0.md +0 -0
  97. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/api.md +0 -0
  98. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/app/app.md +0 -0
  99. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/app/scaling.md +0 -0
  100. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/database.md +0 -0
  101. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/domain_models/generator.md +0 -0
  102. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/domain_models/instantiating.md +0 -0
  103. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/domain_models/model_attributes.md +0 -0
  104. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/domain_models/overview.md +0 -0
  105. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/domain_models/product_blocks.md +0 -0
  106. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/domain_models/product_types.md +0 -0
  107. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/domain_models/properties.md +0 -0
  108. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/domain_models/pydantic_hooks.md +0 -0
  109. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/domain_models/type_casting.md +0 -0
  110. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/domain_models/union_types.md +0 -0
  111. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/domain_models/validation.md +0 -0
  112. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/forms.md +0 -0
  113. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/graphql.md +0 -0
  114. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/metrics.md +0 -0
  115. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/python.md +0 -0
  116. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/search.md +0 -0
  117. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/search_overview.png +0 -0
  118. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/serialization.md +0 -0
  119. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/tasks.md +0 -0
  120. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/tests.md +0 -0
  121. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/tldr.md +0 -0
  122. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/websockets.md +0 -0
  123. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/workflows/callbacks.md +0 -0
  124. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/workflows/workflow-lifecycles.md +0 -0
  125. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/reference-docs/workflows/workflow-steps.md +0 -0
  126. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/bootstrap.md +0 -0
  127. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/create-your-own.md +0 -0
  128. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/docker-installation.md +0 -0
  129. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/domain-models.md +0 -0
  130. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/execute-workflows.md +0 -0
  131. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/generator.md +0 -0
  132. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/l2_point_to_point.png +0 -0
  133. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/node-create.md +0 -0
  134. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/node-modify.md +0 -0
  135. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/node-terminate.md +0 -0
  136. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/node-validate.md +0 -0
  137. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/overview.md +0 -0
  138. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/scenario.md +0 -0
  139. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/workflow-basics.md +0 -0
  140. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/advanced/workflow-introduction.md +0 -0
  141. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/create-user-group.md +0 -0
  142. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/create-user.md +0 -0
  143. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/database-migration.md +0 -0
  144. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/debian.md +0 -0
  145. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/docker.md +0 -0
  146. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/domain-models.md +0 -0
  147. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/explore.md +0 -0
  148. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/input-forms.md +0 -0
  149. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/macos.md +0 -0
  150. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/modify-user-group.md +0 -0
  151. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/modify-user.md +0 -0
  152. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/register-workflows.md +0 -0
  153. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/start-applications.md +0 -0
  154. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/terminate-user-group.md +0 -0
  155. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/terminate-user.md +0 -0
  156. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/workflow-introduction.md +0 -0
  157. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/beginner/workshop-overview.md +0 -0
  158. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/images/Software-topology.drawio.png +0 -0
  159. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/images/clab_topology.png +0 -0
  160. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/images/metadata_products.png +0 -0
  161. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/images/netbox_devices_active.png +0 -0
  162. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/images/subscriptions.png +0 -0
  163. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/docs/workshops/images/topology.drawio.png +0 -0
  164. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/includes/abbreviations.md +0 -0
  165. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/nitpick-style.toml +0 -0
  166. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/__init__.py +0 -0
  167. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/__init__.py +0 -0
  168. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/api.py +0 -0
  169. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/__init__.py +0 -0
  170. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/health.py +0 -0
  171. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/product_blocks.py +0 -0
  172. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/products.py +0 -0
  173. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/resource_types.py +0 -0
  174. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py +0 -0
  175. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/subscriptions.py +0 -0
  176. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/translations.py +0 -0
  177. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/user.py +0 -0
  178. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/workflows.py +0 -0
  179. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/api_v1/endpoints/ws.py +0 -0
  180. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/error_handling.py +0 -0
  181. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/helpers.py +0 -0
  182. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/api/models.py +0 -0
  183. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/app.py +0 -0
  184. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/__init__.py +0 -0
  185. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/database.py +0 -0
  186. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/domain_gen_helpers/__init__.py +0 -0
  187. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py +0 -0
  188. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/domain_gen_helpers/helpers.py +0 -0
  189. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/domain_gen_helpers/product_block_helpers.py +0 -0
  190. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/domain_gen_helpers/product_helpers.py +0 -0
  191. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/domain_gen_helpers/resource_type_helpers.py +0 -0
  192. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/domain_gen_helpers/types.py +0 -0
  193. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generate.py +0 -0
  194. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/__init__.py +0 -0
  195. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/custom_templates/README +0 -0
  196. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/custom_templates/additional_create_imports.j2 +0 -0
  197. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/custom_templates/additional_create_input_fields.j2 +0 -0
  198. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/custom_templates/additional_create_steps.j2 +0 -0
  199. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/custom_templates/additional_modify_imports.j2 +0 -0
  200. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/custom_templates/additional_modify_input_fields.j2 +0 -0
  201. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/custom_templates/additional_modify_steps.j2 +0 -0
  202. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/custom_templates/additional_terminate_imports.j2 +0 -0
  203. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/custom_templates/additional_terminate_input_fields.j2 +0 -0
  204. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/custom_templates/additional_terminate_steps.j2 +0 -0
  205. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/generator/__init__.py +0 -0
  206. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/generator/enums.py +0 -0
  207. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/generator/helpers.py +0 -0
  208. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/generator/migration.py +0 -0
  209. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/generator/product.py +0 -0
  210. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/generator/product_block.py +0 -0
  211. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/generator/settings.py +0 -0
  212. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/generator/translations.py +0 -0
  213. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/generator/unittest.py +0 -0
  214. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/generator/validations.py +0 -0
  215. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/generator/workflow.py +0 -0
  216. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/products/workshop/circuit.yaml +0 -0
  217. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/products/workshop/node.yaml +0 -0
  218. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/products/workshop/user.yaml +0 -0
  219. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/products/workshop/user_group.yaml +0 -0
  220. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/additional_create_imports.j2 +0 -0
  221. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/additional_create_steps.j2 +0 -0
  222. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/additional_modify_imports.j2 +0 -0
  223. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/additional_modify_steps.j2 +0 -0
  224. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/additional_terminate_steps.j2 +0 -0
  225. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/constrained_int_definitions.j2 +0 -0
  226. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/create_data_head.j2 +0 -0
  227. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/create_product.j2 +0 -0
  228. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/enums.j2 +0 -0
  229. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/lazy_workflow_instance.j2 +0 -0
  230. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/list_definitions.j2 +0 -0
  231. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/macros.j2 +0 -0
  232. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/modify_product.j2 +0 -0
  233. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/new_product_migration.j2 +0 -0
  234. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/product.j2 +0 -0
  235. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/product_block.j2 +0 -0
  236. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/shared_forms.j2 +0 -0
  237. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/shared_workflows.j2 +0 -0
  238. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/subscription_model_registry.j2 +0 -0
  239. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/terminate_product.j2 +0 -0
  240. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/test_create_workflow.j2 +0 -0
  241. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/test_modify_workflow.j2 +0 -0
  242. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/test_product_type.j2 +0 -0
  243. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/test_terminate_workflow.j2 +0 -0
  244. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/test_validate_workflow.j2 +0 -0
  245. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/generator/templates/validate_product.j2 +0 -0
  246. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/helpers/__init__.py +0 -0
  247. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/helpers/input_helpers.py +0 -0
  248. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/helpers/print_helpers.py +0 -0
  249. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/main.py +0 -0
  250. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/migrate_domain_models.py +0 -0
  251. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/migrate_tasks.py +0 -0
  252. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/migrate_workflows.py +0 -0
  253. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/migration_helpers.py +0 -0
  254. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/cli/scheduler.py +0 -0
  255. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/config/__init__.py +0 -0
  256. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/config/assignee.py +0 -0
  257. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/__init__.py +0 -0
  258. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/database.py +0 -0
  259. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/filters/__init__.py +0 -0
  260. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/filters/filters.py +0 -0
  261. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/filters/process.py +0 -0
  262. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/filters/product.py +0 -0
  263. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/filters/product_block.py +0 -0
  264. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/filters/resource_type.py +0 -0
  265. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/filters/search_filters/__init__.py +0 -0
  266. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/filters/search_filters/inferred_filter.py +0 -0
  267. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/filters/subscription.py +0 -0
  268. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/filters/workflow.py +0 -0
  269. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/helpers.py +0 -0
  270. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/listeners.py +0 -0
  271. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/loaders.py +0 -0
  272. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/models.py +0 -0
  273. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/queries/__init__.py +0 -0
  274. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/queries/subscription.py +0 -0
  275. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/queries/subscription_instance.py +0 -0
  276. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/range/__init__.py +0 -0
  277. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/range/range.py +0 -0
  278. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/sorting/__init__.py +0 -0
  279. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/sorting/process.py +0 -0
  280. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/sorting/product.py +0 -0
  281. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/sorting/product_block.py +0 -0
  282. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/sorting/resource_type.py +0 -0
  283. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/sorting/sorting.py +0 -0
  284. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/sorting/subscription.py +0 -0
  285. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/db/sorting/workflow.py +0 -0
  286. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/devtools/__init__.py +0 -0
  287. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/devtools/populator.py +0 -0
  288. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/devtools/scripts/__init__.py +0 -0
  289. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/devtools/scripts/migrate_20.py +0 -0
  290. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/devtools/scripts/migrate_30.py +0 -0
  291. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/devtools/scripts/shared.py +0 -0
  292. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/distlock/__init__.py +0 -0
  293. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/distlock/distlock_manager.py +0 -0
  294. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/distlock/managers/__init__.py +0 -0
  295. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/distlock/managers/memory_distlock_manager.py +0 -0
  296. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/distlock/managers/redis_distlock_manager.py +0 -0
  297. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/domain/__init__.py +0 -0
  298. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/domain/base.py +0 -0
  299. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/domain/context_cache.py +0 -0
  300. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/domain/customer_description.py +0 -0
  301. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/domain/helpers.py +0 -0
  302. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/domain/lifecycle.py +0 -0
  303. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/domain/subscription_instance_transform.py +0 -0
  304. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/exception_handlers.py +0 -0
  305. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/forms/__init__.py +0 -0
  306. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/forms/validators/__init__.py +0 -0
  307. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/forms/validators/customer_contact_list.py +0 -0
  308. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/forms/validators/customer_id.py +0 -0
  309. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/forms/validators/display_subscription.py +0 -0
  310. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/forms/validators/network_type_validators.py +0 -0
  311. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/forms/validators/product_id.py +0 -0
  312. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/__init__.py +0 -0
  313. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/autoregistration.py +0 -0
  314. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/extensions/__init__.py +0 -0
  315. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/extensions/model_cache.py +0 -0
  316. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/extensions/stats.py +0 -0
  317. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/loaders/__init__.py +0 -0
  318. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/loaders/subscriptions.py +0 -0
  319. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/mutations/customer_description.py +0 -0
  320. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/mutations/start_process.py +0 -0
  321. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/pagination.py +0 -0
  322. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/resolvers/__init__.py +0 -0
  323. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/resolvers/customer.py +0 -0
  324. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/resolvers/helpers.py +0 -0
  325. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/resolvers/process.py +0 -0
  326. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/resolvers/product.py +0 -0
  327. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/resolvers/product_block.py +0 -0
  328. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/resolvers/resource_type.py +0 -0
  329. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/resolvers/settings.py +0 -0
  330. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/resolvers/subscription.py +0 -0
  331. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/resolvers/version.py +0 -0
  332. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/resolvers/workflow.py +0 -0
  333. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schema.py +0 -0
  334. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/__init__.py +0 -0
  335. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/customer.py +0 -0
  336. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/customer_description.py +0 -0
  337. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/errors.py +0 -0
  338. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/fixed_input.py +0 -0
  339. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/helpers.py +0 -0
  340. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/process.py +0 -0
  341. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/product.py +0 -0
  342. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/product_block.py +0 -0
  343. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/resource_type.py +0 -0
  344. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/settings.py +0 -0
  345. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/strawberry_pydantic_patch.py +0 -0
  346. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/subscription.py +0 -0
  347. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/version.py +0 -0
  348. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/schemas/workflow.py +0 -0
  349. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/types.py +0 -0
  350. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/utils/__init__.py +0 -0
  351. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/utils/create_resolver_error_handler.py +0 -0
  352. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/utils/get_query_loaders.py +0 -0
  353. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/utils/get_selected_fields.py +0 -0
  354. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/utils/get_selected_paths.py +0 -0
  355. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/utils/get_subscription_product_blocks.py +0 -0
  356. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/utils/is_query_detailed.py +0 -0
  357. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/utils/override_class.py +0 -0
  358. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/graphql/utils/to_graphql_result_page.py +0 -0
  359. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/log_config.py +0 -0
  360. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/metrics/__init__.py +0 -0
  361. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/metrics/engine.py +0 -0
  362. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/metrics/init.py +0 -0
  363. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/metrics/processes.py +0 -0
  364. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/metrics/subscriptions.py +0 -0
  365. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/README +0 -0
  366. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/alembic.ini +0 -0
  367. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/env.py +0 -0
  368. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/helpers.py +0 -0
  369. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/script.py.mako +0 -0
  370. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/templates/alembic.ini.j2 +0 -0
  371. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/templates/env.py.j2 +0 -0
  372. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/templates/helpers.py.j2 +0 -0
  373. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2020-10-19_3323bcb934e7_fix_tsv_triggers.py +0 -0
  374. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2020-10-19_a76b9185b334_add_generic_workflows_to_core.py +0 -0
  375. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2020-10-19_c112305b07d3_initial_schema_migration.py +0 -0
  376. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2021-04-06_3c8b9185c221_add_validate_products_task.py +0 -0
  377. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2021-07-01_6896a54e9483_add_product_block_relations.py +0 -0
  378. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2021-11-17_19cdd3ab86f6_fix_parse_websearch.py +0 -0
  379. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2022-02-16_bed6bc0b197a_rename_parent_and_child_block_relations.py +0 -0
  380. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2023-03-06_e05bb1967eff_add_subscriptions_search_view.py +0 -0
  381. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2023-05-25_b1970225392d_add_subscription_metadata_workflow.py +0 -0
  382. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.py +0 -0
  383. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.sql +0 -0
  384. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.py +0 -0
  385. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.sql +0 -0
  386. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.py +0 -0
  387. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.sql +0 -0
  388. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2023-12-06_048219045729_add_workflow_id_to_processes_table.py +0 -0
  389. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.py +0 -0
  390. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.sql +0 -0
  391. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2025-01-08_4c5859620539_add_version_column_to_subscription.py +0 -0
  392. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2025-01-19_4fjdn13f83ga_add_validate_product_type_task.py +0 -0
  393. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2025-02-12_bac6be6f2b4f_added_input_state_table.py +0 -0
  394. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2025-02-20_68d14db1b8da_make_workflow_description_mandatory.py +0 -0
  395. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2025-03-06_42b3d076a85b_subscription_instance_as_json_function.py +0 -0
  396. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2025-03-06_42b3d076a85b_subscription_instance_as_json_function.sql +0 -0
  397. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2025-04-09_fc5c993a4b4a_add_cascade_constraint_on_processes_.py +0 -0
  398. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/migrations/versions/schema/2025-05-08_161918133bec_add_is_task_to_workflow.py +0 -0
  399. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/py.typed +0 -0
  400. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schedules/__init__.py +0 -0
  401. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schedules/resume_workflows.py +0 -0
  402. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schedules/scheduling.py +0 -0
  403. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schedules/task_vacuum.py +0 -0
  404. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schedules/validate_products.py +0 -0
  405. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schedules/validate_subscriptions.py +0 -0
  406. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schemas/__init__.py +0 -0
  407. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schemas/base.py +0 -0
  408. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schemas/engine_settings.py +0 -0
  409. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schemas/fixed_input.py +0 -0
  410. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schemas/problem_detail.py +0 -0
  411. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schemas/process.py +0 -0
  412. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schemas/product.py +0 -0
  413. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schemas/product_block.py +0 -0
  414. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schemas/resource_type.py +0 -0
  415. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schemas/subscription.py +0 -0
  416. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schemas/subscription_descriptions.py +0 -0
  417. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/schemas/workflow.py +0 -0
  418. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/security.py +0 -0
  419. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/__init__.py +0 -0
  420. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/fixed_inputs.py +0 -0
  421. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/input_state.py +0 -0
  422. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/process_broadcast_thread.py +0 -0
  423. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/products.py +0 -0
  424. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/resource_types.py +0 -0
  425. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/settings.py +0 -0
  426. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/subscription_relations.py +0 -0
  427. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/subscriptions.py +0 -0
  428. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/tasks.py +0 -0
  429. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/translations.py +0 -0
  430. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/services/workflows.py +0 -0
  431. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/targets.py +0 -0
  432. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/types.py +0 -0
  433. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/__init__.py +0 -0
  434. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/crypt.py +0 -0
  435. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/datetime.py +0 -0
  436. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/deprecation_logger.py +0 -0
  437. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/docs.py +0 -0
  438. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/enrich_process.py +0 -0
  439. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/errors.py +0 -0
  440. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/fixed_inputs.py +0 -0
  441. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/functional.py +0 -0
  442. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/get_subscription_dict.py +0 -0
  443. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/get_updated_properties.py +0 -0
  444. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/helpers.py +0 -0
  445. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/json.py +0 -0
  446. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/redis.py +0 -0
  447. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/redis_client.py +0 -0
  448. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/search_query.py +0 -0
  449. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/state.py +0 -0
  450. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/strings.py +0 -0
  451. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/utils/validate_data_version.py +0 -0
  452. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/version.py +0 -0
  453. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/websocket/__init__.py +0 -0
  454. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/websocket/managers/broadcast_websocket_manager.py +0 -0
  455. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/websocket/managers/memory_websocket_manager.py +0 -0
  456. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/websocket/websocket_manager.py +0 -0
  457. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/workflows/__init__.py +0 -0
  458. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/workflows/modify_note.py +0 -0
  459. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/workflows/removed_workflow.py +0 -0
  460. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/workflows/tasks/__init__.py +0 -0
  461. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/workflows/tasks/cleanup_tasks_log.py +0 -0
  462. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/workflows/tasks/resume_workflows.py +0 -0
  463. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/workflows/tasks/validate_product_type.py +0 -0
  464. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/workflows/tasks/validate_products.py +0 -0
  465. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/orchestrator/workflows/translations/en-GB.json +0 -0
  466. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/setup.cfg +0 -0
  467. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/setup.py +0 -0
  468. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/__init__.py +0 -0
  469. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/__init__.py +0 -0
  470. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/conftest.py +0 -0
  471. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/fixtures/test_orchestrator/__init__.py +0 -0
  472. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/__init__.py +0 -0
  473. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/test_product_populator.py +0 -0
  474. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/fixtures/test_orchestrator/main.py +0 -0
  475. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/__init__.py +0 -0
  476. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/test_product_blocks.py +0 -0
  477. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/fixtures/test_orchestrator/products/__init__.py +0 -0
  478. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/fixtures/test_orchestrator/products/test_product.py +0 -0
  479. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/fixtures/test_orchestrator/workflows/__init__.py +0 -0
  480. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/fixtures/test_orchestrator/workflows/create_test_product.py +0 -0
  481. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/acceptance_tests/test_test_product.py +0 -0
  482. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/__init__.py +0 -0
  483. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/__init__.py +0 -0
  484. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_health.py +0 -0
  485. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_helpers.py +0 -0
  486. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_models.py +0 -0
  487. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_processes_ws.py +0 -0
  488. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_product_blocks.py +0 -0
  489. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_products.py +0 -0
  490. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_resource_types.py +0 -0
  491. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_subscription_customer_descriptions.py +0 -0
  492. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_subscriptions.py +0 -0
  493. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_workflows.py +0 -0
  494. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/api/test_ws.py +0 -0
  495. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/__init__.py +0 -0
  496. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/conftest.py +0 -0
  497. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/alembic.ini +0 -0
  498. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/main.py +0 -0
  499. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/migrations/env.py +0 -0
  500. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/migrations/helpers.py +0 -0
  501. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/migrations/script.py.mako +0 -0
  502. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_59e1199aff7f_create_data_head.py +0 -0
  503. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_85be1c80731c_add_example2.py +0 -0
  504. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_ea9e6c9de75c_add_example1.py +0 -0
  505. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-06-07_380a5b0c928c_add_example4.py +0 -0
  506. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/products/__init__.py +0 -0
  507. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/products/product_blocks/__init__.py +0 -0
  508. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/products/product_blocks/example1.py +0 -0
  509. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/products/product_blocks/example2.py +0 -0
  510. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/products/product_blocks/example4.py +0 -0
  511. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/products/product_blocks/example4sub.py +0 -0
  512. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/products/product_types/__init__.py +0 -0
  513. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/products/product_types/example1.py +0 -0
  514. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/products/product_types/example2.py +0 -0
  515. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/products/product_types/example4.py +0 -0
  516. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example1.py +0 -0
  517. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example2.py +0 -0
  518. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example4.py +0 -0
  519. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_create_example1.py +0 -0
  520. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_modify_example1.py +0 -0
  521. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_terminate_example1.py +0 -0
  522. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_validate_example1.py +0 -0
  523. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_create_example2.py +0 -0
  524. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_modify_example2.py +0 -0
  525. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_terminate_example2.py +0 -0
  526. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_validate_example2.py +0 -0
  527. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_create_example4.py +0 -0
  528. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_modify_example4.py +0 -0
  529. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_terminate_example4.py +0 -0
  530. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_validate_example4.py +0 -0
  531. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/translations/en-GB.json +0 -0
  532. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/__init__.py +0 -0
  533. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example1/create_example1.py +0 -0
  534. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example1/modify_example1.py +0 -0
  535. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example1/shared/forms.py +0 -0
  536. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example1/terminate_example1.py +0 -0
  537. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example1/validate_example1.py +0 -0
  538. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example2/create_example2.py +0 -0
  539. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example2/modify_example2.py +0 -0
  540. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example2/shared/forms.py +0 -0
  541. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example2/terminate_example2.py +0 -0
  542. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example4/create_example4.py +0 -0
  543. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example4/modify_example4.py +0 -0
  544. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example4/shared/forms.py +0 -0
  545. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/example4/terminate_example4.py +0 -0
  546. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate/workflows/shared.py +0 -0
  547. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/generate.sh +0 -0
  548. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/invalid_product_config1.yaml +0 -0
  549. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/invalid_product_config2.yaml +0 -0
  550. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/product_config1.yaml +0 -0
  551. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/product_config2.yaml +0 -0
  552. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/product_config3.yaml +0 -0
  553. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/data/product_config4.yaml +0 -0
  554. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/generator/__init__.py +0 -0
  555. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/generator/test_enums.py +0 -0
  556. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/helpers.py +0 -0
  557. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/test_cli_generate.py +0 -0
  558. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/test_config_validation.py +0 -0
  559. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/test_generate_code.py +0 -0
  560. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/test_migrate_domain_models_with_instances.py +0 -0
  561. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/cli/test_migrate_domain_models_without_instances.py +0 -0
  562. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/config.py +0 -0
  563. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/conftest.py +0 -0
  564. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/db/__init__.py +0 -0
  565. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/db/test_listeners.py +0 -0
  566. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/db/test_migration_does_column_exist.py +0 -0
  567. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/domain/__init__.py +0 -0
  568. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/domain/test_base.py +0 -0
  569. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/domain/test_base_multiple.py +0 -0
  570. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/domain/test_base_performance.py +0 -0
  571. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/domain/test_base_serializable_property.py +0 -0
  572. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/domain/test_base_with_list_union.py +0 -0
  573. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/domain/test_base_with_union.py +0 -0
  574. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/domain/test_lifecycle.py +0 -0
  575. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/__init__.py +0 -0
  576. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/processes.py +0 -0
  577. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/__init__.py +0 -0
  578. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_blocks/__init__.py +0 -0
  579. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_blocks/product_block_list_nested.py +0 -0
  580. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_blocks/product_block_one.py +0 -0
  581. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_blocks/product_block_one_nested.py +0 -0
  582. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_blocks/product_block_with_list_union.py +0 -0
  583. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_blocks/product_block_with_union.py +0 -0
  584. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_one.py +0 -0
  585. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_two.py +0 -0
  586. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_types/__init__.py +0 -0
  587. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_types/product_type_list_nested.py +0 -0
  588. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_types/product_type_list_union.py +0 -0
  589. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_types/product_type_list_union_overlap.py +0 -0
  590. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_types/product_type_one.py +0 -0
  591. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_types/product_type_one_nested.py +0 -0
  592. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_types/product_type_sub_list_union.py +0 -0
  593. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_types/product_type_sub_one.py +0 -0
  594. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_types/product_type_sub_two.py +0 -0
  595. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_types/product_type_sub_union.py +0 -0
  596. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_types/product_type_union.py +0 -0
  597. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/product_types/subscription_relations.py +0 -0
  598. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/products/resource_types.py +0 -0
  599. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/fixtures/workflows.py +0 -0
  600. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/forms/__init__.py +0 -0
  601. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/forms/test_customer_contact_list.py +0 -0
  602. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/forms/test_customer_id.py +0 -0
  603. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/forms/test_display_subscription.py +0 -0
  604. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/forms/test_generic_validators.py +0 -0
  605. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/__init__.py +0 -0
  606. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/conftest.py +0 -0
  607. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/extensions/__init__.py +0 -0
  608. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/extensions/test_stats.py +0 -0
  609. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/mutations/helpers.py +0 -0
  610. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/mutations/test_customer_description.py +0 -0
  611. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/mutations/test_start_process.py +0 -0
  612. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_customer.py +0 -0
  613. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_process.py +0 -0
  614. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_processes.py +0 -0
  615. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_product.py +0 -0
  616. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_product_blocks.py +0 -0
  617. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_resource_types.py +0 -0
  618. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_settings.py +0 -0
  619. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_sort_and_filter_fields.py +0 -0
  620. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_subscription.py +0 -0
  621. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_subscription_relations.py +0 -0
  622. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_subscriptions.py +0 -0
  623. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_version.py +0 -0
  624. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/test_workflows.py +0 -0
  625. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/utils/__init__.py +0 -0
  626. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/utils/fixtures.py +0 -0
  627. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/utils/test_autoregistration.py +0 -0
  628. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/utils/test_get_query_loaders.py +0 -0
  629. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/utils/test_get_selected_paths.py +0 -0
  630. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/utils/test_is_query_detailed.py +0 -0
  631. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/utils/test_is_querying_page_data.py +0 -0
  632. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/graphql/utils/test_override_class.py +0 -0
  633. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/helpers.py +0 -0
  634. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/metrics/__init__.py +0 -0
  635. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/metrics/conftest.py +0 -0
  636. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/metrics/test_engine_metrics.py +0 -0
  637. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/metrics/test_process_metrics.py +0 -0
  638. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/metrics/test_subscription_metrics.py +0 -0
  639. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/migrations/__init__.py +0 -0
  640. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/migrations/test_cascade_constraint.py +0 -0
  641. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/schedules/__init__.py +0 -0
  642. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/schedules/test_scheduling.py +0 -0
  643. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/services/__init__.py +0 -0
  644. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/services/test_input_state.py +0 -0
  645. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/services/test_processes.py +0 -0
  646. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/services/test_products.py +0 -0
  647. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/services/test_subscription_relations.py +0 -0
  648. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/services/test_subscriptions.py +0 -0
  649. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/services/test_translations.py +0 -0
  650. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/test_db.py +0 -0
  651. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/test_types.py +0 -0
  652. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/test_workflow.py +0 -0
  653. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/utils/__init__.py +0 -0
  654. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/utils/get_subscription_dict.py +0 -0
  655. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/utils/test_datetime.py +0 -0
  656. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/utils/test_errors.py +0 -0
  657. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/utils/test_functional.py +0 -0
  658. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/utils/test_get_updated_properties.py +0 -0
  659. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/utils/test_json.py +0 -0
  660. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/utils/test_search_query.py +0 -0
  661. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/utils/test_state.py +0 -0
  662. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/utils/test_strings.py +0 -0
  663. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/websocket/__init__.py +0 -0
  664. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/websocket/test_broadcast.py +0 -0
  665. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/__init__.py +0 -0
  666. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/conftest.py +0 -0
  667. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/shared/__init__.py +0 -0
  668. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/shared/test_validate_subscriptions.py +0 -0
  669. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/tasks/__init__.py +0 -0
  670. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/tasks/test_clean_up_task_log.py +0 -0
  671. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/tasks/test_resume_workflows.py +0 -0
  672. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/tasks/test_validate_product_type.py +0 -0
  673. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/tasks/test_validate_products.py +0 -0
  674. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/test_async_workflow.py +0 -0
  675. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/test_config_db_code.py +0 -0
  676. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/test_generic_workflow_steps.py +0 -0
  677. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/test_lifecycle_status_manager.py +0 -0
  678. {orchestrator_core-4.0.4 → orchestrator_core-4.1.0}/test/unit_tests/workflows/test_modify_note.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 4.0.4
2
+ current_version = 4.1.0
3
3
  commit = False
4
4
  tag = False
5
5
  parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(rc(?P<build>\d+))?
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orchestrator-core
3
- Version: 4.0.4
3
+ Version: 4.1.0
4
4
  Summary: This is the orchestrator workflow engine.
5
5
  Requires-Python: >=3.11,<3.14
6
6
  Classifier: Intended Audience :: Information Technology
@@ -39,7 +39,7 @@ Requires-Dist: more-itertools~=10.7.0
39
39
  Requires-Dist: itsdangerous
40
40
  Requires-Dist: Jinja2==3.1.6
41
41
  Requires-Dist: orjson==3.10.18
42
- Requires-Dist: prometheus-client==0.22.0
42
+ Requires-Dist: prometheus-client==0.22.1
43
43
  Requires-Dist: psycopg2-binary==2.9.10
44
44
  Requires-Dist: pydantic[email]~=2.8.2
45
45
  Requires-Dist: pydantic-settings~=2.9.1
@@ -84,7 +84,7 @@ Requires-Dist: dirty-equals ; extra == "test"
84
84
  Requires-Dist: jsonref ; extra == "test"
85
85
  Requires-Dist: mypy==1.9 ; extra == "test"
86
86
  Requires-Dist: pyinstrument ; extra == "test"
87
- Requires-Dist: pytest==8.3.5 ; extra == "test"
87
+ Requires-Dist: pytest==8.4.1 ; extra == "test"
88
88
  Requires-Dist: pytest-asyncio==0.21.2 ; extra == "test"
89
89
  Requires-Dist: pytest-codspeed ; extra == "test"
90
90
  Requires-Dist: pytest-cov ; extra == "test"
@@ -0,0 +1,89 @@
1
+ # Settings overview in Orchestrator
2
+
3
+ You can use the `api/settings/overview` endpoint to get an overview of the settings that are used in the application.
4
+ This endpoint provides a JSON response that contains the settings that are defined in the application. The settings are
5
+ grouped by their names and sensitive values are masked for security reasons.
6
+ Per default, the application settings are used to configure the application. The settings are defined in the
7
+ `orchestrator.settings.py` module and can be used to configure the application.
8
+
9
+ An example of the settings is shown below:
10
+
11
+ ```python
12
+ from orchestrator.settings import BaseSettings
13
+
14
+
15
+ class AppSettings(BaseSettings):
16
+ TESTING: bool = True
17
+ SESSION_SECRET: OrchSecretStr = "".join(secrets.choice(string.ascii_letters) for i in range(16)) # type: ignore
18
+ CORS_ORIGINS: str = "*"
19
+ ...
20
+ EXPOSE_SETTINGS: bool = False
21
+ EXPOSE_OAUTH_SETTINGS: bool = False
22
+
23
+
24
+ app_settings = AppSettings()
25
+
26
+ if app_settings.EXPOSE_SETTINGS:
27
+ expose_settings("app_settings", app_settings) # type: ignore
28
+
29
+ if app_settings.EXPOSE_OAUTH_SETTINGS:
30
+ expose_settings("oauth2lib_settings", oauth2lib_settings) # type: ignore
31
+ ```
32
+
33
+ What you see above is the default settings for the application. The settings are defined in the
34
+ `orchestrator.settings.py` module and can be used to configure the application.
35
+ The `EXPOSE_SETTINGS` and `EXPOSE_OAUTH_SETTINGS` flags are used to control whether the settings should be exposed via
36
+ the `api/settings/overview` endpoint, the result looks like this:
37
+
38
+ ```json
39
+ [
40
+ {
41
+ "name": "app_settings",
42
+ "variables": [
43
+ {
44
+ "env_name": "TESTING",
45
+ "env_value": false
46
+ },
47
+ {
48
+ "env_name": "SESSION_SECRET",
49
+ "env_value": "**********"
50
+ },
51
+ {
52
+ "env_name": "CORS_ORIGINS",
53
+ "env_value": "*"
54
+ }
55
+ ]
56
+ }
57
+ ]
58
+ ```
59
+
60
+ The `app_settings` in the example above is a name of the settings class that is registered to be exposed.
61
+
62
+ ## Exposing your settings
63
+
64
+ In order to expose your settings, you need to register them using the `expose_settings()` function. This function takes
65
+ two arguments: the name of the settings class and the instance of the settings class.
66
+
67
+ ```python
68
+ from orchestrator.settings import expose_settings, BaseSettings
69
+
70
+
71
+ class MySettings(BaseSettings):
72
+ debug: bool = True
73
+
74
+
75
+ my_settings = MySettings()
76
+
77
+ expose_settings("my_settings", my_settings)
78
+ ```
79
+
80
+ ## Masking Secrets
81
+
82
+ The following rules apply when exposing settings:
83
+
84
+ ### Rules for Masking Secrets
85
+
86
+ - Keys containing `"password"` or `"secret"` in their names are masked.
87
+ - `SecretStr` from `from pydantic import SecretStr` are masked.
88
+ - `SecretStr` from `from orchestrator.utils.expose_settings import SecretStr` are masked.
89
+ - `PostgresDsn` from `from pydantic import PostgresDsn` are masked.
@@ -269,6 +269,323 @@ app.register_authorization(authorization_instance)
269
269
  app.register_graphql_authorization(graphql_authorization_instance)
270
270
  ```
271
271
 
272
+ ## Authorization and Workflows
273
+
274
+ !!! Warning
275
+ Role-based access control for workflows is currently in beta.
276
+ Initial support has been added to the backend, but the feature is not fully communicated through the UI yet.
277
+
278
+ Certain `orchestrator-core` decorators accept authorization callbacks of type `type Authorizer = Callable[OIDCUserModel, bool]`, which return True when the input user is authorized, otherwise False.
279
+
280
+ A table (below) is available for comparing possible configuration states with the policy that will be enforced.
281
+
282
+ ### `@workflow`
283
+ The `@workflow` decorator accepts the optional parameters `auth: Authorizer` and `retry_auth: Authorizer`.
284
+
285
+ `auth` will be used to determine the authorization of a user to start the workflow.
286
+ If `auth` is omitted, the workflow is authorized for any logged in user.
287
+
288
+ `retry_auth` will be used to determine the authorization of a user to start, resume, or retry the workflow from a failed step.
289
+ If `retry_auth` is omitted, then `auth` is used to authorize.
290
+
291
+ (This does not percolate past an `@inputstep` that specifies `resume_auth` or `retry_auth`.)
292
+
293
+ Examples:
294
+
295
+ * `auth=None, retry_auth=None`: any user may run the workflow.
296
+ * `auth=A, retry_auth=B`: users authorized by A may start the workflow. Users authorized by B may retry on failure.
297
+ * Example: starting the workflow is a decision that must be made by a product owner. Retrying can be made by an on-call member of the operations team.
298
+ * `auth=None, retry_auth=B`: any user can start the workflow, but only users authorized by B may retry on failure.
299
+
300
+ ### `@inputstep`
301
+ The `@inputstep` decorator accepts the optional parameters `resume_auth: Authorizer` and `retry_auth: Authorizer`.
302
+
303
+ `resume_auth` will be used to determine the authorization of a user to resume the workflow when suspended at this inputstep.
304
+ If `resume_auth` is omitted, then the workflow's `auth` will be used.
305
+
306
+ `retry_auth` will be used to determine the authorization of a user to retry the workflow from a failed step following the inputstep.
307
+ If `retry_auth` is omitted, then `resume_auth` is used to authorize retries.
308
+ If `resume_auth` is also omitted, then the workflow’s `retry_auth` is checked, and then the workflow’s `auth`.
309
+
310
+ In summary:
311
+
312
+ * A workflow establishes `auth` for starting, resuming, or retrying.
313
+ * The workflow can also establish `retry_auth`, which will override `auth` for retries.
314
+ * An inputstep can override the existing `auth` with `resume_auth` and the existing `retry_auth` with its own `retry_auth`.
315
+ * Subsequent inputsteps can do the same, but any None will not overwrite a previous not-None.
316
+
317
+ ### Policy resolutions
318
+ Below is an exhaustive table of how policies (implemented as callbacks `A`, `B`, `C`, and `D`)
319
+ are prioritized in different workflow and inputstep configurations.
320
+
321
+ <table>
322
+ <thead>
323
+ <tr>
324
+ <th colspan=4>Configuration</th>
325
+ <th colspan=4>Enforcement</th>
326
+ <th>Notes</th>
327
+ </tr>
328
+ <tr>
329
+ <th colspan=2>@workflow</th>
330
+ <th colspan=2>@inputstep</th>
331
+ <th colspan=2>before @inputstep</th>
332
+ <th colspan=2>@inputstep and after</th>
333
+ <th></th>
334
+ </tr>
335
+ <tr>
336
+ <th>auth</th>
337
+ <th>retry_auth</th>
338
+ <th>resume_auth</th>
339
+ <th>retry_auth</th>
340
+ <th>start</th>
341
+ <th>retry</th>
342
+ <th>resume</th>
343
+ <th>retry</th>
344
+ <th></th>
345
+ </tr>
346
+ </thead>
347
+ <tbody>
348
+ <tr>
349
+ <td>None</td>
350
+ <td>None</td>
351
+ <td>None</td>
352
+ <td>None</td>
353
+ <td>Anyone</td>
354
+ <td>Anyone</td>
355
+ <td>Anyone</td>
356
+ <td>Anyone</td>
357
+ <td>Default</td>
358
+ </tr>
359
+ <tr>
360
+ <td>A</td>
361
+ <td>None</td>
362
+ <td>None</td>
363
+ <td>None</td>
364
+ <td>A</td>
365
+ <td>A</td>
366
+ <td>A</td>
367
+ <td>A</td>
368
+ <td>Broadly restrict the workflow to a specific authorizer.</td>
369
+ </tr>
370
+ <tr>
371
+ <td>None</td>
372
+ <td>B</td>
373
+ <td>None</td>
374
+ <td>None</td>
375
+ <td>Anyone</td>
376
+ <td>B</td>
377
+ <td>Anyone</td>
378
+ <td>B</td>
379
+ <td>original retry_auth is maintained if nothing supercedes it. Weird choice, but this provides a "we specifically want to limit retries" route.</td>
380
+ </tr>
381
+ <tr>
382
+ <td>A</td>
383
+ <td>B</td>
384
+ <td>None</td>
385
+ <td>None</td>
386
+ <td>A</td>
387
+ <td>B</td>
388
+ <td>A</td>
389
+ <td>B</td>
390
+ <td>Workflow-level auth and retry. Allows A or B to be tighter or distinct, as needed.</td>
391
+ </tr>
392
+ <tr>
393
+ <td>None</td>
394
+ <td>None</td>
395
+ <td>C</td>
396
+ <td>None</td>
397
+ <td>Anyone</td>
398
+ <td>Anyone</td>
399
+ <td>C</td>
400
+ <td>C</td>
401
+ <td>Anyone can start this workflow, but only C can continue it.</td>
402
+ </tr>
403
+ <tr>
404
+ <td>A</td>
405
+ <td>None</td>
406
+ <td>C</td>
407
+ <td>None</td>
408
+ <td>A</td>
409
+ <td>A</td>
410
+ <td>C</td>
411
+ <td>C</td>
412
+ <td>Subsequent retries use C, not A! Override with retry_auth=A if desired.</td>
413
+ </tr>
414
+ <tr>
415
+ <td>None</td>
416
+ <td>B</td>
417
+ <td>C</td>
418
+ <td>None</td>
419
+ <td>Anyone</td>
420
+ <td>B</td>
421
+ <td>C</td>
422
+ <td>C</td>
423
+ <td>Subsequent retries use C, not B! Override with retry_auth=B if desired.</td>
424
+ </tr>
425
+ <tr>
426
+ <td>A</td>
427
+ <td>B</td>
428
+ <td>C</td>
429
+ <td>None</td>
430
+ <td>A</td>
431
+ <td>B</td>
432
+ <td>C</td>
433
+ <td>C</td>
434
+ <td>Simple override initial settings with inputstep resume_auth.</td>
435
+ </tr>
436
+ <tr>
437
+ <td>None</td>
438
+ <td>None</td>
439
+ <td>None</td>
440
+ <td>D</td>
441
+ <td>Anyone</td>
442
+ <td>Anyone</td>
443
+ <td>Anyone</td>
444
+ <td>D</td>
445
+ <td>Anyone can start or retry or resume, but limit retries to D once inputstep is reached.</td>
446
+ </tr>
447
+ <tr>
448
+ <td>A</td>
449
+ <td>None</td>
450
+ <td>None</td>
451
+ <td>D</td>
452
+ <td>A</td>
453
+ <td>A</td>
454
+ <td>A</td>
455
+ <td>D</td>
456
+ <td>A can start or retry or resume, but limit retries to D once inputstep is reached.</td>
457
+ </tr>
458
+ <tr>
459
+ <td>None</td>
460
+ <td>B</td>
461
+ <td>None</td>
462
+ <td>D</td>
463
+ <td>Anyone</td>
464
+ <td>B</td>
465
+ <td>Anyone</td>
466
+ <td>D</td>
467
+ <td>Anyone can start or resume, but only B can retry. After inputstep, only D can retry.</td>
468
+ </tr>
469
+ <tr>
470
+ <td>A</td>
471
+ <td>B</td>
472
+ <td>None</td>
473
+ <td>D</td>
474
+ <td>A</td>
475
+ <td>B</td>
476
+ <td>A</td>
477
+ <td>D</td>
478
+ <td>A can start or resume, but only B can retry. After inputstep, only D can retry.</td>
479
+ </tr>
480
+ <tr>
481
+ <td>None</td>
482
+ <td>None</td>
483
+ <td>C</td>
484
+ <td>D</td>
485
+ <td>Anyone</td>
486
+ <td>Anyone</td>
487
+ <td>C</td>
488
+ <td>D</td>
489
+ <td>Anyone can start, but only C can resume and only D can retry after the resume.</td>
490
+ </tr>
491
+ <tr>
492
+ <td>A</td>
493
+ <td>None</td>
494
+ <td>C</td>
495
+ <td>D</td>
496
+ <td>A</td>
497
+ <td>A</td>
498
+ <td>C</td>
499
+ <td>D</td>
500
+ <td></td>
501
+ </tr>
502
+ <tr>
503
+ <td>None</td>
504
+ <td>B</td>
505
+ <td>C</td>
506
+ <td>D</td>
507
+ <td>Anyone</td>
508
+ <td>B</td>
509
+ <td>C</td>
510
+ <td>D</td>
511
+ <td></td>
512
+ </tr>
513
+ <tr>
514
+ <td>A</td>
515
+ <td>B</td>
516
+ <td>C</td>
517
+ <td>D</td>
518
+ <td>A</td>
519
+ <td>B</td>
520
+ <td>C</td>
521
+ <td>D</td>
522
+ <td></td>
523
+ </tr>
524
+ </tbody>
525
+ </table>
526
+
527
+ ### Examples
528
+ Assume we have the following function that can be used to create callbacks:
529
+
530
+ ```python
531
+ def allow_roles(*roles) -> Callable[OIDCUserModel|None, bool]:
532
+ def f(user: OIDCUserModel) -> bool:
533
+ if is_admin(user): # Relative to your authorization provider
534
+ return True
535
+ for role in roles:
536
+ if has_role(user, role): # Relative to your authorization provider
537
+ return True
538
+ return False
539
+
540
+ return f
541
+ ```
542
+
543
+ We can now construct a variety of authorization policies.
544
+
545
+ #### Rubber Stamp Model
546
+ !!!example
547
+ Suppose we have a workflow W that needs to pause on inputstep `approval` for approval from finance. Ops (and only ops) should be able to start the workflow and retry any failed steps. Finance (and only finance) should be able to resume at the input step.
548
+
549
+ ```python
550
+ @workflow("An expensive workflow", auth=allow_roles("ops"))
551
+ def W(...):
552
+ return begin >> A >> ... >> notify_finance >> approval >> ... >> Z
553
+
554
+ @inputstep("Approval", resume_auth=allow_roles("finance"), retry_auth=allow_roles("ops"))
555
+ def approval(...):
556
+ ...
557
+ ```
558
+
559
+
560
+ #### Hand-off Model
561
+ !!!example
562
+ Suppose we have two teams, Dev and Platform, and a long workflow W that should be handed off to Platform at step `approval`.
563
+
564
+ Dev can start the workflow and retry steps prior to S. Once step S is reached, Platform (and only Platform) can resume the workflow and retry later failed steps.
565
+
566
+ ```python
567
+ @workflow("An expensive workflow", auth=allow_roles("dev"))
568
+ def W(...):
569
+ return begin >> A >> ... >> notify_platform >> handoff >> ... >> Z
570
+
571
+ @inputstep("Hand-off", resume_auth=allow_roles("platform"))
572
+ def handoff(...):
573
+ ...
574
+ ```
575
+ Notice that default behaviors let us ignore `retry_auth` arguments in both decorators.
576
+
577
+ #### Restricted Retries Model
578
+ !!!example
579
+ Suppose we have a workflow that anyone can run, but with steps that should only be retried by users with certain backend access.
580
+
581
+ ```python
582
+ @workflow("A workflow for any user", retry_auth=allow_roles("admin"))
583
+ def W(...):
584
+ return begin >> A >> ... >> S >> ... >> Z
585
+ ```
586
+
587
+ Note that we could specify `auth=allow_roles("user")` if helpful, or we can omit `auth` to fail open to any logged in user.
588
+
272
589
  [1]: https://github.com/workfloworchestrator/example-orchestrator-ui
273
590
  [2]: https://github.com/workfloworchestrator/example-orchestrator
274
591
  [3]: https://next-auth.js.org/
@@ -35,7 +35,6 @@ Interact with the application database. By default, does nothing, specify `main.
35
35
  - migrate_tasks
36
36
  - revision
37
37
  - upgrade
38
-
39
38
  heading_level: 3
40
39
 
41
40
  ### migrate-domain-models
@@ -182,6 +182,7 @@ nav:
182
182
  - App.py: reference-docs/app/app.md
183
183
  - Python Version: reference-docs/python.md
184
184
  - Scaling: reference-docs/app/scaling.md
185
+ - Settings: reference-docs/app/settings_overview.md
185
186
  # - Tasks: reference-docs/tasks.md
186
187
  # - Tests: reference-docs/tests.md
187
188
  - Workflows:
@@ -13,7 +13,7 @@
13
13
 
14
14
  """This is the orchestrator workflow engine."""
15
15
 
16
- __version__ = "4.0.4"
16
+ __version__ = "4.1.0"
17
17
 
18
18
  from orchestrator.app import OrchestratorCore
19
19
  from orchestrator.settings import app_settings
@@ -25,7 +25,7 @@ from fastapi.param_functions import Body, Depends, Header
25
25
  from fastapi.routing import APIRouter
26
26
  from fastapi.websockets import WebSocket
27
27
  from fastapi_etag.dependency import CacheHit
28
- from more_itertools import chunked
28
+ from more_itertools import chunked, last
29
29
  from sentry_sdk.tracing import trace
30
30
  from sqlalchemy import CompoundSelect, Select, select
31
31
  from sqlalchemy.orm import defer, joinedload
@@ -56,6 +56,7 @@ from orchestrator.services.processes import (
56
56
  )
57
57
  from orchestrator.services.settings import get_engine_settings
58
58
  from orchestrator.settings import app_settings
59
+ from orchestrator.utils.auth import Authorizer
59
60
  from orchestrator.utils.enrich_process import enrich_process
60
61
  from orchestrator.websocket import (
61
62
  WS_CHANNELS,
@@ -63,7 +64,7 @@ from orchestrator.websocket import (
63
64
  broadcast_process_update_to_websocket,
64
65
  websocket_manager,
65
66
  )
66
- from orchestrator.workflow import ProcessStatus
67
+ from orchestrator.workflow import ProcessStat, ProcessStatus, StepList, Workflow
67
68
  from pydantic_forms.types import JSON, State
68
69
 
69
70
  router = APIRouter()
@@ -86,6 +87,48 @@ def check_global_lock() -> None:
86
87
  )
87
88
 
88
89
 
90
+ def get_current_steps(pstat: ProcessStat) -> StepList:
91
+ """Extract past and current steps from the ProcessStat."""
92
+ remaining_steps = pstat.log
93
+ past_steps = pstat.workflow.steps[: -len(remaining_steps)]
94
+ return StepList(past_steps + [pstat.log[0]])
95
+
96
+
97
+ def get_auth_callbacks(steps: StepList, workflow: Workflow) -> tuple[Authorizer | None, Authorizer | None]:
98
+ """Iterate over workflow and prior steps to determine correct authorization callbacks for the current step.
99
+
100
+ It's safest to always iterate through the steps. We could track these callbacks statefully
101
+ as we progress through the workflow, but if we fail a step and the system restarts, the previous
102
+ callbacks will be lost if they're only available in the process state.
103
+
104
+ Priority:
105
+ - RESUME callback is explicit RESUME callback, else previous START/RESUME callback
106
+ - RETRY callback is explicit RETRY, else explicit RESUME, else previous RETRY
107
+ """
108
+ # Default to workflow start callbacks
109
+ auth_resume = workflow.authorize_callback
110
+ # auth_retry defaults to the workflow start callback if not otherwise specified.
111
+ # A workflow SHOULD have both callbacks set to not-None. This enforces the correct default regardless.
112
+ auth_retry = workflow.retry_auth_callback or auth_resume # type: ignore[unreachable, truthy-function]
113
+
114
+ # Choose the most recently established value for resume.
115
+ auth_resume = last(filter(None, (step.resume_auth_callback for step in steps)), auth_resume)
116
+ # Choose the most recently established value for retry, unless there is a more recent value for resume.
117
+ auth_retry = last(
118
+ filter(None, (step.retry_auth_callback or step.resume_auth_callback for step in steps)), auth_retry
119
+ )
120
+ return auth_resume, auth_retry
121
+
122
+
123
+ def can_be_resumed(status: ProcessStatus) -> bool:
124
+ return status in (
125
+ ProcessStatus.SUSPENDED, # Can be resumed
126
+ ProcessStatus.FAILED, # Can be retried
127
+ ProcessStatus.API_UNAVAILABLE, # subtype of FAILED
128
+ ProcessStatus.INCONSISTENT_DATA, # subtype of FAILED
129
+ )
130
+
131
+
89
132
  def resolve_user_name(
90
133
  *,
91
134
  reporter: Reporter | None,
@@ -150,18 +193,25 @@ def new_process(
150
193
  dependencies=[Depends(check_global_lock, use_cache=False)],
151
194
  )
152
195
  def resume_process_endpoint(
153
- process_id: UUID, request: Request, json_data: JSON = Body(...), user: str = Depends(user_name)
196
+ process_id: UUID,
197
+ request: Request,
198
+ json_data: JSON = Body(...),
199
+ user: str = Depends(user_name),
200
+ user_model: OIDCUserModel | None = Depends(authenticate),
154
201
  ) -> None:
155
202
  process = _get_process(process_id)
156
203
 
157
- if process.last_status == ProcessStatus.COMPLETED:
158
- raise_status(HTTPStatus.CONFLICT, "Resuming a completed workflow is not possible")
159
-
160
- if process.last_status == ProcessStatus.RUNNING:
161
- raise_status(HTTPStatus.CONFLICT, "Resuming a running workflow is not possible")
162
-
163
- if process.last_status == ProcessStatus.RESUMED:
164
- raise_status(HTTPStatus.CONFLICT, "Resuming a resumed workflow is not possible")
204
+ if not can_be_resumed(process.last_status):
205
+ raise_status(HTTPStatus.CONFLICT, f"Resuming a {process.last_status.lower()} workflow is not possible")
206
+
207
+ pstat = load_process(process)
208
+ auth_resume, auth_retry = get_auth_callbacks(get_current_steps(pstat), pstat.workflow)
209
+ if process.last_status == ProcessStatus.SUSPENDED:
210
+ if auth_resume is not None and not auth_resume(user_model):
211
+ raise_status(HTTPStatus.FORBIDDEN, "User is not authorized to resume step")
212
+ elif process.last_status == ProcessStatus.FAILED:
213
+ if auth_retry is not None and not auth_retry(user_model):
214
+ raise_status(HTTPStatus.FORBIDDEN, "User is not authorized to retry step")
165
215
 
166
216
  broadcast_invalidate_status_counts()
167
217
  broadcast_func = api_broadcast_process_data(request)
@@ -22,11 +22,17 @@ from sqlalchemy.exc import SQLAlchemyError
22
22
  from oauth2_lib.fastapi import OIDCUserModel
23
23
  from orchestrator.api.error_handling import raise_status
24
24
  from orchestrator.db import EngineSettingsTable
25
- from orchestrator.schemas import EngineSettingsBaseSchema, EngineSettingsSchema, WorkerStatus
25
+ from orchestrator.schemas import (
26
+ EngineSettingsBaseSchema,
27
+ EngineSettingsSchema,
28
+ WorkerStatus,
29
+ )
26
30
  from orchestrator.security import authenticate
27
31
  from orchestrator.services import processes, settings
28
32
  from orchestrator.services.settings import generate_engine_global_status
33
+ from orchestrator.services.settings_env_variables import get_all_exposed_settings
29
34
  from orchestrator.settings import ExecutorType, app_settings
35
+ from orchestrator.utils.expose_settings import SettingsExposedSchema
30
36
  from orchestrator.utils.json import json_dumps
31
37
  from orchestrator.utils.redis import delete_keys_matching_pattern
32
38
  from orchestrator.utils.redis_client import create_redis_asyncio_client
@@ -169,3 +175,8 @@ def generate_engine_status_response(
169
175
  result = EngineSettingsSchema.model_validate(engine_settings)
170
176
  result.global_status = generate_engine_global_status(engine_settings)
171
177
  return result
178
+
179
+
180
+ @router.get("/overview", response_model=list[SettingsExposedSchema])
181
+ def get_exposed_settings() -> list[SettingsExposedSchema]:
182
+ return get_all_exposed_settings()
@@ -19,6 +19,7 @@ import structlog
19
19
  from celery.result import AsyncResult
20
20
  from kombu.exceptions import ConnectionError, OperationalError
21
21
 
22
+ from oauth2_lib.fastapi import OIDCUserModel
22
23
  from orchestrator import app_settings
23
24
  from orchestrator.api.error_handling import raise_status
24
25
  from orchestrator.db import ProcessTable, db
@@ -42,7 +43,11 @@ def _block_when_testing(task_result: AsyncResult) -> None:
42
43
 
43
44
 
44
45
  def _celery_start_process(
45
- workflow_key: str, user_inputs: list[State] | None, user: str = SYSTEM_USER, **kwargs: Any
46
+ workflow_key: str,
47
+ user_inputs: list[State] | None,
48
+ user: str = SYSTEM_USER,
49
+ user_model: OIDCUserModel | None = None,
50
+ **kwargs: Any,
46
51
  ) -> UUID:
47
52
  """Client side call of Celery."""
48
53
  from orchestrator.services.tasks import NEW_TASK, NEW_WORKFLOW, get_celery_task
@@ -57,7 +62,7 @@ def _celery_start_process(
57
62
 
58
63
  task_name = NEW_TASK if wf_table.is_task else NEW_WORKFLOW
59
64
  trigger_task = get_celery_task(task_name)
60
- pstat = create_process(workflow_key, user_inputs, user)
65
+ pstat = create_process(workflow_key, user_inputs=user_inputs, user=user, user_model=user_model)
61
66
  try:
62
67
  result = trigger_task.delay(pstat.process_id, workflow_key, user)
63
68
  _block_when_testing(result)