fixup! Merge branch 'main' into org_api

This commit is contained in:
Iraq Jaber
2025-05-07 13:36:50 +02:00
parent 7383c24931
commit 25d4f1af78
8 changed files with 117 additions and 84 deletions

View File

@@ -463,7 +463,7 @@ func startAPIs(
if err := apis.RegisterService(ctx, settings_v2beta.CreateServer(commands, queries)); err != nil {
return nil, err
}
if err := apis.RegisterService(ctx, org_v2beta.CreateServer(commands, queries, permissionCheck)); err != nil {
if err := apis.RegisterService(ctx, org_v2beta.CreateServer(config.SystemDefaults, commands, queries, permissionCheck)); err != nil {
return nil, err
}
if err := apis.RegisterService(ctx, feature_v2beta.CreateServer(commands, queries)); err != nil {

View File

@@ -901,6 +901,7 @@ func (s *Server) ListHumanLinkedIDPs(ctx context.Context, req *mgmt_pb.ListHuman
Details: obj_grpc.ToListDetails(res.Count, res.Sequence, res.LastRun),
}, nil
}
func (s *Server) RemoveHumanLinkedIDP(ctx context.Context, req *mgmt_pb.RemoveHumanLinkedIDPRequest) (*mgmt_pb.RemoveHumanLinkedIDPResponse, error) {
objectDetails, err := s.command.RemoveUserIDPLink(ctx, RemoveHumanLinkedIDPRequestToDomain(ctx, req))
if err != nil {
@@ -947,18 +948,21 @@ func cascadingIAMMembership(membership *query.IAMMembership) *command.CascadingI
}
return &command.CascadingIAMMembership{IAMID: membership.IAMID}
}
func cascadingOrgMembership(membership *query.OrgMembership) *command.CascadingOrgMembership {
if membership == nil {
return nil
}
return &command.CascadingOrgMembership{OrgID: membership.OrgID}
}
func cascadingProjectMembership(membership *query.ProjectMembership) *command.CascadingProjectMembership {
if membership == nil {
return nil
}
return &command.CascadingProjectMembership{ProjectID: membership.ProjectID}
}
func cascadingProjectGrantMembership(membership *query.ProjectGrantMembership) *command.CascadingProjectGrantMembership {
if membership == nil {
return nil

View File

@@ -6,6 +6,7 @@ import (
metadata "github.com/zitadel/zitadel/internal/api/grpc/metadata/v2beta"
v2beta_object "github.com/zitadel/zitadel/internal/api/grpc/object/v2beta"
"github.com/zitadel/zitadel/internal/command"
"github.com/zitadel/zitadel/internal/config/systemdefaults"
"github.com/zitadel/zitadel/internal/domain"
"github.com/zitadel/zitadel/internal/eventstore/v1/models"
"github.com/zitadel/zitadel/internal/query"
@@ -14,6 +15,7 @@ import (
"google.golang.org/protobuf/types/known/timestamppb"
// TODO fix below
filter "github.com/zitadel/zitadel/internal/api/grpc/filter/v2beta"
org "github.com/zitadel/zitadel/pkg/grpc/org/v2beta"
v2beta_org "github.com/zitadel/zitadel/pkg/grpc/org/v2beta"
)
@@ -21,9 +23,12 @@ import (
// NOTE: most of this code is copied from `internal/api/grpc/admin/*`, as we will eventually axe the previous versons of the API,
// we will have code duplication until then
func listOrgRequestToModel(request *v2beta_org.ListOrganizationsRequest) (*query.OrgSearchQueries, error) {
offset, limit, asc := v2beta_object.ListQueryToModel(request.Query)
queries, err := OrgQueriesToModel(request.Queries)
func listOrgRequestToModel(systemDefaults systemdefaults.SystemDefaults, request *v2beta_org.ListOrganizationsRequest) (*query.OrgSearchQueries, error) {
offset, limit, asc, err := filter.PaginationPbToQuery(systemDefaults, request.Pagination)
if err != nil {
return nil, err
}
queries, err := OrgQueriesToModel(request.Filter)
if err != nil {
return nil, err
}
@@ -94,7 +99,7 @@ func OrgViewsToPb(orgs []*query.Org) []*v2beta_org.Organization {
return o
}
func OrgQueriesToModel(queries []*v2beta_org.OrgQuery) (_ []query.SearchQuery, err error) {
func OrgQueriesToModel(queries []*v2beta_org.OrgQueryFilter) (_ []query.SearchQuery, err error) {
q := make([]query.SearchQuery, len(queries))
for i, query := range queries {
q[i], err = OrgQueryToModel(query)
@@ -105,15 +110,15 @@ func OrgQueriesToModel(queries []*v2beta_org.OrgQuery) (_ []query.SearchQuery, e
return q, nil
}
func OrgQueryToModel(apiQuery *v2beta_org.OrgQuery) (query.SearchQuery, error) {
func OrgQueryToModel(apiQuery *v2beta_org.OrgQueryFilter) (query.SearchQuery, error) {
switch q := apiQuery.Query.(type) {
case *v2beta_org.OrgQuery_DomainQuery:
case *v2beta_org.OrgQueryFilter_DomainQuery:
return query.NewOrgVerifiedDomainSearchQuery(v2beta_object.TextMethodToQuery(q.DomainQuery.Method), q.DomainQuery.Domain)
case *v2beta_org.OrgQuery_NameQuery:
case *v2beta_org.OrgQueryFilter_NameQuery:
return query.NewOrgNameSearchQuery(v2beta_object.TextMethodToQuery(q.NameQuery.Method), q.NameQuery.Name)
case *v2beta_org.OrgQuery_StateQuery:
case *v2beta_org.OrgQueryFilter_StateQuery:
return query.NewOrgStateSearchQuery(OrgStateToDomain(q.StateQuery.State))
case *v2beta_org.OrgQuery_IdQuery:
case *v2beta_org.OrgQueryFilter_IdQuery:
return query.NewOrgIDSearchQuery(q.IdQuery.Id)
default:
return nil, zerrors.ThrowInvalidArgument(nil, "ORG-vR9nC", "List.Query.Invalid")
@@ -164,10 +169,9 @@ func OrgViewToPb(org *query.Org) *v2beta_org.Organization {
}
}
func ListOrgDomainsRequestToModel(req *org.ListOrganizationDomainsRequest) (*query.OrgDomainSearchQueries, error) {
offset, limit, asc := ListQueryToModel(req.Query)
// queries, err := org_grpc.DomainQueriesToModel(req.Queries)
queries, err := DomainQueriesToModel(req.Queries)
func ListOrgDomainsRequestToModel(systemDefaults systemdefaults.SystemDefaults, request *org.ListOrganizationDomainsRequest) (*query.OrgDomainSearchQueries, error) {
offset, limit, asc, err := filter.PaginationPbToQuery(systemDefaults, request.Pagination)
queries, err := DomainQueriesToModel(request.Filter)
if err != nil {
return nil, err
}
@@ -249,9 +253,9 @@ func BulkSetOrgMetadataToDomain(req *v2beta_org.SetOrganizationMetadataRequest)
return metadata
}
func ListOrgMetadataToDomain(request *v2beta_org.ListOrganizationMetadataRequest) (*query.OrgMetadataSearchQueries, error) {
offset, limit, asc := v2beta_object.ListQueryToModel(request.Query)
queries, err := metadata.OrgMetadataQueriesToQuery(request.Queries)
func ListOrgMetadataToDomain(systemDefaults systemdefaults.SystemDefaults, request *v2beta_org.ListOrganizationMetadataRequest) (*query.OrgMetadataSearchQueries, error) {
offset, limit, asc, err := filter.PaginationPbToQuery(systemDefaults, request.Pagination)
queries, err := metadata.OrgMetadataQueriesToQuery(request.Filter)
if err != nil {
return nil, err
}

View File

@@ -276,7 +276,7 @@ func TestServer_ListOrganization(t *testing.T) {
tests := []struct {
name string
ctx context.Context
query []*v2beta_org.OrgQuery
query []*v2beta_org.OrgQueryFilter
want []*v2beta_org.Organization
wantErr bool
}{
@@ -301,9 +301,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations by id happy path",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQuery{
query: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_IdQuery{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgs[1].Id,
},
@@ -320,9 +320,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations by state active",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQuery{
query: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_StateQuery{
Query: &v2beta_org.OrgQueryFilter_StateQuery{
StateQuery: &v2beta_org.OrgStateQuery{
State: v2beta_org.OrgState_ORG_STATE_ACTIVE,
},
@@ -343,9 +343,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations by state inactive",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQuery{
query: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_StateQuery{
Query: &v2beta_org.OrgQueryFilter_StateQuery{
StateQuery: &v2beta_org.OrgStateQuery{
State: v2beta_org.OrgState_ORG_STATE_INACTIVE,
},
@@ -362,9 +362,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations by id bad id",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQuery{
query: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_IdQuery{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: "bad id",
},
@@ -375,9 +375,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations specify org name equals",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQuery{
query: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_NameQuery{
Query: &v2beta_org.OrgQueryFilter_NameQuery{
NameQuery: &v2beta_org.OrgNameQuery{
Name: orgsName[1],
Method: v2beta_object.TextQueryMethod_TEXT_QUERY_METHOD_EQUALS,
@@ -395,9 +395,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations specify org name contains",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQuery{
query: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_NameQuery{
Query: &v2beta_org.OrgQueryFilter_NameQuery{
NameQuery: &v2beta_org.OrgNameQuery{
Name: func() string {
return orgsName[1][1 : len(orgsName[1])-2]
@@ -417,9 +417,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations specify org name contains IGNORE CASE",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQuery{
query: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_NameQuery{
Query: &v2beta_org.OrgQueryFilter_NameQuery{
NameQuery: &v2beta_org.OrgNameQuery{
Name: func() string {
return strings.ToUpper(orgsName[1][1 : len(orgsName[1])-2])
@@ -439,15 +439,15 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations specify domain name equals",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQuery{
query: []*v2beta_org.OrgQueryFilter{
{
Query: &org.OrgQuery_DomainQuery{
Query: &org.OrgQueryFilter_DomainQuery{
DomainQuery: &org.OrgDomainQuery{
Domain: func() string {
listOrgRes, err := Client.ListOrganizations(CTX, &v2beta_org.ListOrganizationsRequest{
Queries: []*v2beta_org.OrgQuery{
Filter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_IdQuery{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgs[1].Id,
},
@@ -474,9 +474,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations specify domain name contains",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQuery{
query: []*v2beta_org.OrgQueryFilter{
{
Query: &org.OrgQuery_DomainQuery{
Query: &org.OrgQueryFilter_DomainQuery{
DomainQuery: &org.OrgDomainQuery{
Domain: func() string {
domain := strings.ToLower(strings.ReplaceAll(orgsName[1][1:len(orgsName[1])-2], " ", "-"))
@@ -497,9 +497,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations specify org name contains IGNORE CASE",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQuery{
query: []*v2beta_org.OrgQueryFilter{
{
Query: &org.OrgQuery_DomainQuery{
Query: &org.OrgQueryFilter_DomainQuery{
DomainQuery: &org.OrgDomainQuery{
Domain: func() string {
domain := strings.ToUpper(strings.ReplaceAll(orgsName[1][1:len(orgsName[1])-2], " ", "-"))
@@ -523,7 +523,7 @@ func TestServer_ListOrganization(t *testing.T) {
retryDuration, tick := integration.WaitForAndTickWithMaxDuration(context.Background(), 10*time.Minute)
require.EventuallyWithT(t, func(ttt *assert.CollectT) {
got, err := Client.ListOrganizations(tt.ctx, &v2beta_org.ListOrganizationsRequest{
Queries: tt.query,
Filter: tt.query,
})
if tt.wantErr {
@@ -596,9 +596,9 @@ func TestServer_DeleteOrganization(t *testing.T) {
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
listOrgRes, err := Client.ListOrganizations(tt.ctx, &v2beta_org.ListOrganizationsRequest{
Queries: []*v2beta_org.OrgQuery{
Filter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_IdQuery{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: tt.req.Id,
},
@@ -639,9 +639,9 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
// 2. check inital state of organization
listOrgRes, err := Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Queries: []*v2beta_org.OrgQuery{
Filter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_IdQuery{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
@@ -663,9 +663,9 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
// 4. check organization state is deactivated
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Queries: []*v2beta_org.OrgQuery{
Filter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_IdQuery{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
@@ -686,9 +686,9 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
// 6. repeat check organization state is still deactivated
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Queries: []*v2beta_org.OrgQuery{
Filter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_IdQuery{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
@@ -710,9 +710,9 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
// 8. check organization state is active
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Queries: []*v2beta_org.OrgQuery{
Filter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_IdQuery{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
@@ -732,9 +732,9 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
// 10. repeat check organization state is still active
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Queries: []*v2beta_org.OrgQuery{
Filter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQuery_IdQuery{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},

View File

@@ -9,6 +9,7 @@ import (
"github.com/zitadel/zitadel/internal/command"
"github.com/zitadel/zitadel/internal/query"
"github.com/zitadel/zitadel/internal/zerrors"
filter "github.com/zitadel/zitadel/pkg/grpc/filter/v2beta"
org "github.com/zitadel/zitadel/pkg/grpc/org/v2beta"
v2beta_org "github.com/zitadel/zitadel/pkg/grpc/org/v2beta"
"google.golang.org/protobuf/types/known/timestamppb"
@@ -38,7 +39,7 @@ func (s *Server) UpdateOrganization(ctx context.Context, request *v2beta_org.Upd
}
func (s *Server) ListOrganizations(ctx context.Context, request *v2beta_org.ListOrganizationsRequest) (*v2beta_org.ListOrganizationsResponse, error) {
queries, err := listOrgRequestToModel(request)
queries, err := listOrgRequestToModel(s.systemDefaults, request)
if err != nil {
return nil, err
}
@@ -47,8 +48,11 @@ func (s *Server) ListOrganizations(ctx context.Context, request *v2beta_org.List
return nil, err
}
return &v2beta_org.ListOrganizationsResponse{
Result: OrgViewsToPb(orgs.Orgs),
Details: object.ToListDetails(orgs.SearchResponse),
Result: OrgViewsToPb(orgs.Orgs),
Pagination: &filter.PaginationResponse{
TotalResult: orgs.Count,
AppliedLimit: uint64(request.GetPagination().GetLimit()),
},
}, nil
}
@@ -73,7 +77,7 @@ func (s *Server) SetOrganizationMetadata(ctx context.Context, request *v2beta_or
}
func (s *Server) ListOrganizationMetadata(ctx context.Context, request *v2beta_org.ListOrganizationMetadataRequest) (*v2beta_org.ListOrganizationMetadataResponse, error) {
metadataQueries, err := ListOrgMetadataToDomain(request)
metadataQueries, err := ListOrgMetadataToDomain(s.systemDefaults, request)
if err != nil {
return nil, err
}
@@ -82,8 +86,11 @@ func (s *Server) ListOrganizationMetadata(ctx context.Context, request *v2beta_o
return nil, err
}
return &v2beta_org.ListOrganizationMetadataResponse{
Result: metadata.OrgMetadataListToPb(res.Metadata),
Details: object.ToListDetails(res.SearchResponse),
Result: metadata.OrgMetadataListToPb(res.Metadata),
Pagination: &filter.PaginationResponse{
TotalResult: res.Count,
AppliedLimit: uint64(request.GetPagination().GetLimit()),
},
}, nil
}
@@ -132,7 +139,7 @@ func (s *Server) AddOrganizationDomain(ctx context.Context, request *org.AddOrga
}
func (s *Server) ListOrganizationDomains(ctx context.Context, req *org.ListOrganizationDomainsRequest) (*org.ListOrganizationDomainsResponse, error) {
queries, err := ListOrgDomainsRequestToModel(req)
queries, err := ListOrgDomainsRequestToModel(s.systemDefaults, req)
if err != nil {
return nil, err
}
@@ -147,8 +154,11 @@ func (s *Server) ListOrganizationDomains(ctx context.Context, req *org.ListOrgan
return nil, err
}
return &org.ListOrganizationDomainsResponse{
Result: object.DomainsToPb(domains.Domains),
Details: object.ToListDetails(domains.SearchResponse),
Result: object.DomainsToPb(domains.Domains),
Pagination: &filter.PaginationResponse{
TotalResult: domains.Count,
AppliedLimit: uint64(req.GetPagination().GetLimit()),
},
}, nil
}

View File

@@ -6,6 +6,7 @@ import (
"github.com/zitadel/zitadel/internal/api/authz"
"github.com/zitadel/zitadel/internal/api/grpc/server"
"github.com/zitadel/zitadel/internal/command"
"github.com/zitadel/zitadel/internal/config/systemdefaults"
"github.com/zitadel/zitadel/internal/domain"
"github.com/zitadel/zitadel/internal/query"
org "github.com/zitadel/zitadel/pkg/grpc/org/v2beta"
@@ -15,6 +16,7 @@ var _ org.OrganizationServiceServer = (*Server)(nil)
type Server struct {
org.UnimplementedOrganizationServiceServer
systemDefaults systemdefaults.SystemDefaults
command *command.Commands
query *query.Queries
checkPermission domain.PermissionCheck
@@ -23,11 +25,13 @@ type Server struct {
type Config struct{}
func CreateServer(
systemDefaults systemdefaults.SystemDefaults,
command *command.Commands,
query *query.Queries,
checkPermission domain.PermissionCheck,
) *Server {
return &Server{
systemDefaults: systemDefaults,
command: command,
query: query,
checkPermission: checkPermission,

View File

@@ -45,7 +45,7 @@ enum OrgFieldName {
ORG_FIELD_NAME_CREATION_DATE = 2;
}
message OrgQuery {
message OrgQueryFilter {
oneof query {
option (validate.required) = true;

View File

@@ -15,6 +15,7 @@ import "google/protobuf/struct.proto";
import "protoc-gen-openapiv2/options/annotations.proto";
import "validate/validate.proto";
import "google/protobuf/timestamp.proto";
import "zitadel/filter/v2beta/filter.proto";
option go_package = "github.com/zitadel/zitadel/pkg/grpc/org/v2beta;org";
@@ -488,21 +489,21 @@ message ListOrganizationsRequest {
json_schema: {
description: "Search query for lists";
required: ["query"]
};
};
};
// list limitations and ordering
zitadel.object.v2beta.ListQuery query = 1;
// List limitations and ordering.
optional zitadel.filter.v2beta.PaginationRequest pagination = 1;
// the field the result is sorted
zitadel.org.v2beta.OrgFieldName sorting_column = 2;
//criteria the client is looking for
repeated zitadel.org.v2beta.OrgQuery queries = 3;
// Define the criteria to query for.
// repeated ProjectRoleFilter filters = 4;
repeated zitadel.org.v2beta.OrgQueryFilter filter = 3;
}
message ListOrganizationsResponse {
zitadel.object.v2beta.ListDetails details = 1;
zitadel.org.v2beta.OrgFieldName sorting_column = 2;
repeated zitadel.org.v2beta.Organization result = 3;
zitadel.filter.v2beta.PaginationResponse pagination = 1;
repeated zitadel.org.v2beta.Organization result = 2;
}
message DeleteOrganizationRequest {
@@ -613,14 +614,15 @@ message ListOrganizationDomainsRequest {
description: "Organization ID of the organization you want the domains of."
}
];
//list limitations and ordering
zitadel.object.v2beta.ListQuery query = 2;
//criteria the client is looking for
repeated DomainSearchQuery queries = 3;
// List limitations and ordering.
optional zitadel.filter.v2beta.PaginationRequest pagination = 2;
// Define the criteria to query for.
repeated DomainSearchQuery filter = 3;
}
message ListOrganizationDomainsResponse {
zitadel.object.v2beta.ListDetails details = 1;
zitadel.filter.v2beta.PaginationResponse pagination = 1;
repeated Domain result = 2;
}
@@ -638,6 +640,7 @@ message DeleteOrganizationDomainRequest {
string domain = 2 [
(validate.rules).string = {min_len: 1, max_len: 200},
(google.api.field_behavior) = REQUIRED,
// repeated ProjectRoleFilter filters = 4;
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
min_length: 1;
max_length: 200;
@@ -746,17 +749,25 @@ message SetOrganizationMetadataResponse{
}
message ListOrganizationMetadataRequest {
string id = 1;
zitadel.object.v2beta.ListQuery query = 2;
repeated zitadel.metadata.v2beta.MetadataQuery queries = 3 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
title: "Medata Query"
description: "Metadata object-specific queries."
}];
// Organization ID
string id = 1 [
(validate.rules).string = {min_len: 1, max_len: 200},
(google.api.field_behavior) = REQUIRED,
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
min_length: 1;
max_length: 200;
example: "\"69629012906488334\"";
}
];
// List limitations and ordering.
optional zitadel.filter.v2beta.PaginationRequest pagination = 2;
// Define the criteria to query for.
repeated zitadel.metadata.v2beta.MetadataQuery filter = 3;
}
message ListOrganizationMetadataResponse {
zitadel.object.v2beta.ListDetails details = 1;
zitadel.filter.v2beta.PaginationResponse pagination = 1;
repeated zitadel.metadata.v2beta.Metadata result = 2;
}