Files
2026-05-18 16:08:52 +02:00

33 lines
947 B
Markdown

## Context
The platform needs a simple key-value configuration system for user preferences like theme, editor, and git identity.
## Goals / Non-Goals
**Goals:**
- Store user config as JSONB in PostgreSQL
- Support partial updates (PATCH semantics)
- Apply theme in frontend on load
- Provide settings UI
**Non-Goals:**
- Complex nested config structures
- Config validation beyond type checking
- Per-project config (global only)
## Decisions
1. **JSONB column for flexibility**
- Rationale: Simple key-value, no schema migrations for new keys
2. **Merge semantics for updates**
- Rationale: Frontend can update single key without sending entire config
3. **Lazy creation**
- Rationale: Config row created on first write, not on user creation
## Risks
- **[JSONB query performance]** → Only querying by user_id, not by config keys
- **[No schema validation]** → Frontend validates known keys, backend accepts any JSON