Configuration

Accès à la configuration dans le code

Charger la configuration

use runique::config_runique::RuniqueConfig;

let config = RuniqueConfig::from_env();

println!("Debug: {}", config.debug);
println!("Port: {}", config.port);
println!("DB: {}", config.database_url);

Accès dans un handler

use runique::config_runique::RuniqueConfig;

async fn my_handler(template: TemplateContext) -> Response {
    let config = &template.engine.config;

    println!("Debug mode: {}", config.debug);
    println!("Port: {}", config.server.port);
    println!("IP: {}", config.server.ip_server);
    println!("Allowed hosts: {:?}", config.security.allowed_hosts);
    println!("Secret key: {}", config.security.secrete_key);
}

Configuration conditionnelle

if template.engine.config.debug {
    // Mode debug: logs détaillés, templates rechargés
} else {
    // Mode production: cache templates, pas de logs sensibles
}

if template.engine.config.security.allowed_hosts.contains("*") {
    // ⚠️ Attention: tous les hosts sont autorisés (danger en production!)
}

Validation de configuration

La configuration est validée au startup :

let config = RuniqueConfig::from_env()
    .expect("Configuration invalide");

// Retourne Err() si :
// - DATABASE_URL manquant
// - SECRETE_KEY manquant
// - Variables invalides