Skip to content

Справочник REST API

Все эндпоинты имеют префикс /api. Аутентифицированные эндпоинты требуют Bearer-токен в заголовке Authorization.

http
Authorization: Bearer <токен>

Токены получаются через /api/auth/login или с помощью API-ключа. Swagger UI с полными схемами запросов и ответов доступен по адресу http://localhost:3000/docs в режиме разработки.


Аутентификация

POST /api/auth/register

Зарегистрировать новый аккаунт пользователя.

Тело

json
{ "email": "alice@example.com", "password": "secret", "name": "Alice" }

Ответ 201{ accessToken, refreshToken, user }


POST /api/auth/login

Аутентификация и получение токенов доступа/обновления.

Тело

json
{ "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 — Создать проект

json
{ "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 — Создать пайплайн

json
{ "name": "ci" }

Ответ 201 — созданный пайплайн.

PUT /api/projects/:projectId/pipelines/:id — Сохранить полное состояние пайплайна

json
{
  "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 — Создать учётные данные

json
{ "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-ключ

json
{ "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)

json
{ "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)

json
{ "registrationEnabled": false }

Коды состояния

КодЗначение
200OK
201Создано
204Нет содержимого
400Ошибка валидации
401Отсутствует или неверный токен
403Недостаточно прав
404Не найдено
500Ошибка сервера

Released under the MIT License.