diff --git a/internal/graph/generated/generated.go b/internal/graph/generated/generated.go
index 9705b405..1d00c1ee 100644
--- a/internal/graph/generated/generated.go
+++ b/internal/graph/generated/generated.go
@@ -476,7 +476,7 @@ type ComplexityRoot struct {
CheckPermissions func(childComplexity int, params model.CheckPermissionsInput) int
Client func(childComplexity int, params model.ClientRequest) int
Clients func(childComplexity int, params *model.ListClientsRequest) int
- EmailTemplates func(childComplexity int, params *model.PaginatedRequest) int
+ EmailTemplates func(childComplexity int, params *model.PaginationRequest) int
Env func(childComplexity int) int
FgaExpand func(childComplexity int, params model.FgaExpandInput) int
FgaGetModel func(childComplexity int) int
@@ -503,11 +503,11 @@ type ComplexityRoot struct {
Users func(childComplexity int, params *model.ListUsersRequest) int
ValidateJwtToken func(childComplexity int, params model.ValidateJWTTokenRequest) int
ValidateSession func(childComplexity int, params *model.ValidateSessionRequest) int
- VerificationRequests func(childComplexity int, params *model.PaginatedRequest) int
+ VerificationRequests func(childComplexity int, params *model.PaginationRequest) int
WebauthnCredentials func(childComplexity int) int
Webhook func(childComplexity int, params model.WebhookRequest) int
WebhookLogs func(childComplexity int, params *model.ListWebhookLogRequest) int
- Webhooks func(childComplexity int, params *model.PaginatedRequest) int
+ Webhooks func(childComplexity int, params *model.PaginationRequest) int
}
Response struct {
@@ -793,12 +793,12 @@ type QueryResolver interface {
Users(ctx context.Context, params *model.ListUsersRequest) (*model.Users, error)
User(ctx context.Context, params model.GetUserRequest) (*model.User, error)
UserOrganizations(ctx context.Context, params model.UserOrganizationsRequest) (*model.UserOrganizations, error)
- VerificationRequests(ctx context.Context, params *model.PaginatedRequest) (*model.VerificationRequests, error)
+ VerificationRequests(ctx context.Context, params *model.PaginationRequest) (*model.VerificationRequests, error)
AdminSession(ctx context.Context) (*model.Response, error)
AdminMeta(ctx context.Context) (*model.AdminMeta, error)
Env(ctx context.Context) (*model.Env, error)
Webhook(ctx context.Context, params model.WebhookRequest) (*model.Webhook, error)
- Webhooks(ctx context.Context, params *model.PaginatedRequest) (*model.Webhooks, error)
+ Webhooks(ctx context.Context, params *model.PaginationRequest) (*model.Webhooks, error)
WebhookLogs(ctx context.Context, params *model.ListWebhookLogRequest) (*model.WebhookLogs, error)
Client(ctx context.Context, params model.ClientRequest) (*model.Client, error)
Clients(ctx context.Context, params *model.ListClientsRequest) (*model.Clients, error)
@@ -814,7 +814,7 @@ type QueryResolver interface {
OrgMembers(ctx context.Context, params model.ListOrgMembersRequest) (*model.OrgMembers, error)
ScimEndpoint(ctx context.Context, params model.ScimEndpointRequest) (*model.ScimEndpoint, error)
OrgDomains(ctx context.Context, params model.ListOrgDomainsRequest) (*model.OrgDomains, error)
- EmailTemplates(ctx context.Context, params *model.PaginatedRequest) (*model.EmailTemplates, error)
+ EmailTemplates(ctx context.Context, params *model.PaginationRequest) (*model.EmailTemplates, error)
AuditLogs(ctx context.Context, params *model.ListAuditLogRequest) (*model.AuditLogs, error)
FgaGetModel(ctx context.Context) (*model.FgaModel, error)
FgaReadTuples(ctx context.Context, params model.FgaReadTuplesInput) (*model.FgaTuples, error)
@@ -3481,7 +3481,7 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin
return 0, false
}
- return e.complexity.Query.EmailTemplates(childComplexity, args["params"].(*model.PaginatedRequest)), true
+ return e.complexity.Query.EmailTemplates(childComplexity, args["params"].(*model.PaginationRequest)), true
case "Query._env":
if e.complexity.Query.Env == nil {
@@ -3785,7 +3785,7 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin
return 0, false
}
- return e.complexity.Query.VerificationRequests(childComplexity, args["params"].(*model.PaginatedRequest)), true
+ return e.complexity.Query.VerificationRequests(childComplexity, args["params"].(*model.PaginationRequest)), true
case "Query.webauthn_credentials":
if e.complexity.Query.WebauthnCredentials == nil {
@@ -3828,7 +3828,7 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin
return 0, false
}
- return e.complexity.Query.Webhooks(childComplexity, args["params"].(*model.PaginatedRequest)), true
+ return e.complexity.Query.Webhooks(childComplexity, args["params"].(*model.PaginationRequest)), true
case "Response.message":
if e.complexity.Response.Message == nil {
@@ -4736,7 +4736,6 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {
ec.unmarshalInputOrgSAMLConnectionRequest,
ec.unmarshalInputOrganizationRequest,
ec.unmarshalInputOtpMfaSetupRequest,
- ec.unmarshalInputPaginatedRequest,
ec.unmarshalInputPaginationRequest,
ec.unmarshalInputPermissionCheckInput,
ec.unmarshalInputRemoveOrgMemberRequest,
@@ -5839,10 +5838,6 @@ input PaginationRequest {
page: Int64
}
-input PaginatedRequest {
- pagination: PaginationRequest
-}
-
# ListUsersRequest is the admin _users query input. query is an optional
# case-insensitive substring filter matched against email, given_name,
# family_name and nickname. Empty/absent means no filter (full list).
@@ -5948,7 +5943,7 @@ input ClientRequest {
}
input ListClientsRequest {
- pagination: PaginatedRequest
+ pagination: PaginationRequest
}
input AddTrustedIssuerRequest {
@@ -6001,7 +5996,7 @@ input TrustedIssuerRequest {
input ListTrustedIssuersRequest {
service_account_id: String
- pagination: PaginatedRequest
+ pagination: PaginationRequest
}
input CreateOrgOIDCConnectionRequest {
@@ -6115,7 +6110,7 @@ input SAMLServiceProviderRequest {
input ListSAMLServiceProvidersRequest {
org_id: String!
- pagination: PaginatedRequest
+ pagination: PaginationRequest
}
# --- SAML IdP: signing key rotation & SP-metadata import ---
@@ -6155,7 +6150,7 @@ input OrganizationRequest {
}
input ListOrganizationsRequest {
- pagination: PaginatedRequest
+ pagination: PaginationRequest
}
# All SCIM endpoint admin ops are keyed by org_id — one endpoint per org.
@@ -6187,7 +6182,7 @@ input AddVerifiedOrgDomainRequest {
input ListOrgDomainsRequest {
org_id: String!
- pagination: PaginatedRequest
+ pagination: PaginationRequest
}
input DeleteOrgDomainRequest {
@@ -6208,7 +6203,7 @@ input RemoveOrgMemberRequest {
input ListOrgMembersRequest {
org_id: String!
- pagination: PaginatedRequest
+ pagination: PaginationRequest
}
input TestEndpointRequest {
@@ -6540,7 +6535,7 @@ type Query {
# the roles held in each. Super-admin only. Called lazily by the dashboard
# user detail view — not exposed on the User type to keep user lists cheap.
_user_organizations(params: UserOrganizationsRequest!): UserOrganizations!
- _verification_requests(params: PaginatedRequest): VerificationRequests!
+ _verification_requests(params: PaginationRequest): VerificationRequests!
_admin_session: Response!
# Admin-only configuration metadata (e.g. configured roles). Non-deprecated
# replacement for the bits of _env the dashboard needs.
@@ -6548,7 +6543,7 @@ type Query {
# Deprecated from v2.0.0
_env: Env!
_webhook(params: WebhookRequest!): Webhook!
- _webhooks(params: PaginatedRequest): Webhooks!
+ _webhooks(params: PaginationRequest): Webhooks!
_webhook_logs(params: ListWebhookLogRequest): WebhookLogs!
# Service accounts (machine/workload identity)
_client(params: ClientRequest!): Client!
@@ -6570,7 +6565,7 @@ type Query {
_scim_endpoint(params: ScimEndpointRequest!): ScimEndpoint!
# An org's verified domains (org-admin gated; never leaks another org's rows).
_org_domains(params: ListOrgDomainsRequest!): OrgDomains!
- _email_templates(params: PaginatedRequest): EmailTemplates!
+ _email_templates(params: PaginationRequest): EmailTemplates!
_audit_logs(params: ListAuditLogRequest): AuditLogs!
# FGA admin queries (super-admin only)
_fga_get_model: FgaModel!
@@ -8781,18 +8776,18 @@ func (ec *executionContext) field_Query__email_templates_args(ctx context.Contex
func (ec *executionContext) field_Query__email_templates_argsParams(
ctx context.Context,
rawArgs map[string]any,
-) (*model.PaginatedRequest, error) {
+) (*model.PaginationRequest, error) {
if _, ok := rawArgs["params"]; !ok {
- var zeroVal *model.PaginatedRequest
+ var zeroVal *model.PaginationRequest
return zeroVal, nil
}
ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("params"))
if tmp, ok := rawArgs["params"]; ok {
- return ec.unmarshalOPaginatedRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginatedRequest(ctx, tmp)
+ return ec.unmarshalOPaginationRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginationRequest(ctx, tmp)
}
- var zeroVal *model.PaginatedRequest
+ var zeroVal *model.PaginationRequest
return zeroVal, nil
}
@@ -9313,18 +9308,18 @@ func (ec *executionContext) field_Query__verification_requests_args(ctx context.
func (ec *executionContext) field_Query__verification_requests_argsParams(
ctx context.Context,
rawArgs map[string]any,
-) (*model.PaginatedRequest, error) {
+) (*model.PaginationRequest, error) {
if _, ok := rawArgs["params"]; !ok {
- var zeroVal *model.PaginatedRequest
+ var zeroVal *model.PaginationRequest
return zeroVal, nil
}
ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("params"))
if tmp, ok := rawArgs["params"]; ok {
- return ec.unmarshalOPaginatedRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginatedRequest(ctx, tmp)
+ return ec.unmarshalOPaginationRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginationRequest(ctx, tmp)
}
- var zeroVal *model.PaginatedRequest
+ var zeroVal *model.PaginationRequest
return zeroVal, nil
}
@@ -9397,18 +9392,18 @@ func (ec *executionContext) field_Query__webhooks_args(ctx context.Context, rawA
func (ec *executionContext) field_Query__webhooks_argsParams(
ctx context.Context,
rawArgs map[string]any,
-) (*model.PaginatedRequest, error) {
+) (*model.PaginationRequest, error) {
if _, ok := rawArgs["params"]; !ok {
- var zeroVal *model.PaginatedRequest
+ var zeroVal *model.PaginationRequest
return zeroVal, nil
}
ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("params"))
if tmp, ok := rawArgs["params"]; ok {
- return ec.unmarshalOPaginatedRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginatedRequest(ctx, tmp)
+ return ec.unmarshalOPaginationRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginationRequest(ctx, tmp)
}
- var zeroVal *model.PaginatedRequest
+ var zeroVal *model.PaginationRequest
return zeroVal, nil
}
@@ -25934,7 +25929,7 @@ func (ec *executionContext) _Query__verification_requests(ctx context.Context, f
}()
resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {
ctx = rctx // use context from middleware stack in children
- return ec.resolvers.Query().VerificationRequests(rctx, fc.Args["params"].(*model.PaginatedRequest))
+ return ec.resolvers.Query().VerificationRequests(rctx, fc.Args["params"].(*model.PaginationRequest))
})
if err != nil {
ec.Error(ctx, err)
@@ -26358,7 +26353,7 @@ func (ec *executionContext) _Query__webhooks(ctx context.Context, field graphql.
}()
resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {
ctx = rctx // use context from middleware stack in children
- return ec.resolvers.Query().Webhooks(rctx, fc.Args["params"].(*model.PaginatedRequest))
+ return ec.resolvers.Query().Webhooks(rctx, fc.Args["params"].(*model.PaginationRequest))
})
if err != nil {
ec.Error(ctx, err)
@@ -27454,7 +27449,7 @@ func (ec *executionContext) _Query__email_templates(ctx context.Context, field g
}()
resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {
ctx = rctx // use context from middleware stack in children
- return ec.resolvers.Query().EmailTemplates(rctx, fc.Args["params"].(*model.PaginatedRequest))
+ return ec.resolvers.Query().EmailTemplates(rctx, fc.Args["params"].(*model.PaginationRequest))
})
if err != nil {
ec.Error(ctx, err)
@@ -36758,7 +36753,7 @@ func (ec *executionContext) unmarshalInputListClientsRequest(ctx context.Context
switch k {
case "pagination":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("pagination"))
- data, err := ec.unmarshalOPaginatedRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginatedRequest(ctx, v)
+ data, err := ec.unmarshalOPaginationRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginationRequest(ctx, v)
if err != nil {
return it, err
}
@@ -36792,7 +36787,7 @@ func (ec *executionContext) unmarshalInputListOrgDomainsRequest(ctx context.Cont
it.OrgID = data
case "pagination":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("pagination"))
- data, err := ec.unmarshalOPaginatedRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginatedRequest(ctx, v)
+ data, err := ec.unmarshalOPaginationRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginationRequest(ctx, v)
if err != nil {
return it, err
}
@@ -36826,7 +36821,7 @@ func (ec *executionContext) unmarshalInputListOrgMembersRequest(ctx context.Cont
it.OrgID = data
case "pagination":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("pagination"))
- data, err := ec.unmarshalOPaginatedRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginatedRequest(ctx, v)
+ data, err := ec.unmarshalOPaginationRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginationRequest(ctx, v)
if err != nil {
return it, err
}
@@ -36853,7 +36848,7 @@ func (ec *executionContext) unmarshalInputListOrganizationsRequest(ctx context.C
switch k {
case "pagination":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("pagination"))
- data, err := ec.unmarshalOPaginatedRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginatedRequest(ctx, v)
+ data, err := ec.unmarshalOPaginationRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginationRequest(ctx, v)
if err != nil {
return it, err
}
@@ -36955,7 +36950,7 @@ func (ec *executionContext) unmarshalInputListSAMLServiceProvidersRequest(ctx co
it.OrgID = data
case "pagination":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("pagination"))
- data, err := ec.unmarshalOPaginatedRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginatedRequest(ctx, v)
+ data, err := ec.unmarshalOPaginationRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginationRequest(ctx, v)
if err != nil {
return it, err
}
@@ -36989,7 +36984,7 @@ func (ec *executionContext) unmarshalInputListTrustedIssuersRequest(ctx context.
it.ServiceAccountID = data
case "pagination":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("pagination"))
- data, err := ec.unmarshalOPaginatedRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginatedRequest(ctx, v)
+ data, err := ec.unmarshalOPaginationRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginationRequest(ctx, v)
if err != nil {
return it, err
}
@@ -37562,33 +37557,6 @@ func (ec *executionContext) unmarshalInputOtpMfaSetupRequest(ctx context.Context
return it, nil
}
-func (ec *executionContext) unmarshalInputPaginatedRequest(ctx context.Context, obj any) (model.PaginatedRequest, error) {
- var it model.PaginatedRequest
- asMap := map[string]any{}
- for k, v := range obj.(map[string]any) {
- asMap[k] = v
- }
-
- fieldsInOrder := [...]string{"pagination"}
- for _, k := range fieldsInOrder {
- v, ok := asMap[k]
- if !ok {
- continue
- }
- switch k {
- case "pagination":
- ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("pagination"))
- data, err := ec.unmarshalOPaginationRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginationRequest(ctx, v)
- if err != nil {
- return it, err
- }
- it.Pagination = data
- }
- }
-
- return it, nil
-}
-
func (ec *executionContext) unmarshalInputPaginationRequest(ctx context.Context, obj any) (model.PaginationRequest, error) {
var it model.PaginationRequest
asMap := map[string]any{}
@@ -47549,14 +47517,6 @@ func (ec *executionContext) unmarshalOOtpMfaSetupRequest2ᚖgithubᚗcomᚋautho
return &res, graphql.ErrorOnPath(ctx, err)
}
-func (ec *executionContext) unmarshalOPaginatedRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginatedRequest(ctx context.Context, v any) (*model.PaginatedRequest, error) {
- if v == nil {
- return nil, nil
- }
- res, err := ec.unmarshalInputPaginatedRequest(ctx, v)
- return &res, graphql.ErrorOnPath(ctx, err)
-}
-
func (ec *executionContext) unmarshalOPaginationRequest2ᚖgithubᚗcomᚋauthorizerdevᚋauthorizerᚋinternalᚋgraphᚋmodelᚐPaginationRequest(ctx context.Context, v any) (*model.PaginationRequest, error) {
if v == nil {
return nil, nil
diff --git a/internal/graph/model/models_gen.go b/internal/graph/model/models_gen.go
index 637d32ff..4d6b7181 100644
--- a/internal/graph/model/models_gen.go
+++ b/internal/graph/model/models_gen.go
@@ -404,21 +404,21 @@ type ListAuditLogRequest struct {
}
type ListClientsRequest struct {
- Pagination *PaginatedRequest `json:"pagination,omitempty"`
+ Pagination *PaginationRequest `json:"pagination,omitempty"`
}
type ListOrgDomainsRequest struct {
- OrgID string `json:"org_id"`
- Pagination *PaginatedRequest `json:"pagination,omitempty"`
+ OrgID string `json:"org_id"`
+ Pagination *PaginationRequest `json:"pagination,omitempty"`
}
type ListOrgMembersRequest struct {
- OrgID string `json:"org_id"`
- Pagination *PaginatedRequest `json:"pagination,omitempty"`
+ OrgID string `json:"org_id"`
+ Pagination *PaginationRequest `json:"pagination,omitempty"`
}
type ListOrganizationsRequest struct {
- Pagination *PaginatedRequest `json:"pagination,omitempty"`
+ Pagination *PaginationRequest `json:"pagination,omitempty"`
}
type ListPermissionsInput struct {
@@ -438,13 +438,13 @@ type ListSAMLIDPKeysRequest struct {
}
type ListSAMLServiceProvidersRequest struct {
- OrgID string `json:"org_id"`
- Pagination *PaginatedRequest `json:"pagination,omitempty"`
+ OrgID string `json:"org_id"`
+ Pagination *PaginationRequest `json:"pagination,omitempty"`
}
type ListTrustedIssuersRequest struct {
- ServiceAccountID *string `json:"service_account_id,omitempty"`
- Pagination *PaginatedRequest `json:"pagination,omitempty"`
+ ServiceAccountID *string `json:"service_account_id,omitempty"`
+ Pagination *PaginationRequest `json:"pagination,omitempty"`
}
type ListUsersRequest struct {
@@ -640,10 +640,6 @@ type OtpMfaSetupRequest struct {
PhoneNumber *string `json:"phone_number,omitempty"`
}
-type PaginatedRequest struct {
- Pagination *PaginationRequest `json:"pagination,omitempty"`
-}
-
type Pagination struct {
Limit int64 `json:"limit"`
Page int64 `json:"page"`
diff --git a/internal/graph/schema.graphqls b/internal/graph/schema.graphqls
index 7380df2c..9094bd76 100644
--- a/internal/graph/schema.graphqls
+++ b/internal/graph/schema.graphqls
@@ -966,10 +966,6 @@ input PaginationRequest {
page: Int64
}
-input PaginatedRequest {
- pagination: PaginationRequest
-}
-
# ListUsersRequest is the admin _users query input. query is an optional
# case-insensitive substring filter matched against email, given_name,
# family_name and nickname. Empty/absent means no filter (full list).
@@ -1075,7 +1071,7 @@ input ClientRequest {
}
input ListClientsRequest {
- pagination: PaginatedRequest
+ pagination: PaginationRequest
}
input AddTrustedIssuerRequest {
@@ -1128,7 +1124,7 @@ input TrustedIssuerRequest {
input ListTrustedIssuersRequest {
service_account_id: String
- pagination: PaginatedRequest
+ pagination: PaginationRequest
}
input CreateOrgOIDCConnectionRequest {
@@ -1242,7 +1238,7 @@ input SAMLServiceProviderRequest {
input ListSAMLServiceProvidersRequest {
org_id: String!
- pagination: PaginatedRequest
+ pagination: PaginationRequest
}
# --- SAML IdP: signing key rotation & SP-metadata import ---
@@ -1282,7 +1278,7 @@ input OrganizationRequest {
}
input ListOrganizationsRequest {
- pagination: PaginatedRequest
+ pagination: PaginationRequest
}
# All SCIM endpoint admin ops are keyed by org_id — one endpoint per org.
@@ -1314,7 +1310,7 @@ input AddVerifiedOrgDomainRequest {
input ListOrgDomainsRequest {
org_id: String!
- pagination: PaginatedRequest
+ pagination: PaginationRequest
}
input DeleteOrgDomainRequest {
@@ -1335,7 +1331,7 @@ input RemoveOrgMemberRequest {
input ListOrgMembersRequest {
org_id: String!
- pagination: PaginatedRequest
+ pagination: PaginationRequest
}
input TestEndpointRequest {
@@ -1667,7 +1663,7 @@ type Query {
# the roles held in each. Super-admin only. Called lazily by the dashboard
# user detail view — not exposed on the User type to keep user lists cheap.
_user_organizations(params: UserOrganizationsRequest!): UserOrganizations!
- _verification_requests(params: PaginatedRequest): VerificationRequests!
+ _verification_requests(params: PaginationRequest): VerificationRequests!
_admin_session: Response!
# Admin-only configuration metadata (e.g. configured roles). Non-deprecated
# replacement for the bits of _env the dashboard needs.
@@ -1675,7 +1671,7 @@ type Query {
# Deprecated from v2.0.0
_env: Env!
_webhook(params: WebhookRequest!): Webhook!
- _webhooks(params: PaginatedRequest): Webhooks!
+ _webhooks(params: PaginationRequest): Webhooks!
_webhook_logs(params: ListWebhookLogRequest): WebhookLogs!
# Service accounts (machine/workload identity)
_client(params: ClientRequest!): Client!
@@ -1697,7 +1693,7 @@ type Query {
_scim_endpoint(params: ScimEndpointRequest!): ScimEndpoint!
# An org's verified domains (org-admin gated; never leaks another org's rows).
_org_domains(params: ListOrgDomainsRequest!): OrgDomains!
- _email_templates(params: PaginatedRequest): EmailTemplates!
+ _email_templates(params: PaginationRequest): EmailTemplates!
_audit_logs(params: ListAuditLogRequest): AuditLogs!
# FGA admin queries (super-admin only)
_fga_get_model: FgaModel!
diff --git a/internal/graph/schema.resolvers.go b/internal/graph/schema.resolvers.go
index 464c2701..e5358c12 100644
--- a/internal/graph/schema.resolvers.go
+++ b/internal/graph/schema.resolvers.go
@@ -443,7 +443,7 @@ func (r *queryResolver) UserOrganizations(ctx context.Context, params model.User
}
// VerificationRequests is the resolver for the _verification_requests field.
-func (r *queryResolver) VerificationRequests(ctx context.Context, params *model.PaginatedRequest) (*model.VerificationRequests, error) {
+func (r *queryResolver) VerificationRequests(ctx context.Context, params *model.PaginationRequest) (*model.VerificationRequests, error) {
return r.GraphQLProvider.VerificationRequests(ctx, params)
}
@@ -468,7 +468,7 @@ func (r *queryResolver) Webhook(ctx context.Context, params model.WebhookRequest
}
// Webhooks is the resolver for the _webhooks field.
-func (r *queryResolver) Webhooks(ctx context.Context, params *model.PaginatedRequest) (*model.Webhooks, error) {
+func (r *queryResolver) Webhooks(ctx context.Context, params *model.PaginationRequest) (*model.Webhooks, error) {
return r.GraphQLProvider.Webhooks(ctx, params)
}
@@ -548,7 +548,7 @@ func (r *queryResolver) OrgDomains(ctx context.Context, params model.ListOrgDoma
}
// EmailTemplates is the resolver for the _email_templates field.
-func (r *queryResolver) EmailTemplates(ctx context.Context, params *model.PaginatedRequest) (*model.EmailTemplates, error) {
+func (r *queryResolver) EmailTemplates(ctx context.Context, params *model.PaginationRequest) (*model.EmailTemplates, error) {
return r.GraphQLProvider.EmailTemplates(ctx, params)
}
diff --git a/internal/graphql/email_templates.go b/internal/graphql/email_templates.go
index d394c584..1ab780a8 100644
--- a/internal/graphql/email_templates.go
+++ b/internal/graphql/email_templates.go
@@ -13,7 +13,7 @@ import (
// a thin transport adapter.
//
// Permissions: authorizer:admin
-func (g *graphqlProvider) EmailTemplates(ctx context.Context, params *model.PaginatedRequest) (*model.EmailTemplates, error) {
+func (g *graphqlProvider) EmailTemplates(ctx context.Context, params *model.PaginationRequest) (*model.EmailTemplates, error) {
gc, err := utils.GinContextFromContext(ctx)
if err != nil {
g.Log.Debug().Err(err).Msg("failed to get gin context")
diff --git a/internal/graphql/provider.go b/internal/graphql/provider.go
index 54032cc2..da50da3b 100644
--- a/internal/graphql/provider.go
+++ b/internal/graphql/provider.go
@@ -131,7 +131,7 @@ type Provider interface {
DeleteWebhook(ctx context.Context, params *model.WebhookRequest) (*model.Response, error)
// EmailTemplates is the method to list email templates.
// Permissions: authorizer:admin
- EmailTemplates(ctx context.Context, in *model.PaginatedRequest) (*model.EmailTemplates, error)
+ EmailTemplates(ctx context.Context, in *model.PaginationRequest) (*model.EmailTemplates, error)
// EnableAccess is the method to enable access.
// Permissions: authorizer:admin
EnableAccess(ctx context.Context, params *model.UpdateAccessRequest) (*model.Response, error)
@@ -218,7 +218,7 @@ type Provider interface {
ValidateSession(ctx context.Context, params *model.ValidateSessionRequest) (*model.ValidateSessionResponse, error)
// VerificationRequests is the method to list verification requests.
// Permissions: authorizer:admin
- VerificationRequests(ctx context.Context, in *model.PaginatedRequest) (*model.VerificationRequests, error)
+ VerificationRequests(ctx context.Context, in *model.PaginationRequest) (*model.VerificationRequests, error)
// VerifyEmail is the method to verify email.
// Permissions: none
VerifyEmail(ctx context.Context, params *model.VerifyEmailRequest) (*model.AuthResponse, error)
@@ -254,7 +254,7 @@ type Provider interface {
Webhook(ctx context.Context, params *model.WebhookRequest) (*model.Webhook, error)
// Webhooks is the method to list webhooks.
// Permissions: authorizer:admin
- Webhooks(ctx context.Context, in *model.PaginatedRequest) (*model.Webhooks, error)
+ Webhooks(ctx context.Context, in *model.PaginationRequest) (*model.Webhooks, error)
// CreateClient creates a machine/workload service account.
// Permissions: authorizer:admin
CreateClient(ctx context.Context, params *model.CreateClientRequest) (*model.CreateClientResponse, error)
diff --git a/internal/graphql/verification_requests.go b/internal/graphql/verification_requests.go
index 04502dd4..1063fb25 100644
--- a/internal/graphql/verification_requests.go
+++ b/internal/graphql/verification_requests.go
@@ -13,7 +13,7 @@ import (
// Resolver is a thin transport adapter.
//
// Permissions: authorizer:admin
-func (g *graphqlProvider) VerificationRequests(ctx context.Context, params *model.PaginatedRequest) (*model.VerificationRequests, error) {
+func (g *graphqlProvider) VerificationRequests(ctx context.Context, params *model.PaginationRequest) (*model.VerificationRequests, error) {
gc, err := utils.GinContextFromContext(ctx)
if err != nil {
g.Log.Debug().Err(err).Msg("failed to get gin context")
diff --git a/internal/graphql/webhooks.go b/internal/graphql/webhooks.go
index 58757a19..92a67957 100644
--- a/internal/graphql/webhooks.go
+++ b/internal/graphql/webhooks.go
@@ -13,7 +13,7 @@ import (
// transport adapter.
//
// Permission: authorizer:admin
-func (g *graphqlProvider) Webhooks(ctx context.Context, params *model.PaginatedRequest) (*model.Webhooks, error) {
+func (g *graphqlProvider) Webhooks(ctx context.Context, params *model.PaginationRequest) (*model.Webhooks, error) {
gc, err := utils.GinContextFromContext(ctx)
if err != nil {
g.Log.Debug().Err(err).Msg("failed to get gin context")
diff --git a/internal/grpcsrv/handlers/admin.go b/internal/grpcsrv/handlers/admin.go
index b623ab9f..aa42622a 100644
--- a/internal/grpcsrv/handlers/admin.go
+++ b/internal/grpcsrv/handlers/admin.go
@@ -138,7 +138,7 @@ func (h *AdminHandler) DeleteUser(ctx context.Context, req *authorizerv1.DeleteU
// VerificationRequests delegates to service.VerificationRequests and projects
// the paginated result. Requires super-admin auth.
func (h *AdminHandler) VerificationRequests(ctx context.Context, req *authorizerv1.VerificationRequestsRequest) (*authorizerv1.VerificationRequestsResponse, error) {
- res, _, err := h.Service.VerificationRequests(ctx, transport.MetaFromGRPC(ctx), modelPaginatedRequest(req.GetPagination()))
+ res, _, err := h.Service.VerificationRequests(ctx, transport.MetaFromGRPC(ctx), modelPaginationRequest(req.GetPagination()))
if err != nil {
return nil, err
}
@@ -239,7 +239,7 @@ func (h *AdminHandler) GetWebhook(ctx context.Context, req *authorizerv1.GetWebh
// Webhooks delegates to service.Webhooks and projects the paginated result.
// Requires super-admin auth.
func (h *AdminHandler) Webhooks(ctx context.Context, req *authorizerv1.WebhooksRequest) (*authorizerv1.WebhooksResponse, error) {
- res, _, err := h.Service.Webhooks(ctx, transport.MetaFromGRPC(ctx), modelPaginatedRequest(req.GetPagination()))
+ res, _, err := h.Service.Webhooks(ctx, transport.MetaFromGRPC(ctx), modelPaginationRequest(req.GetPagination()))
if err != nil {
return nil, err
}
@@ -320,7 +320,7 @@ func (h *AdminHandler) DeleteEmailTemplate(ctx context.Context, req *authorizerv
// EmailTemplates delegates to service.EmailTemplates and projects the paginated
// result. Requires super-admin auth.
func (h *AdminHandler) EmailTemplates(ctx context.Context, req *authorizerv1.EmailTemplatesRequest) (*authorizerv1.EmailTemplatesResponse, error) {
- res, _, err := h.Service.EmailTemplates(ctx, transport.MetaFromGRPC(ctx), modelPaginatedRequest(req.GetPagination()))
+ res, _, err := h.Service.EmailTemplates(ctx, transport.MetaFromGRPC(ctx), modelPaginationRequest(req.GetPagination()))
if err != nil {
return nil, err
}
@@ -524,7 +524,7 @@ func (h *AdminHandler) GetClient(ctx context.Context, req *authorizerv1.GetClien
// paginated result. Client secrets are never surfaced. Requires super-admin auth.
func (h *AdminHandler) Clients(ctx context.Context, req *authorizerv1.ClientsRequest) (*authorizerv1.ClientsResponse, error) {
res, _, err := h.Service.Clients(ctx, transport.MetaFromGRPC(ctx), &model.ListClientsRequest{
- Pagination: modelPaginatedRequest(req.GetPagination()),
+ Pagination: modelPaginationRequest(req.GetPagination()),
})
if err != nil {
return nil, err
@@ -604,7 +604,7 @@ func (h *AdminHandler) GetTrustedIssuer(ctx context.Context, req *authorizerv1.G
func (h *AdminHandler) TrustedIssuers(ctx context.Context, req *authorizerv1.TrustedIssuersRequest) (*authorizerv1.TrustedIssuersResponse, error) {
res, _, err := h.Service.TrustedIssuers(ctx, transport.MetaFromGRPC(ctx), &model.ListTrustedIssuersRequest{
ServiceAccountID: req.ServiceAccountId,
- Pagination: modelPaginatedRequest(req.GetPagination()),
+ Pagination: modelPaginationRequest(req.GetPagination()),
})
if err != nil {
return nil, err
@@ -682,7 +682,7 @@ func (h *AdminHandler) GetSamlServiceProvider(ctx context.Context, req *authoriz
func (h *AdminHandler) ListSamlServiceProviders(ctx context.Context, req *authorizerv1.ListSamlServiceProvidersRequest) (*authorizerv1.ListSamlServiceProvidersResponse, error) {
res, _, err := h.Service.ListSAMLServiceProviders(ctx, transport.MetaFromGRPC(ctx), &model.ListSAMLServiceProvidersRequest{
OrgID: req.GetOrgId(),
- Pagination: modelPaginatedRequest(req.GetPagination()),
+ Pagination: modelPaginationRequest(req.GetPagination()),
})
if err != nil {
return nil, err
diff --git a/internal/grpcsrv/handlers/admin_project.go b/internal/grpcsrv/handlers/admin_project.go
index 3cbd67e7..62095e08 100644
--- a/internal/grpcsrv/handlers/admin_project.go
+++ b/internal/grpcsrv/handlers/admin_project.go
@@ -26,30 +26,10 @@ func projectAdminMeta(m *model.AdminMeta) *authorizerv1.AdminMeta {
}
}
-// modelPaginatedRequest converts the proto PaginationRequest carried by admin
-// list RPCs into the GraphQL model.PaginatedRequest consumed by the service
-// layer. A nil proto pagination yields a nil request so service.GetPagination
-// applies its defaults (page 1, default limit).
-func modelPaginatedRequest(in *authorizerv1.PaginationRequest) *model.PaginatedRequest {
- if in == nil {
- return nil
- }
- out := &model.PaginatedRequest{Pagination: &model.PaginationRequest{}}
- if in.Page != 0 {
- page := in.Page
- out.Pagination.Page = &page
- }
- if in.Limit != 0 {
- limit := in.Limit
- out.Pagination.Limit = &limit
- }
- return out
-}
-
-// modelPaginationRequest converts the proto PaginationRequest into the GraphQL
-// model.PaginationRequest (the inner pagination shape carried by
-// ListWebhookLogRequest, as opposed to the PaginatedRequest wrapper). A nil
-// proto pagination yields nil so service.GetPagination applies its defaults.
+// modelPaginationRequest converts the proto PaginationRequest carried by admin
+// list RPCs into the GraphQL model.PaginationRequest consumed by the service
+// layer. A nil proto pagination yields nil so service.GetPagination applies
+// its defaults (page 1, default limit).
func modelPaginationRequest(in *authorizerv1.PaginationRequest) *model.PaginationRequest {
if in == nil {
return nil
diff --git a/internal/integration_tests/email_templates_test.go b/internal/integration_tests/email_templates_test.go
index 35d3f6fd..78f44291 100644
--- a/internal/integration_tests/email_templates_test.go
+++ b/internal/integration_tests/email_templates_test.go
@@ -19,7 +19,7 @@ func TestEmailTemplates(t *testing.T) {
t.Run("should fail without admin auth", func(t *testing.T) {
req.Header.Set("Cookie", "")
- res, err := ts.GraphQLProvider.EmailTemplates(ctx, &model.PaginatedRequest{})
+ res, err := ts.GraphQLProvider.EmailTemplates(ctx, &model.PaginationRequest{})
assert.Error(t, err)
assert.Nil(t, res)
})
@@ -29,7 +29,7 @@ func TestEmailTemplates(t *testing.T) {
require.NoError(t, err)
req.Header.Set("Cookie", fmt.Sprintf("%s=%s", constants.AdminCookieName, h))
- res, err := ts.GraphQLProvider.EmailTemplates(ctx, &model.PaginatedRequest{})
+ res, err := ts.GraphQLProvider.EmailTemplates(ctx, &model.PaginationRequest{})
require.NoError(t, err)
assert.NotNil(t, res)
assert.NotNil(t, res.Pagination)
@@ -40,7 +40,7 @@ func TestEmailTemplates(t *testing.T) {
require.NoError(t, err)
req.Header.Set("Cookie", fmt.Sprintf("%s=%s", constants.AdminCookieName, h))
- res, err := ts.GraphQLProvider.EmailTemplates(ctx, &model.PaginatedRequest{})
+ res, err := ts.GraphQLProvider.EmailTemplates(ctx, &model.PaginationRequest{})
require.NoError(t, err)
assert.NotNil(t, res)
for i, tmpl := range res.EmailTemplates {
diff --git a/internal/integration_tests/verification_requests_test.go b/internal/integration_tests/verification_requests_test.go
index 4d3912d1..1ced4c10 100644
--- a/internal/integration_tests/verification_requests_test.go
+++ b/internal/integration_tests/verification_requests_test.go
@@ -27,7 +27,7 @@ func TestVerificationRequests(t *testing.T) {
t.Run("should fail without admin auth", func(t *testing.T) {
req.Header.Set("Cookie", "")
- res, err := ts.GraphQLProvider.VerificationRequests(ctx, &model.PaginatedRequest{})
+ res, err := ts.GraphQLProvider.VerificationRequests(ctx, &model.PaginationRequest{})
assert.Error(t, err)
assert.Nil(t, res)
})
@@ -37,7 +37,7 @@ func TestVerificationRequests(t *testing.T) {
require.NoError(t, err)
req.Header.Set("Cookie", fmt.Sprintf("%s=%s", constants.AdminCookieName, h))
- res, err := ts.GraphQLProvider.VerificationRequests(ctx, &model.PaginatedRequest{})
+ res, err := ts.GraphQLProvider.VerificationRequests(ctx, &model.PaginationRequest{})
require.NoError(t, err)
assert.NotNil(t, res)
assert.NotNil(t, res.Pagination)
diff --git a/internal/integration_tests/webhooks_test.go b/internal/integration_tests/webhooks_test.go
index 92d3a60f..2120a4f4 100644
--- a/internal/integration_tests/webhooks_test.go
+++ b/internal/integration_tests/webhooks_test.go
@@ -21,7 +21,7 @@ func TestWebhooks(t *testing.T) {
t.Run("should fail list webhooks without admin auth", func(t *testing.T) {
req.Header.Set("Cookie", "")
- res, err := ts.GraphQLProvider.Webhooks(ctx, &model.PaginatedRequest{})
+ res, err := ts.GraphQLProvider.Webhooks(ctx, &model.PaginationRequest{})
assert.Error(t, err)
assert.Nil(t, res)
})
@@ -31,7 +31,7 @@ func TestWebhooks(t *testing.T) {
require.NoError(t, err)
req.Header.Set("Cookie", fmt.Sprintf("%s=%s", constants.AdminCookieName, h))
- res, err := ts.GraphQLProvider.Webhooks(ctx, &model.PaginatedRequest{})
+ res, err := ts.GraphQLProvider.Webhooks(ctx, &model.PaginationRequest{})
require.NoError(t, err)
assert.NotNil(t, res)
assert.NotNil(t, res.Pagination)
@@ -53,7 +53,7 @@ func TestWebhooks(t *testing.T) {
assert.NotNil(t, addRes)
// List webhooks to get the ID
- webhooks, err := ts.GraphQLProvider.Webhooks(ctx, &model.PaginatedRequest{})
+ webhooks, err := ts.GraphQLProvider.Webhooks(ctx, &model.PaginationRequest{})
require.NoError(t, err)
assert.GreaterOrEqual(t, len(webhooks.Webhooks), 1)
diff --git a/internal/service/admin_audit.go b/internal/service/admin_audit.go
index 3d451fd7..0016ee04 100644
--- a/internal/service/admin_audit.go
+++ b/internal/service/admin_audit.go
@@ -31,9 +31,7 @@ func (p *provider) AuditLogs(ctx context.Context, meta RequestMetadata, params *
filter := make(map[string]interface{})
if params != nil {
- pagination = utils.GetPagination(&model.PaginatedRequest{
- Pagination: params.Pagination,
- })
+ pagination = utils.GetPagination(params.Pagination)
if refs.StringValue(params.Action) != "" {
filter[auditFilterAction] = refs.StringValue(params.Action)
}
diff --git a/internal/service/admin_clients.go b/internal/service/admin_clients.go
index e05b42f6..5c5906fa 100644
--- a/internal/service/admin_clients.go
+++ b/internal/service/admin_clients.go
@@ -290,7 +290,7 @@ func (p *provider) Clients(ctx context.Context, meta RequestMetadata, params *mo
return nil, nil, err
}
- var paginatedReq *model.PaginatedRequest
+ var paginatedReq *model.PaginationRequest
if params != nil {
paginatedReq = params.Pagination
}
diff --git a/internal/service/admin_email_templates.go b/internal/service/admin_email_templates.go
index 0c2dd310..b789852d 100644
--- a/internal/service/admin_email_templates.go
+++ b/internal/service/admin_email_templates.go
@@ -189,7 +189,7 @@ func (p *provider) DeleteEmailTemplate(ctx context.Context, meta RequestMetadata
// EmailTemplates returns a paginated list of email templates. Requires
// super-admin auth. Logic migrated from internal/graphql/email_templates.go.
-func (p *provider) EmailTemplates(ctx context.Context, meta RequestMetadata, params *model.PaginatedRequest) (*model.EmailTemplates, *ResponseSideEffects, error) {
+func (p *provider) EmailTemplates(ctx context.Context, meta RequestMetadata, params *model.PaginationRequest) (*model.EmailTemplates, *ResponseSideEffects, error) {
log := p.Log.With().Str("func", "EmailTemplates").Logger()
if err := p.requireSuperAdmin(ctx, meta); err != nil {
return nil, nil, err
diff --git a/internal/service/admin_organizations.go b/internal/service/admin_organizations.go
index a1c8c6ee..a40df53d 100644
--- a/internal/service/admin_organizations.go
+++ b/internal/service/admin_organizations.go
@@ -216,7 +216,7 @@ func (p *provider) Organizations(ctx context.Context, meta RequestMetadata, para
return nil, nil, err
}
- var paginatedReq *model.PaginatedRequest
+ var paginatedReq *model.PaginationRequest
if params != nil {
paginatedReq = params.Pagination
}
@@ -415,12 +415,7 @@ func (p *provider) UserOrganizations(ctx context.Context, meta RequestMetadata,
return nil, nil, InvalidArgument("user_id is required")
}
- var pagination *model.Pagination
- if params.Pagination != nil {
- pagination = utils.GetPagination(&model.PaginatedRequest{Pagination: params.Pagination})
- } else {
- pagination = utils.GetPagination(nil)
- }
+ pagination := utils.GetPagination(params.Pagination)
memberships, pagination, err := p.StorageProvider.ListOrgMembershipsByUser(ctx, params.UserID, pagination)
if err != nil {
diff --git a/internal/service/admin_provider.go b/internal/service/admin_provider.go
index aa76f71b..496d1f83 100644
--- a/internal/service/admin_provider.go
+++ b/internal/service/admin_provider.go
@@ -35,7 +35,7 @@ type AdminProvider interface {
UserOrganizations(ctx context.Context, meta RequestMetadata, params *model.UserOrganizationsRequest) (*model.UserOrganizations, *ResponseSideEffects, error)
UpdateUser(ctx context.Context, meta RequestMetadata, params *model.UpdateUserRequest) (*model.User, *ResponseSideEffects, error)
DeleteUser(ctx context.Context, meta RequestMetadata, params *model.DeleteUserRequest) (*model.Response, *ResponseSideEffects, error)
- VerificationRequests(ctx context.Context, meta RequestMetadata, params *model.PaginatedRequest) (*model.VerificationRequests, *ResponseSideEffects, error)
+ VerificationRequests(ctx context.Context, meta RequestMetadata, params *model.PaginationRequest) (*model.VerificationRequests, *ResponseSideEffects, error)
// Access.
RevokeAccess(ctx context.Context, meta RequestMetadata, params *model.UpdateAccessRequest) (*model.Response, *ResponseSideEffects, error)
@@ -47,7 +47,7 @@ type AdminProvider interface {
UpdateWebhook(ctx context.Context, meta RequestMetadata, params *model.UpdateWebhookRequest) (*model.Response, *ResponseSideEffects, error)
DeleteWebhook(ctx context.Context, meta RequestMetadata, params *model.WebhookRequest) (*model.Response, *ResponseSideEffects, error)
Webhook(ctx context.Context, meta RequestMetadata, params *model.WebhookRequest) (*model.Webhook, *ResponseSideEffects, error)
- Webhooks(ctx context.Context, meta RequestMetadata, params *model.PaginatedRequest) (*model.Webhooks, *ResponseSideEffects, error)
+ Webhooks(ctx context.Context, meta RequestMetadata, params *model.PaginationRequest) (*model.Webhooks, *ResponseSideEffects, error)
WebhookLogs(ctx context.Context, meta RequestMetadata, params *model.ListWebhookLogRequest) (*model.WebhookLogs, *ResponseSideEffects, error)
TestEndpoint(ctx context.Context, meta RequestMetadata, params *model.TestEndpointRequest) (*model.TestEndpointResponse, *ResponseSideEffects, error)
@@ -115,7 +115,7 @@ type AdminProvider interface {
AddEmailTemplate(ctx context.Context, meta RequestMetadata, params *model.AddEmailTemplateRequest) (*model.Response, *ResponseSideEffects, error)
UpdateEmailTemplate(ctx context.Context, meta RequestMetadata, params *model.UpdateEmailTemplateRequest) (*model.Response, *ResponseSideEffects, error)
DeleteEmailTemplate(ctx context.Context, meta RequestMetadata, params *model.DeleteEmailTemplateRequest) (*model.Response, *ResponseSideEffects, error)
- EmailTemplates(ctx context.Context, meta RequestMetadata, params *model.PaginatedRequest) (*model.EmailTemplates, *ResponseSideEffects, error)
+ EmailTemplates(ctx context.Context, meta RequestMetadata, params *model.PaginationRequest) (*model.EmailTemplates, *ResponseSideEffects, error)
// Audit.
AuditLogs(ctx context.Context, meta RequestMetadata, params *model.ListAuditLogRequest) (*model.AuditLogs, *ResponseSideEffects, error)
diff --git a/internal/service/admin_trusted_issuers.go b/internal/service/admin_trusted_issuers.go
index 76fbb38f..2b2ed3a2 100644
--- a/internal/service/admin_trusted_issuers.go
+++ b/internal/service/admin_trusted_issuers.go
@@ -290,7 +290,7 @@ func (p *provider) TrustedIssuers(ctx context.Context, meta RequestMetadata, par
return nil, nil, err
}
- var paginatedReq *model.PaginatedRequest
+ var paginatedReq *model.PaginationRequest
var serviceAccountID string
if params != nil {
paginatedReq = params.Pagination
diff --git a/internal/service/admin_users.go b/internal/service/admin_users.go
index c024fe13..3bf8be37 100644
--- a/internal/service/admin_users.go
+++ b/internal/service/admin_users.go
@@ -48,7 +48,7 @@ func (p *provider) Users(ctx context.Context, meta RequestMetadata, params *mode
var query string
var pagination *model.Pagination
if params != nil {
- pagination = utils.GetPagination(&model.PaginatedRequest{Pagination: params.Pagination})
+ pagination = utils.GetPagination(params.Pagination)
query = refs.StringValue(params.Query)
} else {
pagination = utils.GetPagination(nil)
@@ -448,7 +448,7 @@ func (p *provider) DeleteUser(ctx context.Context, meta RequestMetadata, params
// VerificationRequests returns a paginated list of pending verification
// requests. Requires super-admin auth. Logic migrated from
// internal/graphql/verification_requests.go.
-func (p *provider) VerificationRequests(ctx context.Context, meta RequestMetadata, params *model.PaginatedRequest) (*model.VerificationRequests, *ResponseSideEffects, error) {
+func (p *provider) VerificationRequests(ctx context.Context, meta RequestMetadata, params *model.PaginationRequest) (*model.VerificationRequests, *ResponseSideEffects, error) {
log := p.Log.With().Str("func", "VerificationRequests").Logger()
if err := p.requireSuperAdmin(ctx, meta); err != nil {
return nil, nil, err
diff --git a/internal/service/admin_webhooks.go b/internal/service/admin_webhooks.go
index 0f93c6f4..881020a6 100644
--- a/internal/service/admin_webhooks.go
+++ b/internal/service/admin_webhooks.go
@@ -237,7 +237,7 @@ func (p *provider) Webhook(ctx context.Context, meta RequestMetadata, params *mo
// Webhooks returns a paginated list of webhooks. Requires super-admin auth.
// Logic migrated from internal/graphql/webhooks.go.
-func (p *provider) Webhooks(ctx context.Context, meta RequestMetadata, params *model.PaginatedRequest) (*model.Webhooks, *ResponseSideEffects, error) {
+func (p *provider) Webhooks(ctx context.Context, meta RequestMetadata, params *model.PaginationRequest) (*model.Webhooks, *ResponseSideEffects, error) {
log := p.Log.With().Str("func", "Webhooks").Logger()
if err := p.requireSuperAdmin(ctx, meta); err != nil {
return nil, nil, err
@@ -271,9 +271,7 @@ func (p *provider) WebhookLogs(ctx context.Context, meta RequestMetadata, params
var pagination *model.Pagination
var webhookID string
if params != nil {
- pagination = utils.GetPagination(&model.PaginatedRequest{
- Pagination: params.Pagination,
- })
+ pagination = utils.GetPagination(params.Pagination)
webhookID = refs.StringValue(params.WebhookID)
} else {
pagination = utils.GetPagination(nil)
diff --git a/internal/utils/pagination.go b/internal/utils/pagination.go
index 35aba6b0..a91c2136 100644
--- a/internal/utils/pagination.go
+++ b/internal/utils/pagination.go
@@ -5,18 +5,18 @@ import (
"github.com/authorizerdev/authorizer/internal/graph/model"
)
-// GetPagination helps getting pagination data from paginated input
+// GetPagination helps getting pagination data from a pagination input
// also returns default limit and offset if pagination data is not present
-func GetPagination(paginatedInput *model.PaginatedRequest) *model.Pagination {
+func GetPagination(pagination *model.PaginationRequest) *model.Pagination {
limit := int64(constants.DefaultLimit)
page := int64(1)
- if paginatedInput != nil && paginatedInput.Pagination != nil {
- if paginatedInput.Pagination.Limit != nil {
- limit = *paginatedInput.Pagination.Limit
+ if pagination != nil {
+ if pagination.Limit != nil {
+ limit = *pagination.Limit
}
- if paginatedInput.Pagination.Page != nil {
- page = *paginatedInput.Pagination.Page
+ if pagination.Page != nil {
+ page = *pagination.Page
}
}
diff --git a/internal/utils/pagination_test.go b/internal/utils/pagination_test.go
new file mode 100644
index 00000000..159384c2
--- /dev/null
+++ b/internal/utils/pagination_test.go
@@ -0,0 +1,35 @@
+package utils
+
+import (
+ "testing"
+
+ "github.com/authorizerdev/authorizer/internal/constants"
+ "github.com/authorizerdev/authorizer/internal/graph/model"
+)
+
+func TestGetPagination(t *testing.T) {
+ limit10 := int64(10)
+ page2 := int64(2)
+
+ cases := []struct {
+ name string
+ pagination *model.PaginationRequest
+ wantLimit int64
+ wantPage int64
+ wantOffset int64
+ }{
+ {"nil pagination uses defaults", nil, int64(constants.DefaultLimit), 1, 0},
+ {"empty struct uses defaults", &model.PaginationRequest{}, int64(constants.DefaultLimit), 1, 0},
+ {"explicit limit and page", &model.PaginationRequest{Limit: &limit10, Page: &page2}, 10, 2, 10},
+ {"limit only, default page", &model.PaginationRequest{Limit: &limit10}, 10, 1, 0},
+ }
+ for _, c := range cases {
+ t.Run(c.name, func(t *testing.T) {
+ got := GetPagination(c.pagination)
+ if got.Limit != c.wantLimit || got.Page != c.wantPage || got.Offset != c.wantOffset {
+ t.Errorf("GetPagination() = {Limit:%d Page:%d Offset:%d}, want {Limit:%d Page:%d Offset:%d}",
+ got.Limit, got.Page, got.Offset, c.wantLimit, c.wantPage, c.wantOffset)
+ }
+ })
+ }
+}
diff --git a/web/dashboard/src/components/OrgDomains.test.tsx b/web/dashboard/src/components/OrgDomains.test.tsx
index 95b1fbb2..c9fd0ba8 100644
--- a/web/dashboard/src/components/OrgDomains.test.tsx
+++ b/web/dashboard/src/components/OrgDomains.test.tsx
@@ -86,6 +86,30 @@ describe('OrgDomains', () => {
expect(await screen.findByText('acme.com')).toBeTruthy();
});
+ // REGRESSION: ListOrgDomainsRequest.pagination is PaginationRequest
+ // directly (internal/graph/schema.graphqls) - fetchDomains must send
+ // `pagination: { limit: 100 }` (single-nested), not wrapped in an extra
+ // `pagination:` layer. An earlier version of the schema had this field
+ // typed as a PaginatedRequest wrapper (requiring a double-nested call),
+ // which was itself a schema inconsistency later removed in favor of the
+ // single-level shape every other list endpoint already used. The mock
+ // client here doesn't validate variable shape against a real schema, so
+ // a wrong shape here would be invisible to every other test in this file
+ // - assert the exact shape directly instead.
+ it('requests domains with the pagination shape the schema requires', async () => {
+ render();
+ await screen.findByText('No verified domains yet.');
+ expect(mockClient.query).toHaveBeenCalledWith(
+ expect.anything(),
+ expect.objectContaining({
+ params: {
+ org_id: 'org1',
+ pagination: { limit: 100 },
+ },
+ }),
+ );
+ });
+
it('runs the DNS challenge flow: request → shows TXT → verify → verified', async () => {
mockClient.mutation.mockImplementation((doc: unknown) => {
if (doc === RequestOrgDomain) {
diff --git a/web/dashboard/src/components/OrgDomains.tsx b/web/dashboard/src/components/OrgDomains.tsx
index 16c64e22..2bc23dce 100644
--- a/web/dashboard/src/components/OrgDomains.tsx
+++ b/web/dashboard/src/components/OrgDomains.tsx
@@ -113,6 +113,13 @@ const OrgDomains = ({ orgId, orgSlug }: OrgDomainsProps) => {
params: { org_id: orgId, pagination: { limit: 100 } },
})
.toPromise();
+ if (res.error) {
+ toast.error(
+ capitalizeFirstLetter(
+ getGraphQLErrorMessage(res.error, 'Failed to load verified domains'),
+ ),
+ );
+ }
setDomains(res.data?._org_domains?.org_domains || []);
setDomainsLoading(false);
};
diff --git a/web/dashboard/src/graphql/queries/index.ts b/web/dashboard/src/graphql/queries/index.ts
index a2678f98..4bd724d7 100644
--- a/web/dashboard/src/graphql/queries/index.ts
+++ b/web/dashboard/src/graphql/queries/index.ts
@@ -49,7 +49,7 @@ export const UserDetailsQuery = `
`;
export const WebhooksDataQuery = `
- query getWebhooksData($params: PaginatedRequest!) {
+ query getWebhooksData($params: PaginationRequest!) {
_webhooks(params: $params){
webhooks{
id
@@ -70,7 +70,7 @@ export const WebhooksDataQuery = `
`;
export const EmailTemplatesQuery = `
- query getEmailTemplates($params: PaginatedRequest!) {
+ query getEmailTemplates($params: PaginationRequest!) {
_email_templates(params: $params) {
email_templates {
id
diff --git a/web/dashboard/src/pages/Clients.tsx b/web/dashboard/src/pages/Clients.tsx
index bc7faab3..a572ce29 100644
--- a/web/dashboard/src/pages/Clients.tsx
+++ b/web/dashboard/src/pages/Clients.tsx
@@ -73,10 +73,8 @@ const Clients = () => {
.query(ClientsQuery, {
params: {
pagination: {
- pagination: {
- limit: paginationProps.limit,
- page: paginationProps.page,
- },
+ limit: paginationProps.limit,
+ page: paginationProps.page,
},
},
})
diff --git a/web/dashboard/src/pages/EmailTemplates.tsx b/web/dashboard/src/pages/EmailTemplates.tsx
index dd5cf0f3..4fa1f6ab 100644
--- a/web/dashboard/src/pages/EmailTemplates.tsx
+++ b/web/dashboard/src/pages/EmailTemplates.tsx
@@ -73,10 +73,8 @@ const EmailTemplates = () => {
const res = await client
.query(EmailTemplatesQuery, {
params: {
- pagination: {
- limit: paginationProps.limit,
- page: paginationProps.page,
- },
+ limit: paginationProps.limit,
+ page: paginationProps.page,
},
})
.toPromise();
diff --git a/web/dashboard/src/pages/OrganizationDetail.tsx b/web/dashboard/src/pages/OrganizationDetail.tsx
index 344061ea..ad231dab 100644
--- a/web/dashboard/src/pages/OrganizationDetail.tsx
+++ b/web/dashboard/src/pages/OrganizationDetail.tsx
@@ -186,9 +186,7 @@ const OrganizationDetail = () => {
}>(OrgMembersQuery, {
params: {
org_id: id,
- pagination: {
- pagination: { limit: MEMBERS_PAGE_LIMIT, page },
- },
+ pagination: { limit: MEMBERS_PAGE_LIMIT, page },
},
})
.toPromise();
diff --git a/web/dashboard/src/pages/Organizations.tsx b/web/dashboard/src/pages/Organizations.tsx
index dbd09779..81820722 100644
--- a/web/dashboard/src/pages/Organizations.tsx
+++ b/web/dashboard/src/pages/Organizations.tsx
@@ -70,10 +70,8 @@ const Organizations = () => {
.query(OrganizationsQuery, {
params: {
pagination: {
- pagination: {
- limit: paginationProps.limit,
- page: paginationProps.page,
- },
+ limit: paginationProps.limit,
+ page: paginationProps.page,
},
},
})
diff --git a/web/dashboard/src/pages/TrustedIssuers.tsx b/web/dashboard/src/pages/TrustedIssuers.tsx
index 99a98e0f..d63224d9 100644
--- a/web/dashboard/src/pages/TrustedIssuers.tsx
+++ b/web/dashboard/src/pages/TrustedIssuers.tsx
@@ -73,10 +73,8 @@ const TrustedIssuers = () => {
.query(TrustedIssuersQuery, {
params: {
pagination: {
- pagination: {
- limit: paginationProps.limit,
- page: paginationProps.page,
- },
+ limit: paginationProps.limit,
+ page: paginationProps.page,
},
},
})
diff --git a/web/dashboard/src/pages/Webhooks.tsx b/web/dashboard/src/pages/Webhooks.tsx
index cfd9645c..52fb3b56 100644
--- a/web/dashboard/src/pages/Webhooks.tsx
+++ b/web/dashboard/src/pages/Webhooks.tsx
@@ -77,10 +77,8 @@ const Webhooks = () => {
const res = await client
.query(WebhooksDataQuery, {
params: {
- pagination: {
- limit: paginationProps.limit,
- page: paginationProps.page,
- },
+ limit: paginationProps.limit,
+ page: paginationProps.page,
},
})
.toPromise();