orchestrator-core 3.0.0__tar.gz → 3.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (646) hide show
  1. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.bumpversion.cfg +1 -1
  2. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/workflows/run-codspeed-tests.yml +2 -2
  3. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/workflows/run-unit-tests.yml +1 -1
  4. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/PKG-INFO +6 -6
  5. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/__init__.py +1 -1
  6. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/generator/migration.py +5 -2
  7. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/helpers.py +5 -5
  8. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/settings.py +22 -1
  9. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/pyproject.toml +5 -5
  10. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_subscriptions.py +14 -6
  11. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/conftest.py +40 -14
  12. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/domain/test_base_performance.py +42 -7
  13. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/forms/test_display_subscription.py +1 -5
  14. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_subscription.py +18 -6
  15. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_subscriptions.py +17 -5
  16. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.coveragerc +0 -0
  17. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  18. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  19. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/dependabot.yml +0 -0
  20. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/workflows/README.md +0 -0
  21. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/workflows/build-push-container.yml +0 -0
  22. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/workflows/changelog.yml +0 -0
  23. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/workflows/codeql-analysis.yml +0 -0
  24. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/workflows/gh-pages.yml +0 -0
  25. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/workflows/issues.yml +0 -0
  26. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/workflows/publish-package.yml +0 -0
  27. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/workflows/run-linting-tests.yml +0 -0
  28. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.github/workflows/scheduled-build.yml +0 -0
  29. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.gitignore +0 -0
  30. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.pre-commit-config.yaml +0 -0
  31. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/.stignore +0 -0
  32. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/CHANGELOG.md +0 -0
  33. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/Dockerfile +0 -0
  34. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/LICENSE +0 -0
  35. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/NOTICE +0 -0
  36. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/README.md +0 -0
  37. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/codecov.yml +0 -0
  38. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/application/domainmodels.md +0 -0
  39. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/application/forms-frontend.md +0 -0
  40. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/application/tasks.md +0 -0
  41. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/application/workflow.md +0 -0
  42. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/framework.md +0 -0
  43. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/img/base-orchestrator-setup.png +0 -0
  44. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/img/custom-orchestrator-setup.png +0 -0
  45. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/orchestration/img/Custom-orchestrator-ui-using-override.png +0 -0
  46. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/orchestration/img/Standard-orchestrator-ui.png +0 -0
  47. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/orchestration/orchestrator-ui.md +0 -0
  48. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/orchestration/philosophy.md +0 -0
  49. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/backfilling.md +0 -0
  50. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/context.md +0 -0
  51. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/imports.md +0 -0
  52. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/introduction.md +0 -0
  53. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/ip_static.md +0 -0
  54. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/ip_static.png +0 -0
  55. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/l2_point_to_point.md +0 -0
  56. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/l2_point_to_point.png +0 -0
  57. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/l2_vpn.md +0 -0
  58. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/l2_vpn.png +0 -0
  59. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/modelling.md +0 -0
  60. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/node.md +0 -0
  61. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/node.png +0 -0
  62. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/port.md +0 -0
  63. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/port.png +0 -0
  64. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/product_block_graph.md +0 -0
  65. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/product_block_graph.png +0 -0
  66. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/standards.md +0 -0
  67. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/product_modelling/terminology.md +0 -0
  68. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/architecture/tldr.md +0 -0
  69. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/contributing/development.md +0 -0
  70. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/contributing/guidelines.md +0 -0
  71. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/contributing/testing.md +0 -0
  72. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/css/custom.css +0 -0
  73. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/css/style.css +0 -0
  74. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/css/termynal.css +0 -0
  75. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/getting-started/base.md +0 -0
  76. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/getting-started/docker.md +0 -0
  77. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/getting-started/orchestration-ui.md +0 -0
  78. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/getting-started/prepare-source-folder.md +0 -0
  79. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/getting-started/versions.md +0 -0
  80. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/img/WFO-Emblem-White.png +0 -0
  81. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/img/favicon.ico +0 -0
  82. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/index.md +0 -0
  83. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/js/custom.js +0 -0
  84. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/js/termynal.js +0 -0
  85. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/migration-guide/2.0.md +0 -0
  86. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/migration-guide/3.0.md +0 -0
  87. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/api.md +0 -0
  88. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/app/app.md +0 -0
  89. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/app/scaling.md +0 -0
  90. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/auth-backend-and-frontend.md +0 -0
  91. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/cli.md +0 -0
  92. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/database.md +0 -0
  93. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/domain_models/generator.md +0 -0
  94. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/domain_models/instantiating.md +0 -0
  95. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/domain_models/model_attributes.md +0 -0
  96. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/domain_models/overview.md +0 -0
  97. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/domain_models/product_blocks.md +0 -0
  98. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/domain_models/product_types.md +0 -0
  99. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/domain_models/properties.md +0 -0
  100. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/domain_models/pydantic_hooks.md +0 -0
  101. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/domain_models/type_casting.md +0 -0
  102. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/domain_models/union_types.md +0 -0
  103. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/domain_models/validation.md +0 -0
  104. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/forms.md +0 -0
  105. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/graphql.md +0 -0
  106. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/python.md +0 -0
  107. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/search.md +0 -0
  108. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/search_overview.png +0 -0
  109. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/serialization.md +0 -0
  110. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/tasks.md +0 -0
  111. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/tests.md +0 -0
  112. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/tldr.md +0 -0
  113. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/websockets.md +0 -0
  114. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/workflows/callbacks.md +0 -0
  115. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/workflows/workflow-lifecycles.md +0 -0
  116. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/reference-docs/workflows/workflow-steps.md +0 -0
  117. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/bootstrap.md +0 -0
  118. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/create-your-own.md +0 -0
  119. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/docker-installation.md +0 -0
  120. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/domain-models.md +0 -0
  121. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/execute-workflows.md +0 -0
  122. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/generator.md +0 -0
  123. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/l2_point_to_point.png +0 -0
  124. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/node-create.md +0 -0
  125. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/node-modify.md +0 -0
  126. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/node-terminate.md +0 -0
  127. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/node-validate.md +0 -0
  128. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/overview.md +0 -0
  129. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/scenario.md +0 -0
  130. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/workflow-basics.md +0 -0
  131. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/advanced/workflow-introduction.md +0 -0
  132. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/create-user-group.md +0 -0
  133. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/create-user.md +0 -0
  134. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/database-migration.md +0 -0
  135. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/debian.md +0 -0
  136. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/docker.md +0 -0
  137. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/domain-models.md +0 -0
  138. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/explore.md +0 -0
  139. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/input-forms.md +0 -0
  140. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/macos.md +0 -0
  141. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/modify-user-group.md +0 -0
  142. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/modify-user.md +0 -0
  143. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/register-workflows.md +0 -0
  144. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/start-applications.md +0 -0
  145. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/terminate-user-group.md +0 -0
  146. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/terminate-user.md +0 -0
  147. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/workflow-introduction.md +0 -0
  148. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/beginner/workshop-overview.md +0 -0
  149. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/images/Software-topology.drawio.png +0 -0
  150. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/images/clab_topology.png +0 -0
  151. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/images/metadata_products.png +0 -0
  152. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/images/netbox_devices_active.png +0 -0
  153. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/images/subscriptions.png +0 -0
  154. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/docs/workshops/images/topology.drawio.png +0 -0
  155. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/includes/abbreviations.md +0 -0
  156. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/mkdocs.yml +0 -0
  157. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/nitpick-style.toml +0 -0
  158. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/__init__.py +0 -0
  159. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/__init__.py +0 -0
  160. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/api.py +0 -0
  161. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/__init__.py +0 -0
  162. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/health.py +0 -0
  163. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/processes.py +0 -0
  164. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/product_blocks.py +0 -0
  165. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/products.py +0 -0
  166. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/resource_types.py +0 -0
  167. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/settings.py +0 -0
  168. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py +0 -0
  169. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/subscriptions.py +0 -0
  170. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/translations.py +0 -0
  171. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/user.py +0 -0
  172. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/workflows.py +0 -0
  173. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/api_v1/endpoints/ws.py +0 -0
  174. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/error_handling.py +0 -0
  175. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/helpers.py +0 -0
  176. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/api/models.py +0 -0
  177. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/app.py +0 -0
  178. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/__init__.py +0 -0
  179. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/database.py +0 -0
  180. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/domain_gen_helpers/__init__.py +0 -0
  181. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py +0 -0
  182. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/domain_gen_helpers/helpers.py +0 -0
  183. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/domain_gen_helpers/product_block_helpers.py +0 -0
  184. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/domain_gen_helpers/product_helpers.py +0 -0
  185. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/domain_gen_helpers/resource_type_helpers.py +0 -0
  186. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/domain_gen_helpers/types.py +0 -0
  187. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generate.py +0 -0
  188. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/__init__.py +0 -0
  189. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/custom_templates/README +0 -0
  190. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/custom_templates/additional_create_imports.j2 +0 -0
  191. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/custom_templates/additional_create_input_fields.j2 +0 -0
  192. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/custom_templates/additional_create_steps.j2 +0 -0
  193. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/custom_templates/additional_modify_imports.j2 +0 -0
  194. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/custom_templates/additional_modify_input_fields.j2 +0 -0
  195. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/custom_templates/additional_modify_steps.j2 +0 -0
  196. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/custom_templates/additional_terminate_imports.j2 +0 -0
  197. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/custom_templates/additional_terminate_input_fields.j2 +0 -0
  198. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/custom_templates/additional_terminate_steps.j2 +0 -0
  199. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/generator/__init__.py +0 -0
  200. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/generator/enums.py +0 -0
  201. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/generator/helpers.py +0 -0
  202. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/generator/product.py +0 -0
  203. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/generator/product_block.py +0 -0
  204. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/generator/settings.py +0 -0
  205. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/generator/translations.py +0 -0
  206. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/generator/unittest.py +0 -0
  207. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/generator/validations.py +0 -0
  208. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/generator/workflow.py +0 -0
  209. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/products/workshop/circuit.yaml +0 -0
  210. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/products/workshop/node.yaml +0 -0
  211. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/products/workshop/user.yaml +0 -0
  212. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/products/workshop/user_group.yaml +0 -0
  213. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/additional_create_imports.j2 +0 -0
  214. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/additional_create_steps.j2 +0 -0
  215. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/additional_modify_imports.j2 +0 -0
  216. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/additional_modify_steps.j2 +0 -0
  217. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/additional_terminate_steps.j2 +0 -0
  218. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/constrained_int_definitions.j2 +0 -0
  219. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/create_data_head.j2 +0 -0
  220. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/create_product.j2 +0 -0
  221. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/enums.j2 +0 -0
  222. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/lazy_workflow_instance.j2 +0 -0
  223. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/list_definitions.j2 +0 -0
  224. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/macros.j2 +0 -0
  225. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/modify_product.j2 +0 -0
  226. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/new_product_migration.j2 +0 -0
  227. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/product.j2 +0 -0
  228. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/product_block.j2 +0 -0
  229. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/shared_forms.j2 +0 -0
  230. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/shared_workflows.j2 +0 -0
  231. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/subscription_model_registry.j2 +0 -0
  232. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/terminate_product.j2 +0 -0
  233. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/test_create_workflow.j2 +0 -0
  234. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/test_modify_workflow.j2 +0 -0
  235. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/test_product_type.j2 +0 -0
  236. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/test_terminate_workflow.j2 +0 -0
  237. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/test_validate_workflow.j2 +0 -0
  238. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/generator/templates/validate_product.j2 +0 -0
  239. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/helpers/__init__.py +0 -0
  240. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/helpers/input_helpers.py +0 -0
  241. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/helpers/print_helpers.py +0 -0
  242. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/main.py +0 -0
  243. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/migrate_domain_models.py +0 -0
  244. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/migrate_tasks.py +0 -0
  245. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/migrate_workflows.py +0 -0
  246. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/migration_helpers.py +0 -0
  247. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/cli/scheduler.py +0 -0
  248. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/config/__init__.py +0 -0
  249. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/config/assignee.py +0 -0
  250. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/__init__.py +0 -0
  251. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/database.py +0 -0
  252. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/filters/__init__.py +0 -0
  253. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/filters/filters.py +0 -0
  254. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/filters/process.py +0 -0
  255. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/filters/product.py +0 -0
  256. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/filters/product_block.py +0 -0
  257. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/filters/resource_type.py +0 -0
  258. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/filters/search_filters/__init__.py +0 -0
  259. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/filters/search_filters/inferred_filter.py +0 -0
  260. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/filters/subscription.py +0 -0
  261. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/filters/workflow.py +0 -0
  262. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/helpers.py +0 -0
  263. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/listeners.py +0 -0
  264. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/loaders.py +0 -0
  265. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/models.py +0 -0
  266. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/range/__init__.py +0 -0
  267. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/range/range.py +0 -0
  268. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/sorting/__init__.py +0 -0
  269. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/sorting/process.py +0 -0
  270. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/sorting/product.py +0 -0
  271. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/sorting/product_block.py +0 -0
  272. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/sorting/resource_type.py +0 -0
  273. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/sorting/sorting.py +0 -0
  274. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/sorting/subscription.py +0 -0
  275. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/db/sorting/workflow.py +0 -0
  276. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/devtools/__init__.py +0 -0
  277. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/devtools/populator.py +0 -0
  278. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/devtools/scripts/__init__.py +0 -0
  279. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/devtools/scripts/migrate_20.py +0 -0
  280. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/devtools/scripts/migrate_30.py +0 -0
  281. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/devtools/scripts/shared.py +0 -0
  282. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/distlock/__init__.py +0 -0
  283. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/distlock/distlock_manager.py +0 -0
  284. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/distlock/managers/__init__.py +0 -0
  285. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/distlock/managers/memory_distlock_manager.py +0 -0
  286. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/distlock/managers/redis_distlock_manager.py +0 -0
  287. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/domain/__init__.py +0 -0
  288. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/domain/base.py +0 -0
  289. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/domain/customer_description.py +0 -0
  290. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/domain/helpers.py +0 -0
  291. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/domain/lifecycle.py +0 -0
  292. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/exception_handlers.py +0 -0
  293. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/forms/__init__.py +0 -0
  294. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/forms/validators/__init__.py +0 -0
  295. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/forms/validators/customer_contact_list.py +0 -0
  296. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/forms/validators/customer_id.py +0 -0
  297. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/forms/validators/display_subscription.py +0 -0
  298. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/forms/validators/network_type_validators.py +0 -0
  299. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/forms/validators/product_id.py +0 -0
  300. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/__init__.py +0 -0
  301. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/autoregistration.py +0 -0
  302. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/extensions/__init__.py +0 -0
  303. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/extensions/stats.py +0 -0
  304. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/loaders/__init__.py +0 -0
  305. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/loaders/subscriptions.py +0 -0
  306. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/mutations/customer_description.py +0 -0
  307. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/mutations/start_process.py +0 -0
  308. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/pagination.py +0 -0
  309. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/resolvers/__init__.py +0 -0
  310. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/resolvers/customer.py +0 -0
  311. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/resolvers/helpers.py +0 -0
  312. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/resolvers/process.py +0 -0
  313. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/resolvers/product.py +0 -0
  314. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/resolvers/product_block.py +0 -0
  315. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/resolvers/resource_type.py +0 -0
  316. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/resolvers/settings.py +0 -0
  317. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/resolvers/subscription.py +0 -0
  318. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/resolvers/version.py +0 -0
  319. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/resolvers/workflow.py +0 -0
  320. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schema.py +0 -0
  321. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/__init__.py +0 -0
  322. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/customer.py +0 -0
  323. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/customer_description.py +0 -0
  324. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/errors.py +0 -0
  325. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/fixed_input.py +0 -0
  326. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/helpers.py +0 -0
  327. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/process.py +0 -0
  328. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/product.py +0 -0
  329. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/product_block.py +0 -0
  330. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/resource_type.py +0 -0
  331. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/settings.py +0 -0
  332. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/strawberry_pydantic_patch.py +0 -0
  333. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/subscription.py +0 -0
  334. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/version.py +0 -0
  335. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/schemas/workflow.py +0 -0
  336. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/types.py +0 -0
  337. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/utils/__init__.py +0 -0
  338. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/utils/create_resolver_error_handler.py +0 -0
  339. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/utils/get_query_loaders.py +0 -0
  340. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/utils/get_selected_fields.py +0 -0
  341. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/utils/get_selected_paths.py +0 -0
  342. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/utils/get_subscription_product_blocks.py +0 -0
  343. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/utils/is_query_detailed.py +0 -0
  344. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/utils/override_class.py +0 -0
  345. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/graphql/utils/to_graphql_result_page.py +0 -0
  346. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/log_config.py +0 -0
  347. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/README +0 -0
  348. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/alembic.ini +0 -0
  349. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/env.py +0 -0
  350. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/script.py.mako +0 -0
  351. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/templates/alembic.ini.j2 +0 -0
  352. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/templates/env.py.j2 +0 -0
  353. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/templates/helpers.py.j2 +0 -0
  354. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2020-10-19_3323bcb934e7_fix_tsv_triggers.py +0 -0
  355. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2020-10-19_a76b9185b334_add_generic_workflows_to_core.py +0 -0
  356. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2020-10-19_c112305b07d3_initial_schema_migration.py +0 -0
  357. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2021-04-06_3c8b9185c221_add_validate_products_task.py +0 -0
  358. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2021-07-01_6896a54e9483_add_product_block_relations.py +0 -0
  359. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2021-11-17_19cdd3ab86f6_fix_parse_websearch.py +0 -0
  360. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2022-02-16_bed6bc0b197a_rename_parent_and_child_block_relations.py +0 -0
  361. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2023-03-06_e05bb1967eff_add_subscriptions_search_view.py +0 -0
  362. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2023-05-25_b1970225392d_add_subscription_metadata_workflow.py +0 -0
  363. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.py +0 -0
  364. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.sql +0 -0
  365. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.py +0 -0
  366. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.sql +0 -0
  367. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.py +0 -0
  368. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.sql +0 -0
  369. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2023-12-06_048219045729_add_workflow_id_to_processes_table.py +0 -0
  370. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.py +0 -0
  371. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.sql +0 -0
  372. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2025-01-08_4c5859620539_add_version_column_to_subscription.py +0 -0
  373. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2025-02-12_bac6be6f2b4f_added_input_state_table.py +0 -0
  374. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/migrations/versions/schema/2025-10-19_4fjdn13f83ga_add_validate_product_type_task.py +0 -0
  375. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/py.typed +0 -0
  376. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schedules/__init__.py +0 -0
  377. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schedules/resume_workflows.py +0 -0
  378. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schedules/scheduling.py +0 -0
  379. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schedules/task_vacuum.py +0 -0
  380. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schedules/validate_products.py +0 -0
  381. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schedules/validate_subscriptions.py +0 -0
  382. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schemas/__init__.py +0 -0
  383. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schemas/base.py +0 -0
  384. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schemas/engine_settings.py +0 -0
  385. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schemas/fixed_input.py +0 -0
  386. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schemas/problem_detail.py +0 -0
  387. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schemas/process.py +0 -0
  388. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schemas/product.py +0 -0
  389. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schemas/product_block.py +0 -0
  390. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schemas/resource_type.py +0 -0
  391. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schemas/subscription.py +0 -0
  392. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schemas/subscription_descriptions.py +0 -0
  393. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/schemas/workflow.py +0 -0
  394. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/security.py +0 -0
  395. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/__init__.py +0 -0
  396. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/celery.py +0 -0
  397. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/fixed_inputs.py +0 -0
  398. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/input_state.py +0 -0
  399. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/process_broadcast_thread.py +0 -0
  400. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/processes.py +0 -0
  401. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/products.py +0 -0
  402. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/resource_types.py +0 -0
  403. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/settings.py +0 -0
  404. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/subscription_relations.py +0 -0
  405. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/subscriptions.py +0 -0
  406. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/tasks.py +0 -0
  407. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/translations.py +0 -0
  408. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/services/workflows.py +0 -0
  409. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/targets.py +0 -0
  410. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/types.py +0 -0
  411. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/__init__.py +0 -0
  412. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/crypt.py +0 -0
  413. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/datetime.py +0 -0
  414. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/deprecation_logger.py +0 -0
  415. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/docs.py +0 -0
  416. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/enrich_process.py +0 -0
  417. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/errors.py +0 -0
  418. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/fixed_inputs.py +0 -0
  419. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/functional.py +0 -0
  420. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/get_subscription_dict.py +0 -0
  421. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/get_updated_properties.py +0 -0
  422. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/helpers.py +0 -0
  423. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/json.py +0 -0
  424. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/redis.py +0 -0
  425. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/redis_client.py +0 -0
  426. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/search_query.py +0 -0
  427. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/state.py +0 -0
  428. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/strings.py +0 -0
  429. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/utils/validate_data_version.py +0 -0
  430. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/version.py +0 -0
  431. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/websocket/__init__.py +0 -0
  432. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/websocket/managers/broadcast_websocket_manager.py +0 -0
  433. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/websocket/managers/memory_websocket_manager.py +0 -0
  434. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/websocket/websocket_manager.py +0 -0
  435. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/workflow.py +0 -0
  436. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/workflows/__init__.py +0 -0
  437. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/workflows/modify_note.py +0 -0
  438. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/workflows/removed_workflow.py +0 -0
  439. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/workflows/steps.py +0 -0
  440. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/workflows/tasks/__init__.py +0 -0
  441. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/workflows/tasks/cleanup_tasks_log.py +0 -0
  442. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/workflows/tasks/resume_workflows.py +0 -0
  443. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/workflows/tasks/validate_product_type.py +0 -0
  444. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/workflows/tasks/validate_products.py +0 -0
  445. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/workflows/translations/en-GB.json +0 -0
  446. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/orchestrator/workflows/utils.py +0 -0
  447. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/setup.cfg +0 -0
  448. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/setup.py +0 -0
  449. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/__init__.py +0 -0
  450. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/__init__.py +0 -0
  451. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/conftest.py +0 -0
  452. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/fixtures/test_orchestrator/__init__.py +0 -0
  453. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/__init__.py +0 -0
  454. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/test_product_populator.py +0 -0
  455. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/fixtures/test_orchestrator/main.py +0 -0
  456. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/__init__.py +0 -0
  457. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/test_product_blocks.py +0 -0
  458. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/fixtures/test_orchestrator/products/__init__.py +0 -0
  459. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/fixtures/test_orchestrator/products/test_product.py +0 -0
  460. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/fixtures/test_orchestrator/workflows/__init__.py +0 -0
  461. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/fixtures/test_orchestrator/workflows/create_test_product.py +0 -0
  462. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/acceptance_tests/test_test_product.py +0 -0
  463. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/__init__.py +0 -0
  464. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/__init__.py +0 -0
  465. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_caching.py +0 -0
  466. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_health.py +0 -0
  467. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_helpers.py +0 -0
  468. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_models.py +0 -0
  469. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_processes.py +0 -0
  470. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_processes_ws.py +0 -0
  471. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_product_blocks.py +0 -0
  472. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_products.py +0 -0
  473. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_resource_types.py +0 -0
  474. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_settings.py +0 -0
  475. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_subscription_customer_descriptions.py +0 -0
  476. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_workflows.py +0 -0
  477. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/api/test_ws.py +0 -0
  478. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/__init__.py +0 -0
  479. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/conftest.py +0 -0
  480. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/alembic.ini +0 -0
  481. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/main.py +0 -0
  482. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/migrations/env.py +0 -0
  483. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/migrations/helpers.py +0 -0
  484. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/migrations/script.py.mako +0 -0
  485. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_59e1199aff7f_create_data_head.py +0 -0
  486. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_85be1c80731c_add_example2.py +0 -0
  487. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_ea9e6c9de75c_add_example1.py +0 -0
  488. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-06-07_380a5b0c928c_add_example4.py +0 -0
  489. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/products/__init__.py +0 -0
  490. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/products/product_blocks/__init__.py +0 -0
  491. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/products/product_blocks/example1.py +0 -0
  492. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/products/product_blocks/example2.py +0 -0
  493. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/products/product_blocks/example4.py +0 -0
  494. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/products/product_blocks/example4sub.py +0 -0
  495. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/products/product_types/__init__.py +0 -0
  496. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/products/product_types/example1.py +0 -0
  497. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/products/product_types/example2.py +0 -0
  498. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/products/product_types/example4.py +0 -0
  499. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example1.py +0 -0
  500. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example2.py +0 -0
  501. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example4.py +0 -0
  502. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_create_example1.py +0 -0
  503. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_modify_example1.py +0 -0
  504. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_terminate_example1.py +0 -0
  505. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_validate_example1.py +0 -0
  506. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_create_example2.py +0 -0
  507. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_modify_example2.py +0 -0
  508. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_terminate_example2.py +0 -0
  509. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_validate_example2.py +0 -0
  510. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_create_example4.py +0 -0
  511. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_modify_example4.py +0 -0
  512. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_terminate_example4.py +0 -0
  513. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_validate_example4.py +0 -0
  514. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/translations/en-GB.json +0 -0
  515. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/__init__.py +0 -0
  516. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example1/create_example1.py +0 -0
  517. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example1/modify_example1.py +0 -0
  518. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example1/shared/forms.py +0 -0
  519. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example1/terminate_example1.py +0 -0
  520. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example1/validate_example1.py +0 -0
  521. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example2/create_example2.py +0 -0
  522. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example2/modify_example2.py +0 -0
  523. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example2/shared/forms.py +0 -0
  524. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example2/terminate_example2.py +0 -0
  525. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example4/create_example4.py +0 -0
  526. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example4/modify_example4.py +0 -0
  527. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example4/shared/forms.py +0 -0
  528. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/example4/terminate_example4.py +0 -0
  529. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate/workflows/shared.py +0 -0
  530. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/generate.sh +0 -0
  531. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/invalid_product_config1.yaml +0 -0
  532. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/invalid_product_config2.yaml +0 -0
  533. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/product_config1.yaml +0 -0
  534. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/product_config2.yaml +0 -0
  535. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/product_config3.yaml +0 -0
  536. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/data/product_config4.yaml +0 -0
  537. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/generator/__init__.py +0 -0
  538. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/generator/test_enums.py +0 -0
  539. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/helpers.py +0 -0
  540. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/test_cli_generate.py +0 -0
  541. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/test_config_validation.py +0 -0
  542. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/test_generate_code.py +0 -0
  543. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/test_migrate_domain_models_with_instances.py +0 -0
  544. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/cli/test_migrate_domain_models_without_instances.py +0 -0
  545. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/config.py +0 -0
  546. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/db/__init__.py +0 -0
  547. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/db/test_listeners.py +0 -0
  548. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/domain/__init__.py +0 -0
  549. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/domain/test_base.py +0 -0
  550. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/domain/test_base_multiple.py +0 -0
  551. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/domain/test_base_with_list_union.py +0 -0
  552. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/domain/test_base_with_union.py +0 -0
  553. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/domain/test_lifecycle.py +0 -0
  554. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/__init__.py +0 -0
  555. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/processes.py +0 -0
  556. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/__init__.py +0 -0
  557. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_blocks/__init__.py +0 -0
  558. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_blocks/product_block_list_nested.py +0 -0
  559. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_blocks/product_block_one.py +0 -0
  560. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_blocks/product_block_one_nested.py +0 -0
  561. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_blocks/product_block_with_list_union.py +0 -0
  562. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_blocks/product_block_with_union.py +0 -0
  563. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_one.py +0 -0
  564. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_two.py +0 -0
  565. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_types/__init__.py +0 -0
  566. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_types/product_type_list_nested.py +0 -0
  567. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_types/product_type_list_union.py +0 -0
  568. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_types/product_type_list_union_overlap.py +0 -0
  569. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_types/product_type_one.py +0 -0
  570. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_types/product_type_one_nested.py +0 -0
  571. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_types/product_type_sub_list_union.py +0 -0
  572. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_types/product_type_sub_one.py +0 -0
  573. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_types/product_type_sub_two.py +0 -0
  574. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_types/product_type_sub_union.py +0 -0
  575. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_types/product_type_union.py +0 -0
  576. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/product_types/subscription_relations.py +0 -0
  577. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/products/resource_types.py +0 -0
  578. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/fixtures/workflows.py +0 -0
  579. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/forms/__init__.py +0 -0
  580. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/forms/test_customer_contact_list.py +0 -0
  581. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/forms/test_customer_id.py +0 -0
  582. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/forms/test_generic_validators.py +0 -0
  583. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/__init__.py +0 -0
  584. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/conftest.py +0 -0
  585. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/extensions/__init__.py +0 -0
  586. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/extensions/test_stats.py +0 -0
  587. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/mutations/helpers.py +0 -0
  588. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/mutations/test_customer_description.py +0 -0
  589. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/mutations/test_start_process.py +0 -0
  590. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_customer.py +0 -0
  591. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_process.py +0 -0
  592. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_processes.py +0 -0
  593. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_product.py +0 -0
  594. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_product_blocks.py +0 -0
  595. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_resource_types.py +0 -0
  596. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_settings.py +0 -0
  597. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_sort_and_filter_fields.py +0 -0
  598. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_subscription_relations.py +0 -0
  599. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_version.py +0 -0
  600. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/test_workflows.py +0 -0
  601. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/utils/__init__.py +0 -0
  602. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/utils/fixtures.py +0 -0
  603. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/utils/test_autoregistration.py +0 -0
  604. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/utils/test_get_query_loaders.py +0 -0
  605. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/utils/test_get_selected_paths.py +0 -0
  606. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/utils/test_is_query_detailed.py +0 -0
  607. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/utils/test_is_querying_page_data.py +0 -0
  608. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/graphql/utils/test_override_class.py +0 -0
  609. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/helpers.py +0 -0
  610. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/schedules/__init__.py +0 -0
  611. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/schedules/test_scheduling.py +0 -0
  612. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/services/__init__.py +0 -0
  613. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/services/test_input_state.py +0 -0
  614. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/services/test_processes.py +0 -0
  615. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/services/test_products.py +0 -0
  616. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/services/test_subscription_relations.py +0 -0
  617. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/services/test_subscriptions.py +0 -0
  618. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/services/test_translations.py +0 -0
  619. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/test_db.py +0 -0
  620. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/test_types.py +0 -0
  621. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/test_workflow.py +0 -0
  622. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/utils/__init__.py +0 -0
  623. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/utils/get_subscription_dict.py +0 -0
  624. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/utils/test_datetime.py +0 -0
  625. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/utils/test_errors.py +0 -0
  626. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/utils/test_functional.py +0 -0
  627. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/utils/test_get_updated_properties.py +0 -0
  628. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/utils/test_json.py +0 -0
  629. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/utils/test_search_query.py +0 -0
  630. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/utils/test_state.py +0 -0
  631. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/utils/test_strings.py +0 -0
  632. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/websocket/__init__.py +0 -0
  633. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/websocket/test_broadcast.py +0 -0
  634. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/__init__.py +0 -0
  635. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/conftest.py +0 -0
  636. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/shared/__init__.py +0 -0
  637. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/shared/test_validate_subscriptions.py +0 -0
  638. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/tasks/__init__.py +0 -0
  639. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/tasks/test_clean_up_task_log.py +0 -0
  640. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/tasks/test_resume_workflows.py +0 -0
  641. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/tasks/test_validate_product_type.py +0 -0
  642. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/tasks/test_validate_products.py +0 -0
  643. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/test_async_workflow.py +0 -0
  644. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/test_config_db_code.py +0 -0
  645. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/test_generic_workflow_steps.py +0 -0
  646. {orchestrator_core-3.0.0 → orchestrator_core-3.1.0}/test/unit_tests/workflows/test_modify_note.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 3.0.0
2
+ current_version = 3.1.0
3
3
  commit = False
4
4
  tag = False
5
5
  parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(rc(?P<build>\d+))?
@@ -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:
@@ -61,7 +61,7 @@ jobs:
61
61
 
62
62
  - uses: CodSpeedHQ/action@v3
63
63
  with:
64
- run: CACHE_URI=redis://redis DATABASE_URI=postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST/$POSTGRES_DB pytest test/unit_tests --codspeed
64
+ run: CACHE_URI=redis://redis DATABASE_URI=postgresql+psycopg://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST/$POSTGRES_DB pytest test/unit_tests --codspeed
65
65
  token: ${{ secrets.CODSPEED_TOKEN }}
66
66
  env:
67
67
  POSTGRES_DB: orchestrator-core-test
@@ -51,7 +51,7 @@ jobs:
51
51
  env:
52
52
  FLIT_ROOT_INSTALL: 1
53
53
  - name: Run Unit tests
54
- run: CACHE_URI=redis://redis DATABASE_URI=postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST/$POSTGRES_DB pytest --cov-branch --cov=orchestrator --cov-report=xml --ignore=test --ignore=orchestrator/devtools --ignore=examples --ignore=docs --ignore=orchestrator/vendor
54
+ run: CACHE_URI=redis://redis DATABASE_URI=postgresql+psycopg://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST/$POSTGRES_DB pytest --cov-branch --cov=orchestrator --cov-report=xml --ignore=test --ignore=orchestrator/devtools --ignore=examples --ignore=docs --ignore=orchestrator/vendor
55
55
  env:
56
56
  POSTGRES_DB: orchestrator-core-test
57
57
  POSTGRES_USER: nwa
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orchestrator-core
3
- Version: 3.0.0
3
+ Version: 3.1.0
4
4
  Summary: This is the orchestrator workflow engine.
5
5
  Requires-Python: >=3.11,<3.14
6
6
  Classifier: Intended Audience :: Information Technology
@@ -39,8 +39,8 @@ Requires-Dist: more-itertools~=10.6.0
39
39
  Requires-Dist: itsdangerous
40
40
  Requires-Dist: Jinja2==3.1.5
41
41
  Requires-Dist: orjson==3.10.15
42
- Requires-Dist: psycopg2-binary==2.9.10
43
- Requires-Dist: pydantic[email]~=2.8.2
42
+ Requires-Dist: psycopg[binary]==3.2.5
43
+ Requires-Dist: pydantic[email]~=2.9.2
44
44
  Requires-Dist: pydantic-settings~=2.8.0
45
45
  Requires-Dist: python-dateutil==2.8.2
46
46
  Requires-Dist: python-rapidjson>=1.18,<1.21
@@ -51,8 +51,8 @@ Requires-Dist: sentry-sdk[fastapi]~=2.22.0
51
51
  Requires-Dist: SQLAlchemy==2.0.38
52
52
  Requires-Dist: SQLAlchemy-Utils==0.41.2
53
53
  Requires-Dist: structlog
54
- Requires-Dist: typer==0.15.1
55
- Requires-Dist: uvicorn[standard]~=0.32.0
54
+ Requires-Dist: typer==0.15.2
55
+ Requires-Dist: uvicorn[standard]~=0.34.0
56
56
  Requires-Dist: nwa-stdlib~=1.9.0
57
57
  Requires-Dist: oauth2-lib~=2.4.0
58
58
  Requires-Dist: tabulate==0.9.0
@@ -82,7 +82,7 @@ Requires-Dist: dirty-equals ; extra == "test"
82
82
  Requires-Dist: jsonref ; extra == "test"
83
83
  Requires-Dist: mypy==1.9 ; extra == "test"
84
84
  Requires-Dist: pyinstrument ; extra == "test"
85
- Requires-Dist: pytest==8.3.4 ; extra == "test"
85
+ Requires-Dist: pytest==8.3.5 ; extra == "test"
86
86
  Requires-Dist: pytest-asyncio==0.21.2 ; extra == "test"
87
87
  Requires-Dist: pytest-codspeed ; extra == "test"
88
88
  Requires-Dist: pytest-cov ; extra == "test"
@@ -13,7 +13,7 @@
13
13
 
14
14
  """This is the orchestrator workflow engine."""
15
15
 
16
- __version__ = "3.0.0"
16
+ __version__ = "3.1.0"
17
17
 
18
18
  from orchestrator.app import OrchestratorCore
19
19
  from orchestrator.settings import app_settings
@@ -31,13 +31,16 @@ from orchestrator.cli.generator.generator.helpers import (
31
31
  sort_product_blocks_by_dependencies,
32
32
  )
33
33
  from orchestrator.cli.generator.generator.settings import product_generator_settings as settings
34
+ from orchestrator.settings import convert_database_uri
34
35
 
35
36
  logger = structlog.getLogger(__name__)
36
37
 
37
38
 
38
39
  def create_migration_file(message: str, head: str) -> Path | None:
39
- if not environ.get("DATABASE_URI"):
40
- environ.update({"DATABASE_URI": "postgresql://nwa:nwa@localhost/orchestrator-core"})
40
+ if environ.get("DATABASE_URI"):
41
+ environ.update({"DATABASE_URI": convert_database_uri(environ["DATABASE_URI"])})
42
+ else:
43
+ environ.update({"DATABASE_URI": "postgresql+psycopg://nwa:nwa@localhost/orchestrator-core"})
41
44
  if not environ.get("PYTHONPATH"):
42
45
  environ.update({"PYTHONPATH": "."})
43
46
  logger.info(
@@ -880,10 +880,10 @@ def delete_product(conn: sa.engine.Connection, name: str) -> None:
880
880
  RETURNING product_id
881
881
  ),
882
882
  deleted_p_pb AS (
883
- DELETE FROM product_product_blocks WHERE product_id IN (SELECT product_id FROM deleted_p)
883
+ DELETE FROM product_product_blocks WHERE product_id = ANY(SELECT product_id FROM deleted_p)
884
884
  ),
885
885
  deleted_pb_rt AS (
886
- DELETE FROM products_workflows WHERE product_id IN (SELECT product_id FROM deleted_p)
886
+ DELETE FROM products_workflows WHERE product_id = ANY(SELECT product_id FROM deleted_p)
887
887
  )
888
888
  SELECT * from deleted_p;
889
889
  """
@@ -911,10 +911,10 @@ def delete_product_block(conn: sa.engine.Connection, name: str) -> None:
911
911
  RETURNING product_block_id
912
912
  ),
913
913
  deleted_p_pb AS (
914
- DELETE FROM product_product_blocks WHERE product_block_id IN (SELECT product_block_id FROM deleted_pb)
914
+ DELETE FROM product_product_blocks WHERE product_block_id =ANY(SELECT product_block_id FROM deleted_pb)
915
915
  ),
916
916
  deleted_pb_rt AS (
917
- DELETE FROM product_block_resource_types WHERE product_block_id IN (SELECT product_block_id FROM deleted_pb)
917
+ DELETE FROM product_block_resource_types WHERE product_block_id =ANY(SELECT product_block_id FROM deleted_pb)
918
918
  )
919
919
  SELECT * from deleted_pb;
920
920
  """
@@ -968,7 +968,7 @@ def delete_resource_type(conn: sa.engine.Connection, resource_type: str) -> None
968
968
  RETURNING resource_type_id
969
969
  ),
970
970
  deleted_pb_rt AS (
971
- DELETE FROM product_block_resource_types WHERE resource_type_id IN (SELECT resource_type_id FROM deleted_pb)
971
+ DELETE FROM product_block_resource_types WHERE resource_type_id =ANY(SELECT resource_type_id FROM deleted_pb)
972
972
  )
973
973
  SELECT * from deleted_pb;
974
974
  """
@@ -13,6 +13,7 @@
13
13
 
14
14
  import secrets
15
15
  import string
16
+ import warnings
16
17
  from pathlib import Path
17
18
  from typing import Literal
18
19
 
@@ -23,6 +24,10 @@ from oauth2_lib.settings import oauth2lib_settings
23
24
  from pydantic_forms.types import strEnum
24
25
 
25
26
 
27
+ class OrchestratorDeprecationWarning(DeprecationWarning):
28
+ pass
29
+
30
+
26
31
  class ExecutorType(strEnum):
27
32
  WORKER = "celery"
28
33
  THREADPOOL = "threadpool"
@@ -49,7 +54,7 @@ class AppSettings(BaseSettings):
49
54
  EXECUTOR: str = ExecutorType.THREADPOOL
50
55
  WORKFLOWS_SWAGGER_HOST: str = "localhost"
51
56
  WORKFLOWS_GUI_URI: str = "http://localhost:3000"
52
- DATABASE_URI: PostgresDsn = "postgresql://nwa:nwa@localhost/orchestrator-core" # type: ignore
57
+ DATABASE_URI: PostgresDsn = "postgresql+psycopg://nwa:nwa@localhost/orchestrator-core" # type: ignore
53
58
  MAX_WORKERS: int = 5
54
59
  MAIL_SERVER: str = "localhost"
55
60
  MAIL_PORT: int = 25
@@ -88,6 +93,22 @@ class AppSettings(BaseSettings):
88
93
  VALIDATE_OUT_OF_SYNC_SUBSCRIPTIONS: bool = False
89
94
  FILTER_BY_MODE: Literal["partial", "exact"] = "exact"
90
95
 
96
+ def __init__(self) -> None:
97
+ super(AppSettings, self).__init__()
98
+ self.DATABASE_URI = PostgresDsn(convert_database_uri(str(self.DATABASE_URI)))
99
+
100
+
101
+ def convert_database_uri(db_uri: str) -> str:
102
+ if db_uri.startswith(("postgresql://", "postgresql+psycopg2://")):
103
+ db_uri = "postgresql+psycopg" + db_uri[db_uri.find("://") :]
104
+ warnings.filterwarnings("always", category=OrchestratorDeprecationWarning)
105
+ warnings.warn(
106
+ "DATABASE_URI converted to postgresql+psycopg:// format, please update your enviroment variable",
107
+ OrchestratorDeprecationWarning,
108
+ stacklevel=2,
109
+ )
110
+ return db_uri
111
+
91
112
 
92
113
  app_settings = AppSettings()
93
114
 
@@ -47,8 +47,8 @@ dependencies = [
47
47
  "itsdangerous",
48
48
  "Jinja2==3.1.5",
49
49
  "orjson==3.10.15",
50
- "psycopg2-binary==2.9.10",
51
- "pydantic[email]~=2.8.2",
50
+ "psycopg[binary]==3.2.5",
51
+ "pydantic[email]~=2.9.2",
52
52
  "pydantic-settings~=2.8.0",
53
53
  "python-dateutil==2.8.2",
54
54
  "python-rapidjson>=1.18,<1.21",
@@ -59,8 +59,8 @@ dependencies = [
59
59
  "SQLAlchemy==2.0.38",
60
60
  "SQLAlchemy-Utils==0.41.2",
61
61
  "structlog",
62
- "typer==0.15.1",
63
- "uvicorn[standard]~=0.32.0",
62
+ "typer==0.15.2",
63
+ "uvicorn[standard]~=0.34.0",
64
64
  "nwa-stdlib~=1.9.0",
65
65
  "oauth2-lib~=2.4.0",
66
66
  "tabulate==0.9.0",
@@ -89,7 +89,7 @@ test = [
89
89
  "jsonref",
90
90
  "mypy==1.9",
91
91
  "pyinstrument",
92
- "pytest==8.3.4",
92
+ "pytest==8.3.5",
93
93
  "pytest-asyncio==0.21.2",
94
94
  "pytest-codspeed",
95
95
  "pytest-cov",
@@ -734,17 +734,23 @@ def test_subscriptions_search_uuids2(
734
734
  assert not failed, f"Could not find '{subscription_id}' by all keywords; {succeeded=} {failed=}"
735
735
 
736
736
 
737
- def test_subscription_detail_with_domain_model(test_client, generic_subscription_1):
737
+ def test_subscription_detail_with_domain_model(test_client, generic_subscription_1, benchmark):
738
738
  # test with a subscription that has domain model and without
739
- response = test_client.get(URL("api/subscriptions/domain-model") / generic_subscription_1)
739
+ @benchmark
740
+ def response():
741
+ return test_client.get(URL("api/subscriptions/domain-model") / generic_subscription_1)
742
+
740
743
  assert response.status_code == HTTPStatus.OK
741
744
  # Check hierarchy
742
745
  assert response.json()["pb_1"]["rt_1"] == "Value1"
743
746
 
744
747
 
745
- def test_subscription_detail_with_domain_model_does_not_exist(test_client, generic_subscription_1):
748
+ def test_subscription_detail_with_domain_model_does_not_exist(test_client, generic_subscription_1, benchmark):
746
749
  # test with a subscription that has domain model and without
747
- response = test_client.get(URL("api/subscriptions/domain-model") / uuid4())
750
+ @benchmark
751
+ def response():
752
+ return test_client.get(URL("api/subscriptions/domain-model") / uuid4())
753
+
748
754
  assert response.status_code == HTTPStatus.NOT_FOUND
749
755
 
750
756
 
@@ -774,7 +780,7 @@ def test_subscription_detail_with_domain_model_if_none_match(test_client, generi
774
780
  @pytest.mark.skipif(
775
781
  not getenv("AIOCACHE_DISABLE", "0") == "0", reason="AIOCACHE must be enabled for this test to do anything"
776
782
  )
777
- def test_subscription_detail_with_domain_model_cache(test_client, generic_subscription_1):
783
+ def test_subscription_detail_with_domain_model_cache(test_client, generic_subscription_1, benchmark):
778
784
  # test with a subscription that has domain model and without
779
785
  subscription = SubscriptionModel.from_subscription(generic_subscription_1)
780
786
  extended_model = build_extended_domain_model(subscription)
@@ -784,7 +790,9 @@ def test_subscription_detail_with_domain_model_cache(test_client, generic_subscr
784
790
 
785
791
  to_redis(extended_model)
786
792
 
787
- response = test_client.get(URL("api/subscriptions/domain-model") / generic_subscription_1)
793
+ @benchmark
794
+ def response():
795
+ return test_client.get(URL("api/subscriptions/domain-model") / generic_subscription_1)
788
796
 
789
797
  cache = create_redis_client(app_settings.CACHE_URI)
790
798
  result = cache.get(f"orchestrator:domain:{generic_subscription_1}")
@@ -134,6 +134,21 @@ logger = structlog.getLogger(__name__)
134
134
 
135
135
  CUSTOMER_ID: str = "2f47f65a-0911-e511-80d0-005056956c1a"
136
136
 
137
+ CLI_OPT_MONITOR_SQLALCHEMY = "--monitor-sqlalchemy"
138
+
139
+
140
+ def pytest_addoption(parser):
141
+ """Define custom pytest commandline options."""
142
+ parser.addoption(
143
+ CLI_OPT_MONITOR_SQLALCHEMY,
144
+ action="store_true",
145
+ default=False,
146
+ help=(
147
+ "When set, activate query monitoring for tests instrumented with monitor_sqlalchemy. "
148
+ "Note that this has a certain overhead on execution time."
149
+ ),
150
+ )
151
+
137
152
 
138
153
  def run_migrations(db_uri: str) -> None:
139
154
  """Configure the alembic context and run the migrations.
@@ -174,7 +189,7 @@ def db_uri(worker_id):
174
189
  Database uri to be used in the test thread
175
190
 
176
191
  """
177
- database_uri = os.environ.get("DATABASE_URI", "postgresql://nwa:nwa@localhost/orchestrator-core-test")
192
+ database_uri = os.environ.get("DATABASE_URI", "postgresql+psycopg://nwa:nwa@localhost/orchestrator-core-test")
178
193
  if worker_id == "master":
179
194
  # pytest is being run without any workers
180
195
  return database_uri
@@ -205,9 +220,9 @@ def database(db_uri):
205
220
  url.database = "postgres"
206
221
  engine = create_engine(url)
207
222
  with closing(engine.connect()) as conn:
208
- conn.execute(text("COMMIT;"))
209
- conn.execute(text(f'DROP DATABASE IF EXISTS "{db_to_create}";'))
210
- conn.execute(text("COMMIT;"))
223
+ conn.commit()
224
+ conn.execution_options(isolation_level="AUTOCOMMIT").execute(text(f'DROP DATABASE IF EXISTS "{db_to_create}";'))
225
+ conn.commit()
211
226
  conn.execute(text(f'CREATE DATABASE "{db_to_create}";'))
212
227
 
213
228
  run_migrations(db_uri)
@@ -218,8 +233,10 @@ def database(db_uri):
218
233
  finally:
219
234
  db.wrapped_database.engine.dispose()
220
235
  with closing(engine.connect()) as conn:
221
- conn.execute(text("COMMIT;"))
222
- conn.execute(text(f'DROP DATABASE IF EXISTS "{db_to_create}";'))
236
+ conn.commit()
237
+ conn.execution_options(isolation_level="AUTOCOMMIT").execute(
238
+ text(f'DROP DATABASE IF EXISTS "{db_to_create}";')
239
+ )
223
240
 
224
241
 
225
242
  @pytest.fixture(autouse=True)
@@ -744,10 +761,12 @@ def refresh_subscriptions_search_view():
744
761
 
745
762
 
746
763
  @pytest.fixture
747
- def monitor_sqlalchemy():
764
+ def monitor_sqlalchemy(pytestconfig, request, capsys):
748
765
  """Can be used to inspect the number of sqlalchemy queries made by part of the code.
749
766
 
750
- Usage: include as fixture, wrap code to measure in context manager, run pytest with option `-s` for stdout
767
+ Usage: include this fixture, it returns a context manager. Wrap this around the code you want to inspect.
768
+ The inspection is disabled unless you explicitly enable it.
769
+ To enable it pass the cli option --monitor-sqlalchemy (see CLI_OPT_MONITOR_SQLALCHEMY).
751
770
 
752
771
  Example:
753
772
  def mytest(monitor_sqlalchemy):
@@ -760,20 +779,27 @@ def monitor_sqlalchemy():
760
779
  """
761
780
  from orchestrator.db.listeners import disable_listeners, monitor_sqlalchemy_queries
762
781
 
763
- monitor_sqlalchemy_queries()
764
-
765
782
  @contextlib.contextmanager
766
- def context():
783
+ def monitor_queries():
784
+ monitor_sqlalchemy_queries()
767
785
  before = db.session.connection().info.copy()
768
786
 
769
787
  yield
770
788
 
771
789
  after = db.session.connection().info.copy()
790
+ disable_listeners()
772
791
 
773
792
  estimated_queries = after["queries_completed"] - before.get("queries_completed", 0)
774
793
  estimated_query_time = after["query_time_spent"] - before.get("query_time_spent", 0.0)
775
- print(f"{estimated_queries:3d} sqlalchemy queries in {estimated_query_time:.2f}s")
776
794
 
777
- yield context
795
+ with capsys.disabled():
796
+ print(f"\n{request.node.nodeid} performed {estimated_queries} queries in {estimated_query_time:.2f}s\n")
778
797
 
779
- disable_listeners()
798
+ @contextlib.contextmanager
799
+ def noop():
800
+ yield
801
+
802
+ if pytestconfig.getoption(CLI_OPT_MONITOR_SQLALCHEMY):
803
+ yield monitor_queries
804
+ else:
805
+ yield noop
@@ -1,8 +1,9 @@
1
1
  from uuid import UUID, uuid4
2
2
 
3
3
  import pytest
4
+ from sqlalchemy import func, select
4
5
 
5
- from orchestrator.db import db
6
+ from orchestrator.db import SubscriptionTable, db
6
7
  from orchestrator.domain import SubscriptionModel
7
8
  from orchestrator.types import SubscriptionLifecycle
8
9
  from test.unit_tests.fixtures.products.product_blocks.product_block_one import DummyEnum
@@ -79,7 +80,9 @@ def subscription_with_100_horizontal_blocks(create_horizontal_subscription):
79
80
 
80
81
 
81
82
  @pytest.mark.benchmark
82
- def test_subscription_model_horizontal_references(subscription_with_100_horizontal_blocks, test_product_type_one):
83
+ def test_subscription_model_horizontal_references(
84
+ subscription_with_100_horizontal_blocks, test_product_type_one, monitor_sqlalchemy
85
+ ):
83
86
  # Note: fixtures only execute once per benchmark and are excluded from the measurement
84
87
 
85
88
  # given
@@ -90,8 +93,8 @@ def test_subscription_model_horizontal_references(subscription_with_100_horizont
90
93
 
91
94
  # when
92
95
 
93
- # Include the `monitor_sqlalchemy` fixture and use it as a context manager to see the number of real queries
94
- subscription = ProductTypeOneForTest.from_subscription(subscription_id)
96
+ with monitor_sqlalchemy(): # Context does nothing unless you set CLI_OPT_MONITOR_SQLALCHEMY
97
+ subscription = ProductTypeOneForTest.from_subscription(subscription_id)
95
98
 
96
99
  # then
97
100
  assert len(subscription.block.sub_block_list) == 100
@@ -103,7 +106,9 @@ def subscription_with_10_vertical_blocks(create_vertical_subscription):
103
106
 
104
107
 
105
108
  @pytest.mark.benchmark
106
- def test_subscription_model_vertical_references(subscription_with_10_vertical_blocks, test_product_type_one_nested):
109
+ def test_subscription_model_vertical_references(
110
+ subscription_with_10_vertical_blocks, test_product_type_one_nested, monitor_sqlalchemy
111
+ ):
107
112
  # Note: fixtures only execute once per benchmark and are excluded from the measurement
108
113
 
109
114
  # given
@@ -114,8 +119,8 @@ def test_subscription_model_vertical_references(subscription_with_10_vertical_bl
114
119
 
115
120
  # when
116
121
 
117
- # Include the `monitor_sqlalchemy` fixture and use it as a context manager to see the number of real queries
118
- subscription = ProductTypeOneNestedForTest.from_subscription(subscription_id)
122
+ with monitor_sqlalchemy(): # Context does nothing unless you set CLI_OPT_MONITOR_SQLALCHEMY
123
+ subscription = ProductTypeOneNestedForTest.from_subscription(subscription_id)
119
124
 
120
125
  # then
121
126
  assert subscription.block is not None
@@ -123,3 +128,33 @@ def test_subscription_model_vertical_references(subscription_with_10_vertical_bl
123
128
  assert subscription.block.sub_block.sub_block is not None
124
129
  assert subscription.block.sub_block.sub_block.sub_block is not None
125
130
  # no need to check all x levels
131
+
132
+
133
+ @pytest.mark.benchmark
134
+ def test_subscription_model_vertical_references_save(create_vertical_subscription, monitor_sqlalchemy):
135
+ # when
136
+ with monitor_sqlalchemy():
137
+ subscription_id = create_vertical_subscription(size=5)
138
+
139
+ # then
140
+
141
+ # Checks that the subscription was created, without too much overhead
142
+ query_check_created = (
143
+ select(func.count()).select_from(SubscriptionTable).where(SubscriptionTable.subscription_id == subscription_id)
144
+ )
145
+ assert db.session.scalar(query_check_created) == 1
146
+
147
+
148
+ @pytest.mark.benchmark
149
+ def test_subscription_model_horizontal_references_save(create_horizontal_subscription, monitor_sqlalchemy):
150
+ # when
151
+ with monitor_sqlalchemy():
152
+ subscription_id = create_horizontal_subscription(size=10)
153
+
154
+ # then
155
+
156
+ # Checks that the subscription was created, without too much overhead
157
+ query_check_created = (
158
+ select(func.count()).select_from(SubscriptionTable).where(SubscriptionTable.subscription_id == subscription_id)
159
+ )
160
+ assert db.session.scalar(query_check_created) == 1
@@ -59,11 +59,7 @@ def test_display_only_schema():
59
59
  "type": "string",
60
60
  },
61
61
  "summary": {
62
- "allOf": [
63
- {
64
- "$ref": "#/$defs/MigrationSummaryValue",
65
- },
66
- ],
62
+ "$ref": "#/$defs/MigrationSummaryValue",
67
63
  "format": "summary",
68
64
  "default": None,
69
65
  "type": "string",
@@ -60,19 +60,27 @@ def build_complex_query(subscription_id):
60
60
  ).encode("utf-8")
61
61
 
62
62
 
63
- def test_single_simple_subscription(fastapi_app_graphql, test_client, product_sub_list_union_subscription_1):
63
+ def test_single_simple_subscription(fastapi_app_graphql, test_client, product_sub_list_union_subscription_1, benchmark):
64
64
  test_query = build_simple_query(subscription_id=product_sub_list_union_subscription_1)
65
- response = test_client.post("/api/graphql", content=test_query, headers={"Content-Type": "application/json"})
65
+
66
+ @benchmark
67
+ def response():
68
+ return test_client.post("/api/graphql", content=test_query, headers={"Content-Type": "application/json"})
69
+
66
70
  assert response.status_code == HTTPStatus.OK
67
71
  assert response.json() == {"data": {"subscription": {"insync": True, "status": "ACTIVE"}}}
68
72
 
69
73
 
70
74
  def test_single_complex_subscription(
71
- fastapi_app_graphql, test_client, product_sub_list_union_subscription_1, test_product_type_sub_list_union
75
+ fastapi_app_graphql, test_client, product_sub_list_union_subscription_1, test_product_type_sub_list_union, benchmark
72
76
  ):
73
77
  _, _, ProductSubListUnion = test_product_type_sub_list_union
74
78
  test_query = build_complex_query(subscription_id=product_sub_list_union_subscription_1)
75
- response = test_client.post("/api/graphql", content=test_query, headers={"Content-Type": "application/json"})
79
+
80
+ @benchmark
81
+ def response():
82
+ return test_client.post("/api/graphql", content=test_query, headers={"Content-Type": "application/json"})
83
+
76
84
  assert response.status_code == HTTPStatus.OK
77
85
  assert response.json() == {
78
86
  "data": {
@@ -86,8 +94,12 @@ def test_single_complex_subscription(
86
94
  }
87
95
 
88
96
 
89
- def test_subscription_does_not_exist(fastapi_app_graphql, test_client):
97
+ def test_subscription_does_not_exist(fastapi_app_graphql, test_client, benchmark):
90
98
  test_query = build_simple_query(uuid4())
91
- response = test_client.post("/api/graphql", content=test_query, headers={"Content-Type": "application/json"})
99
+
100
+ @benchmark
101
+ def response():
102
+ return test_client.post("/api/graphql", content=test_query, headers={"Content-Type": "application/json"})
103
+
92
104
  assert response.status_code == HTTPStatus.OK
93
105
  assert response.json() == {"data": {"subscription": None}}
@@ -413,12 +413,15 @@ def get_subscriptions_with_metadata_and_schema_query(
413
413
  ).encode("utf-8")
414
414
 
415
415
 
416
- def test_subscriptions_single_page(test_client, product_type_1_subscriptions_factory):
416
+ def test_subscriptions_single_page(test_client, product_type_1_subscriptions_factory, benchmark):
417
417
  # when
418
418
 
419
419
  product_type_1_subscriptions_factory(4)
420
420
  data = get_subscriptions_query()
421
- response = test_client.post("/api/graphql", content=data, headers={"Content-Type": "application/json"})
421
+
422
+ @benchmark
423
+ def response():
424
+ return test_client.post("/api/graphql", content=data, headers={"Content-Type": "application/json"})
422
425
 
423
426
  # then
424
427
 
@@ -1076,6 +1079,7 @@ def test_single_subscription_with_depends_on_subscriptions(
1076
1079
  sub_one_subscription_1,
1077
1080
  sub_two_subscription_1,
1078
1081
  product_sub_list_union_subscription_1,
1082
+ benchmark,
1079
1083
  ):
1080
1084
  # when
1081
1085
 
@@ -1085,7 +1089,10 @@ def test_single_subscription_with_depends_on_subscriptions(
1085
1089
 
1086
1090
  subscription_id = str(product_sub_list_union_subscription_1)
1087
1091
  data = get_subscriptions_query_with_relations(query_string=subscription_id)
1088
- response = test_client.post("/api/graphql", content=data, headers={"Content-Type": "application/json"})
1092
+
1093
+ @benchmark
1094
+ def response():
1095
+ return test_client.post("/api/graphql", content=data, headers={"Content-Type": "application/json"})
1089
1096
 
1090
1097
  expected_depends_on_ids = {
1091
1098
  str(subscription.subscription_id) for subscription in [sub_one_subscription_1, sub_two_subscription_1]
@@ -1183,6 +1190,7 @@ def test_single_subscription_schema(
1183
1190
  sub_one_subscription_1,
1184
1191
  sub_two_subscription_1,
1185
1192
  product_sub_list_union_subscription_1,
1193
+ benchmark,
1186
1194
  ):
1187
1195
  # when
1188
1196
 
@@ -1191,7 +1199,11 @@ def test_single_subscription_schema(
1191
1199
  data = get_subscriptions_product_block_json_schema_query(
1192
1200
  filter_by=[{"field": "subscriptionId", "value": subscription_id}]
1193
1201
  )
1194
- response = test_client.post("/api/graphql", content=data, headers={"Content-Type": "application/json"})
1202
+
1203
+ @benchmark
1204
+ def response():
1205
+ return test_client.post("/api/graphql", content=data, headers={"Content-Type": "application/json"})
1206
+
1195
1207
  # then
1196
1208
 
1197
1209
  assert HTTPStatus.OK == response.status_code
@@ -1323,7 +1335,7 @@ def test_single_subscription_schema(
1323
1335
  "customer_id": {"title": "Customer Id", "type": "string"},
1324
1336
  "subscription_id": {"format": "uuid", "title": "Subscription Id", "type": "string"},
1325
1337
  "description": {"default": "Initial subscription", "title": "Description", "type": "string"},
1326
- "status": {"allOf": [{"$ref": "#/$defs/SubscriptionLifecycle"}], "default": "initial"},
1338
+ "status": {"$ref": "#/$defs/SubscriptionLifecycle", "default": "initial"},
1327
1339
  "insync": {"default": False, "title": "Insync", "type": "boolean"},
1328
1340
  "start_date": {
1329
1341
  "anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}],