Store relay settings overrides in PostgreSQL (SETTINGS_BACKEND=db)
I maintainer di solito rispondono entro 1 giorno
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Problem
Operator settings overrides currently live in settings.yaml under NOSTR_CONFIG_DIR with legacy settings.json fallback. That creates operational friction:
- When nostream releases add new default settings keys, operators editing YAML may not know new values exist or need to be added.
- Deploy/bootstrap flows copy config files that can drift from what the application expects after upgrades.
- Operators end up maintaining files that are easy to overwrite or fall out of sync with releases.
We need durable storage for operator overrides that survives upgrades without requiring manual YAML edits for every new setting.
Proposal
Store only operator overrides in PostgreSQL — not the full settings blob. Shipped defaults remain in resources/default-settings.yaml and are merged at runtime.
- Add a
settings_overridestable (pathTEXT PK,valueJSONB,updated_atTIMESTAMPTZ). - Introduce
SETTINGS_BACKEND=file|db(default:filefor backwards compatibility). - When
SETTINGS_BACKEND=db:- Bootstrap loads overrides from PostgreSQL on startup.
- If the table is empty, import existing
settings.yaml/ legacysettings.jsononce. - Admin settings PATCH and restore persist overrides to the DB.
- Runtime settings = shipped defaults merged with DB overrides.
Out of scope (follow-ups)
- DB-mode backup snapshots on each PATCH file mode still creates timestamped YAML backups.
- Hot-reload of DB overrides across all cluster workers after admin changes.
- Refactoring compose, bootstrap copied files so operators never edit release-owned files.
- Full settings schema migration, versioning in the DB.
- Lingua principale
- TypeScript
- Stelle
- 829
- Fork
- 234
- Merge medio
- 2g 10h
- PR unite (30g)
- 24
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di cameri/nostream
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
I maintainer di solito rispondono entro 1 giorno
-
feat(nip77): advertise NIP-77 in NIP-11 and expose its settings in the admin consoleForse già presa @Priyanshubhartistm l’ha presa oggi. Apertaenhancement
cameri/nostream#819 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
feat(nip77): NEG-OPEN/NEG-MSG/NEG-CLOSE wire protocol for the PostgreSQL backendForse già presa @Priyanshubhartistm l’ha presa oggi. Apertaenhancement
cameri/nostream#817 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
[Admin Console] Ops visibility panels (mirror, workers, NIP-05, storage)Forse già presa @Ferryx349 l’ha presa 1 giorno fa. ApertaAdmin Console enhancement
cameri/nostream#816 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di cameri/nostream
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
apache/rocketmq-dashboard#6610 ·
I maintainer di solito rispondono entro 3 giorni
-
nextjs-tracking
Difficoltà 2/5 1-3 ore Idoneità per principianti 69/100
cloudflare/vinext#3920 ·
I maintainer di solito rispondono entro 1 giorno
-
Team:Dashboards
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
elastic/kibana#297299 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
analytics beginner friendly community contributions-welcome good first issue hacktoberfest help wanted up-for-grabs
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
affected/v17 affected/v18 area/frontend type/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
umbraco/Umbraco-CMS#24186 ·
I maintainer di solito rispondono entro 2 giorni