Files
computer-playbook/tests/unit/python
kevinveenbirkenbachandClaude Opus 5.5 131e8ea108 fix(web-app-suitecrm): keep the onion sibling's SAML login on its own host
CI run 40979252521 SuiteCRM#0 (swarm) picked the onion sibling and every
signed-in design spec failed on "the administrator owns a SuiteCRM
session" (100 times in the job log). The SAML ACS is
%env(SITE_URL)%/saml/acs and SITE_URL is the single canonical URL, so the
trace shows Keycloak posting the assertion to
https://suite.crm.main.infinito.test/saml/acs; the session landed on
clearnet and the onion host bounced back to /saml/login. Keycloak would
also have refused an onion ACS, because the SAML client listed only the
clearnet one.

- SuiteCRM: an auto_prepend_file (site_url.php, config-mounted) sets
  $_ENV['SITE_URL'] to the network sibling the request arrived on,
  matched only against the sibling URLs rendered at deploy time;
  Kernel::setSiteURLEnv keeps an existing value. The canonical host and
  CLI runs keep the installer's site_url. The mount target is read from
  the volume registry.
- Keycloak: the SAML client's redirectUris come from
  lookup('network_urls', <app>/saml/acs). Additive: clearnet stays first
  and a single-network node renders the same one-entry list.

Executing the rendered site_url.php in PHP sets the onion URL for the
onion host (with and without :80) and leaves SITE_URL unset for the
clearnet host, a forged host and the CLI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:32:23 +01:00
..