feat: add platform notification core
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
# NODE.DC Notification Core
|
||||
|
||||
Platform-owned notification service for NODE.DC.
|
||||
|
||||
It owns:
|
||||
|
||||
- `notification_events`: immutable facts from Hub, Engine, Operational Core and future services.
|
||||
- `notification_deliveries`: per-recipient, per-surface delivery/read state.
|
||||
|
||||
It does not use Authentik DB. Authentik remains the identity/session provider next to this service, not the notification data owner.
|
||||
|
||||
## API
|
||||
|
||||
Internal producer:
|
||||
|
||||
```text
|
||||
POST /internal/notifications/events
|
||||
```
|
||||
|
||||
Consumer surface API:
|
||||
|
||||
```text
|
||||
GET /api/notifications?surface=hub|engine
|
||||
POST /api/notifications/:deliveryId/read
|
||||
POST /api/notifications/read-all
|
||||
GET /api/notifications/stream
|
||||
```
|
||||
|
||||
All endpoints require the shared internal token. App BFFs pass the resolved platform subject through:
|
||||
|
||||
```text
|
||||
X-NODEDC-User-Id
|
||||
X-NODEDC-User-Email
|
||||
```
|
||||
|
||||
The recipient rule is platform-subject based: deliveries are created only for known NODE.DC subjects. An unknown email should be held as a pending intent/invite by the source workflow, not inserted as a delivery.
|
||||
Reference in New Issue
Block a user