Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 Fix aiohttp server autoinstrumentation #6391

Merged
merged 83 commits into from
Oct 15, 2024
Merged
Show file tree
Hide file tree
Changes from 74 commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
5160d11
Fix aiohttp server autoinstrumentation with a hack
mrnicegyu11 Sep 18, 2024
c777852
Merge branch 'master' into 2024/fix/tracing
mrnicegyu11 Sep 18, 2024
aa730ed
Merge branch 'master' into 2024/fix/tracing
mrnicegyu11 Sep 19, 2024
61366a3
minor: fix typo
mrnicegyu11 Oct 2, 2024
d1a70da
🎨 backend pulls inputs before iframe is displayed (#6392)
GitHK Sep 19, 2024
77e54ce
🚨🐛 Mitigate dy-service file upload bug: Increase traefik timeouts (#6…
mrnicegyu11 Sep 19, 2024
b44eb75
✨ [Frontend] Force reload ``no-cache`` (#6397)
odeimaiz Sep 19, 2024
ed2db58
🐛⚗️Prometheus instrumentation incorrectly setup (#6398)
sanderegg Sep 19, 2024
51edfa8
✨E2E: increase timeout for video streaming and improve a bit logs abo…
sanderegg Sep 20, 2024
26aa165
🎨Clusters keeper/use ssm (🚨change in private clusters) (#6361)
sanderegg Sep 20, 2024
9ebe05b
♻️CI: autoscaling mypy takes longer and longer. (#6417)
sanderegg Sep 20, 2024
060c9cb
🐛 Improved Error Handling for Missing Billing Details (#6418)
pcrespov Sep 21, 2024
ffba5ae
🎨 Enhances Product parsing to strip whitespaces in host_regex (#6419)
pcrespov Sep 23, 2024
2e287ab
🐛 [Frontend] Fix: Share and Leave Study (#6401)
odeimaiz Sep 23, 2024
a876819
✨ [Frontend] Workspaces & Folders: Merge Workspace header and Folder …
odeimaiz Sep 23, 2024
fcc7b78
🎨 [Frontend] Access Full TIP (#6423)
odeimaiz Sep 23, 2024
0a11c8e
🐛 [Frontend] Do not list/request ``/frontend/`` service's pricing pla…
odeimaiz Sep 23, 2024
e5b9664
Bump actions/setup-node from 4.0.3 to 4.0.4 (#6425)
dependabot[bot] Sep 23, 2024
2129de4
🎨 Persistent logs when GC removes services (#6403)
GitHK Sep 24, 2024
84119ba
🎨 The user can remove themselves from the project/workspace. (#6415)
matusdrobuliak66 Sep 24, 2024
aa0b57c
♻️ Maintenance: removing old folders (#6383)
matusdrobuliak66 Sep 24, 2024
83b3152
🎨 improve DB foreign key dependencies (🗃️) (#6428)
matusdrobuliak66 Sep 24, 2024
529122e
✨ `dynamic-scheduler` pushes service state to the frontend (⚠️ devops…
GitHK Sep 24, 2024
5457f0d
🐛 [Frontend] Fix: Do not listen to output related backend updates if …
odeimaiz Sep 24, 2024
0b7f87e
✅ e2e: new workflow to test `tiplite` (#6388)
pcrespov Sep 24, 2024
83c79c6
🎨 [Frontend] App mode: Scrollable Instructions (#6430)
odeimaiz Sep 24, 2024
a712acc
🎨 publish port events to frontend (#6396)
GitHK Sep 25, 2024
8a8319f
🔒️ Strip credentials form image VCS (#6433)
GitHK Sep 25, 2024
699e05b
⬆️ Sep tests and tooling upgrade (#6431)
mrnicegyu11 Oct 2, 2024
aaee3b2
✅ fixes check on full version (#6445)
pcrespov Sep 25, 2024
aa87f17
🐛 Fixes flaky tests in service-library test_deferred_tasks.py (#6439)
GitHK Sep 25, 2024
97ccf19
🐛 [Frontend] Announcements: allow in ribbon only (#6440)
odeimaiz Sep 25, 2024
76e96c7
🎨 improve error handling on pricing plans (#6436)
matusdrobuliak66 Sep 25, 2024
02a7908
🐛[FrontEnd] Better error handling of invalid pre-registration data (#…
pcrespov Sep 25, 2024
6b7f9f8
e2e: fixes wrong sequence in classic tip (#6450)
pcrespov Sep 25, 2024
e2a6bdc
🎨 improve tip e2e test (#6448)
matusdrobuliak66 Sep 25, 2024
32bedc7
🐛 Fixes issue with parsing logs polluting sidecar logs (#6442)
GitHK Sep 26, 2024
bd45d6b
🎨 [Frontend] TIP: Rebranding (#6446)
odeimaiz Sep 26, 2024
b6ca20a
Adding favicon for all devices (#6447)
jsaq007 Sep 26, 2024
f01b218
🎨 [Frontend] Unify ``border-radius`` (#6451)
odeimaiz Sep 26, 2024
3200fe2
🐛 fix tip e2e test (#6458)
matusdrobuliak66 Sep 27, 2024
925b817
🎨 adding `folder_id` to project resource (#6460)
matusdrobuliak66 Sep 27, 2024
7dab0e1
✅ e2e: Final touches to tip testing (#6459)
pcrespov Sep 27, 2024
afce906
✅ e2e: Fixes typo in tests (#6468)
pcrespov Sep 30, 2024
c0ba01a
✨ [Frontend] Keep View Mode in localStorage (#6463)
odeimaiz Sep 30, 2024
54e8174
🎨 [Frontend] Move multiple studies at once (#6457)
odeimaiz Sep 30, 2024
d74fa86
✨ New repository helpers on asyncpg (#6465)
pcrespov Sep 30, 2024
eca803b
♻️ Preparations in webserver to integrate asyncpg engine (#6466)
pcrespov Sep 30, 2024
cd9b335
✨ introduce `/projects:search` full search (#6464)
matusdrobuliak66 Sep 30, 2024
d34ac48
🎨 Frees up space on runner for `[build] docker images` part of the CI…
GitHK Oct 1, 2024
4cf5278
🐛🎨 Fixes unhandled config error and new log helpers for better troubl…
pcrespov Oct 1, 2024
a90d033
🎨 [Frontend] S4L: Include deprecated versions in plus button, they sh…
odeimaiz Oct 1, 2024
38ea07a
🐛 [Frontend] Guided Tours: point to visible selector or skip (#6481)
odeimaiz Oct 1, 2024
5560acd
🔨📝 Misc improvements in tooling and doc (#6478)
pcrespov Oct 1, 2024
6c46d46
Merge remote-tracking branch 'upstream/master' into 2024/fix/tracing
mrnicegyu11 Oct 2, 2024
8f06a87
Add verbose comment for special call to add midleware
mrnicegyu11 Oct 2, 2024
89d9a1d
Merge branch 'master' into 2024/fix/tracing
mrnicegyu11 Oct 2, 2024
68c6aef
Merge branch 'master' into 2024/fix/tracing
mrnicegyu11 Oct 2, 2024
6588f3b
🐛 [Frontend] Move grouped nodes (#6486)
odeimaiz Oct 2, 2024
0f1ef1d
🎨 [Frontend] Handle LongRunningTask errors better (#6485)
odeimaiz Oct 2, 2024
e3cfd8b
🐛 [Frontend] Fix for Folders disabled scenario (#6488)
odeimaiz Oct 3, 2024
b7065d9
🐛 archiving_utils creates deterministic zip archives (#6472)
GitHK Oct 3, 2024
b936411
🐛 Fixes duplicates in tags listings and new `priority` to enforce ord…
pcrespov Oct 3, 2024
2dfed79
✨Releases public-api 0.7 (#6489)
pcrespov Oct 4, 2024
1b728af
♻️ Polished and modernised agent service ⚠️ (#6452)
GitHK Oct 4, 2024
783bb1d
🎨 improve project full search (#6483)
matusdrobuliak66 Oct 4, 2024
f4dc38b
🎨 efs improvements (group extra properties) 🗃️ (#6493)
matusdrobuliak66 Oct 7, 2024
f074e42
🐛 Front-end: fixes PO center widget (#6496)
pcrespov Oct 7, 2024
3ca168d
🎨 Adds authentication for new style dynamic services and platform ven…
GitHK Oct 8, 2024
8b34d98
🎨 Expose env var to raise timeout of downloading/uploading data to an…
GitHK Oct 8, 2024
26e7fd6
🔨 New sql script template to remove readonly user (#6500)
pcrespov Oct 8, 2024
475fd13
🐛 Fixes bad formatting while handling missing configuration errors (#…
pcrespov Oct 8, 2024
9c8d0ec
♻️ increase e2e tip test timeout (#6504)
matusdrobuliak66 Oct 9, 2024
4d27c32
🎨 EFS Guardian: adding size monitoring (#6502)
matusdrobuliak66 Oct 10, 2024
42682d5
Merge remote-tracking branch 'upstream/master' into 2024/fix/tracing
mrnicegyu11 Oct 14, 2024
3ad20a7
Add middleware test
mrnicegyu11 Oct 14, 2024
d98371d
Merge branch 'master' into 2024/fix/tracing
mrnicegyu11 Oct 14, 2024
cf3eaa0
refactors test
pcrespov Oct 14, 2024
c3371b5
moves environs
pcrespov Oct 14, 2024
a29b33a
Merge branch 'master' into 2024/fix/tracing
mrnicegyu11 Oct 15, 2024
2134327
Adress pylint
mrnicegyu11 Oct 15, 2024
e62cb83
Merge branch 'master' into 2024/fix/tracing
mrnicegyu11 Oct 15, 2024
ebc9e8f
Merge branch 'master' into 2024/fix/tracing
mrnicegyu11 Oct 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .env-devel
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ DYNAMIC_SIDECAR_IMAGE=${DOCKER_REGISTRY:-itisfoundation}/dynamic-sidecar:${DOCKE
DYNAMIC_SIDECAR_LOG_LEVEL=DEBUG
DYNAMIC_SIDECAR_PROMETHEUS_MONITORING_NETWORKS=[]
DYNAMIC_SIDECAR_PROMETHEUS_SERVICE_LABELS={}
DYNAMIC_SIDECAR_API_SAVE_RESTORE_STATE_TIMEOUT=3600
# DIRECTOR_V2 ----

DYNAMIC_SCHEDULER_PROFILING=1
Expand Down Expand Up @@ -153,7 +154,7 @@ POSTGRES_PORT=5432
POSTGRES_USER=scu

POSTGRES_READONLY_PASSWORD=readonly
POSTGRES_READONLY_USER=readonly
POSTGRES_READONLY_USER=postgres_readonly


RABBIT_HOST=rabbit
Expand Down Expand Up @@ -220,6 +221,13 @@ STORAGE_PROFILING=1

SWARM_STACK_NAME=master-simcore

## VENDOR DEVELOPMENT SERVICES ---
VENDOR_DEV_MANUAL_IMAGE=containous/whoami
VENDOR_DEV_MANUAL_REPLICAS=1
VENDOR_DEV_MANUAL_SUBDOMAIN=manual

## VENDOR DEVELOPMENT SERVICES ---

WB_API_WEBSERVER_HOST=wb-api-server
WB_API_WEBSERVER_PORT=8080

Expand Down
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,3 @@ tests/public-api/osparc_python_wheels/*

# osparc-config repo files
repo.config

# scripts resolved with .env s
services/postgres/scripts/create-readonly-user.sql
3 changes: 2 additions & 1 deletion .vscode/settings.template.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@
"files.associations": {
".*rc": "ini",
".env*": "ini",
"*.logs*": "log",
"**/requirements/*.in": "pip-requirements",
"**/requirements/*.txt": "pip-requirements",
"*logs.txt": "log",
"*.logs*": "log",
"*Makefile": "makefile",
"*sql.*": "sql",
"docker-compose*.yml": "dockercompose",
"Dockerfile*": "dockerfile"
},
Expand Down
15 changes: 14 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,11 @@ CPU_COUNT = $(shell cat /proc/cpuinfo | grep processor | wc -l )
services/docker-compose.local.yml \
> $@

.stack-vendor-services.yml: .env $(docker-compose-configs)
# Creating config for vendors stack to $@
@scripts/docker/docker-stack-config.bash -e $< \
services/docker-compose-dev-vendors.yml \
> $@

.stack-ops.yml: .env $(docker-compose-configs)
# Creating config for ops stack to $@
Expand All @@ -288,7 +293,11 @@ endif



.PHONY: up-devel up-prod up-prod-ci up-version up-latest .deploy-ops
.PHONY: up-devel up-prod up-prod-ci up-version up-latest .deploy-ops .deploy-vendors

.deploy-vendors: .stack-vendor-services.yml
# Deploy stack 'vendors'
docker stack deploy --detach=true --with-registry-auth -c $< vendors

.deploy-ops: .stack-ops.yml
# Deploy stack 'ops'
Expand Down Expand Up @@ -338,6 +347,7 @@ up-devel: .stack-simcore-development.yml .init-swarm $(CLIENT_WEB_OUTPUT) ## Dep
@$(MAKE_C) services/dask-sidecar certificates
# Deploy stack $(SWARM_STACK_NAME) [back-end]
@docker stack deploy --detach=true --with-registry-auth -c $< $(SWARM_STACK_NAME)
@$(MAKE) .deploy-vendors
@$(MAKE) .deploy-ops
@$(_show_endpoints)
@$(MAKE_C) services/static-webserver/client follow-dev-logs
Expand All @@ -348,6 +358,7 @@ up-devel-frontend: .stack-simcore-development-frontend.yml .init-swarm ## Every
@$(MAKE_C) services/dask-sidecar certificates
# Deploy stack $(SWARM_STACK_NAME) [back-end]
@docker stack deploy --detach=true --with-registry-auth -c $< $(SWARM_STACK_NAME)
@$(MAKE) .deploy-vendors
@$(MAKE) .deploy-ops
@$(_show_endpoints)
@$(MAKE_C) services/static-webserver/client follow-dev-logs
Expand All @@ -358,6 +369,7 @@ ifeq ($(target),)
@$(MAKE_C) services/dask-sidecar certificates
# Deploy stack $(SWARM_STACK_NAME)
@docker stack deploy --detach=true --with-registry-auth -c $< $(SWARM_STACK_NAME)
@$(MAKE) .deploy-vendors
@$(MAKE) .deploy-ops
else
# deploys ONLY $(target) service
Expand All @@ -369,6 +381,7 @@ up-version: .stack-simcore-version.yml .init-swarm ## Deploys versioned stack '$
@$(MAKE_C) services/dask-sidecar certificates
# Deploy stack $(SWARM_STACK_NAME)
@docker stack deploy --detach=true --with-registry-auth -c $< $(SWARM_STACK_NAME)
@$(MAKE) .deploy-vendors
@$(MAKE) .deploy-ops
@$(_show_endpoints)

Expand Down
15 changes: 15 additions & 0 deletions api/specs/web-server/_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,21 @@ async def logout(_body: LogoutBody):
"""user logout"""


@router.get(
"/auth:check",
operation_id="check_authentication",
status_code=status.HTTP_204_NO_CONTENT,
responses={
status.HTTP_401_UNAUTHORIZED: {
"model": Envelope[Error],
"description": "unauthorized reset due to invalid token code",
}
},
)
async def check_auth():
"""checks if user is authenticated in the platform"""


@router.post(
"/auth/reset-password",
response_model=Envelope[Log],
Expand Down
9 changes: 8 additions & 1 deletion api/specs/web-server/_projects_crud.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,10 +142,17 @@ async def clone_project(

@router.get(
"/projects:search",
response_model=Page[ProjectListItem],
response_model=Page[ProjectListFullSearchParams],
)
async def list_projects_full_search(
_params: Annotated[ProjectListFullSearchParams, Depends()],
order_by: Annotated[
Json,
Query(
description="Order by field (type|uuid|name|description|prj_owner|creation_date|last_change_date) and direction (asc|desc). The default sorting order is ascending.",
example='{"field": "last_change_date", "direction": "desc"}',
),
] = ('{"field": "last_change_date", "direction": "desc"}',),
):
...

Expand Down
2 changes: 2 additions & 0 deletions packages/aws-library/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,8 @@ referencing==0.29.3
# -c requirements/../../../packages/service-library/requirements/./constraints.txt
# jsonschema
# jsonschema-specifications
repro-zipfile==0.3.1
# via -r requirements/../../../packages/service-library/requirements/_base.in
requests==2.32.3
# via opentelemetry-exporter-otlp-proto-http
rich==13.8.1
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Any, ClassVar
from typing import Any, ClassVar, Final

from pydantic import BaseModel, Field, validator
from pydantic.types import ByteSize, NonNegativeInt
Expand Down Expand Up @@ -90,3 +90,6 @@ class Config:
for node_example in NodeRequirements.Config.schema_extra["examples"]
]
}


CHARS_IN_VOLUME_NAME_BEFORE_DIR_NAME: Final[NonNegativeInt] = 89
18 changes: 18 additions & 0 deletions packages/models-library/src/models_library/rabbitmq_messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,24 @@ def routing_key(self) -> str | None:
return None


class DynamicServiceRunningMessage(RabbitMessageBase):
channel_name: Literal["io.simcore.service.dynamic-service-running"] = Field(
default="io.simcore.service.dynamic-service-running", const=True
)

project_id: ProjectID
node_id: NodeID
user_id: UserID
product_name: ProductName | None
created_at: datetime.datetime = Field(
default_factory=lambda: arrow.utcnow().datetime,
description="message creation datetime",
)

def routing_key(self) -> str | None:
return None


class RabbitResourceTrackingStartedMessage(RabbitResourceTrackingBaseMessage):
message_type: RabbitResourceTrackingMessageType = Field(
default=RabbitResourceTrackingMessageType.TRACKING_STARTED, const=True
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
"""new tags priority column

Revision ID: 8a742f3efdd9
Revises: 10729e07000d
Create Date: 2024-10-02 15:23:27.446241+00:00

"""
import sqlalchemy as sa
from alembic import op

# revision identifiers, used by Alembic.
revision = "8a742f3efdd9"
down_revision = "10729e07000d"
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column("tags", sa.Column("priority", sa.Integer(), nullable=True))
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column("tags", "priority")
# ### end Alembic commands ###
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"""add `enable_efs` to group extra properties

Revision ID: ea3952fe5a0e
Revises: 8a742f3efdd9
Create Date: 2024-10-07 06:24:42.464942+00:00

"""
import sqlalchemy as sa
from alembic import op

# revision identifiers, used by Alembic.
revision = "ea3952fe5a0e"
down_revision = "8a742f3efdd9"
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column(
"groups_extra_properties",
sa.Column(
"enable_efs", sa.Boolean(), server_default=sa.text("false"), nullable=False
),
)
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column("groups_extra_properties", "enable_efs")
# ### end Alembic commands ###
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,13 @@
server_default=sa.sql.expression.false(),
doc="If true, will send telemetry for new style dynamic services to frontend",
),
sa.Column(
"enable_efs",
sa.Boolean(),
nullable=False,
server_default=sa.sql.expression.false(),
doc="If true, will mount efs distributed file system when dynamic services starts",
),
sa.UniqueConstraint(
"group_id", "product_name", name="group_id_product_name_uniqueness"
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,21 @@
"service_key",
sa.String,
nullable=False,
doc="Service Key Identifier",
doc="Key name identifier for the service, without specifiying its versions",
),
sa.Column(
"service_version",
sa.String,
nullable=False,
doc="Service version",
doc="Version of the service. Combined with 'service_key', it forms a unique identifier for this service.",
),
# Tag
sa.Column(
"tag_id",
sa.BigInteger,
sa.ForeignKey(tags.c.id, onupdate="CASCADE", ondelete="CASCADE"),
nullable=False,
doc="Identifier of the tag assigned to this specific service (service_key, service_version).",
),
# Constraints
sa.ForeignKeyConstraint(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,42 @@

from .base import metadata

#
# tags: a way to mark any entity (e.g. a project, ...)
# this can be used to perform operations as filter, select, compare, etc
#
tags = sa.Table(
#
# A way to mark any entity (e.g. a project, ...)
# this can be used to perform operations as filter, select, compare, etc
#
"tags",
metadata,
sa.Column(
"id",
sa.BigInteger(),
nullable=False,
primary_key=True,
doc="Unique identifier for each tag.",
),
sa.Column(
"name",
sa.String(),
nullable=False,
doc="display name",
),
sa.Column("name", sa.String(), nullable=False, doc="The display name of the tag."),
sa.Column(
"description",
sa.String(),
nullable=True,
doc="description displayed",
doc="A brief description displayed for the tag.",
),
sa.Column(
"color",
sa.String(),
nullable=False,
doc="Hex color (see https://www.color-hex.com/)",
doc="Hexadecimal color code representing the tag (e.g., #FF5733).",
),
sa.Column(
"priority",
sa.Integer(),
nullable=True,
doc=(
"Explicit ordering priority when displaying tags. "
"Tags with a lower value are displayed first. "
"If NULL, tags are considered to have the lowest priority and "
"are displayed after non-NULL values, ordered by their ID (reflecting creation order)."
),
),
)
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
name="fk_tag_to_group_tag_id",
),
nullable=False,
doc="Tag unique ID",
doc="References the unique identifier of the tag that these access rights apply to.",
),
sa.Column(
"group_id",
Expand All @@ -34,30 +34,32 @@
name="fk_tag_to_group_group_id",
),
nullable=False,
doc="Group unique ID",
doc="References the unique identifier of the group that has access rights to the tag.",
),
# ACCESS RIGHTS ---
sa.Column(
"read",
sa.Boolean(),
nullable=False,
server_default=sa.sql.expression.true(),
doc="If true, group can *read* a tag."
"This column can be used to set the tag invisible",
doc="Indicates whether the group has permission to view the tag. "
"A value of 'True' allows the group to access the tag's details.",
),
sa.Column(
"write",
sa.Boolean(),
nullable=False,
server_default=sa.sql.expression.false(),
doc="If true, group can *create* and *update* a tag",
doc="Indicates whether the group has permission to modify the tag. "
"A value of 'True' grants write access to the group.",
),
sa.Column(
"delete",
sa.Boolean(),
nullable=False,
server_default=sa.sql.expression.false(),
doc="If true, group can *delete* the tag",
doc="Indicates whether the group has permission to delete the tag. "
"A value of 'True' allows the group to remove the tag.",
),
# TIME STAMPS ----
column_created_datetime(timezone=False),
Expand Down
Loading
Loading