OPA Data
opa-data adalah service sinkronisasi data policy RAGA, dibangun di atas Bun + Express 5. Tugasnya menarik data user-role dan role-grant dari User Service, menggabungkannya ke dalam shared JSON file, lalu mendorong data tersebut ke OPA Engine. User Service memanggil opa-data setiap kali ada perubahan role atau policy.
opa-data adalah satu dari tiga komponen subsistem OPA di RAGA:
| Komponen | Peran |
|---|---|
| OPA Config | Menjalankan OPA server & menyimpan policy Rego (mesin keputusan) |
| OPA Data | Menyinkronkan data role & grant dari User Service ke OPA |
| OPA Auth | Menjadi gate di depan Traefik — memanggil OPA untuk setiap request |
Tech Stack
| Layer | Teknologi |
|---|---|
| Runtime | Bun 1 |
| Framework | Express 5 (TypeScript) |
| HTTP Client | Axios |
| File I/O | Bun native (file, write) |
| Secret Management | Infisical SDK v5 |
Detail environment variable, endpoint, dan diagram alur lengkap ada di halaman Teknis.
Alur Singkat
- User Service memanggil
GET /role-usersatauGET /role-grantsdi opa-data setiap kali ada perubahan role/policy. - opa-data mengambil data terbaru dari
open-api/role-usersatauopen-api/role-grantsmilik User Service. - Data digabung (
merge) ke file JSON bersama (/share/data.json) yang juga dibaca oleh OPA Engine. - opa-data mendorong (
PUT) seluruh isi file gabungan itu ke OPA data API agar keputusan otorisasi selalu memakai data terbaru.
Ringkasan
opa-data adalah jembatan satu arah antara struktur RBAC yang dikelola di User Service dan mesin keputusan OPA — tanpa service ini, perubahan role/policy di User Service tidak akan pernah sampai ke OPA, dan opa-auth akan terus memakai data lama.