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

80 lines
3.0 KiB
Markdown
Raw Permalink 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.

# New Questions (03-q)
## Environment naming during init
1. **parseLocals находит файлы типа `.env.prod`, `./docker/.env.local`**
В конфиге environments имеет структуру:
```yaml
environments:
production: # <-- это Env.Name
path: ".env.prod" # <-- это Env.Path
```
**Вопрос:** Откуда берётся `Name` ("production")?
- (a) Интерактивный промпт для каждого найденного файла
- (b) Автоматически из имени файла (`.env.prod` `prod`)
- (c) Используем путь к файлу как Name (`.env.prod` `.env.prod`)
answer (c)
---
## Merge с 3+ версиями
2. **При merge трёх версий, где переменная имеет разные значения:**
```
VARIABLE: DATABASE_URL
[1] version 1706000001: postgres://v1
[2] version 1706000002: postgres://v2
[3] version 1706000003: postgres://v3
Select (1/2/3):
```
**Это правильное поведение?** Или merge должен быть только для двух версий за раз?
answer: правильное
---
## api_url scope
3. **`api_url` в конфиге проекта:**
- Разные проекты могут иметь разные `api_url`?
- Или `api_url` должен быть глобальным (env var `AEVS_API_URL`)?
**Вопрос:** Какой scope у api_url?
- (a) Per-project (в `aevs.yaml`)
- (b) Global (env var или `~/.config/aevs/config.yaml`)
- (c) Both: global default + per-project override
answer (a)
---
## Project name timing
4. **Когда устанавливается имя проекта?**
Сценарий:
1. `aevs init` промпт "Enter project name"
2. `aevs sync` если project_id пустой, создаём проект на сервере
**Вопрос:** Имя проекта:
- (a) Сохраняется в конфиге во время init, используется при создании на сервере
- (b) Запрашивается только при первом sync
- (c) В конфиге нет имени, только project_id после первого sync
answer: (b), id проекта -- это uuid его можно сгенерировать на клиенте
---
## GET /projects authorization
5. **`GET /projects` возвращает все проекты:**
- Все проекты в системе?
- Только проекты доступные этому api_key?
**Для MVP:** Один api_key = доступ ко всем проектам?
только доступные проекты (для mvp - создай в inmemory хранилище проекты для другого ключа, чтобы на тестах убедиться, что пользователь его не видит)