gitoriaLog in with ident

ident

All repositories: gitoria

ReadmeCodePull requestsReleasesTicketsSettings
Commit98226b4198226b41antcolony#40: mission references point to the moved missionsmre98226b41/missions/005-ident-uuid-storage.md

3.7 KB

  1. # Mission 005 (old 009) — ident: UUID keys and storage/mpackdb/ (ticket ident.worldapi.org #10, formerly #39)
  2. One-shot worker. The architect (Claude Code on Byrodin) verifies your report, then the creator tests.
  3. ## Read first
  4. 1. Ticket: `GET http://100.77.141.84:8350/api/tickets/39` (old number; read only).
  5. 2. `loreana:/media/STORAGE/projects/ident.worldapi.org/CONCEPT.md`, `README.md`, `STATUS.md`.
  6. 3. `/CONTAINERS/projects/antcolony/README.md` — "Conventions for all apps", "Lessons learned".
  7. 4. The same migration done for tickets: `loreana:/media/STORAGE/projects/tickets.worldapi.org/missions/004-tickets-numbers-uuid.md`
  8. and `loreana:/media/STORAGE/projects/tickets.worldapi.org` (`tools/migrate-008.hl`, README "migration",
  9. `.scratch/deploy-008.sh`) — reuse its approach.
  10. ## Hybriel (standard block)
  11. Read `/CONTAINERS/projects/antcolony/docs/hybriel-for-app-workers.md` first — which docs to trust,
  12. known pitfalls with workarounds (**#40: opening an mpackdb table rewrites its files — only ever open
  13. COPIES**), the conventions, and the open hybriel tickets. Report new Hybriel findings under
  14. "Hybriel issues"; do not edit that guide.
  15. ## Scope
  16. 1. Every ident table (accounts, identities, otp, sends, apps, connections, requests, grants, and any
  17. other) gets `primaryKey = '@id'`; files move to `storage/mpackdb/`. Nothing may rely on key order
  18. (e.g. "default identity = oldest" must use a stored `created` time).
  19. 2. **What apps already hold must not change**: API keys, app secrets (hashes), and the per-app identity
  20. ids handed out by the exchange (`connections.appIdentity`) stay byte-identical. The creator's
  21. registered apps and the test app (key/secret in `testapp/storage/`, its users keyed by those ids)
  22. must keep working without re-registering.
  23. 3. **Sessions**: `.sessions/*` hold `user: {id: <old numeric account id>}`. Migrate them to the new
  24. account ids so the creator stays signed in (rehearse on a copy). If that is not safely possible,
  25. invalidate them and say so — the creator then logs in again (real mail).
  26. 4. Selector pick ids may change (they are derived per request); say whether they do.
  27. 5. One-off, idempotent migration tool, rehearsed twice on a copy; old tables kept as backup
  28. (not deleted). Before/after comparison of all accounts, identities, apps, connections.
  29. ## Mail — IMPORTANT (unchanged)
  30. The dev server on :8351 sends **real mail**. Never trigger an OTP on :8351. Gates use their own
  31. servers with `IDENT_MAIL_SINK`. **Do not read, print, copy or edit any `.env`.**
  32. ## Deploy
  33. Develop in `.scratch/dev`. Back up `storage/`, `.sessions/`, `testapp/storage/`. Stop only the PIDs in
  34. `server.pid` and `testapp/testapp.pid`; migrate from COPIES; restart both; check 200 on :8351 `/`,
  35. `/apps`, `/selector.js` and :8354 `/` without logging in. Verify the migrated store on a COPY.
  36. ## Rules
  37. - No git. Don't touch other project folders (read tickets only). Only kill your own PIDs or the named
  38. pid files. Clean up headless Chromes (`--disable-gpu`). Scratch in `.scratch/` of ident (not the
  39. architect's scratchpad on Byrodin).
  40. - Do NOT POST to the live tickets server (:8350).
  41. - If any action is refused by the permission system, don't retry or work around it; report it.
  42. - A test is the whole process: all three gates (`tests/browser.mjs`, `tests/apps.mjs`,
  43. `tests/selector.mjs`) green on the new store, plus a migration fixture (old-format store → migrate →
  44. an app's stored id still exchanges to the same identity; a migrated session is still signed in).
  45. - Update `README.md` and `STATUS.md`. Do NOT edit `CONCEPT.md`.
  46. ## Report (final answer, this structure)
  47. ```
  48. ## Done
  49. ## Verified (each: command run + observed output)
  50. ## Not verified / open
  51. ## Hybriel issues (repro, observed, expected)
  52. ## Questions for the creator
  53. ## Running (URL, PID, log path)
  54. ```

Branches

Latest commits

  • 98226b41antcolony#40: mission references point to the moved missionsmre
  • ff805b9aantcolony#40: history (LOG.md), worker briefs (missions/) and reports moved here from antcolony, numbered per project; old numbers in antcolony docs/mission-map.mdmre
  • 51a7bcdfident: Hybriel master 73267707 (#122); /code uses the new page() signature; pending address passed as parameter; once-checksmre
  • 836f644fident#24: installable app (manifest, service worker, data-free offline /start), own iconmre
  • 8bebbbf2deploy.sh: back up live storage/.sessions/.env before every deploy (newest 5 kept)mre
  • cc063ea2deploy.sh: never send .git or .gitignore to Byrodinmre
  • 81b15b7bState of 2026-09-27, before the move to gitoriamre