Commit Graph
14 Commits
Author SHA1 Message Date
Jannis Braun 620649ec41 docs: update spec and federation docs to match implementation
- Spec: status → Implemented, fix PATCH peer as new (not pre-existing),
  correct API paths, update component breakdown to match actual structure
- Federation docs: update relay rate limit from 30 to 90 req/min
2026-04-01 02:15:37 +02:00
Jannis Braun 4a39b503db docs: update federation admin endpoints for PATCH peer and permanent delete 2026-04-01 01:55:10 +02:00
Jannis Braun df4691053f docs: remove stale known-issue references from federation spec 2026-04-01 00:12:17 +02:00
Jannis Braun f97ac742cd docs: update websocket.md for FED-009 — dm_call_incoming federation fields, ActiveCallInfo extension 2026-04-01 00:02:56 +02:00
Jannis Braun 274b6a0b2f docs: update federation and voice docs for FED-009 federated DM calls 2026-03-31 23:46:19 +02:00
Jannis Braun 35c8c66dac docs: clean federation spec — remove resolved issue artifacts, describe current architecture 2026-03-31 22:03:28 +02:00
Jannis Braun f91312a6d9 docs: update federation docs for FED-011 secret rotation 2026-03-31 20:51:30 +02:00
Jannis Braun 720a5de945 fix(federation): add strict origin enforcement for user attribution (FED-010)
Prevent malicious peers from forging events attributed to users on other
instances. Every relay event processor now verifies the acting user's
homeInstance (from payload) matches X-Federation-Origin (from HMAC-verified
header) via verifyAttribution(), normalized to bare domain.

- Add verifyAttribution() helper using extractDomain normalization
- Guard all 13 event processors before any user resolution or DB writes
- Add homeInstance to FederationRelayReaction type + outbound payloads
- Replace unnormalized string equality in friend handlers
- Log mismatched values on rejection for debugging
2026-03-31 19:16:48 +02:00
Jannis Braun d0ed43cf58 fix(federation): add nonce length validation and fix verification flow docs (FED-008) 2026-03-31 18:18:50 +02:00
Jannis Braun 9961d9012b docs: update federation docs for FED-008 replay attack protection 2026-03-31 18:14:23 +02:00
Jannis Braun 75504e07c0 fix(federation): add per-peer rate limiting to relay endpoint (FED-007)
Sliding-window rate limiter (30 req/min per peer origin) on POST
/api/federation/relay, matching the existing accept endpoint pattern.
Returns 429 when exceeded — outbox workers retry with backoff. Check
runs before HMAC verification to avoid wasted computation on floods.
2026-03-31 17:33:57 +02:00
Jannis Braun 2cac39a460 fix(federation): replace DNS hairpin self-POST with direct function call (FED-005)
Extract processRelayEvents() from the relay HTTP handler and call it
directly in runInitialSyncForNewPeers(), eliminating the HTTP round-trip
through public DNS that failed on networks without hairpin NAT.
2026-03-31 05:20:16 +02:00
Jannis Braun c7bdfef038 docs: update federation identity resolution and auth specs for FED-006 fix
- Document extractDomain, findFederatedUser, updated resolveOrCreateReplicatedUser
- Update origin normalization table to reflect bare domain storage
- Mark Known Issue #2 (duplicate user stubs) as resolved
- Document federated stub upgrade behavior in auth registration flow
2026-03-31 04:55:51 +02:00
Jannis Braun a3a7527c9e chore: add system docs, specs, and misc updates from other sessions
- Add complete docs/systems/ reference (18 system docs)
- Add federation relay status doc and prior spec/plan docs
- Remove superseded docs/federation-dm-s2s.md (replaced by docs/systems/federation.md)
- CLAUDE.md updates
- Minor fixes in social.ts, types.ts, AddDmMemberModal, NewDmModal, UserSettings
2026-03-31 03:40:34 +02:00