Skip to content

Commit 37ce8b1

Browse files
Merge branch 'is8159/fix-redis-client-lifecycle' of github.com:giancarloromeo/osparc-simcore into is8159/fix-redis-client-lifecycle
2 parents 69eaec2 + 5fe7224 commit 37ce8b1

File tree

139 files changed

+2163
-737
lines changed

Some content is hidden

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

139 files changed

+2163
-737
lines changed

.github/workflows/ci-pact-master.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
PACT_BROKER_PASSWORD: ${{ secrets.PACT_BROKER_PASSWORD }}
2323
steps:
2424
- name: setup python environment
25-
uses: actions/setup-python@v5
25+
uses: actions/setup-python@v6
2626
with:
2727
python-version: "3.11"
2828
- name: install uv

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,7 @@ jobs:
861861
with:
862862
driver: docker-container
863863
- name: setup python environment
864-
uses: actions/setup-python@v5
864+
uses: actions/setup-python@v6
865865
with:
866866
python-version: ${{ matrix.python }}
867867
- name: install uv
@@ -1851,7 +1851,7 @@ jobs:
18511851
with:
18521852
python-version: ${{ matrix.python }}
18531853
cache-dependency-glob: "**/e2e/requirements/requirements.txt"
1854-
- uses: actions/setup-node@v4.4.0
1854+
- uses: actions/setup-node@v5.0.0
18551855
with:
18561856
node-version: ${{ matrix.node }}
18571857
cache: "npm"

.github/workflows/ci-testing-pull-request.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
runs-on: ubuntu-latest
3636
steps:
3737
- name: setup python environment
38-
uses: actions/setup-python@v5
38+
uses: actions/setup-python@v6
3939
with:
4040
python-version: "3.11"
4141
- name: install uv
@@ -65,7 +65,7 @@ jobs:
6565
runs-on: ubuntu-latest
6666
steps:
6767
- name: setup python environment
68-
uses: actions/setup-python@v5
68+
uses: actions/setup-python@v6
6969
with:
7070
python-version: "3.11"
7171
- name: checkout
@@ -93,7 +93,7 @@ jobs:
9393
runs-on: ubuntu-latest
9494
steps:
9595
- name: setup python environment
96-
uses: actions/setup-python@v5
96+
uses: actions/setup-python@v6
9797
with:
9898
python-version: "3.11"
9999
- name: checkout

api/specs/web-server/_functions.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
FunctionGroupPathParams,
2424
)
2525
from simcore_service_webserver.functions._controller._functions_rest_schemas import (
26+
FunctionDeleteQueryParams,
2627
FunctionGetQueryParams,
2728
FunctionPathParams,
2829
FunctionsListQueryParams,
@@ -80,6 +81,7 @@ async def update_function(
8081
)
8182
async def delete_function(
8283
_path: Annotated[FunctionPathParams, Depends()],
84+
_query: Annotated[as_query(FunctionDeleteQueryParams), Depends()],
8385
): ...
8486

8587

packages/aws-library/requirements/_base.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@ jmespath==1.0.1
118118
# aiobotocore
119119
# boto3
120120
# botocore
121+
jsonref==1.1.0
122+
# via
123+
# -r requirements/../../../packages/models-library/requirements/_base.in
124+
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
121125
jsonschema==4.23.0
122126
# via
123127
# -r requirements/../../../packages/models-library/requirements/_base.in

packages/celery-library/requirements/_base.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,10 @@ idna==3.10
109109
# yarl
110110
importlib-metadata==8.6.1
111111
# via opentelemetry-api
112+
jsonref==1.1.0
113+
# via
114+
# -r requirements/../../../packages/models-library/requirements/_base.in
115+
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
112116
jsonschema==4.23.0
113117
# via
114118
# -r requirements/../../../packages/models-library/requirements/_base.in

packages/dask-task-models-library/requirements/_base.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ jinja2==3.1.6
4040
# -c requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
4141
# -c requirements/../../../requirements/constraints.txt
4242
# distributed
43+
jsonref==1.1.0
44+
# via -r requirements/../../../packages/models-library/requirements/_base.in
4345
jsonschema==4.23.0
4446
# via -r requirements/../../../packages/models-library/requirements/_base.in
4547
jsonschema-specifications==2025.4.1

packages/models-library/requirements/_base.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
--requirement ../../../packages/common-library/requirements/_base.in
66

77
arrow
8+
jsonref
89
jsonschema
910
orjson
1011
pydantic-extra-types

packages/models-library/requirements/_base.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ email-validator==2.2.0
1212
# via pydantic
1313
idna==3.10
1414
# via email-validator
15+
jsonref==1.1.0
16+
# via -r requirements/_base.in
1517
jsonschema==4.23.0
1618
# via -r requirements/_base.in
1719
jsonschema-specifications==2024.10.1

packages/models-library/src/models_library/api_schemas_webserver/users.py

Lines changed: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import re
22
from datetime import date, datetime
33
from enum import Enum
4-
from typing import Annotated, Any, Literal, Self
4+
from typing import Annotated, Any, Literal, Self, TypeAlias
55

66
import annotated_types
77
from common_library.basic_types import DEFAULT_FACTORY
@@ -18,6 +18,7 @@
1818
StringConstraints,
1919
ValidationInfo,
2020
field_validator,
21+
model_validator,
2122
)
2223
from pydantic.config import JsonDict
2324

@@ -83,7 +84,14 @@ class MyProfileRestGet(OutputSchemaWithoutCamelCase):
8384
login: LowerCaseEmailStr
8485
phone: str | None = None
8586

86-
role: Literal["ANONYMOUS", "GUEST", "USER", "TESTER", "PRODUCT_OWNER", "ADMIN"]
87+
role: Literal[
88+
"ANONYMOUS",
89+
"GUEST",
90+
"USER",
91+
"TESTER",
92+
"PRODUCT_OWNER",
93+
"ADMIN",
94+
]
8795
groups: MyGroupsGet | None = None
8896
gravatar_id: Annotated[str | None, Field(deprecated=True)] = None
8997

@@ -306,15 +314,41 @@ class UserAccountReject(InputSchema):
306314
email: EmailStr
307315

308316

317+
GlobString: TypeAlias = Annotated[
318+
str,
319+
StringConstraints(
320+
min_length=3, max_length=200, strip_whitespace=True, pattern=r"^[^%]*$"
321+
),
322+
]
323+
324+
309325
class UserAccountSearchQueryParams(RequestParameters):
310326
email: Annotated[
311-
str,
327+
GlobString | None,
312328
Field(
313-
min_length=3,
314-
max_length=200,
315329
description="complete or glob pattern for an email",
316330
),
317-
]
331+
] = None
332+
primary_group_id: Annotated[
333+
GroupID | None,
334+
Field(
335+
description="Filter by primary group ID",
336+
),
337+
] = None
338+
user_name: Annotated[
339+
GlobString | None,
340+
Field(
341+
description="complete or glob pattern for a username",
342+
),
343+
] = None
344+
345+
@model_validator(mode="after")
346+
def _validate_at_least_one_filter(self) -> Self:
347+
field_names = list(self.__class__.model_fields)
348+
if not any(getattr(self, field_name, None) for field_name in field_names):
349+
msg = f"At least one filter {field_names} must be provided"
350+
raise ValueError(msg)
351+
return self
318352

319353

320354
class UserAccountGet(OutputSchema):
@@ -340,9 +374,9 @@ class UserAccountGet(OutputSchema):
340374
# pre-registration NOTE: that some users have no pre-registartion and therefore all options here can be none
341375
pre_registration_id: int | None
342376
pre_registration_created: datetime | None
343-
invited_by: str | None = None
377+
invited_by: UserNameID | None = None
344378
account_request_status: AccountRequestStatus | None
345-
account_request_reviewed_by: UserID | None = None
379+
account_request_reviewed_by: UserNameID | None = None
346380
account_request_reviewed_at: datetime | None = None
347381

348382
# user status

0 commit comments

Comments
 (0)