Команды
Окружения, fusion.<env>.json и fusion command
Окружения
Каждое окружение — это файл в корне проекта с именем fusion.<env>.json.
Новые проекты начинают с трёх окружений:
| Файл | Окружение |
|---|---|
fusion.dev.json | dev (по умолчанию) |
fusion.stage.json | stage |
fusion.prod.json | prod |
Добавьте ещё одно, создав файл — например fusion.test.json становится окружением test. Дополнительная регистрация не нужна.
Форма файла окружения
{
"env": "dev",
"config": {
"debug": true,
"host": "127.0.0.1",
"port": 8080,
"secret_key": "change-me"
},
"commands": {
"run": "python main.py"
}
}config— настройки приложения, которые читаетcore/settings(и Fusion Framework во время выполнения)commands— shell-команды, которые вы запускаете черезfusion command <name>
Swagger (опционально)
В новых проектах также есть блок swagger внутри config (включён в dev, обычно выключен в stage / prod). Отредактируйте его, чтобы управлять UI документации, OpenAPI info и схемами auth:
{
"env": "dev",
"config": {
"host": "127.0.0.1",
"port": 8080,
"swagger": {
"enabled": true,
"path": "/swagger",
"title": "Fusion API Docs",
"info": {
"title": "Fusion API",
"version": "1.0.0",
"description": "API documentation generated by fusion-framework"
},
"servers": [{ "url": "/", "description": "Current host" }],
"auth": {
"persistAuthorization": true,
"schemes": {
"BearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT"
},
"ApiKeyAuth": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key"
}
},
"global": [],
"oauth": {
"clientId": "",
"appName": "Fusion API",
"usePkceWithAuthorizationCodeGrant": true
}
},
"navbar": {
"enabled": true,
"showUrlInput": true
},
"ui": {
"deepLinking": true,
"docExpansion": "list",
"filter": true,
"tryItOutEnabled": true
}
}
},
"commands": {
"run": "python main.py"
}
}Полезные ключи:
| Ключ | Назначение |
|---|---|
swagger.enabled | Включить или выключить Swagger UI |
swagger.path | Путь UI (по умолчанию /swagger) |
auth.schemes / auth.global | Определения безопасности OpenAPI |
auth.oauth | Передаётся в Swagger UI initOAuth |
navbar.enabled | Показать верхнюю панель Swagger |
swagger.ui | Соответствует конфигурации Swagger UI |
Запуск команд
Команды — это всё, что вы объявили в commands. Запустите по имени:
fusion command run
fusion command run:dev
fusion command run --stage
fusion command run:stage
fusion command run --prod
fusion command run --env testПример: запуск sample API
После fusion init и pip install fusion-framework:
fusion command run:devЭто выполняет python main.py с FUSION_ENV=dev. С конфигурацией по умолчанию вы получите:
- API: http://127.0.0.1:8080
- Swagger UI: http://127.0.0.1:8080/swagger
Fusion собирает OpenAPI/Swagger-документацию из ваших route-модулей (включая стартовый модуль products). Через Swagger UI можно вызывать эндпоинты, смотреть схемы и пробовать auth — отдельная настройка docs не нужна.
Без флага или суффикса :env окружение берётся из FUSION_ENV, если задан, иначе dev.
Список команд, объявленных для окружения:
fusion command --stageFusion выполняет shell-строку из корня проекта (sh -c на Linux/macOS, cmd /C на Windows) и выставляет FUSION_ENV, чтобы settings загрузили нужный файл. Код выхода процесса пробрасывается — удобно для скриптов и CI.
Пользовательские команды
Добавьте любую нужную запись:
{
"env": "stage",
"config": { "port": 1010 },
"commands": {
"run": "docker compose up",
"stop": "docker compose down"
}
}fusion command stop --stageПользовательские окружения
Создайте fusion.test.json, затем:
fusion command run --test
# or
fusion command run --env testУстановка пакета фреймворка
После scaffolding установите runtime-пакет языка для проекта:
pip install fusion-frameworkРуководства по языкам: TypeScript / Node.js и C#.