orchestrator-core 2.9.2rc2__tar.gz → 2.10.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-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.bumpversion.cfg +1 -1
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/workflows/build-push-container.yml +0 -2
- orchestrator_core-2.10.0rc1/Dockerfile +24 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/PKG-INFO +8 -8
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/cli.md +2 -7
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/graphql.md +7 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/search.md +2 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/__init__.py +1 -1
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/processes.py +1 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/database.py +78 -0
- orchestrator_core-2.10.0rc1/orchestrator/cli/migrate_tasks.py +188 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/search_filters/inferred_filter.py +2 -1
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/domain/base.py +1 -1
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/__init__.py +2 -0
- orchestrator_core-2.10.0rc1/orchestrator/graphql/resolvers/version.py +25 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schema.py +3 -0
- orchestrator_core-2.10.0rc1/orchestrator/graphql/schemas/version.py +6 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/helpers.py +31 -1
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/settings.py +2 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/redis.py +1 -1
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/search_query.py +1 -21
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/state.py +6 -5
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/pyproject.toml +7 -7
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_processes_ws.py +5 -2
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_processes.py +5 -3
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_product_blocks.py +7 -2
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_resource_types.py +14 -8
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_subscriptions.py +9 -5
- orchestrator_core-2.10.0rc1/test/unit_tests/graphql/test_version.py +21 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_workflows.py +10 -4
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/services/test_processes.py +4 -1
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/test_db.py +1 -1
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/test_workflow.py +27 -1
- orchestrator_core-2.9.2rc2/Dockerfile +0 -17
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.coveragerc +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/dependabot.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/workflows/README.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/workflows/changelog.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/workflows/codeql-analysis.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/workflows/gh-pages.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/workflows/issues.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/workflows/publish-package.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/workflows/run-linting-tests.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/workflows/run-unit-tests.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.github/workflows/scheduled-build.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.gitignore +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.pre-commit-config.yaml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/.stignore +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/CHANGELOG.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/LICENSE +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/NOTICE +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/README.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/codecov.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/application/domainmodels.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/application/forms-frontend.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/application/tasks.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/application/workflow.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/framework.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/img/base-orchestrator-setup.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/img/custom-orchestrator-setup.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/orchestration/img/Custom-orchestrator-ui-using-override.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/orchestration/img/Standard-orchestrator-ui.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/orchestration/orchestrator-ui.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/orchestration/philosophy.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/backfilling.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/context.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/imports.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/introduction.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/ip_static.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/ip_static.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/l2_point_to_point.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/l2_point_to_point.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/l2_vpn.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/l2_vpn.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/modelling.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/node.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/node.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/port.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/port.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/product_block_graph.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/product_block_graph.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/standards.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/product_modelling/terminology.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/architecture/tldr.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/contributing/development.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/contributing/guidelines.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/contributing/testing.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/css/custom.css +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/css/style.css +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/css/termynal.css +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/getting-started/base.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/getting-started/docker.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/getting-started/orchestration-ui.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/getting-started/prepare-source-folder.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/getting-started/versions.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/img/WFO-Emblem-White.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/img/favicon.ico +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/index.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/js/custom.js +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/js/termynal.js +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/migration-guide/2.0.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/api.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/app/app.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/app/scaling.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/auth-backend-and-frontend.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/database.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/generator.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/instantiating.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/model_attributes.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/overview.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/product_blocks.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/product_types.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/properties.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/pydantic_hooks.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/type_casting.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/union_types.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/domain_models/validation.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/forms.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/python.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/search_overview.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/serialization.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/tasks.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/tests.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/tldr.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/websockets.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/workflows/callbacks.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/workflows/workflow-lifecycles.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/reference-docs/workflows/workflow-steps.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/bootstrap.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/create-your-own.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/docker-installation.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/domain-models.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/execute-workflows.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/generator.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/l2_point_to_point.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/node-create.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/node-modify.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/node-terminate.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/node-validate.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/overview.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/scenario.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/workflow-basics.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/advanced/workflow-introduction.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/create-user-group.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/create-user.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/database-migration.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/debian.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/docker.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/domain-models.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/explore.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/input-forms.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/macos.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/modify-user-group.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/modify-user.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/register-workflows.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/start-applications.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/terminate-user-group.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/terminate-user.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/workflow-introduction.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/beginner/workshop-overview.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/images/Software-topology.drawio.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/images/clab_topology.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/images/metadata_products.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/images/netbox_devices_active.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/images/subscriptions.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/docs/workshops/images/topology.drawio.png +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/includes/abbreviations.md +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/mkdocs.yml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/mutmut_config.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/nitpick-style.toml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/api.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/health.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/products.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/settings.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/subscriptions.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/translations.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/user.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/api_v1/endpoints/ws.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/error_handling.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/api/models.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/app.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/product_block_helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/product_helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/resource_type_helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/domain_gen_helpers/types.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generate.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/README +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_imports.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_input_fields.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_steps.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_imports.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_input_fields.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_steps.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_imports.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_input_fields.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_steps.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/enums.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/migration.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/product.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/product_block.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/settings.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/translations.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/unittest.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/validations.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/generator/workflow.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/products/workshop/circuit.yaml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/products/workshop/node.yaml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/products/workshop/user.yaml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/products/workshop/user_group.yaml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/additional_create_imports.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/additional_create_steps.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/additional_modify_imports.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/additional_modify_steps.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/additional_terminate_steps.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/constrained_int_definitions.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/create_data_head.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/create_product.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/enums.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/lazy_workflow_instance.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/list_definitions.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/macros.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/modify_product.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/new_product_migration.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/product.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/product_block.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/shared_forms.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/shared_workflows.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/subscription_model_registry.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/terminate_product.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/test_create_workflow.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/test_modify_workflow.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/test_product_type.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/test_terminate_workflow.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/test_validate_workflow.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/generator/templates/validate_product.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/helpers/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/helpers/input_helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/helpers/print_helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/main.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/migrate_domain_models.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/migrate_workflows.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/migration_helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/cli/scheduler.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/config/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/config/assignee.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/database.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/filters.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/process.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/product.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/product_block.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/resource_type.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/search_filters/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/subscription.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/filters/workflow.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/listeners.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/loaders.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/models.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/range/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/range/range.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/process.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/product.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/product_block.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/resource_type.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/sorting.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/subscription.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/db/sorting/workflow.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/devtools/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/devtools/populator.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/devtools/scripts/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/devtools/scripts/migrate_20.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/distlock/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/distlock/distlock_manager.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/distlock/managers/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/distlock/managers/memory_distlock_manager.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/distlock/managers/redis_distlock_manager.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/domain/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/domain/customer_description.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/domain/helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/domain/lifecycle.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/exception_handlers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/forms/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/forms/validators/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/forms/validators/customer_contact_list.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/forms/validators/customer_id.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/forms/validators/display_subscription.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/forms/validators/network_type_validators.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/forms/validators/product_id.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/autoregistration.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/extensions/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/extensions/stats.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/loaders/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/loaders/subscriptions.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/mutations/customer_description.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/mutations/start_process.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/pagination.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/customer.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/process.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/product.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/product_block.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/resource_type.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/settings.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/subscription.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/resolvers/workflow.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/customer.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/customer_description.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/errors.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/fixed_input.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/process.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/product.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/product_block.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/resource_type.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/settings.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/strawberry_pydantic_patch.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/subscription.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/schemas/workflow.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/types.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/create_resolver_error_handler.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/get_query_loaders.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/get_selected_fields.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/get_selected_paths.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/get_subscription_product_blocks.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/is_query_detailed.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/override_class.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/graphql/utils/to_graphql_result_page.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/log_config.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/README +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/alembic.ini +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/env.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/script.py.mako +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/templates/alembic.ini.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/templates/env.py.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/templates/helpers.py.j2 +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_3323bcb934e7_fix_tsv_triggers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_a76b9185b334_add_generic_workflows_to_core.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_c112305b07d3_initial_schema_migration.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2021-04-06_3c8b9185c221_add_validate_products_task.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2021-07-01_6896a54e9483_add_product_block_relations.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2021-11-17_19cdd3ab86f6_fix_parse_websearch.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2022-02-16_bed6bc0b197a_rename_parent_and_child_block_relations.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-03-06_e05bb1967eff_add_subscriptions_search_view.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-05-25_b1970225392d_add_subscription_metadata_workflow.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.sql +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.sql +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.sql +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2023-12-06_048219045729_add_workflow_id_to_processes_table.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.sql +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2025-01-08_4c5859620539_add_version_column_to_subscription.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/versions/schema/2025-10-19_4fjdn13f83ga_add_validate_product_type_task.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/py.typed +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schedules/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schedules/resume_workflows.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schedules/scheduling.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schedules/task_vacuum.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schedules/validate_products.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schedules/validate_subscriptions.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/base.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/engine_settings.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/fixed_input.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/problem_detail.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/process.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/product.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/product_block.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/resource_type.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/subscription.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/subscription_descriptions.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/schemas/workflow.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/security.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/celery.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/fixed_inputs.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/process_broadcast_thread.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/processes.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/products.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/resource_types.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/settings.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/subscription_relations.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/subscriptions.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/tasks.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/translations.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/services/workflows.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/targets.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/types.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/crypt.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/datetime.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/deprecation_logger.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/docs.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/enrich_process.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/errors.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/fixed_inputs.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/functional.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/get_subscription_dict.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/get_updated_properties.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/json.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/strings.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/validate_data_version.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/version.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/websocket/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/websocket/managers/broadcast_websocket_manager.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/websocket/managers/memory_websocket_manager.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/websocket/websocket_manager.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/workflow.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/modify_note.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/removed_workflow.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/steps.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/tasks/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/tasks/cleanup_tasks_log.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/tasks/resume_workflows.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/tasks/validate_product_type.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/tasks/validate_products.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/translations/en-GB.json +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/workflows/utils.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/setup.cfg +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/setup.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/conftest.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/test_product_populator.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/main.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/test_product_blocks.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/products/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/products/test_product.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/workflows/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/workflows/create_test_product.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/acceptance_tests/test_test_product.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_caching.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_health.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_models.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_processes.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_product_blocks.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_products.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_settings.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_subscription_customer_descriptions.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_subscriptions.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/api/test_ws.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/conftest.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/alembic.ini +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/main.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/env.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/script.py.mako +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_59e1199aff7f_create_data_head.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_85be1c80731c_add_example2.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_ea9e6c9de75c_add_example1.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-06-07_380a5b0c928c_add_example4.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example1.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example2.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example4.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example4sub.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_types/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example1.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example2.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example4.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example1.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example2.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example4.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_create_example1.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_modify_example1.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_terminate_example1.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_validate_example1.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_create_example2.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_modify_example2.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_terminate_example2.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_validate_example2.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_create_example4.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_modify_example4.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_terminate_example4.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_validate_example4.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/translations/en-GB.json +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/create_example1.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/modify_example1.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/shared/forms.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/terminate_example1.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/validate_example1.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/create_example2.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/modify_example2.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/shared/forms.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/terminate_example2.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/create_example4.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/modify_example4.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/shared/forms.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/terminate_example4.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate/workflows/shared.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/generate.sh +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/invalid_product_config1.yaml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/invalid_product_config2.yaml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/product_config1.yaml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/product_config2.yaml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/product_config3.yaml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/data/product_config4.yaml +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/generator/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/generator/test_enums.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/test_cli_generate.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/test_config_validation.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/test_generate_code.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/test_migrate_domain_models_with_instances.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/cli/test_migrate_domain_models_without_instances.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/config.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/conftest.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/db/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/db/test_listeners.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/domain/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/domain/test_base.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/domain/test_base_multiple.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/domain/test_base_with_list_union.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/domain/test_base_with_union.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/domain/test_lifecycle.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/processes.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_list_nested.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_one.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_one_nested.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_with_list_union.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_with_union.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_one.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_two.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_nested.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_union.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_union_overlap.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_one.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_one_nested.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_list_union.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_one.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_two.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_union.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_union.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/product_types/subscription_relations.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/products/resource_types.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/fixtures/workflows.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/forms/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/forms/test_customer_contact_list.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/forms/test_customer_id.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/forms/test_display_subscription.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/forms/test_generic_validators.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/conftest.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/extensions/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/extensions/test_stats.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/mutations/helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/mutations/test_customer_description.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/mutations/test_start_process.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_customer.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_process.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_product.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_settings.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_sort_and_filter_fields.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_subscription.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/test_subscription_relations.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/fixtures.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/test_autoregistration.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/test_get_query_loaders.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/test_get_selected_paths.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/test_is_query_detailed.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/test_is_querying_page_data.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/graphql/utils/test_override_class.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/helpers.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/schedules/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/schedules/test_scheduling.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/services/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/services/test_products.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/services/test_subscription_relations.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/services/test_subscriptions.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/services/test_translations.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/test_types.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/get_subscription_dict.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_datetime.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_errors.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_functional.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_get_updated_properties.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_json.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_search_query.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_state.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/utils/test_strings.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/websocket/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/websocket/test_broadcast.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/conftest.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/shared/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/shared/test_validate_subscriptions.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/tasks/__init__.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/tasks/test_clean_up_task_log.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/tasks/test_resume_workflows.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/tasks/test_validate_product_type.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/tasks/test_validate_products.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/test_async_workflow.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/test_config_db_code.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/test_generic_workflow_steps.py +0 -0
- {orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/test/unit_tests/workflows/test_modify_note.py +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Build stage
|
|
2
|
+
FROM python:3.11-slim AS build
|
|
3
|
+
WORKDIR /app
|
|
4
|
+
RUN apt-get update \
|
|
5
|
+
&& apt-get install -y --no-install-recommends git build-essential \
|
|
6
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
7
|
+
COPY . .
|
|
8
|
+
RUN pip install --upgrade pip --no-cache-dir
|
|
9
|
+
RUN pip install build --no-cache-dir
|
|
10
|
+
RUN python -m build --wheel --outdir dist
|
|
11
|
+
|
|
12
|
+
# Final stage
|
|
13
|
+
FROM python:3.11-slim
|
|
14
|
+
ENV PIP_ROOT_USER_ACTION=ignore
|
|
15
|
+
RUN apt-get update \
|
|
16
|
+
&& apt-get install -y --no-install-recommends git \
|
|
17
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
18
|
+
RUN pip install --upgrade pip --no-cache-dir
|
|
19
|
+
COPY --from=build /app/dist/*.whl /tmp/
|
|
20
|
+
RUN pip install /tmp/*.whl --no-cache-dir
|
|
21
|
+
RUN useradd orchestrator
|
|
22
|
+
USER orchestrator
|
|
23
|
+
WORKDIR /home/orchestrator
|
|
24
|
+
CMD ["uvicorn", "--host", "0.0.0.0", "--port", "8080", "main:app"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: orchestrator-core
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.10.0rc1
|
|
4
4
|
Summary: This is the orchestrator workflow engine.
|
|
5
5
|
Requires-Python: >=3.11,<3.14
|
|
6
6
|
Classifier: Intended Audience :: Information Technology
|
|
@@ -27,36 +27,36 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
27
27
|
Classifier: Programming Language :: Python :: 3.11
|
|
28
28
|
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
|
29
29
|
Classifier: Topic :: Internet :: WWW/HTTP
|
|
30
|
-
Requires-Dist: alembic==1.
|
|
30
|
+
Requires-Dist: alembic==1.14.1
|
|
31
31
|
Requires-Dist: anyio>=3.7.0
|
|
32
32
|
Requires-Dist: click==8.*
|
|
33
33
|
Requires-Dist: deprecated
|
|
34
34
|
Requires-Dist: deepmerge==1.1.1
|
|
35
35
|
Requires-Dist: fastapi~=0.115.2
|
|
36
36
|
Requires-Dist: fastapi-etag==0.4.0
|
|
37
|
-
Requires-Dist: more-itertools~=10.
|
|
37
|
+
Requires-Dist: more-itertools~=10.6.0
|
|
38
38
|
Requires-Dist: itsdangerous
|
|
39
39
|
Requires-Dist: Jinja2==3.1.5
|
|
40
|
-
Requires-Dist: orjson==3.10.
|
|
40
|
+
Requires-Dist: orjson==3.10.15
|
|
41
41
|
Requires-Dist: psycopg2-binary==2.9.10
|
|
42
42
|
Requires-Dist: pydantic[email]~=2.8.2
|
|
43
|
-
Requires-Dist: pydantic-settings~=2.
|
|
43
|
+
Requires-Dist: pydantic-settings~=2.7.1
|
|
44
44
|
Requires-Dist: python-dateutil==2.8.2
|
|
45
45
|
Requires-Dist: python-rapidjson>=1.18,<1.21
|
|
46
46
|
Requires-Dist: pytz==2024.1
|
|
47
47
|
Requires-Dist: redis==5.0.3
|
|
48
48
|
Requires-Dist: schedule==1.1.0
|
|
49
49
|
Requires-Dist: sentry-sdk[fastapi]~=2.18.0
|
|
50
|
-
Requires-Dist: SQLAlchemy==2.0.
|
|
50
|
+
Requires-Dist: SQLAlchemy==2.0.38
|
|
51
51
|
Requires-Dist: SQLAlchemy-Utils==0.41.2
|
|
52
52
|
Requires-Dist: structlog
|
|
53
|
-
Requires-Dist: typer==0.
|
|
53
|
+
Requires-Dist: typer==0.15.1
|
|
54
54
|
Requires-Dist: uvicorn[standard]~=0.32.0
|
|
55
55
|
Requires-Dist: nwa-stdlib~=1.9.0
|
|
56
56
|
Requires-Dist: oauth2-lib~=2.4.0
|
|
57
57
|
Requires-Dist: tabulate==0.9.0
|
|
58
58
|
Requires-Dist: strawberry-graphql>=0.246.2
|
|
59
|
-
Requires-Dist: pydantic-forms~=1.1
|
|
59
|
+
Requires-Dist: pydantic-forms~=1.2.1
|
|
60
60
|
Requires-Dist: celery~=5.4.0 ; extra == "celery"
|
|
61
61
|
Requires-Dist: toml ; extra == "dev"
|
|
62
62
|
Requires-Dist: bumpversion ; extra == "dev"
|
|
@@ -26,21 +26,16 @@ Interact with the application database. By default, does nothing, specify `main.
|
|
|
26
26
|
show_symbol_type_toc: false
|
|
27
27
|
show_symbol_type_heading: false
|
|
28
28
|
members:
|
|
29
|
-
- init
|
|
30
|
-
- revision
|
|
31
|
-
- upgrade
|
|
32
29
|
- downgrade
|
|
33
30
|
- heads
|
|
34
31
|
- history
|
|
35
|
-
- merge
|
|
36
|
-
- migrate_workflows
|
|
37
|
-
- heads
|
|
38
|
-
- history
|
|
39
32
|
- init
|
|
40
33
|
- merge
|
|
41
34
|
- migrate_workflows
|
|
35
|
+
- migrate_tasks
|
|
42
36
|
- revision
|
|
43
37
|
- upgrade
|
|
38
|
+
|
|
44
39
|
heading_level: 3
|
|
45
40
|
|
|
46
41
|
### migrate-domain-models
|
|
@@ -677,3 +677,10 @@ customer_field.name = "customer"
|
|
|
677
677
|
override_class(ProcessType, [customer_field])
|
|
678
678
|
custom_subscription_interface = override_class(SubscriptionInterface, [customer_field])
|
|
679
679
|
```
|
|
680
|
+
|
|
681
|
+
### Behavior of filterBy
|
|
682
|
+
By default, string matching is configured for exact matches, i.e a search for `10` will return ONLY `10`
|
|
683
|
+
and won't include `10G` or `100G`.
|
|
684
|
+
Searching can also be configured for partial matching as well, where a search for `10` would include `10G` and `100G`.
|
|
685
|
+
|
|
686
|
+
This can be controlled by setting the variable `FILTER_BY_MODE` can be set to a value of `exact` or `partial` as needed.
|
|
@@ -47,6 +47,7 @@ Some search query examples for Subscriptions:
|
|
|
47
47
|
| `test*` | any field starting with `test` (Prefix search) |
|
|
48
48
|
|
|
49
49
|
Note that:
|
|
50
|
+
|
|
50
51
|
* For other objects the query syntax is the same
|
|
51
52
|
* Searching is case-insensitive
|
|
52
53
|
* Ordering of words does not matter (unless it is a Phrase)
|
|
@@ -87,6 +88,7 @@ Postgres _Full Text Search_ (TS) has extensive [documentation](https://www.postg
|
|
|
87
88
|
The query behind `subscriptions_search` retrieves Subscriptions joined with several other tables (as shown in the previous diagram), forming a "document" of keywords that in some way relate to the subscription.
|
|
88
89
|
|
|
89
90
|
Each document is turned into a _tsvector_ with Postgres function `to_tsvector()` which consists of these phases:
|
|
91
|
+
|
|
90
92
|
* Parse document into _tokens_: split text into _tokens_ using special characters as delimiters
|
|
91
93
|
* Convert tokens into _lexemes_: a lexeme is a normalized token, i.e. this folds upper-case to lower-case. This step can also normalize based on language, but we disable that by using the `'simple'` dictionary (shown in diagram above)
|
|
92
94
|
* Create vector optimized for search: store array of _lexemes_ along with positional information
|
|
@@ -240,6 +240,7 @@ def abort_process_endpoint(process_id: UUID, request: Request, user: str = Depen
|
|
|
240
240
|
broadcast_func = api_broadcast_process_data(request)
|
|
241
241
|
try:
|
|
242
242
|
abort_process(process, user, broadcast_func=broadcast_func)
|
|
243
|
+
broadcast_invalidate_status_counts()
|
|
243
244
|
return
|
|
244
245
|
except Exception as e:
|
|
245
246
|
raise_status(HTTPStatus.INTERNAL_SERVER_ERROR, str(e))
|
|
@@ -25,6 +25,7 @@ import orchestrator.workflows
|
|
|
25
25
|
from orchestrator.cli.domain_gen_helpers.types import ModelUpdates
|
|
26
26
|
from orchestrator.cli.helpers.print_helpers import COLOR, str_fmt
|
|
27
27
|
from orchestrator.cli.migrate_domain_models import create_domain_models_migration_sql
|
|
28
|
+
from orchestrator.cli.migrate_tasks import create_tasks_migration_wizard
|
|
28
29
|
from orchestrator.cli.migrate_workflows import create_workflows_migration_wizard
|
|
29
30
|
from orchestrator.cli.migration_helpers import create_migration_file
|
|
30
31
|
from orchestrator.db import init_database
|
|
@@ -397,3 +398,80 @@ def migrate_workflows(
|
|
|
397
398
|
|
|
398
399
|
create_migration_file(alembic_cfg(), sql_upgrade_str, sql_downgrade_str, message, preamble=preamble)
|
|
399
400
|
return None
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
@app.command(help="Create migration file based on diff tasks in db")
|
|
404
|
+
def migrate_tasks(
|
|
405
|
+
message: str = typer.Argument(..., help="Migration name"),
|
|
406
|
+
test: bool = typer.Option(False, help="Optional boolean if you don't want to generate a migration file"),
|
|
407
|
+
) -> tuple[list[dict], list[dict]] | None:
|
|
408
|
+
"""The `migrate-tasks` command creates a migration file based on the difference between tasks in the database and registered TaskInstances in your codebase.
|
|
409
|
+
|
|
410
|
+
!!! warning "BACKUP YOUR DATABASE BEFORE USING THE MIGRATION!"
|
|
411
|
+
|
|
412
|
+
You will be prompted with inputs for new models and resource type updates.
|
|
413
|
+
Resource type updates are only handled when it's renamed in all product blocks.
|
|
414
|
+
|
|
415
|
+
Args:
|
|
416
|
+
message: Message/description of the generated migration.
|
|
417
|
+
test: Optional boolean if you don't want to generate a migration file.
|
|
418
|
+
|
|
419
|
+
Returns None unless `--test` is used, in which case it returns:
|
|
420
|
+
- tuple:
|
|
421
|
+
- list of upgrade SQL statements in string format.
|
|
422
|
+
- list of downgrade SQL statements in string format.
|
|
423
|
+
|
|
424
|
+
CLI Arguments:
|
|
425
|
+
```sh
|
|
426
|
+
Arguments:
|
|
427
|
+
MESSAGE Migration name [required]
|
|
428
|
+
|
|
429
|
+
Options:
|
|
430
|
+
--test / --no-test Optional boolean if you don't want to generate a migration
|
|
431
|
+
file [default: no-test]
|
|
432
|
+
```
|
|
433
|
+
"""
|
|
434
|
+
if not app_settings.TESTING:
|
|
435
|
+
init_database(app_settings)
|
|
436
|
+
|
|
437
|
+
if test:
|
|
438
|
+
print( # noqa: T001, T201
|
|
439
|
+
f"{str_fmt('NOTE:', flags=[COLOR.BOLD, COLOR.CYAN])} Running in test mode. No migration file will be generated.\n"
|
|
440
|
+
)
|
|
441
|
+
|
|
442
|
+
tasks_to_add, tasks_to_delete = create_tasks_migration_wizard()
|
|
443
|
+
|
|
444
|
+
# String 'template' arguments
|
|
445
|
+
import_str = "from orchestrator.migrations.helpers import create_task, delete_workflow\n"
|
|
446
|
+
tpl_preamble_lines = []
|
|
447
|
+
tpl_upgrade_lines = []
|
|
448
|
+
tpl_downgrade_lines = []
|
|
449
|
+
|
|
450
|
+
if tasks_to_add:
|
|
451
|
+
tpl_preamble_lines.append(f"new_tasks = {json.dumps(tasks_to_add, indent=4)}\n")
|
|
452
|
+
tpl_upgrade_lines.extend([(" " * 4) + "for task in new_tasks:", (" " * 8) + "create_task(conn, task)"])
|
|
453
|
+
tpl_downgrade_lines.extend(
|
|
454
|
+
[(" " * 4) + "for task in new_tasks:", (" " * 8) + 'delete_workflow(conn, task["name"])']
|
|
455
|
+
)
|
|
456
|
+
|
|
457
|
+
if tasks_to_delete:
|
|
458
|
+
tpl_preamble_lines.append(f"old_tasks = {json.dumps(tasks_to_delete, indent=4)}\n")
|
|
459
|
+
tpl_upgrade_lines.extend(
|
|
460
|
+
[(" " * 4) + "for task in old_tasks:", (" " * 8) + 'delete_workflow(conn, task["name"])']
|
|
461
|
+
)
|
|
462
|
+
tpl_downgrade_lines.extend([(" " * 4) + "for task in old_tasks:", (" " * 8) + "create_task(conn, task)"])
|
|
463
|
+
|
|
464
|
+
preamble = "\n".join(
|
|
465
|
+
[
|
|
466
|
+
import_str,
|
|
467
|
+
*tpl_preamble_lines,
|
|
468
|
+
]
|
|
469
|
+
)
|
|
470
|
+
sql_upgrade_str = "\n".join(tpl_upgrade_lines)
|
|
471
|
+
sql_downgrade_str = "\n".join(tpl_downgrade_lines)
|
|
472
|
+
|
|
473
|
+
if test:
|
|
474
|
+
return tasks_to_add, tasks_to_delete
|
|
475
|
+
|
|
476
|
+
create_migration_file(alembic_cfg(), sql_upgrade_str, sql_downgrade_str, message, preamble=preamble)
|
|
477
|
+
return None
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import itertools
|
|
2
|
+
import operator
|
|
3
|
+
from collections.abc import Iterable
|
|
4
|
+
from typing import TypeVar, cast
|
|
5
|
+
|
|
6
|
+
import structlog
|
|
7
|
+
from sqlalchemy import select
|
|
8
|
+
from tabulate import tabulate
|
|
9
|
+
|
|
10
|
+
import orchestrator.workflows
|
|
11
|
+
from orchestrator.cli.helpers.input_helpers import _enumerate_menu_keys, _prompt_user_menu, get_user_input
|
|
12
|
+
from orchestrator.cli.helpers.print_helpers import COLOR, noqa_print, print_fmt
|
|
13
|
+
from orchestrator.db import WorkflowTable, db
|
|
14
|
+
from orchestrator.targets import Target
|
|
15
|
+
from orchestrator.workflow import Workflow
|
|
16
|
+
from orchestrator.workflows import get_workflow
|
|
17
|
+
|
|
18
|
+
logger = structlog.get_logger(__name__)
|
|
19
|
+
|
|
20
|
+
T = TypeVar("T")
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _print_tasks_table(tasks: list[WorkflowTable]) -> None:
|
|
24
|
+
items = [(task.name, task.description) for task in tasks]
|
|
25
|
+
print_fmt(
|
|
26
|
+
tabulate(
|
|
27
|
+
items,
|
|
28
|
+
headers=["#", "name", "description"],
|
|
29
|
+
showindex=itertools.count(1),
|
|
30
|
+
),
|
|
31
|
+
end="\n\n",
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _add_task(tasks: dict[str, Workflow], state: dict) -> dict:
|
|
36
|
+
print_fmt("\nAdd new task\n", flags=[COLOR.UNDERLINE])
|
|
37
|
+
|
|
38
|
+
if not tasks:
|
|
39
|
+
noqa_print("No registered tasks found to add to the database")
|
|
40
|
+
return state
|
|
41
|
+
|
|
42
|
+
noqa_print("\nWhich task should be added?")
|
|
43
|
+
|
|
44
|
+
already_used_tasks = {task["name"] for task in state["tasks_to_add"] + state["tasks_to_delete"]}
|
|
45
|
+
task_options = [(task, task) for task in tasks.keys() if task not in already_used_tasks]
|
|
46
|
+
task_name = _prompt_user_menu([*task_options, ("cancel", None)], keys=[*_enumerate_menu_keys(task_options), "q"])
|
|
47
|
+
if not task_name:
|
|
48
|
+
# Menu cancelled
|
|
49
|
+
return state
|
|
50
|
+
|
|
51
|
+
task_to_add = {"name": task_name, "description": tasks[task_name].description}
|
|
52
|
+
return {**state, "tasks_to_add": [*state["tasks_to_add"], task_to_add]}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def _delete_task(tasks: Iterable[WorkflowTable], state: dict) -> dict:
|
|
56
|
+
print_fmt("\nDelete existing task\n", flags=[COLOR.UNDERLINE])
|
|
57
|
+
already_used_tasks = {task["name"] for task in state["tasks_to_add"] + state["tasks_to_delete"]}
|
|
58
|
+
items = [(task.name, task.description) for task in tasks if task not in already_used_tasks]
|
|
59
|
+
items = sorted(items, key=operator.itemgetter(1, 1))
|
|
60
|
+
keys = ["#", "name", "description"]
|
|
61
|
+
if not items:
|
|
62
|
+
noqa_print("No deletable tasks in database")
|
|
63
|
+
return state
|
|
64
|
+
|
|
65
|
+
print_fmt(
|
|
66
|
+
tabulate(
|
|
67
|
+
items,
|
|
68
|
+
headers=keys,
|
|
69
|
+
showindex=itertools.count(1),
|
|
70
|
+
),
|
|
71
|
+
end="\n\n",
|
|
72
|
+
)
|
|
73
|
+
task_num = get_user_input("Which task do you want to delete? (q to cancel) ", "q")
|
|
74
|
+
if not task_num.isdigit():
|
|
75
|
+
return state
|
|
76
|
+
task_index = int(task_num) - 1
|
|
77
|
+
if 0 <= task_index < len(items):
|
|
78
|
+
item = dict(zip(keys[1:], items[task_index]))
|
|
79
|
+
return {**state, "tasks_to_delete": [*state["tasks_to_delete"], item]}
|
|
80
|
+
return state
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def _show_state(state: dict) -> dict:
|
|
84
|
+
print_fmt("\nTasks to add:", flags=[COLOR.GREEN])
|
|
85
|
+
print_fmt(
|
|
86
|
+
tabulate(
|
|
87
|
+
state["tasks_to_add"],
|
|
88
|
+
headers="keys",
|
|
89
|
+
showindex=itertools.count(1),
|
|
90
|
+
),
|
|
91
|
+
end="\n\n",
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
print_fmt("Tasks to delete:", flags=[COLOR.RED])
|
|
95
|
+
print_fmt(
|
|
96
|
+
tabulate(
|
|
97
|
+
state["tasks_to_delete"],
|
|
98
|
+
headers="keys",
|
|
99
|
+
showindex=itertools.count(1),
|
|
100
|
+
),
|
|
101
|
+
end="\n\n",
|
|
102
|
+
)
|
|
103
|
+
return state
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def delete_dangling_tasks(tasks: list[WorkflowTable], state: dict) -> dict:
|
|
107
|
+
if not tasks:
|
|
108
|
+
noqa_print("No dangling tasks found.")
|
|
109
|
+
return state
|
|
110
|
+
|
|
111
|
+
print_fmt(
|
|
112
|
+
"\nThe following tasks were found in the database that do not have a corresponding LazyWorkflowInstance:\n"
|
|
113
|
+
)
|
|
114
|
+
_print_tasks_table(tasks)
|
|
115
|
+
should_delete_dangling_tasks = (
|
|
116
|
+
get_user_input("Do you wish to delete all dangling tasks from the database? [y/n]: ", "n").lower() == "y"
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
if not should_delete_dangling_tasks:
|
|
120
|
+
noqa_print("Cancelling")
|
|
121
|
+
return state
|
|
122
|
+
|
|
123
|
+
already_used_tasks = {task["name"] for task in state["tasks_to_add"] + state["tasks_to_delete"]}
|
|
124
|
+
keys = ["name", "description"]
|
|
125
|
+
items = [
|
|
126
|
+
{"name": task.name, "description": task.description}
|
|
127
|
+
for k, task in zip(keys, tasks)
|
|
128
|
+
if task.name not in already_used_tasks
|
|
129
|
+
]
|
|
130
|
+
return {**state, "tasks_to_delete": [*state["tasks_to_delete"], *items]}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def create_tasks_migration_wizard() -> tuple[list[dict], list[dict]]:
|
|
134
|
+
"""Create tuple with lists for tasks to add and delete.
|
|
135
|
+
|
|
136
|
+
Returns tuple:
|
|
137
|
+
- list of task items to add in the migration
|
|
138
|
+
- list of task items to delete in the migration
|
|
139
|
+
"""
|
|
140
|
+
database_tasks = {
|
|
141
|
+
task.name: task for task in list(db.session.scalars(select(WorkflowTable))) if task.target == Target.SYSTEM
|
|
142
|
+
}
|
|
143
|
+
registered_wf_instances = {
|
|
144
|
+
task: cast(Workflow, get_workflow(task)) for task in orchestrator.workflows.ALL_WORKFLOWS.keys()
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
registered_tasks = dict(
|
|
148
|
+
filter(
|
|
149
|
+
lambda task: task[1].target == Target.SYSTEM and task[0] in database_tasks.keys(),
|
|
150
|
+
registered_wf_instances.items(),
|
|
151
|
+
)
|
|
152
|
+
)
|
|
153
|
+
available_tasks = dict(
|
|
154
|
+
filter(
|
|
155
|
+
lambda task: task[1].target == Target.SYSTEM and task[0] not in database_tasks.keys(),
|
|
156
|
+
registered_wf_instances.items(),
|
|
157
|
+
)
|
|
158
|
+
)
|
|
159
|
+
unregistered_tasks = [task for task in database_tasks.values() if task.name not in registered_tasks.keys()]
|
|
160
|
+
|
|
161
|
+
# Main menu loop
|
|
162
|
+
state = {"tasks_to_add": [], "tasks_to_delete": [], "done": False}
|
|
163
|
+
while not state["done"]:
|
|
164
|
+
print_fmt("\nWhat do you want to do?\n", flags=[COLOR.UNDERLINE, COLOR.BOLD])
|
|
165
|
+
choice_fn = _prompt_user_menu(
|
|
166
|
+
[
|
|
167
|
+
("Add task to database", lambda s: _add_task(available_tasks, s)),
|
|
168
|
+
("Delete task from database", lambda s: _delete_task(database_tasks.values(), s)),
|
|
169
|
+
(
|
|
170
|
+
"Delete unregistered tasks from database",
|
|
171
|
+
lambda s: delete_dangling_tasks(unregistered_tasks, s),
|
|
172
|
+
),
|
|
173
|
+
("Finish and create migration file", lambda s: {**s, "done": True, "abort": False}),
|
|
174
|
+
("Show current diff", _show_state),
|
|
175
|
+
("Quit menu without creating a migration file", lambda s: {**s, "done": True, "abort": True}),
|
|
176
|
+
],
|
|
177
|
+
keys=["a", "x", "c", "y", "d", "q"],
|
|
178
|
+
)
|
|
179
|
+
if choice_fn:
|
|
180
|
+
state = choice_fn(state) # type: ignore
|
|
181
|
+
|
|
182
|
+
if state.get("abort"):
|
|
183
|
+
return [], []
|
|
184
|
+
|
|
185
|
+
logger.info("Create tasks", create_tasks=state["tasks_to_add"])
|
|
186
|
+
logger.info("Delete tasks", delete_tasks=state["tasks_to_delete"])
|
|
187
|
+
|
|
188
|
+
return state["tasks_to_add"], state["tasks_to_delete"] # type: ignore
|
|
@@ -21,6 +21,7 @@ from sqlalchemy import BinaryExpression, Cast, ColumnClause, ColumnElement, Stri
|
|
|
21
21
|
from sqlalchemy.sql.functions import coalesce
|
|
22
22
|
from sqlalchemy.sql.operators import eq
|
|
23
23
|
|
|
24
|
+
from orchestrator.settings import app_settings
|
|
24
25
|
from orchestrator.utils.search_query import Node, WhereCondGenerator
|
|
25
26
|
|
|
26
27
|
|
|
@@ -67,7 +68,7 @@ def _filter_string(field: ColumnElement) -> WhereCondGenerator:
|
|
|
67
68
|
if node[0] == "ValueGroup":
|
|
68
69
|
vals = [w[1] for w in node[1] if w[0] in ["Word", "PrefixWord"]] # Only works for (Prefix)Words atm
|
|
69
70
|
return field.in_(vals)
|
|
70
|
-
return field.ilike(f"%{node[1]}%")
|
|
71
|
+
return field.ilike(f"{node[1]}") if app_settings.FILTER_BY_MODE == "exact" else field.ilike(f"%{node[1]}%")
|
|
71
72
|
|
|
72
73
|
return _clause_gen
|
|
73
74
|
|
|
@@ -458,7 +458,7 @@ class DomainModel(BaseModel):
|
|
|
458
458
|
|
|
459
459
|
|
|
460
460
|
def get_depends_on_product_block_type_list(
|
|
461
|
-
product_block_types: dict[str, type["ProductBlockModel"] | tuple[type["ProductBlockModel"]]]
|
|
461
|
+
product_block_types: dict[str, type["ProductBlockModel"] | tuple[type["ProductBlockModel"]]],
|
|
462
462
|
) -> list[type["ProductBlockModel"]]:
|
|
463
463
|
product_blocks_types_in_model = []
|
|
464
464
|
for product_block_type in product_block_types.values():
|
|
@@ -5,6 +5,7 @@ from orchestrator.graphql.resolvers.product_block import resolve_product_blocks
|
|
|
5
5
|
from orchestrator.graphql.resolvers.resource_type import resolve_resource_types
|
|
6
6
|
from orchestrator.graphql.resolvers.settings import SettingsMutation, resolve_settings
|
|
7
7
|
from orchestrator.graphql.resolvers.subscription import resolve_subscription, resolve_subscriptions
|
|
8
|
+
from orchestrator.graphql.resolvers.version import resolve_version
|
|
8
9
|
from orchestrator.graphql.resolvers.workflow import resolve_workflows
|
|
9
10
|
|
|
10
11
|
__all__ = [
|
|
@@ -19,4 +20,5 @@ __all__ = [
|
|
|
19
20
|
"resolve_customer",
|
|
20
21
|
"resolve_resource_types",
|
|
21
22
|
"resolve_workflows",
|
|
23
|
+
"resolve_version",
|
|
22
24
|
]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from structlog import get_logger
|
|
2
|
+
|
|
3
|
+
from orchestrator import __version__
|
|
4
|
+
from orchestrator.graphql.schemas.version import VersionType
|
|
5
|
+
from orchestrator.graphql.types import OrchestratorInfo
|
|
6
|
+
from orchestrator.graphql.utils import create_resolver_error_handler
|
|
7
|
+
|
|
8
|
+
logger = get_logger(__name__)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
VERSIONS = [f"orchestrator-core: {__version__}"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def resolve_version(info: OrchestratorInfo) -> VersionType | None:
|
|
15
|
+
logger.debug("resolve_version() called")
|
|
16
|
+
_error_handler = create_resolver_error_handler(info)
|
|
17
|
+
|
|
18
|
+
ver = None
|
|
19
|
+
try:
|
|
20
|
+
ver = VersionType(application_versions=VERSIONS)
|
|
21
|
+
except Exception as e:
|
|
22
|
+
logger.error(f"Error getting version: {str(e)}")
|
|
23
|
+
_error_handler("Failed to retrieve orchestrator_core version", extensions={"code": "PACKAGE_VERSION_ERROR"})
|
|
24
|
+
|
|
25
|
+
return ver
|
|
@@ -47,6 +47,7 @@ from orchestrator.graphql.resolvers import (
|
|
|
47
47
|
resolve_settings,
|
|
48
48
|
resolve_subscription,
|
|
49
49
|
resolve_subscriptions,
|
|
50
|
+
resolve_version,
|
|
50
51
|
resolve_workflows,
|
|
51
52
|
)
|
|
52
53
|
from orchestrator.graphql.schemas import DEFAULT_GRAPHQL_MODELS
|
|
@@ -57,6 +58,7 @@ from orchestrator.graphql.schemas.product_block import ProductBlock
|
|
|
57
58
|
from orchestrator.graphql.schemas.resource_type import ResourceType
|
|
58
59
|
from orchestrator.graphql.schemas.settings import StatusType
|
|
59
60
|
from orchestrator.graphql.schemas.subscription import SubscriptionInterface
|
|
61
|
+
from orchestrator.graphql.schemas.version import VersionType
|
|
60
62
|
from orchestrator.graphql.schemas.workflow import Workflow
|
|
61
63
|
from orchestrator.graphql.types import SCALAR_OVERRIDES, OrchestratorContext, ScalarOverrideType, StrawberryModelType
|
|
62
64
|
from orchestrator.services.process_broadcast_thread import ProcessDataBroadcastThread
|
|
@@ -95,6 +97,7 @@ class OrchestratorQuery:
|
|
|
95
97
|
resolver=resolve_settings,
|
|
96
98
|
description="Returns information about cache, workers, and global engine settings",
|
|
97
99
|
)
|
|
100
|
+
version: VersionType = authenticated_field(resolver=resolve_version, description="Returns version information")
|
|
98
101
|
|
|
99
102
|
|
|
100
103
|
@strawberry.federation.type(description="Orchestrator customer Query")
|
{orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/migrations/helpers.py
RENAMED
|
@@ -164,6 +164,36 @@ def create_workflow(conn: sa.engine.Connection, workflow: dict) -> None:
|
|
|
164
164
|
)
|
|
165
165
|
|
|
166
166
|
|
|
167
|
+
def create_task(conn: sa.engine.Connection, task: dict) -> None:
|
|
168
|
+
"""Create a new task.
|
|
169
|
+
|
|
170
|
+
Args:
|
|
171
|
+
conn: DB connection as available in migration main file.
|
|
172
|
+
task: Dict with data for a new workflow.
|
|
173
|
+
name: Name of the task.
|
|
174
|
+
description: Description of the workflow.
|
|
175
|
+
|
|
176
|
+
Usage:
|
|
177
|
+
>>> task = {
|
|
178
|
+
"name": "task_name",
|
|
179
|
+
"description": "task description",
|
|
180
|
+
}
|
|
181
|
+
>>> create_workflow(conn, task)
|
|
182
|
+
"""
|
|
183
|
+
|
|
184
|
+
conn.execute(
|
|
185
|
+
sa.text(
|
|
186
|
+
"""
|
|
187
|
+
INSERT INTO workflows(name, target, description)
|
|
188
|
+
VALUES (:name, 'SYSTEM', :description)
|
|
189
|
+
ON CONFLICT DO NOTHING
|
|
190
|
+
RETURNING workflow_id
|
|
191
|
+
"""
|
|
192
|
+
),
|
|
193
|
+
task,
|
|
194
|
+
)
|
|
195
|
+
|
|
196
|
+
|
|
167
197
|
def create_workflows(conn: sa.engine.Connection, new: dict) -> None:
|
|
168
198
|
"""Create new workflows.
|
|
169
199
|
|
|
@@ -894,7 +924,7 @@ def delete_product_block(conn: sa.engine.Connection, name: str) -> None:
|
|
|
894
924
|
|
|
895
925
|
|
|
896
926
|
def delete_workflow(conn: sa.engine.Connection, name: str) -> None:
|
|
897
|
-
"""Delete a workflow and
|
|
927
|
+
"""Delete a workflow and its occurrences in products.
|
|
898
928
|
|
|
899
929
|
Note: the cascading delete rules in postgres will also ensure removal from `products_workflows`.
|
|
900
930
|
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
import secrets
|
|
15
15
|
import string
|
|
16
16
|
from pathlib import Path
|
|
17
|
+
from typing import Literal
|
|
17
18
|
|
|
18
19
|
from pydantic import PostgresDsn, RedisDsn
|
|
19
20
|
from pydantic_settings import BaseSettings
|
|
@@ -82,6 +83,7 @@ class AppSettings(BaseSettings):
|
|
|
82
83
|
ENABLE_GRAPHQL_PROFILING_EXTENSION: bool = False
|
|
83
84
|
ENABLE_GRAPHQL_STATS_EXTENSION: bool = False
|
|
84
85
|
VALIDATE_OUT_OF_SYNC_SUBSCRIPTIONS: bool = False
|
|
86
|
+
FILTER_BY_MODE: Literal["partial", "exact"] = "exact"
|
|
85
87
|
|
|
86
88
|
|
|
87
89
|
app_settings = AppSettings()
|
|
@@ -86,7 +86,7 @@ def default_get_subscription_id(data: Any) -> UUID:
|
|
|
86
86
|
|
|
87
87
|
|
|
88
88
|
def delete_subscription_from_redis(
|
|
89
|
-
extract_fn: Callable[..., UUID] = default_get_subscription_id
|
|
89
|
+
extract_fn: Callable[..., UUID] = default_get_subscription_id,
|
|
90
90
|
) -> Callable[[Callable[..., Any]], Callable[..., Any]]:
|
|
91
91
|
def _delete_subscription_from_redis(func: Callable[..., Any]) -> Callable[..., Any]:
|
|
92
92
|
@functools.wraps(func)
|
{orchestrator_core-2.9.2rc2 → orchestrator_core-2.10.0rc1}/orchestrator/utils/search_query.py
RENAMED
|
@@ -5,12 +5,10 @@ from itertools import chain
|
|
|
5
5
|
from typing import Any, Union, cast
|
|
6
6
|
|
|
7
7
|
import structlog
|
|
8
|
-
from sqlalchemy import BinaryExpression, ColumnElement, CompoundSelect, Select,
|
|
8
|
+
from sqlalchemy import BinaryExpression, ColumnElement, CompoundSelect, Select, false, not_, or_
|
|
9
9
|
from sqlalchemy.orm import InstrumentedAttribute, MappedColumn
|
|
10
10
|
|
|
11
|
-
from orchestrator.db import db
|
|
12
11
|
from orchestrator.db.database import BaseModel
|
|
13
|
-
from orchestrator.db.helpers import get_postgres_version
|
|
14
12
|
from orchestrator.utils.helpers import camel_to_snake
|
|
15
13
|
|
|
16
14
|
logger = structlog.getLogger(__name__)
|
|
@@ -257,28 +255,10 @@ class Parser:
|
|
|
257
255
|
|
|
258
256
|
|
|
259
257
|
class TSQueryVisitor:
|
|
260
|
-
|
|
261
258
|
_glue_chars = re.compile(r"[-_@#$%^&]")
|
|
262
259
|
|
|
263
260
|
@staticmethod
|
|
264
261
|
def _split_term(term: str) -> list[str]:
|
|
265
|
-
"""Workaround for the way Postgres <14 parses text with to_tsquery.
|
|
266
|
-
|
|
267
|
-
For Postgres <14, we issue a database query to parse the text for us in a way that is compatible with to_tsvector. This is the same behavior as Postgres >=14.
|
|
268
|
-
"""
|
|
269
|
-
|
|
270
|
-
# TODO: Remove this workaround when support for Postgres <14 is dropped
|
|
271
|
-
# https://github.com/workfloworchestrator/orchestrator-core/issues/621
|
|
272
|
-
|
|
273
|
-
if get_postgres_version() < 14:
|
|
274
|
-
# tokid 12 is the space separator token
|
|
275
|
-
stmt = (
|
|
276
|
-
select(func.array_agg(column("token")))
|
|
277
|
-
.select_from(func.ts_parse("default", func.replace(term, "-", "_")))
|
|
278
|
-
.where(column("tokid") != 12)
|
|
279
|
-
)
|
|
280
|
-
return db.session.scalar(stmt) or []
|
|
281
|
-
|
|
282
262
|
return [part.strip() for part in TSQueryVisitor._glue_chars.split(term) if part and not part.isspace()]
|
|
283
263
|
|
|
284
264
|
@staticmethod
|