forked from retoor/devplacepy
Add personal notes, DeepSearch history, backup offload, and gateway auth throttling
Also streamline the top navigation: drop the Tools dropdown, make Quizzes and Battles icon-only entries, and remove the Workspace, Containers and Editor entry points from the project detail page.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
retoor <retoor@molodetz.nl>
|
||||
|
||||
Every state-changing action in DevPlace records one append-only row through `devplacepy/services/audit/record.py` (`record` for a request-scoped actor, `record_system` for a background one). This file is the authoritative catalogue of the 355 event keys currently emitted, grouped by the category `services/audit/categories.py` `category_for` resolves them to.
|
||||
Every state-changing action in DevPlace records one append-only row through `devplacepy/services/audit/record.py` (`record` for a request-scoped actor, `record_system` for a background one). This file is the authoritative catalogue of the 356 event keys currently emitted, grouped by the category `services/audit/categories.py` `category_for` resolves them to.
|
||||
|
||||
## Rules
|
||||
|
||||
@@ -104,6 +104,7 @@ Every state-changing action in DevPlace records one append-only row through `dev
|
||||
| `ai.consent.denied` | `services/openai_gateway/service.py` |
|
||||
| `ai.clippy.chat` | `routers/devii.py` |
|
||||
| `ai.gateway.call` | `services/openai_gateway/gateway.py`, `services/openai_gateway/usage.py` |
|
||||
| `ai.gateway_auth_throttle.tripped` | `services/openai_gateway/service.py` |
|
||||
| `ai.quota.exceeded` | `routers/devii.py`, `services/openai_gateway/service.py` |
|
||||
| `gateway.model.delete` | `routers/admin/gateway_configs.py` |
|
||||
| `gateway.model.update` | `routers/admin/gateway_configs.py` |
|
||||
@@ -480,8 +481,9 @@ Every state-changing action in DevPlace records one append-only row through `dev
|
||||
|---|---|
|
||||
| `push.subscribe` | `routers/push.py` |
|
||||
| `push.update` | `routers/push.py` |
|
||||
| `push.unsubscribe` | `routers/push.py` |
|
||||
|
||||
Both carry `metadata.provider` (`webpush`, `apns`, ...) plus `created`, `revived`, and `has_client_id`; `metadata.endpoint_host` is set for endpoint-based providers and `null` for token-based ones. `push.update` fires when an existing row is re-posted or a dead token is revived, including APNs token rotation on the same `client_id`.
|
||||
`push.subscribe`/`push.update` carry `metadata.provider` (`webpush`, `apns`, ...) plus `created`, `revived`, and `has_client_id`; `metadata.endpoint_host` is set for endpoint-based providers and `null` for token-based ones. `push.update` fires when an existing row is re-posted or a dead token is revived, including APNs token rotation on the same `client_id`. `push.unsubscribe` fires from `DELETE /push.json` when a registration matching the given identity was actually removed; it carries the same `metadata.provider`/`endpoint_host`/`has_client_id` shape and is not recorded when the identity matched nothing (idempotent no-op).
|
||||
|
||||
## Gamification (`reward`)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user