mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 20:57:31 +00:00
feat: remove org (#4148)
* feat(command): remove org * refactor: imports, unused code, error handling * reduce org removed in action * add org deletion to projections * add org removal to projections * add org removal to projections * org removed projection * lint import * projections * fix: table names in tests * fix: table names in tests * logging * add org state * fix(domain): add Owner removed to object details * feat(ListQuery): add with owner removed * fix(org-delete): add bool to functions to select with owner removed * fix(org-delete): add bools to user grants with events to determine if dependencies lost owner * fix(org-delete): add unit tests for owner removed and org removed events * fix(org-delete): add handling of org remove for grants and members * fix(org-delete): correction of unit tests for owner removed * fix(org-delete): update projections, unit tests and get functions * fix(org-delete): add change date to authnkeys and owner removed to org metadata * fix(org-delete): include owner removed for login names * fix(org-delete): some column fixes in projections and build for queries with owner removed * indexes * fix(org-delete): include review changes * fix(org-delete): change user projection name after merge * fix(org-delete): include review changes for project grant where no project owner is necessary * fix(org-delete): include auth and adminapi tables with owner removed information * fix(org-delete): cleanup username and orgdomain uniqueconstraints when org is removed * fix(org-delete): add permissions for org.remove * remove unnecessary unique constraints * fix column order in primary keys * fix(org-delete): include review changes * fix(org-delete): add owner removed indexes and chang setup step to create tables * fix(org-delete): move PK order of instance_id and change added user_grant from review * fix(org-delete): no params for prepareUserQuery * change to step 6 * merge main * fix(org-delete): OldUserName rename to private * fix linting * cleanup * fix: remove org test * create prerelease * chore: delete org-delete as prerelease Co-authored-by: Stefan Benz <stefan@caos.ch> Co-authored-by: Livio Spring <livio.a@gmail.com> Co-authored-by: Fabi <38692350+hifabienne@users.noreply.github.com> Co-authored-by: Stefan Benz <46600784+stebenz@users.noreply.github.com>
This commit is contained in:
@@ -15,109 +15,109 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
expectedAppQuery = regexp.QuoteMeta(`SELECT projections.apps3.id,` +
|
||||
` projections.apps3.name,` +
|
||||
` projections.apps3.project_id,` +
|
||||
` projections.apps3.creation_date,` +
|
||||
` projections.apps3.change_date,` +
|
||||
` projections.apps3.resource_owner,` +
|
||||
` projections.apps3.state,` +
|
||||
` projections.apps3.sequence,` +
|
||||
expectedAppQuery = regexp.QuoteMeta(`SELECT projections.apps4.id,` +
|
||||
` projections.apps4.name,` +
|
||||
` projections.apps4.project_id,` +
|
||||
` projections.apps4.creation_date,` +
|
||||
` projections.apps4.change_date,` +
|
||||
` projections.apps4.resource_owner,` +
|
||||
` projections.apps4.state,` +
|
||||
` projections.apps4.sequence,` +
|
||||
// api config
|
||||
` projections.apps3_api_configs.app_id,` +
|
||||
` projections.apps3_api_configs.client_id,` +
|
||||
` projections.apps3_api_configs.auth_method,` +
|
||||
` projections.apps4_api_configs.app_id,` +
|
||||
` projections.apps4_api_configs.client_id,` +
|
||||
` projections.apps4_api_configs.auth_method,` +
|
||||
// oidc config
|
||||
` projections.apps3_oidc_configs.app_id,` +
|
||||
` projections.apps3_oidc_configs.version,` +
|
||||
` projections.apps3_oidc_configs.client_id,` +
|
||||
` projections.apps3_oidc_configs.redirect_uris,` +
|
||||
` projections.apps3_oidc_configs.response_types,` +
|
||||
` projections.apps3_oidc_configs.grant_types,` +
|
||||
` projections.apps3_oidc_configs.application_type,` +
|
||||
` projections.apps3_oidc_configs.auth_method_type,` +
|
||||
` projections.apps3_oidc_configs.post_logout_redirect_uris,` +
|
||||
` projections.apps3_oidc_configs.is_dev_mode,` +
|
||||
` projections.apps3_oidc_configs.access_token_type,` +
|
||||
` projections.apps3_oidc_configs.access_token_role_assertion,` +
|
||||
` projections.apps3_oidc_configs.id_token_role_assertion,` +
|
||||
` projections.apps3_oidc_configs.id_token_userinfo_assertion,` +
|
||||
` projections.apps3_oidc_configs.clock_skew,` +
|
||||
` projections.apps3_oidc_configs.additional_origins,` +
|
||||
` projections.apps4_oidc_configs.app_id,` +
|
||||
` projections.apps4_oidc_configs.version,` +
|
||||
` projections.apps4_oidc_configs.client_id,` +
|
||||
` projections.apps4_oidc_configs.redirect_uris,` +
|
||||
` projections.apps4_oidc_configs.response_types,` +
|
||||
` projections.apps4_oidc_configs.grant_types,` +
|
||||
` projections.apps4_oidc_configs.application_type,` +
|
||||
` projections.apps4_oidc_configs.auth_method_type,` +
|
||||
` projections.apps4_oidc_configs.post_logout_redirect_uris,` +
|
||||
` projections.apps4_oidc_configs.is_dev_mode,` +
|
||||
` projections.apps4_oidc_configs.access_token_type,` +
|
||||
` projections.apps4_oidc_configs.access_token_role_assertion,` +
|
||||
` projections.apps4_oidc_configs.id_token_role_assertion,` +
|
||||
` projections.apps4_oidc_configs.id_token_userinfo_assertion,` +
|
||||
` projections.apps4_oidc_configs.clock_skew,` +
|
||||
` projections.apps4_oidc_configs.additional_origins,` +
|
||||
//saml config
|
||||
` projections.apps3_saml_configs.app_id,` +
|
||||
` projections.apps3_saml_configs.entity_id,` +
|
||||
` projections.apps3_saml_configs.metadata,` +
|
||||
` projections.apps3_saml_configs.metadata_url` +
|
||||
` FROM projections.apps3` +
|
||||
` LEFT JOIN projections.apps3_api_configs ON projections.apps3.id = projections.apps3_api_configs.app_id AND projections.apps3.instance_id = projections.apps3_api_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps3_oidc_configs ON projections.apps3.id = projections.apps3_oidc_configs.app_id AND projections.apps3.instance_id = projections.apps3_oidc_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps3_saml_configs ON projections.apps3.id = projections.apps3_saml_configs.app_id AND projections.apps3.instance_id = projections.apps3_saml_configs.instance_id`)
|
||||
expectedAppsQuery = regexp.QuoteMeta(`SELECT projections.apps3.id,` +
|
||||
` projections.apps3.name,` +
|
||||
` projections.apps3.project_id,` +
|
||||
` projections.apps3.creation_date,` +
|
||||
` projections.apps3.change_date,` +
|
||||
` projections.apps3.resource_owner,` +
|
||||
` projections.apps3.state,` +
|
||||
` projections.apps3.sequence,` +
|
||||
` projections.apps4_saml_configs.app_id,` +
|
||||
` projections.apps4_saml_configs.entity_id,` +
|
||||
` projections.apps4_saml_configs.metadata,` +
|
||||
` projections.apps4_saml_configs.metadata_url` +
|
||||
` FROM projections.apps4` +
|
||||
` LEFT JOIN projections.apps4_api_configs ON projections.apps4.id = projections.apps4_api_configs.app_id AND projections.apps4.instance_id = projections.apps4_api_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps4_oidc_configs ON projections.apps4.id = projections.apps4_oidc_configs.app_id AND projections.apps4.instance_id = projections.apps4_oidc_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps4_saml_configs ON projections.apps4.id = projections.apps4_saml_configs.app_id AND projections.apps4.instance_id = projections.apps4_saml_configs.instance_id`)
|
||||
expectedAppsQuery = regexp.QuoteMeta(`SELECT projections.apps4.id,` +
|
||||
` projections.apps4.name,` +
|
||||
` projections.apps4.project_id,` +
|
||||
` projections.apps4.creation_date,` +
|
||||
` projections.apps4.change_date,` +
|
||||
` projections.apps4.resource_owner,` +
|
||||
` projections.apps4.state,` +
|
||||
` projections.apps4.sequence,` +
|
||||
// api config
|
||||
` projections.apps3_api_configs.app_id,` +
|
||||
` projections.apps3_api_configs.client_id,` +
|
||||
` projections.apps3_api_configs.auth_method,` +
|
||||
` projections.apps4_api_configs.app_id,` +
|
||||
` projections.apps4_api_configs.client_id,` +
|
||||
` projections.apps4_api_configs.auth_method,` +
|
||||
// oidc config
|
||||
` projections.apps3_oidc_configs.app_id,` +
|
||||
` projections.apps3_oidc_configs.version,` +
|
||||
` projections.apps3_oidc_configs.client_id,` +
|
||||
` projections.apps3_oidc_configs.redirect_uris,` +
|
||||
` projections.apps3_oidc_configs.response_types,` +
|
||||
` projections.apps3_oidc_configs.grant_types,` +
|
||||
` projections.apps3_oidc_configs.application_type,` +
|
||||
` projections.apps3_oidc_configs.auth_method_type,` +
|
||||
` projections.apps3_oidc_configs.post_logout_redirect_uris,` +
|
||||
` projections.apps3_oidc_configs.is_dev_mode,` +
|
||||
` projections.apps3_oidc_configs.access_token_type,` +
|
||||
` projections.apps3_oidc_configs.access_token_role_assertion,` +
|
||||
` projections.apps3_oidc_configs.id_token_role_assertion,` +
|
||||
` projections.apps3_oidc_configs.id_token_userinfo_assertion,` +
|
||||
` projections.apps3_oidc_configs.clock_skew,` +
|
||||
` projections.apps3_oidc_configs.additional_origins,` +
|
||||
` projections.apps4_oidc_configs.app_id,` +
|
||||
` projections.apps4_oidc_configs.version,` +
|
||||
` projections.apps4_oidc_configs.client_id,` +
|
||||
` projections.apps4_oidc_configs.redirect_uris,` +
|
||||
` projections.apps4_oidc_configs.response_types,` +
|
||||
` projections.apps4_oidc_configs.grant_types,` +
|
||||
` projections.apps4_oidc_configs.application_type,` +
|
||||
` projections.apps4_oidc_configs.auth_method_type,` +
|
||||
` projections.apps4_oidc_configs.post_logout_redirect_uris,` +
|
||||
` projections.apps4_oidc_configs.is_dev_mode,` +
|
||||
` projections.apps4_oidc_configs.access_token_type,` +
|
||||
` projections.apps4_oidc_configs.access_token_role_assertion,` +
|
||||
` projections.apps4_oidc_configs.id_token_role_assertion,` +
|
||||
` projections.apps4_oidc_configs.id_token_userinfo_assertion,` +
|
||||
` projections.apps4_oidc_configs.clock_skew,` +
|
||||
` projections.apps4_oidc_configs.additional_origins,` +
|
||||
//saml config
|
||||
` projections.apps3_saml_configs.app_id,` +
|
||||
` projections.apps3_saml_configs.entity_id,` +
|
||||
` projections.apps3_saml_configs.metadata,` +
|
||||
` projections.apps3_saml_configs.metadata_url,` +
|
||||
` projections.apps4_saml_configs.app_id,` +
|
||||
` projections.apps4_saml_configs.entity_id,` +
|
||||
` projections.apps4_saml_configs.metadata,` +
|
||||
` projections.apps4_saml_configs.metadata_url,` +
|
||||
` COUNT(*) OVER ()` +
|
||||
` FROM projections.apps3` +
|
||||
` LEFT JOIN projections.apps3_api_configs ON projections.apps3.id = projections.apps3_api_configs.app_id AND projections.apps3.instance_id = projections.apps3_api_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps3_oidc_configs ON projections.apps3.id = projections.apps3_oidc_configs.app_id AND projections.apps3.instance_id = projections.apps3_oidc_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps3_saml_configs ON projections.apps3.id = projections.apps3_saml_configs.app_id AND projections.apps3.instance_id = projections.apps3_saml_configs.instance_id`)
|
||||
expectedAppIDsQuery = regexp.QuoteMeta(`SELECT projections.apps3_api_configs.client_id,` +
|
||||
` projections.apps3_oidc_configs.client_id` +
|
||||
` FROM projections.apps3` +
|
||||
` LEFT JOIN projections.apps3_api_configs ON projections.apps3.id = projections.apps3_api_configs.app_id AND projections.apps3.instance_id = projections.apps3_api_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps3_oidc_configs ON projections.apps3.id = projections.apps3_oidc_configs.app_id AND projections.apps3.instance_id = projections.apps3_oidc_configs.instance_id`)
|
||||
expectedProjectIDByAppQuery = regexp.QuoteMeta(`SELECT projections.apps3.project_id` +
|
||||
` FROM projections.apps3` +
|
||||
` LEFT JOIN projections.apps3_api_configs ON projections.apps3.id = projections.apps3_api_configs.app_id AND projections.apps3.instance_id = projections.apps3_api_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps3_oidc_configs ON projections.apps3.id = projections.apps3_oidc_configs.app_id AND projections.apps3.instance_id = projections.apps3_oidc_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps3_saml_configs ON projections.apps3.id = projections.apps3_saml_configs.app_id AND projections.apps3.instance_id = projections.apps3_saml_configs.instance_id`)
|
||||
expectedProjectByAppQuery = regexp.QuoteMeta(`SELECT projections.projects2.id,` +
|
||||
` projections.projects2.creation_date,` +
|
||||
` projections.projects2.change_date,` +
|
||||
` projections.projects2.resource_owner,` +
|
||||
` projections.projects2.state,` +
|
||||
` projections.projects2.sequence,` +
|
||||
` projections.projects2.name,` +
|
||||
` projections.projects2.project_role_assertion,` +
|
||||
` projections.projects2.project_role_check,` +
|
||||
` projections.projects2.has_project_check,` +
|
||||
` projections.projects2.private_labeling_setting` +
|
||||
` FROM projections.projects2` +
|
||||
` JOIN projections.apps3 ON projections.projects2.id = projections.apps3.project_id AND projections.projects2.instance_id = projections.apps3.instance_id` +
|
||||
` LEFT JOIN projections.apps3_api_configs ON projections.apps3.id = projections.apps3_api_configs.app_id AND projections.apps3.instance_id = projections.apps3_api_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps3_oidc_configs ON projections.apps3.id = projections.apps3_oidc_configs.app_id AND projections.apps3.instance_id = projections.apps3_oidc_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps3_saml_configs ON projections.apps3.id = projections.apps3_saml_configs.app_id AND projections.apps3.instance_id = projections.apps3_saml_configs.instance_id`)
|
||||
` FROM projections.apps4` +
|
||||
` LEFT JOIN projections.apps4_api_configs ON projections.apps4.id = projections.apps4_api_configs.app_id AND projections.apps4.instance_id = projections.apps4_api_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps4_oidc_configs ON projections.apps4.id = projections.apps4_oidc_configs.app_id AND projections.apps4.instance_id = projections.apps4_oidc_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps4_saml_configs ON projections.apps4.id = projections.apps4_saml_configs.app_id AND projections.apps4.instance_id = projections.apps4_saml_configs.instance_id`)
|
||||
expectedAppIDsQuery = regexp.QuoteMeta(`SELECT projections.apps4_api_configs.client_id,` +
|
||||
` projections.apps4_oidc_configs.client_id` +
|
||||
` FROM projections.apps4` +
|
||||
` LEFT JOIN projections.apps4_api_configs ON projections.apps4.id = projections.apps4_api_configs.app_id AND projections.apps4.instance_id = projections.apps4_api_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps4_oidc_configs ON projections.apps4.id = projections.apps4_oidc_configs.app_id AND projections.apps4.instance_id = projections.apps4_oidc_configs.instance_id`)
|
||||
expectedProjectIDByAppQuery = regexp.QuoteMeta(`SELECT projections.apps4.project_id` +
|
||||
` FROM projections.apps4` +
|
||||
` LEFT JOIN projections.apps4_api_configs ON projections.apps4.id = projections.apps4_api_configs.app_id AND projections.apps4.instance_id = projections.apps4_api_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps4_oidc_configs ON projections.apps4.id = projections.apps4_oidc_configs.app_id AND projections.apps4.instance_id = projections.apps4_oidc_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps4_saml_configs ON projections.apps4.id = projections.apps4_saml_configs.app_id AND projections.apps4.instance_id = projections.apps4_saml_configs.instance_id`)
|
||||
expectedProjectByAppQuery = regexp.QuoteMeta(`SELECT projections.projects3.id,` +
|
||||
` projections.projects3.creation_date,` +
|
||||
` projections.projects3.change_date,` +
|
||||
` projections.projects3.resource_owner,` +
|
||||
` projections.projects3.state,` +
|
||||
` projections.projects3.sequence,` +
|
||||
` projections.projects3.name,` +
|
||||
` projections.projects3.project_role_assertion,` +
|
||||
` projections.projects3.project_role_check,` +
|
||||
` projections.projects3.has_project_check,` +
|
||||
` projections.projects3.private_labeling_setting` +
|
||||
` FROM projections.projects3` +
|
||||
` JOIN projections.apps4 ON projections.projects3.id = projections.apps4.project_id AND projections.projects3.instance_id = projections.apps4.instance_id` +
|
||||
` LEFT JOIN projections.apps4_api_configs ON projections.apps4.id = projections.apps4_api_configs.app_id AND projections.apps4.instance_id = projections.apps4_api_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps4_oidc_configs ON projections.apps4.id = projections.apps4_oidc_configs.app_id AND projections.apps4.instance_id = projections.apps4_oidc_configs.instance_id` +
|
||||
` LEFT JOIN projections.apps4_saml_configs ON projections.apps4.id = projections.apps4_saml_configs.app_id AND projections.apps4.instance_id = projections.apps4_saml_configs.instance_id`)
|
||||
|
||||
appCols = database.StringArray{
|
||||
"id",
|
||||
|
Reference in New Issue
Block a user