diff --git a/api/specs/web-server/_auth_api_keys.py b/api/specs/web-server/_auth_api_keys.py index 0c6512eddda7..aa0a541a168f 100644 --- a/api/specs/web-server/_auth_api_keys.py +++ b/api/specs/web-server/_auth_api_keys.py @@ -9,8 +9,8 @@ from models_library.generics import Envelope from models_library.rest_error import EnvelopedError from simcore_service_webserver._meta import API_VTAG +from simcore_service_webserver.api_keys._controller_rest import ApiKeysPathParams from simcore_service_webserver.api_keys._exceptions_handlers import _TO_HTTP_ERROR_MAP -from simcore_service_webserver.api_keys._rest import ApiKeysPathParams router = APIRouter( prefix=f"/{API_VTAG}", diff --git a/services/web/server/src/simcore_service_webserver/api_keys/_rest.py b/services/web/server/src/simcore_service_webserver/api_keys/_controller_rest.py similarity index 100% rename from services/web/server/src/simcore_service_webserver/api_keys/_rest.py rename to services/web/server/src/simcore_service_webserver/api_keys/_controller_rest.py diff --git a/services/web/server/src/simcore_service_webserver/api_keys/_rpc.py b/services/web/server/src/simcore_service_webserver/api_keys/_controller_rpc.py similarity index 100% rename from services/web/server/src/simcore_service_webserver/api_keys/_rpc.py rename to services/web/server/src/simcore_service_webserver/api_keys/_controller_rpc.py diff --git a/services/web/server/src/simcore_service_webserver/api_keys/_repository.py b/services/web/server/src/simcore_service_webserver/api_keys/_repository.py index e53dab0a5d2e..0002ceff1e57 100644 --- a/services/web/server/src/simcore_service_webserver/api_keys/_repository.py +++ b/services/web/server/src/simcore_service_webserver/api_keys/_repository.py @@ -180,40 +180,6 @@ async def delete_api_key( await conn.execute(stmt) -async def delete_by_name( - app: web.Application, - connection: AsyncConnection | None = None, - *, - display_name: str, - user_id: UserID, - product_name: ProductName, -) -> None: - async with transaction_context(get_asyncpg_engine(app), connection) as conn: - stmt = api_keys.delete().where( - (api_keys.c.user_id == user_id) - & (api_keys.c.display_name == display_name) - & (api_keys.c.product_name == product_name) - ) - await conn.execute(stmt) - - -async def delete_by_key( - app: web.Application, - connection: AsyncConnection | None = None, - *, - api_key: str, - user_id: UserID, - product_name: ProductName, -) -> None: - async with transaction_context(get_asyncpg_engine(app), connection) as conn: - stmt = api_keys.delete().where( - (api_keys.c.user_id == user_id) - & (api_keys.c.api_key == api_key) - & (api_keys.c.product_name == product_name) - ) - await conn.execute(stmt) - - async def prune_expired( app: web.Application, connection: AsyncConnection | None = None ) -> list[str]: diff --git a/services/web/server/src/simcore_service_webserver/api_keys/api.py b/services/web/server/src/simcore_service_webserver/api_keys/api_keys_service.py similarity index 100% rename from services/web/server/src/simcore_service_webserver/api_keys/api.py rename to services/web/server/src/simcore_service_webserver/api_keys/api_keys_service.py diff --git a/services/web/server/src/simcore_service_webserver/api_keys/plugin.py b/services/web/server/src/simcore_service_webserver/api_keys/plugin.py index 636615f3062f..11aeabf1e330 100644 --- a/services/web/server/src/simcore_service_webserver/api_keys/plugin.py +++ b/services/web/server/src/simcore_service_webserver/api_keys/plugin.py @@ -8,7 +8,7 @@ from ..products.plugin import setup_products from ..rabbitmq import setup_rabbitmq from ..rest.plugin import setup_rest -from . import _rest, _rpc +from . import _controller_rest, _controller_rpc _logger = logging.getLogger(__name__) @@ -26,9 +26,9 @@ def setup_api_keys(app: web.Application): # http api setup_rest(app) - app.router.add_routes(_rest.routes) + app.router.add_routes(_controller_rest.routes) # rpc api setup_rabbitmq(app) if app[APP_SETTINGS_KEY].WEBSERVER_RABBITMQ: - app.on_startup.append(_rpc.register_rpc_routes_on_startup) + app.on_startup.append(_controller_rpc.register_rpc_routes_on_startup) diff --git a/services/web/server/src/simcore_service_webserver/garbage_collector/_tasks_api_keys.py b/services/web/server/src/simcore_service_webserver/garbage_collector/_tasks_api_keys.py index b58974ffd966..b992d25b3876 100644 --- a/services/web/server/src/simcore_service_webserver/garbage_collector/_tasks_api_keys.py +++ b/services/web/server/src/simcore_service_webserver/garbage_collector/_tasks_api_keys.py @@ -1,7 +1,8 @@ """ - Scheduled task that periodically runs prune in the garbage collector service +Scheduled task that periodically runs prune in the garbage collector service """ + import asyncio import logging from collections.abc import AsyncIterator, Callable @@ -11,7 +12,7 @@ from tenacity.before_sleep import before_sleep_log from tenacity.wait import wait_exponential -from ..api_keys.api import prune_expired_api_keys +from ..api_keys import api_keys_service logger = logging.getLogger(__name__) @@ -31,7 +32,7 @@ async def _run_task(app: web.Application): It is resilient, i.e. if update goes wrong, it waits a bit and retries """ - if deleted := await prune_expired_api_keys(app): + if deleted := await api_keys_service.prune_expired_api_keys(app): # broadcast force logout of user_id for api_key in deleted: logger.info("API-key %s expired and was removed", f"{api_key=}")