orchestrator-core 2.9.2rc3__tar.gz → 2.10.0rc1__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 (634) hide show
  1. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.bumpversion.cfg +1 -1
  2. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/workflows/build-push-container.yml +0 -2
  3. orchestrator_core-2.10.0rc1/Dockerfile +24 -0
  4. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/PKG-INFO +7 -7
  5. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/cli.md +2 -7
  6. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/graphql.md +7 -0
  7. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/search.md +2 -0
  8. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/__init__.py +1 -1
  9. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/processes.py +1 -0
  10. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/database.py +78 -0
  11. orchestrator_core-2.10.0rc1/orchestrator/cli/migrate_tasks.py +188 -0
  12. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/search_filters/inferred_filter.py +2 -1
  13. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/__init__.py +2 -0
  14. orchestrator_core-2.10.0rc1/orchestrator/graphql/resolvers/version.py +25 -0
  15. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schema.py +3 -0
  16. orchestrator_core-2.10.0rc1/orchestrator/graphql/schemas/version.py +6 -0
  17. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/helpers.py +31 -1
  18. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/settings.py +2 -0
  19. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/search_query.py +1 -21
  20. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/state.py +6 -5
  21. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/pyproject.toml +6 -6
  22. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_processes_ws.py +5 -2
  23. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_processes.py +5 -3
  24. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_product_blocks.py +7 -2
  25. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_resource_types.py +14 -8
  26. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_subscriptions.py +9 -5
  27. orchestrator_core-2.10.0rc1/test/unit_tests/graphql/test_version.py +21 -0
  28. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_workflows.py +10 -4
  29. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/test_db.py +1 -1
  30. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/test_workflow.py +27 -1
  31. orchestrator_core-2.9.2rc3/Dockerfile +0 -17
  32. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.coveragerc +0 -0
  33. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  34. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  35. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/dependabot.yml +0 -0
  36. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/workflows/README.md +0 -0
  37. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/workflows/changelog.yml +0 -0
  38. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/workflows/codeql-analysis.yml +0 -0
  39. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/workflows/gh-pages.yml +0 -0
  40. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/workflows/issues.yml +0 -0
  41. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/workflows/publish-package.yml +0 -0
  42. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/workflows/run-linting-tests.yml +0 -0
  43. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/workflows/run-unit-tests.yml +0 -0
  44. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.github/workflows/scheduled-build.yml +0 -0
  45. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.gitignore +0 -0
  46. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.pre-commit-config.yaml +0 -0
  47. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/.stignore +0 -0
  48. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/CHANGELOG.md +0 -0
  49. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/LICENSE +0 -0
  50. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/NOTICE +0 -0
  51. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/README.md +0 -0
  52. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/codecov.yml +0 -0
  53. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/application/domainmodels.md +0 -0
  54. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/application/forms-frontend.md +0 -0
  55. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/application/tasks.md +0 -0
  56. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/application/workflow.md +0 -0
  57. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/framework.md +0 -0
  58. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/img/base-orchestrator-setup.png +0 -0
  59. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/img/custom-orchestrator-setup.png +0 -0
  60. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/orchestration/img/Custom-orchestrator-ui-using-override.png +0 -0
  61. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/orchestration/img/Standard-orchestrator-ui.png +0 -0
  62. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/orchestration/orchestrator-ui.md +0 -0
  63. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/orchestration/philosophy.md +0 -0
  64. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/backfilling.md +0 -0
  65. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/context.md +0 -0
  66. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/imports.md +0 -0
  67. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/introduction.md +0 -0
  68. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/ip_static.md +0 -0
  69. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/ip_static.png +0 -0
  70. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/l2_point_to_point.md +0 -0
  71. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/l2_point_to_point.png +0 -0
  72. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/l2_vpn.md +0 -0
  73. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/l2_vpn.png +0 -0
  74. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/modelling.md +0 -0
  75. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/node.md +0 -0
  76. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/node.png +0 -0
  77. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/port.md +0 -0
  78. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/port.png +0 -0
  79. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/product_block_graph.md +0 -0
  80. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/product_block_graph.png +0 -0
  81. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/standards.md +0 -0
  82. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/terminology.md +0 -0
  83. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/architecture/tldr.md +0 -0
  84. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/contributing/development.md +0 -0
  85. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/contributing/guidelines.md +0 -0
  86. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/contributing/testing.md +0 -0
  87. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/css/custom.css +0 -0
  88. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/css/style.css +0 -0
  89. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/css/termynal.css +0 -0
  90. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/getting-started/base.md +0 -0
  91. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/getting-started/docker.md +0 -0
  92. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/getting-started/orchestration-ui.md +0 -0
  93. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/getting-started/prepare-source-folder.md +0 -0
  94. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/getting-started/versions.md +0 -0
  95. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/img/WFO-Emblem-White.png +0 -0
  96. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/img/favicon.ico +0 -0
  97. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/index.md +0 -0
  98. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/js/custom.js +0 -0
  99. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/js/termynal.js +0 -0
  100. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/migration-guide/2.0.md +0 -0
  101. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/api.md +0 -0
  102. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/app/app.md +0 -0
  103. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/app/scaling.md +0 -0
  104. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/auth-backend-and-frontend.md +0 -0
  105. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/database.md +0 -0
  106. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/generator.md +0 -0
  107. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/instantiating.md +0 -0
  108. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/model_attributes.md +0 -0
  109. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/overview.md +0 -0
  110. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/product_blocks.md +0 -0
  111. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/product_types.md +0 -0
  112. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/properties.md +0 -0
  113. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/pydantic_hooks.md +0 -0
  114. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/type_casting.md +0 -0
  115. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/union_types.md +0 -0
  116. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/validation.md +0 -0
  117. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/forms.md +0 -0
  118. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/python.md +0 -0
  119. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/search_overview.png +0 -0
  120. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/serialization.md +0 -0
  121. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/tasks.md +0 -0
  122. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/tests.md +0 -0
  123. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/tldr.md +0 -0
  124. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/websockets.md +0 -0
  125. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/workflows/callbacks.md +0 -0
  126. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/workflows/workflow-lifecycles.md +0 -0
  127. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/reference-docs/workflows/workflow-steps.md +0 -0
  128. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/bootstrap.md +0 -0
  129. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/create-your-own.md +0 -0
  130. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/docker-installation.md +0 -0
  131. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/domain-models.md +0 -0
  132. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/execute-workflows.md +0 -0
  133. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/generator.md +0 -0
  134. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/l2_point_to_point.png +0 -0
  135. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/node-create.md +0 -0
  136. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/node-modify.md +0 -0
  137. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/node-terminate.md +0 -0
  138. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/node-validate.md +0 -0
  139. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/overview.md +0 -0
  140. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/scenario.md +0 -0
  141. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/workflow-basics.md +0 -0
  142. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/workflow-introduction.md +0 -0
  143. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/create-user-group.md +0 -0
  144. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/create-user.md +0 -0
  145. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/database-migration.md +0 -0
  146. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/debian.md +0 -0
  147. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/docker.md +0 -0
  148. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/domain-models.md +0 -0
  149. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/explore.md +0 -0
  150. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/input-forms.md +0 -0
  151. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/macos.md +0 -0
  152. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/modify-user-group.md +0 -0
  153. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/modify-user.md +0 -0
  154. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/register-workflows.md +0 -0
  155. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/start-applications.md +0 -0
  156. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/terminate-user-group.md +0 -0
  157. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/terminate-user.md +0 -0
  158. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/workflow-introduction.md +0 -0
  159. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/workshop-overview.md +0 -0
  160. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/images/Software-topology.drawio.png +0 -0
  161. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/images/clab_topology.png +0 -0
  162. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/images/metadata_products.png +0 -0
  163. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/images/netbox_devices_active.png +0 -0
  164. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/images/subscriptions.png +0 -0
  165. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/docs/workshops/images/topology.drawio.png +0 -0
  166. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/includes/abbreviations.md +0 -0
  167. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/mkdocs.yml +0 -0
  168. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/mutmut_config.py +0 -0
  169. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/nitpick-style.toml +0 -0
  170. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/__init__.py +0 -0
  171. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/__init__.py +0 -0
  172. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/api.py +0 -0
  173. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/__init__.py +0 -0
  174. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/health.py +0 -0
  175. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/products.py +0 -0
  176. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/settings.py +0 -0
  177. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py +0 -0
  178. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/subscriptions.py +0 -0
  179. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/translations.py +0 -0
  180. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/user.py +0 -0
  181. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/ws.py +0 -0
  182. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/error_handling.py +0 -0
  183. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/helpers.py +0 -0
  184. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/api/models.py +0 -0
  185. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/app.py +0 -0
  186. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/__init__.py +0 -0
  187. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/__init__.py +0 -0
  188. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py +0 -0
  189. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/helpers.py +0 -0
  190. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/product_block_helpers.py +0 -0
  191. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/product_helpers.py +0 -0
  192. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/resource_type_helpers.py +0 -0
  193. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/types.py +0 -0
  194. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generate.py +0 -0
  195. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/__init__.py +0 -0
  196. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/README +0 -0
  197. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_imports.j2 +0 -0
  198. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_input_fields.j2 +0 -0
  199. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_steps.j2 +0 -0
  200. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_imports.j2 +0 -0
  201. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_input_fields.j2 +0 -0
  202. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_steps.j2 +0 -0
  203. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_imports.j2 +0 -0
  204. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_input_fields.j2 +0 -0
  205. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_steps.j2 +0 -0
  206. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/__init__.py +0 -0
  207. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/enums.py +0 -0
  208. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/helpers.py +0 -0
  209. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/migration.py +0 -0
  210. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/product.py +0 -0
  211. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/product_block.py +0 -0
  212. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/settings.py +0 -0
  213. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/translations.py +0 -0
  214. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/unittest.py +0 -0
  215. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/validations.py +0 -0
  216. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/workflow.py +0 -0
  217. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/products/workshop/circuit.yaml +0 -0
  218. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/products/workshop/node.yaml +0 -0
  219. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/products/workshop/user.yaml +0 -0
  220. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/products/workshop/user_group.yaml +0 -0
  221. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/additional_create_imports.j2 +0 -0
  222. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/additional_create_steps.j2 +0 -0
  223. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/additional_modify_imports.j2 +0 -0
  224. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/additional_modify_steps.j2 +0 -0
  225. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/additional_terminate_steps.j2 +0 -0
  226. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/constrained_int_definitions.j2 +0 -0
  227. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/create_data_head.j2 +0 -0
  228. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/create_product.j2 +0 -0
  229. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/enums.j2 +0 -0
  230. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/lazy_workflow_instance.j2 +0 -0
  231. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/list_definitions.j2 +0 -0
  232. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/macros.j2 +0 -0
  233. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/modify_product.j2 +0 -0
  234. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/new_product_migration.j2 +0 -0
  235. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/product.j2 +0 -0
  236. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/product_block.j2 +0 -0
  237. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/shared_forms.j2 +0 -0
  238. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/shared_workflows.j2 +0 -0
  239. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/subscription_model_registry.j2 +0 -0
  240. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/terminate_product.j2 +0 -0
  241. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/test_create_workflow.j2 +0 -0
  242. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/test_modify_workflow.j2 +0 -0
  243. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/test_product_type.j2 +0 -0
  244. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/test_terminate_workflow.j2 +0 -0
  245. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/test_validate_workflow.j2 +0 -0
  246. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/validate_product.j2 +0 -0
  247. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/helpers/__init__.py +0 -0
  248. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/helpers/input_helpers.py +0 -0
  249. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/helpers/print_helpers.py +0 -0
  250. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/main.py +0 -0
  251. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/migrate_domain_models.py +0 -0
  252. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/migrate_workflows.py +0 -0
  253. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/migration_helpers.py +0 -0
  254. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/cli/scheduler.py +0 -0
  255. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/config/__init__.py +0 -0
  256. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/config/assignee.py +0 -0
  257. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/__init__.py +0 -0
  258. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/database.py +0 -0
  259. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/__init__.py +0 -0
  260. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/filters.py +0 -0
  261. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/process.py +0 -0
  262. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/product.py +0 -0
  263. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/product_block.py +0 -0
  264. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/resource_type.py +0 -0
  265. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/search_filters/__init__.py +0 -0
  266. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/subscription.py +0 -0
  267. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/workflow.py +0 -0
  268. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/helpers.py +0 -0
  269. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/listeners.py +0 -0
  270. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/loaders.py +0 -0
  271. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/models.py +0 -0
  272. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/range/__init__.py +0 -0
  273. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/range/range.py +0 -0
  274. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/__init__.py +0 -0
  275. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/process.py +0 -0
  276. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/product.py +0 -0
  277. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/product_block.py +0 -0
  278. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/resource_type.py +0 -0
  279. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/sorting.py +0 -0
  280. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/subscription.py +0 -0
  281. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/workflow.py +0 -0
  282. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/devtools/__init__.py +0 -0
  283. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/devtools/populator.py +0 -0
  284. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/devtools/scripts/__init__.py +0 -0
  285. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/devtools/scripts/migrate_20.py +0 -0
  286. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/distlock/__init__.py +0 -0
  287. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/distlock/distlock_manager.py +0 -0
  288. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/distlock/managers/__init__.py +0 -0
  289. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/distlock/managers/memory_distlock_manager.py +0 -0
  290. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/distlock/managers/redis_distlock_manager.py +0 -0
  291. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/domain/__init__.py +0 -0
  292. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/domain/base.py +0 -0
  293. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/domain/customer_description.py +0 -0
  294. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/domain/helpers.py +0 -0
  295. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/domain/lifecycle.py +0 -0
  296. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/exception_handlers.py +0 -0
  297. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/forms/__init__.py +0 -0
  298. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/forms/validators/__init__.py +0 -0
  299. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/forms/validators/customer_contact_list.py +0 -0
  300. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/forms/validators/customer_id.py +0 -0
  301. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/forms/validators/display_subscription.py +0 -0
  302. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/forms/validators/network_type_validators.py +0 -0
  303. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/forms/validators/product_id.py +0 -0
  304. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/__init__.py +0 -0
  305. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/autoregistration.py +0 -0
  306. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/extensions/__init__.py +0 -0
  307. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/extensions/stats.py +0 -0
  308. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/loaders/__init__.py +0 -0
  309. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/loaders/subscriptions.py +0 -0
  310. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/mutations/customer_description.py +0 -0
  311. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/mutations/start_process.py +0 -0
  312. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/pagination.py +0 -0
  313. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/customer.py +0 -0
  314. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/helpers.py +0 -0
  315. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/process.py +0 -0
  316. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/product.py +0 -0
  317. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/product_block.py +0 -0
  318. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/resource_type.py +0 -0
  319. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/settings.py +0 -0
  320. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/subscription.py +0 -0
  321. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/workflow.py +0 -0
  322. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/__init__.py +0 -0
  323. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/customer.py +0 -0
  324. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/customer_description.py +0 -0
  325. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/errors.py +0 -0
  326. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/fixed_input.py +0 -0
  327. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/helpers.py +0 -0
  328. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/process.py +0 -0
  329. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/product.py +0 -0
  330. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/product_block.py +0 -0
  331. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/resource_type.py +0 -0
  332. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/settings.py +0 -0
  333. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/strawberry_pydantic_patch.py +0 -0
  334. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/subscription.py +0 -0
  335. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/workflow.py +0 -0
  336. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/types.py +0 -0
  337. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/__init__.py +0 -0
  338. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/create_resolver_error_handler.py +0 -0
  339. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/get_query_loaders.py +0 -0
  340. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/get_selected_fields.py +0 -0
  341. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/get_selected_paths.py +0 -0
  342. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/get_subscription_product_blocks.py +0 -0
  343. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/is_query_detailed.py +0 -0
  344. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/override_class.py +0 -0
  345. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/to_graphql_result_page.py +0 -0
  346. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/log_config.py +0 -0
  347. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/README +0 -0
  348. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/alembic.ini +0 -0
  349. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/env.py +0 -0
  350. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/script.py.mako +0 -0
  351. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/templates/alembic.ini.j2 +0 -0
  352. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/templates/env.py.j2 +0 -0
  353. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/templates/helpers.py.j2 +0 -0
  354. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_3323bcb934e7_fix_tsv_triggers.py +0 -0
  355. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_a76b9185b334_add_generic_workflows_to_core.py +0 -0
  356. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_c112305b07d3_initial_schema_migration.py +0 -0
  357. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2021-04-06_3c8b9185c221_add_validate_products_task.py +0 -0
  358. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2021-07-01_6896a54e9483_add_product_block_relations.py +0 -0
  359. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2021-11-17_19cdd3ab86f6_fix_parse_websearch.py +0 -0
  360. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2022-02-16_bed6bc0b197a_rename_parent_and_child_block_relations.py +0 -0
  361. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-03-06_e05bb1967eff_add_subscriptions_search_view.py +0 -0
  362. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-05-25_b1970225392d_add_subscription_metadata_workflow.py +0 -0
  363. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.py +0 -0
  364. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.sql +0 -0
  365. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.py +0 -0
  366. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.sql +0 -0
  367. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.py +0 -0
  368. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.sql +0 -0
  369. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-12-06_048219045729_add_workflow_id_to_processes_table.py +0 -0
  370. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.py +0 -0
  371. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.sql +0 -0
  372. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2025-01-08_4c5859620539_add_version_column_to_subscription.py +0 -0
  373. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2025-10-19_4fjdn13f83ga_add_validate_product_type_task.py +0 -0
  374. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/py.typed +0 -0
  375. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schedules/__init__.py +0 -0
  376. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schedules/resume_workflows.py +0 -0
  377. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schedules/scheduling.py +0 -0
  378. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schedules/task_vacuum.py +0 -0
  379. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schedules/validate_products.py +0 -0
  380. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schedules/validate_subscriptions.py +0 -0
  381. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/__init__.py +0 -0
  382. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/base.py +0 -0
  383. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/engine_settings.py +0 -0
  384. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/fixed_input.py +0 -0
  385. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/problem_detail.py +0 -0
  386. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/process.py +0 -0
  387. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/product.py +0 -0
  388. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/product_block.py +0 -0
  389. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/resource_type.py +0 -0
  390. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/subscription.py +0 -0
  391. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/subscription_descriptions.py +0 -0
  392. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/workflow.py +0 -0
  393. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/security.py +0 -0
  394. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/__init__.py +0 -0
  395. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/celery.py +0 -0
  396. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/fixed_inputs.py +0 -0
  397. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/process_broadcast_thread.py +0 -0
  398. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/processes.py +0 -0
  399. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/products.py +0 -0
  400. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/resource_types.py +0 -0
  401. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/settings.py +0 -0
  402. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/subscription_relations.py +0 -0
  403. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/subscriptions.py +0 -0
  404. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/tasks.py +0 -0
  405. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/translations.py +0 -0
  406. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/services/workflows.py +0 -0
  407. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/targets.py +0 -0
  408. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/types.py +0 -0
  409. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/__init__.py +0 -0
  410. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/crypt.py +0 -0
  411. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/datetime.py +0 -0
  412. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/deprecation_logger.py +0 -0
  413. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/docs.py +0 -0
  414. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/enrich_process.py +0 -0
  415. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/errors.py +0 -0
  416. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/fixed_inputs.py +0 -0
  417. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/functional.py +0 -0
  418. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/get_subscription_dict.py +0 -0
  419. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/get_updated_properties.py +0 -0
  420. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/helpers.py +0 -0
  421. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/json.py +0 -0
  422. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/redis.py +0 -0
  423. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/strings.py +0 -0
  424. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/utils/validate_data_version.py +0 -0
  425. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/version.py +0 -0
  426. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/websocket/__init__.py +0 -0
  427. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/websocket/managers/broadcast_websocket_manager.py +0 -0
  428. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/websocket/managers/memory_websocket_manager.py +0 -0
  429. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/websocket/websocket_manager.py +0 -0
  430. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/workflow.py +0 -0
  431. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/__init__.py +0 -0
  432. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/modify_note.py +0 -0
  433. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/removed_workflow.py +0 -0
  434. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/steps.py +0 -0
  435. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/tasks/__init__.py +0 -0
  436. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/tasks/cleanup_tasks_log.py +0 -0
  437. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/tasks/resume_workflows.py +0 -0
  438. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/tasks/validate_product_type.py +0 -0
  439. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/tasks/validate_products.py +0 -0
  440. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/translations/en-GB.json +0 -0
  441. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/utils.py +0 -0
  442. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/setup.cfg +0 -0
  443. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/setup.py +0 -0
  444. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/__init__.py +0 -0
  445. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/__init__.py +0 -0
  446. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/conftest.py +0 -0
  447. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/__init__.py +0 -0
  448. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/__init__.py +0 -0
  449. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/test_product_populator.py +0 -0
  450. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/main.py +0 -0
  451. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/__init__.py +0 -0
  452. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/test_product_blocks.py +0 -0
  453. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/products/__init__.py +0 -0
  454. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/products/test_product.py +0 -0
  455. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/workflows/__init__.py +0 -0
  456. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/workflows/create_test_product.py +0 -0
  457. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/test_test_product.py +0 -0
  458. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/__init__.py +0 -0
  459. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/__init__.py +0 -0
  460. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_caching.py +0 -0
  461. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_health.py +0 -0
  462. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_helpers.py +0 -0
  463. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_models.py +0 -0
  464. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_processes.py +0 -0
  465. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_product_blocks.py +0 -0
  466. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_products.py +0 -0
  467. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_settings.py +0 -0
  468. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_subscription_customer_descriptions.py +0 -0
  469. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_subscriptions.py +0 -0
  470. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_ws.py +0 -0
  471. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/__init__.py +0 -0
  472. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/conftest.py +0 -0
  473. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/alembic.ini +0 -0
  474. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/main.py +0 -0
  475. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/env.py +0 -0
  476. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/helpers.py +0 -0
  477. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/script.py.mako +0 -0
  478. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_59e1199aff7f_create_data_head.py +0 -0
  479. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_85be1c80731c_add_example2.py +0 -0
  480. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_ea9e6c9de75c_add_example1.py +0 -0
  481. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-06-07_380a5b0c928c_add_example4.py +0 -0
  482. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/__init__.py +0 -0
  483. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/__init__.py +0 -0
  484. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example1.py +0 -0
  485. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example2.py +0 -0
  486. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example4.py +0 -0
  487. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example4sub.py +0 -0
  488. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_types/__init__.py +0 -0
  489. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example1.py +0 -0
  490. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example2.py +0 -0
  491. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example4.py +0 -0
  492. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example1.py +0 -0
  493. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example2.py +0 -0
  494. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example4.py +0 -0
  495. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_create_example1.py +0 -0
  496. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_modify_example1.py +0 -0
  497. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_terminate_example1.py +0 -0
  498. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_validate_example1.py +0 -0
  499. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_create_example2.py +0 -0
  500. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_modify_example2.py +0 -0
  501. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_terminate_example2.py +0 -0
  502. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_validate_example2.py +0 -0
  503. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_create_example4.py +0 -0
  504. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_modify_example4.py +0 -0
  505. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_terminate_example4.py +0 -0
  506. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_validate_example4.py +0 -0
  507. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/translations/en-GB.json +0 -0
  508. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/__init__.py +0 -0
  509. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/create_example1.py +0 -0
  510. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/modify_example1.py +0 -0
  511. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/shared/forms.py +0 -0
  512. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/terminate_example1.py +0 -0
  513. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/validate_example1.py +0 -0
  514. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/create_example2.py +0 -0
  515. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/modify_example2.py +0 -0
  516. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/shared/forms.py +0 -0
  517. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/terminate_example2.py +0 -0
  518. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/create_example4.py +0 -0
  519. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/modify_example4.py +0 -0
  520. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/shared/forms.py +0 -0
  521. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/terminate_example4.py +0 -0
  522. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/shared.py +0 -0
  523. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate.sh +0 -0
  524. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/invalid_product_config1.yaml +0 -0
  525. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/invalid_product_config2.yaml +0 -0
  526. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/product_config1.yaml +0 -0
  527. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/product_config2.yaml +0 -0
  528. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/product_config3.yaml +0 -0
  529. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/product_config4.yaml +0 -0
  530. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/generator/__init__.py +0 -0
  531. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/generator/test_enums.py +0 -0
  532. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/helpers.py +0 -0
  533. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/test_cli_generate.py +0 -0
  534. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/test_config_validation.py +0 -0
  535. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/test_generate_code.py +0 -0
  536. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/test_migrate_domain_models_with_instances.py +0 -0
  537. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/test_migrate_domain_models_without_instances.py +0 -0
  538. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/config.py +0 -0
  539. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/conftest.py +0 -0
  540. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/db/__init__.py +0 -0
  541. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/db/test_listeners.py +0 -0
  542. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/domain/__init__.py +0 -0
  543. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/domain/test_base.py +0 -0
  544. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/domain/test_base_multiple.py +0 -0
  545. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/domain/test_base_with_list_union.py +0 -0
  546. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/domain/test_base_with_union.py +0 -0
  547. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/domain/test_lifecycle.py +0 -0
  548. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/__init__.py +0 -0
  549. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/processes.py +0 -0
  550. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/__init__.py +0 -0
  551. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/__init__.py +0 -0
  552. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_list_nested.py +0 -0
  553. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_one.py +0 -0
  554. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_one_nested.py +0 -0
  555. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_with_list_union.py +0 -0
  556. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_with_union.py +0 -0
  557. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_one.py +0 -0
  558. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_two.py +0 -0
  559. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/__init__.py +0 -0
  560. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_nested.py +0 -0
  561. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_union.py +0 -0
  562. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_union_overlap.py +0 -0
  563. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_one.py +0 -0
  564. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_one_nested.py +0 -0
  565. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_list_union.py +0 -0
  566. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_one.py +0 -0
  567. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_two.py +0 -0
  568. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_union.py +0 -0
  569. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_union.py +0 -0
  570. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/subscription_relations.py +0 -0
  571. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/resource_types.py +0 -0
  572. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/workflows.py +0 -0
  573. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/forms/__init__.py +0 -0
  574. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/forms/test_customer_contact_list.py +0 -0
  575. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/forms/test_customer_id.py +0 -0
  576. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/forms/test_display_subscription.py +0 -0
  577. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/forms/test_generic_validators.py +0 -0
  578. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/__init__.py +0 -0
  579. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/conftest.py +0 -0
  580. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/extensions/__init__.py +0 -0
  581. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/extensions/test_stats.py +0 -0
  582. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/mutations/helpers.py +0 -0
  583. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/mutations/test_customer_description.py +0 -0
  584. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/mutations/test_start_process.py +0 -0
  585. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_customer.py +0 -0
  586. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_process.py +0 -0
  587. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_product.py +0 -0
  588. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_settings.py +0 -0
  589. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_sort_and_filter_fields.py +0 -0
  590. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_subscription.py +0 -0
  591. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_subscription_relations.py +0 -0
  592. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/__init__.py +0 -0
  593. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/fixtures.py +0 -0
  594. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/test_autoregistration.py +0 -0
  595. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/test_get_query_loaders.py +0 -0
  596. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/test_get_selected_paths.py +0 -0
  597. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/test_is_query_detailed.py +0 -0
  598. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/test_is_querying_page_data.py +0 -0
  599. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/test_override_class.py +0 -0
  600. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/helpers.py +0 -0
  601. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/schedules/__init__.py +0 -0
  602. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/schedules/test_scheduling.py +0 -0
  603. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/services/__init__.py +0 -0
  604. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/services/test_processes.py +0 -0
  605. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/services/test_products.py +0 -0
  606. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/services/test_subscription_relations.py +0 -0
  607. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/services/test_subscriptions.py +0 -0
  608. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/services/test_translations.py +0 -0
  609. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/test_types.py +0 -0
  610. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/__init__.py +0 -0
  611. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/get_subscription_dict.py +0 -0
  612. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_datetime.py +0 -0
  613. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_errors.py +0 -0
  614. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_functional.py +0 -0
  615. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_get_updated_properties.py +0 -0
  616. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_json.py +0 -0
  617. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_search_query.py +0 -0
  618. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_state.py +0 -0
  619. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_strings.py +0 -0
  620. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/websocket/__init__.py +0 -0
  621. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/websocket/test_broadcast.py +0 -0
  622. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/__init__.py +0 -0
  623. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/conftest.py +0 -0
  624. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/shared/__init__.py +0 -0
  625. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/shared/test_validate_subscriptions.py +0 -0
  626. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/tasks/__init__.py +0 -0
  627. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/tasks/test_clean_up_task_log.py +0 -0
  628. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/tasks/test_resume_workflows.py +0 -0
  629. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/tasks/test_validate_product_type.py +0 -0
  630. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/tasks/test_validate_products.py +0 -0
  631. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/test_async_workflow.py +0 -0
  632. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/test_config_db_code.py +0 -0
  633. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/test_generic_workflow_steps.py +0 -0
  634. {orchestrator_core-2.9.2rc3 → orchestrator_core-2.10.0rc1}/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.0rc1
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'] }}
@@ -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.0rc1
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.0rc1"
17
17
 
18
18
  from orchestrator.app import OrchestratorCore
19
19
  from orchestrator.settings import app_settings
@@ -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))
@@ -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
@@ -0,0 +1,188 @@
1
+ import itertools
2
+ import operator
3
+ from collections.abc import Iterable
4
+ from typing import TypeVar, cast
5
+
6
+ import structlog
7
+ from sqlalchemy import select
8
+ from tabulate import tabulate
9
+
10
+ import orchestrator.workflows
11
+ from orchestrator.cli.helpers.input_helpers import _enumerate_menu_keys, _prompt_user_menu, get_user_input
12
+ from orchestrator.cli.helpers.print_helpers import COLOR, noqa_print, print_fmt
13
+ from orchestrator.db import WorkflowTable, db
14
+ from orchestrator.targets import Target
15
+ from orchestrator.workflow import Workflow
16
+ from orchestrator.workflows import get_workflow
17
+
18
+ logger = structlog.get_logger(__name__)
19
+
20
+ T = TypeVar("T")
21
+
22
+
23
+ def _print_tasks_table(tasks: list[WorkflowTable]) -> None:
24
+ items = [(task.name, task.description) for task in tasks]
25
+ print_fmt(
26
+ tabulate(
27
+ items,
28
+ headers=["#", "name", "description"],
29
+ showindex=itertools.count(1),
30
+ ),
31
+ end="\n\n",
32
+ )
33
+
34
+
35
+ def _add_task(tasks: dict[str, Workflow], state: dict) -> dict:
36
+ print_fmt("\nAdd new task\n", flags=[COLOR.UNDERLINE])
37
+
38
+ if not tasks:
39
+ noqa_print("No registered tasks found to add to the database")
40
+ return state
41
+
42
+ noqa_print("\nWhich task should be added?")
43
+
44
+ already_used_tasks = {task["name"] for task in state["tasks_to_add"] + state["tasks_to_delete"]}
45
+ task_options = [(task, task) for task in tasks.keys() if task not in already_used_tasks]
46
+ task_name = _prompt_user_menu([*task_options, ("cancel", None)], keys=[*_enumerate_menu_keys(task_options), "q"])
47
+ if not task_name:
48
+ # Menu cancelled
49
+ return state
50
+
51
+ task_to_add = {"name": task_name, "description": tasks[task_name].description}
52
+ return {**state, "tasks_to_add": [*state["tasks_to_add"], task_to_add]}
53
+
54
+
55
+ def _delete_task(tasks: Iterable[WorkflowTable], state: dict) -> dict:
56
+ print_fmt("\nDelete existing task\n", flags=[COLOR.UNDERLINE])
57
+ already_used_tasks = {task["name"] for task in state["tasks_to_add"] + state["tasks_to_delete"]}
58
+ items = [(task.name, task.description) for task in tasks if task not in already_used_tasks]
59
+ items = sorted(items, key=operator.itemgetter(1, 1))
60
+ keys = ["#", "name", "description"]
61
+ if not items:
62
+ noqa_print("No deletable tasks in database")
63
+ return state
64
+
65
+ print_fmt(
66
+ tabulate(
67
+ items,
68
+ headers=keys,
69
+ showindex=itertools.count(1),
70
+ ),
71
+ end="\n\n",
72
+ )
73
+ task_num = get_user_input("Which task do you want to delete? (q to cancel) ", "q")
74
+ if not task_num.isdigit():
75
+ return state
76
+ task_index = int(task_num) - 1
77
+ if 0 <= task_index < len(items):
78
+ item = dict(zip(keys[1:], items[task_index]))
79
+ return {**state, "tasks_to_delete": [*state["tasks_to_delete"], item]}
80
+ return state
81
+
82
+
83
+ def _show_state(state: dict) -> dict:
84
+ print_fmt("\nTasks to add:", flags=[COLOR.GREEN])
85
+ print_fmt(
86
+ tabulate(
87
+ state["tasks_to_add"],
88
+ headers="keys",
89
+ showindex=itertools.count(1),
90
+ ),
91
+ end="\n\n",
92
+ )
93
+
94
+ print_fmt("Tasks to delete:", flags=[COLOR.RED])
95
+ print_fmt(
96
+ tabulate(
97
+ state["tasks_to_delete"],
98
+ headers="keys",
99
+ showindex=itertools.count(1),
100
+ ),
101
+ end="\n\n",
102
+ )
103
+ return state
104
+
105
+
106
+ def delete_dangling_tasks(tasks: list[WorkflowTable], state: dict) -> dict:
107
+ if not tasks:
108
+ noqa_print("No dangling tasks found.")
109
+ return state
110
+
111
+ print_fmt(
112
+ "\nThe following tasks were found in the database that do not have a corresponding LazyWorkflowInstance:\n"
113
+ )
114
+ _print_tasks_table(tasks)
115
+ should_delete_dangling_tasks = (
116
+ get_user_input("Do you wish to delete all dangling tasks from the database? [y/n]: ", "n").lower() == "y"
117
+ )
118
+
119
+ if not should_delete_dangling_tasks:
120
+ noqa_print("Cancelling")
121
+ return state
122
+
123
+ already_used_tasks = {task["name"] for task in state["tasks_to_add"] + state["tasks_to_delete"]}
124
+ keys = ["name", "description"]
125
+ items = [
126
+ {"name": task.name, "description": task.description}
127
+ for k, task in zip(keys, tasks)
128
+ if task.name not in already_used_tasks
129
+ ]
130
+ return {**state, "tasks_to_delete": [*state["tasks_to_delete"], *items]}
131
+
132
+
133
+ def create_tasks_migration_wizard() -> tuple[list[dict], list[dict]]:
134
+ """Create tuple with lists for tasks to add and delete.
135
+
136
+ Returns tuple:
137
+ - list of task items to add in the migration
138
+ - list of task items to delete in the migration
139
+ """
140
+ database_tasks = {
141
+ task.name: task for task in list(db.session.scalars(select(WorkflowTable))) if task.target == Target.SYSTEM
142
+ }
143
+ registered_wf_instances = {
144
+ task: cast(Workflow, get_workflow(task)) for task in orchestrator.workflows.ALL_WORKFLOWS.keys()
145
+ }
146
+
147
+ registered_tasks = dict(
148
+ filter(
149
+ lambda task: task[1].target == Target.SYSTEM and task[0] in database_tasks.keys(),
150
+ registered_wf_instances.items(),
151
+ )
152
+ )
153
+ available_tasks = dict(
154
+ filter(
155
+ lambda task: task[1].target == Target.SYSTEM and task[0] not in database_tasks.keys(),
156
+ registered_wf_instances.items(),
157
+ )
158
+ )
159
+ unregistered_tasks = [task for task in database_tasks.values() if task.name not in registered_tasks.keys()]
160
+
161
+ # Main menu loop
162
+ state = {"tasks_to_add": [], "tasks_to_delete": [], "done": False}
163
+ while not state["done"]:
164
+ print_fmt("\nWhat do you want to do?\n", flags=[COLOR.UNDERLINE, COLOR.BOLD])
165
+ choice_fn = _prompt_user_menu(
166
+ [
167
+ ("Add task to database", lambda s: _add_task(available_tasks, s)),
168
+ ("Delete task from database", lambda s: _delete_task(database_tasks.values(), s)),
169
+ (
170
+ "Delete unregistered tasks from database",
171
+ lambda s: delete_dangling_tasks(unregistered_tasks, s),
172
+ ),
173
+ ("Finish and create migration file", lambda s: {**s, "done": True, "abort": False}),
174
+ ("Show current diff", _show_state),
175
+ ("Quit menu without creating a migration file", lambda s: {**s, "done": True, "abort": True}),
176
+ ],
177
+ keys=["a", "x", "c", "y", "d", "q"],
178
+ )
179
+ if choice_fn:
180
+ state = choice_fn(state) # type: ignore
181
+
182
+ if state.get("abort"):
183
+ return [], []
184
+
185
+ logger.info("Create tasks", create_tasks=state["tasks_to_add"])
186
+ logger.info("Delete tasks", delete_tasks=state["tasks_to_delete"])
187
+
188
+ return state["tasks_to_add"], state["tasks_to_delete"] # type: ignore
@@ -21,6 +21,7 @@ from sqlalchemy import BinaryExpression, Cast, ColumnClause, ColumnElement, Stri
21
21
  from sqlalchemy.sql.functions import coalesce
22
22
  from sqlalchemy.sql.operators import eq
23
23
 
24
+ from orchestrator.settings import app_settings
24
25
  from orchestrator.utils.search_query import Node, WhereCondGenerator
25
26
 
26
27
 
@@ -67,7 +68,7 @@ def _filter_string(field: ColumnElement) -> WhereCondGenerator:
67
68
  if node[0] == "ValueGroup":
68
69
  vals = [w[1] for w in node[1] if w[0] in ["Word", "PrefixWord"]] # Only works for (Prefix)Words atm
69
70
  return field.in_(vals)
70
- return field.ilike(f"%{node[1]}%")
71
+ return field.ilike(f"{node[1]}") if app_settings.FILTER_BY_MODE == "exact" else field.ilike(f"%{node[1]}%")
71
72
 
72
73
  return _clause_gen
73
74
 
@@ -5,6 +5,7 @@ from orchestrator.graphql.resolvers.product_block import resolve_product_blocks
5
5
  from orchestrator.graphql.resolvers.resource_type import resolve_resource_types
6
6
  from orchestrator.graphql.resolvers.settings import SettingsMutation, resolve_settings
7
7
  from orchestrator.graphql.resolvers.subscription import resolve_subscription, resolve_subscriptions
8
+ from orchestrator.graphql.resolvers.version import resolve_version
8
9
  from orchestrator.graphql.resolvers.workflow import resolve_workflows
9
10
 
10
11
  __all__ = [
@@ -19,4 +20,5 @@ __all__ = [
19
20
  "resolve_customer",
20
21
  "resolve_resource_types",
21
22
  "resolve_workflows",
23
+ "resolve_version",
22
24
  ]
@@ -0,0 +1,25 @@
1
+ from structlog import get_logger
2
+
3
+ from orchestrator import __version__
4
+ from orchestrator.graphql.schemas.version import VersionType
5
+ from orchestrator.graphql.types import OrchestratorInfo
6
+ from orchestrator.graphql.utils import create_resolver_error_handler
7
+
8
+ logger = get_logger(__name__)
9
+
10
+
11
+ VERSIONS = [f"orchestrator-core: {__version__}"]
12
+
13
+
14
+ def resolve_version(info: OrchestratorInfo) -> VersionType | None:
15
+ logger.debug("resolve_version() called")
16
+ _error_handler = create_resolver_error_handler(info)
17
+
18
+ ver = None
19
+ try:
20
+ ver = VersionType(application_versions=VERSIONS)
21
+ except Exception as e:
22
+ logger.error(f"Error getting version: {str(e)}")
23
+ _error_handler("Failed to retrieve orchestrator_core version", extensions={"code": "PACKAGE_VERSION_ERROR"})
24
+
25
+ return ver
@@ -47,6 +47,7 @@ from orchestrator.graphql.resolvers import (
47
47
  resolve_settings,
48
48
  resolve_subscription,
49
49
  resolve_subscriptions,
50
+ resolve_version,
50
51
  resolve_workflows,
51
52
  )
52
53
  from orchestrator.graphql.schemas import DEFAULT_GRAPHQL_MODELS
@@ -57,6 +58,7 @@ from orchestrator.graphql.schemas.product_block import ProductBlock
57
58
  from orchestrator.graphql.schemas.resource_type import ResourceType
58
59
  from orchestrator.graphql.schemas.settings import StatusType
59
60
  from orchestrator.graphql.schemas.subscription import SubscriptionInterface
61
+ from orchestrator.graphql.schemas.version import VersionType
60
62
  from orchestrator.graphql.schemas.workflow import Workflow
61
63
  from orchestrator.graphql.types import SCALAR_OVERRIDES, OrchestratorContext, ScalarOverrideType, StrawberryModelType
62
64
  from orchestrator.services.process_broadcast_thread import ProcessDataBroadcastThread
@@ -95,6 +97,7 @@ class OrchestratorQuery:
95
97
  resolver=resolve_settings,
96
98
  description="Returns information about cache, workers, and global engine settings",
97
99
  )
100
+ version: VersionType = authenticated_field(resolver=resolve_version, description="Returns version information")
98
101
 
99
102
 
100
103
  @strawberry.federation.type(description="Orchestrator customer Query")
@@ -0,0 +1,6 @@
1
+ import strawberry
2
+
3
+
4
+ @strawberry.type
5
+ class VersionType:
6
+ application_versions: list[str]
@@ -164,6 +164,36 @@ def create_workflow(conn: sa.engine.Connection, workflow: dict) -> None:
164
164
  )
165
165
 
166
166
 
167
+ def create_task(conn: sa.engine.Connection, task: dict) -> None:
168
+ """Create a new task.
169
+
170
+ Args:
171
+ conn: DB connection as available in migration main file.
172
+ task: Dict with data for a new workflow.
173
+ name: Name of the task.
174
+ description: Description of the workflow.
175
+
176
+ Usage:
177
+ >>> task = {
178
+ "name": "task_name",
179
+ "description": "task description",
180
+ }
181
+ >>> create_workflow(conn, task)
182
+ """
183
+
184
+ conn.execute(
185
+ sa.text(
186
+ """
187
+ INSERT INTO workflows(name, target, description)
188
+ VALUES (:name, 'SYSTEM', :description)
189
+ ON CONFLICT DO NOTHING
190
+ RETURNING workflow_id
191
+ """
192
+ ),
193
+ task,
194
+ )
195
+
196
+
167
197
  def create_workflows(conn: sa.engine.Connection, new: dict) -> None:
168
198
  """Create new workflows.
169
199
 
@@ -894,7 +924,7 @@ def delete_product_block(conn: sa.engine.Connection, name: str) -> None:
894
924
 
895
925
 
896
926
  def delete_workflow(conn: sa.engine.Connection, name: str) -> None:
897
- """Delete a workflow and it's occurrences in products.
927
+ """Delete a workflow and its occurrences in products.
898
928
 
899
929
  Note: the cascading delete rules in postgres will also ensure removal from `products_workflows`.
900
930
 
@@ -14,6 +14,7 @@
14
14
  import secrets
15
15
  import string
16
16
  from pathlib import Path
17
+ from typing import Literal
17
18
 
18
19
  from pydantic import PostgresDsn, RedisDsn
19
20
  from pydantic_settings import BaseSettings
@@ -82,6 +83,7 @@ class AppSettings(BaseSettings):
82
83
  ENABLE_GRAPHQL_PROFILING_EXTENSION: bool = False
83
84
  ENABLE_GRAPHQL_STATS_EXTENSION: bool = False
84
85
  VALIDATE_OUT_OF_SYNC_SUBSCRIPTIONS: bool = False
86
+ FILTER_BY_MODE: Literal["partial", "exact"] = "exact"
85
87
 
86
88
 
87
89
  app_settings = AppSettings()
@@ -5,12 +5,10 @@ from itertools import chain
5
5
  from typing import Any, Union, cast
6
6
 
7
7
  import structlog
8
- from sqlalchemy import BinaryExpression, ColumnElement, CompoundSelect, Select, column, false, func, not_, or_, select
8
+ from sqlalchemy import BinaryExpression, ColumnElement, CompoundSelect, Select, false, not_, or_
9
9
  from sqlalchemy.orm import InstrumentedAttribute, MappedColumn
10
10
 
11
- from orchestrator.db import db
12
11
  from orchestrator.db.database import BaseModel
13
- from orchestrator.db.helpers import get_postgres_version
14
12
  from orchestrator.utils.helpers import camel_to_snake
15
13
 
16
14
  logger = structlog.getLogger(__name__)
@@ -257,28 +255,10 @@ class Parser:
257
255
 
258
256
 
259
257
  class TSQueryVisitor:
260
-
261
258
  _glue_chars = re.compile(r"[-_@#$%^&]")
262
259
 
263
260
  @staticmethod
264
261
  def _split_term(term: str) -> list[str]:
265
- """Workaround for the way Postgres <14 parses text with to_tsquery.
266
-
267
- For Postgres <14, we issue a database query to parse the text for us in a way that is compatible with to_tsvector. This is the same behavior as Postgres >=14.
268
- """
269
-
270
- # TODO: Remove this workaround when support for Postgres <14 is dropped
271
- # https://github.com/workfloworchestrator/orchestrator-core/issues/621
272
-
273
- if get_postgres_version() < 14:
274
- # tokid 12 is the space separator token
275
- stmt = (
276
- select(func.array_agg(column("token")))
277
- .select_from(func.ts_parse("default", func.replace(term, "-", "_")))
278
- .where(column("tokid") != 12)
279
- )
280
- return db.session.scalar(stmt) or []
281
-
282
262
  return [part.strip() for part in TSQueryVisitor._glue_chars.split(term) if part and not part.isspace()]
283
263
 
284
264
  @staticmethod
@@ -183,11 +183,12 @@ def _build_arguments(func: StepFunc | InputStepFunc, state: State) -> list: # n
183
183
  raise KeyError(f"Could not find key '{name}' in state.")
184
184
  elif is_list_type(param.annotation, SubscriptionModel):
185
185
  subscription_ids = map(_get_sub_id, state.get(name, []))
186
- subscriptions = [
187
- # Actual type is first argument from list type
188
- get_args(param.annotation)[0].from_subscription(subscription_id)
189
- for subscription_id in subscription_ids
190
- ]
186
+ # Actual type is first argument from list type
187
+ if (actual_type := get_args(param.annotation)[0]) == Any:
188
+ raise ValueError(
189
+ f"Step function argument '{param.name}' cannot be serialized from database with type 'Any'"
190
+ )
191
+ subscriptions = [actual_type.from_subscription(subscription_id) for subscription_id in subscription_ids]
191
192
  arguments.append(subscriptions)
192
193
  elif is_optional_type(param.annotation, SubscriptionModel):
193
194
  subscription_id = _get_sub_id(state.get(name))