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.