Skip to content

Instance

Satu halaman per klien. Setiap halaman punya bagian yang sama dengan urutan yang sama, jadi dua instance bisa dibandingkan berdampingan: siapa kliennya, project Jira dan repository mana yang miliknya, bagaimana cara deploy-nya, database apa yang dipakai, dan bagaimana kodenya berbeda dari master.

Big five adalah target default sebuah perbaikan di-port: master, Jadestone, Medco, JOTRE dan Prima Energy. Timas, Tomori dan KTP hanya menerima perbaikan kalau work item-nya sendiri meminta.

Nama ini dipakai ulang saat himpunannya berubah, jadi catatan lama bisa berarti himpunan yang berbeda. Selesaikan lewat tanggal catatan itu:

LabelDipakaiAnggota
big foursebelum 2026-09-02master, Jadestone, Medco, JOTRE
big five (lama)2026-09-02 sampai 2026-09-13+ Timas
big six2026-09-08 sampai 2026-09-13+ Prima Energy
big five (sekarang)sejak 2026-09-14master, Jadestone, Medco, JOTRE, Prima Energy — Timas dikeluarkan menjadi on-request

Jadi catatan verifikasi bertanggal 2026-09-13 atau sebelumnya yang menyebut "big five" berarti big five lama (dengan Timas, tanpa Prima). "big five" yang ditulis sejak 2026-09-14 berarti big five sekarang (dengan Prima, tanpa Timas). Prima Energy bergabung ke himpunan default 2026-09-08; halaman yang diperiksa sebelum itu belum diverifikasi padanya. Timas keluar dari himpunan default 2026-09-14; ia tetap instance yang dirawat, hanya saja tidak lagi mendapat perbaikan kecuali tiketnya sendiri meminta.

Perbandingan

InstanceJiraRepositoryTwin terenkripsiBranch di originDatabaseBig five
JadestoneINA27ina-jadestoneyamain, staging, developmentMySQLya
MedcoINA28ina-medco-v3yamain, staging, developmentSQL Serverya
JOTREINA36ina-jotreyamain, staging, developmentMySQLya
Prima EnergyINA15ina-primaenergytidakmain, staging, developmentMySQLya
TimasINA14ina-timasyamain, developmentMySQLtidak — keluar 2026-09-14
TomoriINA12ina-tomoriyamain, developmentSQL Servertidak
KTPINA10ina-ktptidakmain, staging, developmentMySQLtidak

Grup modul mana yang dijalankan masing-masing

Secara komersial INACT dijual sebagai empat modul: DMS (pengelolaan dokumen), ADMS (pengelolaan dokumen aset), Procurement, dan Cost Control & Budgeting. ADMS secara struktur berada di bawah menu DMS (Project), tetapi diaktifkan sendiri, jadi sebuah instance bisa menjalankan DMS tanpa ADMS.

Di kode setiap baris ts_modules membawa modules_parent berupa dms, adms, procurement atau budget, dan sebuah modul muncul di menu hanya kalau modules_is_installed miliknya, tipenya, dan parent-nya semua terpasang — getModuleList() di reference_function.inc.php. Menu Reporting punya tiga judul (DMS, Procurement, Cost Control & Budgeting); ADMS tidak punya grup report tersendiri.

Tabel di bawah adalah apa yang benar-benar aktif di database tiap instance, dibaca dari database local dev (snapshot produksi) pada 2026-09-10.

InstanceModul yang aktif
MasterDMS + ADMS + Procurement + Cost Control & Budgeting — keempatnya dibiarkan menyala untuk QA
JadestoneDMS + ADMS
MedcoDMS + ADMS
JOTREDMS + Procurement
TimasDMS
Prima EnergyDMS
TomoriDMS + ADMS
KTPDMS

ADMS aktif di master, Medco, Tomori dan Jadestone. Tomori adalah implementasi ADMS itu sendiri; pekerjaan ADMS punya space change-request sekali pakai sendiri, INA34, tetapi project Tomori adalah INA12. Di snapshot Jadestone baris modul browse adms ditandai mati padahal ADMS Settings dan data asetnya (ts_assets) sama-sama ada, jadi hanya ADMS Settings yang muncul di menu — ini terlihat seperti kekeliruan data yang perlu dikonfirmasi di instance live. Fork lain membawa kode ADMS sebagai drift, tetapi tidak aktif dan tidak punya data aset.

Halaman Procurement karena itu menggambarkan master dan JOTRE, dan Cost Control & Budgeting hanya berjalan di master. Tiket procurement atau budgeting di instance lain dimulai dengan menyalakan modulnya.

Di mana masing-masing berjalan

InstanceConsumer dev (QA)Deploy stagingProduksi
JadestoneRumah box, inact-jadestone-encrypted.bdt.devjadestone.inactsoft.com, repo plainKlien menarik main terenkripsi dari INARTS sendiri
MedcoLab box, inact-medco-v3-encrypted.bdt.dev dan inact-medco-v3-encrypted-testable.bdt.devtidak adaZip rilis, dipasang manual di server tanpa internet
JOTRERumah box, inact-jotre-encrypted.bdt.devtidak adaEris menarik main terenkripsi dari INARTS lewat VPN, manual
TimasRumah box, inact-timas-encrypted.bdt.devtidak adaConsumer ssh ke edms.timas.com, pull dari INARTS, migrate
Prima Energybelum diketahuibelum diketahuiTODO; repository tidak punya skrip deploy dan workflow
TomoriWindows Server box, inact-tomori-encrypted.bdt.devtidak adaZip rilis dari tag, dipasang manual
KTPRumah box, inact-ktp.bdt.dev, diperbarui manualtidak adaServer INARTS

Tiga mesin membawa runner GitHub Actions self-hosted: Rumah box, Lab box di LAN kantor, dan Windows Server box, mesin Windows Server 2022 di LAN kantor. Semua instance kecuali KTP dan Prima Energy deploy lewat GitHub Actions di salah satunya. Repository plain adalah producer: saat ada push, ia menyinkronkan kode ke twin terenkripsi lalu push ke GitHub dan GitLab INARTS. Twin terenkripsi adalah consumer: workflow-nya sendiri menarik checkout yang di-serve dan menjalankan phinx migrate. Produksi berbeda untuk setiap klien, lihat tabel.

Hostname QA mengikuti satu aturan: instance yang dikirim sebagai build terenkripsi mendapat -encrypted di hostname QA-nya. Master punya satu situs QA per driver database: inact-mysql.bdt.dev dan inact-psql.bdt.dev di Rumah box, inact-sqlsrv.bdt.dev di Lab box. Semua hostname dibaca dari baseurl di inweb_config database QA masing-masing pada 2026-09-06, kecuali Tomori, yang diambil dari README deploy consumer-nya.

Seberapa jauh setiap fork dari master

Diukur pada 2026-09-05 terhadap inact pada migrasi terbarunya, 20260826.

InstanceFile modul yang berbedaFile hanya di forkMigrasi hanya di forkMigrasi master yang belum diambilMigrasi terbaru
Jadestone96635212026-08-26
Medco931439202026-07-16
JOTRE1412427252026-08
Timas11645452025-12-26
Prima Energy11525432024-11-28
Tomori1781042452026-08-20
KTP11630462024-05-02

Baca dua kolom terakhir bersamaan. Timas, KTP dan Prima Energy hampir tidak mengambil apa pun dari master sejak lama, jadi port ke keduanya butuh lebih hati-hati daripada yang ditunjukkan angkanya.

Key inweb_config terhadap seed master

Key di db/seeds/DefaultInwebConfig.php. Master punya 107. Tidak ada fork yang mengubah nilai default; perbedaannya hanya key yang ditambah atau key yang tidak pernah diambil.

InstanceJumlah keyHanya di forkTidak ada di fork
Jadestone10425
Medco11162
JOTRE96011
Timas92217
Prima Energy92015
Tomori9919
KTP90219

Nama key-nya ada di halaman tiap instance.

Yang sama di semua instance

  • 54 folder modul yang sama dengan master.
  • main.php adalah file yang di-encode ionCube di twin terenkripsi. Sinkronisasi tidak pernah menimpanya dan berhenti kalau source mengubahnya, jadi perubahan pada main.php butuh orang untuk meng-encode ulang.
  • deploy/ dan .github/ tidak pernah disinkronkan ke twin terenkripsi. Push yang hanya mengubah path itu sampai ke GitHub dan INARTS tetapi tidak membuat commit terenkripsi.
  • Semua akses database lewat $pdo. iw_mysql_query yang lama melempar error di setiap pemanggilan.