CluPilotCloud/tests/Feature/Admin
Claude 99715989aa
tests / pest (push) Successful in 8m55s Details
tests / assets (push) Successful in 20s Details
tests / release (push) Successful in 4s Details
Dress the placeholder page, and record why the obvious VPN fix cannot work
The page shown while the site is hidden was still in the old style — a coloured
square and system fonts — on the two hostnames a visitor is most likely to try.
It now uses the site's own plate, typeface and registration marks, still
entirely self-contained because it is shown precisely when the asset build may
not exist. Both it and the error pages lighten the accent in dark mode: the tone
is chosen for contrast against paper, and on the ink plate the small text is the
first thing to stop being readable.

The VPN investigation ended somewhere useful, and not where it started.

The blank page on the phone is the reverse proxy refusing the request — `respond
404` sends no body. It refuses because the phone is not on the tunnel: the
client config lists only the management subnet in AllowedIPs, so a request to
the console's public hostname goes out over the mobile network and arrives from
a carrier address. It also explains "last contact: never", since WireGuard only
performs a handshake when it has traffic to send, and nothing is ever routed
into the tunnel.

The obvious fix — add the server's public address to AllowedIPs — is written
down here as a comment and a test rather than as code, because it cannot work.
The WireGuard endpoint is that same address, so routing it into the tunnel
routes the handshake packets into the tunnel they are trying to establish. The
result is a loop and a connection that never comes up: the same blank page, now
with no way in at all.

Reaching the console over the VPN needs an address INSIDE the subnet — the proxy
answering on the hub address, and a name that resolves to it. That is a
deployment change, not something a config line can express.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 09:19:30 +02:00
..
AdminConsoleTest.php feat(admin): dark Tactical-Terminal operator console 2026-07-25 08:35:03 +02:00
AdminHostRestrictionTest.php fix(security): match ADMIN_HOSTS case-insensitively; share test helpers 2026-07-25 20:56:26 +02:00
AdminSettingsTest.php fix(admin): shown-once temp password for invited staff; suppress announcements for cancelled windows at send time 2026-07-25 16:23:21 +02:00
ConsoleHostSeparationTest.php Let the console keep its recovery hostnames without breaking route caching 2026-07-27 06:20:44 +02:00
ConsoleNetworkTest.php Let people change their own password, and a location be switched off while editing it 2026-07-27 07:49:07 +02:00
ConsoleReportsRealDataTest.php Report the estate from the database, and print the traffic that is sold 2026-07-27 04:48:51 +02:00
CustomerRevenueTest.php feat(billing): the plan catalogue becomes three tables, and config stops selling 2026-07-26 12:05:56 +02:00
DatacenterTest.php Let people change their own password, and a location be switched off while editing it 2026-07-27 07:49:07 +02:00
HostManagementTest.php fix(security): match ADMIN_HOSTS case-insensitively; share test helpers 2026-07-25 20:56:26 +02:00
InstanceAdminAccessTest.php fix(admin): the admin password is shown once, and means it 2026-07-26 05:34:57 +02:00
MaintenanceTest.php fix(maintenance): make the window form usable 2026-07-25 23:05:33 +02:00
PlanAdminTest.php Make the console's access list reach the proxy, price in euros, and answer errors 2026-07-27 06:51:05 +02:00
ProvisioningActionsTest.php fix(ui): modal above sidebar (z-index); datacenter edit buttons stay right; toast slides from bottom; provisioning retry action 2026-07-25 15:29:37 +02:00
RbacTest.php fix(security): console and account checks now survive a Livewire action 2026-07-26 20:04:34 +02:00
SecretVaultTest.php Manage the Stripe key from the console, behind a password and a test 2026-07-27 09:01:16 +02:00
SecretsPageTest.php Manage the Stripe key from the console, behind a password and a test 2026-07-27 09:01:16 +02:00
UpdateButtonTest.php Let people change their own password, and a location be switched off while editing it 2026-07-27 07:49:07 +02:00
VpnTest.php Dress the placeholder page, and record why the obvious VPN fix cannot work 2026-07-27 09:19:30 +02:00