Справочник REST API
Все эндпоинты имеют префикс /api. Аутентифицированные эндпоинты требуют Bearer-токен в заголовке Authorization.
Authorization: Bearer <токен>Токены получаются через /api/auth/login или с помощью API-ключа. Swagger UI с полными схемами запросов и ответов доступен по адресу http://localhost:3000/docs в режиме разработки.
Аутентификация
POST /api/auth/register
Зарегистрировать новый аккаунт пользователя.
Тело
{ "email": "alice@example.com", "password": "secret", "name": "Alice" }Ответ 201 — { accessToken, refreshToken, user }
POST /api/auth/login
Аутентификация и получение токенов доступа/обновления.
Тело
{ "email": "alice@example.com", "password": "secret" }Ответ 200 — { accessToken, refreshToken, user }
POST /api/auth/refresh
Обменять refresh-токен на новый access-токен.
Тело { "refreshToken": "..." }Ответ 200 — { accessToken, refreshToken }
POST /api/auth/logout
Инвалидировать refresh-токен.
Тело { "refreshToken": "..." }Ответ 200 — { "message": "Logged out" }
GET /api/auth/registration-status
Проверить, включена ли публичная регистрация. Авторизация не требуется.
Ответ 200 — { "registrationEnabled": true }
Проекты
GET /api/projects — Список всех видимых проектов
GET /api/projects/public — Список публичных проектов (без авторизации)
GET /api/projects/mine — Список собственных проектов
GET /api/projects/:id — Получить проект по ID
POST /api/projects — Создать проект
{ "name": "my-app", "path": "org/my-app", "provider": "github", "visibility": "private" }Ответ 201 — созданный проект.
PATCH /api/projects/:id — Обновить проект (все поля необязательны)
DELETE /api/projects/:id — Удалить проект — 204
Пайплайны
GET /api/projects/:projectId/pipelines — Список пайплайнов
GET /api/projects/:projectId/pipelines/:id — Получить пайплайн
POST /api/projects/:projectId/pipelines — Создать пайплайн
{ "name": "ci" }Ответ 201 — созданный пайплайн.
PUT /api/projects/:projectId/pipelines/:id — Сохранить полное состояние пайплайна
{
"viewport": { "x": 0, "y": 0, "zoom": 1 },
"stages": [],
"stageEdges": []
}Ответ 200 — обновлённый пайплайн.
GET /api/projects/:projectId/pipelines/:id/execution-plan
Вычислить топологический порядок выполнения (без запуска).
DELETE /api/projects/:projectId/pipelines/:id — Удалить пайплайн — 204
Учётные данные
GET /api/credentials — Список учётных данных (значения скрыты)
POST /api/credentials — Создать учётные данные
{ "provider": "docker", "label": "Docker Hub Token", "value": "dckr_pat_..." }PUT /api/credentials/:id — Обновить метку или значение
DELETE /api/credentials/:id — Удалить — 204
API-ключи
GET /api/api-keys — Список API-ключей
POST /api/api-keys — Создать API-ключ
{ "name": "ci-bot" }Ответ 201 — включает rawKey (отображается только один раз).
POST /api/api-keys/:id/revoke — Отозвать ключ
DELETE /api/api-keys/:id — Удалить безвозвратно — 204
Пользователи
GET /api/users/me — Получить свой профиль
GET /api/users — Список всех пользователей (только admin)
POST /api/users — Создать пользователя (только admin)
{ "email": "bob@example.com", "password": "secret", "name": "Bob", "role": "user" }PATCH /api/users/:id — Обновить роль (только admin)
DELETE /api/users/:id — Удалить пользователя (только admin)
Администрирование
GET /api/admin/settings — Получить глобальные настройки (только admin)
Ответ { "registrationEnabled": true }
PATCH /api/admin/settings — Обновить настройки (только admin)
{ "registrationEnabled": false }Коды состояния
| Код | Значение |
|---|---|
| 200 | OK |
| 201 | Создано |
| 204 | Нет содержимого |
| 400 | Ошибка валидации |
| 401 | Отсутствует или неверный токен |
| 403 | Недостаточно прав |
| 404 | Не найдено |
| 500 | Ошибка сервера |
