Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.1.3] - 2026-09-22

Changed

  • Enabled multiple uvicorn worker processes.

[0.1.2] - 2026-07-20

Removed

  • svc.api.dmapi_url Helm value and the DMAPI_URL env var injection in core-deployment.yaml. The value was vestigial: the service resolves everything it needs from the request (VOTable/JSON body) and local storage (STORAGE_BASE_PATH), and no code reads DMAPI_URL.

[0.1.1] - 2026-03-12

Added

  • Product streamer demo notebook (demo/product_streamer_demo.ipynb).

Changed

  • Removed Celery task queue and Redis cache: deleted tasks/celery.py, tasks/product.py, auth/oauth2/oauth2.py, and auth/oauth2/data_management_api.py; product route now executes synchronously without dispatching async workers.

  • Removed cache and celery Helm templates (cache-deployment.yaml, cache-service.yaml, celery-deployment.yaml) and corresponding svc.celery/svc.redis sections from values.yaml; removed CACHE_HOST/CACHE_PORT env vars from core-deployment.yaml.

  • Refactored rest/routers/product.py, rest/dependencies.py, and rest/server.py to reflect the synchronous execution model.

  • Updated docker-compose.local.yml and .env.template to remove cache and celery service configuration.

  • Refactored integration and unit tests for idempotence.

[0.1.0] - 2026-03-01

Added

  • Initial ska-src-dm-product-service implementation.

  • Product proxy route: GET /v1/data/product/{namespace}/{name}.

  • Permission validation via Permissions API for route access.

  • auth/oauth2/ module with DataManagementServiceToken: PSAPI exchanges its own IAM client credentials (PSAPI_CLIENT_ID / PSAPI_CLIENT_SECRET) for a DMAPI-scoped service token.

  • IAM_CLIENT_CONF_URL / IAM_TOKEN_ENDPOINT environment variables for Celery workers to resolve the IAM token endpoint (supports OIDC well-known discovery or direct configuration).

  • DMAPI locate call (GET /v1/data/locate/{namespace}/{name}) to resolve the storage area UUID, detect whether a DID is a file or a dataset (is_dataset flag), and retrieve replica PFNs — no PFNs need to be supplied by the caller.

  • DMAPI download-token retrieval via /v1/data/download/... before backend stream mediation.

  • Backend PFN streaming support for davs, dav, https, http, and best-effort root conversion.

  • Dataset TAR streaming: when the DID is a dataset, PSAPI streams an uncompressed TAR archive containing all constituent files (one entry per PFN, fetched sequentially from the RSE).

  • Unit, component, and integration test suites for the route flow.

  • Integration tests test_stream_product and test_stream_dataset_tar: resolve DIDs directly from file_did.txt, call PSAPI with only the DID and token, and validate streamed content.

Changed

  • Repository naming, compose, Helm, Docker, and CI/dev/testing make configurations aligned to DM Product service.

  • Package metadata and service references updated to version 0.1.0.