Перейти к содержимому

Environment Variables

Environment Variables (переменные окружения) — это параметры конфигурации, которые передаются вашему приложению при сборке и выполнении.

  • API ключи — ключи внешних сервисов
  • URL баз данных — подключение к базе данных
  • Секреты — токены, пароли
  • Конфигурация — настройки приложения

ONREZA поддерживает переменные на двух уровнях:

Переменные, специфичные для одного проекта.

  • Доступны только в этом проекте
  • Можно привязать к определённым окружениям
  • Настраиваются в Project → Settings → Environment Variables

Переменные, общие для всех проектов в workspace.

  • Доступны во всех проектах (или выбранных)
  • Удобно для общих API ключей
  • Настраиваются в Workspace → Settings → Environment Variables

При конфликте имён используется следующий приоритет:

  1. System Variable — высший приоритет (перезаписывает пользовательские)
  2. Project Variable — перезаписывает workspace-переменные
  3. Linked Workspace Variable — базовый уровень
Деплой использует:
ONREZA_ENV=production (System — перезаписывает одноимённые)
DATABASE_URL=... (из Project)
API_KEY=... (из Workspace, т.к. нет в Project)

Переменные можно применять к определённым окружениям:

Scope Описание
All Environments Применяется везде
Selected Только к выбранным окружениям
DATABASE_URL (Production) = postgres://prod-db...
DATABASE_URL (Preview) = postgres://staging-db...

Переменные можно пометить как секреты. Секреты устроены по write-only модели:

  • Зашифрованы в базе данных
  • Скрыты в UI: значение не отображается после создания (только метка «секрет»)
  • Недоступны через API в явном виде — прочитать plaintext секрета извне нельзя ни через UI, ни через CLI, ни через API
  • Доступны вашему коду при сборке и выполнении через обычные переменные окружения

Это защищает от кражи значений через скомпрометированную сессию или токен с правом чтения: даже злоумышленник с доступом к workspace не сможет извлечь секрет обратно. Если значение нужно обновить — перезапишите переменную; старое значение при этом уходит без возможности восстановления.

ONREZA автоматически предоставляет системные переменные при каждом деплое:

Переменная Описание Пример
ONREZA_ENV Тип окружения production / preview / development
ONREZA_PROJECT_NAME Имя проекта my-app
ONREZA_GIT_BRANCH Ветка деплоя main, feature/auth
ONREZA_GIT_COMMIT_SHA SHA коммита a1b2c3d4e5f6...
ONREZA_GIT_COMMIT_MESSAGE Сообщение коммита fix: resolve login bug
ONREZA_GIT_PROVIDER Git-провайдер github / gitverse / sourcecraft
ONREZA_GIT_REPO_SLUG Репозиторий my-org/my-app
ONREZA_PROTECTION_BYPASS Секрет для обхода защиты preview (только если настроен)
// Условная логика в зависимости от окружения
if (process.env.ONREZA_ENV === 'preview') {
console.log('Это preview-деплой');
}
// Информация о коммите для мониторинга
const release = process.env.ONREZA_GIT_COMMIT_SHA;

Если системные переменные конфликтуют с вашим кодом:

Project → Settings → Environment Variables → снимите галочку «Автоматически добавлять системные переменные»

Загрузите .env файл для быстрого создания переменных:

  1. Откройте Environment Variables
  2. Нажмите Import
  3. Выберите .env файл
  4. Подтвердите импорт

Скачайте переменные проекта в формате .env:

  1. Откройте Environment Variables
  2. Нажмите Export
  3. Файл скачается автоматически
Параметр Hobby Pro Enterprise
Переменных на проект 100 300 1 000
Общий размер на проект 32 КБ 64 КБ 256 КБ

Общий размер считается по сумме всех значений переменных проекта. При превышении лимита операция будет отклонена с сообщением об ошибке.

Окно терминала
# Хорошо
DATABASE_URL=...
STRIPE_SECRET_KEY=...
NEXT_PUBLIC_API_URL=...
# Плохо
db=...
key=...
url=...
Окно терминала
# Production
DATABASE_URL=postgres://prod-server/db
# Preview
DATABASE_URL=postgres://staging-server/db
  • Никогда не храните секреты в коде
  • Используйте разные значения для production и preview
  • Периодически ротируйте токены и ключи