veza/veza-backend-api/docs
senke b8eed72f96 feat(webrtc): coturn ICE config endpoint + frontend wiring + ops template (v1.0.9 item 1.2)
Closes FUNCTIONAL_AUDIT.md §4 #1: WebRTC 1:1 calls had working
signaling but no NAT traversal, so calls between two peers behind
symmetric NAT (corporate firewalls, mobile carrier CGNAT, Incus
container default networking) failed silently after the SDP exchange.

Backend:
  - GET /api/v1/config/webrtc (public) returns {iceServers: [...]}
    built from WEBRTC_STUN_URLS / WEBRTC_TURN_URLS / *_USERNAME /
    *_CREDENTIAL env vars. Half-config (URLs without creds, or vice
    versa) deliberately omits the TURN block — a half-configured TURN
    surfaces auth errors at call time instead of falling back cleanly
    to STUN-only.
  - 4 handler tests cover the matrix.

Frontend:
  - services/api/webrtcConfig.ts caches the config for the page
    lifetime and falls back to the historical hardcoded Google STUN
    if the fetch fails.
  - useWebRTC fetches at mount, hands iceServers synchronously to
    every RTCPeerConnection, exposes a {hasTurn, loaded} hint.
  - CallButton tooltip warns up-front when TURN isn't configured
    instead of letting calls time out silently.

Ops:
  - infra/coturn/turnserver.conf — annotated template with the SSRF-
    safe denied-peer-ip ranges, prometheus exporter, TLS for TURNS,
    static lt-cred-mech (REST-secret rotation deferred to v1.1).
  - infra/coturn/README.md — Incus deploy walkthrough, smoke test
    via turnutils_uclient, capacity rules of thumb.
  - docs/ENV_VARIABLES.md gains a 13bis. WebRTC ICE servers section.

Coturn deployment itself is a separate ops action — this commit lands
the plumbing so the deploy can light up the path with zero code
changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 23:38:42 +02:00
..
architecture chore(docs): reorganize markdown files, add docs/README (P2) 2026-02-16 11:04:24 +01:00
archive chore: consolidate CI, E2E, backend and frontend updates 2026-02-17 16:43:21 +01:00
runbooks stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
ACCOUNT_LOCKOUT.md small fixes : cors + login loop 2026-02-07 20:36:48 +01:00
API_DOCUMENTATION.md Phase 2 stabilisation: code mort, Modal→Dialog, feature flags, tests, router split, Rust legacy 2026-02-14 17:23:32 +01:00
API_VERSIONING.md [INT-011] int: Add API versioning strategy 2025-12-25 15:25:33 +01:00
ARCHITECTURE.md [DOC-004] doc: Write architecture documentation 2025-12-25 02:57:10 +01:00
AUDIT_FINDINGS.json stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
AUDIT_MODULE_VEZA_BACKEND_API_2025-12-15_EXHAUSTIF.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
AUDIT_POST_REMEDIATION_2025-01-27.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
AUTH.md refonte: backend-api go first; phase 1 2025-12-12 21:34:34 -05:00
AUTH_PASSWORD_RESET.md P0: stabilisation backend/chat/stream + nouvelle base migrations v1 2025-12-06 11:14:38 +01:00
BACKEND_CONFIG.md P0: stabilisation backend/chat/stream + nouvelle base migrations v1 2025-12-06 11:14:38 +01:00
BACKEND_FILTER_PARAMS_AUDIT.md data-flow: verify backend filter parameter handling 2026-01-11 16:52:29 +01:00
BACKEND_STATUS_MONITORING.md P0: stabilisation backend/chat/stream + nouvelle base migrations v1 2025-12-06 11:14:38 +01:00
BACKUP_STRATEGY.md [BE-DB-016] be-db: Add database backup strategy 2025-12-24 15:55:46 +01:00
CIRCUIT_BREAKERS.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
CLAMAV_SETUP.md fix(backend): require ClamAV in production environment 2026-02-15 15:54:58 +01:00
DASHBOARD_ENDPOINT_CONTRACT.md data-flow: design dashboard aggregation endpoint contract 2026-01-11 16:43:14 +01:00
DEPLOYMENT_GUIDE.md release(v0.903): Vault - ORDER BY whitelist, rate limiter, VERSION sync, chat-server cleanup, Go 1.24 2026-02-27 09:43:25 +01:00
DEVELOPMENT_SETUP_GUIDE.md [DOC-003] doc: Write development setup guide 2025-12-25 02:54:47 +01:00
docs.go feat(webrtc): coturn ICE config endpoint + frontend wiring + ops template (v1.0.9 item 1.2) 2026-04-26 23:38:42 +02:00
ENDPOINT_FORMAT_AUDIT.md api-contracts: categorize endpoints by response format type 2026-01-11 16:36:28 +01:00
ENTRYPOINTS.md refonte: backend-api go first; phase 1 2025-12-12 21:34:34 -05:00
FRONTEND_INTEGRATION.md stabilizing veza-backend-api: LAST REMEDIATION 2025-12-16 14:07:36 -05:00
INTEGRATION_TESTS_HARDENING_REPORT.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
ISSUES_P2_BACKLOG.md feat(backend): OAuth FRONTEND_URL from config, docs update 2026-02-17 16:42:23 +01:00
JOB_WORKER_AUDIT.md P0: stabilisation backend/chat/stream + nouvelle base migrations v1 2025-12-06 11:14:38 +01:00
JOB_WORKER_EMAIL.md P0: stabilisation backend/chat/stream + nouvelle base migrations v1 2025-12-06 11:14:38 +01:00
JOB_WORKER_SYSTEM.md P0: stabilisation backend/chat/stream + nouvelle base migrations v1 2025-12-06 11:14:38 +01:00
OPENAPI_AUDIT_REPORT.md api-contracts: audit OpenAPI spec and generate/export to openapi.yaml 2026-01-11 16:29:31 +01:00
ORIGIN_DATABASE_SCHEMA.md P0: stabilisation backend/chat/stream + nouvelle base migrations v1 2025-12-06 11:14:38 +01:00
P0_ERROR_CONTRACT_UNIFORM_REPORT.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
P1_OBSERVABILITY_REVALIDATION_REPORT.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
POST_REVALIDATION_EVIDENCE_AUDIT.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
POST_REVALIDATION_REPORT.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
PR7B_REMAINING_WORK.md refonte: backend-api go first; phase 1 2025-12-12 21:34:34 -05:00
PROD_GATE_REPORT.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
PROD_WEEK1_HARDENING_REPORT.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
REMEDIATION_FINAL_REPORT_2025-12-15.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
REMEDIATION_PROGRESS_2025-12-15.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
REMEDIATION_STATUS_2025-12-15.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
RESPONSE_HELPERS_AUDIT.md api-contracts: verify backend response helpers use wrapped format 2026-01-11 16:36:45 +01:00
ROUTES_ORPHANES.md feat(backend): OAuth FRONTEND_URL from config, docs update 2026-02-17 16:42:23 +01:00
STABILIZATION_BASELINE.md refonte: backend-api go first; phase 1 2025-12-12 21:34:34 -05:00
STAGING_OBSERVABILITY_CHECKLIST.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
swagger.json feat(webrtc): coturn ICE config endpoint + frontend wiring + ops template (v1.0.9 item 1.2) 2026-04-26 23:38:42 +02:00
swagger.yaml feat(webrtc): coturn ICE config endpoint + frontend wiring + ops template (v1.0.9 item 1.2) 2026-04-26 23:38:42 +02:00
TEST_FAILS.json stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
TEST_FAILS.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
TEST_REMEDIATION_REPORT.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
TODOS_AUDIT.md feat(backend): OAuth FRONTEND_URL from config, docs update 2026-02-17 16:42:23 +01:00
TROUBLESHOOTING_GUIDE.md release(v0.903): Vault - ORDER BY whitelist, rate limiter, VERSION sync, chat-server cleanup, Go 1.24 2026-02-27 09:43:25 +01:00
UPLOAD_ASYNC.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
UPLOAD_ASYNC_OPTIONS.md stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
USER_GUIDE.md [DOC-005] doc: Write user guide 2025-12-25 10:56:24 +01:00
VULNERABILITY_SCANNING.md refonte: backend-api go first; phase 1 2025-12-12 21:34:34 -05:00