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.