mirror of
https://github.com/zitadel/zitadel.git
synced 2025-03-01 06:27:23 +00:00

# Which Problems Are Solved After updating to version 2.69.0, my zitadel instance refuse to start with this error log : ``` time="2025-02-03T19:46:47Z" level=info msg="starting migration" caller="/home/runner/work/zitadel/zitadel/internal/migration/migration.go:66" name=46_init_permission_functions time="2025-02-03T19:46:47Z" level=info msg="execute statement" caller="/home/runner/work/zitadel/zitadel/cmd/setup/46.go:29" file=01-role_permissions_view.sql migration=46_init_permission_functions time="2025-02-03T19:46:47Z" level=info msg="execute statement" caller="/home/runner/work/zitadel/zitadel/cmd/setup/46.go:29" file=02-instance_orgs_view.sql migration=46_init_permission_functions time="2025-02-03T19:46:47Z" level=info msg="execute statement" caller="/home/runner/work/zitadel/zitadel/cmd/setup/46.go:29" file=03-instance_members_view.sql migration=46_init_permission_functions time="2025-02-03T19:46:47Z" level=info msg="execute statement" caller="/home/runner/work/zitadel/zitadel/cmd/setup/46.go:29" file=04-org_members_view.sql migration=46_init_permission_functions time="2025-02-03T19:46:47Z" level=info msg="execute statement" caller="/home/runner/work/zitadel/zitadel/cmd/setup/46.go:29" file=05-project_members_view.sql migration=46_init_permission_functions time="2025-02-03T19:46:47Z" level=info msg="execute statement" caller="/home/runner/work/zitadel/zitadel/cmd/setup/46.go:29" file=06-permitted_orgs_function.sql migration=46_init_permission_functions time="2025-02-03T19:46:47Z" level=error msg="migration failed" caller="/home/runner/work/zitadel/zitadel/internal/migration/migration.go:68" error="46_init_permission_functions 06-permitted_orgs_function.sql: ERROR: subquery in FROM must have an alias (SQLSTATE 42601)" name=46_init_permission_functions time="2025-02-03T19:46:47Z" level=fatal msg="migration failed" caller="/home/runner/work/zitadel/zitadel/cmd/setup/setup.go:274" error="46_init_permission_functions 06-permitted_orgs_function.sql: ERROR: subquery in FROM must have an alias (SQLSTATE 42601)" name=46_init_permission_functions ``` # How the Problems Are Solved I used the original sql script on my database which gave me the same error. So i added an alias for the subquery and the error cas gone # Additional Context I was migrating from version 2.58.3 Closes https://github.com/zitadel/zitadel/issues/9300 Co-authored-by: Tim Möhlmann <tim+github@zitadel.com>
51 lines
1.2 KiB
PL/PgSQL
51 lines
1.2 KiB
PL/PgSQL
CREATE OR REPLACE FUNCTION eventstore.permitted_orgs(
|
|
instanceId TEXT
|
|
, userId TEXT
|
|
, perm TEXT
|
|
|
|
, org_ids OUT TEXT[]
|
|
)
|
|
LANGUAGE 'plpgsql'
|
|
STABLE
|
|
AS $$
|
|
DECLARE
|
|
matched_roles TEXT[]; -- roles containing permission
|
|
BEGIN
|
|
SELECT array_agg(rp.role) INTO matched_roles
|
|
FROM eventstore.role_permissions rp
|
|
WHERE rp.instance_id = instanceId
|
|
AND rp.permission = perm;
|
|
|
|
-- First try if the permission was granted thru an instance-level role
|
|
DECLARE
|
|
has_instance_permission bool;
|
|
BEGIN
|
|
SELECT true INTO has_instance_permission
|
|
FROM eventstore.instance_members im
|
|
WHERE im.role = ANY(matched_roles)
|
|
AND im.instance_id = instanceId
|
|
AND im.user_id = userId
|
|
LIMIT 1;
|
|
|
|
IF has_instance_permission THEN
|
|
-- Return all organizations
|
|
SELECT array_agg(o.org_id) INTO org_ids
|
|
FROM eventstore.instance_orgs o
|
|
WHERE o.instance_id = instanceId;
|
|
RETURN;
|
|
END IF;
|
|
END;
|
|
|
|
-- Return the organizations where permission were granted thru org-level roles
|
|
SELECT array_agg(sub.org_id) INTO org_ids
|
|
FROM (
|
|
SELECT DISTINCT om.org_id
|
|
FROM eventstore.org_members om
|
|
WHERE om.role = ANY(matched_roles)
|
|
AND om.instance_id = instanceID
|
|
AND om.user_id = userId
|
|
) AS sub;
|
|
RETURN;
|
|
END;
|
|
$$;
|