aenvs/.docs/01-opus-docs/02-q.md

95 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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: оба создают новые версии;