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
| Method | Path | Access | Description |
|---|---|---|---|
| GET | /api/health | Public | Health check dasar service control-plane. |
| GET | /api/system/health | API Key or Admin Session | Snapshot telemetry system health (CPU/RAM/disk/network/host). |
| GET | /api/system/metrics | API Key or Admin Session | Payload 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
| Method | Path | Access | Description |
|---|---|---|---|
| GET | /api/server-status/file-manager/health | API Key or Admin Session | Health backend file manager lokal untuk drive logical `dirman`. |
| GET | /api/server-status/file-manager/drives | API Key or Admin Session | Daftar drive logical yang boleh dipakai consumer web. |
| GET | /api/server-status/file-manager/items?driveId=...&path=... | API Key + Group or Admin Session | List 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/folders | API Key + Group + Actor or Admin Session | Create folder baru dengan `accessGroup` opsional (`ALL`, `GROUP_A`, `GROUP_B`). |
| POST | /api/server-status/file-manager/upload | API Key + Group + Actor or Admin Session | Upload file multipart dengan field `driveId`, `path`, `file`, dan `accessGroup` opsional. |
| GET | /api/server-status/file-manager/download?driveId=...&path=... | API Key + Group or Admin Session | Download file sebagai attachment stream. Akses mengikuti `accessGroup` item. |
| DELETE | /api/server-status/file-manager/items | API Key + Group + Actor or Admin Session | Move item ke trash, bukan hard delete. Response mengembalikan metadata trash item. |
| GET | /api/server-status/file-manager/trash?driveId=... | API Key + Group or Admin Session | List item trash yang visible untuk group user aktif. |
| POST | /api/server-status/file-manager/restore | API Key + Group + Actor or Admin Session | Restore item dari trash ke original path bila path target masih kosong. |
| DELETE | /api/server-status/file-manager/trash | API Key + Group + Actor or Admin Session | Purge 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"