OxL Справочник OxL
РусскийEnglish

14.1 Статическая конфигурация

oxl
config App {
  dbUrl: DbUrl
  port: Port = DEFAULT_PORT
  stripeKey: secret<str>
  profile dev  { dbUrl = "sqlite://dev.db" }
  profile prod { port = 443 }
}

let app = App.get()
  • config Имя { … } объявляет типизированный конфиг. Поля — как у data; profile имя { поле = значение } задаёт значения профиля.
  • Источники в порядке приоритета: флаг --set App.port=8080 → переменная окружения APP_PORT (имя конфига и поле в UPPER_SNAKE_CASE, вложенность через __) → файл config/<профиль>.toml → блок profile → значение по умолчанию.
  • Профиль выбирается флагом --profile или OXL_PROFILE; по умолчанию dev.
  • Конфиг загружается на шаге 2 запуска (§2.4). Неизвестный ключ, неверный тип, нарушение уточнения или отсутствие обязательного поля — сообщение с указанием источника и завершение с кодом 78.
  • App.get() возвращает Arc<frozen App>; значение не меняется до перезапуска.
  • const — для значений, известных при сборке и не зависящих от окружения.

config-type

См. также

Исходник: docs/spec/oxl-standard.md