orchestrator-core 3.0.0rc1__tar.gz → 3.1.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.bumpversion.cfg +1 -1
- orchestrator_core-3.1.0rc1/.github/workflows/run-codspeed-tests.yml +71 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/workflows/run-unit-tests.yml +1 -1
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/PKG-INFO +11 -9
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/README.md +7 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/contributing/guidelines.md +14 -0
- orchestrator_core-3.1.0rc1/docs/migration-guide/3.0.md +18 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/mkdocs.yml +3 -1
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/__init__.py +1 -1
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/settings.py +2 -1
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/generator/migration.py +5 -2
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/models.py +17 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/distlock/managers/redis_distlock_manager.py +3 -2
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/resolvers/settings.py +2 -1
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/product.py +19 -2
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/helpers.py +5 -5
- orchestrator_core-3.1.0rc1/orchestrator/migrations/versions/schema/2025-02-12_bac6be6f2b4f_added_input_state_table.py +56 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/celery.py +6 -3
- orchestrator_core-3.1.0rc1/orchestrator/services/input_state.py +76 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/processes.py +6 -5
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/tasks.py +11 -6
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/workflows.py +13 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/settings.py +26 -2
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/redis.py +6 -11
- orchestrator_core-3.1.0rc1/orchestrator/utils/redis_client.py +35 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/pyproject.toml +8 -7
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/setup.cfg +0 -12
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_subscriptions.py +2 -2
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/conftest.py +122 -8
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/domain/test_base.py +4 -4
- orchestrator_core-3.1.0rc1/test/unit_tests/domain/test_base_performance.py +125 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_one_nested.py +12 -1
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_product.py +44 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_settings.py +2 -3
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_subscriptions.py +28 -0
- orchestrator_core-3.1.0rc1/test/unit_tests/services/test_input_state.py +63 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/services/test_processes.py +12 -1
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/workflows/__init__.py +5 -1
- orchestrator_core-3.1.0rc1/test/unit_tests/workflows/test_generic_workflow_steps.py +103 -0
- orchestrator_core-3.0.0rc1/mutmut_config.py +0 -35
- orchestrator_core-3.0.0rc1/test/unit_tests/workflows/test_generic_workflow_steps.py +0 -52
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.coveragerc +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/dependabot.yml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/workflows/README.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/workflows/build-push-container.yml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/workflows/changelog.yml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/workflows/codeql-analysis.yml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/workflows/gh-pages.yml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/workflows/issues.yml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/workflows/publish-package.yml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/workflows/run-linting-tests.yml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/workflows/scheduled-build.yml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.gitignore +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.pre-commit-config.yaml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.stignore +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/CHANGELOG.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/Dockerfile +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/LICENSE +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/NOTICE +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/codecov.yml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/application/domainmodels.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/application/forms-frontend.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/application/tasks.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/application/workflow.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/framework.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/img/base-orchestrator-setup.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/img/custom-orchestrator-setup.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/orchestration/img/Custom-orchestrator-ui-using-override.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/orchestration/img/Standard-orchestrator-ui.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/orchestration/orchestrator-ui.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/orchestration/philosophy.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/backfilling.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/context.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/imports.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/introduction.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/ip_static.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/ip_static.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/l2_point_to_point.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/l2_point_to_point.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/l2_vpn.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/l2_vpn.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/modelling.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/node.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/node.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/port.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/port.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/product_block_graph.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/product_block_graph.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/standards.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/product_modelling/terminology.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/architecture/tldr.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/contributing/development.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/contributing/testing.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/css/custom.css +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/css/style.css +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/css/termynal.css +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/getting-started/base.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/getting-started/docker.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/getting-started/orchestration-ui.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/getting-started/prepare-source-folder.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/getting-started/versions.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/img/WFO-Emblem-White.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/img/favicon.ico +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/index.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/js/custom.js +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/js/termynal.js +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/migration-guide/2.0.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/api.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/app/app.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/app/scaling.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/auth-backend-and-frontend.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/cli.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/database.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/domain_models/generator.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/domain_models/instantiating.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/domain_models/model_attributes.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/domain_models/overview.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/domain_models/product_blocks.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/domain_models/product_types.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/domain_models/properties.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/domain_models/pydantic_hooks.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/domain_models/type_casting.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/domain_models/union_types.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/domain_models/validation.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/forms.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/graphql.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/python.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/search.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/search_overview.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/serialization.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/tasks.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/tests.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/tldr.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/websockets.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/workflows/callbacks.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/workflows/workflow-lifecycles.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/reference-docs/workflows/workflow-steps.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/bootstrap.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/create-your-own.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/docker-installation.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/domain-models.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/execute-workflows.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/generator.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/l2_point_to_point.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/node-create.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/node-modify.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/node-terminate.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/node-validate.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/overview.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/scenario.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/workflow-basics.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/advanced/workflow-introduction.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/create-user-group.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/create-user.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/database-migration.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/debian.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/docker.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/domain-models.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/explore.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/input-forms.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/macos.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/modify-user-group.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/modify-user.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/register-workflows.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/start-applications.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/terminate-user-group.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/terminate-user.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/workflow-introduction.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/beginner/workshop-overview.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/images/Software-topology.drawio.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/images/clab_topology.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/images/metadata_products.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/images/netbox_devices_active.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/images/subscriptions.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/docs/workshops/images/topology.drawio.png +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/includes/abbreviations.md +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/nitpick-style.toml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/api.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/health.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/processes.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/product_blocks.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/products.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/resource_types.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/subscriptions.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/translations.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/user.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/workflows.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/api_v1/endpoints/ws.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/error_handling.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/api/models.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/app.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/database.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/domain_gen_helpers/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/domain_gen_helpers/helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/domain_gen_helpers/product_block_helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/domain_gen_helpers/product_helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/domain_gen_helpers/resource_type_helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/domain_gen_helpers/types.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generate.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/custom_templates/README +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_imports.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_input_fields.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_steps.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_imports.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_input_fields.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_steps.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_imports.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_input_fields.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_steps.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/generator/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/generator/enums.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/generator/helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/generator/product.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/generator/product_block.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/generator/settings.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/generator/translations.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/generator/unittest.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/generator/validations.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/generator/workflow.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/products/workshop/circuit.yaml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/products/workshop/node.yaml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/products/workshop/user.yaml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/products/workshop/user_group.yaml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/additional_create_imports.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/additional_create_steps.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/additional_modify_imports.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/additional_modify_steps.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/additional_terminate_steps.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/constrained_int_definitions.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/create_data_head.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/create_product.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/enums.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/lazy_workflow_instance.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/list_definitions.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/macros.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/modify_product.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/new_product_migration.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/product.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/product_block.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/shared_forms.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/shared_workflows.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/subscription_model_registry.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/terminate_product.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/test_create_workflow.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/test_modify_workflow.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/test_product_type.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/test_terminate_workflow.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/test_validate_workflow.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/generator/templates/validate_product.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/helpers/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/helpers/input_helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/helpers/print_helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/main.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/migrate_domain_models.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/migrate_tasks.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/migrate_workflows.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/migration_helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/cli/scheduler.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/config/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/config/assignee.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/database.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/filters/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/filters/filters.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/filters/process.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/filters/product.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/filters/product_block.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/filters/resource_type.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/filters/search_filters/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/filters/search_filters/inferred_filter.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/filters/subscription.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/filters/workflow.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/listeners.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/loaders.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/range/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/range/range.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/sorting/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/sorting/process.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/sorting/product.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/sorting/product_block.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/sorting/resource_type.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/sorting/sorting.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/sorting/subscription.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/db/sorting/workflow.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/devtools/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/devtools/populator.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/devtools/scripts/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/devtools/scripts/migrate_20.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/devtools/scripts/migrate_30.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/devtools/scripts/shared.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/distlock/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/distlock/distlock_manager.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/distlock/managers/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/distlock/managers/memory_distlock_manager.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/domain/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/domain/base.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/domain/customer_description.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/domain/helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/domain/lifecycle.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/exception_handlers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/forms/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/forms/validators/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/forms/validators/customer_contact_list.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/forms/validators/customer_id.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/forms/validators/display_subscription.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/forms/validators/network_type_validators.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/forms/validators/product_id.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/autoregistration.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/extensions/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/extensions/stats.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/loaders/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/loaders/subscriptions.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/mutations/customer_description.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/mutations/start_process.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/pagination.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/resolvers/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/resolvers/customer.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/resolvers/helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/resolvers/process.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/resolvers/product.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/resolvers/product_block.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/resolvers/resource_type.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/resolvers/subscription.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/resolvers/version.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/resolvers/workflow.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schema.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/customer.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/customer_description.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/errors.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/fixed_input.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/process.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/product_block.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/resource_type.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/settings.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/strawberry_pydantic_patch.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/subscription.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/version.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/workflow.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/types.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/utils/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/utils/create_resolver_error_handler.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/utils/get_query_loaders.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/utils/get_selected_fields.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/utils/get_selected_paths.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/utils/get_subscription_product_blocks.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/utils/is_query_detailed.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/utils/override_class.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/utils/to_graphql_result_page.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/log_config.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/README +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/alembic.ini +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/env.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/script.py.mako +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/templates/alembic.ini.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/templates/env.py.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/templates/helpers.py.j2 +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_3323bcb934e7_fix_tsv_triggers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_a76b9185b334_add_generic_workflows_to_core.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_c112305b07d3_initial_schema_migration.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2021-04-06_3c8b9185c221_add_validate_products_task.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2021-07-01_6896a54e9483_add_product_block_relations.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2021-11-17_19cdd3ab86f6_fix_parse_websearch.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2022-02-16_bed6bc0b197a_rename_parent_and_child_block_relations.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2023-03-06_e05bb1967eff_add_subscriptions_search_view.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2023-05-25_b1970225392d_add_subscription_metadata_workflow.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.sql +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.sql +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.sql +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2023-12-06_048219045729_add_workflow_id_to_processes_table.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.sql +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2025-01-08_4c5859620539_add_version_column_to_subscription.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/versions/schema/2025-10-19_4fjdn13f83ga_add_validate_product_type_task.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/py.typed +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schedules/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schedules/resume_workflows.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schedules/scheduling.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schedules/task_vacuum.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schedules/validate_products.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schedules/validate_subscriptions.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schemas/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schemas/base.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schemas/engine_settings.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schemas/fixed_input.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schemas/problem_detail.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schemas/process.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schemas/product.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schemas/product_block.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schemas/resource_type.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schemas/subscription.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schemas/subscription_descriptions.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/schemas/workflow.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/security.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/fixed_inputs.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/process_broadcast_thread.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/products.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/resource_types.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/settings.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/subscription_relations.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/subscriptions.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/translations.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/targets.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/types.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/crypt.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/datetime.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/deprecation_logger.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/docs.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/enrich_process.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/errors.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/fixed_inputs.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/functional.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/get_subscription_dict.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/get_updated_properties.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/json.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/search_query.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/state.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/strings.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/utils/validate_data_version.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/version.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/websocket/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/websocket/managers/broadcast_websocket_manager.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/websocket/managers/memory_websocket_manager.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/websocket/websocket_manager.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/workflow.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/workflows/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/workflows/modify_note.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/workflows/removed_workflow.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/workflows/steps.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/workflows/tasks/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/workflows/tasks/cleanup_tasks_log.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/workflows/tasks/resume_workflows.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/workflows/tasks/validate_product_type.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/workflows/tasks/validate_products.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/workflows/translations/en-GB.json +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/workflows/utils.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/setup.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/conftest.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/test_product_populator.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/main.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/test_product_blocks.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/products/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/products/test_product.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/workflows/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/workflows/create_test_product.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/acceptance_tests/test_test_product.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_caching.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_health.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_models.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_processes.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_processes_ws.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_product_blocks.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_products.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_resource_types.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_settings.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_subscription_customer_descriptions.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_workflows.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/api/test_ws.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/conftest.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/alembic.ini +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/main.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/migrations/env.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/migrations/helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/migrations/script.py.mako +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_59e1199aff7f_create_data_head.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_85be1c80731c_add_example2.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_ea9e6c9de75c_add_example1.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-06-07_380a5b0c928c_add_example4.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/products/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example1.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example2.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example4.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example4sub.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/products/product_types/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example1.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example2.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example4.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example1.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example2.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example4.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_create_example1.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_modify_example1.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_terminate_example1.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_validate_example1.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_create_example2.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_modify_example2.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_terminate_example2.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_validate_example2.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_create_example4.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_modify_example4.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_terminate_example4.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_validate_example4.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/translations/en-GB.json +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/create_example1.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/modify_example1.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/shared/forms.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/terminate_example1.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/validate_example1.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/create_example2.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/modify_example2.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/shared/forms.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/terminate_example2.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/create_example4.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/modify_example4.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/shared/forms.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/terminate_example4.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate/workflows/shared.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/generate.sh +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/invalid_product_config1.yaml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/invalid_product_config2.yaml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/product_config1.yaml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/product_config2.yaml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/product_config3.yaml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/data/product_config4.yaml +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/generator/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/generator/test_enums.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/test_cli_generate.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/test_config_validation.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/test_generate_code.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/test_migrate_domain_models_with_instances.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/cli/test_migrate_domain_models_without_instances.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/config.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/db/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/db/test_listeners.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/domain/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/domain/test_base_multiple.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/domain/test_base_with_list_union.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/domain/test_base_with_union.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/domain/test_lifecycle.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/processes.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_blocks/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_list_nested.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_one.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_with_list_union.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_with_union.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_one.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_two.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_types/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_nested.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_union.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_union_overlap.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_one.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_one_nested.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_list_union.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_one.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_two.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_union.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_union.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/product_types/subscription_relations.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/products/resource_types.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/fixtures/workflows.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/forms/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/forms/test_customer_contact_list.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/forms/test_customer_id.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/forms/test_display_subscription.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/forms/test_generic_validators.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/conftest.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/extensions/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/extensions/test_stats.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/mutations/helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/mutations/test_customer_description.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/mutations/test_start_process.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_customer.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_process.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_processes.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_product_blocks.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_resource_types.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_sort_and_filter_fields.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_subscription.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_subscription_relations.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_version.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/test_workflows.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/utils/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/utils/fixtures.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/utils/test_autoregistration.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/utils/test_get_query_loaders.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/utils/test_get_selected_paths.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/utils/test_is_query_detailed.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/utils/test_is_querying_page_data.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/graphql/utils/test_override_class.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/helpers.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/schedules/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/schedules/test_scheduling.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/services/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/services/test_products.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/services/test_subscription_relations.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/services/test_subscriptions.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/services/test_translations.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/test_db.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/test_types.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/test_workflow.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/utils/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/utils/get_subscription_dict.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/utils/test_datetime.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/utils/test_errors.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/utils/test_functional.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/utils/test_get_updated_properties.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/utils/test_json.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/utils/test_search_query.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/utils/test_state.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/utils/test_strings.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/websocket/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/websocket/test_broadcast.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/workflows/conftest.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/workflows/shared/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/workflows/shared/test_validate_subscriptions.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/workflows/tasks/__init__.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/workflows/tasks/test_clean_up_task_log.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/workflows/tasks/test_resume_workflows.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/workflows/tasks/test_validate_product_type.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/workflows/tasks/test_validate_products.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/workflows/test_async_workflow.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/workflows/test_config_db_code.py +0 -0
- {orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/test/unit_tests/workflows/test_modify_note.py +0 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
name: CodSpeed
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ "main" ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ "main" ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
codspeed:
|
|
11
|
+
name: Run benchmarks
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
container:
|
|
14
|
+
image: python:3.11
|
|
15
|
+
options: --privileged
|
|
16
|
+
services:
|
|
17
|
+
postgres:
|
|
18
|
+
image: postgres:15-alpine
|
|
19
|
+
# Provide the password for postgres
|
|
20
|
+
env:
|
|
21
|
+
POSTGRES_PASSWORD: nwa
|
|
22
|
+
POSTGRES_USER: nwa
|
|
23
|
+
# Set health checks to wait until postgres has started
|
|
24
|
+
options: >-
|
|
25
|
+
--health-cmd pg_isready
|
|
26
|
+
--health-interval 10s
|
|
27
|
+
--health-timeout 5s
|
|
28
|
+
--health-retries 5
|
|
29
|
+
redis:
|
|
30
|
+
# Docker Hub image
|
|
31
|
+
image: redis
|
|
32
|
+
# Set health checks to wait until redis has started
|
|
33
|
+
options: >-
|
|
34
|
+
--health-cmd "redis-cli ping"
|
|
35
|
+
--health-interval 10s
|
|
36
|
+
--health-timeout 5s
|
|
37
|
+
--health-retries 5
|
|
38
|
+
steps:
|
|
39
|
+
# Downloads a copy of the code in your repository before running CI tests
|
|
40
|
+
- name: Check out repository code
|
|
41
|
+
uses: actions/checkout@v3
|
|
42
|
+
|
|
43
|
+
- name: Install dependencies
|
|
44
|
+
run: |
|
|
45
|
+
apt update
|
|
46
|
+
apt install curl git build-essential libpq-dev libffi-dev -y
|
|
47
|
+
python -m pip install --upgrade pip
|
|
48
|
+
pip install flit
|
|
49
|
+
flit install --deps develop --symlink
|
|
50
|
+
echo "GIT_COMMIT_HASH=\"test\"" > orchestrator/version.py
|
|
51
|
+
env:
|
|
52
|
+
FLIT_ROOT_INSTALL: 1
|
|
53
|
+
|
|
54
|
+
# Prevent error "repository path is not owned by the current user"
|
|
55
|
+
- name: Fix git owner
|
|
56
|
+
run: git config --global --add safe.directory "*"
|
|
57
|
+
|
|
58
|
+
# Speculatively add the cargo binary directory to the PATH because codspeed's installer script somehow doesn't
|
|
59
|
+
- name: Add $HOME/.cargo/bin to PATH
|
|
60
|
+
run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
|
61
|
+
|
|
62
|
+
- uses: CodSpeedHQ/action@v3
|
|
63
|
+
with:
|
|
64
|
+
run: CACHE_URI=redis://redis DATABASE_URI=postgresql+psycopg://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST/$POSTGRES_DB pytest test/unit_tests --codspeed
|
|
65
|
+
token: ${{ secrets.CODSPEED_TOKEN }}
|
|
66
|
+
env:
|
|
67
|
+
POSTGRES_DB: orchestrator-core-test
|
|
68
|
+
POSTGRES_USER: nwa
|
|
69
|
+
POSTGRES_PASSWORD: nwa
|
|
70
|
+
POSTGRES_HOST: postgres
|
|
71
|
+
ENVIRONMENT: TESTING
|
{orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/.github/workflows/run-unit-tests.yml
RENAMED
|
@@ -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
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: orchestrator-core
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.1.0rc1
|
|
4
4
|
Summary: This is the orchestrator workflow engine.
|
|
5
5
|
Requires-Python: >=3.11,<3.14
|
|
6
6
|
Classifier: Intended Audience :: Information Technology
|
|
@@ -27,26 +27,27 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
27
27
|
Classifier: Programming Language :: Python :: 3.11
|
|
28
28
|
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
|
29
29
|
Classifier: Topic :: Internet :: WWW/HTTP
|
|
30
|
+
License-File: LICENSE
|
|
30
31
|
Requires-Dist: alembic==1.14.1
|
|
31
32
|
Requires-Dist: anyio>=3.7.0
|
|
32
33
|
Requires-Dist: click==8.*
|
|
33
34
|
Requires-Dist: deprecated
|
|
34
|
-
Requires-Dist: deepmerge==
|
|
35
|
+
Requires-Dist: deepmerge==2.0
|
|
35
36
|
Requires-Dist: fastapi~=0.115.2
|
|
36
37
|
Requires-Dist: fastapi-etag==0.4.0
|
|
37
38
|
Requires-Dist: more-itertools~=10.6.0
|
|
38
39
|
Requires-Dist: itsdangerous
|
|
39
40
|
Requires-Dist: Jinja2==3.1.5
|
|
40
41
|
Requires-Dist: orjson==3.10.15
|
|
41
|
-
Requires-Dist:
|
|
42
|
+
Requires-Dist: psycopg[binary]==3.2.5
|
|
42
43
|
Requires-Dist: pydantic[email]~=2.8.2
|
|
43
|
-
Requires-Dist: pydantic-settings~=2.
|
|
44
|
+
Requires-Dist: pydantic-settings~=2.8.0
|
|
44
45
|
Requires-Dist: python-dateutil==2.8.2
|
|
45
46
|
Requires-Dist: python-rapidjson>=1.18,<1.21
|
|
46
|
-
Requires-Dist: pytz==
|
|
47
|
+
Requires-Dist: pytz==2025.1
|
|
47
48
|
Requires-Dist: redis==5.0.3
|
|
48
49
|
Requires-Dist: schedule==1.1.0
|
|
49
|
-
Requires-Dist: sentry-sdk[fastapi]~=2.
|
|
50
|
+
Requires-Dist: sentry-sdk[fastapi]~=2.22.0
|
|
50
51
|
Requires-Dist: SQLAlchemy==2.0.38
|
|
51
52
|
Requires-Dist: SQLAlchemy-Utils==0.41.2
|
|
52
53
|
Requires-Dist: structlog
|
|
@@ -56,7 +57,7 @@ Requires-Dist: nwa-stdlib~=1.9.0
|
|
|
56
57
|
Requires-Dist: oauth2-lib~=2.4.0
|
|
57
58
|
Requires-Dist: tabulate==0.9.0
|
|
58
59
|
Requires-Dist: strawberry-graphql>=0.246.2
|
|
59
|
-
Requires-Dist: pydantic-forms~=1.
|
|
60
|
+
Requires-Dist: pydantic-forms~=1.3.0
|
|
60
61
|
Requires-Dist: celery~=5.4.0 ; extra == "celery"
|
|
61
62
|
Requires-Dist: toml ; extra == "dev"
|
|
62
63
|
Requires-Dist: bumpversion ; extra == "dev"
|
|
@@ -81,8 +82,9 @@ Requires-Dist: dirty-equals ; extra == "test"
|
|
|
81
82
|
Requires-Dist: jsonref ; extra == "test"
|
|
82
83
|
Requires-Dist: mypy==1.9 ; extra == "test"
|
|
83
84
|
Requires-Dist: pyinstrument ; extra == "test"
|
|
84
|
-
Requires-Dist: pytest==8.3.
|
|
85
|
+
Requires-Dist: pytest==8.3.4 ; extra == "test"
|
|
85
86
|
Requires-Dist: pytest-asyncio==0.21.2 ; extra == "test"
|
|
87
|
+
Requires-Dist: pytest-codspeed ; extra == "test"
|
|
86
88
|
Requires-Dist: pytest-cov ; extra == "test"
|
|
87
89
|
Requires-Dist: pytest-httpx ; extra == "test"
|
|
88
90
|
Requires-Dist: pytest-xdist ; extra == "test"
|
|
@@ -191,3 +191,10 @@ You can do the necessary change with a clean, e.g. every change committed, branc
|
|
|
191
191
|
```shell
|
|
192
192
|
bumpversion patch --new-version 0.4.1-rc3
|
|
193
193
|
```
|
|
194
|
+
|
|
195
|
+
### Changing the Core database schema
|
|
196
|
+
When you would like to change the core database schema, execute the following steps.
|
|
197
|
+
|
|
198
|
+
- Create the new model `orchestrator/database/models.py`
|
|
199
|
+
- `cd orchestrator/migrations`
|
|
200
|
+
- `alembic revision --autogenerate -m "Name of the migratioin"`
|
|
@@ -6,6 +6,20 @@ free to raise an issue in the project. We will strive to reply to your enquiry A
|
|
|
6
6
|
## Documentation
|
|
7
7
|
We use [**MKDOCS**](https://www.mkdocs.org) as a documentation tool. Please create a PR if you have any additions or contributions to make. All docs can be written in MD or html. Full guidelines on how to set this up can be found [here](development.md).
|
|
8
8
|
|
|
9
|
+
## Pre-commit hooks
|
|
10
|
+
We use pre-commit hooks to ensure that the code is formatted correctly and that the tests pass. To install the
|
|
11
|
+
pre-commit hooks, run the following command:
|
|
12
|
+
|
|
13
|
+
```shell
|
|
14
|
+
pre-commit install
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
To run the pre-commit hooks manually, run the following command:
|
|
18
|
+
|
|
19
|
+
```shell
|
|
20
|
+
pre-commit run --all-files
|
|
21
|
+
```
|
|
22
|
+
|
|
9
23
|
## Orchestrator release
|
|
10
24
|
The `orchestrator-core` has no release schedule but is actively used and maintained by the workflow orchestrator group.
|
|
11
25
|
Creating a new release is done by the developers of the project and the procedure is as follows.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- navigation
|
|
4
|
+
---
|
|
5
|
+
# 3.0 Migration Guide
|
|
6
|
+
|
|
7
|
+
In this document we describe the steps that should be taken to migrate from `orchestrator-core` v2 to v3.
|
|
8
|
+
|
|
9
|
+
## About 3.0
|
|
10
|
+
|
|
11
|
+
In this release, deprecated import statements from the `orchestrator.types` module are removed, that now come from
|
|
12
|
+
`pydantic-forms.types` instead. These will have to be updated in your implementation of the orchestrator as well.
|
|
13
|
+
|
|
14
|
+
## Steps
|
|
15
|
+
|
|
16
|
+
To update the import statements you may have in your implementation of Workflow Orchestrator, we offer a migration
|
|
17
|
+
script that can be run as follows: `python -m orchestrator.devtools.scripts.migrate_30 <dir>` where `<dir>` points to
|
|
18
|
+
your orchestrator implementation.
|
|
@@ -189,7 +189,9 @@ nav:
|
|
|
189
189
|
# - Workflow Lifecycles: reference-docs/workflows/workflow-lifecycles.md
|
|
190
190
|
- Callbacks: reference-docs/workflows/callbacks.md
|
|
191
191
|
- Websockets: reference-docs/websockets.md
|
|
192
|
-
- Migration
|
|
192
|
+
- Migration guides:
|
|
193
|
+
- 2.x: migration-guide/2.0.md
|
|
194
|
+
- 3.x: migration-guide/3.0.md
|
|
193
195
|
|
|
194
196
|
- Workshops:
|
|
195
197
|
# - Beginner:
|
|
@@ -28,6 +28,7 @@ from orchestrator.services import processes, settings
|
|
|
28
28
|
from orchestrator.settings import ExecutorType, app_settings
|
|
29
29
|
from orchestrator.utils.json import json_dumps
|
|
30
30
|
from orchestrator.utils.redis import delete_keys_matching_pattern
|
|
31
|
+
from orchestrator.utils.redis_client import create_redis_asyncio_client
|
|
31
32
|
from orchestrator.websocket import WS_CHANNELS, broadcast_invalidate_cache, websocket_manager
|
|
32
33
|
|
|
33
34
|
router = APIRouter()
|
|
@@ -41,7 +42,7 @@ CACHE_FLUSH_OPTIONS: dict[str, str] = {
|
|
|
41
42
|
|
|
42
43
|
@router.delete("/cache/{name}")
|
|
43
44
|
async def clear_cache(name: str) -> int | None:
|
|
44
|
-
cache: AIORedis =
|
|
45
|
+
cache: AIORedis = create_redis_asyncio_client(app_settings.CACHE_URI)
|
|
45
46
|
if name not in CACHE_FLUSH_OPTIONS:
|
|
46
47
|
raise_status(HTTPStatus.BAD_REQUEST, "Invalid cache name")
|
|
47
48
|
|
|
@@ -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
|
|
40
|
-
environ.update({"DATABASE_URI": "
|
|
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(
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
from __future__ import annotations
|
|
15
15
|
|
|
16
|
+
import enum
|
|
16
17
|
from datetime import datetime, timezone
|
|
17
18
|
|
|
18
19
|
import sqlalchemy
|
|
@@ -23,6 +24,7 @@ from sqlalchemy import (
|
|
|
23
24
|
Boolean,
|
|
24
25
|
CheckConstraint,
|
|
25
26
|
Column,
|
|
27
|
+
Enum,
|
|
26
28
|
ForeignKey,
|
|
27
29
|
Index,
|
|
28
30
|
Integer,
|
|
@@ -81,6 +83,20 @@ class UtcTimestamp(TypeDecorator):
|
|
|
81
83
|
return value.astimezone(timezone.utc) if value else value
|
|
82
84
|
|
|
83
85
|
|
|
86
|
+
class InputStateTable(BaseModel):
|
|
87
|
+
__tablename__ = "input_states"
|
|
88
|
+
|
|
89
|
+
class InputType(enum.Enum):
|
|
90
|
+
user_input = "user_input"
|
|
91
|
+
initial_state = "initial_state"
|
|
92
|
+
|
|
93
|
+
input_state_id = mapped_column(UUIDType, primary_key=True, server_default=text("uuid_generate_v4()"), index=True)
|
|
94
|
+
process_id = mapped_column("pid", UUIDType, ForeignKey("processes.pid"), nullable=False)
|
|
95
|
+
input_state = mapped_column(pg.JSONB(), nullable=False) # type: ignore
|
|
96
|
+
input_time = mapped_column(UtcTimestamp, server_default=text("current_timestamp()"), nullable=False)
|
|
97
|
+
input_type = mapped_column(Enum(InputType), nullable=False)
|
|
98
|
+
|
|
99
|
+
|
|
84
100
|
class ProcessTable(BaseModel):
|
|
85
101
|
__tablename__ = "processes"
|
|
86
102
|
|
|
@@ -101,6 +117,7 @@ class ProcessTable(BaseModel):
|
|
|
101
117
|
steps = relationship(
|
|
102
118
|
"ProcessStepTable", cascade="delete", passive_deletes=True, order_by="asc(ProcessStepTable.executed_at)"
|
|
103
119
|
)
|
|
120
|
+
input_states = relationship("InputStateTable", cascade="delete", order_by="desc(InputStateTable.input_time)")
|
|
104
121
|
process_subscriptions = relationship("ProcessSubscriptionTable", back_populates="process", passive_deletes=True)
|
|
105
122
|
workflow = relationship("WorkflowTable", back_populates="processes")
|
|
106
123
|
|
|
@@ -20,6 +20,7 @@ from redis.lock import Lock as SyncLock
|
|
|
20
20
|
from structlog import get_logger
|
|
21
21
|
|
|
22
22
|
from orchestrator.settings import app_settings
|
|
23
|
+
from orchestrator.utils.redis_client import create_redis_asyncio_client, create_redis_client
|
|
23
24
|
|
|
24
25
|
logger = get_logger(__name__)
|
|
25
26
|
|
|
@@ -37,7 +38,7 @@ class RedisDistLockManager:
|
|
|
37
38
|
self.redis_address = redis_address
|
|
38
39
|
|
|
39
40
|
async def connect_redis(self) -> None:
|
|
40
|
-
self.redis_conn =
|
|
41
|
+
self.redis_conn = create_redis_asyncio_client(self.redis_address)
|
|
41
42
|
|
|
42
43
|
async def disconnect_redis(self) -> None:
|
|
43
44
|
if self.redis_conn:
|
|
@@ -78,7 +79,7 @@ class RedisDistLockManager:
|
|
|
78
79
|
def release_sync(self, lock: Lock) -> None:
|
|
79
80
|
redis_conn: Redis | None = None
|
|
80
81
|
try:
|
|
81
|
-
redis_conn =
|
|
82
|
+
redis_conn = create_redis_client(app_settings.CACHE_URI)
|
|
82
83
|
sync_lock: SyncLock = SyncLock(
|
|
83
84
|
redis=redis_conn,
|
|
84
85
|
name=lock.name, # type: ignore
|
{orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/resolvers/settings.py
RENAMED
|
@@ -21,6 +21,7 @@ from orchestrator.services.processes import SYSTEM_USER, ThreadPoolWorkerStatus,
|
|
|
21
21
|
from orchestrator.services.settings import get_engine_settings, get_engine_settings_for_update, post_update_to_slack
|
|
22
22
|
from orchestrator.settings import ExecutorType, app_settings
|
|
23
23
|
from orchestrator.utils.redis import delete_keys_matching_pattern
|
|
24
|
+
from orchestrator.utils.redis_client import create_redis_asyncio_client
|
|
24
25
|
|
|
25
26
|
logger = structlog.get_logger(__name__)
|
|
26
27
|
|
|
@@ -57,7 +58,7 @@ def resolve_settings(info: OrchestratorInfo) -> StatusType:
|
|
|
57
58
|
|
|
58
59
|
# Mutations
|
|
59
60
|
async def clear_cache(info: OrchestratorInfo, name: str) -> CacheClearSuccess | Error:
|
|
60
|
-
cache: AIORedis =
|
|
61
|
+
cache: AIORedis = create_redis_asyncio_client(app_settings.CACHE_URI)
|
|
61
62
|
if name not in CACHE_FLUSH_OPTIONS:
|
|
62
63
|
return Error(message="Invalid cache name")
|
|
63
64
|
|
{orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/graphql/schemas/product.py
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING, Annotated
|
|
1
|
+
from typing import TYPE_CHECKING, Annotated, Iterable
|
|
2
2
|
|
|
3
3
|
import strawberry
|
|
4
4
|
from strawberry import UNSET
|
|
5
5
|
from strawberry.federation.schema_directives import Key
|
|
6
6
|
|
|
7
7
|
from oauth2_lib.strawberry import authenticated_field
|
|
8
|
-
from orchestrator.db import ProductTable
|
|
8
|
+
from orchestrator.db import ProductBlockTable, ProductTable
|
|
9
9
|
from orchestrator.domain.base import ProductModel
|
|
10
10
|
from orchestrator.graphql.pagination import Connection
|
|
11
11
|
from orchestrator.graphql.schemas.fixed_input import FixedInput
|
|
@@ -51,6 +51,23 @@ class ProductType:
|
|
|
51
51
|
filter_by_with_related_subscriptions = (filter_by or []) + [GraphqlFilter(field="product", value=self.name)]
|
|
52
52
|
return await resolve_subscriptions(info, filter_by_with_related_subscriptions, sort_by, first, after)
|
|
53
53
|
|
|
54
|
+
@strawberry.field(description="Returns list of all nested productblock names") # type: ignore
|
|
55
|
+
async def all_pb_names(self) -> list[str]:
|
|
56
|
+
|
|
57
|
+
model = get_original_model(self, ProductTable)
|
|
58
|
+
|
|
59
|
+
def get_all_pb_names(product_blocks: list[ProductBlockTable]) -> Iterable[str]:
|
|
60
|
+
for product_block in product_blocks:
|
|
61
|
+
yield product_block.name
|
|
62
|
+
|
|
63
|
+
if product_block.depends_on:
|
|
64
|
+
yield from get_all_pb_names(product_block.depends_on)
|
|
65
|
+
|
|
66
|
+
names: list[str] = list(get_all_pb_names(model.product_blocks))
|
|
67
|
+
names.sort()
|
|
68
|
+
|
|
69
|
+
return names
|
|
70
|
+
|
|
54
71
|
@strawberry.field(description="Return product blocks") # type: ignore
|
|
55
72
|
async def product_blocks(self) -> list[Annotated["ProductBlock", strawberry.lazy(".product_block")]]:
|
|
56
73
|
from orchestrator.graphql.schemas.product_block import ProductBlock
|
{orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/migrations/helpers.py
RENAMED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
"""
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""Added Input State Table.
|
|
2
|
+
|
|
3
|
+
Revision ID: bac6be6f2b4f
|
|
4
|
+
Revises: 4fjdn13f83ga
|
|
5
|
+
Create Date: 2025-02-12 14:39:53.664284
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import sqlalchemy as sa
|
|
10
|
+
import sqlalchemy_utils
|
|
11
|
+
from alembic import op
|
|
12
|
+
from sqlalchemy.dialects import postgresql
|
|
13
|
+
|
|
14
|
+
from orchestrator import db
|
|
15
|
+
|
|
16
|
+
# revision identifiers, used by Alembic.
|
|
17
|
+
revision = "bac6be6f2b4f"
|
|
18
|
+
down_revision = "4fjdn13f83ga"
|
|
19
|
+
branch_labels = None
|
|
20
|
+
depends_on = None
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def upgrade() -> None:
|
|
24
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
25
|
+
op.create_table(
|
|
26
|
+
"input_states",
|
|
27
|
+
sa.Column(
|
|
28
|
+
"input_state_id",
|
|
29
|
+
sqlalchemy_utils.types.uuid.UUIDType(),
|
|
30
|
+
server_default=sa.text("uuid_generate_v4()"),
|
|
31
|
+
nullable=False,
|
|
32
|
+
),
|
|
33
|
+
sa.Column("pid", sqlalchemy_utils.types.uuid.UUIDType(), nullable=False),
|
|
34
|
+
sa.Column("input_state", postgresql.JSONB(astext_type=sa.Text()), nullable=False), # type: ignore
|
|
35
|
+
sa.Column(
|
|
36
|
+
"input_time",
|
|
37
|
+
db.models.UtcTimestamp(timezone=True),
|
|
38
|
+
server_default=sa.text("current_timestamp"),
|
|
39
|
+
nullable=False,
|
|
40
|
+
),
|
|
41
|
+
sa.Column("input_type", sa.Enum("user_input", "initial_state", name="inputtype"), nullable=False),
|
|
42
|
+
sa.ForeignKeyConstraint(
|
|
43
|
+
["pid"],
|
|
44
|
+
["processes.pid"],
|
|
45
|
+
),
|
|
46
|
+
sa.PrimaryKeyConstraint("input_state_id"),
|
|
47
|
+
)
|
|
48
|
+
op.create_index(op.f("ix_input_state_input_state_id"), "input_states", ["input_state_id"], unique=False)
|
|
49
|
+
# ### end Alembic commands ###
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def downgrade() -> None:
|
|
53
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
54
|
+
op.drop_index(op.f("ix_input_state_input_state_id"), table_name="input_states")
|
|
55
|
+
op.drop_table("input_statse")
|
|
56
|
+
# ### end Alembic commands ###
|
|
@@ -22,6 +22,7 @@ from kombu.exceptions import ConnectionError, OperationalError
|
|
|
22
22
|
from orchestrator import app_settings
|
|
23
23
|
from orchestrator.api.error_handling import raise_status
|
|
24
24
|
from orchestrator.db import ProcessTable, db
|
|
25
|
+
from orchestrator.services.input_state import store_input_state
|
|
25
26
|
from orchestrator.services.processes import create_process, delete_process
|
|
26
27
|
from orchestrator.targets import Target
|
|
27
28
|
from orchestrator.workflows import get_workflow
|
|
@@ -53,9 +54,8 @@ def _celery_start_process(
|
|
|
53
54
|
task_name = NEW_TASK if workflow.target == Target.SYSTEM else NEW_WORKFLOW
|
|
54
55
|
trigger_task = get_celery_task(task_name)
|
|
55
56
|
pstat = create_process(workflow_key, user_inputs, user)
|
|
56
|
-
tasks = pstat.state.s
|
|
57
57
|
try:
|
|
58
|
-
result = trigger_task.delay(pstat.process_id, workflow_key,
|
|
58
|
+
result = trigger_task.delay(pstat.process_id, workflow_key, user)
|
|
59
59
|
_block_when_testing(result)
|
|
60
60
|
return pstat.process_id
|
|
61
61
|
except (ConnectionError, OperationalError) as e:
|
|
@@ -82,9 +82,12 @@ def _celery_resume_process(
|
|
|
82
82
|
|
|
83
83
|
task_name = RESUME_TASK if workflow.target == Target.SYSTEM else RESUME_WORKFLOW
|
|
84
84
|
trigger_task = get_celery_task(task_name)
|
|
85
|
+
|
|
86
|
+
user_inputs = user_inputs or [{}]
|
|
87
|
+
store_input_state(pstat.process_id, user_inputs, "user_input")
|
|
85
88
|
try:
|
|
86
89
|
_celery_set_process_status_resumed(process)
|
|
87
|
-
result = trigger_task.delay(pstat.process_id,
|
|
90
|
+
result = trigger_task.delay(pstat.process_id, user)
|
|
88
91
|
_block_when_testing(result)
|
|
89
92
|
|
|
90
93
|
return pstat.process_id
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Copyright 2019-2025 SURF.
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
#
|
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
#
|
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
# See the License for the specific language governing permissions and
|
|
12
|
+
# limitations under the License.
|
|
13
|
+
from typing import Any, Literal
|
|
14
|
+
from uuid import UUID
|
|
15
|
+
|
|
16
|
+
import structlog
|
|
17
|
+
from sqlalchemy import select
|
|
18
|
+
|
|
19
|
+
from orchestrator.db import db
|
|
20
|
+
from orchestrator.db.models import InputStateTable
|
|
21
|
+
|
|
22
|
+
logger = structlog.get_logger(__name__)
|
|
23
|
+
|
|
24
|
+
InputType = Literal["initial_state", "user_input"]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def retrieve_input_state(process_id: UUID, input_type: InputType) -> InputStateTable:
|
|
28
|
+
"""Get user input.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
process_id: Process ID
|
|
32
|
+
input_type: The type of the input.
|
|
33
|
+
|
|
34
|
+
Returns:
|
|
35
|
+
User input table
|
|
36
|
+
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
res: InputStateTable | None = db.session.scalars(
|
|
40
|
+
select(InputStateTable)
|
|
41
|
+
.filter(InputStateTable.process_id == process_id)
|
|
42
|
+
.filter(InputStateTable.input_type == input_type)
|
|
43
|
+
.order_by(InputStateTable.input_time.asc())
|
|
44
|
+
).first()
|
|
45
|
+
|
|
46
|
+
if res:
|
|
47
|
+
logger.debug("Retrieved input state", process_id=process_id, input_state=res, input_type=input_type)
|
|
48
|
+
return res
|
|
49
|
+
raise ValueError(f"No input state for pid: {process_id}")
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def store_input_state(
|
|
53
|
+
process_id: UUID,
|
|
54
|
+
input_state: dict[str, Any] | list[dict[str, Any]],
|
|
55
|
+
input_type: InputType,
|
|
56
|
+
) -> None:
|
|
57
|
+
"""Store user input state.
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
process_id: Process ID
|
|
61
|
+
input_state: Dictionary of user input state
|
|
62
|
+
input_type: The type of the input.
|
|
63
|
+
|
|
64
|
+
Returns:
|
|
65
|
+
None
|
|
66
|
+
|
|
67
|
+
"""
|
|
68
|
+
logger.debug("Store input state", process_id=process_id, input_state=input_state, input_type=input_type)
|
|
69
|
+
db.session.add(
|
|
70
|
+
InputStateTable(
|
|
71
|
+
process_id=process_id,
|
|
72
|
+
input_state=input_state,
|
|
73
|
+
input_type=input_type,
|
|
74
|
+
)
|
|
75
|
+
)
|
|
76
|
+
db.session.commit()
|
{orchestrator_core-3.0.0rc1 → orchestrator_core-3.1.0rc1}/orchestrator/services/processes.py
RENAMED
|
@@ -18,7 +18,7 @@ from typing import Any
|
|
|
18
18
|
from uuid import UUID, uuid4
|
|
19
19
|
|
|
20
20
|
import structlog
|
|
21
|
-
from deepmerge import Merger
|
|
21
|
+
from deepmerge.merger import Merger
|
|
22
22
|
from sqlalchemy import delete, select
|
|
23
23
|
from sqlalchemy.exc import SQLAlchemyError
|
|
24
24
|
from sqlalchemy.orm import joinedload
|
|
@@ -35,6 +35,7 @@ from orchestrator.db import (
|
|
|
35
35
|
)
|
|
36
36
|
from orchestrator.distlock import distlock_manager
|
|
37
37
|
from orchestrator.schemas.engine_settings import WorkerStatus
|
|
38
|
+
from orchestrator.services.input_state import store_input_state
|
|
38
39
|
from orchestrator.services.settings import get_engine_settings_for_update
|
|
39
40
|
from orchestrator.services.workflows import get_workflow_by_name
|
|
40
41
|
from orchestrator.settings import ExecutorType, app_settings
|
|
@@ -450,7 +451,7 @@ def create_process(
|
|
|
450
451
|
)
|
|
451
452
|
|
|
452
453
|
_db_create_process(pstat)
|
|
453
|
-
|
|
454
|
+
store_input_state(process_id, state | initial_state, "initial_state")
|
|
454
455
|
return pstat
|
|
455
456
|
|
|
456
457
|
|
|
@@ -514,7 +515,7 @@ def thread_resume_process(
|
|
|
514
515
|
|
|
515
516
|
if user_input:
|
|
516
517
|
pstat.update(state=pstat.state.map(lambda state: StateMerger.merge(state, user_input)))
|
|
517
|
-
|
|
518
|
+
store_input_state(pstat.process_id, user_input, "user_input")
|
|
518
519
|
# enforce an update to the process status to properly show the process
|
|
519
520
|
process.last_status = ProcessStatus.RUNNING
|
|
520
521
|
db.session.add(process)
|
|
@@ -529,8 +530,8 @@ def thread_validate_workflow(validation_workflow: str, json: list[State] | None)
|
|
|
529
530
|
|
|
530
531
|
|
|
531
532
|
THREADPOOL_EXECUTION_CONTEXT: dict[str, Callable] = {
|
|
532
|
-
"start":
|
|
533
|
-
"resume":
|
|
533
|
+
"start": thread_start_process,
|
|
534
|
+
"resume": thread_resume_process,
|
|
534
535
|
"validate": thread_validate_workflow,
|
|
535
536
|
}
|
|
536
537
|
|