Appearance
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(миграция из JSONBshared_user_ids) - Шаринг с ролями
admin/viewerчерезservice-common/sharing - Пагинация (
offset/limit, max 1000), фильтрация (ids/nids), поиск (search), сортировка - Валидация YAML при создании
- Swagger UI:
/swagger/index.html
Структура БД
| Таблица | Описание |
|---|---|
envs | id (UUID), name, description, owner_id, shared_user_ids (JSONB, legacy), encrypted_data |
prop_users | id, prop_id, user_id, role (admin/viewer), created_at, updated_at |
Примечание: Таблица
prop_usersсоздана в миграции 005 с миграцией данных из JSONBshared_user_ids. Новые записи создаются вprop_users.
Конфигурация
| Переменная | По умолчанию | Описание |
|---|---|---|
PORT | 8097 | Порт сервера |
DB_HOST/PORT/NAME/USER/PASSWORD/SSL_MODE | — | PostgreSQL |
JWT_SECRET | — | Секрет JWT |
SERVICE_TOKEN | — | Токен межсервисного взаимодействия |
ENCRYPTION_KEY | — | Обязательный. Base64 32-byte ключ XChaCha20-Poly1305 (openssl rand -base64 32) |
MESSAGING_URL | nats://localhost:4222 | NATS URL |