Commit

156d3d8

@dtinth Main build passed, release v0.0.261020163032 is out. Bumped it on next (local), rebuilt dist/notes.js, and a clean-dir run builds the example site with no Vue notice.
I am thinking about deployment and start doubting my own decisions. With Dokploy, deploying a new version of the server is just a matter of pushing to the repo. Dokploy also allows bind mount, so I can bind mount the vault into the server container. Only uid needs to match. What…
I think it's better. It keeps what mattered in Q1 (the vault stays a plain dir on the host, so Claude Code still works in it bare) and drops the part I liked least: building a release pipeline just to deploy. What changes: - Q25: no bundled-JS release needed for the server. A…
@dtinth Updated docs/SPEC.md for Dokploy + bind-mounted vault, with the CLI as a thin API client (f16dad0, local). Still waiting on a yes to push next and start on legacy parity.
On it: plan/apply against Supabase, behind an interface with an in-memory fake and tests. No live Supabase access here, so I will test against the fake and leave a read-only notes plan for you to run against the real one.
On it: adversarial security review of next (server auth, API, git/token handling, path traversal, preview iframe, Docker). Will post findings and fixes.
Review pass done, now fixing. Worst find: the GitHub App token for one repo works on every repo in the installation. Also: note aliases can write files outside the site dir (../), and symlinks in the vault are followed.
I created a dedicated app and installed it on just two directories. BTW, my GITHUB_APP_PRIVATE_KEY is a PEM file with multiline, how do I set it in .env?
Paste it as one line, either way works now (650a0f2): GITHUB_APP_PRIVATE_KEY=<output of base64 -w0 key.pem> (on macOS: base64 -i key.pem), or the PEM with \n escapes. A dedicated app on just those two repos is ideal. Tokens are now also scoped to one repo each.

commit 156d3d8

Security review done, fixes in eb17fe7, CI green. Fixed: 1. GitHub App token for one repo reached every repo in the installation. Now each token covers only its own repo, contents only. 2. A note alias like ../x wrote files outside the site dir. Ids and aliases must now be plain…
dt.in.thThai Pangsakulyanont