// auth.el — Request authentication for DHARMA. // // Supports API key auth via X-Dharma-Key header. // The API key is loaded from DHARMA_API_KEY env var. // // Headers are exposed via state_get("__header___") — // this requires the El runtime to store request headers in GLOBAL_STATE // before invoking handle_request (patched in main.rs). // check_auth returns true if the request carries a valid DHARMA_API_KEY. // The X-Dharma-Key header is read from state_get("__header_x-dharma-key__"). fn check_auth() -> Bool { let required_key: String = env("DHARMA_API_KEY") if str_eq(required_key, "") { // No key configured — open access (development mode) return true } let provided_key: String = state_get("__header_x-dharma-key__") return str_eq(provided_key, required_key) } fn unauthorized() -> String { return "{\"error\":\"unauthorized\"}" }