# PostgreSQL UI Parameters Verification **Date:** 2026-01-28 **Source:** User provided screenshots of "Create PostgreSQL" operation in Nubes UI. ## Observed UI Fields (Creation Form) The form "Создание экземпляра: PostgreSQL" contains the following fields in order: 1. **Платформа для развертывания** (Dropdown) *Required* * Value: `k8s-3.ext.nubes.ru` * Provider Mapping: `resource_realm` (Confirmed) 2. **Услуга S3 для резервных копий** (Dropdown) *Required* * Label: `Услуга S3 для резервных копий.` * Example Value: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` * Note: "Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно" * Provider Mapping: `s3_uid` (Confirmed) https://registry.terraform.io/providers/nubes/nubes/latest/docs/resources/postgres#s3_uid 3. **Квота ядра пода (mili)** (Input) *Required* * Label: `Квота ядра пода (Указывается в mili)` * Value: `500` * Provider Mapping: `cpu` 4. **Квота памяти пода (MB)** (Input) *Required* * Label: `Квота памяти пода (Указывается в MegaBytes)` * Value: `512` * Provider Mapping: `memory` 5. **Размер диска для базы данных (GB)** (Input) *Required* * Label: `Размер диска для базы данных (GigaBytes)` * Value: `10` * Provider Mapping: `disk` 6. **Количество узлов** (Input) * Label: `Количество узлов` * Value: `1` * Provider Mapping: `instances` 7. **Выделение белого ip для master ноды** (Checkbox) * Label: `Выделение белого ip для master ноды` * Value: Unchecked * Provider Mapping: `need_external_address_master` 8. **Имя ipSpace для публикации VIP master** (Input) * Label: `Имя ipSpace для публикации VIP master` * Note: "Не может быть пустым, если включен needExternalAddressMaster" * Provider Mapping: `ip_space_name_master` 9. **Выделение белого ip для slave ноды** (Checkbox) * Label: `Выделение белого ip для slave ноды` * Value: Unchecked * Provider Mapping: `need_external_address_slave` 10. **Имя ipSpace для публикации VIP slave** (Input) * Label: `Имя ipSpace для публикации VIP slave` * Note: "Не может быть пустым, если включен needExternalAddressSlave" * Provider Mapping: `ip_space_name_slave` 11. **Количество резервных копий** (Input) * Label: `Количество резервных копий` * Value: `7` * Note: "Не обязательный. По умолчанию: 24 (sic! screenshot says 24, provider default is 7? check code)" * Provider Mapping: `backup_retention` 12. **Расписание резервного копирования** (Input) * Label: `Расписание резервного копирования` * Value: `0 0 * * *` * Note: "Не обязательный. Время запуска бекапа" * Provider Mapping: `backup_schedule` 13. **Версия PostgreSQL** (Dropdown) *Required* * Label: `Версия PostgreSQL` * Value: `17` * Provider Mapping: `version` 14. **Параметры postgresql.conf в виде JSON** (Text Area/Beautify) * Label: `Параметры postgresql.conf в виде JSON` * Value: `{"log_connections": "off", "log_disconnections": "off"}` (Screenshot example) * Provider Mapping: `parameters` (Note: Resource field is `parameters`, docs refer to it as `config_json` sometimes? Check consistency). 15. **Включить pgPooler для Master** (Checkbox) * Label: `Включить pgPooler для Master` * Value: Unchecked * Provider Mapping: `enable_pgpooler_master` 16. **Включить pgPooler для Slave** (Checkbox) * Label: `Включить pgPooler для Slave` * Value: Unchecked * Provider Mapping: `enable_pgpooler_slave` 17. **Выключить sslmode** (Checkbox) * Label: `Выключить sslmode` * Value: Unchecked * Provider Mapping: `allow_no_ssl` 18. **Включить autoScale** (Checkbox) * Label: `Включить autoScale` * Value: Checked (in screenshot) * Provider Mapping: `auto_scale` 19. **На сколько % расширяется диск (мин. 1G)** (Input) * Label: `На сколько % расширяется диск (мин. 1G)` * Value: `10` * Provider Mapping: `auto_scale_percentage` 20. **Тех окно обновления дисков** (Input) * Label: `Тех окно обновления дисков` * Value: `0` * Note: "Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)" * Provider Mapping: `auto_scale_tech_window` 21. **Квота для autoScale** (Input) * Label: `Квота для autoScale` * Value: `1` * Provider Mapping: `auto_scale_quota_gb` ## Discrepancies & Action Items 1. **Backup Retention Default**: Screenshot note says "По умолчанию: 24", but Terraform code default might be `7`. Should probably clarify or match UI default if critical. 2. **Parameters Name**: Check if Terraform argument is `parameters` or `config_json`. * *Check*: `internal/provider/postgres_resource.go` uses `Parameters`. * *Check*: `docs/registry/resources/postgres.md` uses `config_json`. **MISMATCH**. 3. **Required fields**: * `Платформа для развертывания` and `Услуга S3...` are definitely required and match our updates. ## Plan 1. **Fix Mismatch**: Rename `config_json` -> `parameters` in documentation to match Go struct, or rename Go struct field to `config_json` to match documentation. (Prefer `parameters` as it maps to UI "Параметры..."). 2. **Verify Defaults**: Ensure `backup_retention` defaults make sense.