Skip to main content

🧱 Core Module (core_*, au_*)

Modul Core menyediakan fondasi multi-tenant, multi-company, multi-branch, user management, RBAC, konfigurasi, dan audit trail untuk seluruh ERP Schema V2.

1. Module Purpose

  • Menyimpan struktur hirarki tenant → company → branch.
  • Mengelola user, role, permission dan mapping-nya (RBAC).
  • Menyimpan konfigurasi global/tenant/company.
  • Menyimpan audit log dan rule Segregation of Duties (SoD).

2. Tables & Structure


3. Key Fields & Relationships

3.1 Hirarki Tenant → Company → Branch

  • core_tenant
    • Key: id, code, name
    • Dipakai oleh: core_company.tenant_id, core_user.tenant_id, ic_entity.tenant_id.
  • core_company
    • Key: id, tenant_id, code, name
    • FK: tenant_idcore_tenant.id
    • Dipakai oleh: core_branch.company_id, gl_coa.company_id, inv_mat.company_id, fi_*, so_customer.company_id, po_vendor.company_id, hr_emp.company_id.
  • core_branch
    • Key: id, company_id, code, name
    • FK: company_idcore_company.id
    • Dipakai oleh: inv_stock.branch_id, inv_move.branch_id, po_req.branch_id, po_order.branch_id, so_order.branch_id, so_pos.branch_id, dll.

3.2 User & RBAC

  • core_user
    • Fields: id, tenant_id, email, password_hash, is_active.
  • core_role
    • Fields: id, tenant_id, code, name.
  • core_permission
    • Fields: id, tenant_id, code, name, description.
  • Mapping tabel:
    • core_user_role.user_idcore_user.id
    • core_user_role.role_idcore_role.id
    • core_role_perm.role_idcore_role.id
    • core_role_perm.perm_idcore_permission.id

3.3 Config, Notif, Audit, SoD

  • core_config
    • Scope per tenant/company: tenant_id, company_id, k, v.
    • Unik minimal per tenant: UNIQUE(tenant_id, company_id, k).
  • core_notif
    • Target user: user_idcore_user.id.
    • Fields: title, body, is_read, created_at.
  • core_audit
    • user_idcore_user.id
    • entity_type, entity_id, action, payload_before, payload_after.
  • au_sod
    • Menyimpan kombinasi role yang bertentangan: role_a_id, role_b_idcore_role.id.

4. Example Business Flows

4.1 Onboarding Tenant Baru

  1. Buat record di core_tenant.
  2. Buat minimal satu core_company dan core_branch.
  3. Buat user admin di core_user.
  4. Assign role admin di core_user_role.
  5. Isi konfigurasi dasar di core_config (timezone, default currency, dsb.).

4.2 Approval Workflow & SoD (Konseptual)

  1. Role REQUESTER hanya boleh buat PR (po_req).
  2. Role APPROVER hanya boleh approve PR/PO.
  3. au_sod mendefinisikan bahwa role REQUESTER dan APPROVER tidak boleh dimiliki oleh user yang sama.

5. Example Reports (SQL)

Contoh di bawah ini adalah query ilustratif (SELECT-only), bukan definisi schema. Sesuaikan nama kolom/indeks dengan implementasi aktual.

5.1 Daftar User & Role

5.2 Audit Log Terakhir per User

5.3 Cek Pelanggaran SoD Potensial