Skip to content

Commit e22c9df

Browse files
authored
Merge branch 'master' into mai/qooxdoo-client
2 parents 1fc3df5 + 94aab0b commit e22c9df

File tree

594 files changed

+8963
-5683
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

594 files changed

+8963
-5683
lines changed

.codecov.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@ component_management:
2525
branches:
2626
- "!master"
2727
individual_components:
28-
- component_id: api
29-
paths:
30-
- api/**
3128
- component_id: pkg_aws_library
3229
paths:
3330
- packages/aws-library/**
@@ -133,6 +130,7 @@ comment:
133130

134131

135132
ignore:
133+
- "api/tests"
136134
- "test_*.py"
137135
- "**/generated_models/*.py"
138136
- "**/generated_code/*.py"

.env-devel

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ AGENT_VOLUMES_CLEANUP_S3_ENDPOINT=http://172.17.0.1:9001
1717
AGENT_VOLUMES_CLEANUP_S3_PROVIDER=MINIO
1818
AGENT_VOLUMES_CLEANUP_S3_REGION=us-east-1
1919
AGENT_VOLUMES_CLEANUP_S3_SECRET_KEY=12345678
20-
AGENT_TRACING=null
20+
AGENT_TRACING={}
2121

2222
API_SERVER_DEV_FEATURES_ENABLED=0
2323
API_SERVER_LOGLEVEL=INFO
2424
API_SERVER_PROFILING=1
25-
API_SERVER_TRACING=null
25+
API_SERVER_TRACING={}
2626
TRAEFIK_API_SERVER_INFLIGHTREQ_AMOUNT=25
2727

2828
AUTOSCALING_DASK=null
@@ -35,7 +35,7 @@ AUTOSCALING_LOGLEVEL=INFO
3535
AUTOSCALING_NODES_MONITORING=null
3636
AUTOSCALING_POLL_INTERVAL="00:00:10"
3737
AUTOSCALING_SSM_ACCESS=null
38-
AUTOSCALING_TRACING=null
38+
AUTOSCALING_TRACING={}
3939

4040
AWS_S3_CLI_S3=null
4141

@@ -47,7 +47,7 @@ CATALOG_PORT=8000
4747
CATALOG_PROFILING=1
4848
CATALOG_SERVICES_DEFAULT_RESOURCES='{"CPU": {"limit": 0.1, "reservation": 0.1}, "RAM": {"limit": 2147483648, "reservation": 2147483648}}'
4949
CATALOG_SERVICES_DEFAULT_SPECIFICATIONS='{}'
50-
CATALOG_TRACING=null
50+
CATALOG_TRACING={}
5151

5252
CELERY_RESULT_EXPIRES=P7D
5353

@@ -63,7 +63,7 @@ CLUSTERS_KEEPER_MAX_MISSED_HEARTBEATS_BEFORE_CLUSTER_TERMINATION=5
6363
CLUSTERS_KEEPER_PRIMARY_EC2_INSTANCES=null
6464
CLUSTERS_KEEPER_TASK_INTERVAL=00:00:30
6565
CLUSTERS_KEEPER_WORKERS_EC2_INSTANCES=null
66-
CLUSTERS_KEEPER_TRACING=null
66+
CLUSTERS_KEEPER_TRACING={}
6767

6868
DASK_SCHEDULER_HOST=dask-scheduler
6969
DASK_SCHEDULER_PORT=8786
@@ -83,7 +83,7 @@ DIRECTOR_PUBLISHED_HOST_NAME="127.0.0.1:9081"
8383
DIRECTOR_REGISTRY_CACHING_TTL=00:15:00
8484
DIRECTOR_REGISTRY_CACHING=True
8585
DIRECTOR_SERVICES_CUSTOM_CONSTRAINTS=null
86-
DIRECTOR_TRACING=null
86+
DIRECTOR_TRACING={}
8787

8888
DOCKER_API_PROXY_HOST=docker-api-proxy
8989
DOCKER_API_PROXY_PASSWORD=admin
@@ -98,11 +98,11 @@ EFS_GROUP_NAME=efs-group
9898
EFS_DNS_NAME=fs-xxx.efs.us-east-1.amazonaws.com
9999
EFS_MOUNTED_PATH=/tmp/efs
100100
EFS_PROJECT_SPECIFIC_DATA_DIRECTORY=project-specific-data
101-
EFS_GUARDIAN_TRACING=null
101+
EFS_GUARDIAN_TRACING={}
102102
EFS_DEFAULT_USER_SERVICE_SIZE_BYTES=10000
103103

104104
# DATCORE_ADAPTER
105-
DATCORE_ADAPTER_TRACING=null
105+
DATCORE_ADAPTER_TRACING={}
106106

107107
# DIRECTOR_V2 ----
108108
COMPUTATIONAL_BACKEND_DEFAULT_CLUSTER_AUTH='{"type":"tls","tls_ca_file":"/home/scu/.dask/dask-crt.pem","tls_client_cert":"/home/scu/.dask/dask-crt.pem","tls_client_key":"/home/scu/.dask/dask-key.pem"}'
@@ -128,14 +128,14 @@ DYNAMIC_SIDECAR_LOG_LEVEL=DEBUG
128128
DYNAMIC_SIDECAR_PROMETHEUS_MONITORING_NETWORKS=[]
129129
DYNAMIC_SIDECAR_PROMETHEUS_SERVICE_LABELS={}
130130
DYNAMIC_SIDECAR_API_SAVE_RESTORE_STATE_TIMEOUT=01:00:00
131-
DIRECTOR_V2_TRACING=null
131+
DIRECTOR_V2_TRACING={}
132132

133133
# DYNAMIC_SCHEDULER ----
134134
DYNAMIC_SCHEDULER_LOGLEVEL=INFO
135135
DYNAMIC_SCHEDULER_PROFILING=1
136136
DYNAMIC_SCHEDULER_USE_INTERNAL_SCHEDULER=0
137137
DYNAMIC_SCHEDULER_STOP_SERVICE_TIMEOUT=01:00:00
138-
DYNAMIC_SCHEDULER_TRACING=null
138+
DYNAMIC_SCHEDULER_TRACING={}
139139
DYNAMIC_SCHEDULER_UI_STORAGE_SECRET=adminadmin
140140

141141
FUNCTION_SERVICES_AUTHORS='{"UN": {"name": "Unknown", "email": "[email protected]", "affiliation": "unknown"}}'
@@ -158,13 +158,13 @@ INVITATIONS_PORT=8000
158158
INVITATIONS_SECRET_KEY='REPLACE_ME_with_result__Fernet_generate_key='
159159
INVITATIONS_SWAGGER_API_DOC_ENABLED=1
160160
INVITATIONS_USERNAME=admin
161-
INVITATIONS_TRACING=null
161+
INVITATIONS_TRACING={}
162162

163163
LOG_FORMAT_LOCAL_DEV_ENABLED=1
164-
LOG_FILTER_MAPPING='{}'
164+
LOG_FILTER_MAPPING='{"gunicorn.access":[" /v0/ ", " /v0/health "], "uvicorn.access":[" / ", " /v0/ "]}'
165165

166166
NOTIFICATIONS_LOGLEVEL=INFO
167-
NOTIFICATIONS_TRACING=null
167+
NOTIFICATIONS_TRACING={}
168168

169169
PAYMENTS_ACCESS_TOKEN_EXPIRE_MINUTES=30
170170
PAYMENTS_ACCESS_TOKEN_SECRET_KEY=2c0411810565e063309be1457009fb39ce023946f6a354e6935107b57676
@@ -186,7 +186,7 @@ PAYMENTS_STRIPE_API_SECRET='REPLACE_ME_with_api_secret'
186186
PAYMENTS_STRIPE_URL=https://api.stripe.com
187187
PAYMENTS_SWAGGER_API_DOC_ENABLED=1
188188
PAYMENTS_USERNAME=admin
189-
PAYMENTS_TRACING=null
189+
PAYMENTS_TRACING={}
190190

191191
POSTGRES_DB=simcoredb
192192
POSTGRES_ENDPOINT=postgres:5432
@@ -227,7 +227,7 @@ RESOURCE_USAGE_TRACKER_MISSED_HEARTBEAT_CHECK_ENABLED=1
227227
RESOURCE_USAGE_TRACKER_MISSED_HEARTBEAT_COUNTER_FAIL=6
228228
RESOURCE_USAGE_TRACKER_MISSED_HEARTBEAT_INTERVAL_SEC=300
229229
RESOURCE_USAGE_TRACKER_S3=null
230-
RESOURCE_USAGE_TRACKER_TRACING=null
230+
RESOURCE_USAGE_TRACKER_TRACING={}
231231

232232
# NOTE: 172.17.0.1 is the docker0 interface, which redirect from inside a container onto the host network interface.
233233
R_CLONE_OPTION_BUFFER_SIZE=16M
@@ -259,7 +259,7 @@ STORAGE_HOST=storage
259259
STORAGE_LOGLEVEL=INFO
260260
STORAGE_PORT=8080
261261
STORAGE_PROFILING=1
262-
STORAGE_TRACING=null
262+
STORAGE_TRACING={}
263263
# STORAGE ----
264264

265265
SWARM_STACK_NAME=master-simcore
@@ -300,7 +300,7 @@ WB_GC_SOCKETIO=1
300300
WB_GC_STATICWEB=null
301301
WB_GC_STUDIES_DISPATCHER=null
302302
WB_GC_TAGS=0
303-
WB_GC_TRACING=null
303+
WB_GC_TRACING={}
304304
WB_GC_USERS={}
305305
WB_GC_WALLETS=0
306306

@@ -330,7 +330,7 @@ WB_DB_EL_STATICWEB=null
330330
WB_DB_EL_STORAGE=null
331331
WB_DB_EL_STUDIES_DISPATCHER=null
332332
WB_DB_EL_TAGS=0
333-
WB_DB_EL_TRACING=null
333+
WB_DB_EL_TRACING={}
334334
WB_DB_EL_USERS={}
335335
WB_DB_EL_WALLETS=0
336336

@@ -401,5 +401,5 @@ WEBSERVER_SOCKETIO=1
401401
WEBSERVER_STATICWEB={}
402402
WEBSERVER_STUDIES_DISPATCHER={}
403403
WEBSERVER_TAGS=1
404-
WEBSERVER_TRACING=null
404+
WEBSERVER_TRACING={}
405405
WEBSERVER_USERS={}

.github/copilot-instructions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ This document provides guidelines and best practices for using GitHub Copilot in
1212

1313
## 🛠️Coding Instructions for Python in This Repository
1414

15-
Follow these rules strictly when generating Python code:
15+
Follow these rules **strictly** when generating Python code:
1616

1717
### 1. Python Version
1818

@@ -43,7 +43,7 @@ Ensure compatibility with the following library versions:
4343
* Use `f-string` formatting for all string interpolation except for logging message strings.
4444
* Use **relative imports** within the same package/module.
4545
* Place **all imports at the top** of the file.
46-
* Add comments **only when the code is not self-explanatory**.
46+
* Document functions when the code is not self-explanatory or if asked explicitly.
4747

4848

4949
### 6. **JSON Serialization**

.github/workflows/ci-testing-deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,7 @@ jobs:
587587
unit-test-autoscaling:
588588
needs: changes
589589
if: ${{ needs.changes.outputs.autoscaling == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
590-
timeout-minutes: 22 # temporary: mypy takes a huge amount of time to run here, maybe we should cache it
590+
timeout-minutes: 18 # if this timeout gets too small, then split the tests
591591
name: "[unit] autoscaling"
592592
runs-on: ${{ matrix.os }}
593593
strategy:

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ locust_report/
5555
nosetests.xml
5656
test_failures/
5757

58-
5958
# Translations
6059
*.mo
6160
*.pot
@@ -182,3 +181,6 @@ tests/public-api/osparc_python_wheels/*
182181

183182
# osparc-config repo files
184183
repo.config
184+
185+
# repomix
186+
.repomix/*

api/specs/web-server/_auth.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from models_library.rest_error import EnvelopedError, Log
1616
from pydantic import BaseModel, Field, confloat
1717
from simcore_service_webserver._meta import API_VTAG
18-
from simcore_service_webserver.login._controller.rest.auth import (
18+
from simcore_service_webserver.login._controller.rest.auth_schemas import (
1919
LoginBody,
2020
LoginNextPage,
2121
LoginTwoFactorAuthBody,
@@ -30,7 +30,7 @@
3030
PhoneConfirmationBody,
3131
ResetPasswordConfirmation,
3232
)
33-
from simcore_service_webserver.login._controller.rest.registration import (
33+
from simcore_service_webserver.login._controller.rest.registration_schemas import (
3434
InvitationCheck,
3535
InvitationInfo,
3636
RegisterBody,

api/specs/web-server/_computations.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
from models_library.api_schemas_webserver.computations import (
77
ComputationCollectionRunListQueryParams,
88
ComputationCollectionRunPathParams,
9+
ComputationCollectionRunRestGet,
910
ComputationCollectionRunTaskListQueryParams,
11+
ComputationCollectionRunTaskRestGet,
1012
ComputationGet,
1113
ComputationPathParams,
1214
ComputationRunIterationsLatestListQueryParams,
@@ -102,7 +104,7 @@ async def list_computations_latest_iteration_tasks(
102104

103105
@router.get(
104106
"/computation-collection-runs",
105-
response_model=Page[ComputationTaskRestGet],
107+
response_model=Page[ComputationCollectionRunRestGet],
106108
)
107109
async def list_computation_collection_runs(
108110
_query: Annotated[as_query(ComputationCollectionRunListQueryParams), Depends()],
@@ -111,7 +113,7 @@ async def list_computation_collection_runs(
111113

112114
@router.get(
113115
"/computation-collection-runs/{collection_run_id}/tasks",
114-
response_model=Page[ComputationTaskRestGet],
116+
response_model=Page[ComputationCollectionRunTaskRestGet],
115117
)
116118
async def list_computation_collection_run_tasks(
117119
_query: Annotated[as_query(ComputationCollectionRunTaskListQueryParams), Depends()],

api/specs/web-server/_users.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,22 @@
1414
MyProfilePatch,
1515
MyTokenCreate,
1616
MyTokenGet,
17+
TokenPathParams,
1718
UserGet,
1819
UsersSearch,
1920
)
2021
from models_library.api_schemas_webserver.users_preferences import PatchRequestBody
2122
from models_library.generics import Envelope
2223
from models_library.user_preferences import PreferenceIdentifier
2324
from simcore_service_webserver._meta import API_VTAG
24-
from simcore_service_webserver.users._notifications import (
25+
from simcore_service_webserver.user_notifications._controller.rest.user_notification_rest import (
26+
NotificationPathParams,
27+
)
28+
from simcore_service_webserver.user_notifications._models import (
2529
UserNotification,
2630
UserNotificationCreate,
2731
UserNotificationPatch,
2832
)
29-
from simcore_service_webserver.users._notifications_rest import _NotificationPathParams
30-
from simcore_service_webserver.users._tokens_rest import _TokenPathParams
3133

3234
router = APIRouter(prefix=f"/{API_VTAG}", tags=["users"])
3335

@@ -76,15 +78,15 @@ async def create_token(_body: MyTokenCreate): ...
7678
response_model=Envelope[MyTokenGet],
7779
)
7880
async def get_token(
79-
_path: Annotated[_TokenPathParams, Depends()],
81+
_path: Annotated[TokenPathParams, Depends()],
8082
): ...
8183

8284

8385
@router.delete(
8486
"/me/tokens/{service}",
8587
status_code=status.HTTP_204_NO_CONTENT,
8688
)
87-
async def delete_token(_path: Annotated[_TokenPathParams, Depends()]): ...
89+
async def delete_token(_path: Annotated[TokenPathParams, Depends()]): ...
8890

8991

9092
@router.get(
@@ -108,7 +110,7 @@ async def create_user_notification(
108110
status_code=status.HTTP_204_NO_CONTENT,
109111
)
110112
async def mark_notification_as_read(
111-
_path: Annotated[_NotificationPathParams, Depends()],
113+
_path: Annotated[NotificationPathParams, Depends()],
112114
_body: UserNotificationPatch,
113115
): ...
114116

api/tests/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
aiohappyeyeballs==2.6.1
22
# via aiohttp
3-
aiohttp==3.12.13
3+
aiohttp==3.12.14
44
# via
55
# -c ../../requirements/constraints.txt
66
# -r requirements.in
@@ -11,7 +11,7 @@ attrs==25.3.0
1111
# aiohttp
1212
# jsonschema
1313
# referencing
14-
certifi==2025.6.15
14+
certifi==2025.7.9
1515
# via
1616
# -c ../../requirements/constraints.txt
1717
# requests

ci/helpers/requirements/requirements.txt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ propcache==0.3.1
3939
# via
4040
# aiohttp
4141
# yarl
42-
pydantic==2.10.5
42+
pydantic==2.11.7
4343
# via
4444
# -c requirements/../../../requirements/constraints.txt
4545
# fastapi
46-
pydantic-core==2.27.2
46+
pydantic-core==2.33.2
4747
# via pydantic
48-
requests==2.32.3
48+
requests==2.32.4
4949
# via docker
5050
sniffio==1.3.1
5151
# via anyio
@@ -58,7 +58,10 @@ typing-extensions==4.14.1
5858
# fastapi
5959
# pydantic
6060
# pydantic-core
61-
urllib3==2.3.0
61+
# typing-inspection
62+
typing-inspection==0.4.1
63+
# via pydantic
64+
urllib3==2.5.0
6265
# via
6366
# -c requirements/../../../requirements/constraints.txt
6467
# docker

0 commit comments

Comments
 (0)