Commit Graph
6 Commits
Author SHA1 Message Date
eezd ccb16acbea chore: standardize project comments in English 2026-10-26 22:52:12 +08:00
eezd 1b2b2b12ff feat(api): require bearer authentication and unify response contracts 2026-10-25 20:42:20 +08:00
eezd 9449a1aa65 feat(storage): expose backup restoration and maintenance tools 2026-10-25 13:22:16 +08:00
eezd 89472fe6fd Subscribe to vault events before completing WebSocket upgrades 2026-10-20 17:01:29 +08:00
eezd 1e33f50c5e Block encoded unsafe links and revoked event credentials 2026-10-20 12:55:00 +08:00
eezd c4d2bd4636 feat(server): add Go backend with vault, auth, events and REST API
- vault: path validation (no traversal, hidden segments or symlink
  escape), atomic writes with If-Match/If-None-Match revisions, moves
  that carry the note's .assets folder and rewrite its image links,
  trash with restore, content-addressed asset uploads
- auth: single-user Argon2id password, sliding sessions in SQLite,
  login rate limiting, first-run setup gated by a one-time code written
  to the data directory
- watch: fsnotify plus periodic rescans diffed against a snapshot, so
  both RawMark and external edits are broadcast as tree/changed/moved/
  deleted events over WebSocket
- api: stdlib router, SameSite=Strict cookies plus Origin checks,
  sandboxed raw file serving, embedded SPA with gzip and CSP
2026-10-16 18:23:23 +08:00