Skip to main content

API Reference

Overview​

Backend CLM menyediakan REST API dengan base URL http://localhost:8081.

Authentication​

POST /api/login​

Login dan dapatkan JWT token.

Request:

{
"username": "admin",
"password": "Admin123!"
}

Response (200):

{
"token": {
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"expires_in": 300,
"refresh_token": "...",
"token_type": "Bearer"
},
"user": {
"username": "admin",
"roles": ["admin"],
"email": "admin@bjbsyariah.co.id"
}
}

GET /api/me​

Dapatkan profil user saat ini.

Headers: Authorization: Bearer <token>

Response (200):

{
"username": "admin",
"email": "admin@bjbsyariah.co.id",
"roles": ["admin"]
}

Logs​

GET /api/v1/logs/fields​

Daftar field searchable.

Permission: logs:read

GET /api/v1/logs/fields/:field/distinct​

Distinct values untuk field.

Permission: logs:read

Query: q, limit

POST /api/v1/logs/list/paginate​

Cari log dengan paginasi.

Permission: logs:read

Request:

{
"query": "error",
"timeRange": {
"from": "2026-07-01T00:00:00Z",
"to": "2026-07-06T23:59:59Z"
},
"filters": [
{ "field": "level", "value": "error" }
],
"sort": {
"field": "@timestamp",
"order": "desc"
},
"page": 1,
"limit": 20
}

POST /api/v1/logs/histogram​

Histogram log berdasarkan waktu.

Permission: logs:read

Alerts​

GET /api/v1/alerts/active​

Daftar alert aktif.

Permission: alerts:read

GET /api/v1/alerts/list​

Daftar semua alerts.

Permission: alerts:read

GET /api/v1/alerts/rules​

Daftar alert rules.

Permission: alerts:read

POST /api/v1/alerts/{id}/status​

Update alert status.

Permission: alerts:write

Dashboard​

GET /api/v1/dashboard/overview​

Overview dashboard.

Permission: dashboard:read

GET /api/v1/dashboard/pipeline/status​

Status pipeline.

Permission: dashboard:read

GET /api/v1/dashboard/dc/status​

Status data center.

Permission: dashboard:read

GET /api/v1/dashboard/throughput​

Throughput metrics.

Permission: dashboard:read

Audit​

GET /api/v1/log-audit/search​

Search audit logs.

Permission: audit:read

GET /api/v1/log-audit/export/csv​

Export audit logs CSV.

Permission: audit:export

GET /api/v1/log-audit/export/excel​

Export audit logs Excel.

Permission: audit:export

RBAC​

GET /api/tenants​

List tenants.

Permission: tenants:manage

POST /api/tenants​

Create tenant.

Permission: tenants:manage

GET /api/users​

List users.

Permission: users:manage

POST /api/users​

Create user.

Permission: users:manage

GET /api/roles​

List roles.

Permission: roles:manage

POST /api/roles​

Create role.

Permission: roles:manage

Kubernetes​

GET /api/v1/k8s/cluster/health​

Cluster health.

Permission: dashboard:read

GET /api/v1/k8s/nodes​

List nodes.

Permission: dashboard:read

GET /api/v1/k8s/pods​

List pods.

Permission: dashboard:read

APM​

GET /api/v1/apm/service-map​

Service map.

Permission: dashboard:read

GET /api/v1/apm/traces​

Service traces.

Permission: dashboard:read

Infrastructure​

GET /api/v1/infra/metrics​

Infrastructure metrics.

Permission: dashboard:read

GET /api/v1/infra/containers​

Container metrics.

Permission: dashboard:read

Health​

GET /healthz​

Health check.

Response (200):

{
"status": "ok"
}

Error Responses​

StatusMessageDescription
400invalid json bodyRequest body tidak valid
401missing bearer tokenToken tidak ada
401invalid credentialsUsername/password salah
403permission deniedTidak punya akses
404not foundResource tidak ditemukan
429rate limit exceededRate limit tercapai
500internal server errorServer error

Next Steps​