Private-data subscription request manager — same component pattern as org-app / provider-app.
| Surface | Prefix | Consumers |
|---|---|---|
| Admin | /admin/suscription/ |
Full CRUD on subscription requests |
| App | /api/suscription/ |
Org users: login + list/create own org’s requests |
| Third | /third/suscription/ |
org-app/provider-app: cross-component create/list/decision |
From org-app, after consulting provider detail (which includes private_data_summary from provider-app):
GET /api/org/subscriptions/requests/— list requests for current orgPOST /api/org/subscriptions/requests/create/— body:{ "submitting_entity_id": <int>, "submitting_entity_type": "organization", "submitee_entity_id": <int>, "submitee_entity_type": "provider", "requested_private_fields": [...], "reason": "..." }
The subscription service keeps submissions generic and only stores explicit metadata about who submits and who receives. Each receiving app is expected to resolve impacted domain entities and processing rules in its own business logic.
Provider-side decision lifecycle is exposed through:
PATCH /third/suscription/requests/<id>/decision/- provider-app marks incoming requests as
handledorrejected - provider decision metadata is persisted in
decision_metadata
- provider-app marks incoming requests as
Cross-component access rule:
- Any consumer calling
third/suscription/*must use a token authorized forsubscription-app/subscribe-third. - UI access (
api/suscription/*andadmin/suscription/*) should usesubscription-appapplication profiles, not org/provider component roles.
Set in org-app environment:
SUSCRIPTION_APP_URL— base URL of this service (e.g.http://localhost:8003orhttp://suscription-app:8000in Docker)
cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -e .
python manage.py migrate
python manage.py loaddata suscription_app/fixtures/seed.json
python manage.py runserver 8003cd frontend
npm install
npm startDev server: http://localhost:3003 (proxies /api, /admin, /third to backend).
cp .env.example .env
docker compose up --build