80 lines
3.0 KiB
Markdown
80 lines
3.0 KiB
Markdown
# 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 хранилище проекты для другого ключа, чтобы на тестах убедиться, что пользователь его не видит)
|