Skip to content

Referensi REST API

API Cockpit memungkinkan Anda untuk mengotomatiskan mesin virtual, menanyakan log kinerja, dan mengelola sumber daya klaster secara eksternal.

Autentikasi

Semua endpoint REST memerlukan JSON Web Token (JWT) yang dikirimkan dalam header HTTP:

http
Authorization: Bearer <JWT_TOKEN>
Content-Type: application/json

Endpoint Autentikasi

Masuk & Dapatkan Token

http
POST /api/v1/auth/login
  • Payload: {"username": "admin", "password": "yourpassword"}
  • Respons (200 OK):
    json
    {
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
      "refresh_token": "a1b2c3d4-...",
      "expires_in": 3600
    }

Perbarui Token yang Kedaluwarsa

http
POST /api/v1/auth/refresh
  • Payload: {"refresh_token": "a1b2c3d4-..."}

Endpoint Host

Daftar Host Terdaftar

http
GET /api/v1/hosts
  • Respons (200 OK):
    json
    {
      "hosts": [
        {
          "id": "019e0014-abcd-7057-b326-000000000001",
          "hostname": "vapor-node-01.corp.awan.io",
          "status": "connected",
          "sync_cursor": 1716999901
        }
      ]
    }

Endpoint Mesin Virtual

Daftar Semua VM dalam Klaster

http
GET /api/v1/vms

Mulai / Hentikan / Mulai Ulang VM

http
POST /api/v1/vms/:id/action
  • Payload: {"action": "start"} atau {"action": "stop", "force": true}

Memicu migrasi langsung VM

http
POST /api/v1/vms/:id/migrate
  • Payload:
    json
    {
      "destination_host_id": "019e0014-ffff-7057-b326-000000000002",
      "live": true,
      "persistent": true,
      "undefine_source": true,
      "copy_storage": "none"
    }
  • Respons (202 Accepted):
    json
    {
      "migration_id": "abc123def456",
      "status": "initiated"
    }