Clouvia RouterRouter ClouviaID
PROTOKOL KEAMANAN & AKSES

Autentikasi & API Key

Semua permintaan API gateway ke https://router.clouvia.id/v1 wajib menyertakan token API Key yang valid pada header Authorization Bearer. Dirancang dengan standar keamanan enterprise dan rotasi tanpa downtime.

SCHEME:Authorization: Bearer <API_KEY>
HASH STORAGE:SHA-256 Cryptographic
GRACE PERIOD:60 Menit Zero-Downtime

Format Header Autentikasi

HTTP HEADER

Sertakan API Key pada header setiap request HTTP yang Anda kirimkan ke gateway:

HTTP Authorization Headerhttp
Authorization: Bearer $CLOUVIA_API_KEY

Catatan: Endpoint inferensi /v1/* tidak memerlukan header CSRF atau cookie sesi, sehingga sepenuhnya aman dan optimal untuk pemanggilan server-to-server maupun dari coding agent otonom.

Format Kunci & Arsitektur Enkripsi

Setiap API Key Clouvia Router diawali dengan prefix clv_live_ diikuti dengan 32 karakter unik base62. Demi menjamin keamanan tingkat tinggi:

One-Way Hash SHA-256

Database Clouvia Router hanya menyimpan hash satu arah SHA-256 dari kunci rahasia Anda. Plaintext secret tidak pernah disimpan dan tidak dapat dibaca kembali bahkan oleh operator sistem.

Tampil Tepat 1 Kali

Secret penuh hanya ditampilkan tepat satu kali di browser saat pertama kali dibuat. Jika hilang, Anda dapat melakukan rotasi kunci baru secara instan dari panel manajemen.

Pencabutan Instan (Revoke)

Jika key terindikasi terekspos, Anda dapat menekan tombol Revoke di panel. Cache Redis dihapus seketika dalam mikrodetik, memblokir seluruh request baru secara langsung.

Rotasi Kunci Tanpa Downtime (60-Menit Grace Period)

ZERO DOWNTIME

Ketika Anda memperbarui konfigurasi server di cluster produksi, pergantian API Key seringkali berisiko menyebabkan kegagalan request saat proses rolling update. Fitur Rotasi Kunci Clouvia Router mengeliminasi masalah ini sepenuhnya:

1

Klik Tombol Rotasi Key

Sistem akan menerbitkan secret key baru yang aktif seketika, sementara key lama Anda secara otomatis diberikan status Grace Period selama 60 menit.

2

Deploy Secret Baru ke Server Produksi

Perbarui environment variable pada server, bot, atau deployment Anda secara bertahap tanpa khawatir request lama ditolak.

3

Masa Tenggang Berakhir Otomatis

Setelah 60 menit, key lama akan dinonaktifkan secara otomatis. Anda juga dapat mengklik 'Matikan Sekarang' untuk mengakhiri masa tenggang seketika jika semua node sudah diperbarui.

Kontrol Keamanan Granular per Key

Fitur KeamananTipe KonfigurasiFungsi & Penerapan
Scope Endpointchat.completions, models.readMembatasi kapabilitas API yang boleh diakses oleh key ini untuk prinsip least-privilege.
IP Allowlist (CIDR)Array CIDR IPv4/IPv6Hanya memperbolehkan request dari subnet atau IP spesifik VPS Anda. Jika kosong, semua IP diizinkan.
Batas RPMToken Bucket RedisMembatasi frekuensi request per menit untuk mencegah lonjakan tidak disengaja dari loop skrip client.
Batas HarianCounter 24 JamMembatasi batas kuota request maksimal per hari kalender sebelum otomatis ditahan sementara.

Cek saldo token via API key

Gunakan GET /v1/balance dengan API key milik akun. Isi environment variable CLOUVIA_API_KEY pada server Anda. Tidak perlu login browser, cookie, CSRF, atau scope baru. Jangan kirim secret lewat URL atau query parameter.

GET /v1/balancebash
1curl https://router.clouvia.id/v1/balance \
2 -H "Authorization: Bearer $CLOUVIA_API_KEY"
Contoh respons ilustratif, bukan saldo riiljson
1{
2 "key_prefix": "clv_live_example",
3 "last4": "demo",
4 "name": "Example key",
5 "scopes": ["chat.completions", "models.read"],
6 "status": "active",
7 "balance": "1000000.000000",
8 "free_balance": "5000000.000000",
9 "total_balance": "6000000.000000",
10 "unit": "token",
11 "rate_limits": { "rpm": 100, "daily_limit": null },
12 "expires_at": null
13}
Saldo milik akun, bukan per key

Semua API key pada akun yang sama membaca saldo yang sama langsung dari database. Endpoint ini hanya membaca: tidak memanggil model AI dan tidak mendebit token. Respons memakai Cache-Control: private, no-store.

Nilai saldo berupa string desimal dengan 6 angka di belakang titik agar presisi tetap terjaga. Saldo negatif tetap ditampilkan jika akun memiliki defisit. Saldo gratis tidak menggantikan saldo berbayar.

Field respons

FieldTipeKeterangan
balancestringSaldo token berbayar akun.
free_balancestringSaldo gratis, hanya untuk model yang memenuhi aturan token gratis.
total_balancestringJumlah balance + free_balance. Bukan saldo yang seluruhnya bisa dipakai pada model berbayar.
unitstringtoken
key_prefix, last4, namestringIdentitas key tanpa secret atau hash.
scopes, statusarray, stringScope dan status key yang digunakan.
rate_limitsobjectrpm dan daily_limit key; null berarti tidak dikonfigurasi.
expires_atstring | nullWaktu kedaluwarsa ISO 8601, atau null.

Alias /api/v1/balance dan endpoint lama /v1/key/introspect atau /api/v1/key/introspect mengembalikan struktur yang sama. Field balance lama tetap berupa string.

GET /api/v1/balancebash
1curl https://router.clouvia.id/api/v1/balance \
2 -H "Authorization: Bearer $CLOUVIA_API_KEY"
GET /v1/key/introspectbash
1curl https://router.clouvia.id/v1/key/introspect \
2 -H "Authorization: Bearer $CLOUVIA_API_KEY"
Jika akses ditolak

HTTP 401: header tidak ada, key invalid, KEY_REVOKED, KEY_EXPIRED, atau KEY_DISABLED. HTTP 403: ACCOUNT_SUSPENDED atau IP_NOT_ALLOWED. Respons error menggunakan object error dengan code dan message. Tidak ada saldo yang ditampilkan jika autentikasi gagal.