CluPilotCloud/tests/Feature/Admin
nexxo 3699c7cdb9
tests / pest (push) Successful in 7m15s Details
tests / assets (push) Successful in 20s Details
tests / release (push) Successful in 5s Details
Ask the tunnel gateway where it actually listens
The console has been unreachable over the VPN, and the cause was the readiness
probe rather than the tunnel. The gateway binds to the WireGuard hub address
alone; the probe asked 127.0.0.1, where nothing has ever listened. It could only
fail, so VPN_READY stayed false, and on that basis the application withheld the
`DNS = 10.66.0.1` line from every client config it issued. A phone then built
the tunnel, asked its normal resolver for the console hostname, got the public
address and had its connection closed — indistinguishable from "this site does
not exist", which is exactly what it looked like.

Probing over TLS on the bare address would not have worked either: the site
matches on the console's hostname, so a request without SNI is offered no
certificate. The gateway now answers a plain-HTTP health port on the hub
address, which removes TLS, SNI and name resolution from the question and
answers only what is being asked — is this gateway listening, in this network
namespace, right now. Caddy refuses to start when the certificate is unreadable,
so a health port that answers still proves the whole file loaded.

Also here, all found while looking:

- Icons pushed their label onto a second line and rendered a size larger than
  asked for. Tailwind's preflight makes an svg display:block, and `.size-4` and
  `.size-5` have equal specificity, so stylesheet order decided — and it emits
  size-4 first. Every icon written as 16px was silently 20px. Recorded as R18.
- Four error pages printed `errors.404.hint` in place of a sentence: the lang
  files give those codes a null hint and Laravel returns the key for a null line.
- The Developer role had no label in either language, so the dropdown showed
  `admin_settings.role_developer`.
- The secrets area held one key, which is not worth a password gate. It now
  carries the credentials that actually stop the business when they expire —
  DNS, monitoring, SMTP — and the test button appears only where a checker
  exists, instead of reporting on Stripe whatever was being looked at.
- The update button said nothing about when a queued run would start or where a
  running one had got to; both are now shown, and a failure names its step.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 14:43:23 +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 Make the private hostnames look like nothing is there, and close the way past the proxy 2026-07-27 11:26:48 +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 Ask the tunnel gateway where it actually listens 2026-07-27 14:43:23 +02:00
VpnTest.php Serve the console inside the tunnel, without publishing the internal network 2026-07-27 10:14:33 +02:00