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