Files
omo-bot/docs/08_concepts.md
T
zwitschi 77e43a6a38 Add initial project structure, including README, CONTRIBUTING, and documentation files
- Created .gitignore to exclude unnecessary files
- Added README.md with project description and core features
- Introduced CONTRIBUTING.md for development guidelines
- Established documentation files for architecture, quality requirements, and technical risks
2026-05-17 15:50:43 +02:00

33 lines
1.2 KiB
Markdown

# Cross-cutting Concepts
## Logging & Monitoring
- Structured logging (JSON) to stdout — visible in Coolify logs and via `docker logs`
- Log levels: DEBUG (dev), INFO (prod), ERROR (alert-worthy)
- Key metrics exposed via Prometheus endpoint: commands/sec, webhook latency, active users
## Error Handling
- Command handlers: try/catch → ephemeral error reply to user + logged
- Content pollers: exponential backoff on API failures, alert after 3 consecutive failures
- Mileage writes: retry (3x, 50ms backoff) before logging as failed
## Configuration
- Environment variables via `.env` file (dev) or Coolify secrets (prod), keep example in `.env.example`
- Config schema validated on startup — bot exits on missing required vars
## Security
- Bot token stored in env variable, never logged
- OAuth2 tokens short-lived; refresh flow managed by web app
- Admin dashboard routes guarded by Discord OAuth2 role check (`@Producer` or `@Director`)
- All external API calls over HTTPS
## Conventions
- Slash command names: kebab-case
- Event handler naming: `on<EventName>` pattern
- Database table names: snake_case, plural
- PRs require passing lint + tests before merge