trails/infrastructure
Ullrich Schäfer 881991ca18
feat(journal): federation protocol doc + delivery observability
Task group 4 of federation-hardening.

4.1 — FEDERATION.md at the repo root: actor discovery (WebFinger, actor,
NodeInfo), object/activity types with real JSON examples (Note, Create,
Delete, the narrow follow-graph inbox), addressing, HTTP-Signature
expectations, the two-layer dedup contract, durable delivery/retry
policy, and blocklist moderation semantics — precise enough for another
implementation to interoperate. Linked from README and docs/architecture.

4.2 — three prom-client metrics + a journal dashboard row:
- `federation_delivery_total{outcome}` — incremented in deliver-activity
  (delivered/skipped/failed).
- `federation_inbox_dropped_total{reason}` — incremented at every inbox
  drop (duplicate | blocked); this is the counter deferred from task 3.2.
- `federation_queue_depth` — gauge sampled at scrape time in
  /api/metrics from PgBossMessageQueue.getDepth(); the restart-loss
  regression detector.
Grafana journal.json gains a Federation row (delivery rate, queue depth,
inbox drops); the logs panels shift down to make room.

Verified: dashboard JSON valid; journal typecheck + lint clean; unit
suite 357 passing (route-template guard unaffected).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 23:11:43 +02:00
..
brouter-host poi-index: drop vSwitch mentions from poi-extract README (flagship detail) 2026-07-12 23:30:19 +02:00
caddy security: bind Caddy admin API to loopback, split metrics to :2020 2026-06-11 07:56:30 +02:00
grafana feat(journal): federation protocol doc + delivery observability 2026-07-13 23:11:43 +02:00
loki Pass Grafana env vars to Caddy container, fix Loki compactor config 2026-03-27 13:53:56 +01:00
postgres Add pg-boss background job queue with session expiry 2026-04-13 21:17:24 +02:00
prometheus security: bind Caddy admin API to loopback, split metrics to :2020 2026-06-11 07:56:30 +02:00
promtail Fix journal health check and improve log collection 2026-04-12 15:00:00 +02:00
scripts poi-index: dedupe classify INSERT (element matching a category via 2 selectors) 2026-07-13 00:33:17 +02:00
terraform Add staging + PR-preview environments on the flagship 2026-05-03 22:03:38 +02:00
.env.example poi-index: map-core selectors, planner.pois schema, /api/pois route + client, metrics 2026-07-12 22:38:03 +02:00
docker-compose.staging.yml poi-index: map-core selectors, planner.pois schema, /api/pois route + client, metrics 2026-07-12 22:38:03 +02:00
docker-compose.yml poi-index: map-core selectors, planner.pois schema, /api/pois route + client, metrics 2026-07-12 22:38:03 +02:00
secrets.app.env feat(staging): enable federation on persistent staging 2026-06-06 15:45:44 +02:00
secrets.infra.env Provision Grafana Pushover contact point 2026-04-24 19:07:04 +02:00
staging.env.template Add staging + PR-preview environments on the flagship 2026-05-03 22:03:38 +02:00