orchestrator-core 3.2.2__tar.gz → 4.0.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.2.2 → orchestrator_core-4.0.0rc1}/.bumpversion.cfg +2 -2
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/PKG-INFO +6 -6
- orchestrator_core-4.0.0rc1/docs/migration-guide/4.0.md +16 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/mkdocs.yml +1 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/__init__.py +1 -1
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py +0 -2
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/models.py +1 -1
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/domain/base.py +4 -24
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/domain/customer_description.py +0 -4
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/mutations/customer_description.py +1 -1
- orchestrator_core-4.0.0rc1/orchestrator/migrations/versions/schema/2025-02-20_68d14db1b8da_make_workflow_description_mandatory.py +33 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/processes.py +2 -1
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/subscriptions.py +6 -22
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/settings.py +0 -4
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/get_subscription_dict.py +0 -4
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/redis.py +1 -67
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflows/modify_note.py +3 -11
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflows/steps.py +2 -86
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflows/utils.py +2 -22
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/pyproject.toml +5 -5
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_subscriptions.py +3 -58
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/conftest.py +1 -2
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/workflows.py +8 -1
- orchestrator_core-4.0.0rc1/test/unit_tests/utils/get_subscription_dict.py +11 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/tasks/test_clean_up_task_log.py +7 -3
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/test_async_workflow.py +56 -8
- orchestrator_core-3.2.2/test/unit_tests/api/test_caching.py +0 -120
- orchestrator_core-3.2.2/test/unit_tests/utils/get_subscription_dict.py +0 -38
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.coveragerc +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/dependabot.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/workflows/README.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/workflows/build-push-container.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/workflows/changelog.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/workflows/codeql-analysis.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/workflows/gh-pages.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/workflows/issues.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/workflows/publish-package.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/workflows/run-codspeed-tests.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/workflows/run-linting-tests.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/workflows/run-unit-tests.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.github/workflows/scheduled-build.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.gitignore +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.pre-commit-config.yaml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/.stignore +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/CHANGELOG.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/Dockerfile +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/LICENSE +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/NOTICE +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/README.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/codecov.yml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/application/domainmodels.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/application/forms-frontend.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/application/tasks.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/application/workflow.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/framework.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/img/base-orchestrator-setup.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/img/custom-orchestrator-setup.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/orchestration/img/Custom-orchestrator-ui-using-override.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/orchestration/img/Standard-orchestrator-ui.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/orchestration/orchestrator-ui.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/orchestration/philosophy.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/backfilling.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/context.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/imports.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/introduction.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/ip_static.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/ip_static.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/l2_point_to_point.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/l2_point_to_point.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/l2_vpn.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/l2_vpn.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/modelling.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/node.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/node.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/port.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/port.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/product_block_graph.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/product_block_graph.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/standards.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/product_modelling/terminology.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/architecture/tldr.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/contributing/development.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/contributing/guidelines.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/contributing/testing.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/css/custom.css +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/css/style.css +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/css/termynal.css +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/getting-started/base.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/getting-started/docker.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/getting-started/orchestration-ui.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/getting-started/prepare-source-folder.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/getting-started/versions.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/img/WFO-Emblem-White.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/img/favicon.ico +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/index.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/js/custom.js +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/js/termynal.js +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/migration-guide/2.0.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/migration-guide/3.0.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/api.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/app/app.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/app/scaling.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/auth-backend-and-frontend.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/cli.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/database.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/domain_models/generator.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/domain_models/instantiating.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/domain_models/model_attributes.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/domain_models/overview.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/domain_models/product_blocks.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/domain_models/product_types.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/domain_models/properties.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/domain_models/pydantic_hooks.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/domain_models/type_casting.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/domain_models/union_types.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/domain_models/validation.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/forms.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/graphql.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/python.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/search.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/search_overview.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/serialization.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/tasks.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/tests.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/tldr.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/websockets.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/workflows/callbacks.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/workflows/workflow-lifecycles.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/reference-docs/workflows/workflow-steps.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/bootstrap.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/create-your-own.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/docker-installation.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/domain-models.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/execute-workflows.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/generator.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/l2_point_to_point.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/node-create.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/node-modify.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/node-terminate.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/node-validate.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/overview.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/scenario.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/workflow-basics.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/advanced/workflow-introduction.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/create-user-group.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/create-user.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/database-migration.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/debian.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/docker.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/domain-models.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/explore.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/input-forms.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/macos.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/modify-user-group.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/modify-user.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/register-workflows.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/start-applications.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/terminate-user-group.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/terminate-user.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/workflow-introduction.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/beginner/workshop-overview.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/images/Software-topology.drawio.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/images/clab_topology.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/images/metadata_products.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/images/netbox_devices_active.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/images/subscriptions.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/docs/workshops/images/topology.drawio.png +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/includes/abbreviations.md +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/nitpick-style.toml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/api.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/health.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/processes.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/product_blocks.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/products.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/resource_types.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/settings.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/subscriptions.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/translations.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/user.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/workflows.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/api_v1/endpoints/ws.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/error_handling.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/api/models.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/app.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/database.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/domain_gen_helpers/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/domain_gen_helpers/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/domain_gen_helpers/product_block_helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/domain_gen_helpers/product_helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/domain_gen_helpers/resource_type_helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/domain_gen_helpers/types.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generate.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/custom_templates/README +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_imports.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_input_fields.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_steps.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_imports.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_input_fields.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_steps.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_imports.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_input_fields.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_steps.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/generator/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/generator/enums.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/generator/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/generator/migration.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/generator/product.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/generator/product_block.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/generator/settings.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/generator/translations.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/generator/unittest.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/generator/validations.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/generator/workflow.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/products/workshop/circuit.yaml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/products/workshop/node.yaml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/products/workshop/user.yaml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/products/workshop/user_group.yaml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/additional_create_imports.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/additional_create_steps.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/additional_modify_imports.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/additional_modify_steps.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/additional_terminate_steps.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/constrained_int_definitions.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/create_data_head.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/create_product.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/enums.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/lazy_workflow_instance.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/list_definitions.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/macros.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/modify_product.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/new_product_migration.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/product.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/product_block.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/shared_forms.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/shared_workflows.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/subscription_model_registry.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/terminate_product.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/test_create_workflow.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/test_modify_workflow.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/test_product_type.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/test_terminate_workflow.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/test_validate_workflow.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/generator/templates/validate_product.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/helpers/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/helpers/input_helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/helpers/print_helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/main.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/migrate_domain_models.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/migrate_tasks.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/migrate_workflows.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/migration_helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/cli/scheduler.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/config/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/config/assignee.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/database.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/filters/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/filters/filters.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/filters/process.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/filters/product.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/filters/product_block.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/filters/resource_type.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/filters/search_filters/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/filters/search_filters/inferred_filter.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/filters/subscription.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/filters/workflow.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/listeners.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/loaders.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/queries/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/queries/subscription.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/queries/subscription_instance.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/range/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/range/range.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/sorting/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/sorting/process.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/sorting/product.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/sorting/product_block.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/sorting/resource_type.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/sorting/sorting.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/sorting/subscription.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/db/sorting/workflow.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/devtools/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/devtools/populator.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/devtools/scripts/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/devtools/scripts/migrate_20.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/devtools/scripts/migrate_30.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/devtools/scripts/shared.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/distlock/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/distlock/distlock_manager.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/distlock/managers/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/distlock/managers/memory_distlock_manager.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/distlock/managers/redis_distlock_manager.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/domain/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/domain/context_cache.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/domain/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/domain/lifecycle.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/domain/subscription_instance_transform.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/exception_handlers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/forms/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/forms/validators/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/forms/validators/customer_contact_list.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/forms/validators/customer_id.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/forms/validators/display_subscription.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/forms/validators/network_type_validators.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/forms/validators/product_id.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/autoregistration.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/extensions/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/extensions/model_cache.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/extensions/stats.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/loaders/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/loaders/subscriptions.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/mutations/start_process.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/pagination.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/resolvers/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/resolvers/customer.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/resolvers/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/resolvers/process.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/resolvers/product.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/resolvers/product_block.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/resolvers/resource_type.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/resolvers/settings.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/resolvers/subscription.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/resolvers/version.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/resolvers/workflow.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schema.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/customer.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/customer_description.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/errors.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/fixed_input.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/process.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/product.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/product_block.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/resource_type.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/settings.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/strawberry_pydantic_patch.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/subscription.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/version.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/schemas/workflow.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/types.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/utils/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/utils/create_resolver_error_handler.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/utils/get_query_loaders.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/utils/get_selected_fields.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/utils/get_selected_paths.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/utils/get_subscription_product_blocks.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/utils/is_query_detailed.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/utils/override_class.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/graphql/utils/to_graphql_result_page.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/log_config.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/README +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/alembic.ini +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/env.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/script.py.mako +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/templates/alembic.ini.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/templates/env.py.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/templates/helpers.py.j2 +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_3323bcb934e7_fix_tsv_triggers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_a76b9185b334_add_generic_workflows_to_core.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_c112305b07d3_initial_schema_migration.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2021-04-06_3c8b9185c221_add_validate_products_task.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2021-07-01_6896a54e9483_add_product_block_relations.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2021-11-17_19cdd3ab86f6_fix_parse_websearch.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2022-02-16_bed6bc0b197a_rename_parent_and_child_block_relations.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2023-03-06_e05bb1967eff_add_subscriptions_search_view.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2023-05-25_b1970225392d_add_subscription_metadata_workflow.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.sql +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.sql +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.sql +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2023-12-06_048219045729_add_workflow_id_to_processes_table.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.sql +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2025-01-08_4c5859620539_add_version_column_to_subscription.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2025-01-19_4fjdn13f83ga_add_validate_product_type_task.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2025-02-12_bac6be6f2b4f_added_input_state_table.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2025-03-06_42b3d076a85b_subscription_instance_as_json_function.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2025-03-06_42b3d076a85b_subscription_instance_as_json_function.sql +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/migrations/versions/schema/2025-04-09_fc5c993a4b4a_add_cascade_constraint_on_processes_.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/py.typed +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schedules/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schedules/resume_workflows.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schedules/scheduling.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schedules/task_vacuum.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schedules/validate_products.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schedules/validate_subscriptions.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schemas/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schemas/base.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schemas/engine_settings.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schemas/fixed_input.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schemas/problem_detail.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schemas/process.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schemas/product.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schemas/product_block.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schemas/resource_type.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schemas/subscription.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schemas/subscription_descriptions.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/schemas/workflow.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/security.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/celery.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/fixed_inputs.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/input_state.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/process_broadcast_thread.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/products.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/resource_types.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/settings.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/subscription_relations.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/tasks.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/translations.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/workflows.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/targets.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/types.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/crypt.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/datetime.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/deprecation_logger.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/docs.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/enrich_process.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/errors.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/fixed_inputs.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/functional.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/get_updated_properties.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/json.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/redis_client.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/search_query.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/state.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/strings.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/validate_data_version.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/version.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/websocket/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/websocket/managers/broadcast_websocket_manager.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/websocket/managers/memory_websocket_manager.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/websocket/websocket_manager.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflow.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflows/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflows/removed_workflow.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflows/tasks/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflows/tasks/cleanup_tasks_log.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflows/tasks/resume_workflows.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflows/tasks/validate_product_type.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflows/tasks/validate_products.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflows/translations/en-GB.json +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/setup.cfg +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/setup.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/conftest.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/test_product_populator.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/main.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/test_product_blocks.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/products/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/products/test_product.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/workflows/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/workflows/create_test_product.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/acceptance_tests/test_test_product.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_health.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_models.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_processes.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_processes_ws.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_product_blocks.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_products.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_resource_types.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_settings.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_subscription_customer_descriptions.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_workflows.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/api/test_ws.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/conftest.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/alembic.ini +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/main.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/migrations/env.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/migrations/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/migrations/script.py.mako +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_59e1199aff7f_create_data_head.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_85be1c80731c_add_example2.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_ea9e6c9de75c_add_example1.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-06-07_380a5b0c928c_add_example4.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/products/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example1.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example2.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example4.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example4sub.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/products/product_types/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example1.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example2.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example4.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example1.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example2.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example4.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_create_example1.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_modify_example1.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_terminate_example1.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_validate_example1.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_create_example2.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_modify_example2.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_terminate_example2.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_validate_example2.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_create_example4.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_modify_example4.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_terminate_example4.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_validate_example4.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/translations/en-GB.json +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/create_example1.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/modify_example1.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/shared/forms.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/terminate_example1.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/validate_example1.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/create_example2.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/modify_example2.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/shared/forms.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/terminate_example2.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/create_example4.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/modify_example4.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/shared/forms.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/terminate_example4.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate/workflows/shared.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/generate.sh +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/invalid_product_config1.yaml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/invalid_product_config2.yaml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/product_config1.yaml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/product_config2.yaml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/product_config3.yaml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/data/product_config4.yaml +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/generator/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/generator/test_enums.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/test_cli_generate.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/test_config_validation.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/test_generate_code.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/test_migrate_domain_models_with_instances.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/cli/test_migrate_domain_models_without_instances.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/config.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/db/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/db/test_listeners.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/domain/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/domain/test_base.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/domain/test_base_multiple.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/domain/test_base_performance.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/domain/test_base_serializable_property.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/domain/test_base_with_list_union.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/domain/test_base_with_union.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/domain/test_lifecycle.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/processes.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_list_nested.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_one.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_one_nested.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_with_list_union.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_with_union.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_one.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_two.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_types/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_nested.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_union.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_union_overlap.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_one.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_one_nested.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_list_union.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_one.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_two.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_union.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_union.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/product_types/subscription_relations.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/fixtures/products/resource_types.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/forms/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/forms/test_customer_contact_list.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/forms/test_customer_id.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/forms/test_display_subscription.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/forms/test_generic_validators.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/conftest.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/extensions/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/extensions/test_stats.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/mutations/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/mutations/test_customer_description.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/mutations/test_start_process.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_customer.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_process.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_processes.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_product.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_product_blocks.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_resource_types.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_settings.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_sort_and_filter_fields.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_subscription.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_subscription_relations.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_subscriptions.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_version.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/test_workflows.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/utils/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/utils/fixtures.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/utils/test_autoregistration.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/utils/test_get_query_loaders.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/utils/test_get_selected_paths.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/utils/test_is_query_detailed.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/utils/test_is_querying_page_data.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/graphql/utils/test_override_class.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/helpers.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/migrations/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/migrations/test_cascade_constraint.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/schedules/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/schedules/test_scheduling.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/services/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/services/test_input_state.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/services/test_processes.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/services/test_products.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/services/test_subscription_relations.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/services/test_subscriptions.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/services/test_translations.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/test_db.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/test_types.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/test_workflow.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/utils/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/utils/test_datetime.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/utils/test_errors.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/utils/test_functional.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/utils/test_get_updated_properties.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/utils/test_json.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/utils/test_search_query.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/utils/test_state.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/utils/test_strings.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/websocket/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/websocket/test_broadcast.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/conftest.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/shared/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/shared/test_validate_subscriptions.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/tasks/__init__.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/tasks/test_resume_workflows.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/tasks/test_validate_product_type.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/tasks/test_validate_products.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/test_config_db_code.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/test_generic_workflow_steps.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/test_lifecycle_status_manager.py +0 -0
- {orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/test/unit_tests/workflows/test_modify_note.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
[bumpversion]
|
|
2
|
-
current_version =
|
|
2
|
+
current_version = 4.0.0rc1
|
|
3
3
|
commit = False
|
|
4
4
|
tag = False
|
|
5
5
|
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(rc(?P<build>\d+))?
|
|
6
|
-
serialize =
|
|
6
|
+
serialize =
|
|
7
7
|
{major}.{minor}.{patch}rc{build}
|
|
8
8
|
{major}.{minor}.{patch}
|
|
9
9
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orchestrator-core
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0.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
|
|
@@ -35,24 +35,24 @@ Requires-Dist: deprecated
|
|
|
35
35
|
Requires-Dist: deepmerge==2.0
|
|
36
36
|
Requires-Dist: fastapi~=0.115.2
|
|
37
37
|
Requires-Dist: fastapi-etag==0.4.0
|
|
38
|
-
Requires-Dist: more-itertools~=10.
|
|
38
|
+
Requires-Dist: more-itertools~=10.7.0
|
|
39
39
|
Requires-Dist: itsdangerous
|
|
40
40
|
Requires-Dist: Jinja2==3.1.6
|
|
41
|
-
Requires-Dist: orjson==3.10.
|
|
41
|
+
Requires-Dist: orjson==3.10.18
|
|
42
42
|
Requires-Dist: psycopg2-binary==2.9.10
|
|
43
43
|
Requires-Dist: pydantic[email]~=2.8.2
|
|
44
|
-
Requires-Dist: pydantic-settings~=2.
|
|
44
|
+
Requires-Dist: pydantic-settings~=2.9.1
|
|
45
45
|
Requires-Dist: python-dateutil==2.8.2
|
|
46
46
|
Requires-Dist: python-rapidjson>=1.18,<1.21
|
|
47
47
|
Requires-Dist: pytz==2025.2
|
|
48
48
|
Requires-Dist: redis==5.1.1
|
|
49
49
|
Requires-Dist: schedule==1.1.0
|
|
50
50
|
Requires-Dist: semver==3.0.4
|
|
51
|
-
Requires-Dist: sentry-sdk[fastapi]~=2.
|
|
51
|
+
Requires-Dist: sentry-sdk[fastapi]~=2.27.0
|
|
52
52
|
Requires-Dist: SQLAlchemy==2.0.40
|
|
53
53
|
Requires-Dist: SQLAlchemy-Utils==0.41.2
|
|
54
54
|
Requires-Dist: structlog
|
|
55
|
-
Requires-Dist: typer==0.15.
|
|
55
|
+
Requires-Dist: typer==0.15.3
|
|
56
56
|
Requires-Dist: uvicorn[standard]~=0.34.0
|
|
57
57
|
Requires-Dist: nwa-stdlib~=1.9.0
|
|
58
58
|
Requires-Dist: oauth2-lib~=2.4.0
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- navigation
|
|
4
|
+
---
|
|
5
|
+
# 4.0 Migration Guide
|
|
6
|
+
|
|
7
|
+
In this document we describe the steps that should be taken to migrate from `orchestrator-core` v3 to v4.
|
|
8
|
+
|
|
9
|
+
## About 4.0
|
|
10
|
+
|
|
11
|
+
In this release we have removed the caching of domain models. Domain models will always be loaded from the database.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
To use 4.0 all workflows must have run to completion. The `cache_domain_models` step no longer is part of the codebase
|
|
16
|
+
therfore `in flight` workflows will fail.
|
|
@@ -28,7 +28,6 @@ from orchestrator.domain.customer_description import (
|
|
|
28
28
|
from orchestrator.schemas import SubscriptionDescriptionBaseSchema, SubscriptionDescriptionSchema
|
|
29
29
|
from orchestrator.schemas.subscription_descriptions import UpdateSubscriptionDescriptionSchema
|
|
30
30
|
from orchestrator.utils.errors import StaleDataError
|
|
31
|
-
from orchestrator.utils.redis import delete_from_redis
|
|
32
31
|
|
|
33
32
|
router = APIRouter()
|
|
34
33
|
|
|
@@ -55,7 +54,6 @@ def delete_subscription_customer_descriptions(_id: UUID) -> None:
|
|
|
55
54
|
description = db.session.get(SubscriptionCustomerDescriptionTable, _id)
|
|
56
55
|
if description:
|
|
57
56
|
delete(SubscriptionCustomerDescriptionTable, _id)
|
|
58
|
-
delete_from_redis(description.subscription_id)
|
|
59
57
|
|
|
60
58
|
|
|
61
59
|
@router.get("/{_id}", response_model=SubscriptionDescriptionSchema)
|
|
@@ -400,7 +400,7 @@ class WorkflowTable(BaseModel):
|
|
|
400
400
|
workflow_id = mapped_column(UUIDType, server_default=text("uuid_generate_v4()"), primary_key=True)
|
|
401
401
|
name = mapped_column(String(), nullable=False, unique=True)
|
|
402
402
|
target = mapped_column(String(), nullable=False)
|
|
403
|
-
description = mapped_column(Text(), nullable=
|
|
403
|
+
description = mapped_column(Text(), nullable=False)
|
|
404
404
|
created_at = mapped_column(UtcTimestamp, nullable=False, server_default=text("current_timestamp()"))
|
|
405
405
|
deleted_at = mapped_column(UtcTimestamp, deferred=True)
|
|
406
406
|
|
|
@@ -1294,27 +1294,13 @@ class SubscriptionModel(DomainModel):
|
|
|
1294
1294
|
# Some common functions shared by from_other_product and from_subscription
|
|
1295
1295
|
@classmethod
|
|
1296
1296
|
def _get_subscription(cls: type[S], subscription_id: UUID | UUIDstr) -> SubscriptionTable | None:
|
|
1297
|
-
from orchestrator.settings import app_settings
|
|
1298
1297
|
|
|
1299
1298
|
if not isinstance(subscription_id, UUID | UUIDstr):
|
|
1300
1299
|
raise TypeError(f"subscription_id is of type {type(subscription_id)} instead of UUID | UUIDstr")
|
|
1301
1300
|
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
joinedload(SubscriptionTable.product).selectinload(ProductTable.fixed_inputs),
|
|
1306
|
-
]
|
|
1307
|
-
|
|
1308
|
-
else:
|
|
1309
|
-
loaders = [
|
|
1310
|
-
selectinload(SubscriptionTable.instances)
|
|
1311
|
-
.joinedload(SubscriptionInstanceTable.product_block)
|
|
1312
|
-
.selectinload(ProductBlockTable.resource_types),
|
|
1313
|
-
selectinload(SubscriptionTable.instances).selectinload(
|
|
1314
|
-
SubscriptionInstanceTable.in_use_by_block_relations
|
|
1315
|
-
),
|
|
1316
|
-
selectinload(SubscriptionTable.instances).selectinload(SubscriptionInstanceTable.values),
|
|
1317
|
-
]
|
|
1301
|
+
loaders = [
|
|
1302
|
+
joinedload(SubscriptionTable.product).selectinload(ProductTable.fixed_inputs),
|
|
1303
|
+
]
|
|
1318
1304
|
|
|
1319
1305
|
return db.session.get(SubscriptionTable, subscription_id, options=loaders)
|
|
1320
1306
|
|
|
@@ -1394,7 +1380,6 @@ class SubscriptionModel(DomainModel):
|
|
|
1394
1380
|
def from_subscription(cls: type[S], subscription_id: UUID | UUIDstr) -> S:
|
|
1395
1381
|
"""Use a subscription_id to return required fields of an existing subscription."""
|
|
1396
1382
|
from orchestrator.domain.context_cache import get_from_cache, store_in_cache
|
|
1397
|
-
from orchestrator.settings import app_settings
|
|
1398
1383
|
|
|
1399
1384
|
if cached_model := get_from_cache(subscription_id):
|
|
1400
1385
|
return cast(S, cached_model)
|
|
@@ -1421,12 +1406,7 @@ class SubscriptionModel(DomainModel):
|
|
|
1421
1406
|
|
|
1422
1407
|
fixed_inputs = {fi.name: fi.value for fi in subscription.product.fixed_inputs}
|
|
1423
1408
|
|
|
1424
|
-
instances
|
|
1425
|
-
if app_settings.ENABLE_SUBSCRIPTION_MODEL_OPTIMIZATIONS:
|
|
1426
|
-
# TODO #900 remove toggle and make this path the default
|
|
1427
|
-
instances = cls._load_root_instances(subscription_id)
|
|
1428
|
-
else:
|
|
1429
|
-
instances = cls._load_instances(subscription.instances, status, match_domain_attr=False)
|
|
1409
|
+
instances = cls._load_root_instances(subscription_id)
|
|
1430
1410
|
|
|
1431
1411
|
try:
|
|
1432
1412
|
model = cls(
|
{orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/domain/customer_description.py
RENAMED
|
@@ -21,7 +21,6 @@ from sqlalchemy import select
|
|
|
21
21
|
from orchestrator.api.models import delete
|
|
22
22
|
from orchestrator.db import SubscriptionCustomerDescriptionTable, db
|
|
23
23
|
from orchestrator.utils.errors import StaleDataError
|
|
24
|
-
from orchestrator.utils.redis import delete_subscription_from_redis
|
|
25
24
|
from orchestrator.utils.validate_data_version import validate_data_version
|
|
26
25
|
from orchestrator.websocket import invalidate_subscription_cache
|
|
27
26
|
|
|
@@ -38,7 +37,6 @@ def get_customer_description_by_customer_subscription(
|
|
|
38
37
|
return db.session.scalars(stmt).one_or_none()
|
|
39
38
|
|
|
40
39
|
|
|
41
|
-
@delete_subscription_from_redis()
|
|
42
40
|
async def create_subscription_customer_description(
|
|
43
41
|
customer_id: str, subscription_id: UUID, description: str
|
|
44
42
|
) -> SubscriptionCustomerDescriptionTable:
|
|
@@ -53,7 +51,6 @@ async def create_subscription_customer_description(
|
|
|
53
51
|
return customer_description
|
|
54
52
|
|
|
55
53
|
|
|
56
|
-
@delete_subscription_from_redis()
|
|
57
54
|
async def update_subscription_customer_description(
|
|
58
55
|
customer_description: SubscriptionCustomerDescriptionTable,
|
|
59
56
|
description: str,
|
|
@@ -70,7 +67,6 @@ async def update_subscription_customer_description(
|
|
|
70
67
|
return customer_description
|
|
71
68
|
|
|
72
69
|
|
|
73
|
-
@delete_subscription_from_redis()
|
|
74
70
|
async def delete_subscription_customer_description_by_customer_subscription(
|
|
75
71
|
customer_id: str, subscription_id: UUID
|
|
76
72
|
) -> SubscriptionCustomerDescriptionTable | None:
|
|
@@ -60,7 +60,7 @@ async def resolve_remove_customer_description(
|
|
|
60
60
|
)
|
|
61
61
|
if not description:
|
|
62
62
|
return NotFoundError(message="Customer description not found")
|
|
63
|
-
return CustomerDescription.from_pydantic(description)
|
|
63
|
+
return CustomerDescription.from_pydantic(description) # type: ignore
|
|
64
64
|
|
|
65
65
|
|
|
66
66
|
@strawberry.type(description="Customer subscription description mutations")
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""Make workflow description mandatory.
|
|
2
|
+
|
|
3
|
+
Revision ID: 68d14db1b8da
|
|
4
|
+
Revises: bac6be6f2b4f
|
|
5
|
+
Create Date: 2025-02-20 16:39:34.889953
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import sqlalchemy as sa
|
|
10
|
+
from alembic import op
|
|
11
|
+
from structlog import get_logger
|
|
12
|
+
|
|
13
|
+
logger = get_logger(__name__)
|
|
14
|
+
|
|
15
|
+
# revision identifiers, used by Alembic.
|
|
16
|
+
revision = "68d14db1b8da"
|
|
17
|
+
down_revision = "bac6be6f2b4f"
|
|
18
|
+
branch_labels = None
|
|
19
|
+
depends_on = None
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def upgrade() -> None:
|
|
23
|
+
try:
|
|
24
|
+
op.alter_column("workflows", "description", existing_type=sa.TEXT(), nullable=False)
|
|
25
|
+
except sa.exc.IntegrityError:
|
|
26
|
+
logger.error(
|
|
27
|
+
"Unable to execute migrations due to missing descriptions in workflow table, please create a migration to backfill this column."
|
|
28
|
+
)
|
|
29
|
+
raise
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def downgrade() -> None:
|
|
33
|
+
op.alter_column("workflows", "description", existing_type=sa.TEXT(), nullable=True)
|
|
@@ -441,6 +441,7 @@ def create_process(
|
|
|
441
441
|
}
|
|
442
442
|
|
|
443
443
|
try:
|
|
444
|
+
|
|
444
445
|
state = post_form(workflow.initial_input_form, initial_state, user_inputs)
|
|
445
446
|
except FormValidationError:
|
|
446
447
|
logger.exception("Validation errors", user_inputs=user_inputs)
|
|
@@ -682,7 +683,7 @@ def update_awaiting_process_progress(
|
|
|
682
683
|
ensure_correct_callback_token(pstat, token=token)
|
|
683
684
|
|
|
684
685
|
state = pstat.state.unwrap()
|
|
685
|
-
progress_key =
|
|
686
|
+
progress_key = DEFAULT_CALLBACK_PROGRESS_KEY
|
|
686
687
|
state = {**state, progress_key: data} | {"__remove_keys": [progress_key]}
|
|
687
688
|
|
|
688
689
|
replace_current_step_state(process, new_state=state)
|
{orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/services/subscriptions.py
RENAMED
|
@@ -605,7 +605,6 @@ def build_domain_model(subscription_model: SubscriptionModel) -> dict:
|
|
|
605
605
|
|
|
606
606
|
def build_extended_domain_model(subscription_model: SubscriptionModel) -> dict:
|
|
607
607
|
"""Create a subscription dict from the SubscriptionModel with additional keys."""
|
|
608
|
-
from orchestrator.settings import app_settings
|
|
609
608
|
|
|
610
609
|
stmt = select(SubscriptionCustomerDescriptionTable).where(
|
|
611
610
|
SubscriptionCustomerDescriptionTable.subscription_id == subscription_model.subscription_id
|
|
@@ -615,27 +614,12 @@ def build_extended_domain_model(subscription_model: SubscriptionModel) -> dict:
|
|
|
615
614
|
with cache_subscription_models():
|
|
616
615
|
subscription = subscription_model.model_dump()
|
|
617
616
|
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
update_in(subscription, f"{path_to_block}.in_use_by_ids", in_use_by_ids)
|
|
625
|
-
update_in(subscription, f"{path_to_block}.in_use_by_relations", in_use_by_relations)
|
|
626
|
-
|
|
627
|
-
if app_settings.ENABLE_SUBSCRIPTION_MODEL_OPTIMIZATIONS:
|
|
628
|
-
# TODO #900 remove toggle and make this path the default
|
|
629
|
-
# query all subscription instances and inject the in_use_by_ids/in_use_by_relations into the subscription dict.
|
|
630
|
-
instance_to_in_use_by = {
|
|
631
|
-
instance.subscription_instance_id: instance.in_use_by
|
|
632
|
-
for instance in eagerload_all_subscription_instances_only_inuseby(subscription_model.subscription_id)
|
|
633
|
-
}
|
|
634
|
-
inject_in_use_by_ids_v2(subscription, instance_to_in_use_by)
|
|
635
|
-
else:
|
|
636
|
-
# find all product blocks, check if they have in_use_by and inject the in_use_by_ids into the subscription dict.
|
|
637
|
-
for path in product_block_paths(subscription):
|
|
638
|
-
inject_in_use_by_ids(path)
|
|
617
|
+
# query all subscription instances and inject the in_use_by_ids/in_use_by_relations into the subscription dict.
|
|
618
|
+
instance_to_in_use_by = {
|
|
619
|
+
instance.subscription_instance_id: instance.in_use_by
|
|
620
|
+
for instance in eagerload_all_subscription_instances_only_inuseby(subscription_model.subscription_id)
|
|
621
|
+
}
|
|
622
|
+
inject_in_use_by_ids_v2(subscription, instance_to_in_use_by)
|
|
639
623
|
|
|
640
624
|
subscription["customer_descriptions"] = customer_descriptions
|
|
641
625
|
|
|
@@ -55,7 +55,6 @@ class AppSettings(BaseSettings):
|
|
|
55
55
|
MAIL_PORT: int = 25
|
|
56
56
|
MAIL_STARTTLS: bool = False
|
|
57
57
|
CACHE_URI: RedisDsn = "redis://localhost:6379/0" # type: ignore
|
|
58
|
-
CACHE_DOMAIN_MODELS: bool = False
|
|
59
58
|
CACHE_HMAC_SECRET: str | None = None # HMAC signing key, used when pickling results in the cache
|
|
60
59
|
REDIS_RETRY_COUNT: NonNegativeInt = Field(
|
|
61
60
|
2, description="Number of retries for redis connection errors/timeouts, 0 to disable"
|
|
@@ -87,9 +86,6 @@ class AppSettings(BaseSettings):
|
|
|
87
86
|
ENABLE_GRAPHQL_STATS_EXTENSION: bool = False
|
|
88
87
|
VALIDATE_OUT_OF_SYNC_SUBSCRIPTIONS: bool = False
|
|
89
88
|
FILTER_BY_MODE: Literal["partial", "exact"] = "exact"
|
|
90
|
-
ENABLE_SUBSCRIPTION_MODEL_OPTIMIZATIONS: bool = (
|
|
91
|
-
True # True=ignore cache + optimized DB queries; False=use cache + unoptimized DB queries. Remove in #900
|
|
92
|
-
)
|
|
93
89
|
|
|
94
90
|
|
|
95
91
|
app_settings = AppSettings()
|
{orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/utils/get_subscription_dict.py
RENAMED
|
@@ -2,15 +2,11 @@ from uuid import UUID
|
|
|
2
2
|
|
|
3
3
|
from orchestrator.domain.base import SubscriptionModel
|
|
4
4
|
from orchestrator.services.subscriptions import _generate_etag, build_domain_model, build_extended_domain_model
|
|
5
|
-
from orchestrator.utils.redis import from_redis
|
|
6
5
|
|
|
7
6
|
|
|
8
7
|
async def get_subscription_dict(subscription_id: UUID, inject_inuseby: bool = True) -> tuple[dict, str]:
|
|
9
8
|
"""Helper function to get subscription dict by uuid from db or cache."""
|
|
10
9
|
|
|
11
|
-
if cached_model := from_redis(subscription_id):
|
|
12
|
-
return cached_model # type: ignore
|
|
13
|
-
|
|
14
10
|
subscription_model = SubscriptionModel.from_subscription(subscription_id)
|
|
15
11
|
|
|
16
12
|
if not inject_inuseby:
|
|
@@ -10,11 +10,9 @@
|
|
|
10
10
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
11
|
# See the License for the specific language governing permissions and
|
|
12
12
|
# limitations under the License.
|
|
13
|
-
import functools
|
|
14
13
|
from collections.abc import AsyncGenerator
|
|
15
14
|
from contextlib import asynccontextmanager
|
|
16
|
-
from
|
|
17
|
-
from typing import Any, Callable
|
|
15
|
+
from typing import Any
|
|
18
16
|
from uuid import UUID
|
|
19
17
|
|
|
20
18
|
from anyio import CancelScope, get_cancelled_exc_class
|
|
@@ -22,9 +20,7 @@ from redis.asyncio import Redis as AIORedis
|
|
|
22
20
|
from redis.asyncio.client import Pipeline, PubSub
|
|
23
21
|
from structlog import get_logger
|
|
24
22
|
|
|
25
|
-
from orchestrator.services.subscriptions import _generate_etag
|
|
26
23
|
from orchestrator.settings import app_settings
|
|
27
|
-
from orchestrator.utils.json import PY_JSON_TYPES, json_dumps, json_loads
|
|
28
24
|
from orchestrator.utils.redis_client import (
|
|
29
25
|
create_redis_asyncio_client,
|
|
30
26
|
create_redis_client,
|
|
@@ -37,52 +33,6 @@ cache = create_redis_client(app_settings.CACHE_URI)
|
|
|
37
33
|
ONE_WEEK = 3600 * 24 * 7
|
|
38
34
|
|
|
39
35
|
|
|
40
|
-
def caching_models_enabled() -> bool:
|
|
41
|
-
return getenv("AIOCACHE_DISABLE", "0") == "0" and app_settings.CACHE_DOMAIN_MODELS
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def to_redis(subscription: dict[str, Any]) -> str | None:
|
|
45
|
-
if caching_models_enabled():
|
|
46
|
-
logger.info("Setting cache for subscription", subscription=subscription["subscription_id"])
|
|
47
|
-
etag = _generate_etag(subscription)
|
|
48
|
-
cache.set(f"orchestrator:domain:{subscription['subscription_id']}", json_dumps(subscription), ex=ONE_WEEK)
|
|
49
|
-
cache.set(f"orchestrator:domain:etag:{subscription['subscription_id']}", etag, ex=ONE_WEEK)
|
|
50
|
-
return etag
|
|
51
|
-
|
|
52
|
-
logger.warning("Caching disabled, not caching subscription", subscription=subscription["subscription_id"])
|
|
53
|
-
return None
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
def from_redis(subscription_id: UUID) -> tuple[PY_JSON_TYPES, str] | None:
|
|
57
|
-
log = logger.bind(subscription_id=subscription_id)
|
|
58
|
-
|
|
59
|
-
if app_settings.ENABLE_SUBSCRIPTION_MODEL_OPTIMIZATIONS:
|
|
60
|
-
# TODO #900 remove toggle and remove usage of this function in get_subscription_dict
|
|
61
|
-
log.info("Using SubscriptionModel optimization, not loading subscription from redis cache")
|
|
62
|
-
return None
|
|
63
|
-
|
|
64
|
-
if caching_models_enabled():
|
|
65
|
-
log.debug("Try to retrieve subscription from cache")
|
|
66
|
-
obj = cache.get(f"orchestrator:domain:{subscription_id}")
|
|
67
|
-
etag = cache.get(f"orchestrator:domain:etag:{subscription_id}")
|
|
68
|
-
if obj and etag:
|
|
69
|
-
log.info("Retrieved subscription from cache")
|
|
70
|
-
return json_loads(obj), etag.decode("utf-8")
|
|
71
|
-
log.info("Subscription not found in cache")
|
|
72
|
-
return None
|
|
73
|
-
log.warning("Caching disabled, not loading subscription")
|
|
74
|
-
return None
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
def delete_from_redis(subscription_id: UUID) -> None:
|
|
78
|
-
if caching_models_enabled():
|
|
79
|
-
logger.info("Deleting subscription object from cache", subscription_id=subscription_id)
|
|
80
|
-
cache.delete(f"orchestrator:domain:{subscription_id}")
|
|
81
|
-
cache.delete(f"orchestrator:domain:etag:{subscription_id}")
|
|
82
|
-
else:
|
|
83
|
-
logger.warning("Caching disabled, not deleting subscription", subscription=subscription_id)
|
|
84
|
-
|
|
85
|
-
|
|
86
36
|
def default_get_subscription_id(data: Any) -> UUID:
|
|
87
37
|
if hasattr(data, "subscription_id"):
|
|
88
38
|
return data.subscription_id
|
|
@@ -91,22 +41,6 @@ def default_get_subscription_id(data: Any) -> UUID:
|
|
|
91
41
|
return data
|
|
92
42
|
|
|
93
43
|
|
|
94
|
-
def delete_subscription_from_redis(
|
|
95
|
-
extract_fn: Callable[..., UUID] = default_get_subscription_id,
|
|
96
|
-
) -> Callable[[Callable[..., Any]], Callable[..., Any]]:
|
|
97
|
-
def _delete_subscription_from_redis(func: Callable[..., Any]) -> Callable[..., Any]:
|
|
98
|
-
@functools.wraps(func)
|
|
99
|
-
async def wrapper(*args: tuple, **kwargs: dict[str, Any]) -> Any:
|
|
100
|
-
data = await func(*args, **kwargs)
|
|
101
|
-
key = extract_fn(data)
|
|
102
|
-
delete_from_redis(key)
|
|
103
|
-
return data
|
|
104
|
-
|
|
105
|
-
return wrapper
|
|
106
|
-
|
|
107
|
-
return _delete_subscription_from_redis
|
|
108
|
-
|
|
109
|
-
|
|
110
44
|
async def delete_keys_matching_pattern(_cache: AIORedis, pattern: str, chunksize: int = 5000) -> int:
|
|
111
45
|
"""Delete all keys matching the given pattern.
|
|
112
46
|
|
{orchestrator_core-3.2.2 → orchestrator_core-4.0.0rc1}/orchestrator/workflows/modify_note.py
RENAMED
|
@@ -13,11 +13,10 @@
|
|
|
13
13
|
from orchestrator.db import db
|
|
14
14
|
from orchestrator.forms import SubmitFormPage
|
|
15
15
|
from orchestrator.services import subscriptions
|
|
16
|
-
from orchestrator.settings import app_settings
|
|
17
16
|
from orchestrator.targets import Target
|
|
18
17
|
from orchestrator.utils.json import to_serializable
|
|
19
|
-
from orchestrator.workflow import StepList,
|
|
20
|
-
from orchestrator.workflows.steps import
|
|
18
|
+
from orchestrator.workflow import StepList, done, init, step, workflow
|
|
19
|
+
from orchestrator.workflows.steps import store_process_subscription
|
|
21
20
|
from orchestrator.workflows.utils import wrap_modify_initial_input_form
|
|
22
21
|
from pydantic_forms.types import FormGenerator, State, UUIDstr
|
|
23
22
|
from pydantic_forms.validators import LongText
|
|
@@ -54,11 +53,4 @@ def store_subscription_note(subscription_id: UUIDstr, note: str) -> State:
|
|
|
54
53
|
|
|
55
54
|
@workflow("Modify Note", initial_input_form=wrap_modify_initial_input_form(initial_input_form), target=Target.MODIFY)
|
|
56
55
|
def modify_note() -> StepList:
|
|
57
|
-
|
|
58
|
-
return (
|
|
59
|
-
init
|
|
60
|
-
>> store_process_subscription(Target.MODIFY)
|
|
61
|
-
>> store_subscription_note
|
|
62
|
-
>> push_subscriptions(cache_domain_models)
|
|
63
|
-
>> done
|
|
64
|
-
)
|
|
56
|
+
return init >> store_process_subscription(Target.MODIFY) >> store_subscription_note >> done
|
|
@@ -11,22 +11,18 @@
|
|
|
11
11
|
# See the License for the specific language governing permissions and
|
|
12
12
|
# limitations under the License.
|
|
13
13
|
from copy import deepcopy
|
|
14
|
-
from typing import Any
|
|
15
|
-
from uuid import UUID
|
|
16
14
|
|
|
17
15
|
import structlog
|
|
18
16
|
from pydantic import ValidationError
|
|
19
17
|
|
|
20
18
|
from orchestrator.db import db
|
|
21
19
|
from orchestrator.db.models import ProcessSubscriptionTable
|
|
22
|
-
from orchestrator.domain.base import
|
|
20
|
+
from orchestrator.domain.base import SubscriptionModel
|
|
23
21
|
from orchestrator.services.settings import reset_search_index
|
|
24
|
-
from orchestrator.services.subscriptions import
|
|
22
|
+
from orchestrator.services.subscriptions import get_subscription
|
|
25
23
|
from orchestrator.targets import Target
|
|
26
24
|
from orchestrator.types import SubscriptionLifecycle
|
|
27
25
|
from orchestrator.utils.json import to_serializable
|
|
28
|
-
from orchestrator.utils.redis import delete_from_redis, to_redis
|
|
29
|
-
from orchestrator.websocket import sync_invalidate_subscription_cache
|
|
30
26
|
from orchestrator.workflow import Step, step
|
|
31
27
|
from pydantic_forms.types import State, UUIDstr
|
|
32
28
|
|
|
@@ -138,86 +134,6 @@ def set_status(status: SubscriptionLifecycle) -> Step:
|
|
|
138
134
|
return _set_status
|
|
139
135
|
|
|
140
136
|
|
|
141
|
-
@step("Remove domain model from cache")
|
|
142
|
-
def remove_domain_model_from_cache(
|
|
143
|
-
workflow_name: str, subscription: SubscriptionModel | None = None, subscription_id: UUID | None = None
|
|
144
|
-
) -> State:
|
|
145
|
-
"""Remove the domain model from the cache if it exists.
|
|
146
|
-
|
|
147
|
-
Args:
|
|
148
|
-
workflow_name: The workflow name
|
|
149
|
-
subscription: Subscription Model
|
|
150
|
-
subscription_id: The subscription id
|
|
151
|
-
|
|
152
|
-
Returns:
|
|
153
|
-
State
|
|
154
|
-
|
|
155
|
-
"""
|
|
156
|
-
|
|
157
|
-
if not (subscription or subscription_id):
|
|
158
|
-
logger.warning("No subscription found in this workflow", workflow_name=workflow_name)
|
|
159
|
-
return {"deleted_subscription_id": None}
|
|
160
|
-
if subscription:
|
|
161
|
-
delete_from_redis(subscription.subscription_id)
|
|
162
|
-
elif subscription_id:
|
|
163
|
-
delete_from_redis(subscription_id)
|
|
164
|
-
|
|
165
|
-
return {"deleted_subscription_id": subscription_id or subscription.subscription_id} # type: ignore[union-attr]
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
@step("Cache Subscription and related subscriptions")
|
|
169
|
-
def cache_domain_models(workflow_name: str, subscription: SubscriptionModel | None = None) -> State: # noqa: C901
|
|
170
|
-
"""Attempt to cache all Subscriptions once they have been touched once.
|
|
171
|
-
|
|
172
|
-
Args:
|
|
173
|
-
workflow_name: The Workflow Name
|
|
174
|
-
subscription: The Subscription if it exists.
|
|
175
|
-
|
|
176
|
-
Returns:
|
|
177
|
-
Returns State.
|
|
178
|
-
|
|
179
|
-
"""
|
|
180
|
-
cached_subscription_ids: set[UUID] = set()
|
|
181
|
-
if not subscription:
|
|
182
|
-
logger.warning("No subscription found in this workflow", workflow_name=workflow_name)
|
|
183
|
-
return {"cached_subscription_ids": cached_subscription_ids}
|
|
184
|
-
|
|
185
|
-
def _cache_other_subscriptions(product_block: ProductBlockModel) -> None:
|
|
186
|
-
for field in product_block.model_fields:
|
|
187
|
-
# subscription_instance is a ProductBlockModel or an arbitrary type
|
|
188
|
-
subscription_instance: ProductBlockModel | Any = getattr(product_block, field)
|
|
189
|
-
# If subscription_instance is a list, we need to step into it and loop.
|
|
190
|
-
if isinstance(subscription_instance, list):
|
|
191
|
-
for item in subscription_instance:
|
|
192
|
-
if isinstance(item, ProductBlockModel):
|
|
193
|
-
_cache_other_subscriptions(item)
|
|
194
|
-
|
|
195
|
-
# If subscription_instance is a ProductBlockModel check the owner_subscription_id to decide the cache
|
|
196
|
-
elif isinstance(subscription_instance, ProductBlockModel):
|
|
197
|
-
_cache_other_subscriptions(subscription_instance)
|
|
198
|
-
if not subscription_instance.owner_subscription_id == subscription.subscription_id:
|
|
199
|
-
cached_subscription_ids.add(subscription_instance.owner_subscription_id)
|
|
200
|
-
|
|
201
|
-
for field in subscription.model_fields:
|
|
202
|
-
# There always is a single Root Product Block, it cannot be a list, so no need to check.
|
|
203
|
-
instance: ProductBlockModel | Any = getattr(subscription, field)
|
|
204
|
-
if isinstance(instance, ProductBlockModel):
|
|
205
|
-
_cache_other_subscriptions(instance)
|
|
206
|
-
|
|
207
|
-
# Cache all the sub subscriptions
|
|
208
|
-
for subscription_id in cached_subscription_ids:
|
|
209
|
-
subscription_model = SubscriptionModel.from_subscription(subscription_id)
|
|
210
|
-
to_redis(build_extended_domain_model(subscription_model))
|
|
211
|
-
sync_invalidate_subscription_cache(subscription.subscription_id, invalidate_all=False)
|
|
212
|
-
|
|
213
|
-
# Cache the main subscription
|
|
214
|
-
to_redis(build_extended_domain_model(subscription))
|
|
215
|
-
cached_subscription_ids.add(subscription.subscription_id)
|
|
216
|
-
sync_invalidate_subscription_cache(subscription.subscription_id)
|
|
217
|
-
|
|
218
|
-
return {"cached_subscription_ids": cached_subscription_ids}
|
|
219
|
-
|
|
220
|
-
|
|
221
137
|
@step("Refresh subscription search index")
|
|
222
138
|
def refresh_subscription_search_index() -> State:
|
|
223
139
|
try:
|
|
@@ -24,16 +24,13 @@ from oauth2_lib.fastapi import OIDCUserModel
|
|
|
24
24
|
from orchestrator.db import ProductTable, SubscriptionTable, db
|
|
25
25
|
from orchestrator.forms.validators import ProductId
|
|
26
26
|
from orchestrator.services import subscriptions
|
|
27
|
-
from orchestrator.settings import app_settings
|
|
28
27
|
from orchestrator.targets import Target
|
|
29
28
|
from orchestrator.types import SubscriptionLifecycle
|
|
30
29
|
from orchestrator.utils.errors import StaleDataError
|
|
31
|
-
from orchestrator.utils.redis import caching_models_enabled
|
|
32
30
|
from orchestrator.utils.state import form_inject_args
|
|
33
31
|
from orchestrator.utils.validate_data_version import validate_data_version
|
|
34
|
-
from orchestrator.workflow import Step, StepList, Workflow, begin,
|
|
32
|
+
from orchestrator.workflow import Step, StepList, Workflow, begin, done, init, make_workflow, step
|
|
35
33
|
from orchestrator.workflows.steps import (
|
|
36
|
-
cache_domain_models,
|
|
37
34
|
refresh_subscription_search_index,
|
|
38
35
|
resync,
|
|
39
36
|
set_status,
|
|
@@ -198,8 +195,6 @@ modify_initial_input_form_generator = None
|
|
|
198
195
|
|
|
199
196
|
validate_initial_input_form_generator = wrap_modify_initial_input_form(modify_initial_input_form_generator)
|
|
200
197
|
|
|
201
|
-
push_domain_models = conditional(lambda _: caching_models_enabled())
|
|
202
|
-
|
|
203
198
|
|
|
204
199
|
def create_workflow(
|
|
205
200
|
description: str,
|
|
@@ -228,7 +223,6 @@ def create_workflow(
|
|
|
228
223
|
>> (additional_steps or StepList())
|
|
229
224
|
>> set_status(status)
|
|
230
225
|
>> resync
|
|
231
|
-
>> push_domain_models(cache_domain_models)
|
|
232
226
|
>> refresh_subscription_search_index
|
|
233
227
|
>> done
|
|
234
228
|
)
|
|
@@ -270,11 +264,9 @@ def modify_workflow(
|
|
|
270
264
|
init
|
|
271
265
|
>> store_process_subscription(Target.MODIFY)
|
|
272
266
|
>> unsync
|
|
273
|
-
>> push_domain_models(cache_domain_models)
|
|
274
267
|
>> f()
|
|
275
268
|
>> (additional_steps or StepList())
|
|
276
269
|
>> resync
|
|
277
|
-
>> push_domain_models(cache_domain_models)
|
|
278
270
|
>> refresh_subscription_search_index
|
|
279
271
|
>> done
|
|
280
272
|
)
|
|
@@ -316,12 +308,10 @@ def terminate_workflow(
|
|
|
316
308
|
init
|
|
317
309
|
>> store_process_subscription(Target.TERMINATE)
|
|
318
310
|
>> unsync
|
|
319
|
-
>> push_domain_models(cache_domain_models)
|
|
320
311
|
>> f()
|
|
321
312
|
>> (additional_steps or StepList())
|
|
322
313
|
>> set_status(SubscriptionLifecycle.TERMINATED)
|
|
323
314
|
>> resync
|
|
324
|
-
>> push_domain_models(cache_domain_models)
|
|
325
315
|
>> refresh_subscription_search_index
|
|
326
316
|
>> done
|
|
327
317
|
)
|
|
@@ -352,17 +342,7 @@ def validate_workflow(description: str) -> Callable[[Callable[[], StepList]], Wo
|
|
|
352
342
|
"""
|
|
353
343
|
|
|
354
344
|
def _validate_workflow(f: Callable[[], StepList]) -> Workflow:
|
|
355
|
-
|
|
356
|
-
steplist = (
|
|
357
|
-
init
|
|
358
|
-
>> store_process_subscription(Target.SYSTEM)
|
|
359
|
-
>> unsync_unchecked
|
|
360
|
-
>> push_subscriptions(cache_domain_models)
|
|
361
|
-
>> f()
|
|
362
|
-
>> resync
|
|
363
|
-
>> push_subscriptions(cache_domain_models)
|
|
364
|
-
>> done
|
|
365
|
-
)
|
|
345
|
+
steplist = init >> store_process_subscription(Target.SYSTEM) >> unsync_unchecked >> f() >> resync >> done
|
|
366
346
|
|
|
367
347
|
return make_workflow(f, description, validate_initial_input_form_generator, Target.SYSTEM, steplist)
|
|
368
348
|
|