orchestrator-core 3.1.0rc1__tar.gz → 3.1.2rc1__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 (647) hide show
  1. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.bumpversion.cfg +1 -1
  2. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/workflows/run-codspeed-tests.yml +1 -1
  3. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/workflows/run-linting-tests.yml +2 -2
  4. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/workflows/run-unit-tests.yml +2 -0
  5. orchestrator_core-3.1.2rc1/PKG-INFO +321 -0
  6. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/app/scaling.md +106 -0
  7. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/__init__.py +1 -1
  8. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/models.py +5 -3
  9. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/env.py +14 -1
  10. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2020-10-19_c112305b07d3_initial_schema_migration.py +1 -1
  11. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2023-05-25_b1970225392d_add_subscription_metadata_workflow.py +1 -1
  12. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2025-02-12_bac6be6f2b4f_added_input_state_table.py +1 -1
  13. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/state.py +73 -53
  14. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/pyproject.toml +19 -17
  15. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_subscriptions.py +14 -6
  16. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/shared.py +1 -1
  17. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/conftest.py +35 -9
  18. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/domain/test_base_performance.py +42 -7
  19. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/forms/test_display_subscription.py +1 -5
  20. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_subscription.py +18 -6
  21. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_subscriptions.py +17 -5
  22. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/helpers.py +1 -1
  23. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/utils/test_state.py +190 -1
  24. orchestrator_core-3.1.0rc1/PKG-INFO +0 -116
  25. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.coveragerc +0 -0
  26. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  27. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  28. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/dependabot.yml +0 -0
  29. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/workflows/README.md +0 -0
  30. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/workflows/build-push-container.yml +0 -0
  31. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/workflows/changelog.yml +0 -0
  32. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/workflows/codeql-analysis.yml +0 -0
  33. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/workflows/gh-pages.yml +0 -0
  34. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/workflows/issues.yml +0 -0
  35. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/workflows/publish-package.yml +0 -0
  36. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.github/workflows/scheduled-build.yml +0 -0
  37. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.gitignore +0 -0
  38. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.pre-commit-config.yaml +0 -0
  39. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/.stignore +0 -0
  40. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/CHANGELOG.md +0 -0
  41. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/Dockerfile +0 -0
  42. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/LICENSE +0 -0
  43. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/NOTICE +0 -0
  44. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/README.md +0 -0
  45. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/codecov.yml +0 -0
  46. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/application/domainmodels.md +0 -0
  47. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/application/forms-frontend.md +0 -0
  48. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/application/tasks.md +0 -0
  49. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/application/workflow.md +0 -0
  50. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/framework.md +0 -0
  51. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/img/base-orchestrator-setup.png +0 -0
  52. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/img/custom-orchestrator-setup.png +0 -0
  53. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/orchestration/img/Custom-orchestrator-ui-using-override.png +0 -0
  54. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/orchestration/img/Standard-orchestrator-ui.png +0 -0
  55. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/orchestration/orchestrator-ui.md +0 -0
  56. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/orchestration/philosophy.md +0 -0
  57. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/backfilling.md +0 -0
  58. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/context.md +0 -0
  59. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/imports.md +0 -0
  60. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/introduction.md +0 -0
  61. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/ip_static.md +0 -0
  62. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/ip_static.png +0 -0
  63. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/l2_point_to_point.md +0 -0
  64. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/l2_point_to_point.png +0 -0
  65. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/l2_vpn.md +0 -0
  66. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/l2_vpn.png +0 -0
  67. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/modelling.md +0 -0
  68. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/node.md +0 -0
  69. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/node.png +0 -0
  70. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/port.md +0 -0
  71. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/port.png +0 -0
  72. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/product_block_graph.md +0 -0
  73. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/product_block_graph.png +0 -0
  74. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/standards.md +0 -0
  75. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/product_modelling/terminology.md +0 -0
  76. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/architecture/tldr.md +0 -0
  77. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/contributing/development.md +0 -0
  78. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/contributing/guidelines.md +0 -0
  79. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/contributing/testing.md +0 -0
  80. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/css/custom.css +0 -0
  81. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/css/style.css +0 -0
  82. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/css/termynal.css +0 -0
  83. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/getting-started/base.md +0 -0
  84. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/getting-started/docker.md +0 -0
  85. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/getting-started/orchestration-ui.md +0 -0
  86. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/getting-started/prepare-source-folder.md +0 -0
  87. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/getting-started/versions.md +0 -0
  88. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/img/WFO-Emblem-White.png +0 -0
  89. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/img/favicon.ico +0 -0
  90. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/index.md +0 -0
  91. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/js/custom.js +0 -0
  92. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/js/termynal.js +0 -0
  93. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/migration-guide/2.0.md +0 -0
  94. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/migration-guide/3.0.md +0 -0
  95. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/api.md +0 -0
  96. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/app/app.md +0 -0
  97. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/auth-backend-and-frontend.md +0 -0
  98. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/cli.md +0 -0
  99. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/database.md +0 -0
  100. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/domain_models/generator.md +0 -0
  101. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/domain_models/instantiating.md +0 -0
  102. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/domain_models/model_attributes.md +0 -0
  103. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/domain_models/overview.md +0 -0
  104. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/domain_models/product_blocks.md +0 -0
  105. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/domain_models/product_types.md +0 -0
  106. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/domain_models/properties.md +0 -0
  107. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/domain_models/pydantic_hooks.md +0 -0
  108. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/domain_models/type_casting.md +0 -0
  109. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/domain_models/union_types.md +0 -0
  110. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/domain_models/validation.md +0 -0
  111. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/forms.md +0 -0
  112. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/graphql.md +0 -0
  113. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/python.md +0 -0
  114. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/search.md +0 -0
  115. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/search_overview.png +0 -0
  116. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/serialization.md +0 -0
  117. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/tasks.md +0 -0
  118. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/tests.md +0 -0
  119. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/tldr.md +0 -0
  120. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/websockets.md +0 -0
  121. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/workflows/callbacks.md +0 -0
  122. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/workflows/workflow-lifecycles.md +0 -0
  123. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/reference-docs/workflows/workflow-steps.md +0 -0
  124. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/bootstrap.md +0 -0
  125. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/create-your-own.md +0 -0
  126. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/docker-installation.md +0 -0
  127. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/domain-models.md +0 -0
  128. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/execute-workflows.md +0 -0
  129. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/generator.md +0 -0
  130. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/l2_point_to_point.png +0 -0
  131. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/node-create.md +0 -0
  132. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/node-modify.md +0 -0
  133. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/node-terminate.md +0 -0
  134. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/node-validate.md +0 -0
  135. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/overview.md +0 -0
  136. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/scenario.md +0 -0
  137. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/workflow-basics.md +0 -0
  138. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/advanced/workflow-introduction.md +0 -0
  139. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/create-user-group.md +0 -0
  140. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/create-user.md +0 -0
  141. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/database-migration.md +0 -0
  142. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/debian.md +0 -0
  143. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/docker.md +0 -0
  144. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/domain-models.md +0 -0
  145. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/explore.md +0 -0
  146. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/input-forms.md +0 -0
  147. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/macos.md +0 -0
  148. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/modify-user-group.md +0 -0
  149. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/modify-user.md +0 -0
  150. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/register-workflows.md +0 -0
  151. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/start-applications.md +0 -0
  152. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/terminate-user-group.md +0 -0
  153. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/terminate-user.md +0 -0
  154. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/workflow-introduction.md +0 -0
  155. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/beginner/workshop-overview.md +0 -0
  156. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/images/Software-topology.drawio.png +0 -0
  157. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/images/clab_topology.png +0 -0
  158. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/images/metadata_products.png +0 -0
  159. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/images/netbox_devices_active.png +0 -0
  160. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/images/subscriptions.png +0 -0
  161. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/docs/workshops/images/topology.drawio.png +0 -0
  162. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/includes/abbreviations.md +0 -0
  163. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/mkdocs.yml +0 -0
  164. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/nitpick-style.toml +0 -0
  165. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/__init__.py +0 -0
  166. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/__init__.py +0 -0
  167. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/api.py +0 -0
  168. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/__init__.py +0 -0
  169. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/health.py +0 -0
  170. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/processes.py +0 -0
  171. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/product_blocks.py +0 -0
  172. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/products.py +0 -0
  173. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/resource_types.py +0 -0
  174. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/settings.py +0 -0
  175. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py +0 -0
  176. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/subscriptions.py +0 -0
  177. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/translations.py +0 -0
  178. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/user.py +0 -0
  179. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/workflows.py +0 -0
  180. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/api_v1/endpoints/ws.py +0 -0
  181. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/error_handling.py +0 -0
  182. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/helpers.py +0 -0
  183. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/api/models.py +0 -0
  184. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/app.py +0 -0
  185. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/__init__.py +0 -0
  186. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/database.py +0 -0
  187. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/domain_gen_helpers/__init__.py +0 -0
  188. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py +0 -0
  189. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/domain_gen_helpers/helpers.py +0 -0
  190. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/domain_gen_helpers/product_block_helpers.py +0 -0
  191. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/domain_gen_helpers/product_helpers.py +0 -0
  192. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/domain_gen_helpers/resource_type_helpers.py +0 -0
  193. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/domain_gen_helpers/types.py +0 -0
  194. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generate.py +0 -0
  195. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/__init__.py +0 -0
  196. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/custom_templates/README +0 -0
  197. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/custom_templates/additional_create_imports.j2 +0 -0
  198. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/custom_templates/additional_create_input_fields.j2 +0 -0
  199. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/custom_templates/additional_create_steps.j2 +0 -0
  200. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/custom_templates/additional_modify_imports.j2 +0 -0
  201. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/custom_templates/additional_modify_input_fields.j2 +0 -0
  202. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/custom_templates/additional_modify_steps.j2 +0 -0
  203. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_imports.j2 +0 -0
  204. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_input_fields.j2 +0 -0
  205. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_steps.j2 +0 -0
  206. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/generator/__init__.py +0 -0
  207. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/generator/enums.py +0 -0
  208. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/generator/helpers.py +0 -0
  209. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/generator/migration.py +0 -0
  210. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/generator/product.py +0 -0
  211. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/generator/product_block.py +0 -0
  212. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/generator/settings.py +0 -0
  213. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/generator/translations.py +0 -0
  214. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/generator/unittest.py +0 -0
  215. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/generator/validations.py +0 -0
  216. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/generator/workflow.py +0 -0
  217. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/products/workshop/circuit.yaml +0 -0
  218. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/products/workshop/node.yaml +0 -0
  219. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/products/workshop/user.yaml +0 -0
  220. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/products/workshop/user_group.yaml +0 -0
  221. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/additional_create_imports.j2 +0 -0
  222. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/additional_create_steps.j2 +0 -0
  223. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/additional_modify_imports.j2 +0 -0
  224. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/additional_modify_steps.j2 +0 -0
  225. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/additional_terminate_steps.j2 +0 -0
  226. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/constrained_int_definitions.j2 +0 -0
  227. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/create_data_head.j2 +0 -0
  228. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/create_product.j2 +0 -0
  229. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/enums.j2 +0 -0
  230. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/lazy_workflow_instance.j2 +0 -0
  231. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/list_definitions.j2 +0 -0
  232. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/macros.j2 +0 -0
  233. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/modify_product.j2 +0 -0
  234. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/new_product_migration.j2 +0 -0
  235. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/product.j2 +0 -0
  236. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/product_block.j2 +0 -0
  237. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/shared_forms.j2 +0 -0
  238. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/shared_workflows.j2 +0 -0
  239. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/subscription_model_registry.j2 +0 -0
  240. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/terminate_product.j2 +0 -0
  241. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/test_create_workflow.j2 +0 -0
  242. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/test_modify_workflow.j2 +0 -0
  243. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/test_product_type.j2 +0 -0
  244. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/test_terminate_workflow.j2 +0 -0
  245. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/test_validate_workflow.j2 +0 -0
  246. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/generator/templates/validate_product.j2 +0 -0
  247. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/helpers/__init__.py +0 -0
  248. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/helpers/input_helpers.py +0 -0
  249. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/helpers/print_helpers.py +0 -0
  250. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/main.py +0 -0
  251. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/migrate_domain_models.py +0 -0
  252. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/migrate_tasks.py +0 -0
  253. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/migrate_workflows.py +0 -0
  254. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/migration_helpers.py +0 -0
  255. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/cli/scheduler.py +0 -0
  256. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/config/__init__.py +0 -0
  257. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/config/assignee.py +0 -0
  258. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/__init__.py +0 -0
  259. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/database.py +0 -0
  260. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/filters/__init__.py +0 -0
  261. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/filters/filters.py +0 -0
  262. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/filters/process.py +0 -0
  263. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/filters/product.py +0 -0
  264. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/filters/product_block.py +0 -0
  265. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/filters/resource_type.py +0 -0
  266. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/filters/search_filters/__init__.py +0 -0
  267. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/filters/search_filters/inferred_filter.py +0 -0
  268. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/filters/subscription.py +0 -0
  269. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/filters/workflow.py +0 -0
  270. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/helpers.py +0 -0
  271. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/listeners.py +0 -0
  272. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/loaders.py +0 -0
  273. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/range/__init__.py +0 -0
  274. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/range/range.py +0 -0
  275. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/sorting/__init__.py +0 -0
  276. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/sorting/process.py +0 -0
  277. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/sorting/product.py +0 -0
  278. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/sorting/product_block.py +0 -0
  279. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/sorting/resource_type.py +0 -0
  280. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/sorting/sorting.py +0 -0
  281. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/sorting/subscription.py +0 -0
  282. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/db/sorting/workflow.py +0 -0
  283. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/devtools/__init__.py +0 -0
  284. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/devtools/populator.py +0 -0
  285. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/devtools/scripts/__init__.py +0 -0
  286. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/devtools/scripts/migrate_20.py +0 -0
  287. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/devtools/scripts/migrate_30.py +0 -0
  288. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/devtools/scripts/shared.py +0 -0
  289. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/distlock/__init__.py +0 -0
  290. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/distlock/distlock_manager.py +0 -0
  291. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/distlock/managers/__init__.py +0 -0
  292. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/distlock/managers/memory_distlock_manager.py +0 -0
  293. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/distlock/managers/redis_distlock_manager.py +0 -0
  294. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/domain/__init__.py +0 -0
  295. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/domain/base.py +0 -0
  296. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/domain/customer_description.py +0 -0
  297. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/domain/helpers.py +0 -0
  298. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/domain/lifecycle.py +0 -0
  299. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/exception_handlers.py +0 -0
  300. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/forms/__init__.py +0 -0
  301. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/forms/validators/__init__.py +0 -0
  302. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/forms/validators/customer_contact_list.py +0 -0
  303. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/forms/validators/customer_id.py +0 -0
  304. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/forms/validators/display_subscription.py +0 -0
  305. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/forms/validators/network_type_validators.py +0 -0
  306. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/forms/validators/product_id.py +0 -0
  307. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/__init__.py +0 -0
  308. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/autoregistration.py +0 -0
  309. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/extensions/__init__.py +0 -0
  310. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/extensions/stats.py +0 -0
  311. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/loaders/__init__.py +0 -0
  312. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/loaders/subscriptions.py +0 -0
  313. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/mutations/customer_description.py +0 -0
  314. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/mutations/start_process.py +0 -0
  315. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/pagination.py +0 -0
  316. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/resolvers/__init__.py +0 -0
  317. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/resolvers/customer.py +0 -0
  318. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/resolvers/helpers.py +0 -0
  319. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/resolvers/process.py +0 -0
  320. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/resolvers/product.py +0 -0
  321. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/resolvers/product_block.py +0 -0
  322. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/resolvers/resource_type.py +0 -0
  323. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/resolvers/settings.py +0 -0
  324. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/resolvers/subscription.py +0 -0
  325. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/resolvers/version.py +0 -0
  326. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/resolvers/workflow.py +0 -0
  327. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schema.py +0 -0
  328. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/__init__.py +0 -0
  329. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/customer.py +0 -0
  330. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/customer_description.py +0 -0
  331. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/errors.py +0 -0
  332. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/fixed_input.py +0 -0
  333. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/helpers.py +0 -0
  334. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/process.py +0 -0
  335. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/product.py +0 -0
  336. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/product_block.py +0 -0
  337. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/resource_type.py +0 -0
  338. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/settings.py +0 -0
  339. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/strawberry_pydantic_patch.py +0 -0
  340. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/subscription.py +0 -0
  341. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/version.py +0 -0
  342. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/schemas/workflow.py +0 -0
  343. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/types.py +0 -0
  344. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/utils/__init__.py +0 -0
  345. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/utils/create_resolver_error_handler.py +0 -0
  346. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/utils/get_query_loaders.py +0 -0
  347. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/utils/get_selected_fields.py +0 -0
  348. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/utils/get_selected_paths.py +0 -0
  349. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/utils/get_subscription_product_blocks.py +0 -0
  350. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/utils/is_query_detailed.py +0 -0
  351. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/utils/override_class.py +0 -0
  352. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/graphql/utils/to_graphql_result_page.py +0 -0
  353. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/log_config.py +0 -0
  354. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/README +0 -0
  355. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/alembic.ini +0 -0
  356. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/helpers.py +0 -0
  357. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/script.py.mako +0 -0
  358. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/templates/alembic.ini.j2 +0 -0
  359. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/templates/env.py.j2 +0 -0
  360. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/templates/helpers.py.j2 +0 -0
  361. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2020-10-19_3323bcb934e7_fix_tsv_triggers.py +0 -0
  362. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2020-10-19_a76b9185b334_add_generic_workflows_to_core.py +0 -0
  363. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2021-04-06_3c8b9185c221_add_validate_products_task.py +0 -0
  364. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2021-07-01_6896a54e9483_add_product_block_relations.py +0 -0
  365. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2021-11-17_19cdd3ab86f6_fix_parse_websearch.py +0 -0
  366. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2022-02-16_bed6bc0b197a_rename_parent_and_child_block_relations.py +0 -0
  367. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2023-03-06_e05bb1967eff_add_subscriptions_search_view.py +0 -0
  368. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.py +0 -0
  369. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.sql +0 -0
  370. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.py +0 -0
  371. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.sql +0 -0
  372. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.py +0 -0
  373. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.sql +0 -0
  374. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2023-12-06_048219045729_add_workflow_id_to_processes_table.py +0 -0
  375. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.py +0 -0
  376. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.sql +0 -0
  377. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2025-01-08_4c5859620539_add_version_column_to_subscription.py +0 -0
  378. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/migrations/versions/schema/2025-10-19_4fjdn13f83ga_add_validate_product_type_task.py +0 -0
  379. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/py.typed +0 -0
  380. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schedules/__init__.py +0 -0
  381. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schedules/resume_workflows.py +0 -0
  382. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schedules/scheduling.py +0 -0
  383. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schedules/task_vacuum.py +0 -0
  384. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schedules/validate_products.py +0 -0
  385. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schedules/validate_subscriptions.py +0 -0
  386. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schemas/__init__.py +0 -0
  387. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schemas/base.py +0 -0
  388. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schemas/engine_settings.py +0 -0
  389. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schemas/fixed_input.py +0 -0
  390. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schemas/problem_detail.py +0 -0
  391. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schemas/process.py +0 -0
  392. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schemas/product.py +0 -0
  393. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schemas/product_block.py +0 -0
  394. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schemas/resource_type.py +0 -0
  395. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schemas/subscription.py +0 -0
  396. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schemas/subscription_descriptions.py +0 -0
  397. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/schemas/workflow.py +0 -0
  398. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/security.py +0 -0
  399. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/__init__.py +0 -0
  400. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/celery.py +0 -0
  401. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/fixed_inputs.py +0 -0
  402. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/input_state.py +0 -0
  403. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/process_broadcast_thread.py +0 -0
  404. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/processes.py +0 -0
  405. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/products.py +0 -0
  406. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/resource_types.py +0 -0
  407. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/settings.py +0 -0
  408. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/subscription_relations.py +0 -0
  409. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/subscriptions.py +0 -0
  410. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/tasks.py +0 -0
  411. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/translations.py +0 -0
  412. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/services/workflows.py +0 -0
  413. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/settings.py +0 -0
  414. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/targets.py +0 -0
  415. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/types.py +0 -0
  416. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/__init__.py +0 -0
  417. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/crypt.py +0 -0
  418. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/datetime.py +0 -0
  419. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/deprecation_logger.py +0 -0
  420. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/docs.py +0 -0
  421. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/enrich_process.py +0 -0
  422. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/errors.py +0 -0
  423. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/fixed_inputs.py +0 -0
  424. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/functional.py +0 -0
  425. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/get_subscription_dict.py +0 -0
  426. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/get_updated_properties.py +0 -0
  427. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/helpers.py +0 -0
  428. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/json.py +0 -0
  429. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/redis.py +0 -0
  430. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/redis_client.py +0 -0
  431. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/search_query.py +0 -0
  432. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/strings.py +0 -0
  433. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/utils/validate_data_version.py +0 -0
  434. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/version.py +0 -0
  435. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/websocket/__init__.py +0 -0
  436. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/websocket/managers/broadcast_websocket_manager.py +0 -0
  437. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/websocket/managers/memory_websocket_manager.py +0 -0
  438. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/websocket/websocket_manager.py +0 -0
  439. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/workflow.py +0 -0
  440. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/workflows/__init__.py +0 -0
  441. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/workflows/modify_note.py +0 -0
  442. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/workflows/removed_workflow.py +0 -0
  443. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/workflows/steps.py +0 -0
  444. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/workflows/tasks/__init__.py +0 -0
  445. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/workflows/tasks/cleanup_tasks_log.py +0 -0
  446. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/workflows/tasks/resume_workflows.py +0 -0
  447. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/workflows/tasks/validate_product_type.py +0 -0
  448. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/workflows/tasks/validate_products.py +0 -0
  449. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/workflows/translations/en-GB.json +0 -0
  450. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/orchestrator/workflows/utils.py +0 -0
  451. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/setup.cfg +0 -0
  452. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/setup.py +0 -0
  453. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/__init__.py +0 -0
  454. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/__init__.py +0 -0
  455. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/conftest.py +0 -0
  456. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/fixtures/test_orchestrator/__init__.py +0 -0
  457. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/__init__.py +0 -0
  458. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/test_product_populator.py +0 -0
  459. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/fixtures/test_orchestrator/main.py +0 -0
  460. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/__init__.py +0 -0
  461. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/test_product_blocks.py +0 -0
  462. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/fixtures/test_orchestrator/products/__init__.py +0 -0
  463. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/fixtures/test_orchestrator/products/test_product.py +0 -0
  464. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/fixtures/test_orchestrator/workflows/__init__.py +0 -0
  465. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/fixtures/test_orchestrator/workflows/create_test_product.py +0 -0
  466. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/acceptance_tests/test_test_product.py +0 -0
  467. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/__init__.py +0 -0
  468. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/__init__.py +0 -0
  469. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_caching.py +0 -0
  470. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_health.py +0 -0
  471. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_helpers.py +0 -0
  472. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_models.py +0 -0
  473. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_processes.py +0 -0
  474. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_processes_ws.py +0 -0
  475. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_product_blocks.py +0 -0
  476. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_products.py +0 -0
  477. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_resource_types.py +0 -0
  478. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_settings.py +0 -0
  479. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_subscription_customer_descriptions.py +0 -0
  480. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_workflows.py +0 -0
  481. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/api/test_ws.py +0 -0
  482. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/__init__.py +0 -0
  483. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/conftest.py +0 -0
  484. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/alembic.ini +0 -0
  485. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/main.py +0 -0
  486. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/migrations/env.py +0 -0
  487. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/migrations/helpers.py +0 -0
  488. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/migrations/script.py.mako +0 -0
  489. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_59e1199aff7f_create_data_head.py +0 -0
  490. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_85be1c80731c_add_example2.py +0 -0
  491. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_ea9e6c9de75c_add_example1.py +0 -0
  492. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-06-07_380a5b0c928c_add_example4.py +0 -0
  493. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/products/__init__.py +0 -0
  494. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/products/product_blocks/__init__.py +0 -0
  495. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example1.py +0 -0
  496. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example2.py +0 -0
  497. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example4.py +0 -0
  498. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example4sub.py +0 -0
  499. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/products/product_types/__init__.py +0 -0
  500. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/products/product_types/example1.py +0 -0
  501. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/products/product_types/example2.py +0 -0
  502. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/products/product_types/example4.py +0 -0
  503. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example1.py +0 -0
  504. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example2.py +0 -0
  505. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example4.py +0 -0
  506. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_create_example1.py +0 -0
  507. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_modify_example1.py +0 -0
  508. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_terminate_example1.py +0 -0
  509. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_validate_example1.py +0 -0
  510. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_create_example2.py +0 -0
  511. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_modify_example2.py +0 -0
  512. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_terminate_example2.py +0 -0
  513. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_validate_example2.py +0 -0
  514. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_create_example4.py +0 -0
  515. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_modify_example4.py +0 -0
  516. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_terminate_example4.py +0 -0
  517. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_validate_example4.py +0 -0
  518. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/translations/en-GB.json +0 -0
  519. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/__init__.py +0 -0
  520. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example1/create_example1.py +0 -0
  521. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example1/modify_example1.py +0 -0
  522. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example1/shared/forms.py +0 -0
  523. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example1/terminate_example1.py +0 -0
  524. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example1/validate_example1.py +0 -0
  525. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example2/create_example2.py +0 -0
  526. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example2/modify_example2.py +0 -0
  527. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example2/shared/forms.py +0 -0
  528. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example2/terminate_example2.py +0 -0
  529. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example4/create_example4.py +0 -0
  530. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example4/modify_example4.py +0 -0
  531. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example4/shared/forms.py +0 -0
  532. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate/workflows/example4/terminate_example4.py +0 -0
  533. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/generate.sh +0 -0
  534. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/invalid_product_config1.yaml +0 -0
  535. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/invalid_product_config2.yaml +0 -0
  536. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/product_config1.yaml +0 -0
  537. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/product_config2.yaml +0 -0
  538. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/product_config3.yaml +0 -0
  539. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/data/product_config4.yaml +0 -0
  540. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/generator/__init__.py +0 -0
  541. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/generator/test_enums.py +0 -0
  542. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/helpers.py +0 -0
  543. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/test_cli_generate.py +0 -0
  544. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/test_config_validation.py +0 -0
  545. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/test_generate_code.py +0 -0
  546. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/test_migrate_domain_models_with_instances.py +0 -0
  547. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/cli/test_migrate_domain_models_without_instances.py +0 -0
  548. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/config.py +0 -0
  549. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/db/__init__.py +0 -0
  550. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/db/test_listeners.py +0 -0
  551. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/domain/__init__.py +0 -0
  552. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/domain/test_base.py +0 -0
  553. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/domain/test_base_multiple.py +0 -0
  554. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/domain/test_base_with_list_union.py +0 -0
  555. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/domain/test_base_with_union.py +0 -0
  556. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/domain/test_lifecycle.py +0 -0
  557. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/__init__.py +0 -0
  558. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/processes.py +0 -0
  559. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/__init__.py +0 -0
  560. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_blocks/__init__.py +0 -0
  561. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_list_nested.py +0 -0
  562. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_one.py +0 -0
  563. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_one_nested.py +0 -0
  564. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_with_list_union.py +0 -0
  565. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_with_union.py +0 -0
  566. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_one.py +0 -0
  567. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_two.py +0 -0
  568. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_types/__init__.py +0 -0
  569. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_nested.py +0 -0
  570. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_union.py +0 -0
  571. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_union_overlap.py +0 -0
  572. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_types/product_type_one.py +0 -0
  573. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_types/product_type_one_nested.py +0 -0
  574. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_list_union.py +0 -0
  575. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_one.py +0 -0
  576. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_two.py +0 -0
  577. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_union.py +0 -0
  578. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_types/product_type_union.py +0 -0
  579. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/product_types/subscription_relations.py +0 -0
  580. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/products/resource_types.py +0 -0
  581. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/fixtures/workflows.py +0 -0
  582. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/forms/__init__.py +0 -0
  583. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/forms/test_customer_contact_list.py +0 -0
  584. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/forms/test_customer_id.py +0 -0
  585. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/forms/test_generic_validators.py +0 -0
  586. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/__init__.py +0 -0
  587. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/conftest.py +0 -0
  588. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/extensions/__init__.py +0 -0
  589. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/extensions/test_stats.py +0 -0
  590. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/mutations/helpers.py +0 -0
  591. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/mutations/test_customer_description.py +0 -0
  592. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/mutations/test_start_process.py +0 -0
  593. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_customer.py +0 -0
  594. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_process.py +0 -0
  595. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_processes.py +0 -0
  596. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_product.py +0 -0
  597. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_product_blocks.py +0 -0
  598. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_resource_types.py +0 -0
  599. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_settings.py +0 -0
  600. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_sort_and_filter_fields.py +0 -0
  601. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_subscription_relations.py +0 -0
  602. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_version.py +0 -0
  603. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/test_workflows.py +0 -0
  604. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/utils/__init__.py +0 -0
  605. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/utils/fixtures.py +0 -0
  606. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/utils/test_autoregistration.py +0 -0
  607. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/utils/test_get_query_loaders.py +0 -0
  608. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/utils/test_get_selected_paths.py +0 -0
  609. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/utils/test_is_query_detailed.py +0 -0
  610. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/utils/test_is_querying_page_data.py +0 -0
  611. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/graphql/utils/test_override_class.py +0 -0
  612. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/schedules/__init__.py +0 -0
  613. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/schedules/test_scheduling.py +0 -0
  614. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/services/__init__.py +0 -0
  615. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/services/test_input_state.py +0 -0
  616. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/services/test_processes.py +0 -0
  617. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/services/test_products.py +0 -0
  618. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/services/test_subscription_relations.py +0 -0
  619. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/services/test_subscriptions.py +0 -0
  620. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/services/test_translations.py +0 -0
  621. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/test_db.py +0 -0
  622. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/test_types.py +0 -0
  623. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/test_workflow.py +0 -0
  624. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/utils/__init__.py +0 -0
  625. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/utils/get_subscription_dict.py +0 -0
  626. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/utils/test_datetime.py +0 -0
  627. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/utils/test_errors.py +0 -0
  628. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/utils/test_functional.py +0 -0
  629. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/utils/test_get_updated_properties.py +0 -0
  630. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/utils/test_json.py +0 -0
  631. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/utils/test_search_query.py +0 -0
  632. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/utils/test_strings.py +0 -0
  633. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/websocket/__init__.py +0 -0
  634. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/websocket/test_broadcast.py +0 -0
  635. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/__init__.py +0 -0
  636. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/conftest.py +0 -0
  637. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/shared/__init__.py +0 -0
  638. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/shared/test_validate_subscriptions.py +0 -0
  639. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/tasks/__init__.py +0 -0
  640. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/tasks/test_clean_up_task_log.py +0 -0
  641. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/tasks/test_resume_workflows.py +0 -0
  642. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/tasks/test_validate_product_type.py +0 -0
  643. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/tasks/test_validate_products.py +0 -0
  644. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/test_async_workflow.py +0 -0
  645. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/test_config_db_code.py +0 -0
  646. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/test_generic_workflow_steps.py +0 -0
  647. {orchestrator_core-3.1.0rc1 → orchestrator_core-3.1.2rc1}/test/unit_tests/workflows/test_modify_note.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 3.1.0rc1
2
+ current_version = 3.1.1rc1
3
3
  commit = False
4
4
  tag = False
5
5
  parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(rc(?P<build>\d+))?
@@ -11,7 +11,7 @@ jobs:
11
11
  name: Run benchmarks
12
12
  runs-on: ubuntu-latest
13
13
  container:
14
- image: python:3.11
14
+ image: python:3.13
15
15
  options: --privileged
16
16
  services:
17
17
  postgres:
@@ -5,9 +5,9 @@ name: Linting tests
5
5
 
6
6
  on:
7
7
  push:
8
- pull_request:
9
- branches: [master]
8
+ branches: [ main ]
10
9
  workflow_call:
10
+ pull_request:
11
11
 
12
12
  jobs:
13
13
  build:
@@ -1,7 +1,9 @@
1
1
  name: Unit tests
2
2
  on:
3
3
  push:
4
+ branches: [ main ]
4
5
  workflow_call:
6
+ pull_request:
5
7
 
6
8
  jobs:
7
9
  container_job:
@@ -0,0 +1,321 @@
1
+ Metadata-Version: 2.4
2
+ Name: orchestrator-core
3
+ Version: 3.1.2rc1
4
+ Summary: This is the orchestrator workflow engine.
5
+ Author-email: SURF <automation-beheer@surf.nl>
6
+ Requires-Python: >=3.11,<3.14
7
+ Description-Content-Type: text/markdown
8
+ License-Expression: Apache-2.0
9
+ Classifier: Intended Audience :: Information Technology
10
+ Classifier: Intended Audience :: System Administrators
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Topic :: Internet
15
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
16
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
+ Classifier: Topic :: Software Development :: Libraries
18
+ Classifier: Topic :: Software Development
19
+ Classifier: Typing :: Typed
20
+ Classifier: Development Status :: 5 - Production/Stable
21
+ Classifier: Environment :: Web Environment
22
+ Classifier: Framework :: AsyncIO
23
+ Classifier: Framework :: FastAPI
24
+ Classifier: Intended Audience :: Developers
25
+ Classifier: Intended Audience :: Telecommunications Industry
26
+ Classifier: Programming Language :: Python :: 3 :: Only
27
+ Classifier: Programming Language :: Python :: 3.13
28
+ Classifier: Programming Language :: Python :: 3.12
29
+ Classifier: Programming Language :: Python :: 3.11
30
+ Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
31
+ Classifier: Topic :: Internet :: WWW/HTTP
32
+ License-File: LICENSE
33
+ Requires-Dist: alembic==1.15.1
34
+ Requires-Dist: anyio>=3.7.0
35
+ Requires-Dist: click==8.*
36
+ Requires-Dist: deprecated
37
+ Requires-Dist: deepmerge==2.0
38
+ Requires-Dist: fastapi~=0.115.2
39
+ Requires-Dist: fastapi-etag==0.4.0
40
+ Requires-Dist: more-itertools~=10.6.0
41
+ Requires-Dist: itsdangerous
42
+ Requires-Dist: Jinja2==3.1.6
43
+ Requires-Dist: orjson==3.10.15
44
+ Requires-Dist: psycopg[binary]==3.2.6
45
+ Requires-Dist: pydantic[email]~=2.10.6
46
+ Requires-Dist: pydantic-settings~=2.8.0
47
+ Requires-Dist: python-dateutil==2.8.2
48
+ Requires-Dist: python-rapidjson>=1.18,<1.21
49
+ Requires-Dist: pytz==2025.1
50
+ Requires-Dist: redis==5.1.1
51
+ Requires-Dist: schedule==1.1.0
52
+ Requires-Dist: sentry-sdk[fastapi]~=2.22.0
53
+ Requires-Dist: SQLAlchemy==2.0.39
54
+ Requires-Dist: SQLAlchemy-Utils==0.41.2
55
+ Requires-Dist: structlog
56
+ Requires-Dist: typer==0.15.2
57
+ Requires-Dist: uvicorn[standard]~=0.34.0
58
+ Requires-Dist: nwa-stdlib~=1.9.0
59
+ Requires-Dist: oauth2-lib~=2.4.0
60
+ Requires-Dist: tabulate==0.9.0
61
+ Requires-Dist: strawberry-graphql>=0.246.2
62
+ Requires-Dist: pydantic-forms~=1.4.0
63
+ Requires-Dist: celery~=5.4.0 ; extra == "celery"
64
+ Requires-Dist: toml ; extra == "dev"
65
+ Requires-Dist: bumpversion ; extra == "dev"
66
+ Requires-Dist: mypy_extensions ; extra == "dev"
67
+ Requires-Dist: pre-commit ; extra == "dev"
68
+ Requires-Dist: pydocstyle ; extra == "dev"
69
+ Requires-Dist: python-dotenv ; extra == "dev"
70
+ Requires-Dist: watchdog ; extra == "dev"
71
+ Requires-Dist: mkdocs ; extra == "doc"
72
+ Requires-Dist: mkdocs-material[imaging] ; extra == "doc"
73
+ Requires-Dist: mkdocs-render-swagger-plugin ; extra == "doc"
74
+ Requires-Dist: mkdocs-include-markdown-plugin ; extra == "doc"
75
+ Requires-Dist: mkdocstrings[python] ; extra == "doc"
76
+ Requires-Dist: mkdocs-open-in-new-tab ; extra == "doc"
77
+ Requires-Dist: mkdocs-macros-plugin ; extra == "doc"
78
+ Requires-Dist: mkdocs-embed-external-markdown ; extra == "doc"
79
+ Requires-Dist: apache-license-check ; extra == "test"
80
+ Requires-Dist: black ; extra == "test"
81
+ Requires-Dist: blinker ; extra == "test"
82
+ Requires-Dist: deepdiff ; extra == "test"
83
+ Requires-Dist: dirty-equals ; extra == "test"
84
+ Requires-Dist: jsonref ; extra == "test"
85
+ Requires-Dist: mypy==1.9 ; extra == "test"
86
+ Requires-Dist: pyinstrument ; extra == "test"
87
+ Requires-Dist: pytest==8.3.5 ; extra == "test"
88
+ Requires-Dist: pytest-asyncio==0.21.2 ; extra == "test"
89
+ Requires-Dist: pytest-codspeed ; extra == "test"
90
+ Requires-Dist: pytest-cov ; extra == "test"
91
+ Requires-Dist: pytest-httpx ; extra == "test"
92
+ Requires-Dist: pytest-xdist ; extra == "test"
93
+ Requires-Dist: requests-mock ; extra == "test"
94
+ Requires-Dist: ruff ; extra == "test"
95
+ Requires-Dist: sqlalchemy[mypy] ; extra == "test"
96
+ Requires-Dist: urllib3-mock ; extra == "test"
97
+ Requires-Dist: types-Deprecated ; extra == "test"
98
+ Requires-Dist: types-Jinja2 ; extra == "test"
99
+ Requires-Dist: types-aiofiles ; extra == "test"
100
+ Requires-Dist: types-certifi ; extra == "test"
101
+ Requires-Dist: types-click ; extra == "test"
102
+ Requires-Dist: types-itsdangerous ; extra == "test"
103
+ Requires-Dist: types-orjson ; extra == "test"
104
+ Requires-Dist: types-python-dateutil ; extra == "test"
105
+ Requires-Dist: types-pytz ; extra == "test"
106
+ Requires-Dist: types-redis ; extra == "test"
107
+ Requires-Dist: types-requests ; extra == "test"
108
+ Requires-Dist: types-setuptools ; extra == "test"
109
+ Requires-Dist: types-tabulate ; extra == "test"
110
+ Requires-Dist: types-toml ; extra == "test"
111
+ Requires-Dist: types-ujson ; extra == "test"
112
+ Requires-Dist: types-PyYAML ; extra == "test"
113
+ Project-URL: documentation, https://workfloworchestrator.org/orchestrator-core/
114
+ Project-URL: releasenotes, https://github.com/workfloworchestrator/orchestrator-core/releases
115
+ Project-URL: source, https://github.com/workfloworchestrator/orchestrator-core
116
+ Provides-Extra: celery
117
+ Provides-Extra: dev
118
+ Provides-Extra: doc
119
+ Provides-Extra: test
120
+
121
+ # Orchestrator-Core
122
+ [![Downloads](https://pepy.tech/badge/orchestrator-core/month)](https://pepy.tech/project/orchestrator-core)
123
+ [![codecov](https://codecov.io/gh/workfloworchestrator/orchestrator-core/branch/main/graph/badge.svg?token=5ANQFI2DHS)](https://codecov.io/gh/workfloworchestrator/orchestrator-core)
124
+ [![pypi_version](https://img.shields.io/pypi/v/orchestrator-core?color=%2334D058&label=pypi%20package)](https://pypi.org/project/orchestrator-core)
125
+ [![Supported python versions](https://img.shields.io/pypi/pyversions/orchestrator-core.svg?color=%2334D058)](https://pypi.org/project/orchestrator-core)
126
+ ![Discord](https://img.shields.io/discord/1295834294270558280?style=flat&logo=discord&label=discord&link=https%3A%2F%2Fdiscord.gg%2FKNgF6gE8)
127
+
128
+ <p style="text-align: center"><em>Production ready Orchestration Framework to manage product lifecycle and workflows. Easy to use, Built on top of FastAPI</em></p>
129
+
130
+
131
+ ## Documentation
132
+ Can be found [here](https://workfloworchestrator.org/orchestrator-core/)
133
+
134
+ ## Usage
135
+ This project can be installed as follows:
136
+
137
+ #### Step 1:
138
+ Install the core.
139
+ ```shell
140
+ pip install orchestrator-core
141
+ ```
142
+
143
+ #### Step 2:
144
+ Create a postgres database:
145
+ ```shell
146
+ createuser -sP nwa
147
+ createdb orchestrator-core -O nwa
148
+ ```
149
+
150
+ #### Step 3 (optional):
151
+ When using multiple workers, you will need a redis server for live updates with websockets.
152
+
153
+ By default it will use memory which works with only one worker.
154
+ ```shell
155
+ export WEBSOCKET_BROADCASTER_URL="memory://"
156
+ ```
157
+
158
+ For the redis connection you need to set the env variable with the connection url.
159
+ ```shell
160
+ export WEBSOCKET_BROADCASTER_URL="redis://localhost:6379"
161
+ ```
162
+
163
+
164
+ Websockets can also be turned off with:
165
+ ```shell
166
+ export ENABLE_WEBSOCKETS=False
167
+ ```
168
+
169
+ If you want to use pickle for CACHE serialization you will need to set the `CACHE_HMAC_SECRET`:
170
+ ```shell
171
+ export CACHE_HMAC_SECRET="SOMESECRET"
172
+ ```
173
+ **NOTE**: The key can be any length. However, the recommended size is 1024 bits.
174
+
175
+ #### Step 4:
176
+ Create a `main.py` file.
177
+
178
+ ```python
179
+ from orchestrator import OrchestratorCore
180
+ from orchestrator.cli.main import app as core_cli
181
+ from orchestrator.settings import AppSettings
182
+
183
+ app = OrchestratorCore(base_settings=AppSettings())
184
+
185
+ if __name__ == "__main__":
186
+ core_cli()
187
+ ```
188
+
189
+ #### Step 5 (Optional):
190
+ OrchestratorCore comes with a graphql interface that can to be registered after you create your OrchestratorApp.
191
+ If you add it after registering your `SUBSCRIPTION_MODEL_REGISTRY` it will automatically create graphql types for them.
192
+ More info can be found in `docs/architecture/application/graphql.md`
193
+
194
+ example:
195
+ ```python
196
+ from orchestrator import OrchestratorCore
197
+ from orchestrator.settings import AppSettings
198
+
199
+ app = OrchestratorCore(base_settings=AppSettings())
200
+ # register SUBSCRIPTION_MODEL_REGISTRY
201
+ app.register_graphql()
202
+ ```
203
+
204
+ #### Step 6:
205
+ Initialize the migration environment.
206
+ ```shell
207
+ PYTHONPATH=. python main.py db init
208
+ PYTHONPATH=. python main.py db upgrade heads
209
+ ```
210
+
211
+ ### Step 7:
212
+ Profit :)
213
+
214
+ Authentication and authorization are default enabled, to disable set `OAUTH2_ACTIVE` and `OAUTH2_AUTHORIZATION_ACTIVE` to `False`.
215
+
216
+ ```shell
217
+ uvicorn --reload --host 127.0.0.1 --port 8080 main:app
218
+ ```
219
+
220
+ Visit [http://127.0.0.1:8080/api/redoc](http://127.0.0.1:8080/api/redoc) to view the api documentation.
221
+
222
+
223
+ ## Setting up a development environment
224
+
225
+ To add features to the repository follow the following procedure to setup a working development environment.
226
+
227
+ ### Installation (Development standalone)
228
+ Install the project and its dependencies to develop on the code.
229
+
230
+ #### Step 1 - install flit:
231
+
232
+ ```shell
233
+ python3 -m venv venv
234
+ source venv/bin/activate
235
+ pip install flit
236
+ ```
237
+
238
+ #### Step 2 - install the development code:
239
+
240
+ !!! danger
241
+ Make sure to use the flit binary that is installed in your environment. You can check the correct
242
+ path by running
243
+ ```shell
244
+ which flit
245
+ ```
246
+
247
+ To be sure that the packages will be installed against the correct venv you can also prepend the python interpreter
248
+ that you want to use:
249
+
250
+ ```shell
251
+ flit install --deps develop --symlink --python venv/bin/python
252
+ ```
253
+
254
+
255
+ ### Running tests
256
+ Run the unit-test suite to verify a correct setup.
257
+
258
+ #### Step 1 - Create a database
259
+
260
+ ```shell
261
+ createuser -sP nwa
262
+ createdb orchestrator-core-test -O nwa
263
+ ```
264
+
265
+ #### Step 2 - Run tests
266
+ ```shell
267
+ pytest test/unit_tests
268
+ ```
269
+ or with xdist:
270
+
271
+ ```shell
272
+ pytest -n auto test/unit_tests
273
+ ```
274
+
275
+ If you do not encounter any failures in the test, you should be able to develop features in the orchestrator-core.
276
+
277
+ ### Installation (Development symlinked into orchestrator SURF)
278
+
279
+ If you are working on a project that already uses the `orchestrator-core` and you want to test your new core features
280
+ against it, you can use some `flit` magic to symlink the dev version of the core to your project. It will
281
+ automatically replace the pypi dep with a symlink to the development version
282
+ of the core and update/downgrade all required packages in your own orchestrator project.
283
+
284
+ #### Step 1 - install flit:
285
+
286
+ ```shell
287
+ python - m venv venv
288
+ source venv/bin/activate
289
+ pip install flit
290
+ ```
291
+
292
+ ### Step 2 - symlink the core to your own project
293
+
294
+ ```shell
295
+ flit install --deps develop --symlink --python /path/to/a/orchestrator-project/venv/bin/python
296
+ ```
297
+
298
+ So if you have the core and your own orchestrator project repo in the same folder and the main project folder is
299
+ `orchestrator` and you want to use relative links, this will be last step:
300
+
301
+ ```shell
302
+ flit install --deps develop --symlink --python ../orchestrator/venv/bin/python
303
+ ```
304
+
305
+ # Increasing the version number for a (pre) release.
306
+
307
+ When your PR is accepted you will get a version number.
308
+
309
+ You can do the necessary change with a clean, e.g. every change committed, branch:
310
+
311
+ ```shell
312
+ bumpversion patch --new-version 0.4.1-rc3
313
+ ```
314
+
315
+ ### Changing the Core database schema
316
+ When you would like to change the core database schema, execute the following steps.
317
+
318
+ - Create the new model `orchestrator/database/models.py`
319
+ - `cd orchestrator/migrations`
320
+ - `alembic revision --autogenerate -m "Name of the migratioin"`
321
+
@@ -108,6 +108,112 @@ The code above sets our local Celery instance (which initializes the workflows)
108
108
  going to be used by the orchestrator-core. Without this code, the orchestrator-core would be only aware of a limited
109
109
  set of workflows that are part of orchestrator-core itself.
110
110
 
111
+ ### An example implementation
112
+
113
+ When using Celery and Websockets you can use the following example and change it to your needs.
114
+
115
+ ```python
116
+ """This module contains functions and classes necessary for celery worker processes.
117
+
118
+ When the orchestrator-core's thread process executor is specified as "celery", the `OrchestratorCore` FastAPI
119
+ application registers celery-specific task functions and `start_process` and `resume_process` now defer to the
120
+ celery task queue.
121
+
122
+ Celery's task queue enables features like nightly validations by providing a task queue and workers to execute
123
+ workflows that are all started in parallel, which would crash a single-threaded orchestrator-core.
124
+
125
+ The application flow looks like this when "celery" is the executor (and websockets are enabled):
126
+
127
+ - FastAPI application validates form input, and places a task on celery queue (create new process).
128
+ - If websockets are enabled, a connection should exist already b/t the client and backend.
129
+ - FastAPI application begins watching redis pubsub channel for process updates from celery.
130
+ - Celery worker picks up task from queue and begins executing.
131
+ - On each step completion, it publishes state information to redis pubsub channel.
132
+ - FastAPI application grabs this information and publishes it to the client websocket connection.
133
+
134
+ A celery worker container will start by calling this module instead of `main.py` like so:
135
+ ```sh
136
+ celery -A esnetorch.celery_worker worker -E -l INFO -Q new_tasks,resume_tasks,new_workflows,resume_workflows
137
+ ```
138
+
139
+ * `-A` points to this module where the worker class is defined
140
+ * `-E` sends task-related events (capturable and monitorable)
141
+ * `-l` is the short flag for --loglevel
142
+ * `-Q` specifies the queues which the worker should watch for new tasks
143
+
144
+ See https://workfloworchestrator.org/orchestrator-core/reference-docs/app/scaling for more information.
145
+ """
146
+
147
+ from uuid import UUID
148
+
149
+ from celery import Celery
150
+ from celery.signals import worker_shutting_down
151
+ from orchestrator.db import init_database
152
+ from orchestrator.domain import SUBSCRIPTION_MODEL_REGISTRY
153
+ from orchestrator.services.tasks import initialise_celery
154
+ from orchestrator.types import BroadcastFunc
155
+ from orchestrator.websocket import broadcast_process_update_to_websocket, init_websocket_manager
156
+ from orchestrator.websocket.websocket_manager import WebSocketManager
157
+ from orchestrator.workflows import ALL_WORKFLOWS
158
+ from structlog import get_logger
159
+
160
+ from esnetorch.settings import app_settings
161
+
162
+
163
+ logger = get_logger(__name__)
164
+
165
+
166
+ def process_broadcast_fn(process_id: UUID) -> None:
167
+ # Catch all exceptions as broadcasting failure is noncritical to workflow completion
168
+ try:
169
+ broadcast_process_update_to_websocket(process_id)
170
+ except Exception as e:
171
+ logger.exception(e)
172
+
173
+
174
+ class OrchestratorWorker(Celery):
175
+ websocket_manager: WebSocketManager
176
+ process_broadcast_fn: BroadcastFunc
177
+
178
+ def on_init(self) -> None:
179
+ init_database(app_settings)
180
+
181
+ # Prepare the wrapped_websocket_manager
182
+ # Note: cannot prepare the redis connections here as broadcasting is async
183
+ self.websocket_manager = init_websocket_manager(app_settings)
184
+ self.process_broadcast_fn = process_broadcast_fn
185
+
186
+ # Load the products and load the workflows
187
+ import esnetorch.products # noqa: F401 Side-effects
188
+ import esnetorch.workflows # noqa: F401 Side-effects
189
+
190
+ logger.info(
191
+ "Loaded the workflows and products",
192
+ workflows=len(ALL_WORKFLOWS.values()),
193
+ products=len(SUBSCRIPTION_MODEL_REGISTRY.values()),
194
+ )
195
+
196
+ def close(self) -> None:
197
+ super().close()
198
+
199
+
200
+ celery = OrchestratorWorker(
201
+ f"{app_settings.SERVICE_NAME}-worker", broker=str(app_settings.CACHE_URI), include=["orchestrator.services.tasks"]
202
+ )
203
+
204
+ if app_settings.TESTING:
205
+ celery.conf.update(backend=str(app_settings.CACHE_URI), task_ignore_result=False)
206
+ else:
207
+ celery.conf.update(task_ignore_result=True)
208
+
209
+ celery.conf.update(
210
+ result_expires=3600,
211
+ worker_prefetch_multiplier=1,
212
+ worker_send_task_event=True,
213
+ task_send_sent_event=True,
214
+ )
215
+ ```
216
+
111
217
  ### Running locally
112
218
 
113
219
  If you want to test your application locally you have to start both the orchestrator-api and one or more workers.
@@ -13,7 +13,7 @@
13
13
 
14
14
  """This is the orchestrator workflow engine."""
15
15
 
16
- __version__ = "3.1.0rc1"
16
+ __version__ = "3.1.2rc1"
17
17
 
18
18
  from orchestrator.app import OrchestratorCore
19
19
  from orchestrator.settings import app_settings
@@ -92,7 +92,7 @@ class InputStateTable(BaseModel):
92
92
 
93
93
  input_state_id = mapped_column(UUIDType, primary_key=True, server_default=text("uuid_generate_v4()"), index=True)
94
94
  process_id = mapped_column("pid", UUIDType, ForeignKey("processes.pid"), nullable=False)
95
- input_state = mapped_column(pg.JSONB(), nullable=False) # type: ignore
95
+ input_state = mapped_column(pg.JSONB(), nullable=False)
96
96
  input_time = mapped_column(UtcTimestamp, server_default=text("current_timestamp()"), nullable=False)
97
97
  input_type = mapped_column(Enum(InputType), nullable=False)
98
98
 
@@ -137,7 +137,7 @@ class ProcessStepTable(BaseModel):
137
137
  )
138
138
  name = mapped_column(String(), nullable=False)
139
139
  status = mapped_column(String(50), nullable=False)
140
- state = mapped_column(pg.JSONB(), nullable=False) # type: ignore
140
+ state = mapped_column(pg.JSONB(), nullable=False)
141
141
  created_by = mapped_column(String(255), nullable=True)
142
142
  executed_at = mapped_column(UtcTimestamp, server_default=text("statement_timestamp()"), nullable=False)
143
143
  commit_hash = mapped_column(String(40), nullable=True, default=GIT_COMMIT_HASH)
@@ -642,7 +642,7 @@ class SubscriptionMetadataTable(BaseModel):
642
642
  primary_key=True,
643
643
  index=True,
644
644
  )
645
- metadata_ = mapped_column("metadata", pg.JSONB(), nullable=False) # type: ignore
645
+ metadata_ = mapped_column("metadata", pg.JSONB(), nullable=False)
646
646
 
647
647
  @staticmethod
648
648
  def find_by_subscription_id(subscription_id: str) -> SubscriptionMetadataTable | None:
@@ -651,6 +651,8 @@ class SubscriptionMetadataTable(BaseModel):
651
651
 
652
652
  class SubscriptionSearchView(BaseModel):
653
653
  __tablename__ = "subscriptions_search"
654
+ __table_args__ = {"info": {"materialized_view": True}}
655
+
654
656
  subscription_id = mapped_column(
655
657
  UUIDType, ForeignKey("subscriptions.subscription_id"), nullable=False, index=True, primary_key=True
656
658
  )
@@ -41,6 +41,14 @@ target_metadata = BaseModel.metadata
41
41
  # ... etc.
42
42
 
43
43
 
44
+ def include_object(object, name, type_, reflected, compare_to): # type: ignore
45
+ """Determines if an object should be included."""
46
+
47
+ if type_ == "table" and object.info.get("materialized_view", False):
48
+ return False
49
+ return True
50
+
51
+
44
52
  def run_migrations_offline() -> None:
45
53
  """Run migrations in 'offline' mode.
46
54
 
@@ -55,7 +63,11 @@ def run_migrations_offline() -> None:
55
63
  """
56
64
  url = config.get_main_option("sqlalchemy.url")
57
65
  context.configure(
58
- url=url, target_metadata=target_metadata, literal_binds=True, dialect_opts={"paramstyle": "named"}
66
+ url=url,
67
+ target_metadata=target_metadata,
68
+ literal_binds=True,
69
+ dialect_opts={"paramstyle": "named"},
70
+ include_object=include_object,
59
71
  )
60
72
 
61
73
  with context.begin_transaction():
@@ -90,6 +102,7 @@ def run_migrations_online() -> None:
90
102
  target_metadata=target_metadata,
91
103
  process_revision_directives=process_revision_directives,
92
104
  compare_type=True,
105
+ include_object=include_object,
93
106
  )
94
107
 
95
108
  try:
@@ -157,7 +157,7 @@ def upgrade() -> None:
157
157
  sa.Column("pid", sqlalchemy_utils.types.uuid.UUIDType(), nullable=False),
158
158
  sa.Column("name", sa.String(), nullable=False),
159
159
  sa.Column("status", sa.String(length=50), nullable=False),
160
- sa.Column("state", postgresql.JSONB(astext_type=sa.Text()), nullable=False), # type: ignore
160
+ sa.Column("state", postgresql.JSONB(astext_type=sa.Text()), nullable=False),
161
161
  sa.Column("created_by", sa.String(length=255), nullable=True),
162
162
  sa.Column(
163
163
  "executed_at",
@@ -29,7 +29,7 @@ def upgrade() -> None:
29
29
  nullable=False,
30
30
  index=True,
31
31
  ),
32
- sa.Column("metadata", postgresql.JSONB(astext_type=sa.Text()), nullable=False), # type: ignore
32
+ sa.Column("metadata", postgresql.JSONB(astext_type=sa.Text()), nullable=False),
33
33
  sa.ForeignKeyConstraint(["subscription_id"], ["subscriptions.subscription_id"], ondelete="CASCADE"),
34
34
  )
35
35
 
@@ -31,7 +31,7 @@ def upgrade() -> None:
31
31
  nullable=False,
32
32
  ),
33
33
  sa.Column("pid", sqlalchemy_utils.types.uuid.UUIDType(), nullable=False),
34
- sa.Column("input_state", postgresql.JSONB(astext_type=sa.Text()), nullable=False), # type: ignore
34
+ sa.Column("input_state", postgresql.JSONB(astext_type=sa.Text()), nullable=False),
35
35
  sa.Column(
36
36
  "input_time",
37
37
  db.models.UtcTimestamp(timezone=True),