orchestrator-core 4.4.0rc3__py3-none-any.whl → 4.4.1__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 CHANGED
@@ -13,7 +13,7 @@
13
13
 
14
14
  """This is the orchestrator workflow engine."""
15
15
 
16
- __version__ = "4.4.0rc3"
16
+ __version__ = "4.4.1"
17
17
 
18
18
  from orchestrator.app import OrchestratorCore
19
19
  from orchestrator.settings import app_settings
@@ -82,8 +82,8 @@ class ProcessType:
82
82
  )
83
83
 
84
84
  @strawberry.field(description="Returns user permissions for operations on this process") # type: ignore
85
- def user_permissions(self, info: OrchestratorInfo) -> FormUserPermissionsType:
86
- oidc_user = info.context.get_current_user
85
+ async def user_permissions(self, info: OrchestratorInfo) -> FormUserPermissionsType:
86
+ oidc_user = await info.context.get_current_user
87
87
  workflow = get_workflow(self.workflow_name)
88
88
  process = load_process(db.session.get(ProcessTable, self.process_id)) # type: ignore[arg-type]
89
89
  auth_resume, auth_retry = get_auth_callbacks(get_steps_to_evaluate_for_rbac(process), workflow) # type: ignore[arg-type]
@@ -33,8 +33,8 @@ class Workflow:
33
33
  return [Step(name=step.name, assignee=step.assignee) for step in get_workflow(self.name).steps] # type: ignore
34
34
 
35
35
  @strawberry.field(description="Return whether the currently logged-in used is allowed to start this workflow") # type: ignore
36
- def is_allowed(self, info: OrchestratorInfo) -> bool:
37
- oidc_user = info.context.get_current_user
36
+ async def is_allowed(self, info: OrchestratorInfo) -> bool:
37
+ oidc_user = await info.context.get_current_user
38
38
  workflow_table = get_original_model(self, WorkflowTable)
39
39
  workflow = get_workflow(workflow_table.name)
40
40
 
@@ -29,7 +29,6 @@ from orchestrator.db.sorting.sorting import SortOrder
29
29
  from orchestrator.settings import app_settings
30
30
  from orchestrator.utils.helpers import camel_to_snake, to_camel
31
31
 
32
- jobstores = {"default": SQLAlchemyJobStore(url=str(app_settings.DATABASE_URI))}
33
32
  executors = {
34
33
  "default": ThreadPoolExecutor(1),
35
34
  }
@@ -37,22 +36,22 @@ job_defaults = {
37
36
  "coalesce": True,
38
37
  }
39
38
 
40
- scheduler = BackgroundScheduler(jobstores=jobstores, executors=executors, job_defaults=job_defaults)
41
-
42
-
43
- def scheduler_dispose_db_connections() -> None:
44
- jobstores["default"].engine.dispose()
39
+ scheduler = BackgroundScheduler(executors=executors, job_defaults=job_defaults)
45
40
 
46
41
 
47
42
  @contextmanager
48
43
  def get_paused_scheduler() -> Generator[BackgroundScheduler, Any, None]:
44
+ try:
45
+ scheduler.add_jobstore(SQLAlchemyJobStore(url=str(app_settings.DATABASE_URI)))
46
+ except ValueError:
47
+ pass
49
48
  scheduler.start(paused=True)
50
49
 
51
50
  try:
52
51
  yield scheduler
53
52
  finally:
54
53
  scheduler.shutdown()
55
- scheduler_dispose_db_connections()
54
+ scheduler._jobstores["default"].engine.dispose()
56
55
 
57
56
 
58
57
  class ScheduledTask(BaseModel):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orchestrator-core
3
- Version: 4.4.0rc3
3
+ Version: 4.4.1
4
4
  Summary: This is the orchestrator workflow engine.
5
5
  Author-email: SURF <automation-beheer@surf.nl>
6
6
  Requires-Python: >=3.11,<3.14
@@ -1,4 +1,4 @@
1
- orchestrator/__init__.py,sha256=4-pAbOsr1gG9e7wEsiJqmS0b4qyvGlnxbcG8JjrN-c8,1066
1
+ orchestrator/__init__.py,sha256=4M-5vT7NIXhlohP0pzoqgU8XpZo6DiR2qUrj09ybyxA,1063
2
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
@@ -185,7 +185,7 @@ orchestrator/graphql/schemas/customer_description.py,sha256=fize71IMpkvk_rTzcqCY
185
185
  orchestrator/graphql/schemas/errors.py,sha256=VRl-Zd1FHMnscyozhfxzqeEUZ0ERAWum_Y8YwjGxwmA,203
186
186
  orchestrator/graphql/schemas/fixed_input.py,sha256=1yqYHADQRgHz8OIP7ObYsPFS-gmzfkCvEO0a-KKf7zI,513
187
187
  orchestrator/graphql/schemas/helpers.py,sha256=Kpj4kIbmoKKN35bdgUSwQvGUIbeg7VJAVMEq65YS_ik,346
188
- orchestrator/graphql/schemas/process.py,sha256=g3noYh_USfnaK59fnoX2DI5tAf1PhdLMJGI_lA2xX1M,4966
188
+ orchestrator/graphql/schemas/process.py,sha256=wN4pKDuPbPHyyfGYaqFXMXxKTDm_zIwmyCOhSu5H1Iw,4978
189
189
  orchestrator/graphql/schemas/product.py,sha256=vUCqcjrKBJj-VKSrMYPKzjmmxLMXL7alKTJ8UdUkhTg,4342
190
190
  orchestrator/graphql/schemas/product_block.py,sha256=Qk9cbA6vm7ZPrhdgPHatKRuy6TytBmxSr97McEOxAu8,2860
191
191
  orchestrator/graphql/schemas/resource_type.py,sha256=s5d_FwQXL2-Sc-IDUxTJun5qFQ4zOP4-XcHF9ql-t1g,898
@@ -194,7 +194,7 @@ orchestrator/graphql/schemas/settings.py,sha256=drhm5VcLmUbiYAk6WUSJcyJqjNM96E6G
194
194
  orchestrator/graphql/schemas/strawberry_pydantic_patch.py,sha256=CjNUhTKdYmLiaem-WY_mzw4HASIeaZitxGF8pPocqVw,1602
195
195
  orchestrator/graphql/schemas/subscription.py,sha256=hTA34C27kgLguH9V53173CxMKIWiQKh3vFzyJ2yBfE0,9918
196
196
  orchestrator/graphql/schemas/version.py,sha256=HSzVg_y4Sjd5_H5rRUtu3FJKOG_8ifhvBNt_qjOtC-E,92
197
- orchestrator/graphql/schemas/workflow.py,sha256=WLbegRNxOfvXg4kPYrO5KPBwtHmUofAr2pvZT2JsW1c,1761
197
+ orchestrator/graphql/schemas/workflow.py,sha256=ewE5mRuqMq7rnx8Au2eTUm3YTY1pivOWATNacZQ-trY,1773
198
198
  orchestrator/graphql/utils/__init__.py,sha256=1JvenzEVW1CBa1sGVI9I8IWnnoXIkb1hneDqph9EEZY,524
199
199
  orchestrator/graphql/utils/create_resolver_error_handler.py,sha256=XzCnL482M4wz3fg5fUdGUwCAuzSZQ9Ufu1mscLyeoWU,1227
200
200
  orchestrator/graphql/utils/get_query_loaders.py,sha256=abS_HJ7K9een78gMiGq3IhwGwxQXHvZygExe0h_t9ns,815
@@ -249,7 +249,7 @@ orchestrator/migrations/versions/schema/2025-07-04_4b58e336d1bf_deprecating_work
249
249
  orchestrator/migrations/versions/schema/2025-07-28_850dccac3b02_update_description_of_resume_workflows_.py,sha256=R6Qoga83DJ1IL0WYPu0u5u2ZvAmqGlDmUMv_KtJyOhQ,812
250
250
  orchestrator/schedules/__init__.py,sha256=Zy0fTOBMGIRFoh5iVFDLF9_PRAFaONYDThGK9EsysWo,981
251
251
  orchestrator/schedules/resume_workflows.py,sha256=jRnVRWDy687pQu-gtk80ecwiLSdrvtL15tG3U2zWA6I,891
252
- orchestrator/schedules/scheduler.py,sha256=_Y6TB-GKNJM0Nk7CRLuMnw0djFEBrDm999GOOcBuBeQ,5880
252
+ orchestrator/schedules/scheduler.py,sha256=nnuehZnBbtC90MsFP_Q6kqcD1ihsq08vr1ALJ6jHF_s,5833
253
253
  orchestrator/schedules/scheduling.py,sha256=_mbpHMhijey8Y56ebtJ4wVkrp_kPVRm8hoByzlQF4SE,2821
254
254
  orchestrator/schedules/task_vacuum.py,sha256=mxb7fsy1GphRwvUWi_lvwNaj51YAXUdIDlkOJd90AFI,874
255
255
  orchestrator/schedules/validate_products.py,sha256=zWFQeVn3F8LP3joExLiKdmHs008pZsO-RolcIXHjFyE,1322
@@ -319,7 +319,7 @@ orchestrator/workflows/tasks/resume_workflows.py,sha256=T3iobSJjVgiupe0rClD34kUZ
319
319
  orchestrator/workflows/tasks/validate_product_type.py,sha256=paG-NAY1bdde3Adt8zItkcBKf5Pxw6f5ngGW6an6dYU,3192
320
320
  orchestrator/workflows/tasks/validate_products.py,sha256=GZJBoFF-WMphS7ghMs2-gqvV2iL1F0POhk0uSNt93n0,8510
321
321
  orchestrator/workflows/translations/en-GB.json,sha256=ST53HxkphFLTMjFHonykDBOZ7-P_KxksktZU3GbxLt0,846
322
- orchestrator_core-4.4.0rc3.dist-info/licenses/LICENSE,sha256=b-aA5OZQuuBATmLKo_mln8CQrDPPhg3ghLzjPjLn4Tg,11409
323
- orchestrator_core-4.4.0rc3.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
324
- orchestrator_core-4.4.0rc3.dist-info/METADATA,sha256=Xu_xQc9lhukT3Gj52AVnPxfBc8Q8Pk77IBbPbMkgBe8,5967
325
- orchestrator_core-4.4.0rc3.dist-info/RECORD,,
322
+ orchestrator_core-4.4.1.dist-info/licenses/LICENSE,sha256=b-aA5OZQuuBATmLKo_mln8CQrDPPhg3ghLzjPjLn4Tg,11409
323
+ orchestrator_core-4.4.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
324
+ orchestrator_core-4.4.1.dist-info/METADATA,sha256=kWsL3EEfOcsMRN6w6yux9mrAkzFM4iecoZy3IgTtw8k,5964
325
+ orchestrator_core-4.4.1.dist-info/RECORD,,