feat: add module config and migrations auto-discovery infrastructure
Add self-contained configuration and migrations support for modules:
Config auto-discovery (app/modules/config.py):
- Modules can have config.py with Pydantic Settings
- Environment variables prefixed with MODULE_NAME_
- Auto-discovered via get_module_config()
Migrations auto-discovery:
- Each module has migrations/versions/ directory
- Alembic discovers module migrations automatically
- Naming convention: {module}_{seq}_{description}.py
New architecture rules (MOD-013 to MOD-015):
- MOD-013: config.py should export config/config_class
- MOD-014: Migrations must follow naming convention
- MOD-015: Migrations directory must have __init__.py
Created for all 11 self-contained modules:
- config.py placeholder files
- migrations/ directories with __init__.py files
Added core and tenancy module definitions for completeness.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
31
app/modules/monitoring/config.py
Normal file
31
app/modules/monitoring/config.py
Normal file
@@ -0,0 +1,31 @@
|
||||
# app/modules/monitoring/config.py
|
||||
"""
|
||||
Module configuration.
|
||||
|
||||
Environment-based configuration using Pydantic Settings.
|
||||
Settings are loaded from environment variables with MONITORING_ prefix.
|
||||
|
||||
Example:
|
||||
MONITORING_SETTING_NAME=value
|
||||
|
||||
Usage:
|
||||
from app.modules.monitoring.config import config
|
||||
value = config.setting_name
|
||||
"""
|
||||
from pydantic_settings import BaseSettings
|
||||
|
||||
|
||||
class ModuleConfig(BaseSettings):
|
||||
"""Configuration for monitoring module."""
|
||||
|
||||
# Add module-specific settings here
|
||||
# Example:
|
||||
# api_timeout: int = 30
|
||||
# batch_size: int = 100
|
||||
|
||||
model_config = {"env_prefix": "MONITORING_"}
|
||||
|
||||
|
||||
# Export for auto-discovery
|
||||
config_class = ModuleConfig
|
||||
config = ModuleConfig()
|
||||
1
app/modules/monitoring/migrations/__init__.py
Normal file
1
app/modules/monitoring/migrations/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
"""Module migrations."""
|
||||
1
app/modules/monitoring/migrations/versions/__init__.py
Normal file
1
app/modules/monitoring/migrations/versions/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
"""Migration versions."""
|
||||
Reference in New Issue
Block a user