orchestrator-core 2.9.2rc3__tar.gz → 2.10.0rc2__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 (640) hide show
  1. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.bumpversion.cfg +1 -1
  2. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/workflows/build-push-container.yml +0 -2
  3. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/workflows/run-linting-tests.yml +0 -7
  4. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.pre-commit-config.yaml +3 -3
  5. orchestrator_core-2.10.0rc2/Dockerfile +24 -0
  6. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/PKG-INFO +7 -7
  7. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/cli.md +2 -7
  8. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/graphql.md +7 -0
  9. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/search.md +2 -0
  10. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/__init__.py +1 -1
  11. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/api_v1/api.py +24 -3
  12. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/api_v1/endpoints/processes.py +1 -0
  13. orchestrator_core-2.10.0rc2/orchestrator/api/api_v1/endpoints/product_blocks.py +56 -0
  14. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/api_v1/endpoints/products.py +28 -1
  15. orchestrator_core-2.10.0rc2/orchestrator/api/api_v1/endpoints/resource_types.py +56 -0
  16. orchestrator_core-2.10.0rc2/orchestrator/api/api_v1/endpoints/workflows.py +54 -0
  17. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/app.py +3 -2
  18. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/database.py +78 -0
  19. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/generator/product_block.py +1 -9
  20. orchestrator_core-2.10.0rc2/orchestrator/cli/migrate_tasks.py +188 -0
  21. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/filters/search_filters/inferred_filter.py +2 -1
  22. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/resolvers/__init__.py +2 -0
  23. orchestrator_core-2.10.0rc2/orchestrator/graphql/resolvers/version.py +25 -0
  24. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schema.py +3 -0
  25. orchestrator_core-2.10.0rc2/orchestrator/graphql/schemas/version.py +6 -0
  26. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/helpers.py +31 -1
  27. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schemas/product.py +4 -0
  28. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schemas/product_block.py +4 -0
  29. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schemas/resource_type.py +4 -0
  30. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schemas/workflow.py +4 -0
  31. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/settings.py +2 -0
  32. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/search_query.py +1 -21
  33. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/state.py +6 -5
  34. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/pyproject.toml +6 -6
  35. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/api/test_processes_ws.py +5 -2
  36. orchestrator_core-2.10.0rc2/test/unit_tests/api/test_product_blocks.py +58 -0
  37. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/api/test_products.py +30 -0
  38. orchestrator_core-2.10.0rc2/test/unit_tests/api/test_resource_types.py +56 -0
  39. orchestrator_core-2.10.0rc2/test/unit_tests/api/test_workflows.py +57 -0
  40. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/products/product_blocks/example4sub.py +1 -1
  41. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/test_processes.py +5 -3
  42. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/test_product_blocks.py +7 -2
  43. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/test_resource_types.py +14 -8
  44. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/test_subscriptions.py +9 -5
  45. orchestrator_core-2.10.0rc2/test/unit_tests/graphql/test_version.py +21 -0
  46. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/test_workflows.py +10 -4
  47. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/test_db.py +1 -1
  48. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/test_workflow.py +27 -1
  49. orchestrator_core-2.9.2rc3/Dockerfile +0 -17
  50. orchestrator_core-2.9.2rc3/test/unit_tests/api/test_product_blocks.py +0 -0
  51. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.coveragerc +0 -0
  52. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  53. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  54. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/dependabot.yml +0 -0
  55. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/workflows/README.md +0 -0
  56. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/workflows/changelog.yml +0 -0
  57. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/workflows/codeql-analysis.yml +0 -0
  58. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/workflows/gh-pages.yml +0 -0
  59. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/workflows/issues.yml +0 -0
  60. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/workflows/publish-package.yml +0 -0
  61. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/workflows/run-unit-tests.yml +0 -0
  62. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.github/workflows/scheduled-build.yml +0 -0
  63. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.gitignore +0 -0
  64. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/.stignore +0 -0
  65. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/CHANGELOG.md +0 -0
  66. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/LICENSE +0 -0
  67. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/NOTICE +0 -0
  68. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/README.md +0 -0
  69. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/codecov.yml +0 -0
  70. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/application/domainmodels.md +0 -0
  71. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/application/forms-frontend.md +0 -0
  72. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/application/tasks.md +0 -0
  73. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/application/workflow.md +0 -0
  74. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/framework.md +0 -0
  75. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/img/base-orchestrator-setup.png +0 -0
  76. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/img/custom-orchestrator-setup.png +0 -0
  77. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/orchestration/img/Custom-orchestrator-ui-using-override.png +0 -0
  78. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/orchestration/img/Standard-orchestrator-ui.png +0 -0
  79. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/orchestration/orchestrator-ui.md +0 -0
  80. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/orchestration/philosophy.md +0 -0
  81. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/backfilling.md +0 -0
  82. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/context.md +0 -0
  83. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/imports.md +0 -0
  84. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/introduction.md +0 -0
  85. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/ip_static.md +0 -0
  86. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/ip_static.png +0 -0
  87. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/l2_point_to_point.md +0 -0
  88. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/l2_point_to_point.png +0 -0
  89. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/l2_vpn.md +0 -0
  90. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/l2_vpn.png +0 -0
  91. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/modelling.md +0 -0
  92. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/node.md +0 -0
  93. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/node.png +0 -0
  94. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/port.md +0 -0
  95. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/port.png +0 -0
  96. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/product_block_graph.md +0 -0
  97. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/product_block_graph.png +0 -0
  98. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/standards.md +0 -0
  99. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/product_modelling/terminology.md +0 -0
  100. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/architecture/tldr.md +0 -0
  101. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/contributing/development.md +0 -0
  102. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/contributing/guidelines.md +0 -0
  103. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/contributing/testing.md +0 -0
  104. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/css/custom.css +0 -0
  105. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/css/style.css +0 -0
  106. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/css/termynal.css +0 -0
  107. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/getting-started/base.md +0 -0
  108. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/getting-started/docker.md +0 -0
  109. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/getting-started/orchestration-ui.md +0 -0
  110. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/getting-started/prepare-source-folder.md +0 -0
  111. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/getting-started/versions.md +0 -0
  112. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/img/WFO-Emblem-White.png +0 -0
  113. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/img/favicon.ico +0 -0
  114. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/index.md +0 -0
  115. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/js/custom.js +0 -0
  116. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/js/termynal.js +0 -0
  117. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/migration-guide/2.0.md +0 -0
  118. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/api.md +0 -0
  119. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/app/app.md +0 -0
  120. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/app/scaling.md +0 -0
  121. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/auth-backend-and-frontend.md +0 -0
  122. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/database.md +0 -0
  123. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/domain_models/generator.md +0 -0
  124. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/domain_models/instantiating.md +0 -0
  125. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/domain_models/model_attributes.md +0 -0
  126. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/domain_models/overview.md +0 -0
  127. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/domain_models/product_blocks.md +0 -0
  128. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/domain_models/product_types.md +0 -0
  129. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/domain_models/properties.md +0 -0
  130. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/domain_models/pydantic_hooks.md +0 -0
  131. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/domain_models/type_casting.md +0 -0
  132. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/domain_models/union_types.md +0 -0
  133. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/domain_models/validation.md +0 -0
  134. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/forms.md +0 -0
  135. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/python.md +0 -0
  136. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/search_overview.png +0 -0
  137. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/serialization.md +0 -0
  138. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/tasks.md +0 -0
  139. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/tests.md +0 -0
  140. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/tldr.md +0 -0
  141. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/websockets.md +0 -0
  142. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/workflows/callbacks.md +0 -0
  143. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/workflows/workflow-lifecycles.md +0 -0
  144. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/reference-docs/workflows/workflow-steps.md +0 -0
  145. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/bootstrap.md +0 -0
  146. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/create-your-own.md +0 -0
  147. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/docker-installation.md +0 -0
  148. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/domain-models.md +0 -0
  149. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/execute-workflows.md +0 -0
  150. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/generator.md +0 -0
  151. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/l2_point_to_point.png +0 -0
  152. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/node-create.md +0 -0
  153. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/node-modify.md +0 -0
  154. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/node-terminate.md +0 -0
  155. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/node-validate.md +0 -0
  156. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/overview.md +0 -0
  157. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/scenario.md +0 -0
  158. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/workflow-basics.md +0 -0
  159. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/advanced/workflow-introduction.md +0 -0
  160. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/create-user-group.md +0 -0
  161. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/create-user.md +0 -0
  162. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/database-migration.md +0 -0
  163. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/debian.md +0 -0
  164. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/docker.md +0 -0
  165. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/domain-models.md +0 -0
  166. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/explore.md +0 -0
  167. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/input-forms.md +0 -0
  168. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/macos.md +0 -0
  169. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/modify-user-group.md +0 -0
  170. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/modify-user.md +0 -0
  171. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/register-workflows.md +0 -0
  172. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/start-applications.md +0 -0
  173. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/terminate-user-group.md +0 -0
  174. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/terminate-user.md +0 -0
  175. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/workflow-introduction.md +0 -0
  176. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/beginner/workshop-overview.md +0 -0
  177. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/images/Software-topology.drawio.png +0 -0
  178. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/images/clab_topology.png +0 -0
  179. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/images/metadata_products.png +0 -0
  180. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/images/netbox_devices_active.png +0 -0
  181. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/images/subscriptions.png +0 -0
  182. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/docs/workshops/images/topology.drawio.png +0 -0
  183. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/includes/abbreviations.md +0 -0
  184. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/mkdocs.yml +0 -0
  185. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/mutmut_config.py +0 -0
  186. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/nitpick-style.toml +0 -0
  187. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/__init__.py +0 -0
  188. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/api_v1/__init__.py +0 -0
  189. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/api_v1/endpoints/__init__.py +0 -0
  190. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/api_v1/endpoints/health.py +0 -0
  191. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/api_v1/endpoints/settings.py +0 -0
  192. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py +0 -0
  193. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/api_v1/endpoints/subscriptions.py +0 -0
  194. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/api_v1/endpoints/translations.py +0 -0
  195. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/api_v1/endpoints/user.py +0 -0
  196. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/api_v1/endpoints/ws.py +0 -0
  197. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/error_handling.py +0 -0
  198. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/helpers.py +0 -0
  199. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/api/models.py +0 -0
  200. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/__init__.py +0 -0
  201. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/domain_gen_helpers/__init__.py +0 -0
  202. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py +0 -0
  203. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/domain_gen_helpers/helpers.py +0 -0
  204. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/domain_gen_helpers/product_block_helpers.py +0 -0
  205. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/domain_gen_helpers/product_helpers.py +0 -0
  206. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/domain_gen_helpers/resource_type_helpers.py +0 -0
  207. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/domain_gen_helpers/types.py +0 -0
  208. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generate.py +0 -0
  209. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/__init__.py +0 -0
  210. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/custom_templates/README +0 -0
  211. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/custom_templates/additional_create_imports.j2 +0 -0
  212. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/custom_templates/additional_create_input_fields.j2 +0 -0
  213. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/custom_templates/additional_create_steps.j2 +0 -0
  214. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/custom_templates/additional_modify_imports.j2 +0 -0
  215. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/custom_templates/additional_modify_input_fields.j2 +0 -0
  216. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/custom_templates/additional_modify_steps.j2 +0 -0
  217. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/custom_templates/additional_terminate_imports.j2 +0 -0
  218. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/custom_templates/additional_terminate_input_fields.j2 +0 -0
  219. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/custom_templates/additional_terminate_steps.j2 +0 -0
  220. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/generator/__init__.py +0 -0
  221. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/generator/enums.py +0 -0
  222. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/generator/helpers.py +0 -0
  223. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/generator/migration.py +0 -0
  224. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/generator/product.py +0 -0
  225. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/generator/settings.py +0 -0
  226. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/generator/translations.py +0 -0
  227. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/generator/unittest.py +0 -0
  228. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/generator/validations.py +0 -0
  229. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/generator/workflow.py +0 -0
  230. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/products/workshop/circuit.yaml +0 -0
  231. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/products/workshop/node.yaml +0 -0
  232. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/products/workshop/user.yaml +0 -0
  233. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/products/workshop/user_group.yaml +0 -0
  234. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/additional_create_imports.j2 +0 -0
  235. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/additional_create_steps.j2 +0 -0
  236. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/additional_modify_imports.j2 +0 -0
  237. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/additional_modify_steps.j2 +0 -0
  238. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/additional_terminate_steps.j2 +0 -0
  239. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/constrained_int_definitions.j2 +0 -0
  240. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/create_data_head.j2 +0 -0
  241. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/create_product.j2 +0 -0
  242. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/enums.j2 +0 -0
  243. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/lazy_workflow_instance.j2 +0 -0
  244. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/list_definitions.j2 +0 -0
  245. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/macros.j2 +0 -0
  246. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/modify_product.j2 +0 -0
  247. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/new_product_migration.j2 +0 -0
  248. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/product.j2 +0 -0
  249. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/product_block.j2 +0 -0
  250. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/shared_forms.j2 +0 -0
  251. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/shared_workflows.j2 +0 -0
  252. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/subscription_model_registry.j2 +0 -0
  253. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/terminate_product.j2 +0 -0
  254. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/test_create_workflow.j2 +0 -0
  255. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/test_modify_workflow.j2 +0 -0
  256. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/test_product_type.j2 +0 -0
  257. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/test_terminate_workflow.j2 +0 -0
  258. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/test_validate_workflow.j2 +0 -0
  259. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/generator/templates/validate_product.j2 +0 -0
  260. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/helpers/__init__.py +0 -0
  261. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/helpers/input_helpers.py +0 -0
  262. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/helpers/print_helpers.py +0 -0
  263. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/main.py +0 -0
  264. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/migrate_domain_models.py +0 -0
  265. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/migrate_workflows.py +0 -0
  266. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/migration_helpers.py +0 -0
  267. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/cli/scheduler.py +0 -0
  268. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/config/__init__.py +0 -0
  269. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/config/assignee.py +0 -0
  270. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/__init__.py +0 -0
  271. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/database.py +0 -0
  272. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/filters/__init__.py +0 -0
  273. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/filters/filters.py +0 -0
  274. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/filters/process.py +0 -0
  275. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/filters/product.py +0 -0
  276. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/filters/product_block.py +0 -0
  277. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/filters/resource_type.py +0 -0
  278. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/filters/search_filters/__init__.py +0 -0
  279. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/filters/subscription.py +0 -0
  280. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/filters/workflow.py +0 -0
  281. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/helpers.py +0 -0
  282. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/listeners.py +0 -0
  283. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/loaders.py +0 -0
  284. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/models.py +0 -0
  285. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/range/__init__.py +0 -0
  286. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/range/range.py +0 -0
  287. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/sorting/__init__.py +0 -0
  288. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/sorting/process.py +0 -0
  289. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/sorting/product.py +0 -0
  290. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/sorting/product_block.py +0 -0
  291. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/sorting/resource_type.py +0 -0
  292. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/sorting/sorting.py +0 -0
  293. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/sorting/subscription.py +0 -0
  294. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/db/sorting/workflow.py +0 -0
  295. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/devtools/__init__.py +0 -0
  296. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/devtools/populator.py +0 -0
  297. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/devtools/scripts/__init__.py +0 -0
  298. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/devtools/scripts/migrate_20.py +0 -0
  299. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/distlock/__init__.py +0 -0
  300. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/distlock/distlock_manager.py +0 -0
  301. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/distlock/managers/__init__.py +0 -0
  302. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/distlock/managers/memory_distlock_manager.py +0 -0
  303. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/distlock/managers/redis_distlock_manager.py +0 -0
  304. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/domain/__init__.py +0 -0
  305. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/domain/base.py +0 -0
  306. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/domain/customer_description.py +0 -0
  307. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/domain/helpers.py +0 -0
  308. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/domain/lifecycle.py +0 -0
  309. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/exception_handlers.py +0 -0
  310. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/forms/__init__.py +0 -0
  311. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/forms/validators/__init__.py +0 -0
  312. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/forms/validators/customer_contact_list.py +0 -0
  313. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/forms/validators/customer_id.py +0 -0
  314. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/forms/validators/display_subscription.py +0 -0
  315. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/forms/validators/network_type_validators.py +0 -0
  316. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/forms/validators/product_id.py +0 -0
  317. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/__init__.py +0 -0
  318. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/autoregistration.py +0 -0
  319. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/extensions/__init__.py +0 -0
  320. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/extensions/stats.py +0 -0
  321. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/loaders/__init__.py +0 -0
  322. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/loaders/subscriptions.py +0 -0
  323. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/mutations/customer_description.py +0 -0
  324. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/mutations/start_process.py +0 -0
  325. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/pagination.py +0 -0
  326. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/resolvers/customer.py +0 -0
  327. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/resolvers/helpers.py +0 -0
  328. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/resolvers/process.py +0 -0
  329. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/resolvers/product.py +0 -0
  330. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/resolvers/product_block.py +0 -0
  331. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/resolvers/resource_type.py +0 -0
  332. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/resolvers/settings.py +0 -0
  333. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/resolvers/subscription.py +0 -0
  334. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/resolvers/workflow.py +0 -0
  335. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/__init__.py +0 -0
  336. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/customer.py +0 -0
  337. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/customer_description.py +0 -0
  338. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/errors.py +0 -0
  339. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/fixed_input.py +0 -0
  340. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/helpers.py +0 -0
  341. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/process.py +0 -0
  342. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/product.py +0 -0
  343. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/product_block.py +0 -0
  344. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/resource_type.py +0 -0
  345. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/settings.py +0 -0
  346. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/strawberry_pydantic_patch.py +0 -0
  347. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/subscription.py +0 -0
  348. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/schemas/workflow.py +0 -0
  349. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/types.py +0 -0
  350. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/utils/__init__.py +0 -0
  351. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/utils/create_resolver_error_handler.py +0 -0
  352. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/utils/get_query_loaders.py +0 -0
  353. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/utils/get_selected_fields.py +0 -0
  354. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/utils/get_selected_paths.py +0 -0
  355. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/utils/get_subscription_product_blocks.py +0 -0
  356. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/utils/is_query_detailed.py +0 -0
  357. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/utils/override_class.py +0 -0
  358. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/graphql/utils/to_graphql_result_page.py +0 -0
  359. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/log_config.py +0 -0
  360. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/README +0 -0
  361. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/alembic.ini +0 -0
  362. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/env.py +0 -0
  363. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/script.py.mako +0 -0
  364. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/templates/alembic.ini.j2 +0 -0
  365. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/templates/env.py.j2 +0 -0
  366. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/templates/helpers.py.j2 +0 -0
  367. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2020-10-19_3323bcb934e7_fix_tsv_triggers.py +0 -0
  368. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2020-10-19_a76b9185b334_add_generic_workflows_to_core.py +0 -0
  369. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2020-10-19_c112305b07d3_initial_schema_migration.py +0 -0
  370. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2021-04-06_3c8b9185c221_add_validate_products_task.py +0 -0
  371. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2021-07-01_6896a54e9483_add_product_block_relations.py +0 -0
  372. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2021-11-17_19cdd3ab86f6_fix_parse_websearch.py +0 -0
  373. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2022-02-16_bed6bc0b197a_rename_parent_and_child_block_relations.py +0 -0
  374. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2023-03-06_e05bb1967eff_add_subscriptions_search_view.py +0 -0
  375. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2023-05-25_b1970225392d_add_subscription_metadata_workflow.py +0 -0
  376. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.py +0 -0
  377. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.sql +0 -0
  378. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.py +0 -0
  379. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.sql +0 -0
  380. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.py +0 -0
  381. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.sql +0 -0
  382. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2023-12-06_048219045729_add_workflow_id_to_processes_table.py +0 -0
  383. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.py +0 -0
  384. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.sql +0 -0
  385. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2025-01-08_4c5859620539_add_version_column_to_subscription.py +0 -0
  386. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/migrations/versions/schema/2025-10-19_4fjdn13f83ga_add_validate_product_type_task.py +0 -0
  387. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/py.typed +0 -0
  388. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schedules/__init__.py +0 -0
  389. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schedules/resume_workflows.py +0 -0
  390. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schedules/scheduling.py +0 -0
  391. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schedules/task_vacuum.py +0 -0
  392. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schedules/validate_products.py +0 -0
  393. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schedules/validate_subscriptions.py +0 -0
  394. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schemas/__init__.py +0 -0
  395. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schemas/base.py +0 -0
  396. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schemas/engine_settings.py +0 -0
  397. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schemas/fixed_input.py +0 -0
  398. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schemas/problem_detail.py +0 -0
  399. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schemas/process.py +0 -0
  400. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schemas/subscription.py +0 -0
  401. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/schemas/subscription_descriptions.py +0 -0
  402. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/security.py +0 -0
  403. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/__init__.py +0 -0
  404. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/celery.py +0 -0
  405. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/fixed_inputs.py +0 -0
  406. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/process_broadcast_thread.py +0 -0
  407. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/processes.py +0 -0
  408. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/products.py +0 -0
  409. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/resource_types.py +0 -0
  410. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/settings.py +0 -0
  411. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/subscription_relations.py +0 -0
  412. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/subscriptions.py +0 -0
  413. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/tasks.py +0 -0
  414. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/translations.py +0 -0
  415. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/services/workflows.py +0 -0
  416. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/targets.py +0 -0
  417. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/types.py +0 -0
  418. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/__init__.py +0 -0
  419. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/crypt.py +0 -0
  420. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/datetime.py +0 -0
  421. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/deprecation_logger.py +0 -0
  422. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/docs.py +0 -0
  423. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/enrich_process.py +0 -0
  424. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/errors.py +0 -0
  425. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/fixed_inputs.py +0 -0
  426. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/functional.py +0 -0
  427. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/get_subscription_dict.py +0 -0
  428. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/get_updated_properties.py +0 -0
  429. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/helpers.py +0 -0
  430. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/json.py +0 -0
  431. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/redis.py +0 -0
  432. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/strings.py +0 -0
  433. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/utils/validate_data_version.py +0 -0
  434. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/version.py +0 -0
  435. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/websocket/__init__.py +0 -0
  436. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/websocket/managers/broadcast_websocket_manager.py +0 -0
  437. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/websocket/managers/memory_websocket_manager.py +0 -0
  438. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/websocket/websocket_manager.py +0 -0
  439. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/workflow.py +0 -0
  440. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/workflows/__init__.py +0 -0
  441. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/workflows/modify_note.py +0 -0
  442. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/workflows/removed_workflow.py +0 -0
  443. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/workflows/steps.py +0 -0
  444. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/workflows/tasks/__init__.py +0 -0
  445. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/workflows/tasks/cleanup_tasks_log.py +0 -0
  446. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/workflows/tasks/resume_workflows.py +0 -0
  447. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/workflows/tasks/validate_product_type.py +0 -0
  448. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/workflows/tasks/validate_products.py +0 -0
  449. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/workflows/translations/en-GB.json +0 -0
  450. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/orchestrator/workflows/utils.py +0 -0
  451. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/setup.cfg +0 -0
  452. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/setup.py +0 -0
  453. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/__init__.py +0 -0
  454. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/__init__.py +0 -0
  455. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/conftest.py +0 -0
  456. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/fixtures/test_orchestrator/__init__.py +0 -0
  457. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/__init__.py +0 -0
  458. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/test_product_populator.py +0 -0
  459. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/fixtures/test_orchestrator/main.py +0 -0
  460. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/__init__.py +0 -0
  461. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/test_product_blocks.py +0 -0
  462. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/fixtures/test_orchestrator/products/__init__.py +0 -0
  463. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/fixtures/test_orchestrator/products/test_product.py +0 -0
  464. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/fixtures/test_orchestrator/workflows/__init__.py +0 -0
  465. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/fixtures/test_orchestrator/workflows/create_test_product.py +0 -0
  466. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/acceptance_tests/test_test_product.py +0 -0
  467. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/__init__.py +0 -0
  468. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/api/__init__.py +0 -0
  469. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/api/test_caching.py +0 -0
  470. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/api/test_health.py +0 -0
  471. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/api/test_helpers.py +0 -0
  472. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/api/test_models.py +0 -0
  473. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/api/test_processes.py +0 -0
  474. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/api/test_settings.py +0 -0
  475. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/api/test_subscription_customer_descriptions.py +0 -0
  476. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/api/test_subscriptions.py +0 -0
  477. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/api/test_ws.py +0 -0
  478. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/__init__.py +0 -0
  479. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/conftest.py +0 -0
  480. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/alembic.ini +0 -0
  481. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/main.py +0 -0
  482. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/migrations/env.py +0 -0
  483. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/migrations/helpers.py +0 -0
  484. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/migrations/script.py.mako +0 -0
  485. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_59e1199aff7f_create_data_head.py +0 -0
  486. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_85be1c80731c_add_example2.py +0 -0
  487. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_ea9e6c9de75c_add_example1.py +0 -0
  488. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-06-07_380a5b0c928c_add_example4.py +0 -0
  489. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/products/__init__.py +0 -0
  490. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/products/product_blocks/__init__.py +0 -0
  491. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/products/product_blocks/example1.py +0 -0
  492. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/products/product_blocks/example2.py +0 -0
  493. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/products/product_blocks/example4.py +0 -0
  494. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/products/product_types/__init__.py +0 -0
  495. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/products/product_types/example1.py +0 -0
  496. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/products/product_types/example2.py +0 -0
  497. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/products/product_types/example4.py +0 -0
  498. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example1.py +0 -0
  499. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example2.py +0 -0
  500. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example4.py +0 -0
  501. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_create_example1.py +0 -0
  502. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_modify_example1.py +0 -0
  503. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_terminate_example1.py +0 -0
  504. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_validate_example1.py +0 -0
  505. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_create_example2.py +0 -0
  506. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_modify_example2.py +0 -0
  507. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_terminate_example2.py +0 -0
  508. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_validate_example2.py +0 -0
  509. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_create_example4.py +0 -0
  510. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_modify_example4.py +0 -0
  511. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_terminate_example4.py +0 -0
  512. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_validate_example4.py +0 -0
  513. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/translations/en-GB.json +0 -0
  514. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/__init__.py +0 -0
  515. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example1/create_example1.py +0 -0
  516. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example1/modify_example1.py +0 -0
  517. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example1/shared/forms.py +0 -0
  518. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example1/terminate_example1.py +0 -0
  519. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example1/validate_example1.py +0 -0
  520. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example2/create_example2.py +0 -0
  521. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example2/modify_example2.py +0 -0
  522. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example2/shared/forms.py +0 -0
  523. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example2/terminate_example2.py +0 -0
  524. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example4/create_example4.py +0 -0
  525. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example4/modify_example4.py +0 -0
  526. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example4/shared/forms.py +0 -0
  527. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/example4/terminate_example4.py +0 -0
  528. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate/workflows/shared.py +0 -0
  529. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/generate.sh +0 -0
  530. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/invalid_product_config1.yaml +0 -0
  531. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/invalid_product_config2.yaml +0 -0
  532. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/product_config1.yaml +0 -0
  533. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/product_config2.yaml +0 -0
  534. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/product_config3.yaml +0 -0
  535. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/data/product_config4.yaml +0 -0
  536. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/generator/__init__.py +0 -0
  537. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/generator/test_enums.py +0 -0
  538. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/helpers.py +0 -0
  539. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/test_cli_generate.py +0 -0
  540. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/test_config_validation.py +0 -0
  541. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/test_generate_code.py +0 -0
  542. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/test_migrate_domain_models_with_instances.py +0 -0
  543. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/cli/test_migrate_domain_models_without_instances.py +0 -0
  544. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/config.py +0 -0
  545. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/conftest.py +0 -0
  546. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/db/__init__.py +0 -0
  547. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/db/test_listeners.py +0 -0
  548. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/domain/__init__.py +0 -0
  549. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/domain/test_base.py +0 -0
  550. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/domain/test_base_multiple.py +0 -0
  551. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/domain/test_base_with_list_union.py +0 -0
  552. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/domain/test_base_with_union.py +0 -0
  553. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/domain/test_lifecycle.py +0 -0
  554. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/__init__.py +0 -0
  555. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/processes.py +0 -0
  556. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/__init__.py +0 -0
  557. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_blocks/__init__.py +0 -0
  558. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_blocks/product_block_list_nested.py +0 -0
  559. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_blocks/product_block_one.py +0 -0
  560. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_blocks/product_block_one_nested.py +0 -0
  561. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_blocks/product_block_with_list_union.py +0 -0
  562. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_blocks/product_block_with_union.py +0 -0
  563. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_one.py +0 -0
  564. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_two.py +0 -0
  565. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_types/__init__.py +0 -0
  566. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_types/product_type_list_nested.py +0 -0
  567. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_types/product_type_list_union.py +0 -0
  568. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_types/product_type_list_union_overlap.py +0 -0
  569. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_types/product_type_one.py +0 -0
  570. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_types/product_type_one_nested.py +0 -0
  571. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_types/product_type_sub_list_union.py +0 -0
  572. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_types/product_type_sub_one.py +0 -0
  573. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_types/product_type_sub_two.py +0 -0
  574. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_types/product_type_sub_union.py +0 -0
  575. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_types/product_type_union.py +0 -0
  576. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/product_types/subscription_relations.py +0 -0
  577. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/products/resource_types.py +0 -0
  578. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/fixtures/workflows.py +0 -0
  579. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/forms/__init__.py +0 -0
  580. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/forms/test_customer_contact_list.py +0 -0
  581. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/forms/test_customer_id.py +0 -0
  582. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/forms/test_display_subscription.py +0 -0
  583. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/forms/test_generic_validators.py +0 -0
  584. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/__init__.py +0 -0
  585. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/conftest.py +0 -0
  586. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/extensions/__init__.py +0 -0
  587. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/extensions/test_stats.py +0 -0
  588. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/mutations/helpers.py +0 -0
  589. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/mutations/test_customer_description.py +0 -0
  590. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/mutations/test_start_process.py +0 -0
  591. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/test_customer.py +0 -0
  592. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/test_process.py +0 -0
  593. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/test_product.py +0 -0
  594. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/test_settings.py +0 -0
  595. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/test_sort_and_filter_fields.py +0 -0
  596. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/test_subscription.py +0 -0
  597. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/test_subscription_relations.py +0 -0
  598. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/utils/__init__.py +0 -0
  599. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/utils/fixtures.py +0 -0
  600. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/utils/test_autoregistration.py +0 -0
  601. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/utils/test_get_query_loaders.py +0 -0
  602. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/utils/test_get_selected_paths.py +0 -0
  603. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/utils/test_is_query_detailed.py +0 -0
  604. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/utils/test_is_querying_page_data.py +0 -0
  605. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/graphql/utils/test_override_class.py +0 -0
  606. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/helpers.py +0 -0
  607. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/schedules/__init__.py +0 -0
  608. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/schedules/test_scheduling.py +0 -0
  609. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/services/__init__.py +0 -0
  610. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/services/test_processes.py +0 -0
  611. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/services/test_products.py +0 -0
  612. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/services/test_subscription_relations.py +0 -0
  613. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/services/test_subscriptions.py +0 -0
  614. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/services/test_translations.py +0 -0
  615. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/test_types.py +0 -0
  616. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/utils/__init__.py +0 -0
  617. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/utils/get_subscription_dict.py +0 -0
  618. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/utils/test_datetime.py +0 -0
  619. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/utils/test_errors.py +0 -0
  620. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/utils/test_functional.py +0 -0
  621. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/utils/test_get_updated_properties.py +0 -0
  622. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/utils/test_json.py +0 -0
  623. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/utils/test_search_query.py +0 -0
  624. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/utils/test_state.py +0 -0
  625. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/utils/test_strings.py +0 -0
  626. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/websocket/__init__.py +0 -0
  627. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/websocket/test_broadcast.py +0 -0
  628. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/__init__.py +0 -0
  629. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/conftest.py +0 -0
  630. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/shared/__init__.py +0 -0
  631. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/shared/test_validate_subscriptions.py +0 -0
  632. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/tasks/__init__.py +0 -0
  633. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/tasks/test_clean_up_task_log.py +0 -0
  634. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/tasks/test_resume_workflows.py +0 -0
  635. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/tasks/test_validate_product_type.py +0 -0
  636. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/tasks/test_validate_products.py +0 -0
  637. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/test_async_workflow.py +0 -0
  638. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/test_config_db_code.py +0 -0
  639. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/test_generic_workflow_steps.py +0 -0
  640. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc2}/test/unit_tests/workflows/test_modify_note.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 2.9.2rc3
2
+ current_version = 2.10.0rc2
3
3
  commit = False
4
4
  tag = False
5
5
  parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(rc(?P<build>\d+))?
@@ -56,5 +56,3 @@ jobs:
56
56
  push: true
57
57
  tags: ${{ steps.meta.outputs.tags }}
58
58
  labels: ${{ steps.meta.outputs.labels }}
59
- build-args: |
60
- VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}
@@ -29,13 +29,6 @@ jobs:
29
29
  python -m pip install --upgrade pip
30
30
  pip install flit
31
31
  flit install --deps develop --symlink
32
- - name: Check formatting
33
- run: |
34
- black --check .
35
- - name: Lint with ruff
36
- run: |
37
- # stop the build if there are Python syntax errors or undefined names
38
- ruff check .
39
32
  - name: Check with mypy
40
33
  run: |
41
34
  mypy .
@@ -3,7 +3,7 @@ default_language_version:
3
3
  exclude: ^test/unit_tests/cli/data/generate/.*\.py|orchestrator/vendor.*
4
4
  repos:
5
5
  - repo: https://github.com/psf/black
6
- rev: 24.8.0
6
+ rev: 25.1.0
7
7
  hooks:
8
8
  - id: black
9
9
  # - repo: https://github.com/asottile/blacken-docs
@@ -14,12 +14,12 @@ repos:
14
14
  # Disabling since this cannot parse bit shift operators how we've overloaded them and you can't ignore lines.
15
15
  - repo: https://github.com/astral-sh/ruff-pre-commit
16
16
  # Ruff version.
17
- rev: v0.6.1
17
+ rev: v0.9.6
18
18
  hooks:
19
19
  - id: ruff
20
20
  args: [ --fix, --exit-non-zero-on-fix, --show-fixes ]
21
21
  - repo: https://github.com/pre-commit/pre-commit-hooks
22
- rev: v4.6.0
22
+ rev: v5.0.0
23
23
  hooks:
24
24
  - id: trailing-whitespace
25
25
  exclude:
@@ -0,0 +1,24 @@
1
+ # Build stage
2
+ FROM python:3.11-slim AS build
3
+ WORKDIR /app
4
+ RUN apt-get update \
5
+ && apt-get install -y --no-install-recommends git build-essential \
6
+ && rm -rf /var/lib/apt/lists/*
7
+ COPY . .
8
+ RUN pip install --upgrade pip --no-cache-dir
9
+ RUN pip install build --no-cache-dir
10
+ RUN python -m build --wheel --outdir dist
11
+
12
+ # Final stage
13
+ FROM python:3.11-slim
14
+ ENV PIP_ROOT_USER_ACTION=ignore
15
+ RUN apt-get update \
16
+ && apt-get install -y --no-install-recommends git \
17
+ && rm -rf /var/lib/apt/lists/*
18
+ RUN pip install --upgrade pip --no-cache-dir
19
+ COPY --from=build /app/dist/*.whl /tmp/
20
+ RUN pip install /tmp/*.whl --no-cache-dir
21
+ RUN useradd orchestrator
22
+ USER orchestrator
23
+ WORKDIR /home/orchestrator
24
+ CMD ["uvicorn", "--host", "0.0.0.0", "--port", "8080", "main:app"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: orchestrator-core
3
- Version: 2.9.2rc3
3
+ Version: 2.10.0rc2
4
4
  Summary: This is the orchestrator workflow engine.
5
5
  Requires-Python: >=3.11,<3.14
6
6
  Classifier: Intended Audience :: Information Technology
@@ -27,30 +27,30 @@ Classifier: Programming Language :: Python :: 3.12
27
27
  Classifier: Programming Language :: Python :: 3.11
28
28
  Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
29
29
  Classifier: Topic :: Internet :: WWW/HTTP
30
- Requires-Dist: alembic==1.13.3
30
+ Requires-Dist: alembic==1.14.1
31
31
  Requires-Dist: anyio>=3.7.0
32
32
  Requires-Dist: click==8.*
33
33
  Requires-Dist: deprecated
34
34
  Requires-Dist: deepmerge==1.1.1
35
35
  Requires-Dist: fastapi~=0.115.2
36
36
  Requires-Dist: fastapi-etag==0.4.0
37
- Requires-Dist: more-itertools~=10.5.0
37
+ Requires-Dist: more-itertools~=10.6.0
38
38
  Requires-Dist: itsdangerous
39
39
  Requires-Dist: Jinja2==3.1.5
40
- Requires-Dist: orjson==3.10.9
40
+ Requires-Dist: orjson==3.10.15
41
41
  Requires-Dist: psycopg2-binary==2.9.10
42
42
  Requires-Dist: pydantic[email]~=2.8.2
43
- Requires-Dist: pydantic-settings~=2.5.2
43
+ Requires-Dist: pydantic-settings~=2.7.1
44
44
  Requires-Dist: python-dateutil==2.8.2
45
45
  Requires-Dist: python-rapidjson>=1.18,<1.21
46
46
  Requires-Dist: pytz==2024.1
47
47
  Requires-Dist: redis==5.0.3
48
48
  Requires-Dist: schedule==1.1.0
49
49
  Requires-Dist: sentry-sdk[fastapi]~=2.18.0
50
- Requires-Dist: SQLAlchemy==2.0.36
50
+ Requires-Dist: SQLAlchemy==2.0.38
51
51
  Requires-Dist: SQLAlchemy-Utils==0.41.2
52
52
  Requires-Dist: structlog
53
- Requires-Dist: typer==0.12.5
53
+ Requires-Dist: typer==0.15.1
54
54
  Requires-Dist: uvicorn[standard]~=0.32.0
55
55
  Requires-Dist: nwa-stdlib~=1.9.0
56
56
  Requires-Dist: oauth2-lib~=2.4.0
@@ -26,21 +26,16 @@ Interact with the application database. By default, does nothing, specify `main.
26
26
  show_symbol_type_toc: false
27
27
  show_symbol_type_heading: false
28
28
  members:
29
- - init
30
- - revision
31
- - upgrade
32
29
  - downgrade
33
30
  - heads
34
31
  - history
35
- - merge
36
- - migrate_workflows
37
- - heads
38
- - history
39
32
  - init
40
33
  - merge
41
34
  - migrate_workflows
35
+ - migrate_tasks
42
36
  - revision
43
37
  - upgrade
38
+
44
39
  heading_level: 3
45
40
 
46
41
  ### migrate-domain-models
@@ -677,3 +677,10 @@ customer_field.name = "customer"
677
677
  override_class(ProcessType, [customer_field])
678
678
  custom_subscription_interface = override_class(SubscriptionInterface, [customer_field])
679
679
  ```
680
+
681
+ ### Behavior of filterBy
682
+ By default, string matching is configured for exact matches, i.e a search for `10` will return ONLY `10`
683
+ and won't include `10G` or `100G`.
684
+ Searching can also be configured for partial matching as well, where a search for `10` would include `10G` and `100G`.
685
+
686
+ This can be controlled by setting the variable `FILTER_BY_MODE` can be set to a value of `exact` or `partial` as needed.
@@ -47,6 +47,7 @@ Some search query examples for Subscriptions:
47
47
  | `test*` | any field starting with `test` (Prefix search) |
48
48
 
49
49
  Note that:
50
+
50
51
  * For other objects the query syntax is the same
51
52
  * Searching is case-insensitive
52
53
  * Ordering of words does not matter (unless it is a Phrase)
@@ -87,6 +88,7 @@ Postgres _Full Text Search_ (TS) has extensive [documentation](https://www.postg
87
88
  The query behind `subscriptions_search` retrieves Subscriptions joined with several other tables (as shown in the previous diagram), forming a "document" of keywords that in some way relate to the subscription.
88
89
 
89
90
  Each document is turned into a _tsvector_ with Postgres function `to_tsvector()` which consists of these phases:
91
+
90
92
  * Parse document into _tokens_: split text into _tokens_ using special characters as delimiters
91
93
  * Convert tokens into _lexemes_: a lexeme is a normalized token, i.e. this folds upper-case to lower-case. This step can also normalize based on language, but we disable that by using the `'simple'` dictionary (shown in diagram above)
92
94
  * Create vector optimized for search: store array of _lexemes_ along with positional information
@@ -13,7 +13,7 @@
13
13
 
14
14
  """This is the orchestrator workflow engine."""
15
15
 
16
- __version__ = "2.9.2rc3"
16
+ __version__ = "2.10.0rc2"
17
17
 
18
18
  from orchestrator.app import OrchestratorCore
19
19
  from orchestrator.settings import app_settings
@@ -19,12 +19,15 @@ from fastapi.routing import APIRouter
19
19
  from orchestrator.api.api_v1.endpoints import (
20
20
  health,
21
21
  processes,
22
+ product_blocks,
22
23
  products,
24
+ resource_types,
23
25
  settings,
24
26
  subscription_customer_descriptions,
25
27
  subscriptions,
26
28
  translations,
27
29
  user,
30
+ workflows,
28
31
  ws,
29
32
  )
30
33
  from orchestrator.security import authorize
@@ -34,14 +37,32 @@ api_router = APIRouter()
34
37
  api_router.include_router(
35
38
  processes.router, prefix="/processes", tags=["Core", "Processes"], dependencies=[Depends(authorize)]
36
39
  )
40
+ api_router.include_router(
41
+ subscriptions.router,
42
+ prefix="/subscriptions",
43
+ tags=["Core", "Subscriptions"],
44
+ dependencies=[Depends(authorize)],
45
+ )
37
46
  api_router.include_router(processes.ws_router, prefix="/processes", tags=["Core", "Processes"])
38
47
  api_router.include_router(
39
48
  products.router, prefix="/products", tags=["Core", "Product"], dependencies=[Depends(authorize)]
40
49
  )
41
50
  api_router.include_router(
42
- subscriptions.router,
43
- prefix="/subscriptions",
44
- tags=["Core", "Subscriptions"],
51
+ product_blocks.router,
52
+ prefix="/product_blocks",
53
+ tags=["Core", "Product Blocks"],
54
+ dependencies=[Depends(authorize)],
55
+ )
56
+ api_router.include_router(
57
+ resource_types.router,
58
+ prefix="/resource_types",
59
+ tags=["Core", "Resource Types"],
60
+ dependencies=[Depends(authorize)],
61
+ )
62
+ api_router.include_router(
63
+ workflows.router,
64
+ prefix="/workflows",
65
+ tags=["Core", "Workflows"],
45
66
  dependencies=[Depends(authorize)],
46
67
  )
47
68
  api_router.include_router(
@@ -240,6 +240,7 @@ def abort_process_endpoint(process_id: UUID, request: Request, user: str = Depen
240
240
  broadcast_func = api_broadcast_process_data(request)
241
241
  try:
242
242
  abort_process(process, user, broadcast_func=broadcast_func)
243
+ broadcast_invalidate_status_counts()
243
244
  return
244
245
  except Exception as e:
245
246
  raise_status(HTTPStatus.INTERNAL_SERVER_ERROR, str(e))
@@ -0,0 +1,56 @@
1
+ # Copyright 2019-2020 SURF.
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+ from http import HTTPStatus
15
+ from uuid import UUID
16
+
17
+ from fastapi.param_functions import Body
18
+ from fastapi.routing import APIRouter
19
+
20
+ from orchestrator.api.error_handling import raise_status
21
+ from orchestrator.db import db
22
+ from orchestrator.db.models import ProductBlockTable
23
+ from orchestrator.schemas.product_block import ProductBlockPatchSchema, ProductBlockSchema
24
+
25
+ router = APIRouter()
26
+
27
+
28
+ @router.get("/{product_block_id}", response_model=ProductBlockSchema)
29
+ def get_product_block_description(product_block_id: UUID) -> str:
30
+ product_block = db.session.get(ProductBlockTable, product_block_id)
31
+ if product_block is None:
32
+ raise_status(HTTPStatus.NOT_FOUND)
33
+ return product_block
34
+
35
+
36
+ @router.patch("/{product_block_id}", status_code=HTTPStatus.CREATED, response_model=ProductBlockSchema)
37
+ async def patch_product_block_by_id(
38
+ product_block_id: UUID, data: ProductBlockPatchSchema = Body(...)
39
+ ) -> ProductBlockTable:
40
+ product_block = db.session.get(ProductBlockTable, product_block_id)
41
+ if not product_block:
42
+ raise_status(HTTPStatus.NOT_FOUND, f"Product_block id {product_block_id} not found")
43
+
44
+ return await _patch_product_block_description(data, product_block)
45
+
46
+
47
+ async def _patch_product_block_description(
48
+ data: ProductBlockPatchSchema,
49
+ product_block: ProductBlockTable,
50
+ ) -> ProductBlockTable:
51
+
52
+ updated_properties = data.model_dump(exclude_unset=True)
53
+ description = updated_properties.get("description", product_block.description)
54
+ product_block.description = description
55
+ db.session.commit()
56
+ return product_block
@@ -14,6 +14,7 @@
14
14
  from http import HTTPStatus
15
15
  from uuid import UUID
16
16
 
17
+ from fastapi.param_functions import Body
17
18
  from fastapi.routing import APIRouter
18
19
  from sqlalchemy import select
19
20
  from sqlalchemy.orm import joinedload, selectinload
@@ -21,6 +22,7 @@ from sqlalchemy.orm import joinedload, selectinload
21
22
  from orchestrator.api.error_handling import raise_status
22
23
  from orchestrator.db import ProductBlockTable, ProductTable, db
23
24
  from orchestrator.schemas import ProductSchema
25
+ from orchestrator.schemas.product import ProductPatchSchema
24
26
 
25
27
  router = APIRouter()
26
28
 
@@ -48,6 +50,13 @@ def fetch(tag: str | None = None, product_type: str | None = None) -> list[Produ
48
50
  response_model=ProductSchema,
49
51
  )
50
52
  def product_by_id(product_id: UUID) -> ProductTable:
53
+ product = _product_by_id(product_id)
54
+ if not product:
55
+ raise_status(HTTPStatus.NOT_FOUND, f"Product id {product_id} not found")
56
+ return product
57
+
58
+
59
+ def _product_by_id(product_id: UUID) -> ProductTable | None:
51
60
  stmt = (
52
61
  select(ProductTable)
53
62
  .options(
@@ -57,7 +66,25 @@ def product_by_id(product_id: UUID) -> ProductTable:
57
66
  )
58
67
  .filter(ProductTable.product_id == product_id)
59
68
  )
60
- product = db.session.scalars(stmt).unique().one_or_none()
69
+ return db.session.scalars(stmt).unique().one_or_none()
70
+
71
+
72
+ @router.patch("/{product_id}", status_code=HTTPStatus.CREATED, response_model=ProductSchema)
73
+ async def patch_product_by_id(product_id: UUID, data: ProductPatchSchema = Body(...)) -> ProductTable:
74
+ product = _product_by_id(product_id)
61
75
  if not product:
62
76
  raise_status(HTTPStatus.NOT_FOUND, f"Product id {product_id} not found")
77
+
78
+ return await _patch_product_description(data, product)
79
+
80
+
81
+ async def _patch_product_description(
82
+ data: ProductPatchSchema,
83
+ product: ProductTable,
84
+ ) -> ProductTable:
85
+
86
+ updated_properties = data.model_dump(exclude_unset=True)
87
+ description = updated_properties.get("description", product.description)
88
+ product.description = description
89
+ db.session.commit()
63
90
  return product
@@ -0,0 +1,56 @@
1
+ # Copyright 2019-2020 SURF.
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+ from http import HTTPStatus
15
+ from uuid import UUID
16
+
17
+ from fastapi.param_functions import Body
18
+ from fastapi.routing import APIRouter
19
+
20
+ from orchestrator.api.error_handling import raise_status
21
+ from orchestrator.db import db
22
+ from orchestrator.db.models import ResourceTypeTable
23
+ from orchestrator.schemas.resource_type import ResourceTypePatchSchema, ResourceTypeSchema
24
+
25
+ router = APIRouter()
26
+
27
+
28
+ @router.get("/{resource_type_id}", response_model=ResourceTypeSchema)
29
+ def get_resource_type_description(resource_type_id: UUID) -> str:
30
+ resource_type = db.session.get(ResourceTypeTable, resource_type_id)
31
+ if resource_type is None:
32
+ raise_status(HTTPStatus.NOT_FOUND)
33
+ return resource_type
34
+
35
+
36
+ @router.patch("/{resource_type_id}", status_code=HTTPStatus.CREATED, response_model=ResourceTypeSchema)
37
+ async def patch_resource_type_by_id(
38
+ resource_type_id: UUID, data: ResourceTypePatchSchema = Body(...)
39
+ ) -> ResourceTypeTable:
40
+ resource_type = db.session.get(ResourceTypeTable, resource_type_id)
41
+ if not resource_type:
42
+ raise_status(HTTPStatus.NOT_FOUND, f"ResourceType id {resource_type_id} not found")
43
+
44
+ return await _patch_resource_type_description(data, resource_type)
45
+
46
+
47
+ async def _patch_resource_type_description(
48
+ data: ResourceTypePatchSchema,
49
+ resource_type: ResourceTypeTable,
50
+ ) -> ResourceTypeTable:
51
+
52
+ updated_properties = data.model_dump(exclude_unset=True)
53
+ description = updated_properties.get("description", resource_type.description)
54
+ resource_type.description = description
55
+ db.session.commit()
56
+ return resource_type
@@ -0,0 +1,54 @@
1
+ # Copyright 2019-2020 SURF.
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+ from http import HTTPStatus
15
+ from uuid import UUID
16
+
17
+ from fastapi.param_functions import Body
18
+ from fastapi.routing import APIRouter
19
+
20
+ from orchestrator.api.error_handling import raise_status
21
+ from orchestrator.db import db
22
+ from orchestrator.db.models import WorkflowTable
23
+ from orchestrator.schemas.workflow import WorkflowPatchSchema, WorkflowSchema
24
+
25
+ router = APIRouter()
26
+
27
+
28
+ @router.get("/{workflow_id}", response_model=WorkflowSchema)
29
+ def get_workflow_description(workflow_id: UUID) -> str:
30
+ workflow = db.session.get(WorkflowTable, workflow_id)
31
+ if workflow is None:
32
+ raise_status(HTTPStatus.NOT_FOUND)
33
+ return workflow
34
+
35
+
36
+ @router.patch("/{workflow_id}", status_code=HTTPStatus.CREATED, response_model=WorkflowSchema)
37
+ async def patch_workflow_by_id(workflow_id: UUID, data: WorkflowPatchSchema = Body(...)) -> WorkflowTable:
38
+ workflow = db.session.get(WorkflowTable, workflow_id)
39
+ if not workflow:
40
+ raise_status(HTTPStatus.NOT_FOUND, f"Workflow id {workflow_id} not found")
41
+
42
+ return await _patch_workflow_description(data, workflow)
43
+
44
+
45
+ async def _patch_workflow_description(
46
+ data: WorkflowPatchSchema,
47
+ workflow: WorkflowTable,
48
+ ) -> WorkflowTable:
49
+
50
+ updated_properties = data.model_dump(exclude_unset=True)
51
+ description = updated_properties.get("description", workflow.description)
52
+ workflow.description = description
53
+ db.session.commit()
54
+ return workflow
@@ -199,8 +199,9 @@ class OrchestratorCore(FastAPI):
199
199
 
200
200
  def register_graphql(
201
201
  self: "OrchestratorCore",
202
- query: Any = Query,
203
- mutation: Any = Mutation,
202
+ # mypy 1.9 cannot properly inspect these, fixed in 1.15
203
+ query: Any = Query, # type: ignore
204
+ mutation: Any = Mutation, # type: ignore
204
205
  register_models: bool = True,
205
206
  subscription_interface: Any = SubscriptionInterface,
206
207
  graphql_models: StrawberryModelType | None = None,
@@ -25,6 +25,7 @@ import orchestrator.workflows
25
25
  from orchestrator.cli.domain_gen_helpers.types import ModelUpdates
26
26
  from orchestrator.cli.helpers.print_helpers import COLOR, str_fmt
27
27
  from orchestrator.cli.migrate_domain_models import create_domain_models_migration_sql
28
+ from orchestrator.cli.migrate_tasks import create_tasks_migration_wizard
28
29
  from orchestrator.cli.migrate_workflows import create_workflows_migration_wizard
29
30
  from orchestrator.cli.migration_helpers import create_migration_file
30
31
  from orchestrator.db import init_database
@@ -397,3 +398,80 @@ def migrate_workflows(
397
398
 
398
399
  create_migration_file(alembic_cfg(), sql_upgrade_str, sql_downgrade_str, message, preamble=preamble)
399
400
  return None
401
+
402
+
403
+ @app.command(help="Create migration file based on diff tasks in db")
404
+ def migrate_tasks(
405
+ message: str = typer.Argument(..., help="Migration name"),
406
+ test: bool = typer.Option(False, help="Optional boolean if you don't want to generate a migration file"),
407
+ ) -> tuple[list[dict], list[dict]] | None:
408
+ """The `migrate-tasks` command creates a migration file based on the difference between tasks in the database and registered TaskInstances in your codebase.
409
+
410
+ !!! warning "BACKUP YOUR DATABASE BEFORE USING THE MIGRATION!"
411
+
412
+ You will be prompted with inputs for new models and resource type updates.
413
+ Resource type updates are only handled when it's renamed in all product blocks.
414
+
415
+ Args:
416
+ message: Message/description of the generated migration.
417
+ test: Optional boolean if you don't want to generate a migration file.
418
+
419
+ Returns None unless `--test` is used, in which case it returns:
420
+ - tuple:
421
+ - list of upgrade SQL statements in string format.
422
+ - list of downgrade SQL statements in string format.
423
+
424
+ CLI Arguments:
425
+ ```sh
426
+ Arguments:
427
+ MESSAGE Migration name [required]
428
+
429
+ Options:
430
+ --test / --no-test Optional boolean if you don't want to generate a migration
431
+ file [default: no-test]
432
+ ```
433
+ """
434
+ if not app_settings.TESTING:
435
+ init_database(app_settings)
436
+
437
+ if test:
438
+ print( # noqa: T001, T201
439
+ f"{str_fmt('NOTE:', flags=[COLOR.BOLD, COLOR.CYAN])} Running in test mode. No migration file will be generated.\n"
440
+ )
441
+
442
+ tasks_to_add, tasks_to_delete = create_tasks_migration_wizard()
443
+
444
+ # String 'template' arguments
445
+ import_str = "from orchestrator.migrations.helpers import create_task, delete_workflow\n"
446
+ tpl_preamble_lines = []
447
+ tpl_upgrade_lines = []
448
+ tpl_downgrade_lines = []
449
+
450
+ if tasks_to_add:
451
+ tpl_preamble_lines.append(f"new_tasks = {json.dumps(tasks_to_add, indent=4)}\n")
452
+ tpl_upgrade_lines.extend([(" " * 4) + "for task in new_tasks:", (" " * 8) + "create_task(conn, task)"])
453
+ tpl_downgrade_lines.extend(
454
+ [(" " * 4) + "for task in new_tasks:", (" " * 8) + 'delete_workflow(conn, task["name"])']
455
+ )
456
+
457
+ if tasks_to_delete:
458
+ tpl_preamble_lines.append(f"old_tasks = {json.dumps(tasks_to_delete, indent=4)}\n")
459
+ tpl_upgrade_lines.extend(
460
+ [(" " * 4) + "for task in old_tasks:", (" " * 8) + 'delete_workflow(conn, task["name"])']
461
+ )
462
+ tpl_downgrade_lines.extend([(" " * 4) + "for task in old_tasks:", (" " * 8) + "create_task(conn, task)"])
463
+
464
+ preamble = "\n".join(
465
+ [
466
+ import_str,
467
+ *tpl_preamble_lines,
468
+ ]
469
+ )
470
+ sql_upgrade_str = "\n".join(tpl_upgrade_lines)
471
+ sql_downgrade_str = "\n".join(tpl_downgrade_lines)
472
+
473
+ if test:
474
+ return tasks_to_add, tasks_to_delete
475
+
476
+ create_migration_file(alembic_cfg(), sql_upgrade_str, sql_downgrade_str, message, preamble=preamble)
477
+ return None
@@ -11,7 +11,6 @@
11
11
  # See the License for the specific language governing permissions and
12
12
  # limitations under the License.
13
13
 
14
- import re
15
14
  from collections import ChainMap
16
15
  from collections.abc import Mapping
17
16
  from pathlib import Path
@@ -56,15 +55,8 @@ def get_product_block_path(product_block: dict) -> Path:
56
55
 
57
56
 
58
57
  def enrich_product_block(product_block: dict) -> dict:
59
- def to_block_name() -> str:
60
- """Separate block name into words."""
61
- type = product_block["type"]
62
- name = re.sub("(.)([A-Z][a-z]+)", r"\1 \2", type)
63
- return re.sub("([a-z0-9])([A-Z])", r"\1 \2", name)
64
-
65
58
  fields = get_all_fields(product_block)
66
- block_name = product_block.get("block_name", to_block_name())
67
-
59
+ block_name = product_block.get("block_name", product_block.get("type"))
68
60
  return product_block | {
69
61
  "fields": fields,
70
62
  "block_name": block_name,