Skip to content

Env Manager (Props Manager)

Назначение

Сервис безопасного хранения, получения и шаринга зашифрованных конфигурационных данных (YAML/JSON) в PostgreSQL. Централизованное хранилище секретов и конфигов платформы.

Порты

  • HTTP: 8097
  • БД: env_manager_db

Ключевые возможности

  • Шифрование данных XChaCha20-Poly1305 — данные зашифрованы в БД, расшифровываются только при чтении через API
  • Двухуровневая аутентификация:
    • JWT Bearer — пользователи (доступ к own + shared env)
    • Service Token — межсервисное взаимодействие (доступ к любому env по ID)
  • Модель доступа: один owner_id + таблица prop_users (миграция из JSONB shared_user_ids)
  • Шаринг с ролями admin / viewer через service-common/sharing
  • Пагинация (offset/limit, max 1000), фильтрация (ids/nids), поиск (search), сортировка
  • Валидация YAML при создании
  • Swagger UI: /swagger/index.html

Структура БД

ТаблицаОписание
envsid (UUID), name, description, owner_id, shared_user_ids (JSONB, legacy), encrypted_data
prop_usersid, prop_id, user_id, role (admin/viewer), created_at, updated_at

Примечание: Таблица prop_users создана в миграции 005 с миграцией данных из JSONB shared_user_ids. Новые записи создаются в prop_users.

Конфигурация

ПеременнаяПо умолчаниюОписание
PORT8097Порт сервера
DB_HOST/PORT/NAME/USER/PASSWORD/SSL_MODEPostgreSQL
JWT_SECRETСекрет JWT
SERVICE_TOKENТокен межсервисного взаимодействия
ENCRYPTION_KEYОбязательный. Base64 32-byte ключ XChaCha20-Poly1305 (openssl rand -base64 32)
MESSAGING_URLnats://localhost:4222NATS URL