Tenant dan Sub-Tenant

Model hirarki organisasi di Sistem V3.

Tenant = Keuskupan

Tenant adalah organisasi independen tingkat keuskupan. Contoh: ASAK KAJ, ASAK Keuskupan Padang, ASAK Keuskupan Lampung. Tiap Tenant punya data yang terisolasi dari Tenant lain — tidak ada kebocoran data silang.

Tabel DB terkait: tenant (metadata, negara, kontak), bank (master bank per tenant).

Sub-Tenant = Paroki

Sub-Tenant adalah sub-organisasi di dalam Tenant. Di ASAK KAJ, Sub-Tenant = ASAK Paroki. Contoh: ASAK Paroki Bojong Indah, ASAK Paroki Meruya, dst.

Tabel DB terkait: subtenant, subtenantbankaccount (Rekening ASAK Paroki), subtenantbankaccountbalance (saldo real-time).

Relasi 1:N dengan exception

Satu Tenant punya banyak Sub-Tenant (1:N). Tapi Sub-Tenant bisa berelasi lintas (partner, afiliasi, sementara) — ini yang memungkinkan Friendship.

Tabel DB yang bikin itu mungkin: subtenantfriendship — relasi bilateral antar Sub-Tenant.

Kenapa desain multi-tenant

  • Legal & data privacy — tiap keuskupan otonom; data anak & donatur tidak dapat diakses keuskupan lain.
  • Skalabel — desain support ≥ 100 tenant dalam satu basis data.
  • Konfigurasi berbeda — tiap tenant bisa punya program, tarif, aturan pembayaran sendiri.

Implikasi untuk ASAK

Di ASAK KAJ saat ini:

  • 1 Tenant (KAJ).
  • ~60+ Sub-Tenant (paroki-paroki KAJ).
  • Kerja sama antar-paroki dikelola via subtenantfriendship + logika Friend Program di Sistem V3.
  • Kerja sama lintas-keuskupan (ASAK Nusantara) akan butuh relasi lintas-Tenant — ini lebih kompleks dan di-handle di layer aplikasi, bukan konstraint database.

Baca lanjut