Jadestone
INACT for Jadestone. One of the big five.
At a glance
| Jira | INA27, Jadestone Implementation. Older items live in INA18. |
| INA05 INACT Instance value | Jadestone |
| Repository | binari-digital/ina-jadestone |
| Encrypted twin | binari-digital/ina-jadestone-encrypted |
| INARTS GitLab | inact/inact-jadestone, plus the encrypted twin |
| Permanent branches on origin | main, staging, development |
| Database | MySQL |
| Production | The client's own server. It pulls encrypted main from INARTS. |
| Staging | jadestone.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 to | Script | What happens |
|---|---|---|
development | deploy/dev.sh | Sync 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. |
staging | deploy/staging.sh | Push 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. |
main | deploy/prod.sh | Sync 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
| Driver | MySQL |
| QA database | MySQL on the Rumah box itself, database inactsoft_jadestone_encrypted |
| Test database | Shared 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 differ | 96 |
| Modules with the most changes | routing 22, documents 11, documents_master 9, adms 9, dms_reference 8, adms_reference 8 |
| Libraries that differ | additional_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 |
| Migrations | 445 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.phpmodules/dms_reference/field_code.phpmodules/dms_reference/group_code.phpmodules/documents_master/documents_master_handler_print_overdue_contractor.phpmodules/documents_master/documents_master_handler_print_overdue_contractor_summary.phpmodules/routing/routing_slip_functions.inc.php
Files in master that this fork lacks
modules/dms_reference/well_site.phpmodules/routing/routing_handler_republish.php
inweb_config keys
| Keys | |
|---|---|
| Only in this fork | enable_ref_field_code, enable_ref_group_code |
| Missing here | enable_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_winsand theperson_session_tokenmechanism 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.devon the Rumah box. Nothing deploys it; the consumer only pulls the encrypted root. - A change to
main.phpstops the deploy. The sync writes.sync-blockedand waits for a human to re-encode.