e30c3b632a
Forges (multi-host) + tokens, project directories, and git identity now live in a private SQLite config store (internal/store, modernc.org/sqlite) on a /data named volume that is not bind-mounted or exposed, so credentials aren't reachable outside the container. New Settings page (/settings) + <settings-panel> with /api/config CRUD. Scanner reads roots fresh from the store each cycle; service resolves forges per-repo from the store and reapplies per-forge git auth on change. First run seeds the store from .env. Overturns the old no-datastore/.env-config laws (AGENT.md updated). Verified live end-to-end. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
31 lines
1.3 KiB
Markdown
31 lines
1.3 KiB
Markdown
# settings-panel
|
|
|
|
## Intent
|
|
The UI for the config store (AGENT.md §1.3) — manage forge hosts + tokens,
|
|
project directories to scan, and the git commit identity, replacing hand-editing
|
|
`.env` for domain config. Served at `/settings`.
|
|
|
|
## Public surface
|
|
- **Tag:** `<settings-panel>`
|
|
- **Fetches:** `GET /api/config/forges`, `GET /api/config/project-dirs`,
|
|
`GET /api/config/identity`.
|
|
- **Writes:**
|
|
- Forges: `POST /api/config/forges` (add), `DELETE /api/config/forges/:id`.
|
|
- Project dirs: `POST /api/config/project-dirs` (add),
|
|
`PUT /api/config/project-dirs/:id` (enable/disable),
|
|
`DELETE /api/config/project-dirs/:id`.
|
|
- Identity: `PUT /api/config/identity`.
|
|
- **Reports:** results via `toast` CustomEvents (needs `<toast-host>` on the page).
|
|
|
|
## History
|
|
- 2026-09-22: created — settings UI for the SQLite config store (forges, project
|
|
dirs, git identity).
|
|
|
|
## Notes / gotchas
|
|
- Tokens are **write-only** from the client: the server returns only `hasToken`,
|
|
never the value. Removing + re-adding a forge is how you rotate a token.
|
|
- Project-dir paths are **container paths** and must resolve inside the container
|
|
(under a mounted base); the server validates existence before adding.
|
|
- Adding/removing a forge reapplies git auth (the server sets an `http.extraheader`
|
|
per forge); changes take effect immediately.
|