Aarnav Tale
|
73ef483f25
|
test(harness): match Headplane redirects by origin in the Dex sign-in
|
2026-10-20 11:47:06 -07:00 |
|
Aarnav Tale
|
0419033fd2
|
test: generate the class tables instead of relying on a prior build
|
2026-10-20 08:50:05 -07:00 |
|
Aarnav Tale
|
3f261f71e1
|
ci: run integration tests per Headscale version alongside the build
|
2026-10-19 17:31:02 -07:00 |
|
Aarnav Tale
|
6cd1bc8320
|
fix(ssh): show why sessions fail, support check rules and connect once
|
2026-10-19 16:16:03 -07:00 |
|
Aarnav Tale
|
90914ccb89
|
test: cover SSO, signing out, linking, status and the agent page
|
2026-10-19 16:16:02 -07:00 |
|
Aarnav Tale
|
faba4f053d
|
test(harness): relay tailnets through Headscale's own DERP server
|
2026-10-19 16:16:01 -07:00 |
|
Aarnav Tale
|
9b939db787
|
fix(acls): only offer an empty policy when Headscale has none
|
2026-10-19 15:22:08 -07:00 |
|
Aarnav Tale
|
8ea30095ee
|
fix(machines): refuse disabling key expiry before 0.29 and name deleted machines
|
2026-10-19 15:22:06 -07:00 |
|
Aarnav Tale
|
5f043eabb1
|
fix(dns): refuse changes Headscale can't start with or that no longer apply
|
2026-10-19 15:22:04 -07:00 |
|
Aarnav Tale
|
3c190b55f0
|
fix(users): refuse taken names, missing accounts and owner role changes
|
2026-10-19 15:21:45 -07:00 |
|
Aarnav Tale
|
f9362775d6
|
test(harness): start Headscale with a policy file and submit forms URL-encoded
|
2026-10-19 15:21:43 -07:00 |
|
Aarnav Tale
|
a739a7f336
|
fix(agent): re-register when Headscale no longer knows the saved node
|
2026-10-19 15:11:37 -07:00 |
|
Aarnav Tale
|
ac47034b48
|
test(harness): keep DNS records in their own file, as Headplane now requires
|
2026-10-19 12:57:26 -07:00 |
|
Aarnav Tale
|
6209174f15
|
docs: keep the testing guide next to the tests
|
2026-10-19 12:28:11 -07:00 |
|
Aarnav Tale
|
b1a7403491
|
fix: more adversarial review cleanup
|
2026-10-19 12:25:04 -07:00 |
|
Aarnav Tale
|
a3e0289ee5
|
feat: start some cleanup
|
2026-10-19 12:25:04 -07:00 |
|
Aarnav Tale
|
f9004dc21f
|
feat: de-slop round 1
|
2026-10-19 12:24:56 -07:00 |
|
Aarnav Tale
|
a1d15bf049
|
test: drop the fake Headscale and test routes against the real one
|
2026-10-19 12:24:53 -07:00 |
|
Aarnav Tale
|
8322de9ebc
|
test(fake): model only what unit tests use
|
2026-10-19 12:24:50 -07:00 |
|
Aarnav Tale
|
f151e8521a
|
test(agent): give each test file its own agent binary so files run in parallel
|
2026-10-19 12:24:50 -07:00 |
|
Aarnav Tale
|
598e014780
|
test(harness): retry Headscale on a new port when another process takes it
|
2026-10-19 12:24:45 -07:00 |
|
Aarnav Tale
|
0131cbe6d7
|
test: trim comments to one line
|
2026-10-19 12:24:45 -07:00 |
|
Aarnav Tale
|
e433d4388c
|
docs: describe the test app, contract, and harness
|
2026-10-19 12:24:44 -07:00 |
|
Aarnav Tale
|
061609c057
|
test: accept any route function in the test app without a cast
|
2026-10-19 12:24:11 -07:00 |
|
Aarnav Tale
|
d4213f3b39
|
fix(auth): trim pasted API keys and reject ones that can't be sent
|
2026-10-19 12:24:10 -07:00 |
|
Aarnav Tale
|
9f37ba4d4d
|
test(contract): cover API keys that can't be sent as a header
|
2026-10-19 12:24:10 -07:00 |
|
Aarnav Tale
|
c86bc5a929
|
test(harness): run seeded scenarios from the command line
For manual testing, reproducing user setups, and the docs screenshots.
|
2026-10-19 12:24:10 -07:00 |
|
Aarnav Tale
|
fc1d99a24e
|
test: drop unit tests that restate the code
|
2026-10-19 12:24:00 -07:00 |
|
Aarnav Tale
|
873e41a739
|
test: move the remaining integration tests onto the harness
Supported versions now live in one place, and CI runs every one of them.
|
2026-10-19 12:23:59 -07:00 |
|
Aarnav Tale
|
50981b115b
|
fix(machines): keep a machine signed in when key expiry is turned on
Headscale treats an expire request without a future expiry as expire now.
|
2026-10-19 12:23:50 -07:00 |
|
Aarnav Tale
|
076478e1d0
|
test: drive machines and DNS from Headplane on a real tailnet
|
2026-10-19 12:23:50 -07:00 |
|
Aarnav Tale
|
ffde9946a6
|
test(contract): cover 0.28.0 deleting every auth key with a user
|
2026-10-19 12:23:50 -07:00 |
|
Aarnav Tale
|
5d026f2108
|
test(harness): serve Headscale over TLS and run Headplane in-process
Tailscale clients retry control over TLS on 443 after a quick reconnect, so a plain HTTP Headscale strands them on every restart.
|
2026-10-19 12:23:49 -07:00 |
|
Aarnav Tale
|
57c3354d68
|
test: type the empty sign-in forms
|
2026-10-19 12:23:49 -07:00 |
|
Aarnav Tale
|
89b2cefef0
|
test: sign in with API keys against every Headscale version
|
2026-10-19 12:23:49 -07:00 |
|
Aarnav Tale
|
069804158e
|
test: check every route's permissions against each role
|
2026-10-19 12:23:49 -07:00 |
|
Aarnav Tale
|
e672d63594
|
fix(agent): require permission to view machines to sync
|
2026-10-19 12:23:48 -07:00 |
|
Aarnav Tale
|
02529396a1
|
fix(auth-keys): only show self-service users their own keys
The loader sent every user's keys to anyone signed in, unmasked on Headscale 0.27.
|
2026-10-19 12:23:48 -07:00 |
|
Aarnav Tale
|
5430324ef3
|
test: call loaders and actions against the real app context
|
2026-10-19 12:23:48 -07:00 |
|
Aarnav Tale
|
74e79b175e
|
test: hold an in-memory Headscale to the same contract as the real one
|
2026-10-19 12:23:48 -07:00 |
|
Aarnav Tale
|
4f41fc6748
|
fix(api): keep listForUser to the user's own keys
Headscale 0.28+ ignores the user filter and returns every key.
|
2026-10-19 12:23:48 -07:00 |
|
Aarnav Tale
|
2bd5c2faf1
|
test(harness): start disposable tailnets with real Tailscale nodes
|
2026-10-19 12:23:47 -07:00 |
|
Aarnav Tale
|
13223b2236
|
refactor(server): let tests build the app context around their own services
Startup config errors now throw instead of exiting so they can be tested.
|
2026-10-19 12:23:47 -07:00 |
|
Aarnav Tale
|
d5a40ed74a
|
test: read config from temp dirs and keep logs out of passing runs
|
2026-10-19 12:23:28 -07:00 |
|
Aarnav Tale
|
31d9c36d5a
|
docs(agents): set the bar for tests and describe the harness
|
2026-10-19 12:23:28 -07:00 |
|
Aarnav Tale
|
fc6f6ce4f6
|
fix(docs): move the version picker next to the header controls
|
2026-10-19 11:53:38 -07:00 |
|
Aarnav Tale
|
2e01fa3200
|
docs: rewrite the docs and version them (#668)
|
2026-10-19 11:48:26 -07:00 |
|
Aarnav Tale
|
b19c638c3a
|
fix: restart headscale for config changes instead of sighup (#667)
|
2026-10-18 16:01:07 -07:00 |
|
Aarnav Tale
|
e770c63bcf
|
fix: sign the OIDC cookie and clear it
|
2026-10-17 16:39:09 -07:00 |
|
Aarnav Tale
|
078a18d0cb
|
fix(oidc): sync profile picture with the provider on every sign-in
|
2026-10-17 14:30:17 -07:00 |
|