Skip to content

Commit e9a9426

Browse files
authored
Merge branch 'master' into enh/grouped-list-view
2 parents a3de6b0 + 3917210 commit e9a9426

File tree

172 files changed

+1105
-713
lines changed

Some content is hidden

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

172 files changed

+1105
-713
lines changed

api/specs/web-server/_auth_api_keys.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from typing import Annotated
22

3+
from _common import as_query
34
from fastapi import APIRouter, Depends, status
45
from models_library.api_schemas_webserver.auth import (
56
ApiKeyCreateRequest,
67
ApiKeyCreateResponse,
78
ApiKeyGet,
9+
ApiKeyListQueryParams,
810
)
911
from models_library.generics import Envelope
1012
from models_library.rest_error import EnvelopedError
@@ -39,7 +41,9 @@ async def create_api_key(_body: ApiKeyCreateRequest):
3941
response_model=Envelope[list[ApiKeyGet]],
4042
status_code=status.HTTP_200_OK,
4143
)
42-
async def list_api_keys():
44+
async def list_api_keys(
45+
_query: Annotated[as_query(ApiKeyListQueryParams), Depends()],
46+
):
4347
"""lists API keys by this user"""
4448

4549

api/specs/web-server/_long_running_tasks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from models_library.generics import Envelope
1111
from models_library.rest_error import EnvelopedError
1212
from servicelib.aiohttp.long_running_tasks._routes import _PathParam
13-
from servicelib.long_running_tasks._models import TaskGet, TaskStatus
13+
from servicelib.long_running_tasks.models import TaskGet, TaskStatus
1414
from simcore_service_webserver._meta import API_VTAG
1515
from simcore_service_webserver.tasks._exception_handlers import (
1616
_TO_HTTP_ERROR_MAP as export_data_http_error_map,

api/specs/web-server/_long_running_tasks_legacy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from fastapi import APIRouter, Depends, status
1010
from models_library.generics import Envelope
1111
from servicelib.aiohttp.long_running_tasks._routes import _PathParam
12-
from servicelib.long_running_tasks._models import TaskGet, TaskStatus
12+
from servicelib.long_running_tasks.models import TaskGet, TaskStatus
1313
from simcore_service_webserver._meta import API_VTAG
1414

1515
router = APIRouter(

api/tests/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
aiohappyeyeballs==2.6.1
22
# via aiohttp
3-
aiohttp==3.11.18
3+
aiohttp==3.12.12
44
# via
55
# -c ../../requirements/constraints.txt
66
# -r requirements.in

ci/helpers/requirements/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
aiohappyeyeballs==2.6.1
22
# via aiohttp
3-
aiohttp==3.11.18
3+
aiohttp==3.12.12
44
# via
55
# -c requirements/../../../requirements/constraints.txt
66
# -r requirements/requirements.in

packages/aws-library/requirements/_base.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ aiofiles==24.1.0
1818
# aioboto3
1919
aiohappyeyeballs==2.6.1
2020
# via aiohttp
21-
aiohttp==3.11.18
21+
aiohttp==3.12.12
2222
# via
2323
# -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
2424
# -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from typing import Annotated, Any
33

44
from models_library.basic_types import IDStr
5+
from models_library.rest_base import RequestParameters
56
from pydantic import AliasGenerator, ConfigDict, Field, HttpUrl, SecretStr
67
from pydantic.alias_generators import to_camel
78

@@ -53,6 +54,17 @@ class UnregisterCheck(InputSchema):
5354
#
5455

5556

57+
class ApiKeyListQueryParams(RequestParameters):
58+
include_autogenerated: Annotated[
59+
bool,
60+
Field(
61+
alias="includeAutogenerated",
62+
description="If True, then the list includes autogenerated API keys. "
63+
"Otherwise, only user-created API keys are returned.",
64+
),
65+
] = False
66+
67+
5668
class ApiKeyCreateRequest(InputSchema):
5769
display_name: Annotated[str, Field(..., min_length=3)]
5870
expiration: Annotated[
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from typing import Final
2+
3+
from models_library.rpc.webserver.auth.api_keys import generate_api_key_prefix
4+
5+
API_KEY_AUTOGENERATED_DISPLAY_NAME_PREFIX: Final[str] = "__auto_"
6+
API_KEY_AUTOGENERATED_KEY_PREFIX: Final[str] = generate_api_key_prefix(
7+
API_KEY_AUTOGENERATED_DISPLAY_NAME_PREFIX
8+
)

packages/models-library/src/models_library/rpc/webserver/auth/api_keys.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,12 @@
1616
_SECRET_LEN: Final = 20
1717

1818

19+
def generate_api_key_prefix(name: str) -> str:
20+
return _PUNCTUATION_REGEX.sub("_", name[:5])
21+
22+
1923
def generate_unique_api_key(name: str, length: int = _KEY_LEN) -> str:
20-
prefix = _PUNCTUATION_REGEX.sub("_", name[:5])
24+
prefix = generate_api_key_prefix(name)
2125
hashed = hashlib.sha256(name.encode()).hexdigest()
2226
return f"{prefix}_{hashed[:length]}"
2327

packages/notifications-library/requirements/_test.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ aiodocker==0.24.0
22
# via -r requirements/_test.in
33
aiohappyeyeballs==2.6.1
44
# via aiohttp
5-
aiohttp==3.11.18
5+
aiohttp==3.12.12
66
# via
77
# -c requirements/../../../requirements/constraints.txt
88
# aiodocker

0 commit comments

Comments
 (0)