|
handbook alignment: profile.updated mirror, health contract, Synapse gateway
Handbook gaps closed (10-platform auth/health/notifications):
- webhooks: handle user.profile_updated — mirror the gnexus-auth profile
into navi_users (name, contact fields, avatar_url — new column, boot
migration); role/permissions keep their dedicated events
- auth: avatar_url now flows through the login upsert and the API-token
resolution path
- /health: status is now the aggregate of the sub-checks (degraded embed
or hive no longer reports plain ok); embed probe cached for 10 s; body
grew the machine-readable checks{} map, legacy embed/hive payloads kept
- Synapse: s2s delivery gateway — POST /webhooks/synapse (both spellings),
per-user delivery secrets (synapse_targets, Fernet-encrypted, shown
once), verification via gnexus-synapse v0.1.2 client lib, idempotent
event ids; deliveries are verified and logged for now — navi generates
no outbound events by decision; web-push stays as the local browser
channel
- webclient settings: Synapse deliveries panel (add/revoke targets)
|
|---|
|
|
| navi/api/routes/auth.py |
|---|
| navi/api/routes/health.py |
|---|
| navi/api/routes/synapse.py 0 → 100644 |
|---|
| navi/api/routes/webhooks.py |
|---|
| navi/auth/_ddl.py |
|---|
| navi/auth/deps.py |
|---|
| navi/main.py |
|---|
| navi/synapse/__init__.py 0 → 100644 |
|---|
| navi/synapse/_ddl.py 0 → 100644 |
|---|
| navi/synapse/store.py 0 → 100644 |
|---|
| pyproject.toml |
|---|
| tests/integration/test_api_routes.py |
|---|
| tests/unit/api/test_health.py 0 → 100644 |
|---|
| tests/unit/api/test_synapse.py 0 → 100644 |
|---|
| tests/unit/api/test_webhooks.py |
|---|
| tests/unit/auth/test_api_tokens.py |
|---|
| webclient/dist/assets/index-Cue1zh8w.js 100644 → 0 |
|---|
|
Not supported
|
| webclient/dist/assets/index-DcFugK2V.css 0 → 100644 |
|---|
| webclient/dist/assets/index-DdLyYrHk.js 0 → 100644 |
|---|
|
Not supported
|
| webclient/dist/assets/index-DwW8GpWa.css 100644 → 0 |
|---|
| webclient/dist/index.html |
|---|
| webclient/dist/sw.js |
|---|
| webclient/src/api/index.js |
|---|
| webclient/src/components/settings/CreateTargetModal.vue 0 → 100644 |
|---|
| webclient/src/components/settings/SettingsView.vue |
|---|
| webclient/src/components/settings/SynapseTargetsPanel.vue 0 → 100644 |
|---|
| webclient/src/stores/synapseTargets.js 0 → 100644 |
|---|
| webclient/tests/unit/api/index.test.js |
|---|