Public Documentation

BIdex API Documentation

Halaman ini dapat diakses tanpa login. Endpoint control-plane `GET /api/health` tetap public, sedangkan endpoint SysMon dan File Manager pada domain `https://apif.ihrdash.cloud` harus memakai API key atau admin session.

Endpoint Catalog

MethodPathAccessDescription
GET/api/healthPublicHealth check dasar service control-plane.
GET/api/system/healthAPI Key or Admin SessionSnapshot telemetry system health (CPU/RAM/disk/network/host).
GET/api/system/metricsAPI Key or Admin SessionPayload telemetry lengkap (CPU, RAM, disk, network) + metadata metricGroups, diskVolumeCount, activeInterfaceCount.

SysMon Examples

1. Control-plane health (public)

curl -s "https://apif.ihrdash.cloud/api/health"

2. System health (API key)

curl -s "https://apif.ihrdash.cloud/api/system/health" \
  -H "X-API-Key: <server-status-api-key>"

3. System metrics (API key)

curl -s "https://apif.ihrdash.cloud/api/system/metrics" \
  -H "X-API-Key: <server-status-api-key>"

File Manager Contract

MethodPathAccessDescription
GET/api/server-status/file-manager/healthAPI Key or Admin SessionHealth backend file manager lokal untuk drive logical `dirman`.
GET/api/server-status/file-manager/drivesAPI Key or Admin SessionDaftar drive logical yang boleh dipakai consumer web.
GET/api/server-status/file-manager/items?driveId=...&path=...API Key + Group or Admin SessionList folder/file aktif berdasarkan `driveId + path` relatif. Untuk root, gunakan `path=""` dan tampilkan sebagai alias `/root` di UI consumer.
POST/api/server-status/file-manager/foldersAPI Key + Group + Actor or Admin SessionCreate folder baru dengan `accessGroup` opsional (`ALL`, `GROUP_A`, `GROUP_B`).
POST/api/server-status/file-manager/uploadAPI Key + Group + Actor or Admin SessionUpload file multipart dengan field `driveId`, `path`, `file`, dan `accessGroup` opsional.
GET/api/server-status/file-manager/download?driveId=...&path=...API Key + Group or Admin SessionDownload file sebagai attachment stream. Akses mengikuti `accessGroup` item.
DELETE/api/server-status/file-manager/itemsAPI Key + Group + Actor or Admin SessionMove item ke trash, bukan hard delete. Response mengembalikan metadata trash item.
GET/api/server-status/file-manager/trash?driveId=...API Key + Group or Admin SessionList item trash yang visible untuk group user aktif.
POST/api/server-status/file-manager/restoreAPI Key + Group + Actor or Admin SessionRestore item dari trash ke original path bila path target masih kosong.
DELETE/api/server-status/file-manager/trashAPI Key + Group + Actor or Admin SessionPurge item trash permanen.

File Manager Notes

Browser payload file manager selalu memakai `driveId + path` relatif. Absolute host path tidak pernah dikirim ke client.

Root consumer-facing untuk logical drive `dirman` ditampilkan sebagai alias `/root`. Untuk request root, payload API tetap memakai `path=""`.

`DELETE /items` berarti move-to-trash, bukan hard delete. Restore dan purge ada di route terpisah.

Item aktif dan trash membawa `audit.accessGroup` atau `accessGroup` dengan nilai `ALL`, `GROUP_A`, atau `GROUP_B`.

File existing di filesystem yang belum punya metadata audit diperlakukan sebagai owner `system` dengan `accessGroup = ALL`.

Header auth yang dipakai consumer public adalah `X-API-Key` (opsional kompatibilitas `Authorization: Bearer <key>`). Untuk File Manager, baca/list/download/trash perlu `X-Bidex-Group`, sedangkan write/restore/purge juga wajib `X-Bidex-Actor`.

Path internal `_trash` tidak boleh dipakai lewat listing/download biasa; gunakan API trash khusus.

File Manager Examples

1. List root alias `/root`

curl -s "https://apif.ihrdash.cloud/api/server-status/file-manager/items?driveId=dirman&path=" \
  -H "X-API-Key: <server-status-api-key>" \
  -H "X-Bidex-Group: GROUP_A"

2. List child path di bawah `/root`

curl -s "https://apif.ihrdash.cloud/api/server-status/file-manager/items?driveId=dirman&path=reports/team-a" \
  -H "X-API-Key: <server-status-api-key>" \
  -H "X-Bidex-Group: GROUP_A"

3. Create folder dengan group tertentu

curl -X POST "https://apif.ihrdash.cloud/api/server-status/file-manager/folders" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <server-status-api-key>" \
  -H "X-Bidex-Group: GROUP_A" \
  -H "X-Bidex-Actor: anung" \
  -d '{
    "driveId": "dirman",
    "path": "reports",
    "folderName": "team-a",
    "accessGroup": "GROUP_A"
  }'

4. Upload file multipart

curl -X POST "https://apif.ihrdash.cloud/api/server-status/file-manager/upload" \
  -H "X-API-Key: <server-status-api-key>" \
  -H "X-Bidex-Group: GROUP_A" \
  -H "X-Bidex-Actor: anung" \
  -F "driveId=dirman" \
  -F "path=reports/team-a" \
  -F "accessGroup=GROUP_A" \
  -F "file=@summary.xlsx"

5. List trash

curl -s "https://apif.ihrdash.cloud/api/server-status/file-manager/trash?driveId=dirman" \
  -H "X-API-Key: <server-status-api-key>" \
  -H "X-Bidex-Group: GROUP_A"