Skip to content

Shared-Screen Tenant Browser Baseline

  • Classification: OBSERVED-FACT

Purpose

This document records the read-only CTC-1156 browser and menu baseline for the second configured tenant. It is current-state evidence, not proof that both tenants already share every route, page file, component, role, or workflow.

The target architecture remains shared modules, screens, and APIs. Tenant variation belongs in config, menu, role, and named process capabilities. Do not introduce new numeric CLIENT_ID behavior forks or unnecessary restrictions on CLIENT_ID=1. The current client-number branches are recorded below as existing migration gaps, not as the target pattern.

Validation Context

  • Validated: 2026-07-11
  • Runtime: local http://localhost:8080
  • Account: admin2 (CLIENT_ID=2)
  • Navigation: configured Operation menu entries
  • Mode: read-only
  • Database identity: host kyle-mba, port 3306, database prod

Browser And Ownership Matrix

Menu Final route Visible heading Page file Module key Result
Scale Portal /scale-portal Scale Portal frontend/pages/system/YMS/scale/scale-portal.php yms.scale Pass; common route
MK Inbound Orders /mk-inbound-orders?orderType=OCEAN_FREIGHT MK Inbound Orders frontend/pages/system/OMS/inbound-order/mk-inbound-orders.php oms.inbound-order Pass; MK-prefixed migration gap
MK Outbound Orders /mk-outbound-orders MK Outbound Orders frontend/pages/system/OMS/outbound-order/mk-outbound-orders.php oms.outbound-order Pass; MK-prefixed migration gap
Allocation Workbench /mk-allocation-workbench Allocation Workbench frontend/pages/system/OMS/allocation/mk-allocation-workbench.php oms.allocation Pass; MK-prefixed migration gap
MK Booking List /mk-booking-list MK Booking List frontend/pages/system/TMS/booking/mk-booking-list.php tms.booking Pass; MK-prefixed migration gap
Commercial Orders /mk-commercial-orders Commercial Orders frontend/pages/system/OMS/commercial-order/mk-commercial-orders.php oms.commercial-order Pass; MK-prefixed migration gap
Trade Summary /mk-deal-ledger Trade Summary frontend/pages/system/BMS/reports/mk-trade-summary.php oms.deal-ledger Pass; MK-prefixed migration gap

All seven pages opened through their configured menu entry. No JavaScript errors were recorded. Chromium emitted the same non-blocking verbose accessibility warning on each page for a hidden password form without a username field.

Tenant Menu Comparison

A read-only T_MENU query used the confirmed columns CLIENT_ID, MENU_NAME, MENU_URL, MODULE_PAGE_ID, and MENU_ROLE_LIST.

  • CLIENT_ID=2: all seven matching menu rows exist.
  • CLIENT_ID=1: no matching menu rows exist in the inspected local baseline.

This comparison confirms the second-tenant menu/runtime baseline and explicitly leaves cross-tenant browser parity unverified.

Existing Numeric Branch Gaps

The repository runtime search found the following hardcoded tenant branches relevant to the seven baseline surfaces:

Runtime file Current numeric branch behavior
public/assets/js/modules/yms/scale-portal.js clientId === 2 permits zero scale weight.
public/assets/js/modules/shared/kj-table-options-master.js CLIENT_ID === 2 adds Booking List invoice and commodity-rate columns and changes the SI cutoff heading to DOC CUT.
public/assets/js/modules/shared/popup.core.js Booking List derives an MK flag from the runtime or record client ID and changes the SI cutoff label to DOC CUTOFF; it also exposes the commodity-rate field for records with CLIENT_ID === 2.
public/assets/js/modules/shared/popup.core.js CLIENT_ID === 2 adds the Booking Confirmation popup action.
app/systems/OMS/inbound-order/mk_post_helper.php $clientId === 2 permits zero scale ticket and scale-portal item weights across the inbound scale validation and write paths.
app/addons/reports/query_helper.php CLIENT_ID === 2 selects the MK Packing List data path, which assembles sales-order containers, commodity/invoice items, and MK report headers instead of the legacy packing-list query.

These branches are existing current-state behavior and remain migration gaps. Future shared-screen work should replace customer-number checks with config, menu, role, or named process capabilities; this baseline does not change them.

Durable Browser Evidence

The corresponding files are linked to Work Item CTC-1156 under the Control Tower server-owned evidence root.

Artifact Control Tower file ID SHA-256
allocation-workbench-admin2.png wif-1783752963730-d60ef4 cbec5511d555ee6cd94907b85f5a8f11c48d72fd3bcffc455997a5f80bb542d6
booking-list-admin2.png wif-1783752963808-375aee 31e58d3983bbda0e10ea8ecec45a4b9406301d45c0655efcd61c9a1004880af0
commercial-orders-admin2.png wif-1783752963897-5909ee adacd7ea1ff3ed2803c816237fb2ceab5414e9f86a39c9ee1fbd1849bdecf52d
inbound-orders-admin2.png wif-1783752963971-b5dad0 6bd2360e1974593aad6c8a5088c72c115d6ce12cee283c56c0a2175ab7ff6e36
outbound-orders-admin2.png wif-1783752964060-51db3b c073f470d85c030a276b562e2dce10638de7c54755754d8966c61b9b1bb3f039
scale-portal-admin2.png wif-1783752964137-2c386b 5d3a0df711438442c1a3871d4f4fb130e109b141fba0d3db740730e387a7de18
trade-summary-admin2.png wif-1783752964301-543413 d61dcacaf990518c742832e34c99b371bc381b548e7a01d6d8e16116eafa0295

Residual Gaps

  • No equivalent CLIENT_ID=1 browser path exists in the inspected menu baseline.
  • Non-admin role behavior is unverified.
  • CRUD behavior is unverified.
  • Six business surfaces still use MK-prefixed routes and page files.
  • This task does not change application code, DB data, tenant config, menu, role, module, or production state.

---

Source: docs/research/current-state/2026-07-11/CTC_SHARED_SCREEN_TENANT_BASELINE.md — ctc repository · This page is an English translation of the source document. Identifiers, file paths and code symbols are unchanged.