fractal-server 2.17.1a1__py3-none-any.whl → 2.18.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.
- fractal_server/__init__.py +1 -1
- fractal_server/__main__.py +21 -19
- fractal_server/app/db/__init__.py +3 -3
- fractal_server/app/models/__init__.py +1 -0
- fractal_server/app/models/linkuserproject.py +43 -1
- fractal_server/app/models/security.py +28 -8
- fractal_server/app/models/v2/__init__.py +3 -1
- fractal_server/app/models/v2/accounting.py +9 -1
- fractal_server/app/models/v2/dataset.py +5 -1
- fractal_server/app/models/v2/history.py +15 -1
- fractal_server/app/models/v2/job.py +17 -2
- fractal_server/app/models/v2/profile.py +29 -0
- fractal_server/app/models/v2/project.py +4 -10
- fractal_server/app/models/v2/resource.py +17 -0
- fractal_server/app/models/v2/task_group.py +4 -3
- fractal_server/app/models/v2/workflow.py +2 -1
- fractal_server/app/routes/admin/v2/__init__.py +12 -13
- fractal_server/app/routes/admin/v2/accounting.py +3 -3
- fractal_server/app/routes/admin/v2/job.py +35 -24
- fractal_server/app/routes/admin/v2/profile.py +3 -2
- fractal_server/app/routes/admin/v2/resource.py +5 -5
- fractal_server/app/routes/admin/v2/sharing.py +103 -0
- fractal_server/app/routes/admin/v2/task.py +37 -26
- fractal_server/app/routes/admin/v2/task_group.py +94 -17
- fractal_server/app/routes/admin/v2/task_group_lifecycle.py +21 -22
- fractal_server/app/routes/api/__init__.py +1 -9
- fractal_server/app/routes/api/v2/__init__.py +49 -50
- fractal_server/app/routes/api/v2/_aux_functions.py +132 -124
- fractal_server/app/routes/api/v2/_aux_functions_history.py +51 -23
- fractal_server/app/routes/api/v2/_aux_functions_sharing.py +97 -0
- fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py +6 -8
- fractal_server/app/routes/api/v2/_aux_functions_tasks.py +7 -9
- fractal_server/app/routes/api/v2/_aux_task_group_disambiguation.py +1 -2
- fractal_server/app/routes/api/v2/dataset.py +95 -102
- fractal_server/app/routes/api/v2/history.py +59 -33
- fractal_server/app/routes/api/v2/images.py +24 -9
- fractal_server/app/routes/api/v2/job.py +52 -33
- fractal_server/app/routes/api/v2/pre_submission_checks.py +16 -8
- fractal_server/app/routes/api/v2/project.py +65 -37
- fractal_server/app/routes/api/v2/sharing.py +311 -0
- fractal_server/app/routes/api/v2/status_legacy.py +31 -41
- fractal_server/app/routes/api/v2/submit.py +82 -78
- fractal_server/app/routes/api/v2/task.py +19 -20
- fractal_server/app/routes/api/v2/task_collection.py +41 -43
- fractal_server/app/routes/api/v2/task_collection_custom.py +19 -20
- fractal_server/app/routes/api/v2/task_collection_pixi.py +10 -11
- fractal_server/app/routes/api/v2/task_group.py +25 -24
- fractal_server/app/routes/api/v2/task_group_lifecycle.py +32 -32
- fractal_server/app/routes/api/v2/task_version_update.py +23 -19
- fractal_server/app/routes/api/v2/workflow.py +50 -55
- fractal_server/app/routes/api/v2/workflow_import.py +37 -37
- fractal_server/app/routes/api/v2/workflowtask.py +32 -26
- fractal_server/app/routes/auth/__init__.py +1 -3
- fractal_server/app/routes/auth/_aux_auth.py +101 -2
- fractal_server/app/routes/auth/current_user.py +2 -66
- fractal_server/app/routes/auth/group.py +8 -35
- fractal_server/app/routes/auth/login.py +1 -0
- fractal_server/app/routes/auth/oauth.py +4 -3
- fractal_server/app/routes/auth/register.py +4 -2
- fractal_server/app/routes/auth/router.py +2 -0
- fractal_server/app/routes/auth/users.py +19 -10
- fractal_server/app/routes/auth/viewer_paths.py +43 -0
- fractal_server/app/routes/aux/_job.py +1 -1
- fractal_server/app/routes/aux/_runner.py +2 -2
- fractal_server/app/routes/pagination.py +1 -1
- fractal_server/app/schemas/user.py +29 -12
- fractal_server/app/schemas/user_group.py +0 -15
- fractal_server/app/schemas/v2/__init__.py +55 -48
- fractal_server/app/schemas/v2/accounting.py +11 -0
- fractal_server/app/schemas/v2/dataset.py +57 -11
- fractal_server/app/schemas/v2/dumps.py +10 -9
- fractal_server/app/schemas/v2/job.py +11 -11
- fractal_server/app/schemas/v2/manifest.py +4 -3
- fractal_server/app/schemas/v2/profile.py +53 -2
- fractal_server/app/schemas/v2/project.py +3 -3
- fractal_server/app/schemas/v2/resource.py +121 -16
- fractal_server/app/schemas/v2/sharing.py +99 -0
- fractal_server/app/schemas/v2/status_legacy.py +3 -3
- fractal_server/app/schemas/v2/task.py +6 -7
- fractal_server/app/schemas/v2/task_collection.py +5 -5
- fractal_server/app/schemas/v2/task_group.py +16 -16
- fractal_server/app/schemas/v2/workflow.py +16 -16
- fractal_server/app/schemas/v2/workflowtask.py +16 -15
- fractal_server/app/security/__init__.py +5 -8
- fractal_server/app/security/signup_email.py +4 -5
- fractal_server/app/shutdown.py +6 -6
- fractal_server/config/__init__.py +0 -6
- fractal_server/config/_data.py +0 -68
- fractal_server/config/_database.py +19 -20
- fractal_server/config/_email.py +30 -38
- fractal_server/config/_main.py +38 -52
- fractal_server/config/_oauth.py +17 -21
- fractal_server/data_migrations/2_18_0.py +30 -0
- fractal_server/exceptions.py +4 -0
- fractal_server/images/models.py +4 -5
- fractal_server/images/status_tools.py +4 -2
- fractal_server/logger.py +1 -1
- fractal_server/main.py +75 -13
- fractal_server/migrations/versions/034a469ec2eb_task_groups.py +4 -8
- fractal_server/migrations/versions/091b01f51f88_add_usergroup_and_linkusergroup_table.py +1 -1
- fractal_server/migrations/versions/0f5f85bb2ae7_add_pre_pinned_packages.py +1 -0
- fractal_server/migrations/versions/19eca0dd47a9_user_settings_project_dir.py +1 -1
- fractal_server/migrations/versions/1a83a5260664_rename.py +1 -1
- fractal_server/migrations/versions/1eac13a26c83_drop_v1_tables.py +1 -0
- fractal_server/migrations/versions/316140ff7ee1_remove_usersettings_cache_dir.py +1 -1
- fractal_server/migrations/versions/40d6d6511b20_add_index_to_history_models.py +47 -0
- fractal_server/migrations/versions/45fbb391d7af_make_resource_id_fk_non_nullable.py +1 -1
- fractal_server/migrations/versions/47351f8c7ebc_drop_dataset_filters.py +1 -0
- fractal_server/migrations/versions/49d0856e9569_drop_table.py +2 -3
- fractal_server/migrations/versions/4c308bcaea2b_add_task_args_schema_and_task_args_.py +1 -1
- fractal_server/migrations/versions/4cedeb448a53_workflowtask_foreign_keys_not_nullables.py +1 -1
- fractal_server/migrations/versions/501961cfcd85_remove_link_between_v1_and_v2_tasks_.py +2 -1
- fractal_server/migrations/versions/50a13d6138fd_initial_schema.py +7 -19
- fractal_server/migrations/versions/5bf02391cfef_v2.py +4 -10
- fractal_server/migrations/versions/70e77f1c38b0_add_applyworkflow_first_task_index_and_.py +1 -0
- fractal_server/migrations/versions/71eefd1dd202_add_slurm_accounts.py +1 -1
- fractal_server/migrations/versions/7673fe18c05d_remove_project_dir_server_default.py +1 -1
- fractal_server/migrations/versions/7910eed4cf97_user_project_dirs_and_usergroup_viewer_.py +60 -0
- fractal_server/migrations/versions/791ce783d3d8_add_indices.py +1 -1
- fractal_server/migrations/versions/83bc2ad3ffcc_2_17_0.py +1 -0
- fractal_server/migrations/versions/84bf0fffde30_add_dumps_to_applyworkflow.py +1 -0
- fractal_server/migrations/versions/88270f589c9b_add_prevent_new_submissions.py +39 -0
- fractal_server/migrations/versions/8e8f227a3e36_update_taskv2_post_2_7_0.py +2 -4
- fractal_server/migrations/versions/8f79bd162e35_add_docs_info_and_docs_link_to_task_.py +1 -1
- fractal_server/migrations/versions/94a47ea2d3ff_remove_cache_dir_slurm_user_and_slurm_.py +1 -0
- fractal_server/migrations/versions/969d84257cac_add_historyrun_task_id.py +1 -1
- fractal_server/migrations/versions/97f444d47249_add_applyworkflow_project_dump.py +1 -1
- fractal_server/migrations/versions/981d588fe248_add_executor_error_log.py +1 -1
- fractal_server/migrations/versions/99ea79d9e5d2_add_dataset_history.py +2 -4
- fractal_server/migrations/versions/9c5ae74c9b98_add_user_settings_table.py +1 -1
- fractal_server/migrations/versions/9db60297b8b2_set_ondelete.py +1 -1
- fractal_server/migrations/versions/9fd26a2b0de4_add_workflow_timestamp_created.py +1 -1
- fractal_server/migrations/versions/a7f4d6137b53_add_workflow_dump_to_applyworkflow.py +1 -1
- fractal_server/migrations/versions/af1ef1c83c9b_add_accounting_tables.py +1 -0
- fractal_server/migrations/versions/af8673379a5c_drop_old_filter_columns.py +1 -0
- fractal_server/migrations/versions/b1e7f7a1ff71_task_group_for_pixi.py +1 -1
- fractal_server/migrations/versions/b3ffb095f973_json_to_jsonb.py +1 -0
- fractal_server/migrations/versions/bc0e8b3327a7_project_sharing.py +72 -0
- fractal_server/migrations/versions/c90a7c76e996_job_id_in_history_run.py +1 -1
- fractal_server/migrations/versions/caba9fb1ea5e_drop_useroauth_user_settings_id.py +1 -1
- fractal_server/migrations/versions/d256a7379ab8_taskgroup_activity_and_venv_info_to_.py +4 -9
- fractal_server/migrations/versions/d4fe3708d309_make_applyworkflow_workflow_dump_non_.py +1 -0
- fractal_server/migrations/versions/da2cb2ac4255_user_group_viewer_paths.py +1 -1
- fractal_server/migrations/versions/db09233ad13a_split_filters_and_keep_old_columns.py +1 -0
- fractal_server/migrations/versions/e0e717ae2f26_delete_linkuserproject_ondelete_project.py +50 -0
- fractal_server/migrations/versions/e75cac726012_make_applyworkflow_start_timestamp_not_.py +1 -0
- fractal_server/migrations/versions/e81103413827_add_job_type_filters.py +1 -1
- fractal_server/migrations/versions/efa89c30e0a4_add_project_timestamp_created.py +1 -0
- fractal_server/migrations/versions/f0702066b007_one_submitted_job_per_dataset.py +40 -0
- fractal_server/migrations/versions/f37aceb45062_make_historyunit_logfile_required.py +1 -1
- fractal_server/migrations/versions/f384e1c0cf5d_drop_task_default_args_columns.py +1 -0
- fractal_server/migrations/versions/fbce16ff4e47_new_history_items.py +4 -9
- fractal_server/runner/config/_local.py +8 -5
- fractal_server/runner/config/_slurm.py +39 -33
- fractal_server/runner/config/slurm_mem_to_MB.py +0 -1
- fractal_server/runner/executors/base_runner.py +29 -4
- fractal_server/runner/executors/local/get_local_config.py +1 -0
- fractal_server/runner/executors/local/runner.py +14 -13
- fractal_server/runner/executors/slurm_common/_batching.py +9 -20
- fractal_server/runner/executors/slurm_common/base_slurm_runner.py +53 -27
- fractal_server/runner/executors/slurm_common/get_slurm_config.py +14 -7
- fractal_server/runner/executors/slurm_common/remote.py +3 -1
- fractal_server/runner/executors/slurm_common/slurm_config.py +2 -0
- fractal_server/runner/executors/slurm_common/slurm_job_task_models.py +1 -3
- fractal_server/runner/executors/slurm_ssh/runner.py +16 -11
- fractal_server/runner/executors/slurm_ssh/tar_commands.py +1 -0
- fractal_server/runner/executors/slurm_sudo/_subprocess_run_as_user.py +1 -0
- fractal_server/runner/executors/slurm_sudo/runner.py +16 -11
- fractal_server/runner/task_files.py +9 -3
- fractal_server/runner/v2/_local.py +12 -6
- fractal_server/runner/v2/_slurm_ssh.py +14 -7
- fractal_server/runner/v2/_slurm_sudo.py +14 -7
- fractal_server/runner/v2/db_tools.py +0 -1
- fractal_server/runner/v2/deduplicate_list.py +2 -1
- fractal_server/runner/v2/runner.py +44 -28
- fractal_server/runner/v2/runner_functions.py +22 -28
- fractal_server/runner/v2/submit_workflow.py +29 -15
- fractal_server/ssh/_fabric.py +6 -13
- fractal_server/string_tools.py +0 -1
- fractal_server/syringe.py +1 -1
- fractal_server/tasks/config/_pixi.py +1 -1
- fractal_server/tasks/config/_python.py +16 -9
- fractal_server/tasks/utils.py +0 -1
- fractal_server/tasks/v2/local/_utils.py +3 -3
- fractal_server/tasks/v2/local/collect.py +15 -18
- fractal_server/tasks/v2/local/collect_pixi.py +14 -16
- fractal_server/tasks/v2/local/deactivate.py +14 -15
- fractal_server/tasks/v2/local/deactivate_pixi.py +7 -7
- fractal_server/tasks/v2/local/delete.py +6 -8
- fractal_server/tasks/v2/local/reactivate.py +12 -12
- fractal_server/tasks/v2/local/reactivate_pixi.py +12 -12
- fractal_server/tasks/v2/ssh/_utils.py +3 -3
- fractal_server/tasks/v2/ssh/collect.py +19 -24
- fractal_server/tasks/v2/ssh/collect_pixi.py +22 -24
- fractal_server/tasks/v2/ssh/deactivate.py +17 -15
- fractal_server/tasks/v2/ssh/deactivate_pixi.py +8 -7
- fractal_server/tasks/v2/ssh/delete.py +12 -10
- fractal_server/tasks/v2/ssh/reactivate.py +16 -16
- fractal_server/tasks/v2/ssh/reactivate_pixi.py +13 -14
- fractal_server/tasks/v2/templates/1_create_venv.sh +2 -0
- fractal_server/tasks/v2/templates/2_pip_install.sh +2 -0
- fractal_server/tasks/v2/templates/3_pip_freeze.sh +2 -0
- fractal_server/tasks/v2/templates/4_pip_show.sh +2 -0
- fractal_server/tasks/v2/templates/5_get_venv_size_and_file_number.sh +3 -1
- fractal_server/tasks/v2/templates/6_pip_install_from_freeze.sh +2 -0
- fractal_server/tasks/v2/templates/pixi_1_extract.sh +2 -0
- fractal_server/tasks/v2/templates/pixi_2_install.sh +2 -0
- fractal_server/tasks/v2/templates/pixi_3_post_install.sh +2 -0
- fractal_server/tasks/v2/utils_background.py +10 -10
- fractal_server/tasks/v2/utils_database.py +5 -5
- fractal_server/tasks/v2/utils_package_names.py +1 -2
- fractal_server/tasks/v2/utils_pixi.py +1 -3
- fractal_server/types/__init__.py +98 -1
- fractal_server/types/validators/__init__.py +3 -0
- fractal_server/types/validators/_common_validators.py +33 -3
- fractal_server/types/validators/_workflow_task_arguments_validators.py +1 -2
- fractal_server/utils.py +1 -0
- fractal_server/zip_tools.py +34 -0
- {fractal_server-2.17.1a1.dist-info → fractal_server-2.18.0.dist-info}/METADATA +3 -2
- fractal_server-2.18.0.dist-info/RECORD +275 -0
- fractal_server/app/routes/admin/v2/project.py +0 -41
- fractal_server-2.17.1a1.dist-info/RECORD +0 -264
- {fractal_server-2.17.1a1.dist-info → fractal_server-2.18.0.dist-info}/WHEEL +0 -0
- {fractal_server-2.17.1a1.dist-info → fractal_server-2.18.0.dist-info}/entry_points.txt +0 -0
- {fractal_server-2.17.1a1.dist-info → fractal_server-2.18.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -26,10 +26,10 @@ from fractal_server.app.routes.aux.validate_user_profile import (
|
|
|
26
26
|
validate_user_profile,
|
|
27
27
|
)
|
|
28
28
|
from fractal_server.app.schemas.v2 import ResourceType
|
|
29
|
-
from fractal_server.app.schemas.v2 import
|
|
30
|
-
from fractal_server.app.schemas.v2 import
|
|
31
|
-
from fractal_server.app.schemas.v2 import
|
|
32
|
-
from fractal_server.app.schemas.v2 import
|
|
29
|
+
from fractal_server.app.schemas.v2 import TaskGroupActivityAction
|
|
30
|
+
from fractal_server.app.schemas.v2 import TaskGroupActivityRead
|
|
31
|
+
from fractal_server.app.schemas.v2 import TaskGroupActivityStatus
|
|
32
|
+
from fractal_server.app.schemas.v2 import TaskGroupOriginEnum
|
|
33
33
|
from fractal_server.logger import set_logger
|
|
34
34
|
from fractal_server.tasks.v2.local import deactivate_local
|
|
35
35
|
from fractal_server.tasks.v2.local import delete_local
|
|
@@ -46,7 +46,7 @@ logger = set_logger(__name__)
|
|
|
46
46
|
|
|
47
47
|
@router.post(
|
|
48
48
|
"/{task_group_id}/deactivate/",
|
|
49
|
-
response_model=
|
|
49
|
+
response_model=TaskGroupActivityRead,
|
|
50
50
|
)
|
|
51
51
|
async def deactivate_task_group(
|
|
52
52
|
task_group_id: int,
|
|
@@ -54,7 +54,7 @@ async def deactivate_task_group(
|
|
|
54
54
|
response: Response,
|
|
55
55
|
superuser: UserOAuth = Depends(current_superuser_act),
|
|
56
56
|
db: AsyncSession = Depends(get_async_db),
|
|
57
|
-
) ->
|
|
57
|
+
) -> TaskGroupActivityRead:
|
|
58
58
|
"""
|
|
59
59
|
Deactivate task-group venv
|
|
60
60
|
"""
|
|
@@ -78,13 +78,13 @@ async def deactivate_task_group(
|
|
|
78
78
|
await check_no_submitted_job(task_group_id=task_group.id, db=db)
|
|
79
79
|
|
|
80
80
|
# Shortcut for task-group with origin="other"
|
|
81
|
-
if task_group.origin ==
|
|
81
|
+
if task_group.origin == TaskGroupOriginEnum.OTHER:
|
|
82
82
|
task_group.active = False
|
|
83
83
|
task_group_activity = TaskGroupActivityV2(
|
|
84
84
|
user_id=task_group.user_id,
|
|
85
85
|
taskgroupv2_id=task_group.id,
|
|
86
|
-
status=
|
|
87
|
-
action=
|
|
86
|
+
status=TaskGroupActivityStatus.OK,
|
|
87
|
+
action=TaskGroupActivityAction.DEACTIVATE,
|
|
88
88
|
pkg_name=task_group.pkg_name,
|
|
89
89
|
version=(task_group.version or "N/A"),
|
|
90
90
|
log=(
|
|
@@ -103,8 +103,8 @@ async def deactivate_task_group(
|
|
|
103
103
|
task_group_activity = TaskGroupActivityV2(
|
|
104
104
|
user_id=task_group.user_id,
|
|
105
105
|
taskgroupv2_id=task_group.id,
|
|
106
|
-
status=
|
|
107
|
-
action=
|
|
106
|
+
status=TaskGroupActivityStatus.PENDING,
|
|
107
|
+
action=TaskGroupActivityAction.DEACTIVATE,
|
|
108
108
|
pkg_name=task_group.pkg_name,
|
|
109
109
|
version=task_group.version,
|
|
110
110
|
timestamp_started=get_timestamp(),
|
|
@@ -140,7 +140,7 @@ async def deactivate_task_group(
|
|
|
140
140
|
|
|
141
141
|
@router.post(
|
|
142
142
|
"/{task_group_id}/reactivate/",
|
|
143
|
-
response_model=
|
|
143
|
+
response_model=TaskGroupActivityRead,
|
|
144
144
|
)
|
|
145
145
|
async def reactivate_task_group(
|
|
146
146
|
task_group_id: int,
|
|
@@ -148,7 +148,7 @@ async def reactivate_task_group(
|
|
|
148
148
|
response: Response,
|
|
149
149
|
superuser: UserOAuth = Depends(current_superuser_act),
|
|
150
150
|
db: AsyncSession = Depends(get_async_db),
|
|
151
|
-
) ->
|
|
151
|
+
) -> TaskGroupActivityRead:
|
|
152
152
|
"""
|
|
153
153
|
Deactivate task-group venv
|
|
154
154
|
"""
|
|
@@ -173,13 +173,13 @@ async def reactivate_task_group(
|
|
|
173
173
|
await check_no_submitted_job(task_group_id=task_group.id, db=db)
|
|
174
174
|
|
|
175
175
|
# Shortcut for task-group with origin="other"
|
|
176
|
-
if task_group.origin ==
|
|
176
|
+
if task_group.origin == TaskGroupOriginEnum.OTHER:
|
|
177
177
|
task_group.active = True
|
|
178
178
|
task_group_activity = TaskGroupActivityV2(
|
|
179
179
|
user_id=task_group.user_id,
|
|
180
180
|
taskgroupv2_id=task_group.id,
|
|
181
|
-
status=
|
|
182
|
-
action=
|
|
181
|
+
status=TaskGroupActivityStatus.OK,
|
|
182
|
+
action=TaskGroupActivityAction.REACTIVATE,
|
|
183
183
|
pkg_name=task_group.pkg_name,
|
|
184
184
|
version=(task_group.version or "N/A"),
|
|
185
185
|
log=(
|
|
@@ -199,16 +199,15 @@ async def reactivate_task_group(
|
|
|
199
199
|
raise HTTPException(
|
|
200
200
|
status_code=status.HTTP_422_UNPROCESSABLE_CONTENT,
|
|
201
201
|
detail=(
|
|
202
|
-
"Cannot reactivate a task group with "
|
|
203
|
-
f"{task_group.env_info=}."
|
|
202
|
+
f"Cannot reactivate a task group with {task_group.env_info=}."
|
|
204
203
|
),
|
|
205
204
|
)
|
|
206
205
|
|
|
207
206
|
task_group_activity = TaskGroupActivityV2(
|
|
208
207
|
user_id=task_group.user_id,
|
|
209
208
|
taskgroupv2_id=task_group.id,
|
|
210
|
-
status=
|
|
211
|
-
action=
|
|
209
|
+
status=TaskGroupActivityStatus.PENDING,
|
|
210
|
+
action=TaskGroupActivityAction.REACTIVATE,
|
|
212
211
|
pkg_name=task_group.pkg_name,
|
|
213
212
|
version=task_group.version,
|
|
214
213
|
timestamp_started=get_timestamp(),
|
|
@@ -260,8 +259,8 @@ async def delete_task_group(
|
|
|
260
259
|
task_group_activity = TaskGroupActivityV2(
|
|
261
260
|
user_id=task_group.user_id,
|
|
262
261
|
taskgroupv2_id=task_group.id,
|
|
263
|
-
status=
|
|
264
|
-
action=
|
|
262
|
+
status=TaskGroupActivityStatus.PENDING,
|
|
263
|
+
action=TaskGroupActivityAction.DELETE,
|
|
265
264
|
pkg_name=task_group.pkg_name,
|
|
266
265
|
version=(task_group.version or "N/A"),
|
|
267
266
|
timestamp_started=get_timestamp(),
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"""
|
|
2
2
|
`api` module
|
|
3
3
|
"""
|
|
4
|
+
|
|
4
5
|
from fastapi import APIRouter
|
|
5
6
|
from fastapi import Depends
|
|
6
7
|
|
|
7
8
|
import fractal_server
|
|
8
9
|
from fractal_server.app.models import UserOAuth
|
|
9
10
|
from fractal_server.app.routes.auth import current_superuser_act
|
|
10
|
-
from fractal_server.config import get_data_settings
|
|
11
11
|
from fractal_server.config import get_db_settings
|
|
12
12
|
from fractal_server.config import get_email_settings
|
|
13
13
|
from fractal_server.config import get_oauth_settings
|
|
@@ -49,14 +49,6 @@ async def view_email_settings(
|
|
|
49
49
|
return settings.model_dump()
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
@router_api.get("/settings/data/")
|
|
53
|
-
async def view_data_settings(
|
|
54
|
-
user: UserOAuth = Depends(current_superuser_act),
|
|
55
|
-
):
|
|
56
|
-
settings = Inject(get_data_settings)
|
|
57
|
-
return settings.model_dump()
|
|
58
|
-
|
|
59
|
-
|
|
60
52
|
@router_api.get("/settings/oauth/")
|
|
61
53
|
async def view_oauth_settings(
|
|
62
54
|
user: UserOAuth = Depends(current_superuser_act),
|
|
@@ -1,73 +1,72 @@
|
|
|
1
1
|
"""
|
|
2
2
|
`api/v2` module
|
|
3
3
|
"""
|
|
4
|
+
|
|
4
5
|
from fastapi import APIRouter
|
|
5
6
|
|
|
6
|
-
from .dataset import router as dataset_router_v2
|
|
7
|
-
from .history import router as history_router_v2
|
|
8
|
-
from .images import router as images_routes_v2
|
|
9
|
-
from .job import router as job_router_v2
|
|
10
|
-
from .pre_submission_checks import router as pre_submission_checks_router
|
|
11
|
-
from .project import router as project_router_v2
|
|
12
|
-
from .status_legacy import router as status_legacy_router_v2
|
|
13
|
-
from .submit import router as submit_job_router_v2
|
|
14
|
-
from .task import router as task_router_v2
|
|
15
|
-
from .task_collection import router as task_collection_router_v2
|
|
16
|
-
from .task_collection_custom import router as task_collection_router_v2_custom
|
|
17
|
-
from .task_collection_pixi import router as task_collection_pixi_router_v2
|
|
18
|
-
from .task_group import router as task_group_router_v2
|
|
19
|
-
from .task_group_lifecycle import router as task_group_lifecycle_router_v2
|
|
20
|
-
from .task_version_update import router as task_version_update_router_v2
|
|
21
|
-
from .workflow import router as workflow_router_v2
|
|
22
|
-
from .workflow_import import router as workflow_import_router_v2
|
|
23
|
-
from .workflowtask import router as workflowtask_router_v2
|
|
24
7
|
from fractal_server.config import get_settings
|
|
25
8
|
from fractal_server.syringe import Inject
|
|
26
9
|
|
|
10
|
+
from .dataset import router as dataset_router
|
|
11
|
+
from .history import router as history_router
|
|
12
|
+
from .images import router as images_routes
|
|
13
|
+
from .job import router as job_router
|
|
14
|
+
from .pre_submission_checks import router as pre_submission_checks_router
|
|
15
|
+
from .project import router as project_router
|
|
16
|
+
from .sharing import router as sharing_router
|
|
17
|
+
from .status_legacy import router as status_legacy_router
|
|
18
|
+
from .submit import router as submit_job_router
|
|
19
|
+
from .task import router as task_router
|
|
20
|
+
from .task_collection import router as task_collection_router
|
|
21
|
+
from .task_collection_custom import router as task_collection_router_custom
|
|
22
|
+
from .task_collection_pixi import router as task_collection_pixi_router
|
|
23
|
+
from .task_group import router as task_group_router
|
|
24
|
+
from .task_group_lifecycle import router as task_group_lifecycle_router
|
|
25
|
+
from .task_version_update import router as task_version_update_router
|
|
26
|
+
from .workflow import router as workflow_router
|
|
27
|
+
from .workflow_import import router as workflow_import_router
|
|
28
|
+
from .workflowtask import router as workflowtask_router
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
router_api = APIRouter()
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
)
|
|
32
|
+
router_api.include_router(dataset_router, tags=["Dataset"])
|
|
33
|
+
router_api.include_router(pre_submission_checks_router, tags=["Job"])
|
|
34
|
+
router_api.include_router(job_router, tags=["Job"])
|
|
35
|
+
router_api.include_router(images_routes, tags=["Images"])
|
|
36
|
+
router_api.include_router(sharing_router, tags=["Project Sharing"])
|
|
37
|
+
router_api.include_router(project_router, tags=["Project"])
|
|
38
|
+
router_api.include_router(submit_job_router, tags=["Job"])
|
|
39
|
+
router_api.include_router(history_router, tags=["History"])
|
|
40
|
+
router_api.include_router(status_legacy_router, tags=["Status Legacy"])
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
settings = Inject(get_settings)
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
router_api.include_router(
|
|
45
|
+
task_collection_router,
|
|
45
46
|
prefix="/task",
|
|
46
|
-
tags=["
|
|
47
|
+
tags=["Task Lifecycle"],
|
|
47
48
|
)
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
router_api.include_router(
|
|
50
|
+
task_collection_router_custom,
|
|
50
51
|
prefix="/task",
|
|
51
|
-
tags=["
|
|
52
|
+
tags=["Task Lifecycle"],
|
|
52
53
|
)
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
router_api.include_router(
|
|
55
|
+
task_collection_pixi_router,
|
|
55
56
|
prefix="/task",
|
|
56
|
-
tags=["
|
|
57
|
+
tags=["Task Lifecycle"],
|
|
57
58
|
)
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
router_api.include_router(
|
|
60
|
+
task_group_lifecycle_router,
|
|
60
61
|
prefix="/task-group",
|
|
61
|
-
tags=["
|
|
62
|
+
tags=["Task Lifecycle"],
|
|
62
63
|
)
|
|
63
64
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
)
|
|
69
|
-
router_api_v2.include_router(workflow_router_v2, tags=["V2 Workflow"])
|
|
70
|
-
router_api_v2.include_router(
|
|
71
|
-
workflow_import_router_v2, tags=["V2 Workflow Import"]
|
|
65
|
+
router_api.include_router(task_router, prefix="/task", tags=["Task"])
|
|
66
|
+
router_api.include_router(task_version_update_router, tags=["Task"])
|
|
67
|
+
router_api.include_router(
|
|
68
|
+
task_group_router, prefix="/task-group", tags=["TaskGroup"]
|
|
72
69
|
)
|
|
73
|
-
|
|
70
|
+
router_api.include_router(workflow_router, tags=["Workflow"])
|
|
71
|
+
router_api.include_router(workflow_import_router, tags=["Workflow Import"])
|
|
72
|
+
router_api.include_router(workflowtask_router, tags=["WorkflowTask"])
|