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
| Status | Message | Description |
|---|---|---|
| 400 | invalid json body | Request body tidak valid |
| 401 | missing bearer token | Token tidak ada |
| 401 | invalid credentials | Username/password salah |
| 403 | permission denied | Tidak punya akses |
| 404 | not found | Resource tidak ditemukan |
| 429 | rate limit exceeded | Rate limit tercapai |
| 500 | internal server error | Server error |
Next Steps
- Local Setup - Development setup
- Contributing - Contributing guidelines