Decision 2026-09-16 (Matthew): the apex tenant serves no real purpose and will be removed. It does not
operate as SIAAS — there is no client-owned instance behind it — so it does not model a real
deployment. The test model is the client tenant
test-client-pharmacy, which is a client-sector
tenant with its own database on the client's own box, its own Keycloak realm and its own tunnel.
Retained for now; removal deferred. Nothing is to be built against it, and no guide is to be written or
tested against it. This page exists so the removal is a plan rather than archaeology, and so the next reader
does not have to ask what the host is for.
pharmacy.veripath.co.uk — the pharmacy sector's first tenant ("apex"), created 2026-09-12 as part of
Phase 0. Its hostname, TLS certificate and proxy arrived with the sector wiring:
veripath-ops commit c113447, 2026-09-12 — "ops: wire the pharmacy app (fifth sector) into the:8020)", the tun-apps-vps2.servicepharmacy sector + first tenant, Keycloak realm,Why it was useful at the time, and why it is not now. Before any client existed it was the only place
the sector's behaviour could be exercised, and it remains the home of the sector Keycloak realm
pharmacy — the template a new client realm is copied from
(provision_pharmacy_realm --erpnext-source-realm pharmacy), and the realm the sector's demo.*
identities live in. But it is not a client deployment, it holds no client data, and it is a publicly
reachable host with a login page — so it is attack surface without a business purpose.
The last thing that needed it was the Technician login. demo.tech.one was the only Dispensing
Technician identity anywhere, so the Technician's own view of the dispensing screens could only be tested on
the apex. Resolved 2026-09-16: tc.tech.one (Tess Trayborne, Dispensing Technician) was created on the
client tenant through the app's own staff user-management screen, so every role in the guide series is now
testable on the SIAAS model and no guide depends on the apex.
Each item below was confirmed present on 2026-09-16; re-check each before the removal.
| Item | Where | Note |
|---|---|---|
| nginx vhost + TLS | /etc/nginx/sites-enabled/pharmacy.veripath.co.uk.conf, Let's Encrypt cert |
carried by c113447 |
| app forward | systemd/tun-apps-vps2.service — VPS1 :8020 to the pharmacy app |
shared with the client tenant's traffic — check before removing the forward |
| static files | scripts/sync-static.sh (pharmacy static → /var/www/pharmacy_booking_app_static) |
|
| bring-up + self-healer | infra/bring-up.sh, scripts/vps2-stack-guard.sh — pharmacy stack entries |
do not remove the stack itself |
| tenant database | the apex partition (veripath_pharmacy, sector_pharmacy) |
holds no client rows by design |
| tenant + ERPNext config | the apex tenant row and its PharmacyERPNextConfig |
apex-scoped |
Keycloak realm pharmacy |
realm holds demo.* plus five deliberately disabled tc.* leftovers |
KEEP the realm — it is the provisioning source for new client realms. The demo.* identities become redundant when the host goes |
Do not confuse this with the client tenant: test-client-pharmacy must not be touched by the removal.
It has its own tunnel, database, realm and ClientVPS row, and it is the platform's test model.
tc.tech.one