orchestrator-core 3.2.3__py3-none-any.whl → 4.0.0__py3-none-any.whl
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/__init__.py +1 -1
- orchestrator/api/api_v1/endpoints/settings.py +3 -13
- orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py +0 -2
- orchestrator/api/api_v1/endpoints/subscriptions.py +1 -0
- orchestrator/app.py +10 -1
- orchestrator/cli/generator/templates/new_product_migration.j2 +5 -1
- orchestrator/cli/migrate_tasks.py +5 -5
- orchestrator/cli/migrate_workflows.py +1 -2
- orchestrator/db/models.py +3 -1
- orchestrator/domain/base.py +4 -24
- orchestrator/domain/customer_description.py +0 -4
- orchestrator/graphql/mutations/customer_description.py +1 -1
- orchestrator/metrics/__init__.py +3 -0
- orchestrator/metrics/engine.py +49 -0
- orchestrator/metrics/init.py +14 -0
- orchestrator/metrics/processes.py +147 -0
- orchestrator/metrics/subscriptions.py +93 -0
- orchestrator/migrations/helpers.py +14 -6
- orchestrator/migrations/templates/alembic.ini.j2 +1 -2
- orchestrator/migrations/templates/env.py.j2 +4 -7
- orchestrator/migrations/versions/schema/2025-02-20_68d14db1b8da_make_workflow_description_mandatory.py +33 -0
- orchestrator/migrations/versions/schema/2025-05-08_161918133bec_add_is_task_to_workflow.py +28 -0
- orchestrator/schedules/validate_subscriptions.py +4 -4
- orchestrator/schemas/workflow.py +3 -1
- orchestrator/services/celery.py +13 -5
- orchestrator/services/processes.py +2 -2
- orchestrator/services/settings.py +10 -1
- orchestrator/services/subscriptions.py +10 -23
- orchestrator/services/workflows.py +8 -4
- orchestrator/settings.py +1 -4
- orchestrator/targets.py +1 -0
- orchestrator/utils/get_subscription_dict.py +0 -4
- orchestrator/utils/redis.py +1 -67
- orchestrator/workflows/modify_note.py +3 -11
- orchestrator/workflows/steps.py +2 -86
- orchestrator/workflows/tasks/validate_product_type.py +2 -2
- orchestrator/workflows/tasks/validate_products.py +3 -6
- orchestrator/workflows/utils.py +3 -23
- {orchestrator_core-3.2.3.dist-info → orchestrator_core-4.0.0.dist-info}/METADATA +9 -8
- {orchestrator_core-3.2.3.dist-info → orchestrator_core-4.0.0.dist-info}/RECORD +42 -35
- {orchestrator_core-3.2.3.dist-info → orchestrator_core-4.0.0.dist-info}/WHEEL +0 -0
- {orchestrator_core-3.2.3.dist-info → orchestrator_core-4.0.0.dist-info}/licenses/LICENSE +0 -0
orchestrator/workflows/steps.py
CHANGED
|
@@ -11,22 +11,18 @@
|
|
|
11
11
|
# See the License for the specific language governing permissions and
|
|
12
12
|
# limitations under the License.
|
|
13
13
|
from copy import deepcopy
|
|
14
|
-
from typing import Any
|
|
15
|
-
from uuid import UUID
|
|
16
14
|
|
|
17
15
|
import structlog
|
|
18
16
|
from pydantic import ValidationError
|
|
19
17
|
|
|
20
18
|
from orchestrator.db import db
|
|
21
19
|
from orchestrator.db.models import ProcessSubscriptionTable
|
|
22
|
-
from orchestrator.domain.base import
|
|
20
|
+
from orchestrator.domain.base import SubscriptionModel
|
|
23
21
|
from orchestrator.services.settings import reset_search_index
|
|
24
|
-
from orchestrator.services.subscriptions import
|
|
22
|
+
from orchestrator.services.subscriptions import get_subscription
|
|
25
23
|
from orchestrator.targets import Target
|
|
26
24
|
from orchestrator.types import SubscriptionLifecycle
|
|
27
25
|
from orchestrator.utils.json import to_serializable
|
|
28
|
-
from orchestrator.utils.redis import delete_from_redis, to_redis
|
|
29
|
-
from orchestrator.websocket import sync_invalidate_subscription_cache
|
|
30
26
|
from orchestrator.workflow import Step, step
|
|
31
27
|
from pydantic_forms.types import State, UUIDstr
|
|
32
28
|
|
|
@@ -138,86 +134,6 @@ def set_status(status: SubscriptionLifecycle) -> Step:
|
|
|
138
134
|
return _set_status
|
|
139
135
|
|
|
140
136
|
|
|
141
|
-
@step("Remove domain model from cache")
|
|
142
|
-
def remove_domain_model_from_cache(
|
|
143
|
-
workflow_name: str, subscription: SubscriptionModel | None = None, subscription_id: UUID | None = None
|
|
144
|
-
) -> State:
|
|
145
|
-
"""Remove the domain model from the cache if it exists.
|
|
146
|
-
|
|
147
|
-
Args:
|
|
148
|
-
workflow_name: The workflow name
|
|
149
|
-
subscription: Subscription Model
|
|
150
|
-
subscription_id: The subscription id
|
|
151
|
-
|
|
152
|
-
Returns:
|
|
153
|
-
State
|
|
154
|
-
|
|
155
|
-
"""
|
|
156
|
-
|
|
157
|
-
if not (subscription or subscription_id):
|
|
158
|
-
logger.warning("No subscription found in this workflow", workflow_name=workflow_name)
|
|
159
|
-
return {"deleted_subscription_id": None}
|
|
160
|
-
if subscription:
|
|
161
|
-
delete_from_redis(subscription.subscription_id)
|
|
162
|
-
elif subscription_id:
|
|
163
|
-
delete_from_redis(subscription_id)
|
|
164
|
-
|
|
165
|
-
return {"deleted_subscription_id": subscription_id or subscription.subscription_id} # type: ignore[union-attr]
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
@step("Cache Subscription and related subscriptions")
|
|
169
|
-
def cache_domain_models(workflow_name: str, subscription: SubscriptionModel | None = None) -> State: # noqa: C901
|
|
170
|
-
"""Attempt to cache all Subscriptions once they have been touched once.
|
|
171
|
-
|
|
172
|
-
Args:
|
|
173
|
-
workflow_name: The Workflow Name
|
|
174
|
-
subscription: The Subscription if it exists.
|
|
175
|
-
|
|
176
|
-
Returns:
|
|
177
|
-
Returns State.
|
|
178
|
-
|
|
179
|
-
"""
|
|
180
|
-
cached_subscription_ids: set[UUID] = set()
|
|
181
|
-
if not subscription:
|
|
182
|
-
logger.warning("No subscription found in this workflow", workflow_name=workflow_name)
|
|
183
|
-
return {"cached_subscription_ids": cached_subscription_ids}
|
|
184
|
-
|
|
185
|
-
def _cache_other_subscriptions(product_block: ProductBlockModel) -> None:
|
|
186
|
-
for field in product_block.model_fields:
|
|
187
|
-
# subscription_instance is a ProductBlockModel or an arbitrary type
|
|
188
|
-
subscription_instance: ProductBlockModel | Any = getattr(product_block, field)
|
|
189
|
-
# If subscription_instance is a list, we need to step into it and loop.
|
|
190
|
-
if isinstance(subscription_instance, list):
|
|
191
|
-
for item in subscription_instance:
|
|
192
|
-
if isinstance(item, ProductBlockModel):
|
|
193
|
-
_cache_other_subscriptions(item)
|
|
194
|
-
|
|
195
|
-
# If subscription_instance is a ProductBlockModel check the owner_subscription_id to decide the cache
|
|
196
|
-
elif isinstance(subscription_instance, ProductBlockModel):
|
|
197
|
-
_cache_other_subscriptions(subscription_instance)
|
|
198
|
-
if not subscription_instance.owner_subscription_id == subscription.subscription_id:
|
|
199
|
-
cached_subscription_ids.add(subscription_instance.owner_subscription_id)
|
|
200
|
-
|
|
201
|
-
for field in subscription.model_fields:
|
|
202
|
-
# There always is a single Root Product Block, it cannot be a list, so no need to check.
|
|
203
|
-
instance: ProductBlockModel | Any = getattr(subscription, field)
|
|
204
|
-
if isinstance(instance, ProductBlockModel):
|
|
205
|
-
_cache_other_subscriptions(instance)
|
|
206
|
-
|
|
207
|
-
# Cache all the sub subscriptions
|
|
208
|
-
for subscription_id in cached_subscription_ids:
|
|
209
|
-
subscription_model = SubscriptionModel.from_subscription(subscription_id)
|
|
210
|
-
to_redis(build_extended_domain_model(subscription_model))
|
|
211
|
-
sync_invalidate_subscription_cache(subscription.subscription_id, invalidate_all=False)
|
|
212
|
-
|
|
213
|
-
# Cache the main subscription
|
|
214
|
-
to_redis(build_extended_domain_model(subscription))
|
|
215
|
-
cached_subscription_ids.add(subscription.subscription_id)
|
|
216
|
-
sync_invalidate_subscription_cache(subscription.subscription_id)
|
|
217
|
-
|
|
218
|
-
return {"cached_subscription_ids": cached_subscription_ids}
|
|
219
|
-
|
|
220
|
-
|
|
221
137
|
@step("Refresh subscription search index")
|
|
222
138
|
def refresh_subscription_search_index() -> State:
|
|
223
139
|
try:
|
|
@@ -22,7 +22,7 @@ from orchestrator.services.subscriptions import (
|
|
|
22
22
|
get_subscriptions_on_product_table_in_sync,
|
|
23
23
|
)
|
|
24
24
|
from orchestrator.services.workflows import (
|
|
25
|
-
|
|
25
|
+
get_validation_product_workflows_for_subscription,
|
|
26
26
|
start_validation_workflow_for_workflows,
|
|
27
27
|
)
|
|
28
28
|
from orchestrator.targets import Target
|
|
@@ -62,7 +62,7 @@ def validate_product_type(product_type: str) -> State:
|
|
|
62
62
|
subscriptions = get_subscriptions_on_product_table_in_sync()
|
|
63
63
|
|
|
64
64
|
for subscription in subscriptions:
|
|
65
|
-
system_product_workflows =
|
|
65
|
+
system_product_workflows = get_validation_product_workflows_for_subscription(
|
|
66
66
|
subscription=subscription,
|
|
67
67
|
)
|
|
68
68
|
|
|
@@ -105,13 +105,10 @@ def check_that_products_have_create_modify_and_terminate_workflows() -> State:
|
|
|
105
105
|
product_data = get_products(filters=[ProductTable.status == "active"])
|
|
106
106
|
|
|
107
107
|
workflows_not_complete: list = []
|
|
108
|
+
targets = ["CREATE", "TERMINATE", "MODIFY", "VALIDATE"]
|
|
108
109
|
for product in product_data:
|
|
109
|
-
workflows = {
|
|
110
|
-
|
|
111
|
-
for c in product.workflows
|
|
112
|
-
if c.target in ["CREATE", "TERMINATE", "MODIFY", "SYSTEM"] and c.name != "modify_note"
|
|
113
|
-
}
|
|
114
|
-
if len(workflows) < 4:
|
|
110
|
+
workflows = {c.target for c in product.workflows if c.target in targets and c.name != "modify_note"}
|
|
111
|
+
if len(workflows) < len(targets):
|
|
115
112
|
workflows_not_complete.append(product.name)
|
|
116
113
|
|
|
117
114
|
# Do not raise an error but only report it in the `State` to allow exceptions.
|
orchestrator/workflows/utils.py
CHANGED
|
@@ -24,16 +24,13 @@ from oauth2_lib.fastapi import OIDCUserModel
|
|
|
24
24
|
from orchestrator.db import ProductTable, SubscriptionTable, db
|
|
25
25
|
from orchestrator.forms.validators import ProductId
|
|
26
26
|
from orchestrator.services import subscriptions
|
|
27
|
-
from orchestrator.settings import app_settings
|
|
28
27
|
from orchestrator.targets import Target
|
|
29
28
|
from orchestrator.types import SubscriptionLifecycle
|
|
30
29
|
from orchestrator.utils.errors import StaleDataError
|
|
31
|
-
from orchestrator.utils.redis import caching_models_enabled
|
|
32
30
|
from orchestrator.utils.state import form_inject_args
|
|
33
31
|
from orchestrator.utils.validate_data_version import validate_data_version
|
|
34
|
-
from orchestrator.workflow import Step, StepList, Workflow, begin,
|
|
32
|
+
from orchestrator.workflow import Step, StepList, Workflow, begin, done, init, make_workflow, step
|
|
35
33
|
from orchestrator.workflows.steps import (
|
|
36
|
-
cache_domain_models,
|
|
37
34
|
refresh_subscription_search_index,
|
|
38
35
|
resync,
|
|
39
36
|
set_status,
|
|
@@ -198,8 +195,6 @@ modify_initial_input_form_generator = None
|
|
|
198
195
|
|
|
199
196
|
validate_initial_input_form_generator = wrap_modify_initial_input_form(modify_initial_input_form_generator)
|
|
200
197
|
|
|
201
|
-
push_domain_models = conditional(lambda _: caching_models_enabled())
|
|
202
|
-
|
|
203
198
|
|
|
204
199
|
def create_workflow(
|
|
205
200
|
description: str,
|
|
@@ -228,7 +223,6 @@ def create_workflow(
|
|
|
228
223
|
>> (additional_steps or StepList())
|
|
229
224
|
>> set_status(status)
|
|
230
225
|
>> resync
|
|
231
|
-
>> push_domain_models(cache_domain_models)
|
|
232
226
|
>> refresh_subscription_search_index
|
|
233
227
|
>> done
|
|
234
228
|
)
|
|
@@ -270,11 +264,9 @@ def modify_workflow(
|
|
|
270
264
|
init
|
|
271
265
|
>> store_process_subscription(Target.MODIFY)
|
|
272
266
|
>> unsync
|
|
273
|
-
>> push_domain_models(cache_domain_models)
|
|
274
267
|
>> f()
|
|
275
268
|
>> (additional_steps or StepList())
|
|
276
269
|
>> resync
|
|
277
|
-
>> push_domain_models(cache_domain_models)
|
|
278
270
|
>> refresh_subscription_search_index
|
|
279
271
|
>> done
|
|
280
272
|
)
|
|
@@ -316,12 +308,10 @@ def terminate_workflow(
|
|
|
316
308
|
init
|
|
317
309
|
>> store_process_subscription(Target.TERMINATE)
|
|
318
310
|
>> unsync
|
|
319
|
-
>> push_domain_models(cache_domain_models)
|
|
320
311
|
>> f()
|
|
321
312
|
>> (additional_steps or StepList())
|
|
322
313
|
>> set_status(SubscriptionLifecycle.TERMINATED)
|
|
323
314
|
>> resync
|
|
324
|
-
>> push_domain_models(cache_domain_models)
|
|
325
315
|
>> refresh_subscription_search_index
|
|
326
316
|
>> done
|
|
327
317
|
)
|
|
@@ -352,19 +342,9 @@ def validate_workflow(description: str) -> Callable[[Callable[[], StepList]], Wo
|
|
|
352
342
|
"""
|
|
353
343
|
|
|
354
344
|
def _validate_workflow(f: Callable[[], StepList]) -> Workflow:
|
|
355
|
-
|
|
356
|
-
steplist = (
|
|
357
|
-
init
|
|
358
|
-
>> store_process_subscription(Target.SYSTEM)
|
|
359
|
-
>> unsync_unchecked
|
|
360
|
-
>> push_subscriptions(cache_domain_models)
|
|
361
|
-
>> f()
|
|
362
|
-
>> resync
|
|
363
|
-
>> push_subscriptions(cache_domain_models)
|
|
364
|
-
>> done
|
|
365
|
-
)
|
|
345
|
+
steplist = init >> store_process_subscription(Target.SYSTEM) >> unsync_unchecked >> f() >> resync >> done
|
|
366
346
|
|
|
367
|
-
return make_workflow(f, description, validate_initial_input_form_generator, Target.
|
|
347
|
+
return make_workflow(f, description, validate_initial_input_form_generator, Target.VALIDATE, steplist)
|
|
368
348
|
|
|
369
349
|
return _validate_workflow
|
|
370
350
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orchestrator-core
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0.0
|
|
4
4
|
Summary: This is the orchestrator workflow engine.
|
|
5
5
|
Requires-Python: >=3.11,<3.14
|
|
6
6
|
Classifier: Intended Audience :: Information Technology
|
|
@@ -35,30 +35,31 @@ Requires-Dist: deprecated
|
|
|
35
35
|
Requires-Dist: deepmerge==2.0
|
|
36
36
|
Requires-Dist: fastapi~=0.115.2
|
|
37
37
|
Requires-Dist: fastapi-etag==0.4.0
|
|
38
|
-
Requires-Dist: more-itertools~=10.
|
|
38
|
+
Requires-Dist: more-itertools~=10.7.0
|
|
39
39
|
Requires-Dist: itsdangerous
|
|
40
40
|
Requires-Dist: Jinja2==3.1.6
|
|
41
|
-
Requires-Dist: orjson==3.10.
|
|
41
|
+
Requires-Dist: orjson==3.10.18
|
|
42
|
+
Requires-Dist: prometheus-client==0.21.1
|
|
42
43
|
Requires-Dist: psycopg2-binary==2.9.10
|
|
43
44
|
Requires-Dist: pydantic[email]~=2.8.2
|
|
44
|
-
Requires-Dist: pydantic-settings~=2.
|
|
45
|
+
Requires-Dist: pydantic-settings~=2.9.1
|
|
45
46
|
Requires-Dist: python-dateutil==2.8.2
|
|
46
47
|
Requires-Dist: python-rapidjson>=1.18,<1.21
|
|
47
48
|
Requires-Dist: pytz==2025.2
|
|
48
49
|
Requires-Dist: redis==5.1.1
|
|
49
50
|
Requires-Dist: schedule==1.1.0
|
|
50
51
|
Requires-Dist: semver==3.0.4
|
|
51
|
-
Requires-Dist: sentry-sdk[fastapi]~=2.
|
|
52
|
-
Requires-Dist: SQLAlchemy==2.0.
|
|
52
|
+
Requires-Dist: sentry-sdk[fastapi]~=2.28.0
|
|
53
|
+
Requires-Dist: SQLAlchemy==2.0.41
|
|
53
54
|
Requires-Dist: SQLAlchemy-Utils==0.41.2
|
|
54
55
|
Requires-Dist: structlog
|
|
55
|
-
Requires-Dist: typer==0.15.
|
|
56
|
+
Requires-Dist: typer==0.15.4
|
|
56
57
|
Requires-Dist: uvicorn[standard]~=0.34.0
|
|
57
58
|
Requires-Dist: nwa-stdlib~=1.9.0
|
|
58
59
|
Requires-Dist: oauth2-lib~=2.4.0
|
|
59
60
|
Requires-Dist: tabulate==0.9.0
|
|
60
61
|
Requires-Dist: strawberry-graphql>=0.246.2
|
|
61
|
-
Requires-Dist: pydantic-forms>=1.4.0, <=2.
|
|
62
|
+
Requires-Dist: pydantic-forms>=1.4.0, <=2.1.0
|
|
62
63
|
Requires-Dist: celery~=5.5.1 ; extra == "celery"
|
|
63
64
|
Requires-Dist: toml ; extra == "dev"
|
|
64
65
|
Requires-Dist: bumpversion ; extra == "dev"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
orchestrator/__init__.py,sha256=
|
|
2
|
-
orchestrator/app.py,sha256=
|
|
1
|
+
orchestrator/__init__.py,sha256=ey2nWHqiWSQXMSb8wHhOS7MI0YPtdHR8g9RnbuMDd98,1063
|
|
2
|
+
orchestrator/app.py,sha256=7UrXKjBKNSEaSSXAd5ww_RdMFhFqE4yvfj8faS2MzAA,12089
|
|
3
3
|
orchestrator/exception_handlers.py,sha256=UsW3dw8q0QQlNLcV359bIotah8DYjMsj2Ts1LfX4ClY,1268
|
|
4
4
|
orchestrator/log_config.py,sha256=1tPRX5q65e57a6a_zEii_PFK8SzWT0mnA5w2sKg4hh8,1853
|
|
5
5
|
orchestrator/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
orchestrator/security.py,sha256=iXFxGxab54aav7oHEKLAVkTgrQMJGHy6IYLojEnD7gI,2422
|
|
7
|
-
orchestrator/settings.py,sha256=
|
|
8
|
-
orchestrator/targets.py,sha256=
|
|
7
|
+
orchestrator/settings.py,sha256=ep4RXOIZfYb5ws4qT_E_iiANMQR91pvOhQQCv1t8osw,3879
|
|
8
|
+
orchestrator/targets.py,sha256=WizBgnp8hWX9YLFUIju7ewSubiwQqinCvyiYNcXHbHI,802
|
|
9
9
|
orchestrator/types.py,sha256=qzs7xx5AYRmKbpYRyJJP3wuDb0W0bcAzefCN0RWLAco,15459
|
|
10
10
|
orchestrator/version.py,sha256=b58e08lxs47wUNXv0jXFO_ykpksmytuzEXD4La4W-NQ,1366
|
|
11
11
|
orchestrator/workflow.py,sha256=T_3Z1PrlF70C16ehAthKRF1hd3jpwV-MREDVxSLfxOw,44063
|
|
@@ -21,9 +21,9 @@ orchestrator/api/api_v1/endpoints/processes.py,sha256=i5GRoszvdmpZqOxSqON83DNuc0
|
|
|
21
21
|
orchestrator/api/api_v1/endpoints/product_blocks.py,sha256=kZ6ywIOsS_S2qGq7RvZ4KzjvaS1LmwbGWR37AKRvWOw,2146
|
|
22
22
|
orchestrator/api/api_v1/endpoints/products.py,sha256=BfFtwu9dZXEQbtKxYj9icc73GKGvAGMR5ytyf41nQlQ,3081
|
|
23
23
|
orchestrator/api/api_v1/endpoints/resource_types.py,sha256=gGyuaDyOD0TAVoeFGaGmjDGnQ8eQQArOxKrrk4MaDzA,2145
|
|
24
|
-
orchestrator/api/api_v1/endpoints/settings.py,sha256=
|
|
25
|
-
orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py,sha256=
|
|
26
|
-
orchestrator/api/api_v1/endpoints/subscriptions.py,sha256=
|
|
24
|
+
orchestrator/api/api_v1/endpoints/settings.py,sha256=orcwFqGiQ3Ala3mLm_27ChXPkUFoGUeGNaDZnEIk2Ak,5848
|
|
25
|
+
orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py,sha256=1_6LtgQleoq3M6z_W-Qz__Bj3OFUweoPrUqHMwSH6AM,3288
|
|
26
|
+
orchestrator/api/api_v1/endpoints/subscriptions.py,sha256=V-ebvjtFEKlALx8SKX42SiNPM-GAgSMWbuaimyktUQQ,8758
|
|
27
27
|
orchestrator/api/api_v1/endpoints/translations.py,sha256=dIWh_fCnZZUxJoGiNeJ49DK_xpf75IpR_0EIMSvzIvY,963
|
|
28
28
|
orchestrator/api/api_v1/endpoints/user.py,sha256=RyI32EXVu6I-IxWjz0XB5zQWzzLL60zKXLgLqLH02xU,1827
|
|
29
29
|
orchestrator/api/api_v1/endpoints/workflows.py,sha256=_0vhGiQeu3-z16Zi0WmuDWBs8gmed6BzRNwYH_sF6AY,1977
|
|
@@ -33,8 +33,8 @@ orchestrator/cli/database.py,sha256=qig-WqUtiDITz4KePxzcqZtC0FPTWRs_3l19qQpqIGA,
|
|
|
33
33
|
orchestrator/cli/generate.py,sha256=SBaYfRijXPF9r3VxarPKTiDzDcB6GBMMQvecQIb_ZLQ,7377
|
|
34
34
|
orchestrator/cli/main.py,sha256=GC_kxa9OZ-Y0ig_klfWc6ysOQuPVTUmTmDRj3m8cJHA,983
|
|
35
35
|
orchestrator/cli/migrate_domain_models.py,sha256=OhjNuIheytgShpMYCZ18leNUzk17ExhtkCqx7Ww03R8,20371
|
|
36
|
-
orchestrator/cli/migrate_tasks.py,sha256=
|
|
37
|
-
orchestrator/cli/migrate_workflows.py,sha256
|
|
36
|
+
orchestrator/cli/migrate_tasks.py,sha256=bju8XColjSZD0v3rS4kl-24dLr8En_H4-6enBmqd494,7255
|
|
37
|
+
orchestrator/cli/migrate_workflows.py,sha256=nxUpx0vgEIc_8aJrjAyrw3E9Dt8JmaamTts8oiQ4vHY,8923
|
|
38
38
|
orchestrator/cli/migration_helpers.py,sha256=C5tpkP5WEBr7G9S-1k1hgSI8ili6xd9Z5ygc9notaK0,4110
|
|
39
39
|
orchestrator/cli/scheduler.py,sha256=iCKBWYUwQIYTDqKQ9rMVvs2sNiAzE-J2SkV170TPP2g,1896
|
|
40
40
|
orchestrator/cli/domain_gen_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -83,7 +83,7 @@ orchestrator/cli/generator/templates/lazy_workflow_instance.j2,sha256=BYB6LwE19O
|
|
|
83
83
|
orchestrator/cli/generator/templates/list_definitions.j2,sha256=XS-F5XXy4HOdsZ-xahprwxfhU0UaiF4VeopkIxfoado,277
|
|
84
84
|
orchestrator/cli/generator/templates/macros.j2,sha256=fEODRym4gLfL40w9OelXFMDtAjtzmN5nccWDk86oTNI,904
|
|
85
85
|
orchestrator/cli/generator/templates/modify_product.j2,sha256=M1WDMmPwfXpUcuZUa-H5GnlKAr1t_xCQliLa66FI-YU,5057
|
|
86
|
-
orchestrator/cli/generator/templates/new_product_migration.j2,sha256=
|
|
86
|
+
orchestrator/cli/generator/templates/new_product_migration.j2,sha256=XTeOmv8nVNfGXx6pfSGVwRk282Xx3lnw-7bkpHkd-Tk,3128
|
|
87
87
|
orchestrator/cli/generator/templates/product.j2,sha256=gcN1poWRuGWbsLrQv0Z8SXO6MGuXBHBr33UvQtqsF8E,1241
|
|
88
88
|
orchestrator/cli/generator/templates/product_block.j2,sha256=X5ynyBG39UiYekPHms7IkSHmxq2j-2OrhAYsFaRqktU,2454
|
|
89
89
|
orchestrator/cli/generator/templates/shared_forms.j2,sha256=tXbauuMMExwHLYLJVkmAJ74SSFriXlwpOyd04jwWE0k,545
|
|
@@ -106,7 +106,7 @@ orchestrator/db/database.py,sha256=MU_w_e95ho2dVb2JDnt_KFYholx___XDkiQXbc8wCkI,1
|
|
|
106
106
|
orchestrator/db/helpers.py,sha256=L8kEdnSSNGnUpZhdeGx2arCodakWN8vSpKdfjoLuHdY,831
|
|
107
107
|
orchestrator/db/listeners.py,sha256=UBPYcH0FE3a7aZQu_D0O_JMXpXIRYXC0gjSAvlv5GZo,1142
|
|
108
108
|
orchestrator/db/loaders.py,sha256=ez6JzQ3IKVkC_oLAkVlIIiI8Do7hXbdcPKCvUSLxRog,7962
|
|
109
|
-
orchestrator/db/models.py,sha256=
|
|
109
|
+
orchestrator/db/models.py,sha256=92lkqI4u3Si2tEMSTnMb5Uv08CSjqkgotgyEYqLvFeI,27302
|
|
110
110
|
orchestrator/db/filters/__init__.py,sha256=RUj6P0XxEBhYj0SN5wH5-Vf_Wt_ilZR_n9DSar5m9oM,371
|
|
111
111
|
orchestrator/db/filters/filters.py,sha256=55RtpQwM2rhrk4A6CCSeSXoo-BT9GnQoNTryA8CtLEg,5020
|
|
112
112
|
orchestrator/db/filters/process.py,sha256=xvGhyfo_MZ1xhLvFC6yULjcT4mJk0fKc1glJIYgsWLE,4018
|
|
@@ -142,9 +142,9 @@ orchestrator/distlock/managers/__init__.py,sha256=ImIkNsrXcyE7-NgRWqEhUXUuUzda9K
|
|
|
142
142
|
orchestrator/distlock/managers/memory_distlock_manager.py,sha256=HWQafcVKBF-Cka_wukZZ1GM69AWPVOpJPje3quIebQ8,3114
|
|
143
143
|
orchestrator/distlock/managers/redis_distlock_manager.py,sha256=DXtMhC8qtxiFO6xU9qYXHZQnCLjlmGBpeyfLA0vbRP0,3369
|
|
144
144
|
orchestrator/domain/__init__.py,sha256=20DhXQPKY0g3rTgCkRlNDY58sLviToOVF8NPoex9WJc,936
|
|
145
|
-
orchestrator/domain/base.py,sha256=
|
|
145
|
+
orchestrator/domain/base.py,sha256=jjMxJvt0GyaTff_z490lmkqDCtitkh0oA4GygB60n4s,69939
|
|
146
146
|
orchestrator/domain/context_cache.py,sha256=vT1a01MBSBIaokoShK9KwjItd7abNmz7cXaF67VRZK8,2508
|
|
147
|
-
orchestrator/domain/customer_description.py,sha256=
|
|
147
|
+
orchestrator/domain/customer_description.py,sha256=RU_pcgCIZjjFfDsY45lfV0z6ATlS1NXtB0E7eH3UcYQ,3190
|
|
148
148
|
orchestrator/domain/helpers.py,sha256=D9O2duhCAZGmm39u-9ggvU-X2JsCbIS607kF77-r8QM,2549
|
|
149
149
|
orchestrator/domain/lifecycle.py,sha256=kGR0AFVOSUBlzdhgRr11CUnF26wbBYIjz8uKb_qPCg0,2922
|
|
150
150
|
orchestrator/domain/subscription_instance_transform.py,sha256=j_d49dFcSss0dl-BHS-ev2faLbE0y8hLvCfrzui6C74,4360
|
|
@@ -165,7 +165,7 @@ orchestrator/graphql/extensions/model_cache.py,sha256=1uhMRjBs9eK7zJ1Y6P6BopX068
|
|
|
165
165
|
orchestrator/graphql/extensions/stats.py,sha256=pGhEBQg45XvqZhRobcrCSGwt5AGmR3gflsm1dYiIg5g,2018
|
|
166
166
|
orchestrator/graphql/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
167
|
orchestrator/graphql/loaders/subscriptions.py,sha256=31zE2WC7z-tPIUmVpU1QWOJvNbLvF7sYgY7JAQ6OPJg,1856
|
|
168
|
-
orchestrator/graphql/mutations/customer_description.py,sha256=
|
|
168
|
+
orchestrator/graphql/mutations/customer_description.py,sha256=zm_X1yvWl4qC97_rYUYSF-1q1gFrQX6fDrzQKhguDYs,3359
|
|
169
169
|
orchestrator/graphql/mutations/start_process.py,sha256=8vLVvmBwL1ujbZJoI_8YE3VAgI-J2RTzgrTZJC8THZ4,1576
|
|
170
170
|
orchestrator/graphql/resolvers/__init__.py,sha256=EEw9NO4LAryfrpkLlgsNQ9rytKd0usBDx95OURRV6sg,1031
|
|
171
171
|
orchestrator/graphql/resolvers/customer.py,sha256=tq06MtMoaqFwqn3YQvSv0VmROW7QJZRJp1ykO4tUhck,934
|
|
@@ -202,13 +202,18 @@ orchestrator/graphql/utils/get_subscription_product_blocks.py,sha256=NReel2uZuir
|
|
|
202
202
|
orchestrator/graphql/utils/is_query_detailed.py,sha256=ESQiM8OyhGF5vEE__cLV61oEIfnFvznoNCxi02rMTsE,2156
|
|
203
203
|
orchestrator/graphql/utils/override_class.py,sha256=blwPXVHxLyXQga3KjiDzWozmMhHEWNrhLL_GDmoj6y0,1373
|
|
204
204
|
orchestrator/graphql/utils/to_graphql_result_page.py,sha256=8ObkJP8reVf-TQOQVPKv1mNdfmSEMS1sG7s_-T7-pUU,902
|
|
205
|
+
orchestrator/metrics/__init__.py,sha256=onGOGku3DPlD6yylljxNYd9ztdsFzK31i3L1zdhOSAQ,171
|
|
206
|
+
orchestrator/metrics/engine.py,sha256=dfpMrKWXNL_5J8zYjH2voOYLx5cZOpGgkz8VsiYF8sg,1708
|
|
207
|
+
orchestrator/metrics/init.py,sha256=xBITvDjbNf-iabbBg0tAW8TPj6-wzr_MerOOqgDsoS4,608
|
|
208
|
+
orchestrator/metrics/processes.py,sha256=SyogN5NSuhYoRv2CSUE1So9e8Gkrwa71J6oGLOdODQU,5333
|
|
209
|
+
orchestrator/metrics/subscriptions.py,sha256=vC1O8VmTq5oJxNrn5CU99Rf8cxzdyhc7tXbZBSAU-O8,3036
|
|
205
210
|
orchestrator/migrations/README,sha256=heMzebYwlGhnE8_4CWJ4LS74WoEZjBy-S-mIJRxAEKI,39
|
|
206
211
|
orchestrator/migrations/alembic.ini,sha256=kMoADqhGeubU8xanILNaqm4oixLy9m4ngYtdGpZcc7I,873
|
|
207
212
|
orchestrator/migrations/env.py,sha256=M_cPoAL2axuuup5fvMy8I_WTPHEw0RbPEHkhZ3QEGoE,3740
|
|
208
|
-
orchestrator/migrations/helpers.py,sha256=
|
|
213
|
+
orchestrator/migrations/helpers.py,sha256=xwi1Z-0MMZJ1Bk-HXkb6f_RU7BmO3ajK5a4qqO94elc,44068
|
|
209
214
|
orchestrator/migrations/script.py.mako,sha256=607Zrgp-Z-m9WGLt4wewN1QDOmHeifxcePUdADkSZyM,510
|
|
210
|
-
orchestrator/migrations/templates/alembic.ini.j2,sha256=
|
|
211
|
-
orchestrator/migrations/templates/env.py.j2,sha256=
|
|
215
|
+
orchestrator/migrations/templates/alembic.ini.j2,sha256=8v7UbKvOiWEbEKQa-Au3uONKUuYx6aflulYanZX6r2I,883
|
|
216
|
+
orchestrator/migrations/templates/env.py.j2,sha256=LIt0ildZTZvNEx3imhy4GNzfFi_rPZg-8H7rGgrBOP8,2717
|
|
212
217
|
orchestrator/migrations/templates/helpers.py.j2,sha256=3MWNMICGrcQFObyBQefL-FPjoVKUgP0QIlbk4TdMZds,98
|
|
213
218
|
orchestrator/migrations/versions/schema/2020-10-19_3323bcb934e7_fix_tsv_triggers.py,sha256=ufe6OFUELNpx6N2663bvdwgB4lP-v71fuMuJtx9CmJc,2698
|
|
214
219
|
orchestrator/migrations/versions/schema/2020-10-19_a76b9185b334_add_generic_workflows_to_core.py,sha256=EHj87IXucruyB8KuxEWcc7JK1NIizZ5Jzmj-bzY0t1Y,1265
|
|
@@ -231,15 +236,17 @@ orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_
|
|
|
231
236
|
orchestrator/migrations/versions/schema/2025-01-08_4c5859620539_add_version_column_to_subscription.py,sha256=xAhe74U0ZiVRo9Z8Uq7491RBbATMMUnYpTBjbG-BYL0,1690
|
|
232
237
|
orchestrator/migrations/versions/schema/2025-01-19_4fjdn13f83ga_add_validate_product_type_task.py,sha256=O0GfCISIDnyohGf3Ot_2HKedGRbMqLVox6t7Wd3PMvo,894
|
|
233
238
|
orchestrator/migrations/versions/schema/2025-02-12_bac6be6f2b4f_added_input_state_table.py,sha256=RZpLkWP1yekeZ68feO5v4LZYluKvnnIKRNDCE4tI9HM,1753
|
|
239
|
+
orchestrator/migrations/versions/schema/2025-02-20_68d14db1b8da_make_workflow_description_mandatory.py,sha256=uh5J2bR_UERqlNrDjDBSfiAdEfI9YQzgR9-t9ordFOo,847
|
|
234
240
|
orchestrator/migrations/versions/schema/2025-03-06_42b3d076a85b_subscription_instance_as_json_function.py,sha256=jtwDFOh-NlE31aH5dFmbynb23TZN6Mkzevxx-KLP7KE,776
|
|
235
241
|
orchestrator/migrations/versions/schema/2025-03-06_42b3d076a85b_subscription_instance_as_json_function.sql,sha256=hPldk0DAesUbHv3Qd_N7U-cAk-t1wIgxt4FOA120gQ8,1776
|
|
236
242
|
orchestrator/migrations/versions/schema/2025-04-09_fc5c993a4b4a_add_cascade_constraint_on_processes_.py,sha256=6kHRNSZxUze2jy7b8uRvkt5mzsax10Z-Z3lsACtPLRM,1067
|
|
243
|
+
orchestrator/migrations/versions/schema/2025-05-08_161918133bec_add_is_task_to_workflow.py,sha256=VLFDHFYRWn5ktUba0KuSPWyvjYJdfN1WypWmOPqIW18,721
|
|
237
244
|
orchestrator/schedules/__init__.py,sha256=JnnaglfK1qYUBKI6Dd9taV-tCZIPlAdAkHtnkJDMXxY,1066
|
|
238
245
|
orchestrator/schedules/resume_workflows.py,sha256=kSotzTAXjX7p9fpSYiGOpuxuTQfv54eRFAe0YSG0DHc,832
|
|
239
246
|
orchestrator/schedules/scheduling.py,sha256=ehtwgpbvMOk1jhn-hHgVzg_9wLJkI6l3mRY3DcO9ZVY,1526
|
|
240
247
|
orchestrator/schedules/task_vacuum.py,sha256=eovnuKimU8SFRw1IF62MsAVFSdgeeV1u57kapUbz8As,821
|
|
241
248
|
orchestrator/schedules/validate_products.py,sha256=YMr7ASSqdXM6pd6oZu0kr8mfmH8If16MzprrsHdN_ZU,1234
|
|
242
|
-
orchestrator/schedules/validate_subscriptions.py,sha256=
|
|
249
|
+
orchestrator/schedules/validate_subscriptions.py,sha256=9SYvsn4BJ5yo_1nu555hWjl5XffTx7QMaRhH5oOjM9E,2042
|
|
243
250
|
orchestrator/schemas/__init__.py,sha256=YDyZ0YBvzB4ML9oDBCBPGnBvf680zFFgUzg7X0tYBRY,2326
|
|
244
251
|
orchestrator/schemas/base.py,sha256=Vc444LetsINLRhG2SxW9Bq01hOzChPOhQWCImQTr-As,930
|
|
245
252
|
orchestrator/schemas/engine_settings.py,sha256=LF8al7tJssiilb5A4emPtUYo0tVDSaT1Lvo_DN_ttrY,1296
|
|
@@ -251,21 +258,21 @@ orchestrator/schemas/product_block.py,sha256=kCqvm6qadHpegMr9aWI_fYX-T7mS-5S-ldP
|
|
|
251
258
|
orchestrator/schemas/resource_type.py,sha256=VDju4XywcDDLxdpbWU62RTvR9QF8x_GRrpTlN_NE8uI,1064
|
|
252
259
|
orchestrator/schemas/subscription.py,sha256=-jXyHZIed9Xlia18ksSDyenblNN6Q2yM2FlGELyJ458,3423
|
|
253
260
|
orchestrator/schemas/subscription_descriptions.py,sha256=Ft_jw1U0bf9Z0U8O4OWfLlcl0mXCVT_qYVagBP3GbIQ,1262
|
|
254
|
-
orchestrator/schemas/workflow.py,sha256=
|
|
261
|
+
orchestrator/schemas/workflow.py,sha256=VqQ9XfV4fVd6MjY0LRRQzWBJHmlPsAamWfTwDx1cZkg,2102
|
|
255
262
|
orchestrator/services/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
|
|
256
|
-
orchestrator/services/celery.py,sha256=
|
|
263
|
+
orchestrator/services/celery.py,sha256=SmAUsN755yE7cZ3og92qTvPPeRIpdEKlbaLih7o38h8,5089
|
|
257
264
|
orchestrator/services/fixed_inputs.py,sha256=kyz7s2HLzyDulvcq-ZqefTw1om86COvyvTjz0_5CmgI,876
|
|
258
265
|
orchestrator/services/input_state.py,sha256=HF7wl9fWdaAW8pdCCqbuYoKyNj8dY0g8Ff8vXis8z5A,2211
|
|
259
266
|
orchestrator/services/process_broadcast_thread.py,sha256=D44YbjF8mRqGuznkRUV4SoRn1J0lfy_x1H508GnSVlU,4649
|
|
260
|
-
orchestrator/services/processes.py,sha256=
|
|
267
|
+
orchestrator/services/processes.py,sha256=rTH6zLNsun3qDCPguz2LYS87MQR_LJREIPrgkGS6kwk,30494
|
|
261
268
|
orchestrator/services/products.py,sha256=BP4KyE8zO-8z7Trrs5T6zKBOw53S9BfBJnHWI3p6u5Y,1943
|
|
262
269
|
orchestrator/services/resource_types.py,sha256=_QBy_JOW_X3aSTqH0CuLrq4zBJL0p7Q-UDJUcuK2_qc,884
|
|
263
|
-
orchestrator/services/settings.py,sha256=
|
|
270
|
+
orchestrator/services/settings.py,sha256=HEWfFulgoEDwgfxGEO__QTr5fDiwNBEj1UhAeTAdbLQ,3159
|
|
264
271
|
orchestrator/services/subscription_relations.py,sha256=9C126TUfFvyBe7y4x007kH_dvxJ9pZ1zSnaWeH6HC5k,12261
|
|
265
|
-
orchestrator/services/subscriptions.py,sha256=
|
|
272
|
+
orchestrator/services/subscriptions.py,sha256=nr2HI89nC0lYjzTh2j-lEQ5cPQK43LNZv3gvP6jbepw,27189
|
|
266
273
|
orchestrator/services/tasks.py,sha256=NjPkuauQoh9UJDcjA7OcKFgPk0i6NoKdDO7HlpGbBJ8,6575
|
|
267
274
|
orchestrator/services/translations.py,sha256=GyP8soUFGej8AS8uulBsk10CCK6Kwfjv9AHMFm3ElQY,1713
|
|
268
|
-
orchestrator/services/workflows.py,sha256=
|
|
275
|
+
orchestrator/services/workflows.py,sha256=iEkt2OBuTwkDru4V6ZSKatnw0b96ZdPV-VQqeZ9EOgU,4015
|
|
269
276
|
orchestrator/utils/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
|
|
270
277
|
orchestrator/utils/crypt.py,sha256=18eNamYWMllPkxyRtWIde3FDr3rSF74R5SAL6WsCj9Y,5584
|
|
271
278
|
orchestrator/utils/datetime.py,sha256=a1WQ_yvu7MA0TiaRpC5avwbOSFdrj4eMrV4a7I2sD5Q,1477
|
|
@@ -275,11 +282,11 @@ orchestrator/utils/enrich_process.py,sha256=o_QSy5Q4wn1SMHhzVOw6bp7uhDXr7GhAIWRD
|
|
|
275
282
|
orchestrator/utils/errors.py,sha256=6FxvXrITmRjP5bYnJJ3CxjAwA5meNjRAVYouz4TWKkU,4653
|
|
276
283
|
orchestrator/utils/fixed_inputs.py,sha256=pnL6I_19VMp_Bny8SYjSzVFNvTFDyeCxFFOWGhTnDiQ,2665
|
|
277
284
|
orchestrator/utils/functional.py,sha256=X1MDNwHmkU3-8mFb21m31HGlcfc5TygliXR0sXN3-rU,8304
|
|
278
|
-
orchestrator/utils/get_subscription_dict.py,sha256=
|
|
285
|
+
orchestrator/utils/get_subscription_dict.py,sha256=hctkFvD3U6LpygNwz2uesRMdnXSY-PaohBqPATsi9r4,694
|
|
279
286
|
orchestrator/utils/get_updated_properties.py,sha256=egVZ0R5LNJ4e51Z8SXlU8cmb4tXxG-xb1d7OKwh-7xI,1322
|
|
280
287
|
orchestrator/utils/helpers.py,sha256=NjUF3IvWdnLulliP8-JQvGGGpHrh0vs0Vm092ynw-ss,3212
|
|
281
288
|
orchestrator/utils/json.py,sha256=7386sdqkrKYyy4sbn5NscwctH_v1hLyw5172P__rU3g,8341
|
|
282
|
-
orchestrator/utils/redis.py,sha256=
|
|
289
|
+
orchestrator/utils/redis.py,sha256=BjUNmrKx8YVyJIucl2mhXubK6WV-49OnAU6rPMOZpM0,4469
|
|
283
290
|
orchestrator/utils/redis_client.py,sha256=9rhsvedjK_CyClAjUicQyge0mVIViATqKFGZyjBY3XA,1384
|
|
284
291
|
orchestrator/utils/search_query.py,sha256=ji5LHtrzohGz6b1IG41cnPdpWXzLEzz4SGWgHly_yfU,16205
|
|
285
292
|
orchestrator/utils/state.py,sha256=RYKVlvKDBfsBdDk9wHjZKBTlQJbV4SqtCotAlTA2-bI,14021
|
|
@@ -290,17 +297,17 @@ orchestrator/websocket/websocket_manager.py,sha256=hwlG9FDXcNU42jDNNsPMQLIyrvEpG
|
|
|
290
297
|
orchestrator/websocket/managers/broadcast_websocket_manager.py,sha256=fwoSgTjkHJ2GmsLTU9dqQpAA9i8b1McPu7gLNzxtfG4,5401
|
|
291
298
|
orchestrator/websocket/managers/memory_websocket_manager.py,sha256=lF5EEx1iFMCGEkTbItTDr88NENMSaSeG1QrJ7teoPkY,3324
|
|
292
299
|
orchestrator/workflows/__init__.py,sha256=NzIGGI-8SNAwCk2YqH6sHhEWbgAY457ntDwjO15N8v4,4131
|
|
293
|
-
orchestrator/workflows/modify_note.py,sha256=
|
|
300
|
+
orchestrator/workflows/modify_note.py,sha256=l6QtijRPv8gnHxzwTz_4nWIPcZ0FcKQh_yFbtjYEDMg,2163
|
|
294
301
|
orchestrator/workflows/removed_workflow.py,sha256=V0Da5TEdfLdZZKD38ig-MTp3_IuE7VGqzHHzvPYQmLI,909
|
|
295
|
-
orchestrator/workflows/steps.py,sha256=
|
|
296
|
-
orchestrator/workflows/utils.py,sha256=
|
|
302
|
+
orchestrator/workflows/steps.py,sha256=ulpheoHaCOE1qh71Bja4KW4pItQh1Z6q4QU4tn5GtNk,6067
|
|
303
|
+
orchestrator/workflows/utils.py,sha256=yBwfITlseimyLEzbwI0ehOAlr-xI1N3WGVudFz4boXk,13778
|
|
297
304
|
orchestrator/workflows/tasks/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
|
|
298
305
|
orchestrator/workflows/tasks/cleanup_tasks_log.py,sha256=BfWYbPXhnLAHUJ0mlODDnjZnQQAvKCZJDVTwbwOWI04,1624
|
|
299
306
|
orchestrator/workflows/tasks/resume_workflows.py,sha256=MzJqlSXUvKStkT7NGzxZyRlfAer_ezYm-kjUqaZi0yc,2359
|
|
300
|
-
orchestrator/workflows/tasks/validate_product_type.py,sha256=
|
|
301
|
-
orchestrator/workflows/tasks/validate_products.py,sha256=
|
|
307
|
+
orchestrator/workflows/tasks/validate_product_type.py,sha256=paG-NAY1bdde3Adt8zItkcBKf5Pxw6f5ngGW6an6dYU,3192
|
|
308
|
+
orchestrator/workflows/tasks/validate_products.py,sha256=GZJBoFF-WMphS7ghMs2-gqvV2iL1F0POhk0uSNt93n0,8510
|
|
302
309
|
orchestrator/workflows/translations/en-GB.json,sha256=ST53HxkphFLTMjFHonykDBOZ7-P_KxksktZU3GbxLt0,846
|
|
303
|
-
orchestrator_core-
|
|
304
|
-
orchestrator_core-
|
|
305
|
-
orchestrator_core-
|
|
306
|
-
orchestrator_core-
|
|
310
|
+
orchestrator_core-4.0.0.dist-info/licenses/LICENSE,sha256=b-aA5OZQuuBATmLKo_mln8CQrDPPhg3ghLzjPjLn4Tg,11409
|
|
311
|
+
orchestrator_core-4.0.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
312
|
+
orchestrator_core-4.0.0.dist-info/METADATA,sha256=lBgH0anclehbueI9Y4jCsk3DOdkFtWJ3Vs6l7TpBHXA,5070
|
|
313
|
+
orchestrator_core-4.0.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|