Jesús Pérez 9cef9b8d57 refactor: consolidate configuration directories
Merge _configs/ into config/ for single configuration directory.
Update all path references.

Changes:
- Move _configs/* to config/
- Update .gitignore for new patterns
- No code references to _configs/ found

Impact: -1 root directory (layout_conventions.md compliance)
2025-12-26 18:36:23 +00:00

87 lines
2.4 KiB
Django/Jinja

"""
Service definitions for {{ deployment.project.name }}
Custom service configurations for this deployment.
Imports default services from defaults.k and can override or extend them.
References: schemas.k, defaults.k
Used by: deployment.k, presets.k
"""
import .schemas as s
import .defaults as d
# Assembled services list
# Include all enabled services based on user selection
services = [
{%- if deployment.services.cli %}
d.cli_service,
{%- endif %}
{%- if deployment.services.tui %}
d.tui_service,
{%- endif %}
{%- if deployment.services.api %}
d.api_service,
{%- endif %}
{%- if deployment.services.dashboard %}
d.dashboard_service,
{%- endif %}
]
# Databases list - all supported types
databases = [
{%- for db in deployment.databases %}
{%- if db.type == "sqlite" %}
d.sqlite_db,
{%- elif db.type == "postgres" %}
d.postgres_db,
{%- elif db.type == "mysql" %}
d.mysql_db,
{%- elif db.type == "surrealdb" %}
d.surrealdb_db,
{%- endif %}
{%- endfor %}
]
# Cache configuration
{%- if deployment.cache_enabled %}
cache = [
d.redis_cache,
d.memcached_cache,
]
{%- else %}
cache = []
{%- endif %}
# Default database type for this deployment
default_database = "{{ deployment.default_database }}"
# Verification checks with comprehensive error handling
try:
{literal}
# At least one service must be enabled
assert len(services) > 0, \
"Configuration error: At least one service must be enabled in this deployment"
# Default database must be in supported databases
assert any db in databases if db.type == default_database, \
"Configuration error: Default database '${default_database}' must be defined in supported databases. Available: ${[db.type for db in databases]}"
# All database requirements must be met
for service in services:
if service.database_required:
for db_type in service.database_types:
assert any db in databases if db.type == db_type, \
"Configuration error: Service '${service.name}' requires database '${db_type}' which is not configured"
{/literal}
catch err:
# Log validation errors and continue with defaults
print("⚠️ Service configuration validation error: ${err}")
# Optional: Add custom service modifications here
# Example to override a service:
# api_service_custom = d.api_service | {
# port = 3001
# min_memory_mb = 512
# }