fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Merge branch 'main' into org_api

This commit is contained in:
Iraq Jaber
2025-05-12 09:00:03 +02:00
parent 5f014d6057
commit f9e9f9cdff
4 changed files with 52 additions and 61 deletions

View File

@@ -28,7 +28,7 @@ func listOrgRequestToModel(systemDefaults systemdefaults.SystemDefaults, request
if err != nil {
return nil, err
}
queries, err := OrgQueriesToModel(request.Filter)
queries, err := OrgQueriesToModel(request.OrganizationSearchFilter)
if err != nil {
return nil, err
}

View File

@@ -445,7 +445,7 @@ func TestServer_ListOrganization(t *testing.T) {
DomainQuery: &org.OrgDomainQuery{
Domain: func() string {
listOrgRes, err := Client.ListOrganizations(CTX, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrgQueryFilter{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
@@ -456,7 +456,7 @@ func TestServer_ListOrganization(t *testing.T) {
},
})
require.NoError(t, err)
domain := listOrgRes.Result[0].PrimaryDomain
domain := listOrgRes.Organizations[0].PrimaryDomain
return domain
}(),
Method: v2beta_object.TextQueryMethod_TEXT_QUERY_METHOD_EQUALS,
@@ -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{
Filter: tt.query,
OrganizationSearchFilter: tt.query,
})
if tt.wantErr {
@@ -533,7 +533,7 @@ func TestServer_ListOrganization(t *testing.T) {
require.NoError(t, err)
foundOrgs := 0
for _, got := range got.Result {
for _, got := range got.Organizations {
for _, org := range tt.want {
if org.Name == got.Name &&
org.Id == got.Id {
@@ -596,7 +596,7 @@ 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{
Filter: []*v2beta_org.OrgQueryFilter{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
@@ -607,7 +607,7 @@ func TestServer_DeleteOrganization(t *testing.T) {
},
})
require.NoError(t, err)
require.Nil(t, listOrgRes.Result)
require.Nil(t, listOrgRes.Organizations)
})
}
}
@@ -622,7 +622,7 @@ func TestServer_DeactivateReactivateNonExistentOrganization(t *testing.T) {
require.Contains(t, err.Error(), "Organisation not found")
// reactivate non existent organization
_, err = Client.ReactivateOrganization(ctx, &v2beta_org.ReactivateOrganizationRequest{
_, err = Client.ActivateOrganization(ctx, &v2beta_org.ActivateOrganizationRequest{
Id: "non existent organization",
})
require.Contains(t, err.Error(), "Organisation not found")
@@ -639,7 +639,7 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
// 2. check inital state of organization
listOrgRes, err := Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrgQueryFilter{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
@@ -650,7 +650,7 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Result[0].State)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Organizations[0].State)
// 3. deactivate organization once
deactivate_res, err := Client.DeactivateOrganization(ctx, &v2beta_org.DeactivateOrganizationRequest{
@@ -663,7 +663,7 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
// 4. check organization state is deactivated
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrgQueryFilter{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
@@ -674,7 +674,7 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Result[0].State)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Organizations[0].State)
// 5. repeat deactivate organization once
// deactivate_res, err = Client.DeactivateOrganization(ctx, &v2beta_org.DeactivateOrganizationRequest{
@@ -686,7 +686,7 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
// 6. repeat check organization state is still deactivated
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrgQueryFilter{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
@@ -697,10 +697,10 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Result[0].State)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Organizations[0].State)
// 7. reactivate organization
reactivate_res, err := Client.ReactivateOrganization(ctx, &v2beta_org.ReactivateOrganizationRequest{
reactivate_res, err := Client.ActivateOrganization(ctx, &v2beta_org.ActivateOrganizationRequest{
Id: orgId,
})
require.NoError(t, err)
@@ -710,7 +710,7 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
// 8. check organization state is active
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrgQueryFilter{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
@@ -721,10 +721,10 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Result[0].State)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Organizations[0].State)
// 9. repeat reactivate organization
reactivate_res, err = Client.ReactivateOrganization(ctx, &v2beta_org.ReactivateOrganizationRequest{
reactivate_res, err = Client.ActivateOrganization(ctx, &v2beta_org.ActivateOrganizationRequest{
Id: orgId,
})
// TODO remove this error message
@@ -732,7 +732,7 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
// 10. repeat check organization state is still active
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrgQueryFilter{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
@@ -743,7 +743,7 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Result[0].State)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Organizations[0].State)
}
func TestServer_AddOListDeleterganizationDomain(t *testing.T) {
@@ -813,7 +813,7 @@ func TestServer_AddOListDeleterganizationDomain(t *testing.T) {
})
require.NoError(t, err)
// check details
gotCD = deleteOrgDomainRes.GetChangeDate().AsTime()
gotCD = deleteOrgDomainRes.GetDeletionDate().AsTime()
now = time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
@@ -986,7 +986,7 @@ func TestServer_SetOrganizationMetadata(t *testing.T) {
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
setupFunc: func() {
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
Id: orgId,
OrganizationId: orgId,
Metadata: []*v2beta_org.Metadata{
{
Key: "key3",
@@ -1005,7 +1005,7 @@ func TestServer_SetOrganizationMetadata(t *testing.T) {
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
setupFunc: func() {
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
Id: orgId,
OrganizationId: orgId,
Metadata: []*v2beta_org.Metadata{
{
Key: "key5",
@@ -1026,7 +1026,7 @@ func TestServer_SetOrganizationMetadata(t *testing.T) {
tt.setupFunc()
}
got, err := Client.SetOrganizationMetadata(tt.ctx, &v2beta_org.SetOrganizationMetadataRequest{
Id: tt.orgId,
OrganizationId: tt.orgId,
Metadata: []*v2beta_org.Metadata{
{
Key: tt.key,
@@ -1041,7 +1041,7 @@ func TestServer_SetOrganizationMetadata(t *testing.T) {
require.NoError(t, err)
// check details
gotCD := got.GetChangeDate().AsTime()
gotCD := got.GetSetDate().AsTime()
now := time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
@@ -1089,7 +1089,7 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
setupFunc: func() {
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
Id: orgId,
OrganizationId: orgId,
Metadata: []*v2beta_org.Metadata{
{
Key: "key1",
@@ -1112,7 +1112,7 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
setupFunc: func() {
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
Id: orgId,
OrganizationId: orgId,
Metadata: []*v2beta_org.Metadata{
{
Key: "key2",
@@ -1204,7 +1204,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
setupFunc: func() {
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
Id: orgId,
OrganizationId: orgId,
Metadata: []*v2beta_org.Metadata{
{
Key: "key1",
@@ -1227,7 +1227,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
setupFunc: func() {
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
Id: orgId,
OrganizationId: orgId,
Metadata: []*v2beta_org.Metadata{
{
Key: "key2",
@@ -1258,7 +1258,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
setupFunc: func() {
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
Id: orgId,
OrganizationId: orgId,
Metadata: []*v2beta_org.Metadata{
{
Key: "key4",
@@ -1300,7 +1300,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
setupFunc: func() {
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
Id: orgId,
OrganizationId: orgId,
Metadata: []*v2beta_org.Metadata{
{
Key: "key88",
@@ -1323,7 +1323,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
setupFunc: func() {
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
Id: orgId,
OrganizationId: orgId,
Metadata: []*v2beta_org.Metadata{
{
Key: "key88",

View File

@@ -49,7 +49,7 @@ func (s *Server) ListOrganizations(ctx context.Context, request *v2beta_org.List
return nil, err
}
return &v2beta_org.ListOrganizationsResponse{
Result: OrgViewsToPb(orgs.Orgs),
Organizations: OrgViewsToPb(orgs.Orgs),
Pagination: &filter.PaginationResponse{
TotalResult: orgs.Count,
AppliedLimit: uint64(request.GetPagination().GetLimit()),
@@ -68,12 +68,12 @@ func (s *Server) DeleteOrganization(ctx context.Context, request *v2beta_org.Del
}
func (s *Server) SetOrganizationMetadata(ctx context.Context, request *v2beta_org.SetOrganizationMetadataRequest) (*v2beta_org.SetOrganizationMetadataResponse, error) {
result, err := s.command.BulkSetOrgMetadata(ctx, request.Id, BulkSetOrgMetadataToDomain(request)...)
result, err := s.command.BulkSetOrgMetadata(ctx, request.OrganizationId, BulkSetOrgMetadataToDomain(request)...)
if err != nil {
return nil, err
}
return &org.SetOrganizationMetadataResponse{
ChangeDate: timestamppb.New(result.EventDate),
SetDate: timestamppb.New(result.EventDate),
}, nil
}
@@ -101,7 +101,7 @@ func (s *Server) DeleteOrganizationMetadata(ctx context.Context, request *v2beta
return nil, err
}
return &v2beta_org.DeleteOrganizationMetadataResponse{
ChangeDate: timestamppb.New(result.EventDate),
DeletionDate: timestamppb.New(result.EventDate),
}, nil
}
@@ -115,12 +115,12 @@ func (s *Server) DeactivateOrganization(ctx context.Context, request *org.Deacti
}, nil
}
func (s *Server) ReactivateOrganization(ctx context.Context, request *org.ReactivateOrganizationRequest) (*org.ReactivateOrganizationResponse, error) {
func (s *Server) ActivateOrganization(ctx context.Context, request *org.ActivateOrganizationRequest) (*org.ActivateOrganizationResponse, error) {
objectDetails, err := s.command.ReactivateOrg(ctx, request.Id)
if err != nil {
return nil, err
}
return &org.ReactivateOrganizationResponse{
return &org.ActivateOrganizationResponse{
ChangeDate: timestamppb.New(objectDetails.EventDate),
}, err
}
@@ -169,7 +169,7 @@ func (s *Server) DeleteOrganizationDomain(ctx context.Context, req *org.DeleteOr
return nil, err
}
return &org.DeleteOrganizationDomainResponse{
ChangeDate: timestamppb.New(details.EventDate),
DeletionDate: timestamppb.New(details.EventDate),
}, err
}

View File

@@ -383,15 +383,15 @@ service OrganizationService {
}
// Reactivate Organization
// Activate Organization
//
// Set the state of my organization to active. The state of the organization has to be deactivated to perform the request. Users of this organization will be able to log in again.
//
// Required permission:
// - `org.write`
rpc ReactivateOrganization(ReactivateOrganizationRequest) returns (ReactivateOrganizationResponse) {
rpc ActivateOrganization(ActivateOrganizationRequest) returns (ActivateOrganizationResponse) {
option (google.api.http) = {
post: "/v2beta/organizations/_reactivate"
post: "/v2beta/organizations/_activate"
body: "*"
};
@@ -468,7 +468,6 @@ message UpdateOrganizationRequest {
min_length: 1;
max_length: 200;
example: "\"69629012906488334\"";
description: "Organization ID of the organization you want to update."
}
];
@@ -494,27 +493,20 @@ message UpdateOrganizationResponse {
}
message ListOrganizationsRequest {
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = {
json_schema: {
description: "Search query for lists";
required: ["query"]
};
};
// List limitations and ordering.
optional zitadel.filter.v2beta.PaginationRequest pagination = 1;
// the field the result is sorted
zitadel.org.v2beta.OrgFieldName sorting_column = 2;
// Define the criteria to query for.
// repeated ProjectRoleFilter filters = 4;
repeated zitadel.org.v2beta.OrgQueryFilter filter = 3;
repeated zitadel.org.v2beta.OrgQueryFilter OrganizationSearchFilter = 3;
}
message ListOrganizationsResponse {
// Pagination of the Organizations results
zitadel.filter.v2beta.PaginationResponse pagination = 1;
// The Organizations requested
repeated zitadel.org.v2beta.Organization result = 2;
repeated zitadel.org.v2beta.Organization organizations = 2;
}
message DeleteOrganizationRequest {
@@ -565,8 +557,8 @@ message DeactivateOrganizationResponse {
];
}
message ReactivateOrganizationRequest {
// Organization Id for the Organization to be reactivated
message ActivateOrganizationRequest {
// Organization Id for the Organization to be activated
string id = 1 [
(validate.rules).string = {min_len: 1, max_len: 200},
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
@@ -577,8 +569,8 @@ message ReactivateOrganizationRequest {
];
}
message ReactivateOrganizationResponse {
// The timestamp of the reactivation of the organization.
message ActivateOrganizationResponse {
// The timestamp of the activation of the organization.
google.protobuf.Timestamp change_date = 1 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"2025-01-23T10:34:18.051Z\"";
@@ -669,7 +661,7 @@ message DeleteOrganizationDomainRequest {
message DeleteOrganizationDomainResponse {
// The timestamp of the deletion of the organization domain.
google.protobuf.Timestamp change_date = 1 [
google.protobuf.Timestamp deletion_date = 1 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"2025-01-23T10:34:18.051Z\"";
}
@@ -685,7 +677,6 @@ message GenerateOrganizationDomainValidationRequest {
min_length: 1;
max_length: 200;
example: "\"69629012906488334\"";
description: "Organization ID of the organization you want to generate a validation request for."
}
];
// The domain which to be deleted.
@@ -755,7 +746,7 @@ message Metadata {
bytes value = 2 [(validate.rules).bytes = {min_len: 1, max_len: 500000}];
}
message SetOrganizationMetadataRequest{
string id = 1;
string organization_id = 1;
repeated Metadata metadata = 2 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
title: "Medata (Key/Value)"
@@ -767,7 +758,7 @@ message SetOrganizationMetadataRequest{
message SetOrganizationMetadataResponse{
// The timestamp of the update of the organization metadata.
google.protobuf.Timestamp change_date = 1 [
google.protobuf.Timestamp set_date = 1 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"2025-01-23T10:34:18.051Z\"";
}
@@ -808,7 +799,7 @@ message DeleteOrganizationMetadataRequest {
message DeleteOrganizationMetadataResponse{
// The timestamp of the deletiion of the organization metadata.
google.protobuf.Timestamp change_date = 1 [
google.protobuf.Timestamp deletion_date = 1 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"2025-01-23T10:34:18.051Z\"";
}