Skip to content

Commit f6a77cb

Browse files
author
Andrei Neagu
committed
Merge remote-tracking branch 'upstream/master' into pr-osparc-s3-zip-stream-worker-code
2 parents ded5d00 + 72ed036 commit f6a77cb

File tree

921 files changed

+30329
-15354
lines changed

Some content is hidden

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

921 files changed

+30329
-15354
lines changed

.codecov.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ flag_management:
1818

1919
component_management:
2020
default_rules:
21-
carryforward: true
2221
statuses:
2322
- type: project
2423
target: auto

.env-devel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ CATALOG_SERVICES_DEFAULT_RESOURCES='{"CPU": {"limit": 0.1, "reservation": 0.1},
4949
CATALOG_SERVICES_DEFAULT_SPECIFICATIONS='{}'
5050
CATALOG_TRACING=null
5151

52+
CELERY_RESULT_EXPIRES=P7D
53+
5254
CLUSTERS_KEEPER_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"}'
5355
CLUSTERS_KEEPER_COMPUTATIONAL_BACKEND_DOCKER_IMAGE_TAG=master-github-latest
5456
CLUSTERS_KEEPER_DASK_NTHREADS=0
@@ -250,8 +252,6 @@ SMTP_PROTOCOL=UNENCRYPTED
250252
SMTP_USERNAME=it_doesnt_matter
251253

252254
# STORAGE ----
253-
BF_API_KEY=none
254-
BF_API_SECRET=none
255255
STORAGE_ENDPOINT=storage:8080
256256
STORAGE_HOST=storage
257257
STORAGE_LOGLEVEL=INFO

.github/CODEOWNERS

Lines changed: 40 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,45 +4,46 @@
44

55

66
# files and folders recursively
7-
.env-* @mrnicegyu11 @YuryHrytsuk
8-
Makefile @pcrespov @sanderegg
7+
.env-* @mrnicegyu11 @YuryHrytsuk
8+
Makefile @pcrespov @sanderegg
99

1010

1111
# NOTE: '/' denotes the root of the repository
12-
/.github/ @sanderegg @pcrespov
13-
/api/ @sanderegg @pcrespov @matusdrobuliak66
14-
/ci/ @sanderegg @pcrespov
15-
/docs/ @pcrespov
16-
/packages/common-library/ @giancarloromeo
17-
/packages/models-library/ @sanderegg @pcrespov @matusdrobuliak66 @giancarloromeo
18-
/packages/postgres-database/ @matusdrobuliak66
19-
/packages/pytest-simcore/ @pcrespov @sanderegg
20-
/packages/service-integration/ @pcrespov @sanderegg @GitHK
21-
/packages/service-library/ @pcrespov
22-
/packages/settings-library/ @pcrespov @sanderegg
23-
/requirements/ @pcrespov @matusdrobuliak66
24-
/services/agent/ @GitHK
25-
/services/api-server/ @pcrespov
26-
/services/autoscaling/ @sanderegg
27-
/services/catalog/ @pcrespov @sanderegg
28-
/services/clusters-keeper/ @sanderegg
29-
/services/datcore-adapter/ @sanderegg
30-
/services/director*/ @sanderegg @pcrespov @GitHK
31-
/services/docker-compose*.yml @sanderegg @mrnicegyu11 @YuryHrytsuk
32-
/services/dynamic-sidecar/ @GitHK
33-
/services/efs-guardian/ @matusdrobuliak66
34-
/services/invitations/ @pcrespov
35-
/services/migration/ @pcrespov
36-
/services/payments/ @pcrespov @matusdrobuliak66
37-
/services/resource-usage-tracker/ @matusdrobuliak66
38-
/services/static-webserver/ @GitHK
39-
/services/static-webserver/client/ @odeimaiz
40-
/services/storage/ @sanderegg
41-
/services/web/server/ @pcrespov @sanderegg @GitHK @matusdrobuliak66
42-
/tests/e2e-frontend/ @odeimaiz
43-
/tests/e2e-playwright/ @matusdrobuliak66
44-
/tests/environment-setup/ @pcrespov
45-
/tests/performance/ @pcrespov @sanderegg
46-
/tests/public-api/ @pcrespov
47-
requirements/* @pcrespov
48-
tools/* @pcrespov
12+
/.github/ @sanderegg @pcrespov
13+
/api/ @sanderegg @pcrespov @matusdrobuliak66
14+
/ci/ @sanderegg @pcrespov
15+
/docs/ @pcrespov
16+
/packages/common-library/ @giancarloromeo
17+
/packages/models-library/ @sanderegg @pcrespov @matusdrobuliak66 @giancarloromeo
18+
/packages/postgres-database/ @matusdrobuliak66
19+
/packages/pytest-simcore/ @pcrespov @sanderegg
20+
/packages/service-integration/ @pcrespov @sanderegg @GitHK
21+
/packages/service-library/ @pcrespov
22+
/packages/settings-library/ @pcrespov @sanderegg
23+
/requirements/ @pcrespov @matusdrobuliak66
24+
/services/agent/ @GitHK
25+
/services/api-server/ @pcrespov
26+
/services/api-server/tests/unit/pact_broker/ @matusdrobuliak66
27+
/services/autoscaling/ @sanderegg
28+
/services/catalog/ @pcrespov @sanderegg
29+
/services/clusters-keeper/ @sanderegg
30+
/services/datcore-adapter/ @sanderegg
31+
/services/director*/ @sanderegg @pcrespov @GitHK
32+
/services/docker-compose*.yml @sanderegg @mrnicegyu11 @YuryHrytsuk
33+
/services/dynamic-sidecar/ @GitHK
34+
/services/efs-guardian/ @matusdrobuliak66
35+
/services/invitations/ @pcrespov
36+
/services/migration/ @pcrespov
37+
/services/payments/ @pcrespov @matusdrobuliak66
38+
/services/resource-usage-tracker/ @matusdrobuliak66
39+
/services/static-webserver/ @GitHK
40+
/services/static-webserver/client/ @odeimaiz
41+
/services/storage/ @sanderegg
42+
/services/web/server/ @pcrespov @sanderegg @GitHK @matusdrobuliak66
43+
/tests/e2e-frontend/ @odeimaiz
44+
/tests/e2e-playwright/ @matusdrobuliak66
45+
/tests/environment-setup/ @pcrespov
46+
/tests/performance/ @pcrespov @sanderegg
47+
/tests/public-api/ @pcrespov
48+
requirements/* @pcrespov
49+
tools/* @pcrespov

.github/mergify.yml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,3 @@ queue_rules:
1212
- "#approved-reviews-by>=2" # Requires 2 approving reviews
1313
- "#changes-requested-reviews-by=0" # No changes requested
1414
- "#review-threads-unresolved=0" # All review threads resolved
15-
16-
merge_conditions: # conditions to be met before being able to merge
17-
# list of CI checks that need to pass
18-
- check-success=system-test-environment-setup
19-
- check-success=changes
20-
- check-success=build-test-images
21-
- check-success=build-test-images-frontend
22-
- check-success=unit-tests
23-
- check-success=integration-tests
24-
- check-success=system-tests
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# This workflow holds jobs which are required to pass before merging into master
2+
3+
name: CI PACT Master
4+
on:
5+
push:
6+
branches:
7+
- "master"
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
jobs:
14+
pact-tests:
15+
timeout-minutes: 10
16+
name: "Run PACT tests"
17+
runs-on: ubuntu-latest
18+
env:
19+
# secrets can be set in settings/secrets on github
20+
PACT_BROKER_URL: ${{ secrets.PACT_BROKER_URL }}
21+
PACT_BROKER_USERNAME: ${{ secrets.PACT_BROKER_USERNAME }}
22+
PACT_BROKER_PASSWORD: ${{ secrets.PACT_BROKER_PASSWORD }}
23+
steps:
24+
- name: setup python environment
25+
uses: actions/setup-python@v5
26+
with:
27+
python-version: "3.11"
28+
- name: install uv
29+
uses: astral-sh/setup-uv@v5
30+
with:
31+
version: "0.5.x"
32+
enable-cache: false
33+
- name: checkout source branch
34+
uses: actions/checkout@v4
35+
- name: Run pact tests
36+
run: |
37+
make devenv
38+
source .venv/bin/activate
39+
cd services/api-server
40+
make install-ci
41+
make test-pacts

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

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,20 @@ on:
1010
branches:
1111
- "master"
1212

13+
workflow_dispatch:
14+
inputs:
15+
target_repo:
16+
description: full repository name (e.g. 'ITISFoundation/osparc-simcore')
17+
required: true
18+
default: "ITISFoundation/osparc-simcore"
19+
type: environment
20+
target_branch:
21+
description: Check backwards compatibility against target_branch in target_repo
22+
required: true
23+
default: "master"
24+
type: environment
25+
26+
1327
concurrency:
1428
group: ${{ github.workflow }}-${{ github.ref }}
1529
cancel-in-progress: true
@@ -39,7 +53,7 @@ jobs:
3953
- name: Check openapi specs are up to date
4054
run: |
4155
if ! ./ci/github/helpers/openapi-specs-diff.bash diff \
42-
https://raw.githubusercontent.com/${{ github.event.pull_request.head.repo.full_name }}/${{ github.event.pull_request.head.sha }} \
56+
"https://raw.githubusercontent.com/$GITHUB_REPOSITORY/$GITHUB_SHA" \
4357
.; then \
4458
echo "::error:: OAS are not up to date. Run 'make openapi-specs' to update them"; exit 1; \
4559
fi
@@ -56,10 +70,19 @@ jobs:
5670
python-version: "3.11"
5771
- name: checkout
5872
uses: actions/checkout@v4
73+
- name: Set environment variables based on event type
74+
run: |
75+
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
76+
echo "REPO=${{ inputs.target_repo }}" >> $GITHUB_ENV
77+
echo "BRANCH=${{ inputs.target_branch }}" >> $GITHUB_ENV
78+
else
79+
echo "REPO=${{ github.event.pull_request.base.repo.full_name }}" >> $GITHUB_ENV
80+
echo "BRANCH=${{ github.base_ref }}" >> $GITHUB_ENV
81+
fi
5982
- name: check api-server backwards compatibility
6083
run: |
6184
./scripts/openapi-diff.bash breaking --fail-on ERR\
62-
https://raw.githubusercontent.com/${{ github.event.pull_request.base.repo.full_name }}/${{ github.event.after }}/services/api-server/openapi.json \
85+
"https://raw.githubusercontent.com/$REPO/refs/heads/$BRANCH/services/api-server/openapi.json" \
6386
/specs/services/api-server/openapi.json
6487
6588
all-oas-breaking:
@@ -75,8 +98,17 @@ jobs:
7598
python-version: "3.11"
7699
- name: checkout
77100
uses: actions/checkout@v4
101+
- name: Set environment variables based on event type
102+
run: |
103+
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
104+
echo "REPO=${{ inputs.target_repo }}" >> $GITHUB_ENV
105+
echo "BRANCH=${{ inputs.target_branch }}" >> $GITHUB_ENV
106+
else
107+
echo "REPO=${{ github.event.pull_request.base.repo.full_name }}" >> $GITHUB_ENV
108+
echo "BRANCH=${{ github.base_ref }}" >> $GITHUB_ENV
109+
fi
78110
- name: Check openapi-specs backwards compatibility
79111
run: |
80112
./ci/github/helpers/openapi-specs-diff.bash breaking \
81-
https://raw.githubusercontent.com/${{ github.event.pull_request.base.repo.full_name }}/${{ github.event.after }} \
113+
"https://raw.githubusercontent.com/$REPO/refs/heads/$BRANCH" \
82114
.

.pre-commit-config.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ default_language_version:
55
python: python3.11
66
repos:
77
- repo: https://github.com/pre-commit/pre-commit-hooks
8-
rev: v4.2.0
8+
rev: v5.0.0
99
hooks:
1010
- id: check-added-large-files
1111
args: ["--maxkb=1024"]
@@ -22,7 +22,7 @@ repos:
2222
- id: no-commit-to-branch
2323
# NOTE: Keep order as pyupgrade (will update code) then pycln (remove unused imports), then isort (sort them) and black (final formatting)
2424
- repo: https://github.com/asottile/pyupgrade
25-
rev: v2.34.0
25+
rev: v3.19.1
2626
hooks:
2727
- id: pyupgrade
2828
args:
@@ -36,13 +36,13 @@ repos:
3636
args: [--all, --expand-stars]
3737
name: prune imports
3838
- repo: https://github.com/PyCQA/isort
39-
rev: 5.12.0
39+
rev: 6.0.0
4040
hooks:
4141
- id: isort
4242
args: ["--profile", "black"]
4343
name: sort imports
4444
- repo: https://github.com/psf/black
45-
rev: 22.3.0
45+
rev: 25.1.0
4646
hooks:
4747
- id: black
4848
name: black format code

api/specs/web-server/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,6 @@ install-dev install: _check_venv_active
1616
.PHONY: all
1717
all: _check_venv_active install
1818
python openapi.py
19+
20+
.PHONY: openapi-specs
21+
openapi-specs: all

api/specs/web-server/_auth.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@
4747
operation_id="request_product_account",
4848
status_code=status.HTTP_204_NO_CONTENT,
4949
)
50-
async def request_product_account(_body: AccountRequestInfo):
51-
...
50+
async def request_product_account(_body: AccountRequestInfo): ...
5251

5352

5453
@router.post(
@@ -75,8 +74,7 @@ async def register(_body: RegisterBody):
7574
status_code=status.HTTP_200_OK,
7675
responses={status.HTTP_409_CONFLICT: {"model": EnvelopedError}},
7776
)
78-
async def unregister_account(_body: UnregisterCheck):
79-
...
77+
async def unregister_account(_body: UnregisterCheck): ...
8078

8179

8280
@router.post(
@@ -171,26 +169,24 @@ async def check_auth():
171169
@router.post(
172170
"/auth/reset-password",
173171
response_model=Envelope[Log],
174-
operation_id="auth_reset_password",
172+
operation_id="initiate_reset_password",
175173
responses={status.HTTP_503_SERVICE_UNAVAILABLE: {"model": EnvelopedError}},
176174
)
177-
async def reset_password(_body: ResetPasswordBody):
178-
"""a non logged-in user requests a password reset"""
175+
async def initiate_reset_password(_body: ResetPasswordBody): ...
179176

180177

181178
@router.post(
182179
"/auth/reset-password/{code}",
183180
response_model=Envelope[Log],
184-
operation_id="auth_reset_password_allowed",
181+
operation_id="complete_reset_password",
185182
responses={
186183
status.HTTP_401_UNAUTHORIZED: {
187184
"model": EnvelopedError,
188-
"description": "unauthorized reset due to invalid token code",
185+
"description": "Invalid token code",
189186
}
190187
},
191188
)
192-
async def reset_password_allowed(code: str, _body: ResetPasswordConfirmation):
193-
"""changes password using a token code without being logged in"""
189+
async def complete_reset_password(code: str, _body: ResetPasswordConfirmation): ...
194190

195191

196192
@router.post(
@@ -268,5 +264,4 @@ async def email_confirmation(code: str):
268264
status_code=status.HTTP_200_OK,
269265
responses={status.HTTP_200_OK: {"content": {"image/png": {}}}},
270266
)
271-
async def request_captcha():
272-
...
267+
async def request_captcha(): ...

api/specs/web-server/_auth_api_keys.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@
99
from models_library.generics import Envelope
1010
from models_library.rest_error import EnvelopedError
1111
from simcore_service_webserver._meta import API_VTAG
12-
from simcore_service_webserver.api_keys._exceptions_handlers import _TO_HTTP_ERROR_MAP
13-
from simcore_service_webserver.api_keys._rest import ApiKeysPathParams
12+
from simcore_service_webserver.api_keys._controller_rest import ApiKeysPathParams
13+
from simcore_service_webserver.api_keys._controller_rest_exceptions import (
14+
_TO_HTTP_ERROR_MAP,
15+
)
1416

1517
router = APIRouter(
1618
prefix=f"/{API_VTAG}",

0 commit comments

Comments
 (0)