headscale/hscontrol/db
Ryan Malloy 32ea1c1c84 oidc groups: fix post-merge compile and migration issues
Bugs found by running the real test suite after merging upstream:

- types/types_clone.go, types/types_view.go: extend the regeneration
  guard struct literals to include the new Groups field, and add a
  UserView.Groups() accessor. Generated files normally rebuilt via
  cloner / viewer; touched by hand here pending make generate.
- db/db.go: the migration adding the groups column ran after
  202505141324, which calls ListUsers() through the User struct that
  now includes Groups. Move the column-add to 202505141323 so the
  schema is in place before any migration loads users. Register the
  new ID in the FK-disabled migration list.
- db/db.go: 202507021200 recreates all tables from inline SQL during
  the SQLite schema migration; add groups to both the CREATE TABLE
  users statement and the INSERT INTO users ... SELECT FROM users_old
  so the column survives the recreation. Also fix a copy-paste bug
  in the Rollback closure that referenced tx instead of db.
- db/schema.sql: add the groups column to the canonical schema so
  squibble.Validate accepts databases produced by the new migration
  chain. Verified against all 7 historical sqlite dumps in
  hscontrol/db/testdata/sqlite.
- types/users_test.go: the casby-oidc-claim case now exercises group
  storage; update the want to include the JSON-encoded groups column.
- integration/oidc_groups_test.go: replace the aspirational draft
  (which referenced assertNoErr, scenario.usernames, hsic.WithTLS and
  other symbols that do not exist) with a focused test that follows
  the auth_oidc_test.go pattern. Verifies the groups column directly
  via sqlite3 inside the headscale container since the gRPC User
  message does not expose Groups.
2026-05-21 21:14:08 -06:00
..
sqliteconfig all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
testdata/sqlite db: use PolicyManager for RequestTags migration 2026-01-21 15:10:29 +01:00
api_key.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
api_key_test.go grpc: support expire/delete API keys by ID 2026-01-20 17:13:38 +01:00
db.go oidc groups: fix post-merge compile and migration issues 2026-05-21 21:14:08 -06:00
db_test.go types: persist Node JSON slices via named IsZero types 2026-05-15 11:21:58 +02:00
ephemeral_garbage_collector_test.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
ip.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
ip_test.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
main_test.go all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
node.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
node_test.go db: remove unused SetApprovedRoutes and SetTags helpers 2026-05-15 11:21:58 +02:00
policy.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
preauth_keys.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
preauth_keys_test.go db: guard UsePreAuthKey with WHERE used=false 2026-04-10 14:09:57 +01:00
schema.sql oidc groups: fix post-merge compile and migration issues 2026-05-21 21:14:08 -06:00
suite_test.go hscontrol/types: silence zerolog by default in tests 2026-04-17 16:31:49 +01:00
text_serialiser.go all: mechanical lint fixes 2026-05-19 09:55:22 +02:00
user_update_test.go hscontrol: use Updates() instead of Save() for partial updates 2025-11-11 12:47:48 -06:00
users.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
users_test.go types: persist Node JSON slices via named IsZero types 2026-05-15 11:21:58 +02:00
versioncheck.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
versioncheck_test.go db: enforce strict version upgrade path 2026-02-19 08:21:23 +01:00