From 2aa1fee4d67f40e426c1d4a04ae8f89b26b424d5 Mon Sep 17 00:00:00 2001 From: Bas van den Aakster Date: Sun, 7 Dec 2025 22:07:16 +0100 Subject: [PATCH] docs: update server README to remove outdated sections - Remove obsolete POST /index/:username/query endpoint - Remove non-existent PUT /offers/:offerId/heartbeat endpoint - Update architecture diagram to reflect semver discovery - Update database schema to show service-to-offers relationship --- README.md | 39 ++++++++++++--------------------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index ec603e5..d60e018 100644 --- a/README.md +++ b/README.md @@ -30,11 +30,11 @@ Username Claiming → Service Publishing → Service Discovery → WebRTC Connec alice claims "alice" with Ed25519 signature ↓ -alice publishes com.example.chat@1.0.0 → receives UUID abc123 +alice publishes com.example.chat@1.0.0 with multiple offers → receives UUID abc123 ↓ -bob queries alice's services → gets UUID abc123 +bob requests alice/com.example.chat@1.0.0 → gets compatible service with available offer ↓ -bob connects to UUID abc123 → WebRTC connection established +WebRTC connection established via offer/answer exchange ``` ## Quick Start @@ -240,26 +240,6 @@ Unpublish a service (requires authentication and ownership) } ``` -### Service Discovery - -#### `POST /index/:username/query` -Query a service by FQN - -**Request:** -```json -{ - "serviceFqn": "com.example.chat@1.0.0" -} -``` - -**Response:** -```json -{ - "uuid": "abc123", - "allowed": true -} -``` - ### Offer Management (Low-level) #### `POST /offers` @@ -283,9 +263,6 @@ Create one or more offers (requires authentication) #### `GET /offers/mine` List all offers owned by authenticated peer -#### `PUT /offers/:offerId/heartbeat` -Update last_seen timestamp for an offer - #### `DELETE /offers/:offerId` Delete a specific offer @@ -345,11 +322,19 @@ Environment variables: - `id` (PK): Service ID (UUID) - `username` (FK): Owner username - `service_fqn`: Fully qualified name (com.example.chat@1.0.0) -- `offer_id` (FK): WebRTC offer ID - `is_public`: Public/private flag - `metadata`: JSON metadata - `created_at`, `expires_at`: Timestamps +### offers +- `id` (PK): Offer ID (hash of SDP) +- `peer_id` (FK): Owner peer ID +- `service_id` (FK): Optional link to service (null for standalone offers) +- `sdp`: WebRTC offer SDP +- `answerer_peer_id`: Peer ID of answerer (null until answered) +- `answer_sdp`: WebRTC answer SDP (null until answered) +- `created_at`, `expires_at`, `last_seen`: Timestamps + ### service_index (privacy layer) - `uuid` (PK): Random UUID for discovery - `service_id` (FK): Links to service