From 4156b5b8c3986278a887d1dce4db265746e9155f Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Sat, 15 Aug 2026 00:30:29 +0200 Subject: docs: account deletion, notifications, and the APIs that no longer exist MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Account deletion is the headline, in the user guide and in draft-v5 §6.1, and the important half is what deletion does *not* do. It releases the username, clears the email and password hash, drops memberships, notifications, refresh tokens and node registrations, and refuses any access token still inside its hour. It does not touch a node: files, the pinned identity and the keypair bundle stay on machines the hub does not command, which is the same sovereignty §5.5 relies on — so deleting a hub account is not an erasure request to the operators hosting you. The IP log survives too, attributable, for its legal retention period. The claims table in §2 gets a row saying exactly this, adversary by adversary. Notifications get a section: one entry per conversation rather than per message, never one for your own message, invitations that clear when you join, muting that lives on the hub so it works from any browser. Then the corrections, which is most of the diff. The guide still described a node HTTP API — `GET /index`, `GET /file/{id}`, an HLS playlist, and a `player.js` that does not exist — with curl examples inviting the reader to expose port 19001. That surface was removed in 0.2.0 as findings C1 and C6, precisely because it served files outside the handshake that decides what a peer may see. Sections 6, 7 and the API reference now describe MNP message pairs, and the quickstart says the same in French. Also corrected: the JWT table advertised a `pk_user` claim that no longer exists (it was what let the token issuer decide who could delete a file), `/pubkeys` no longer returns identity keys, and the GEK-distribution endpoints are gone entirely rather than merely unused. draft-v5 §5.2 had uploads landing in `.uploads/{user_id}/`; they land in `uploads/`, chat attachments included. §6.1 now says the hub learns the author's user_id from chat_notify — a stable identifier, and a metadata leak worth naming rather than leaving as "by whom". CLAUDE.md records why the deployed hub broke this week: create_all() creates missing tables, never missing columns, so a schema change passes every test (fresh DB per run) and never reaches production. Co-Authored-By: Claude Opus 5 --- docs/QUICKSTART.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'docs/QUICKSTART.md') diff --git a/docs/QUICKSTART.md b/docs/QUICKSTART.md index ca3beee..2d59f1f 100644 --- a/docs/QUICKSTART.md +++ b/docs/QUICKSTART.md @@ -106,22 +106,24 @@ Fichiers disponibles : 1 fichier(s) indexé(s) -✓ Node actif sur http://127.0.0.1:19001 - Info: http://localhost:19001/ - Index: http://localhost:19001/index +✓ Node actif — MNP sur le port 19001 + Admin UI : meshbay-node ui (boucle locale, jeton requis) CTRL+C pour arrêter. ``` Vérification rapide dans un autre terminal : ```bash -curl http://localhost:19001/ -# {"node_version":"0.1.0","file_count":1,"group_name":"demo-group",...} - -curl http://localhost:19001/index -# {"entries":[{"name":"README.txt","size":93,...}],...} +meshbay-node status +# état du node, clés, groupes configurés, fichiers indexés ``` +> **Le node n'expose aucune API HTTP publique.** Les endpoints `/`, `/index` et +> `/file/{id}` ont été supprimés en 0.2.0 (findings C1 et C6) : ils servaient l'index +> et les fichiers en dehors du handshake qui décide de ce qu'un pair a le droit de +> voir. Le port 19001 est le listener MNP, pas un serveur web. La seule surface HTTP +> est l'UI d'administration, sur la boucle locale et protégée par un jeton. + **Ajouter vos propres fichiers :** ```bash cp ~/Videos/ma_video.mp4 QE/demo-v1/shared/ -- cgit v1.2.3