Skitflow

API Skitflow

Как взаимодействовать с API Skitflow для администраторов и пользователей

В некоторых случаях вам может потребоваться прямое взаимодействие с API Skitflow. Вот как это могут сделать администраторы и пользователи.

Для администраторов

  1. Откройте Swagger UI, перейдя по адресу your-vps-ip:3000/swagger.
  2. Используйте интерфейс Swagger для взаимодействия с API.
  3. По умолчанию доступ к Swagger UI ограничен, и только аутентифицированные администраторы имеют доступ к API.

Для пользователей

  1. По умолчанию пользователи не имеют прямого доступа к API.
  2. Администраторы могут предоставить пользователям доступ для:
    • Генерации токенов доступа
    • Доступа к Swagger UI
  3. Если вам нужен доступ, свяжитесь с вашим администратором.

Примечание: API предоставляет расширенные возможности. Убедитесь, что вы понимаете выполняемые операции, чтобы избежать непредвиденных изменений в системе.

Использование

По умолчанию базовый URL OpenApi — http://localhost:3000/api, вам необходимо заменить его на IP-адрес вашего экземпляра Skitflow или доменное имя.

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

API использует JWT-токены для аутентификации. Вы можете сгенерировать токен, перейдя на страницу /settings/profile в раздел API/CLI и сгенерировав токен.

Рассмотрим пример аутентифицированного запроса:

curl -X 'GET' \
  'https://skitflow.cloud/api/project.all' \
  -H 'accept: application/json' \
  -H 'x-api-key: YOUR-GENERATED-API-KEY'

в ответ вы получите что-то вроде этого:

[
  {
    "projectId": "klZKsyw5g-QT_jrWJ5T-w",
    "name": "Random",
    "description": "",
    "createdAt": "2024-06-19T15:05:58.785Z",
    "adminId": "_WrKZbs7iJAA3p4N2Yfyu",
    "applications": [],
    "mariadb": [],
    "mongo": [],
    "mysql": [
      {
        "mysqlId": "N3cudwO46TiDXzBm4SaQ1",
        "name": "mysql",
        "appName": "random-mysql-924715",
        "description": "",
        "databaseName": "mysql",
        "databaseUser": "mysql",
        "databasePassword": "h13BzO6y3KYSHaQg",
        "databaseRootPassword": "mM1b7JeoPA7jArxj",
        "dockerImage": "mysql:8",
        "command": null,
        "env": null,
        "memoryReservation": null,
        "memoryLimit": null,
        "cpuReservation": null,
        "cpuLimit": null,
        "externalPort": null,
        "applicationStatus": "done",
        "createdAt": "2024-06-24T01:55:40.378Z",
        "projectId": "klZKsyw5g-QT_jrWJ5T-w"
      }
    ],
    "postgres": [],
    "redis": [
      {
        "redisId": "TtFK5S4QFaIjaNGOb8Ku-",
        "name": "redis",
        "appName": "random-redis-7eec62",
        "description": "",
        "databasePassword": "Yvb8gqClfomjcue8",
        "dockerImage": "redis:7",
        "command": null,
        "env": null,
        "memoryReservation": null,
        "memoryLimit": null,
        "cpuReservation": null,
        "cpuLimit": null,
        "externalPort": 6379,
        "createdAt": "2024-06-26T06:43:20.570Z",
        "applicationStatus": "done",
        "projectId": "klZKsyw5g-QT_jrWJ5T-w"
      }
    ],
    "compose": []
  },
]

On this page