Skip to content

Jadestone

INACT for Jadestone. One of the big five.

At a glance

JiraINA27, Jadestone Implementation. Older items live in INA18.
INA05 INACT Instance valueJadestone
Repositorybinari-digital/ina-jadestone
Encrypted twinbinari-digital/ina-jadestone-encrypted
INARTS GitLabinact/inact-jadestone, plus the encrypted twin
Permanent branches on originmain, staging, development
DatabaseMySQL
ProductionThe client's own server. It pulls encrypted main from INARTS.
Stagingjadestone.inactsoft.com
Dev (QA)inact-jadestone-encrypted.bdt.dev on the Rumah box

TODO: production MySQL version.

Repositories and remotes

The plain repository has two remotes: origin on GitHub and inarts on the INARTS GitLab. Every deploy pushes to both. The encrypted twin holds the ionCube build. main.php is the only file that differs between the two, and the sync refuses to overwrite it.

Environments and deploy

Deploys run through GitHub Actions on the Rumah box's self-hosted runner. The scripts are in the repository under deploy/. Background is on Jira INA27-282.

Push toScriptWhat happens
developmentdeploy/dev.shSync plain to encrypted, push encrypted to GitHub and INARTS. That push fires the consumer in the encrypted twin, which pulls ~/www/inact-jadestone-encrypted on the Rumah box and runs phinx migrate.
stagingdeploy/staging.shPush staging to INARTS, then ssh to jadestone.inactsoft.com and git pull plus phinx migrate in /home/ubuntu/www/inact. Staging serves the plain repository, because the encrypted twin has no staging branch.
maindeploy/prod.shSync plain main to encrypted main, push to GitHub and INARTS. No consumer. The client pulls from INARTS themselves. No migration runs on our side.

Database

DriverMySQL
QA databaseMySQL on the Rumah box itself, database inactsoft_jadestone_encrypted
Test databaseShared dev DB host 192.168.1.52, port 3357, database inact-jadestone-prod-20260820. A production snapshot from 2026-08-20.

How this fork differs from master

Measured on 2026-09-05.

Module files that differ96
Modules with the most changesrouting 22, documents 11, documents_master 9, adms 9, dms_reference 8, adms_reference 8
Libraries that differadditional_global_variables.inc.php, inweb.lib.php, reference_function.inc.php, tracking_function.inc.php
Top-level files that differ_menu.php, auto_logout.php, setting.php
Migrations445 in total. 35 only here, 21 in master not taken. Newest 2026-08-26.

Files only in this fork

  • modules/adms_reference/adms_unit_code.php
  • modules/dms_reference/field_code.php
  • modules/dms_reference/group_code.php
  • modules/documents_master/documents_master_handler_print_overdue_contractor.php
  • modules/documents_master/documents_master_handler_print_overdue_contractor_summary.php
  • modules/routing/routing_slip_functions.inc.php

Files in master that this fork lacks

  • modules/dms_reference/well_site.php
  • modules/routing/routing_handler_republish.php

inweb_config keys

Keys
Only in this forkenable_ref_field_code, enable_ref_group_code
Missing hereenable_last_login_wins, enable_ldap_browse, enable_ldap_login, enable_well_site, routing_return_format

Customizations documented so far

None yet. Feature pages arrive in phase 3 of the docs plan; each one that differs here will link back to this list.

Known gotchas

  • Staging serves the plain repository, not the encrypted build. What the client tests on staging is not byte-for-byte what they get in production.
  • No Single Session. enable_last_login_wins and the person_session_token mechanism exist in master and JOTRE but not here, neither in code nor in the config table. Verified 2026-07-29.
  • A second, plain checkout answers at inact-jadestone.bdt.dev on the Rumah box. Nothing deploys it; the consumer only pulls the encrypted root.
  • A change to main.php stops the deploy. The sync writes .sync-blocked and waits for a human to re-encode.