orchestrator-core 4.4.0rc1__tar.gz → 4.4.0rc3__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 (325) hide show
  1. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/PKG-INFO +1 -1
  2. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/__init__.py +1 -1
  3. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/subscriptions.py +1 -0
  4. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/scheduler.py +12 -16
  5. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schedules/scheduler.py +23 -6
  6. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/subscriptions.py +4 -0
  7. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/targets.py +1 -0
  8. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/workflows/utils.py +48 -1
  9. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/pyproject.toml +4 -0
  10. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/LICENSE +0 -0
  11. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/README.md +0 -0
  12. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/__init__.py +0 -0
  13. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/__init__.py +0 -0
  14. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/api.py +0 -0
  15. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/__init__.py +0 -0
  16. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/health.py +0 -0
  17. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/processes.py +0 -0
  18. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/product_blocks.py +0 -0
  19. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/products.py +0 -0
  20. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/resource_types.py +0 -0
  21. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/settings.py +0 -0
  22. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py +0 -0
  23. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/translations.py +0 -0
  24. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/user.py +0 -0
  25. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/workflows.py +0 -0
  26. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/api_v1/endpoints/ws.py +0 -0
  27. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/error_handling.py +0 -0
  28. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/helpers.py +0 -0
  29. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/api/models.py +0 -0
  30. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/app.py +0 -0
  31. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/__init__.py +0 -0
  32. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/database.py +0 -0
  33. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/domain_gen_helpers/__init__.py +0 -0
  34. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py +0 -0
  35. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/domain_gen_helpers/helpers.py +0 -0
  36. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/domain_gen_helpers/product_block_helpers.py +0 -0
  37. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/domain_gen_helpers/product_helpers.py +0 -0
  38. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/domain_gen_helpers/resource_type_helpers.py +0 -0
  39. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/domain_gen_helpers/types.py +0 -0
  40. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generate.py +0 -0
  41. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/__init__.py +0 -0
  42. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/custom_templates/README +0 -0
  43. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/custom_templates/additional_create_imports.j2 +0 -0
  44. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/custom_templates/additional_create_input_fields.j2 +0 -0
  45. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/custom_templates/additional_create_steps.j2 +0 -0
  46. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/custom_templates/additional_modify_imports.j2 +0 -0
  47. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/custom_templates/additional_modify_input_fields.j2 +0 -0
  48. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/custom_templates/additional_modify_steps.j2 +0 -0
  49. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/custom_templates/additional_terminate_imports.j2 +0 -0
  50. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/custom_templates/additional_terminate_input_fields.j2 +0 -0
  51. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/custom_templates/additional_terminate_steps.j2 +0 -0
  52. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/generator/__init__.py +0 -0
  53. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/generator/enums.py +0 -0
  54. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/generator/helpers.py +0 -0
  55. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/generator/migration.py +0 -0
  56. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/generator/product.py +0 -0
  57. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/generator/product_block.py +0 -0
  58. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/generator/settings.py +0 -0
  59. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/generator/translations.py +0 -0
  60. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/generator/unittest.py +0 -0
  61. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/generator/validations.py +0 -0
  62. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/generator/workflow.py +0 -0
  63. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/products/workshop/circuit.yaml +0 -0
  64. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/products/workshop/node.yaml +0 -0
  65. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/products/workshop/user.yaml +0 -0
  66. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/products/workshop/user_group.yaml +0 -0
  67. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/additional_create_imports.j2 +0 -0
  68. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/additional_create_steps.j2 +0 -0
  69. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/additional_modify_imports.j2 +0 -0
  70. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/additional_modify_steps.j2 +0 -0
  71. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/additional_terminate_steps.j2 +0 -0
  72. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/constrained_int_definitions.j2 +0 -0
  73. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/create_data_head.j2 +0 -0
  74. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/create_product.j2 +0 -0
  75. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/enums.j2 +0 -0
  76. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/lazy_workflow_instance.j2 +0 -0
  77. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/list_definitions.j2 +0 -0
  78. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/macros.j2 +0 -0
  79. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/modify_product.j2 +0 -0
  80. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/new_product_migration.j2 +0 -0
  81. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/product.j2 +0 -0
  82. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/product_block.j2 +0 -0
  83. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/shared_forms.j2 +0 -0
  84. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/shared_workflows.j2 +0 -0
  85. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/subscription_model_registry.j2 +0 -0
  86. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/terminate_product.j2 +0 -0
  87. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/test_create_workflow.j2 +0 -0
  88. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/test_modify_workflow.j2 +0 -0
  89. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/test_product_type.j2 +0 -0
  90. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/test_terminate_workflow.j2 +0 -0
  91. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/test_validate_workflow.j2 +0 -0
  92. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/generator/templates/validate_product.j2 +0 -0
  93. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/helpers/__init__.py +0 -0
  94. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/helpers/input_helpers.py +0 -0
  95. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/helpers/print_helpers.py +0 -0
  96. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/main.py +0 -0
  97. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/migrate_domain_models.py +0 -0
  98. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/migrate_tasks.py +0 -0
  99. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/migrate_workflows.py +0 -0
  100. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/cli/migration_helpers.py +0 -0
  101. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/config/__init__.py +0 -0
  102. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/config/assignee.py +0 -0
  103. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/__init__.py +0 -0
  104. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/database.py +0 -0
  105. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/filters/__init__.py +0 -0
  106. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/filters/filters.py +0 -0
  107. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/filters/process.py +0 -0
  108. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/filters/product.py +0 -0
  109. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/filters/product_block.py +0 -0
  110. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/filters/resource_type.py +0 -0
  111. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/filters/search_filters/__init__.py +0 -0
  112. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/filters/search_filters/inferred_filter.py +0 -0
  113. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/filters/subscription.py +0 -0
  114. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/filters/workflow.py +0 -0
  115. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/helpers.py +0 -0
  116. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/listeners.py +0 -0
  117. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/loaders.py +0 -0
  118. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/models.py +0 -0
  119. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/queries/__init__.py +0 -0
  120. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/queries/subscription.py +0 -0
  121. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/queries/subscription_instance.py +0 -0
  122. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/range/__init__.py +0 -0
  123. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/range/range.py +0 -0
  124. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/sorting/__init__.py +0 -0
  125. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/sorting/process.py +0 -0
  126. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/sorting/product.py +0 -0
  127. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/sorting/product_block.py +0 -0
  128. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/sorting/resource_type.py +0 -0
  129. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/sorting/sorting.py +0 -0
  130. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/sorting/subscription.py +0 -0
  131. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/db/sorting/workflow.py +0 -0
  132. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/devtools/__init__.py +0 -0
  133. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/devtools/populator.py +0 -0
  134. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/devtools/scripts/__init__.py +0 -0
  135. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/devtools/scripts/migrate_20.py +0 -0
  136. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/devtools/scripts/migrate_30.py +0 -0
  137. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/devtools/scripts/shared.py +0 -0
  138. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/distlock/__init__.py +0 -0
  139. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/distlock/distlock_manager.py +0 -0
  140. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/distlock/managers/__init__.py +0 -0
  141. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/distlock/managers/memory_distlock_manager.py +0 -0
  142. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/distlock/managers/redis_distlock_manager.py +0 -0
  143. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/domain/__init__.py +0 -0
  144. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/domain/base.py +0 -0
  145. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/domain/context_cache.py +0 -0
  146. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/domain/customer_description.py +0 -0
  147. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/domain/helpers.py +0 -0
  148. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/domain/lifecycle.py +0 -0
  149. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/domain/subscription_instance_transform.py +0 -0
  150. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/exception_handlers.py +0 -0
  151. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/forms/__init__.py +0 -0
  152. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/forms/validators/__init__.py +0 -0
  153. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/forms/validators/customer_contact_list.py +0 -0
  154. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/forms/validators/customer_id.py +0 -0
  155. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/forms/validators/display_subscription.py +0 -0
  156. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/forms/validators/network_type_validators.py +0 -0
  157. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/forms/validators/product_id.py +0 -0
  158. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/__init__.py +0 -0
  159. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/autoregistration.py +0 -0
  160. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/extensions/__init__.py +0 -0
  161. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/extensions/model_cache.py +0 -0
  162. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/extensions/stats.py +0 -0
  163. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/loaders/__init__.py +0 -0
  164. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/loaders/subscriptions.py +0 -0
  165. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/mutations/customer_description.py +0 -0
  166. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/mutations/start_process.py +0 -0
  167. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/pagination.py +0 -0
  168. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/resolvers/__init__.py +0 -0
  169. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/resolvers/customer.py +0 -0
  170. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/resolvers/helpers.py +0 -0
  171. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/resolvers/process.py +0 -0
  172. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/resolvers/product.py +0 -0
  173. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/resolvers/product_block.py +0 -0
  174. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/resolvers/resource_type.py +0 -0
  175. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/resolvers/scheduled_tasks.py +0 -0
  176. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/resolvers/settings.py +0 -0
  177. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/resolvers/subscription.py +0 -0
  178. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/resolvers/version.py +0 -0
  179. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/resolvers/workflow.py +0 -0
  180. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schema.py +0 -0
  181. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/__init__.py +0 -0
  182. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/customer.py +0 -0
  183. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/customer_description.py +0 -0
  184. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/errors.py +0 -0
  185. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/fixed_input.py +0 -0
  186. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/helpers.py +0 -0
  187. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/process.py +0 -0
  188. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/product.py +0 -0
  189. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/product_block.py +0 -0
  190. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/resource_type.py +0 -0
  191. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/scheduled_task.py +0 -0
  192. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/settings.py +0 -0
  193. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/strawberry_pydantic_patch.py +0 -0
  194. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/subscription.py +0 -0
  195. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/version.py +0 -0
  196. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/schemas/workflow.py +0 -0
  197. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/types.py +0 -0
  198. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/utils/__init__.py +0 -0
  199. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/utils/create_resolver_error_handler.py +0 -0
  200. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/utils/get_query_loaders.py +0 -0
  201. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/utils/get_selected_fields.py +0 -0
  202. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/utils/get_selected_paths.py +0 -0
  203. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/utils/get_subscription_product_blocks.py +0 -0
  204. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/utils/is_query_detailed.py +0 -0
  205. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/utils/override_class.py +0 -0
  206. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/graphql/utils/to_graphql_result_page.py +0 -0
  207. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/log_config.py +0 -0
  208. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/metrics/__init__.py +0 -0
  209. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/metrics/engine.py +0 -0
  210. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/metrics/init.py +0 -0
  211. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/metrics/processes.py +0 -0
  212. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/metrics/subscriptions.py +0 -0
  213. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/README +0 -0
  214. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/__init__.py +0 -0
  215. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/alembic.ini +0 -0
  216. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/env.py +0 -0
  217. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/helpers.py +0 -0
  218. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/script.py.mako +0 -0
  219. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/templates/alembic.ini.j2 +0 -0
  220. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/templates/env.py.j2 +0 -0
  221. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/templates/helpers.py.j2 +0 -0
  222. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2020-10-19_3323bcb934e7_fix_tsv_triggers.py +0 -0
  223. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2020-10-19_a76b9185b334_add_generic_workflows_to_core.py +0 -0
  224. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2020-10-19_c112305b07d3_initial_schema_migration.py +0 -0
  225. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2021-04-06_3c8b9185c221_add_validate_products_task.py +0 -0
  226. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2021-07-01_6896a54e9483_add_product_block_relations.py +0 -0
  227. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2021-11-17_19cdd3ab86f6_fix_parse_websearch.py +0 -0
  228. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2022-02-16_bed6bc0b197a_rename_parent_and_child_block_relations.py +0 -0
  229. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2023-03-06_e05bb1967eff_add_subscriptions_search_view.py +0 -0
  230. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2023-05-25_b1970225392d_add_subscription_metadata_workflow.py +0 -0
  231. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.py +0 -0
  232. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.sql +0 -0
  233. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.py +0 -0
  234. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.sql +0 -0
  235. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.py +0 -0
  236. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.sql +0 -0
  237. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2023-12-06_048219045729_add_workflow_id_to_processes_table.py +0 -0
  238. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.py +0 -0
  239. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.sql +0 -0
  240. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2025-01-08_4c5859620539_add_version_column_to_subscription.py +0 -0
  241. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2025-01-19_4fjdn13f83ga_add_validate_product_type_task.py +0 -0
  242. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2025-02-12_bac6be6f2b4f_added_input_state_table.py +0 -0
  243. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2025-02-20_68d14db1b8da_make_workflow_description_mandatory.py +0 -0
  244. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2025-03-06_42b3d076a85b_subscription_instance_as_json_function.py +0 -0
  245. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2025-03-06_42b3d076a85b_subscription_instance_as_json_function.sql +0 -0
  246. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2025-04-09_fc5c993a4b4a_add_cascade_constraint_on_processes_.py +0 -0
  247. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2025-05-08_161918133bec_add_is_task_to_workflow.py +0 -0
  248. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2025-07-01_93fc5834c7e5_changed_timestamping_fields_in_process_steps.py +0 -0
  249. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2025-07-04_4b58e336d1bf_deprecating_workflow_target_in_.py +0 -0
  250. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/migrations/versions/schema/2025-07-28_850dccac3b02_update_description_of_resume_workflows_.py +0 -0
  251. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/py.typed +0 -0
  252. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schedules/__init__.py +0 -0
  253. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schedules/resume_workflows.py +0 -0
  254. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schedules/scheduling.py +0 -0
  255. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schedules/task_vacuum.py +0 -0
  256. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schedules/validate_products.py +0 -0
  257. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schedules/validate_subscriptions.py +0 -0
  258. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schemas/__init__.py +0 -0
  259. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schemas/base.py +0 -0
  260. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schemas/engine_settings.py +0 -0
  261. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schemas/fixed_input.py +0 -0
  262. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schemas/problem_detail.py +0 -0
  263. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schemas/process.py +0 -0
  264. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schemas/product.py +0 -0
  265. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schemas/product_block.py +0 -0
  266. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schemas/resource_type.py +0 -0
  267. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schemas/subscription.py +0 -0
  268. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schemas/subscription_descriptions.py +0 -0
  269. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/schemas/workflow.py +0 -0
  270. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/security.py +0 -0
  271. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/__init__.py +0 -0
  272. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/executors/__init__.py +0 -0
  273. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/executors/celery.py +0 -0
  274. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/executors/threadpool.py +0 -0
  275. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/fixed_inputs.py +0 -0
  276. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/input_state.py +0 -0
  277. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/process_broadcast_thread.py +0 -0
  278. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/processes.py +0 -0
  279. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/products.py +0 -0
  280. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/resource_types.py +0 -0
  281. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/settings.py +0 -0
  282. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/settings_env_variables.py +0 -0
  283. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/subscription_relations.py +0 -0
  284. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/tasks.py +0 -0
  285. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/translations.py +0 -0
  286. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/services/workflows.py +0 -0
  287. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/settings.py +0 -0
  288. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/types.py +0 -0
  289. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/__init__.py +0 -0
  290. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/auth.py +0 -0
  291. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/crypt.py +0 -0
  292. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/datetime.py +0 -0
  293. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/deprecation_logger.py +0 -0
  294. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/docs.py +0 -0
  295. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/enrich_process.py +0 -0
  296. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/errors.py +0 -0
  297. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/expose_settings.py +0 -0
  298. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/fixed_inputs.py +0 -0
  299. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/functional.py +0 -0
  300. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/get_subscription_dict.py +0 -0
  301. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/get_updated_properties.py +0 -0
  302. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/helpers.py +0 -0
  303. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/json.py +0 -0
  304. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/redis.py +0 -0
  305. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/redis_client.py +0 -0
  306. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/search_query.py +0 -0
  307. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/state.py +0 -0
  308. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/strings.py +0 -0
  309. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/utils/validate_data_version.py +0 -0
  310. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/version.py +0 -0
  311. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/websocket/__init__.py +0 -0
  312. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/websocket/managers/broadcast_websocket_manager.py +0 -0
  313. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/websocket/managers/memory_websocket_manager.py +0 -0
  314. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/websocket/websocket_manager.py +0 -0
  315. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/workflow.py +0 -0
  316. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/workflows/__init__.py +0 -0
  317. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/workflows/modify_note.py +0 -0
  318. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/workflows/removed_workflow.py +0 -0
  319. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/workflows/steps.py +0 -0
  320. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/workflows/tasks/__init__.py +0 -0
  321. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/workflows/tasks/cleanup_tasks_log.py +0 -0
  322. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/workflows/tasks/resume_workflows.py +0 -0
  323. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/workflows/tasks/validate_product_type.py +0 -0
  324. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/workflows/tasks/validate_products.py +0 -0
  325. {orchestrator_core-4.4.0rc1 → orchestrator_core-4.4.0rc3}/orchestrator/workflows/translations/en-GB.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orchestrator-core
3
- Version: 4.4.0rc1
3
+ Version: 4.4.0rc3
4
4
  Summary: This is the orchestrator workflow engine.
5
5
  Author-email: SURF <automation-beheer@surf.nl>
6
6
  Requires-Python: >=3.11,<3.14
@@ -13,7 +13,7 @@
13
13
 
14
14
  """This is the orchestrator workflow engine."""
15
15
 
16
- __version__ = "4.4.0rc1"
16
+ __version__ = "4.4.0rc3"
17
17
 
18
18
  from orchestrator.app import OrchestratorCore
19
19
  from orchestrator.settings import app_settings
@@ -12,6 +12,7 @@
12
12
  # limitations under the License.
13
13
 
14
14
  """Module that implements subscription related API endpoints."""
15
+
15
16
  from http import HTTPStatus
16
17
  from typing import Any
17
18
  from uuid import UUID
@@ -13,11 +13,13 @@
13
13
 
14
14
 
15
15
  import logging
16
+ import time
16
17
 
17
18
  import typer
18
- from apscheduler.schedulers.blocking import BlockingScheduler
19
19
 
20
- from orchestrator.schedules.scheduler import jobstores, scheduler, scheduler_dispose_db_connections
20
+ from orchestrator.schedules.scheduler import (
21
+ get_paused_scheduler,
22
+ )
21
23
 
22
24
  log = logging.getLogger(__name__)
23
25
 
@@ -27,13 +29,11 @@ app: typer.Typer = typer.Typer()
27
29
  @app.command()
28
30
  def run() -> None:
29
31
  """Start scheduler and loop eternally to keep thread alive."""
30
- blocking_scheduler = BlockingScheduler(jobstores=jobstores)
32
+ with get_paused_scheduler() as scheduler:
33
+ scheduler.resume()
31
34
 
32
- try:
33
- blocking_scheduler.start()
34
- except (KeyboardInterrupt, SystemExit):
35
- scheduler.shutdown()
36
- scheduler_dispose_db_connections()
35
+ while True:
36
+ time.sleep(1)
37
37
 
38
38
 
39
39
  @app.command()
@@ -42,10 +42,8 @@ def show_schedule() -> None:
42
42
 
43
43
  in cli underscore is replaced by a dash `show-schedule`
44
44
  """
45
- scheduler.start(paused=True) # paused: avoid triggering jobs during CLI
46
- jobs = scheduler.get_jobs()
47
- scheduler.shutdown(wait=False)
48
- scheduler_dispose_db_connections()
45
+ with get_paused_scheduler() as scheduler:
46
+ jobs = scheduler.get_jobs()
49
47
 
50
48
  for job in jobs:
51
49
  typer.echo(f"[{job.id}] Next run: {job.next_run_time} | Trigger: {job.trigger}")
@@ -54,10 +52,8 @@ def show_schedule() -> None:
54
52
  @app.command()
55
53
  def force(job_id: str) -> None:
56
54
  """Force the execution of (a) scheduler(s) based on a job_id."""
57
- scheduler.start(paused=True) # paused: avoid triggering jobs during CLI
58
- job = scheduler.get_job(job_id)
59
- scheduler.shutdown(wait=False)
60
- scheduler_dispose_db_connections()
55
+ with get_paused_scheduler() as scheduler:
56
+ job = scheduler.get_job(job_id)
61
57
 
62
58
  if not job:
63
59
  typer.echo(f"Job '{job_id}' not found.")
@@ -12,9 +12,11 @@
12
12
  # limitations under the License.
13
13
 
14
14
 
15
+ from contextlib import contextmanager
15
16
  from datetime import datetime
16
- from typing import Any
17
+ from typing import Any, Generator
17
18
 
19
+ from apscheduler.executors.pool import ThreadPoolExecutor
18
20
  from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
19
21
  from apscheduler.schedulers.background import BackgroundScheduler
20
22
  from more_itertools import partition
@@ -28,14 +30,31 @@ from orchestrator.settings import app_settings
28
30
  from orchestrator.utils.helpers import camel_to_snake, to_camel
29
31
 
30
32
  jobstores = {"default": SQLAlchemyJobStore(url=str(app_settings.DATABASE_URI))}
33
+ executors = {
34
+ "default": ThreadPoolExecutor(1),
35
+ }
36
+ job_defaults = {
37
+ "coalesce": True,
38
+ }
31
39
 
32
- scheduler = BackgroundScheduler(jobstores=jobstores)
40
+ scheduler = BackgroundScheduler(jobstores=jobstores, executors=executors, job_defaults=job_defaults)
33
41
 
34
42
 
35
43
  def scheduler_dispose_db_connections() -> None:
36
44
  jobstores["default"].engine.dispose()
37
45
 
38
46
 
47
+ @contextmanager
48
+ def get_paused_scheduler() -> Generator[BackgroundScheduler, Any, None]:
49
+ scheduler.start(paused=True)
50
+
51
+ try:
52
+ yield scheduler
53
+ finally:
54
+ scheduler.shutdown()
55
+ scheduler_dispose_db_connections()
56
+
57
+
39
58
  class ScheduledTask(BaseModel):
40
59
  id: str
41
60
  name: str | None = None
@@ -131,10 +150,8 @@ def get_scheduler_tasks(
131
150
  sort_by: list[Sort] | None = None,
132
151
  error_handler: CallableErrorHandler = default_error_handler,
133
152
  ) -> tuple[list[ScheduledTask], int]:
134
- scheduler.start(paused=True)
135
- scheduled_tasks = scheduler.get_jobs()
136
- scheduler.shutdown(wait=False)
137
- scheduler_dispose_db_connections()
153
+ with get_paused_scheduler() as pauzed_scheduler:
154
+ scheduled_tasks = pauzed_scheduler.get_jobs()
138
155
 
139
156
  scheduled_tasks = filter_scheduled_tasks(scheduled_tasks, error_handler, filter_by)
140
157
  scheduled_tasks = sort_scheduled_tasks(scheduled_tasks, error_handler, sort_by)
@@ -12,6 +12,7 @@
12
12
  # limitations under the License.
13
13
 
14
14
  """Module that provides service functions on subscriptions."""
15
+
15
16
  import pickle # noqa: S403
16
17
  from collections import defaultdict
17
18
  from collections.abc import Sequence
@@ -506,6 +507,7 @@ TARGET_DEFAULT_USABLE_MAP: dict[Target, list[str]] = {
506
507
  Target.TERMINATE: ["active", "provisioning"],
507
508
  Target.SYSTEM: ["active"],
508
509
  Target.VALIDATE: ["active"],
510
+ Target.RECONCILE: ["active"],
509
511
  }
510
512
 
511
513
  WF_USABLE_MAP: dict[str, list[str]] = {}
@@ -532,6 +534,7 @@ def subscription_workflows(subscription: SubscriptionTable) -> dict[str, Any]:
532
534
  ... "terminate": [],
533
535
  ... "system": [],
534
536
  ... "validate": [],
537
+ ... "reconcile: [],
535
538
  ... }
536
539
 
537
540
  """
@@ -552,6 +555,7 @@ def subscription_workflows(subscription: SubscriptionTable) -> dict[str, Any]:
552
555
  "terminate": [],
553
556
  "system": [],
554
557
  "validate": [],
558
+ "reconcile": [],
555
559
  }
556
560
  for workflow in subscription.product.workflows:
557
561
  if workflow.name in WF_USABLE_WHILE_OUT_OF_SYNC or workflow.is_task:
@@ -23,3 +23,4 @@ class Target(strEnum):
23
23
  TERMINATE = "TERMINATE"
24
24
  SYSTEM = "SYSTEM"
25
25
  VALIDATE = "VALIDATE"
26
+ RECONCILE = "RECONCILE"
@@ -154,7 +154,7 @@ def _generate_modify_form(workflow_target: str, workflow_name: str) -> InputForm
154
154
 
155
155
 
156
156
  def wrap_modify_initial_input_form(initial_input_form: InputStepFunc | None) -> StateInputStepFunc | None:
157
- """Wrap initial input for modify and terminate workflows.
157
+ """Wrap initial input for modify, reconcile and terminate workflows.
158
158
 
159
159
  This is needed because the frontend expects all modify workflows to start with a page that only contains the
160
160
  subscription id. It also expects the second page to have some user visible inputs and the subscription id *again*.
@@ -355,6 +355,53 @@ def validate_workflow(description: str) -> Callable[[Callable[[], StepList]], Wo
355
355
  return _validate_workflow
356
356
 
357
357
 
358
+ def reconcile_workflow(
359
+ description: str,
360
+ additional_steps: StepList | None = None,
361
+ authorize_callback: Authorizer | None = None,
362
+ retry_auth_callback: Authorizer | None = None,
363
+ ) -> Callable[[Callable[[], StepList]], Workflow]:
364
+ """Similar to a modify_workflow but without required input user input to perform a sync with external systems based on the subscriptions existing configuration.
365
+
366
+ Use this for subscription reconcile workflows.
367
+
368
+ Example::
369
+
370
+ @reconcile_workflow("Reconcile l2vpn")
371
+ def reconcile_l2vpn() -> StepList:
372
+ return (
373
+ begin
374
+ >> update_l2vpn_in_external_systems
375
+ )
376
+ """
377
+
378
+ wrapped_reconcile_initial_input_form_generator = wrap_modify_initial_input_form(None)
379
+
380
+ def _reconcile_workflow(f: Callable[[], StepList]) -> Workflow:
381
+ steplist = (
382
+ init
383
+ >> store_process_subscription()
384
+ >> unsync
385
+ >> f()
386
+ >> (additional_steps or StepList())
387
+ >> resync
388
+ >> refresh_subscription_search_index
389
+ >> done
390
+ )
391
+
392
+ return make_workflow(
393
+ f,
394
+ description,
395
+ wrapped_reconcile_initial_input_form_generator,
396
+ Target.RECONCILE,
397
+ steplist,
398
+ authorize_callback=authorize_callback,
399
+ retry_auth_callback=retry_auth_callback,
400
+ )
401
+
402
+ return _reconcile_workflow
403
+
404
+
358
405
  def ensure_provisioning_status(modify_steps: Step | StepList) -> StepList:
359
406
  """Decorator to ensure subscription modifications are executed only during Provisioning status."""
360
407
  return (
@@ -105,6 +105,7 @@ dev = [
105
105
  "pyinstrument>=5.0.2",
106
106
  "pytest==8.4.1",
107
107
  "pytest-asyncio==0.21.2",
108
+ "pytest-celery>=1.2.1",
108
109
  "pytest-codspeed>=3.2.0",
109
110
  "pytest-cov>=6.2.1",
110
111
  "pytest-httpx>=0.29.0",
@@ -230,3 +231,6 @@ known-first-party = [
230
231
  "oauth2_lib",
231
232
  "pydantic_forms",
232
233
  ]
234
+
235
+ [tool.uv]
236
+ index-url = "https://pypi.org/simple"