Add database-backed configuration (AppSetting model, ConfigService, settings API)
- Add AppSetting model for key-value settings storage in PostgreSQL - Create ConfigService with DB-first, env-var-fallback resolution - Add admin-only /api/v1/settings CRUD endpoints - Update tasks.py to use ConfigService for SMTP config - Seed default settings on application startup - Add 24 unit tests for ConfigService (all passing) Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com> Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/ce88d4a8-d8c2-49b3-95a1-30592105a769
This commit is contained in:
@@ -1,6 +1,17 @@
|
||||
"""
|
||||
Application configuration using Pydantic settings.
|
||||
Supports environment variables and .env files.
|
||||
|
||||
Supports a hybrid configuration model:
|
||||
• **Bootstrap settings** (DATABASE_URL, SECRET_KEY, ENCRYPTION_KEY)
|
||||
are always loaded from environment variables or ``.env`` files.
|
||||
• **Application settings** (SMTP, processing, Gmail API, etc.)
|
||||
can be managed in the database via the ``AppSetting`` model and
|
||||
the ``/api/v1/settings`` admin endpoints. When a setting exists
|
||||
in the database it takes precedence over environment variables.
|
||||
|
||||
See ``app.services.config_service.ConfigService`` for the runtime
|
||||
lookup logic and ``app.models.database_models.AppSetting`` for the
|
||||
database model.
|
||||
"""
|
||||
|
||||
from typing import Optional, List
|
||||
|
||||
Reference in New Issue
Block a user