diff --git a/.github/workflows/ci-testing-pull-request.yml b/.github/workflows/ci-testing-pull-request.yml index 3d877cb091a..a8c3641b4df 100644 --- a/.github/workflows/ci-testing-pull-request.yml +++ b/.github/workflows/ci-testing-pull-request.yml @@ -17,7 +17,7 @@ concurrency: jobs: api-specs: timeout-minutes: 10 - name: "check oas' are up to date" + name: "check OAS' are up to date" runs-on: ubuntu-latest steps: - name: setup python environment @@ -35,11 +35,13 @@ jobs: run: | uv venv .venv && source .venv/bin/activate make openapi-specs - ./ci/github/helpers/openapi-specs-diff.bash diff \ + if ! ./ci/github/helpers/openapi-specs-diff.bash diff \ https://raw.githubusercontent.com/${{ github.event.pull_request.head.repo.full_name }}/refs/heads/${{ github.event.pull_request.head.ref }} \ - . + .; then \ + echo "::error:: OAS are not up to date. Run 'make openapi-specs' to update them"; exit 1; \ + fi - api-server-backwards-compatibility: + api-server-oas-breaking: needs: api-specs timeout-minutes: 10 name: "api-server backwards compatibility" @@ -62,11 +64,11 @@ jobs: https://raw.githubusercontent.com/${{ github.event.pull_request.base.repo.full_name }}/refs/heads/${{ github.event.pull_request.base.ref }}/services/api-server/openapi.json \ /specs/services/api-server/openapi.json - oas-backwards-compatibility: + all-oas-breaking: needs: api-specs continue-on-error: true timeout-minutes: 10 - name: "oas backwards compatibility" + name: "OAS backwards compatibility" runs-on: ubuntu-latest steps: - name: setup python environment diff --git a/services/api-server/Makefile b/services/api-server/Makefile index 39672c9764e..82263c83658 100644 --- a/services/api-server/Makefile +++ b/services/api-server/Makefile @@ -87,6 +87,7 @@ openapi-diff.md: guard-OPENAPI_JSON_BASE_URL openapi.json ## Diffs against a rem # SEE https://schemathesis.readthedocs.io/en/stable/index.html APP_URL:=http://$(get_my_ip).nip.io:8006 + test-api: ## Runs schemathesis against development server (NOTE: make up-devel first) @docker run schemathesis/schemathesis:stable run \ "$(APP_URL)/api/v0/openapi.json" diff --git a/services/api-server/openapi.json b/services/api-server/openapi.json index ee8d7f9479d..d70ef50e6bc 100644 --- a/services/api-server/openapi.json +++ b/services/api-server/openapi.json @@ -5548,6 +5548,7 @@ "urls": { "items": { "type": "string", + "minLength": 1, "format": "uri" }, "type": "array", @@ -6161,6 +6162,7 @@ }, "download_link": { "type": "string", + "minLength": 1, "format": "uri", "title": "Download Link" } diff --git a/services/api-server/requirements/_base.txt b/services/api-server/requirements/_base.txt index 48d12d8b832..a49ef21c613 100644 --- a/services/api-server/requirements/_base.txt +++ b/services/api-server/requirements/_base.txt @@ -1,8 +1,8 @@ -aio-pika==9.4.1 +aio-pika==9.5.3 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -aiocache==0.12.2 +aiocache==0.12.3 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in @@ -11,17 +11,19 @@ aiodebug==2.3.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -aiodocker==0.21.0 +aiodocker==0.24.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -aiofiles==23.2.1 +aiofiles==24.1.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/_base.in # -r requirements/_base.in -aiohttp==3.9.3 +aiohappyeyeballs==2.4.4 + # via aiohttp +aiohttp==3.11.10 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -57,25 +59,23 @@ aiopg==1.4.0 # via # -r requirements/../../../packages/simcore-sdk/requirements/_base.in # -r requirements/_base.in -aiormq==6.8.0 +aiormq==6.8.1 # via aio-pika aiosignal==1.3.1 # via aiohttp -alembic==1.13.1 +alembic==1.14.0 # via # -r requirements/../../../packages/postgres-database/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/postgres-database/requirements/_base.in annotated-types==0.7.0 # via pydantic -anyio==4.3.0 +anyio==4.7.0 # via # fast-depends # faststream # httpx # starlette # watchfiles -appdirs==1.4.4 - # via pint arrow==1.3.0 # via # -r requirements/../../../packages/models-library/requirements/_base.in @@ -87,16 +87,14 @@ arrow==1.3.0 asgiref==3.8.1 # via opentelemetry-instrumentation-asgi async-timeout==4.0.3 - # via - # aiopg - # asyncpg -asyncpg==0.29.0 + # via aiopg +asyncpg==0.30.0 # via sqlalchemy -attrs==23.2.0 +attrs==24.2.0 # via # aiohttp # jsonschema -certifi==2024.2.2 +certifi==2024.8.30 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -129,15 +127,16 @@ certifi==2024.2.2 # httpcore # httpx # requests -cffi==1.16.0 +cffi==1.17.1 # via cryptography -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 # via requests click==8.1.7 # via + # rich-toolkit # typer # uvicorn -cryptography==42.0.5 +cryptography==44.0.0 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -168,58 +167,59 @@ cryptography==42.0.5 # -c requirements/../../../packages/simcore-sdk/requirements/../../../requirements/constraints.txt # -c requirements/../../../requirements/constraints.txt # -r requirements/_base.in -deprecated==1.2.14 +deprecated==1.2.15 # via # opentelemetry-api # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http # opentelemetry-semantic-conventions -dnspython==2.6.1 +dnspython==2.7.0 # via email-validator -email-validator==2.1.1 +email-validator==2.2.0 # via # fastapi # pydantic -fast-depends==2.4.2 +exceptiongroup==1.2.2 + # via aio-pika +fast-depends==2.4.12 # via faststream -fastapi==0.115.5 +fastapi==0.115.6 # via # -r requirements/../../../packages/service-library/requirements/_fastapi.in # -r requirements/_base.in - # prometheus-fastapi-instrumentator -fastapi-cli==0.0.5 +fastapi-cli==0.0.6 # via fastapi -fastapi-pagination==0.12.31 +fastapi-pagination==0.12.32 # via -r requirements/_base.in -faststream==0.5.31 +faststream==0.5.33 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in flexcache==0.3 # via pint -flexparser==0.3.1 +flexparser==0.4 # via pint -frozenlist==1.4.1 +frozenlist==1.5.0 # via # aiohttp # aiosignal -googleapis-common-protos==1.65.0 +googleapis-common-protos==1.66.0 # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -greenlet==3.0.3 +greenlet==3.1.1 # via sqlalchemy -grpcio==1.66.0 +grpcio==1.68.1 # via opentelemetry-exporter-otlp-proto-grpc h11==0.14.0 # via # httpcore # uvicorn -httpcore==1.0.5 +httpcore==1.0.7 # via httpx -httptools==0.6.1 +httptools==0.6.4 # via uvicorn -httpx==0.27.0 +httpx==0.27.2 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -249,21 +249,22 @@ httpx==0.27.0 # -c requirements/../../../packages/simcore-sdk/requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/simcore-sdk/requirements/../../../requirements/constraints.txt # -c requirements/../../../requirements/constraints.txt + # -c requirements/./constraints.txt # -r requirements/../../../packages/service-library/requirements/_fastapi.in # -r requirements/_base.in # fastapi -idna==3.6 +idna==3.10 # via # anyio # email-validator # httpx # requests # yarl -importlib-metadata==8.0.0 +importlib-metadata==8.5.0 # via opentelemetry-api -itsdangerous==2.1.2 +itsdangerous==2.2.0 # via fastapi -jinja2==3.1.3 +jinja2==3.1.4 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -301,7 +302,7 @@ jsonschema==3.2.0 # -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/models-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in -mako==1.3.2 +mako==1.3.7 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -334,17 +335,17 @@ mako==1.3.2 # alembic markdown-it-py==3.0.0 # via rich -markupsafe==2.1.5 +markupsafe==3.0.2 # via # jinja2 # mako mdurl==0.1.2 # via markdown-it-py -multidict==6.0.5 +multidict==6.1.0 # via # aiohttp # yarl -opentelemetry-api==1.27.0 +opentelemetry-api==1.28.2 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in @@ -362,19 +363,19 @@ opentelemetry-api==1.27.0 # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-otlp==1.27.0 +opentelemetry-exporter-otlp==1.28.2 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-exporter-otlp-proto-common==1.27.0 +opentelemetry-exporter-otlp-proto-common==1.28.2 # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-grpc==1.27.0 +opentelemetry-exporter-otlp-proto-grpc==1.28.2 # via opentelemetry-exporter-otlp -opentelemetry-exporter-otlp-proto-http==1.27.0 +opentelemetry-exporter-otlp-proto-http==1.28.2 # via opentelemetry-exporter-otlp -opentelemetry-instrumentation==0.48b0 +opentelemetry-instrumentation==0.49b2 # via # opentelemetry-instrumentation-aiopg # opentelemetry-instrumentation-asgi @@ -385,45 +386,46 @@ opentelemetry-instrumentation==0.48b0 # opentelemetry-instrumentation-logging # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests -opentelemetry-instrumentation-aiopg==0.48b0 +opentelemetry-instrumentation-aiopg==0.49b2 # via -r requirements/../../../packages/simcore-sdk/requirements/_base.in -opentelemetry-instrumentation-asgi==0.48b0 +opentelemetry-instrumentation-asgi==0.49b2 # via opentelemetry-instrumentation-fastapi -opentelemetry-instrumentation-asyncpg==0.48b0 +opentelemetry-instrumentation-asyncpg==0.49b2 # via # -r requirements/../../../packages/postgres-database/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/postgres-database/requirements/_base.in -opentelemetry-instrumentation-dbapi==0.48b0 +opentelemetry-instrumentation-dbapi==0.49b2 # via opentelemetry-instrumentation-aiopg -opentelemetry-instrumentation-fastapi==0.48b0 +opentelemetry-instrumentation-fastapi==0.49b2 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in -opentelemetry-instrumentation-httpx==0.48b0 +opentelemetry-instrumentation-httpx==0.49b2 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in -opentelemetry-instrumentation-logging==0.48b0 +opentelemetry-instrumentation-logging==0.49b2 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-instrumentation-redis==0.48b0 +opentelemetry-instrumentation-redis==0.49b2 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-instrumentation-requests==0.48b0 +opentelemetry-instrumentation-requests==0.49b2 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-proto==1.27.0 +opentelemetry-proto==1.28.2 # via # opentelemetry-exporter-otlp-proto-common # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.27.0 +opentelemetry-sdk==1.28.2 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.48b0 +opentelemetry-semantic-conventions==0.49b2 # via + # opentelemetry-instrumentation # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-dbapi @@ -432,13 +434,13 @@ opentelemetry-semantic-conventions==0.48b0 # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk -opentelemetry-util-http==0.48b0 +opentelemetry-util-http==0.49b2 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi # opentelemetry-instrumentation-httpx # opentelemetry-instrumentation-requests -orjson==3.10.0 +orjson==3.10.12 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -488,37 +490,44 @@ orjson==3.10.0 # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/settings-library/requirements/../../../packages/common-library/requirements/_base.in # -r requirements/_base.in # fastapi -packaging==24.0 +packaging==24.2 # via # -r requirements/../../../packages/simcore-sdk/requirements/_base.in # -r requirements/_base.in + # opentelemetry-instrumentation pamqp==3.3.0 # via aiormq parse==1.20.2 # via -r requirements/_base.in -pint==0.24.3 +pint==0.24.4 # via -r requirements/../../../packages/simcore-sdk/requirements/_base.in -prometheus-client==0.20.0 +platformdirs==4.3.6 + # via pint +prometheus-client==0.21.1 # via # -r requirements/../../../packages/service-library/requirements/_fastapi.in # prometheus-fastapi-instrumentator -prometheus-fastapi-instrumentator==6.1.0 +prometheus-fastapi-instrumentator==7.0.0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in -protobuf==4.25.4 +propcache==0.2.1 + # via + # aiohttp + # yarl +protobuf==5.29.1 # via # googleapis-common-protos # opentelemetry-proto -psutil==6.0.0 +psutil==6.1.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -psycopg2-binary==2.9.9 +psycopg2-binary==2.9.10 # via # aiopg # sqlalchemy pycparser==2.22 # via cffi -pydantic==2.10.2 +pydantic==2.10.3 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -583,7 +592,7 @@ pydantic==2.10.2 # pydantic-settings pydantic-core==2.27.1 # via pydantic -pydantic-extra-types==2.9.0 +pydantic-extra-types==2.10.0 # via # -r requirements/../../../packages/common-library/requirements/_base.in # -r requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/_base.in @@ -615,9 +624,9 @@ pydantic-settings==2.6.1 # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/settings-library/requirements/_base.in # fastapi -pygments==2.17.2 +pygments==2.18.0 # via rich -pyinstrument==4.6.2 +pyinstrument==5.0.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in @@ -629,9 +638,9 @@ python-dotenv==1.0.1 # via # pydantic-settings # uvicorn -python-multipart==0.0.9 +python-multipart==0.0.19 # via fastapi -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -666,7 +675,7 @@ pyyaml==6.0.1 # -r requirements/_base.in # fastapi # uvicorn -redis==5.0.4 +redis==5.2.0 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -704,20 +713,21 @@ repro-zipfile==0.3.1 # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in requests==2.32.3 # via opentelemetry-exporter-otlp-proto-http -rich==13.7.1 +rich==13.9.4 # via # -r requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in # -r requirements/../../../packages/settings-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/settings-library/requirements/_base.in + # rich-toolkit # typer -setuptools==69.2.0 - # via - # jsonschema - # opentelemetry-instrumentation +rich-toolkit==0.12.0 + # via fastapi-cli +setuptools==75.6.0 + # via jsonschema shellingham==1.5.4 # via typer -six==1.16.0 +six==1.17.0 # via # jsonschema # python-dateutil @@ -725,7 +735,7 @@ sniffio==1.3.1 # via # anyio # httpx -sqlalchemy==1.4.52 +sqlalchemy==1.4.54 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -759,7 +769,7 @@ sqlalchemy==1.4.52 # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/postgres-database/requirements/_base.in # aiopg # alembic -starlette==0.41.2 +starlette==0.41.3 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -790,22 +800,23 @@ starlette==0.41.2 # -c requirements/../../../packages/simcore-sdk/requirements/../../../requirements/constraints.txt # -c requirements/../../../requirements/constraints.txt # fastapi -tenacity==8.5.0 + # prometheus-fastapi-instrumentator +tenacity==9.0.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/_base.in # -r requirements/_base.in -toolz==0.12.1 +toolz==1.0.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -tqdm==4.66.2 +tqdm==4.67.1 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/_base.in -typer==0.12.3 +typer==0.15.1 # via # -r requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in # -r requirements/../../../packages/settings-library/requirements/_base.in @@ -813,13 +824,13 @@ typer==0.12.3 # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/settings-library/requirements/_base.in # -r requirements/_base.in # fastapi-cli -types-python-dateutil==2.9.0.20240316 +types-python-dateutil==2.9.0.20241206 # via arrow typing-extensions==4.12.2 # via # aiodebug - # aiodocker # alembic + # anyio # fastapi # fastapi-pagination # faststream @@ -829,8 +840,10 @@ typing-extensions==4.12.2 # pint # pydantic # pydantic-core + # pydantic-extra-types + # rich-toolkit # typer -ujson==5.9.0 +ujson==5.10.0 # via # -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt # -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt @@ -892,25 +905,26 @@ urllib3==2.2.3 # -c requirements/../../../packages/simcore-sdk/requirements/../../../requirements/constraints.txt # -c requirements/../../../requirements/constraints.txt # requests -uvicorn==0.29.0 +uvicorn==0.32.1 # via # -r requirements/../../../packages/service-library/requirements/_fastapi.in # fastapi # fastapi-cli -uvloop==0.19.0 +uvloop==0.21.0 # via uvicorn -watchfiles==0.21.0 +watchfiles==1.0.0 # via uvicorn -websockets==12.0 +websockets==14.1 # via uvicorn -wrapt==1.16.0 +wrapt==1.17.0 # via # deprecated # opentelemetry-instrumentation # opentelemetry-instrumentation-aiopg # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-httpx # opentelemetry-instrumentation-redis -yarl==1.9.4 +yarl==1.18.3 # via # -r requirements/../../../packages/postgres-database/requirements/_base.in # -r requirements/../../../packages/service-library/requirements/_base.in @@ -919,5 +933,5 @@ yarl==1.9.4 # aio-pika # aiohttp # aiormq -zipp==3.20.1 +zipp==3.21.0 # via importlib-metadata diff --git a/services/api-server/requirements/_test.txt b/services/api-server/requirements/_test.txt index e5254193173..a9341530919 100644 --- a/services/api-server/requirements/_test.txt +++ b/services/api-server/requirements/_test.txt @@ -1,25 +1,29 @@ -aiohttp==3.9.3 +aiohappyeyeballs==2.4.4 + # via + # -c requirements/_base.txt + # aiohttp +aiohttp==3.11.10 # via # -c requirements/../../../requirements/constraints.txt # -c requirements/_base.txt # aioresponses -aioresponses==0.7.6 +aioresponses==0.7.7 # via -r requirements/_test.in aiosignal==1.3.1 # via # -c requirements/_base.txt # aiohttp -alembic==1.13.1 +alembic==1.14.0 # via # -c requirements/_base.txt # -r requirements/_test.in -anyio==4.3.0 +anyio==4.7.0 # via # -c requirements/_base.txt # httpx asgi-lifespan==2.1.0 # via -r requirements/_test.in -attrs==23.2.0 +attrs==24.2.0 # via # -c requirements/_base.txt # aiohttp @@ -33,28 +37,26 @@ aws-sam-translator==1.55.0 # cfn-lint aws-xray-sdk==2.14.0 # via moto -boto3==1.35.25 +boto3==1.35.76 # via # aws-sam-translator # moto -boto3-stubs==1.35.25 - # via types-boto3 -botocore==1.35.25 +botocore==1.35.76 # via # aws-xray-sdk # boto3 # moto # s3transfer -botocore-stubs==1.35.25 - # via boto3-stubs -certifi==2024.2.2 +botocore-stubs==1.35.76 + # via types-boto3 +certifi==2024.8.30 # via # -c requirements/../../../requirements/constraints.txt # -c requirements/_base.txt # httpcore # httpx # requests -cffi==1.16.0 +cffi==1.17.1 # via # -c requirements/_base.txt # cryptography @@ -62,7 +64,7 @@ cfn-lint==0.72.0 # via # -c requirements/./constraints.txt # moto -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 # via # -c requirements/_base.txt # requests @@ -71,9 +73,9 @@ click==8.1.7 # -c requirements/_base.txt # -r requirements/_test.in # flask -coverage==7.6.1 +coverage==7.6.8 # via pytest-cov -cryptography==42.0.5 +cryptography==44.0.0 # via # -c requirements/../../../requirements/constraints.txt # -c requirements/_base.txt @@ -89,7 +91,7 @@ ecdsa==0.19.0 # moto # python-jose # sshpubkeys -faker==29.0.0 +faker==33.1.0 # via -r requirements/_test.in flask==2.1.3 # via @@ -97,14 +99,14 @@ flask==2.1.3 # moto flask-cors==5.0.0 # via moto -frozenlist==1.4.1 +frozenlist==1.5.0 # via # -c requirements/_base.txt # aiohttp # aiosignal -graphql-core==3.2.4 +graphql-core==3.2.5 # via moto -greenlet==3.0.3 +greenlet==3.1.1 # via # -c requirements/_base.txt # sqlalchemy @@ -112,16 +114,17 @@ h11==0.14.0 # via # -c requirements/_base.txt # httpcore -httpcore==1.0.5 +httpcore==1.0.7 # via # -c requirements/_base.txt # httpx -httpx==0.27.0 +httpx==0.27.2 # via # -c requirements/../../../requirements/constraints.txt # -c requirements/_base.txt + # -c requirements/./constraints.txt # respx -idna==3.6 +idna==3.10 # via # -c requirements/_base.txt # anyio @@ -131,11 +134,11 @@ idna==3.6 # yarl iniconfig==2.0.0 # via pytest -itsdangerous==2.1.2 +itsdangerous==2.2.0 # via # -c requirements/_base.txt # flask -jinja2==3.1.3 +jinja2==3.1.4 # via # -c requirements/../../../requirements/constraints.txt # -c requirements/_base.txt @@ -151,7 +154,7 @@ jsondiff==2.2.1 # via moto jsonpatch==1.33 # via cfn-lint -jsonpickle==3.3.0 +jsonpickle==4.0.0 # via jschema-to-python jsonpointer==3.0.0 # via jsonpatch @@ -167,12 +170,12 @@ jsonschema==3.2.0 # openapi-spec-validator junit-xml==1.9 # via cfn-lint -mako==1.3.2 +mako==1.3.7 # via # -c requirements/../../../requirements/constraints.txt # -c requirements/_base.txt # alembic -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -c requirements/_base.txt # jinja2 @@ -182,12 +185,12 @@ moto==4.0.1 # via # -c requirements/./constraints.txt # -r requirements/_test.in -multidict==6.0.5 +multidict==6.1.0 # via # -c requirements/_base.txt # aiohttp # yarl -mypy==1.12.0 +mypy==1.13.0 # via sqlalchemy mypy-extensions==1.0.0 # via mypy @@ -199,9 +202,10 @@ openapi-spec-validator==0.4.0 # via # -c requirements/./constraints.txt # moto -packaging==24.0 +packaging==24.2 # via # -c requirements/_base.txt + # aioresponses # pytest pbr==6.1.0 # via @@ -209,6 +213,11 @@ pbr==6.1.0 # sarif-om pluggy==1.5.0 # via pytest +propcache==0.2.1 + # via + # -c requirements/_base.txt + # aiohttp + # yarl pyasn1==0.6.1 # via # python-jose @@ -217,17 +226,17 @@ pycparser==2.22 # via # -c requirements/_base.txt # cffi -pyinstrument==4.6.2 +pyinstrument==5.0.0 # via # -c requirements/_base.txt # -r requirements/_test.in -pyparsing==3.1.4 +pyparsing==3.2.0 # via moto pyrsistent==0.20.0 # via # -c requirements/_base.txt # jsonschema -pytest==8.3.3 +pytest==8.3.4 # via # -r requirements/_test.in # pytest-asyncio @@ -238,7 +247,7 @@ pytest-asyncio==0.23.8 # via # -c requirements/../../../requirements/constraints.txt # -r requirements/_test.in -pytest-cov==5.0.0 +pytest-cov==6.0.0 # via -r requirements/_test.in pytest-docker==3.1.1 # via -r requirements/_test.in @@ -256,7 +265,7 @@ python-jose==3.3.0 # via moto pytz==2024.2 # via moto -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c requirements/../../../requirements/constraints.txt # -c requirements/_base.txt @@ -279,17 +288,17 @@ rsa==4.9 # via # -c requirements/../../../requirements/constraints.txt # python-jose -s3transfer==0.10.2 +s3transfer==0.10.4 # via boto3 sarif-om==1.0.4 # via cfn-lint -setuptools==69.2.0 +setuptools==75.6.0 # via # -c requirements/_base.txt # jsonschema # moto # openapi-spec-validator -six==1.16.0 +six==1.17.0 # via # -c requirements/_base.txt # ecdsa @@ -302,7 +311,7 @@ sniffio==1.3.1 # anyio # asgi-lifespan # httpx -sqlalchemy==1.4.52 +sqlalchemy==1.4.54 # via # -c requirements/../../../requirements/constraints.txt # -c requirements/_base.txt @@ -314,19 +323,21 @@ sshpubkeys==3.3.1 # via moto types-aiofiles==24.1.0.20240626 # via -r requirements/_test.in -types-awscrt==0.21.5 +types-awscrt==0.23.3 # via botocore-stubs -types-boto3==1.0.2 +types-boto3==1.35.76 # via -r requirements/_test.in -types-s3transfer==0.10.2 - # via boto3-stubs +types-s3transfer==0.10.4 + # via types-boto3 typing-extensions==4.12.2 # via # -c requirements/_base.txt # alembic - # boto3-stubs + # anyio + # faker # mypy # sqlalchemy2-stubs + # types-boto3 urllib3==2.2.3 # via # -c requirements/../../../requirements/constraints.txt @@ -339,13 +350,13 @@ werkzeug==2.1.2 # via # flask # moto -wrapt==1.16.0 +wrapt==1.17.0 # via # -c requirements/_base.txt # aws-xray-sdk -xmltodict==0.13.0 +xmltodict==0.14.2 # via moto -yarl==1.9.4 +yarl==1.18.3 # via # -c requirements/_base.txt # aiohttp diff --git a/services/api-server/requirements/_tools.txt b/services/api-server/requirements/_tools.txt index 795564deb10..ba68de2e0b8 100644 --- a/services/api-server/requirements/_tools.txt +++ b/services/api-server/requirements/_tools.txt @@ -1,8 +1,8 @@ -astroid==3.3.4 +astroid==3.3.5 # via pylint -black==24.8.0 +black==24.10.0 # via -r requirements/../../../requirements/devenv.txt -build==1.2.2 +build==1.2.2.post1 # via pip-tools bump2version==1.0.1 # via -r requirements/../../../requirements/devenv.txt @@ -16,32 +16,32 @@ click==8.1.7 # -c requirements/_test.txt # black # pip-tools -dill==0.3.8 +dill==0.3.9 # via pylint -distlib==0.3.8 +distlib==0.3.9 # via virtualenv filelock==3.16.1 # via virtualenv -identify==2.6.1 +identify==2.6.3 # via pre-commit isort==5.13.2 # via # -r requirements/../../../requirements/devenv.txt # pylint -jinja2==3.1.3 +jinja2==3.1.4 # via # -c requirements/../../../requirements/constraints.txt # -c requirements/_base.txt # -c requirements/_test.txt # -r requirements/_tools.in -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -c requirements/_base.txt # -c requirements/_test.txt # jinja2 mccabe==0.7.0 # via pylint -mypy==1.12.0 +mypy==1.13.0 # via # -c requirements/_test.txt # -r requirements/../../../requirements/devenv.txt @@ -52,7 +52,7 @@ mypy-extensions==1.0.0 # mypy nodeenv==1.9.1 # via pre-commit -packaging==24.0 +packaging==24.2 # via # -c requirements/_base.txt # -c requirements/_test.txt @@ -60,33 +60,34 @@ packaging==24.0 # build pathspec==0.12.1 # via black -pip==24.2 +pip==24.3.1 # via pip-tools pip-tools==7.4.1 # via -r requirements/../../../requirements/devenv.txt platformdirs==4.3.6 # via + # -c requirements/_base.txt # black # pylint # virtualenv -pre-commit==3.8.0 +pre-commit==4.0.1 # via -r requirements/../../../requirements/devenv.txt -pylint==3.3.0 +pylint==3.3.2 # via -r requirements/../../../requirements/devenv.txt -pyproject-hooks==1.1.0 +pyproject-hooks==1.2.0 # via # build # pip-tools -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c requirements/../../../requirements/constraints.txt # -c requirements/_base.txt # -c requirements/_test.txt # pre-commit # watchdog -ruff==0.6.7 +ruff==0.8.2 # via -r requirements/../../../requirements/devenv.txt -setuptools==69.2.0 +setuptools==75.6.0 # via # -c requirements/_base.txt # -c requirements/_test.txt @@ -98,9 +99,9 @@ typing-extensions==4.12.2 # -c requirements/_base.txt # -c requirements/_test.txt # mypy -virtualenv==20.26.5 +virtualenv==20.28.0 # via pre-commit -watchdog==5.0.2 +watchdog==6.0.0 # via -r requirements/_tools.in -wheel==0.44.0 +wheel==0.45.1 # via pip-tools diff --git a/services/api-server/requirements/constraints.txt b/services/api-server/requirements/constraints.txt index 6247b000156..2991a5be8b4 100644 --- a/services/api-server/requirements/constraints.txt +++ b/services/api-server/requirements/constraints.txt @@ -40,3 +40,6 @@ aws-sam-translator<1.56.0 # # aws-sam-translator<1.55.0 (from -c ./constraints.txt (line 32)) # # aws-sam-translator>=1.57.0 (from cfn-lint==0.72.10->-c ./constraints.txt (line 33)) cfn-lint<0.72.1 + +# due to https://github.com/lundberg/respx/pull/278 +httpx!=0.28.0 diff --git a/services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml b/services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml index db975aa23c3..bc73e5441d2 100644 --- a/services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml +++ b/services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml @@ -396,6 +396,12 @@ paths: application/json: schema: $ref: '#/components/schemas/Envelope_list_ApiKeyGet__' + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/EnvelopedError' '404': description: Not Found content: @@ -421,6 +427,12 @@ paths: application/json: schema: $ref: '#/components/schemas/Envelope_ApiKeyCreateResponse_' + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/EnvelopedError' '404': description: Not Found content: @@ -450,6 +462,12 @@ paths: application/json: schema: $ref: '#/components/schemas/Envelope_ApiKeyGet_' + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/EnvelopedError' + description: Conflict '404': content: application/json: @@ -474,6 +492,12 @@ paths: responses: '204': description: Successful Response + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/EnvelopedError' + description: Conflict '404': content: application/json: @@ -6765,6 +6789,11 @@ components: title: ApiKeyCreateRequest ApiKeyCreateResponse: properties: + id: + type: string + maxLength: 100 + minLength: 1 + title: Id displayName: type: string minLength: 3 @@ -6777,11 +6806,6 @@ components: title: Expiration description: Time delta from creation time to expiration. If None, then it does not expire. - id: - type: string - maxLength: 100 - minLength: 1 - title: Id apiBaseUrl: type: string title: Apibaseurl @@ -6793,8 +6817,8 @@ components: title: Apisecret type: object required: - - displayName - id + - displayName - apiBaseUrl - apiKey - apiSecret