3.5 KiB
3.5 KiB
Remaining Questions (02-q)
EnvValue type design
-
Предложенный тип
EnvValue: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
-
При
aevs init— что делать еслиaevs.yamlуже существует?- (a) Ошибка: "Config already exists"
- (b) Перезаписать с предупреждением
- (c) Merge: добавить новые env файлы в существующий конфиг
Answer: (c) если эта логика не предусмотрена в другой команде, (a) если у нас уже существует команда для добавления новых env файлов
Version timestamp uniqueness
-
Timestamp как ID версии:
- Unix timestamp в секундах может не быть уникальным (два пользователя создают версию в одну секунду)
- Использовать миллисекунды?
- Или сервер должен гарантировать уникальность и возвращать корректный ts?
Answer: используй nanosec
Sync without changes
- Что делать если при sync нет изменений (local = remote)?
- (a) Сообщение "Already up to date" и ничего не делать
- (b) Всё равно создавать новую версию
- (c) Опционально через флаг
--force
Answer: (a)
Delete confirmation
-
При
aevs project remove— как именно подтверждать удаление?- Ввести полное имя проекта?
- Ввести "DELETE" или подобное ключевое слово?
- Флаг
--forceдля skip confirmation?
Answer: ввести полное имя проекта (в промпте напиши его, чтобы нужно было перепечатать просто)
parseLocals edge cases
- Какие файлы считать env файлами?
- Только
*.env.*или также просто.env? -->.envтоже; - Игнорировать
.env.example,.env.sample? --> не игнорировать; - Игнорировать файлы в
node_modules/,.git/? --> игнорировать;
- Только
API error responses
- Формат ошибок от сервера:
Или другой формат? Answer: этот формат норм{ "error": "Project not found", "code": "PROJECT_NOT_FOUND" }
Concurrent sync
-
Если два пользователя делают sync одновременно:
- Оба создадут новые версии?
- Нужен ли механизм блокировки (optimistic locking)?
- Или это решается на уровне merge?
Answer: оба создают новые версии;