Skip to content

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:

KomponenPeran
OPA ConfigMenjalankan OPA server & menyimpan policy Rego (mesin keputusan)
OPA DataMenyinkronkan data role & grant dari User Service ke OPA
OPA AuthMenjadi gate di depan Traefik — memanggil OPA untuk setiap request

Tech Stack

LayerTeknologi
RuntimeBun 1
FrameworkExpress 5 (TypeScript)
HTTP ClientAxios
File I/OBun native (file, write)
Secret ManagementInfisical SDK v5

Detail environment variable, endpoint, dan diagram alur lengkap ada di halaman Teknis.

Alur Singkat

  1. User Service memanggil GET /role-users atau GET /role-grants di opa-data setiap kali ada perubahan role/policy.
  2. opa-data mengambil data terbaru dari open-api/role-users atau open-api/role-grants milik User Service.
  3. Data digabung (merge) ke file JSON bersama (/share/data.json) yang juga dibaca oleh OPA Engine.
  4. 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.