# Remaining Questions (02-q) ## EnvValue type design 1. **Предложенный тип `EnvValue`:** ```go type EnvValue struct { Type string `json:"type"` // "string", "number", "bool", "json" Value any `json:"value"` } ``` **Вопросы:** - Достаточно ли типов: `string`, `number`, `bool`, `json`? - Или нужны дополнительные (например, `array`, `secret`)? - Нужно ли шифрование для sensitive values (passwords, tokens)? Answer: нужны все типы для того чтобы создать валидный .env файл на их основе --- ## Config creation during init 2. **При `aevs init` — что делать если `aevs.yaml` уже существует?** - (a) Ошибка: "Config already exists" - (b) Перезаписать с предупреждением - (c) Merge: добавить новые env файлы в существующий конфиг Answer: (c) если эта логика не предусмотрена в другой команде, (a) если у нас уже существует команда для добавления новых env файлов --- ## Version timestamp uniqueness 3. **Timestamp как ID версии:** - Unix timestamp в секундах может не быть уникальным (два пользователя создают версию в одну секунду) - Использовать миллисекунды? - Или сервер должен гарантировать уникальность и возвращать корректный ts? Answer: используй nanosec --- ## Sync without changes 4. **Что делать если при sync нет изменений (local = remote)?** - (a) Сообщение "Already up to date" и ничего не делать - (b) Всё равно создавать новую версию - (c) Опционально через флаг `--force` Answer: (a) --- ## Delete confirmation 5. **При `aevs project remove` — как именно подтверждать удаление?** - Ввести полное имя проекта? - Ввести "DELETE" или подобное ключевое слово? - Флаг `--force` для skip confirmation? Answer: ввести полное имя проекта (в промпте напиши его, чтобы нужно было перепечатать просто) --- ## parseLocals edge cases 6. **Какие файлы считать env файлами?** - Только `*.env.*` или также просто `.env`? --> `.env` тоже; - Игнорировать `.env.example`, `.env.sample`? --> не игнорировать; - Игнорировать файлы в `node_modules/`, `.git/`? --> игнорировать; --- ## API error responses 7. **Формат ошибок от сервера:** ```json { "error": "Project not found", "code": "PROJECT_NOT_FOUND" } ``` Или другой формат? Answer: этот формат норм --- ## Concurrent sync 8. **Если два пользователя делают sync одновременно:** - Оба создадут новые версии? - Нужен ли механизм блокировки (optimistic locking)? - Или это решается на уровне merge? Answer: оба создают новые версии;