chore: Fix app
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# Push Notifications
|
||||
|
||||
> **Status:** Active
|
||||
> **Last updated:** 2026-07-05
|
||||
|
||||
## Overview
|
||||
|
||||
Mobile remote push (FCM/APNs) and server-side device token storage. Desktop uses local/Electron notifications via the `notifications` domain.
|
||||
|
||||
## Responsibilities
|
||||
|
||||
| Layer | Owns |
|
||||
|-------|------|
|
||||
| Signaling server | `device_tokens` SQLite table; FCM/APNs dispatch |
|
||||
| Capacitor client | Token registration via `MobilePushRegistrationService` |
|
||||
| Server env | FCM service account + APNs key configuration |
|
||||
|
||||
## REST API (`/api/users/device-tokens`)
|
||||
|
||||
All routes require bearer; `userId` must match authenticated identity.
|
||||
|
||||
| Method | Path | Purpose |
|
||||
|--------|------|---------|
|
||||
| POST | `/` | Upsert `{ userId, platform: "android"\|"ios", token }` |
|
||||
| GET | `/:userId` | List tokens for user |
|
||||
| POST | `/:userId/dispatch` | Manual push `{ title, body, data? }` (ops/testing) |
|
||||
|
||||
## Server configuration
|
||||
|
||||
Repository-root `.env`:
|
||||
|
||||
| Variable | Purpose |
|
||||
|----------|---------|
|
||||
| `FCM_SERVICE_ACCOUNT_PATH` or `FCM_SERVICE_ACCOUNT_JSON` | Android FCM HTTP v1 |
|
||||
| `APNS_KEY_PATH`, `APNS_KEY_ID`, `APNS_TEAM_ID` | iOS APNs HTTP/2 |
|
||||
| `APNS_BUNDLE_ID` | Default `com.metoyou.app` |
|
||||
| `APNS_USE_SANDBOX` | Development builds |
|
||||
|
||||
## Mobile client
|
||||
|
||||
- Optional Firebase: app starts without `google-services.json`; registration skipped when remote push not configured.
|
||||
- See [mobile-capacitor.md](mobile-capacitor.md) for FCM/APNs setup, permissions, and in-call local notifications.
|
||||
|
||||
## Related
|
||||
|
||||
- [authentication.md](authentication.md) — bearer + userId match rules
|
||||
- [mobile-capacitor.md](mobile-capacitor.md) — client registration and foreground service
|
||||
|
||||
## Changelog
|
||||
|
||||
| Date | Change |
|
||||
|------|--------|
|
||||
| 2026-07-05 | Initial push notification contract |
|
||||
Reference in New Issue
Block a user