From 1d8b8c68a39658ac9220eec7f014d48d739fffa1 Mon Sep 17 00:00:00 2001 From: h Date: Sun, 18 Oct 2026 16:18:26 +0200 Subject: [PATCH] docs(*): secrets key in the env example and the secrets page in the readme --- .env.example | 5 +++++ README.md | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/.env.example b/.env.example index 42213c4..6858c1b 100644 --- a/.env.example +++ b/.env.example @@ -31,6 +31,11 @@ ADMIN_PASS= # Подпись session-cookie admin UI SESSION_SECRET= +# Мастер-ключ хранилища секретов (admin → System → Secrets): openssl rand -hex 32. +# Шифрует таблицу secrets в postgres, поэтому дамп базы без него закрыт. +# В env модели не попадает. Потерян или сменён - секреты задаются заново. +SECRETS_KEY= + ### Claude #################################################################### # OAuth-токен подписки для Claude Agent SDK внутри контейнера. diff --git a/README.md b/README.md index b30cc7f..76ba5d6 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,12 @@ read-write (it is the dispatcher's home), and `beaver_agent/policy.py` keeps it out of `.obsidian`, `мета` outside `мета/бобер`, and from deleting anything but its own files. +Keys the agent needs for its own scripts (an RPC key, a service account +file) go into **System → Secrets** in the admin, not into files in the +container: they are sealed with `SECRETS_KEY` in Postgres, never shown back, +and reach a command only through `secret run NAME -- cmd` (see the `secrets` +skill under `мета/бобер/скиллы/общие/`). + ### 4. Mint a token Open admin at `http://localhost:62990/` (or `https:///` if Caddy), sign in with `ADMIN_USER` / `ADMIN_PASS`, go to **Tokens → Create**, scope `*` for first run.