mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-29 02:22:16 +00:00
feat(repository): implement user repository (#10967)
## Summary This PR introduces the relational user repository for backend v3, including schema, repository APIs, reducers/projections, and tests for both human and machine users. ## What changed * Added user-focused relational migrations (users, verifications, metadata, PATs, machine keys, passkeys, identity provider links) and related FK wiring. * Implemented/expanded repository domain contracts and storage implementations for human and machine user flows. * Added support for machine secret handling and aligned access token type modeling. * Extended user domain models (verifications, password/email/phone/TOTP state, passkeys, metadata, invite handling, identity provider links). * Updated projection/reduction coverage and integration tests for key user lifecycle events. * Regenerated and updated mocks/enums plus supporting database change/column utilities. ## Notes for reviewers * This PR is large because it establishes the foundational relational user storage layer and related test scaffolding. Sorry for that. ## Closes Closes #10218 Closes #10224 Closes #10225 Closes #10209 Closes #10802 --------- Co-authored-by: Iraq Jaber <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Marco A. <[email protected]> Co-authored-by: Tim Möhlmann <[email protected]>
This commit is contained in:
co-authored by
Iraq Jaber
Copilot
Marco A.
Tim Möhlmann
parent
40c7b38ca1
commit
5df8a97f9d
@@ -176,6 +176,7 @@ func NewJsonChanges(col database.Column, changes ...JsonUpdate) database.Change
|
||||
}
|
||||
}
|
||||
|
||||
// WriteArg implements [gomock.Matcher].
|
||||
func (c *jsonChanges) Matches(x any) bool {
|
||||
toMatch, ok := x.(*jsonChanges)
|
||||
if !ok {
|
||||
@@ -205,10 +206,12 @@ func (c *jsonChanges) Matches(x any) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// WriteArg implements [database.Change].
|
||||
func (c *jsonChanges) String() string {
|
||||
return "database.json.jsonChange"
|
||||
}
|
||||
|
||||
// WriteArg implements [database.Change].
|
||||
func (c jsonChanges) Write(builder *database.StatementBuilder) error {
|
||||
c.column.WriteUnqualified(builder)
|
||||
builder.WriteString(" = ")
|
||||
@@ -220,6 +223,12 @@ func (c jsonChanges) Write(builder *database.StatementBuilder) error {
|
||||
return c.changes[len(c.changes)-1].writeUpdate(builder, c, len(c.changes)-2)
|
||||
}
|
||||
|
||||
// WriteArg implements [database.Change].
|
||||
func (c jsonChanges) IsOnColumn(col database.Column) bool {
|
||||
return c.column.Equals(col)
|
||||
}
|
||||
|
||||
// WriteArg implements [database.Change].
|
||||
func (c jsonChanges) WriteArg(builder *database.StatementBuilder) {
|
||||
c.column.WriteArg(builder)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user