@opengeni/db 1.0.1 → 3.2.0-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attached-browser-devices.d.ts +7 -0
- package/dist/automations.d.ts +154 -0
- package/dist/canonical-human-identities.js +3 -3
- package/dist/capability-integrations.d.ts +13 -0
- package/dist/child-lifecycle-notices.d.ts +68 -0
- package/dist/{chunk-4SR4HKKA.js → chunk-2EH4WRHL.js} +19 -11
- package/dist/chunk-2EH4WRHL.js.map +1 -0
- package/dist/{chunk-CUPM3FGB.js → chunk-2PRS4J5Q.js} +3 -3
- package/dist/chunk-6HMM2R5T.js +390 -0
- package/dist/chunk-6HMM2R5T.js.map +1 -0
- package/dist/{chunk-ZWREYEWA.js → chunk-AZHW7R5V.js} +56 -11
- package/dist/chunk-AZHW7R5V.js.map +1 -0
- package/dist/{chunk-LTG3S6ZY.js → chunk-E6CLMKEE.js} +2 -2
- package/dist/{chunk-6ZYKCRFO.js → chunk-KRLPEMLH.js} +7591 -4417
- package/dist/chunk-KRLPEMLH.js.map +1 -0
- package/dist/chunk-NAB6FKFN.js +516 -0
- package/dist/chunk-NAB6FKFN.js.map +1 -0
- package/dist/{chunk-SK7YYHBI.js → chunk-SIBYBA2D.js} +46 -1
- package/dist/chunk-SIBYBA2D.js.map +1 -0
- package/dist/chunk-UZNXG44K.js +4508 -0
- package/dist/chunk-UZNXG44K.js.map +1 -0
- package/dist/codemode-operations.d.ts +1 -6
- package/dist/company-brain-context-selection-schema.d.ts +705 -0
- package/dist/company-brain-context-selection.d.ts +94 -0
- package/dist/company-brain-governed-writes.d.ts +24 -0
- package/dist/company-brain.d.ts +55 -0
- package/dist/company-profile-agent-admin.d.ts +15 -0
- package/dist/company-profile-schema.d.ts +619 -2
- package/dist/company-profile.d.ts +9 -4
- package/dist/connection-authority.d.ts +95 -0
- package/dist/connection-scopes.d.ts +8 -0
- package/dist/connection-tenancy-backfill.d.ts +85 -0
- package/dist/connection-token-resolver.d.ts +30 -1
- package/dist/database.d.ts +23 -4
- package/dist/editable-artifact-durable-export.js +2 -2
- package/dist/editable-artifacts.d.ts +2 -2
- package/dist/editable-artifacts.js +3 -3
- package/dist/governed-learning-activation-schema.d.ts +984 -0
- package/dist/governed-learning-activation.d.ts +98 -0
- package/dist/governed-learning-evaluator-schema.d.ts +633 -0
- package/dist/governed-learning-evaluator.d.ts +28 -0
- package/dist/index.d.ts +1606 -81
- package/dist/index.js +21898 -8147
- package/dist/index.js.map +1 -1
- package/dist/insights.d.ts +18 -0
- package/dist/integration-bindings.d.ts +1 -0
- package/dist/integration-facets.d.ts +30 -0
- package/dist/interaction-placement-loss.d.ts +22 -0
- package/dist/managed-human-provisioning.d.ts +25 -0
- package/dist/memory-domain.d.ts +3 -3
- package/dist/migrate.d.ts +11 -1
- package/dist/migrate.js +1 -1
- package/dist/new-session-drafts.d.ts +43 -5
- package/dist/organization-membership-backfill.d.ts +174 -0
- package/dist/organization-membership-lifecycle.d.ts +162 -0
- package/dist/pr-review.d.ts +107 -0
- package/dist/preference-registry-schema.d.ts +2 -0
- package/dist/preference-registry.d.ts +2 -0
- package/dist/provision-roles.js +1 -1
- package/dist/runtime-posture.d.ts +29 -8
- package/dist/schema.d.ts +24914 -13703
- package/dist/schema.js +99 -1
- package/dist/scoped-knowledge-schema.d.ts +52 -1
- package/dist/session-background-commands.d.ts +125 -0
- package/dist/session-background-commands.js +34 -0
- package/dist/session-background-commands.js.map +1 -0
- package/dist/session-control.d.ts +156 -3
- package/dist/session-goal-pacing.d.ts +68 -0
- package/dist/session-queue-commands.d.ts +43 -4
- package/dist/session-realtime-ledger.d.ts +2 -0
- package/dist/session-tenancy.d.ts +71 -1
- package/dist/session-tenancy.js +25 -3
- package/dist/session-tool-call-settlement.d.ts +9 -4
- package/dist/slack-routing-personal-workspace.d.ts +23 -0
- package/dist/slack-routing.d.ts +268 -0
- package/dist/slack-task-policy-schema.d.ts +34 -0
- package/dist/slack-task-policy.d.ts +8 -0
- package/dist/slack-user-link-access.d.ts +28 -0
- package/dist/task-notes-schema.d.ts +594 -0
- package/dist/task-notes.d.ts +39 -0
- package/dist/turn-initiator.d.ts +2 -0
- package/dist/user-resource-authority.d.ts +109 -0
- package/dist/video-generation.js +3 -3
- package/dist/workspace-authority.d.ts +81 -0
- package/dist/workspace-instruction-policies-schema.d.ts +279 -0
- package/dist/workspace-instruction-policies.d.ts +62 -0
- package/dist/workspace-learning-policy.d.ts +1 -0
- package/dist/workspace-membership-permissions.d.ts +2 -0
- package/drizzle/0240_enrollment_connection_authority.sql +39 -0
- package/drizzle/0241_atomic_personal_resource_delegation.sql +1000 -0
- package/drizzle/0241_enrollment_agent_runtime.sql +70 -0
- package/drizzle/0244_slack_app_home_refresh_queue.sql +120 -0
- package/drizzle/0245_model_context_contribution_facts.sql +88 -0
- package/drizzle/0246_integration_personal_instance_authority.sql +70 -0
- package/drizzle/0247_terraform_stacks_provenance_repair.sql +428 -0
- package/drizzle/0248_terraform_stacks_component_resolution_fence.sql +83 -0
- package/drizzle/0249_personal_resource_delegation_authority_correction.sql +662 -0
- package/drizzle/0250_direct_retained_process_owner_liveness.sql +199 -0
- package/drizzle/0251_connected_machine_operation_policy.sql +45 -0
- package/drizzle/0252_scheduled_personal_resource_delegation.sql +1867 -0
- package/drizzle/0253_common_user_resource_authority_lifecycle.sql +1555 -0
- package/drizzle/0254_scoped_variable_set_authority.sql +1255 -0
- package/drizzle/0255_company_brain_governed_write_proposals.sql +524 -0
- package/drizzle/0256_connection_authority_delegation.sql +703 -0
- package/drizzle/0257_goal_revision_decisions_and_root_constraints.sql +436 -0
- package/drizzle/0258_three_scope_document_knowledge_authority.sql +1273 -0
- package/drizzle/0259_company_brain_context_selection_receipts.sql +869 -0
- package/drizzle/0260_task_note_knowledge_promotion.sql +820 -0
- package/drizzle/0261_preference_knowledge_proposal_actor_binding.sql +471 -0
- package/drizzle/0262_scoped_connected_machines_and_rigs.sql +1700 -0
- package/drizzle/0263_organization_membership_lifecycle.sql +3284 -0
- package/drizzle/0264_connection_authority_runtime_activation.sql +1084 -0
- package/drizzle/0266_company_brain_context_receipt_inspection.sql +156 -0
- package/drizzle/0268_governed_learning_decision_receipts.sql +825 -0
- package/drizzle/0269_governed_learning_activation_controller.sql +1874 -0
- package/drizzle/0270_governed_learning_history_inspection.sql +170 -0
- package/drizzle/0271_company_brain_retrieval_only_default.sql +524 -0
- package/drizzle/0272_human_confirmed_learning_activation.sql +591 -0
- package/drizzle/0273_scheduled_variable_set_materialization.sql +268 -0
- package/drizzle/0274_human_confirmed_knowledge_review.sql +310 -0
- package/drizzle/0275_scheduled_connection_authority.sql +5527 -0
- package/drizzle/0276_onboarding_proposal_initiating_human_guc.sql +198 -0
- package/drizzle/0277_workspace_writer_authority_attribution.sql +393 -0
- package/drizzle/0278_workspace_membership_removal_fencing.sql +1174 -0
- package/drizzle/0279_workspace_connection_use_lane.sql +343 -0
- package/drizzle/0280_connection_and_variable_set_audit_attribution.sql +773 -0
- package/drizzle/0281_viewer_holder_authority_claims.sql +52 -0
- package/drizzle/0282_variable_set_session_attach_attribution.sql +178 -0
- package/drizzle/0283_editable_spreadsheet_authored_state.sql +82 -0
- package/drizzle/0284_truthful_human_confirmed_review_reason.sql +930 -0
- package/drizzle/0285_organization_tenancy_inventory.sql +329 -0
- package/drizzle/0286_widen_task_note_expiry_ceiling.sql +391 -0
- package/drizzle/0287_open_suffix_pending_tool_calls.sql +18 -0
- package/drizzle/0288_attached_browser_reenrollment.sql +64 -0
- package/drizzle/0289_session_composer_policy_authority.sql +597 -0
- package/drizzle/0290_organization_membership_backfill.sql +268 -0
- package/drizzle/0291_resource_authority_classification_assertion.sql +371 -0
- package/drizzle/0292_truthful_tenancy_inventory_counters.sql +291 -0
- package/drizzle/0293_confirm_time_rule_rebaseline.sql +615 -0
- package/drizzle/0294_preference_activation_authority.sql +237 -0
- package/drizzle/0295_retire_legacy_standing_memory_mode.sql +476 -0
- package/drizzle/0296_force_rls_backfill_noop_repair.sql +215 -0
- package/drizzle/0297_session_ownership_classification_and_backfill.sql +752 -0
- package/drizzle/0298_organization_tenancy_parity.sql +609 -0
- package/drizzle/0299_organization_membership_lock_order.sql +291 -0
- package/drizzle/0300_tenancy_backfill_ledger.sql +459 -0
- package/drizzle/0301_session_snapshot_and_pin_visibility.sql +181 -0
- package/drizzle/0302_personal_workspace_session_ownership.sql +303 -0
- package/drizzle/0303_session_tenancy_product_activation.sql +919 -0
- package/drizzle/0304_personal_workspace_private_session_reads.sql +97 -0
- package/drizzle/0305_personal_resource_grant_management.sql +584 -0
- package/drizzle/0306_atomic_personal_resource_attachments.sql +1374 -0
- package/drizzle/0307_session_attention_state.sql +51 -0
- package/drizzle/0308_session_archives.sql +35 -0
- package/drizzle/0309_channel_project_pins.sql +6 -0
- package/drizzle/0310_channel_project_order.sql +27 -0
- package/drizzle/0311_company_scope_and_private_session_create.sql +656 -0
- package/drizzle/0312_quiescent_session_tree_deletion.sql +39 -0
- package/drizzle/0313_private_child_session_authority.sql +365 -0
- package/drizzle/0314_unregistered_organization_invitations.sql +606 -0
- package/drizzle/0315_personal_github_repository_selection.sql +624 -0
- package/drizzle/0316_human_confirmed_activation_resumed_generation.sql +869 -0
- package/drizzle/0317_session_goal_continuation_hold.sql +64 -0
- package/drizzle/0318_session_turn_startup_milestones.sql +115 -0
- package/drizzle/0319_event_triggered_automations.sql +254 -0
- package/drizzle/0320_pr_review_pack.sql +113 -0
- package/drizzle/0321_slack_bot_environment_display_name.sql +15 -0
- package/drizzle/0322_session_turns_unclaimed_prompt_trigger_index.sql +5 -0
- package/drizzle/0323_organization_private_session_enablement.sql +489 -0
- package/drizzle/0324_human_confirmed_company_profile_agent_admin.sql +856 -0
- package/drizzle/0325_child_lifecycle_notices.sql +44 -0
- package/drizzle/0326_interaction_operation_error_codes.sql +62 -0
- package/drizzle/0327_slack_first_task_hint.sql +29 -0
- package/drizzle/0328_session_background_commands.sql +590 -0
- package/drizzle/0329_slack_orchestration_delivery_events.sql +91 -0
- package/drizzle/0330_api_key_descriptions.sql +20 -0
- package/drizzle/0331_managed_organization_creation.sql +163 -0
- package/drizzle/0332_organization_shared_workspace_control_plane.sql +539 -0
- package/drizzle/0333_session_turn_prompt_routing.sql +45 -0
- package/drizzle/0334_connected_machine_workspace_root.sql +99 -0
- package/drizzle/0335_slack_workspace_routing.sql +460 -0
- package/drizzle/0336_atomic_session_fork_visibility.sql +667 -0
- package/drizzle/0337_slack_routed_action_handles.sql +189 -0
- package/drizzle/0338_atomic_connected_machine_attachments.sql +410 -0
- package/drizzle/0339_document_authority_reclassification.sql +1153 -0
- package/drizzle/0340_tenancy_backfill_activation_evidence.sql +1347 -0
- package/drizzle/0341_slack_routing_probe_organization_fence.sql +109 -0
- package/drizzle/0342_slack_route_prompt_single_pending.sql +32 -0
- package/drizzle/0343_personal_document_force_rls_lock_repair.sql +146 -0
- package/drizzle/0344_private_session_visibility_transition_gate.sql +85 -0
- package/drizzle/0345_tenant_scoped_session_tenancy_fence.sql +2839 -0
- package/drizzle/0346_document_migration_audit_surface.sql +454 -0
- package/drizzle/0347_connection_authority_convergence_evidence.sql +396 -0
- package/package.json +10 -6
- package/src/attached-browser-devices.ts +233 -5
- package/src/automations.ts +911 -0
- package/src/browser-sessions.ts +10 -0
- package/src/capability-integrations.ts +175 -1
- package/src/child-lifecycle-notices.ts +241 -0
- package/src/codemode-operations.ts +1 -35
- package/src/company-brain-context-selection-schema.ts +100 -0
- package/src/company-brain-context-selection.ts +359 -0
- package/src/company-brain-governed-writes.ts +1170 -0
- package/src/company-brain.ts +309 -0
- package/src/company-profile-agent-admin.ts +225 -0
- package/src/company-profile-schema.ts +121 -1
- package/src/company-profile.ts +21 -0
- package/src/computer-sessions.ts +10 -1
- package/src/connection-authority.ts +290 -0
- package/src/connection-scopes.ts +20 -0
- package/src/connection-tenancy-backfill.ts +167 -0
- package/src/connection-token-resolver.ts +263 -31
- package/src/database.ts +87 -2
- package/src/editable-artifacts-schema.ts +10 -5
- package/src/editable-artifacts.ts +21 -11
- package/src/governed-learning-activation-schema.ts +121 -0
- package/src/governed-learning-activation.ts +588 -0
- package/src/governed-learning-evaluator-schema.ts +72 -0
- package/src/governed-learning-evaluator.ts +217 -0
- package/src/index.ts +11676 -1550
- package/src/insights.ts +107 -0
- package/src/integration-bindings.ts +88 -6
- package/src/integration-facets.ts +287 -84
- package/src/interaction-placement-loss.ts +234 -0
- package/src/managed-human-provisioning.ts +116 -0
- package/src/memory-domain.ts +27 -32
- package/src/migrate.ts +77 -1
- package/src/new-session-drafts.ts +229 -35
- package/src/organization-membership-backfill.ts +735 -0
- package/src/organization-membership-lifecycle.ts +995 -0
- package/src/pr-review.ts +890 -0
- package/src/preference-registry.ts +31 -1
- package/src/provision-roles.ts +905 -6
- package/src/runtime-posture-cli.ts +2 -0
- package/src/runtime-posture.ts +1317 -72
- package/src/schema.ts +3316 -428
- package/src/scoped-knowledge-schema.ts +16 -8
- package/src/scoped-knowledge.ts +1 -1
- package/src/session-background-commands.ts +759 -0
- package/src/session-control.ts +640 -74
- package/src/session-goal-pacing.ts +126 -0
- package/src/session-queue-commands.ts +441 -85
- package/src/session-realtime-context.ts +4 -6
- package/src/session-realtime-ledger.ts +28 -14
- package/src/session-realtime-mirror.ts +1 -1
- package/src/session-tenancy.ts +410 -49
- package/src/session-tool-call-settlement.ts +38 -29
- package/src/slack-routing-personal-workspace.ts +67 -0
- package/src/slack-routing.ts +867 -0
- package/src/slack-task-policy-schema.ts +5 -0
- package/src/slack-task-policy.ts +18 -0
- package/src/slack-user-link-access.ts +138 -11
- package/src/task-notes-schema.ts +74 -0
- package/src/task-notes.ts +124 -2
- package/src/turn-initiator.ts +8 -0
- package/src/user-resource-authority.ts +377 -0
- package/src/workspace-authority.ts +160 -0
- package/src/workspace-instruction-policies-schema.ts +53 -1
- package/src/workspace-instruction-policies.ts +528 -77
- package/src/workspace-learning-policy.ts +21 -5
- package/src/workspace-membership-permissions.ts +9 -0
- package/dist/chunk-4SR4HKKA.js.map +0 -1
- package/dist/chunk-6ZYKCRFO.js.map +0 -1
- package/dist/chunk-NXAFLCQX.js +0 -2468
- package/dist/chunk-NXAFLCQX.js.map +0 -1
- package/dist/chunk-SK7YYHBI.js.map +0 -1
- package/dist/chunk-WD5ROSLL.js +0 -117
- package/dist/chunk-WD5ROSLL.js.map +0 -1
- package/dist/chunk-ZWREYEWA.js.map +0 -1
- /package/dist/{chunk-CUPM3FGB.js.map → chunk-2PRS4J5Q.js.map} +0 -0
- /package/dist/{chunk-LTG3S6ZY.js.map → chunk-E6CLMKEE.js.map} +0 -0
package/src/provision-roles.ts
CHANGED
|
@@ -482,11 +482,48 @@ async function grantAppRoleIfSchemaExists(
|
|
|
482
482
|
const runtimeReadUpdateTables = `ARRAY[${RUNTIME_READ_UPDATE_TABLES.map(literal).join(", ")}]`;
|
|
483
483
|
const runtimeReadInsertTables = `ARRAY[${RUNTIME_READ_INSERT_TABLES.map(literal).join(", ")}]`;
|
|
484
484
|
const runtimeReadInsertUpdateTables = `ARRAY[${RUNTIME_READ_INSERT_UPDATE_TABLES.map(literal).join(", ")}]`;
|
|
485
|
+
const organizationMembershipLifecycleRoutines = `ARRAY[${[
|
|
486
|
+
"list_self_organization_memberships(text)",
|
|
487
|
+
"list_self_organization_invitations(text)",
|
|
488
|
+
"list_self_organization_invitations(text,uuid,integer)",
|
|
489
|
+
"get_self_organization_invitation(text,uuid)",
|
|
490
|
+
"list_organization_members(uuid,text)",
|
|
491
|
+
"list_organization_invitations(uuid,text,uuid,integer)",
|
|
492
|
+
"get_organization_administration_overview(uuid,text)",
|
|
493
|
+
"create_managed_organization(text,text,text,uuid)",
|
|
494
|
+
"assert_organization_shared_workspace_administrator(uuid,uuid,text)",
|
|
495
|
+
"open_organization_shared_workspace_administration_capability(uuid,uuid,text)",
|
|
496
|
+
"close_organization_shared_workspace_administration_capability(uuid)",
|
|
497
|
+
"create_organization_shared_workspace(uuid,text,text,text,text,uuid)",
|
|
498
|
+
"upsert_organization_shared_workspace_member(uuid,uuid,text,uuid,text,text,jsonb,boolean)",
|
|
499
|
+
"update_organization_name(uuid,text,text,timestamptz,uuid)",
|
|
500
|
+
"create_organization_invitation_v2(jsonb)",
|
|
501
|
+
"bind_pending_organization_invitations_for_verified_email(text,text)",
|
|
502
|
+
"has_pending_organization_invitation_for_subject(text)",
|
|
503
|
+
"accept_organization_invitation_v2(jsonb)",
|
|
504
|
+
"organization_membership_command(jsonb)",
|
|
505
|
+
"prepare_organization_membership_protocol_settlements(jsonb)",
|
|
506
|
+
"assert_active_managed_human_organization_membership(uuid,text)",
|
|
507
|
+
"resolve_workspace_writer_grant_identity(uuid,text)",
|
|
508
|
+
"prepare_workspace_membership_removal_settlements(jsonb)",
|
|
509
|
+
"workspace_membership_removal_command(jsonb)",
|
|
510
|
+
"get_organization_retention_policy(uuid,text)",
|
|
511
|
+
"preview_organization_retention_deletions(uuid,integer)",
|
|
512
|
+
"claim_organization_retention_deletion(uuid,uuid,uuid[])",
|
|
513
|
+
"list_organization_retention_deletion_objects(uuid,uuid,uuid,text,integer)",
|
|
514
|
+
"record_organization_retention_object_deleted(uuid,uuid,uuid,text,text,text,text)",
|
|
515
|
+
"fail_organization_retention_deletion(uuid,uuid,uuid,text)",
|
|
516
|
+
"finalize_organization_retention_deletion(uuid,uuid,uuid,text)",
|
|
517
|
+
"complete_organization_retention_deletion(uuid,uuid,uuid,text)",
|
|
518
|
+
]
|
|
519
|
+
.map(literal)
|
|
520
|
+
.join(", ")}]`;
|
|
485
521
|
await sql.unsafe(`
|
|
486
522
|
DO $$
|
|
487
523
|
DECLARE
|
|
488
524
|
owner_role text := current_user;
|
|
489
525
|
runtime_table text;
|
|
526
|
+
routine_signature text;
|
|
490
527
|
BEGIN
|
|
491
528
|
EXECUTE format('REVOKE CREATE ON DATABASE %I FROM %I', current_database(), ${literal(role)});
|
|
492
529
|
IF EXISTS (SELECT 1 FROM pg_namespace WHERE nspname = ${literal(schema)}) THEN
|
|
@@ -543,6 +580,128 @@ BEGIN
|
|
|
543
580
|
);
|
|
544
581
|
END IF;
|
|
545
582
|
END LOOP;
|
|
583
|
+
-- Migration 0301 creates this target-schema capability before
|
|
584
|
+
-- opengeni_app exists on a fresh migrate-then-provision installation. Its
|
|
585
|
+
-- policy is evaluated for ordinary session-list snapshot writes, so the
|
|
586
|
+
-- runtime role must be able to execute the predicate even when no
|
|
587
|
+
-- visibility-transition capability is active. Re-converge the exact ACL
|
|
588
|
+
-- here and keep PUBLIC revoked.
|
|
589
|
+
IF to_regprocedure(
|
|
590
|
+
format('%I.session_visibility_lifecycle_capability_held()', ${literal(schema)})
|
|
591
|
+
) IS NOT NULL THEN
|
|
592
|
+
EXECUTE format(
|
|
593
|
+
'REVOKE ALL ON FUNCTION %I.session_visibility_lifecycle_capability_held() FROM PUBLIC',
|
|
594
|
+
${literal(schema)}
|
|
595
|
+
);
|
|
596
|
+
EXECUTE format(
|
|
597
|
+
'GRANT EXECUTE ON FUNCTION %I.session_visibility_lifecycle_capability_held() TO %I',
|
|
598
|
+
${literal(schema)},
|
|
599
|
+
${literal(role)}
|
|
600
|
+
);
|
|
601
|
+
END IF;
|
|
602
|
+
-- Migration 0300's tenancy backfill ledger seam has the same shape: its
|
|
603
|
+
-- own conditional GRANT block is skipped whenever opengeni_app does not
|
|
604
|
+
-- yet exist, and these three live in the data schema rather than
|
|
605
|
+
-- opengeni_private, so the blanket sweep above never reaches them.
|
|
606
|
+
-- Re-converge them here so migrate-then-provision matches the reverse
|
|
607
|
+
-- order; without this the "only write path" seam is unreachable on a
|
|
608
|
+
-- green-field database.
|
|
609
|
+
FOR routine_signature IN
|
|
610
|
+
SELECT unnest(ARRAY[
|
|
611
|
+
'open_tenancy_backfill_receipt(uuid, text, text)',
|
|
612
|
+
'record_tenancy_backfill_unresolved(uuid, uuid, text)',
|
|
613
|
+
'complete_tenancy_backfill_receipt(uuid, bigint, bigint, text)'
|
|
614
|
+
])
|
|
615
|
+
LOOP
|
|
616
|
+
IF to_regprocedure(format('%I.%s', ${literal(schema)}, routine_signature))
|
|
617
|
+
IS NOT NULL
|
|
618
|
+
THEN
|
|
619
|
+
EXECUTE format(
|
|
620
|
+
'GRANT EXECUTE ON FUNCTION %I.%s TO %I',
|
|
621
|
+
${literal(schema)},
|
|
622
|
+
routine_signature,
|
|
623
|
+
${literal(role)}
|
|
624
|
+
);
|
|
625
|
+
END IF;
|
|
626
|
+
END LOOP;
|
|
627
|
+
-- Migration 0291's classification assertion seam has the same shape: its
|
|
628
|
+
-- own conditional GRANT block is skipped whenever opengeni_app does not yet
|
|
629
|
+
-- exist, and it lives in the data schema rather than opengeni_private, so
|
|
630
|
+
-- the blanket sweep above never reaches it. (Its inner capability predicate
|
|
631
|
+
-- IS in opengeni_private and is covered by that sweep.)
|
|
632
|
+
IF to_regprocedure(
|
|
633
|
+
format(
|
|
634
|
+
'%I.verify_organization_resource_classification(uuid,text)',
|
|
635
|
+
${literal(schema)}
|
|
636
|
+
)
|
|
637
|
+
) IS NOT NULL THEN
|
|
638
|
+
EXECUTE format(
|
|
639
|
+
'GRANT EXECUTE ON FUNCTION %I.verify_organization_resource_classification(uuid, text) TO %I',
|
|
640
|
+
${literal(schema)},
|
|
641
|
+
${literal(role)}
|
|
642
|
+
);
|
|
643
|
+
END IF;
|
|
644
|
+
-- Migration 0297's session ownership seams have the same shape: their own
|
|
645
|
+
-- conditional GRANT block is skipped whenever opengeni_app does not yet
|
|
646
|
+
-- exist, and they live in the data schema rather than opengeni_private, so
|
|
647
|
+
-- the blanket sweep above never reaches them. (Their inner capability
|
|
648
|
+
-- predicate IS in opengeni_private and is covered by that sweep.)
|
|
649
|
+
IF to_regprocedure(
|
|
650
|
+
format(
|
|
651
|
+
'%I.classify_organization_session_ownership(uuid,text)',
|
|
652
|
+
${literal(schema)}
|
|
653
|
+
)
|
|
654
|
+
) IS NOT NULL THEN
|
|
655
|
+
EXECUTE format(
|
|
656
|
+
'GRANT EXECUTE ON FUNCTION %I.classify_organization_session_ownership(uuid, text) TO %I',
|
|
657
|
+
${literal(schema)},
|
|
658
|
+
${literal(role)}
|
|
659
|
+
);
|
|
660
|
+
END IF;
|
|
661
|
+
IF to_regprocedure(
|
|
662
|
+
format(
|
|
663
|
+
'%I.backfill_organization_session_ownership(uuid,integer,boolean,text)',
|
|
664
|
+
${literal(schema)}
|
|
665
|
+
)
|
|
666
|
+
) IS NOT NULL THEN
|
|
667
|
+
EXECUTE format(
|
|
668
|
+
'GRANT EXECUTE ON FUNCTION %I.backfill_organization_session_ownership(uuid, integer, boolean, text) TO %I',
|
|
669
|
+
${literal(schema)},
|
|
670
|
+
${literal(role)}
|
|
671
|
+
);
|
|
672
|
+
END IF;
|
|
673
|
+
-- Migration 0340's bounded connection convergence and repaired parity
|
|
674
|
+
-- seams also live in the data schema. Converge their exact grants for the
|
|
675
|
+
-- supported migrate-then-provision order.
|
|
676
|
+
FOREACH routine_signature IN ARRAY ARRAY[
|
|
677
|
+
'classify_organization_connection_authority(uuid,text)',
|
|
678
|
+
'backfill_organization_connection_authority(uuid,integer,boolean)',
|
|
679
|
+
'inspect_organization_connection_authority_convergence(uuid,integer,uuid)',
|
|
680
|
+
'check_organization_tenancy_parity(uuid,integer,integer)'
|
|
681
|
+
] LOOP
|
|
682
|
+
IF to_regprocedure(format('%I.%s', ${literal(schema)}, routine_signature))
|
|
683
|
+
IS NOT NULL
|
|
684
|
+
THEN
|
|
685
|
+
EXECUTE format(
|
|
686
|
+
'GRANT EXECUTE ON FUNCTION %I.%s TO %I',
|
|
687
|
+
${literal(schema)},
|
|
688
|
+
routine_signature,
|
|
689
|
+
${literal(role)}
|
|
690
|
+
);
|
|
691
|
+
END IF;
|
|
692
|
+
END LOOP;
|
|
693
|
+
IF to_regclass(
|
|
694
|
+
format(
|
|
695
|
+
'%I.connection_authority_convergence_audit_capabilities',
|
|
696
|
+
${literal(schema)}
|
|
697
|
+
)
|
|
698
|
+
) IS NOT NULL THEN
|
|
699
|
+
EXECUTE format(
|
|
700
|
+
'REVOKE ALL PRIVILEGES ON TABLE %I.connection_authority_convergence_audit_capabilities FROM %I',
|
|
701
|
+
${literal(schema)},
|
|
702
|
+
${literal(role)}
|
|
703
|
+
);
|
|
704
|
+
END IF;
|
|
546
705
|
-- Migration 0110 creates this target-schema-local SECURITY DEFINER
|
|
547
706
|
-- capability before opengeni_app may exist. Re-converge its exact EXECUTE
|
|
548
707
|
-- grant here so the supported migrate-then-provision order is equivalent to
|
|
@@ -613,6 +772,33 @@ BEGIN
|
|
|
613
772
|
${literal(role)}
|
|
614
773
|
);
|
|
615
774
|
END IF;
|
|
775
|
+
-- Migration 0289 creates this definer accessor before opengeni_app may
|
|
776
|
+
-- exist, so its migration-time GRANT is skipped on the supported
|
|
777
|
+
-- migrate-then-provision order. Re-converge it here.
|
|
778
|
+
IF to_regprocedure(
|
|
779
|
+
format(
|
|
780
|
+
'%I.preference_registry_activation_authority(uuid,uuid[])',
|
|
781
|
+
${literal(schema)}
|
|
782
|
+
)
|
|
783
|
+
) IS NOT NULL THEN
|
|
784
|
+
EXECUTE format(
|
|
785
|
+
'GRANT EXECUTE ON FUNCTION %I.preference_registry_activation_authority(uuid, uuid[]) TO %I',
|
|
786
|
+
${literal(schema)},
|
|
787
|
+
${literal(role)}
|
|
788
|
+
);
|
|
789
|
+
END IF;
|
|
790
|
+
IF to_regprocedure(
|
|
791
|
+
format(
|
|
792
|
+
'%I.preference_registry_create_knowledge_proposal_for_attempt(uuid,uuid,uuid,uuid,uuid,integer,uuid,text,uuid,text,text,text,text,integer,text,jsonb,timestamptz,text)',
|
|
793
|
+
${literal(schema)}
|
|
794
|
+
)
|
|
795
|
+
) IS NOT NULL THEN
|
|
796
|
+
EXECUTE format(
|
|
797
|
+
'GRANT EXECUTE ON FUNCTION %I.preference_registry_create_knowledge_proposal_for_attempt(uuid, uuid, uuid, uuid, uuid, integer, uuid, text, uuid, text, text, text, text, integer, text, jsonb, timestamptz, text) TO %I',
|
|
798
|
+
${literal(schema)},
|
|
799
|
+
${literal(role)}
|
|
800
|
+
);
|
|
801
|
+
END IF;
|
|
616
802
|
IF to_regprocedure(
|
|
617
803
|
format(
|
|
618
804
|
'%I.create_task_note_for_attempt(uuid,uuid,uuid,uuid,uuid,integer,uuid,text,text,integer)',
|
|
@@ -635,6 +821,129 @@ BEGIN
|
|
|
635
821
|
${literal(role)}
|
|
636
822
|
);
|
|
637
823
|
END IF;
|
|
824
|
+
IF to_regprocedure(
|
|
825
|
+
format(
|
|
826
|
+
'%I.company_brain_context_get_or_create_selection(uuid,uuid,uuid,uuid,uuid,integer)',
|
|
827
|
+
${literal(schema)}
|
|
828
|
+
)
|
|
829
|
+
) IS NOT NULL THEN
|
|
830
|
+
EXECUTE format(
|
|
831
|
+
'GRANT EXECUTE ON FUNCTION %I.company_brain_context_get_or_create_selection(uuid, uuid, uuid, uuid, uuid, integer) TO %I',
|
|
832
|
+
${literal(schema)},
|
|
833
|
+
${literal(role)}
|
|
834
|
+
);
|
|
835
|
+
END IF;
|
|
836
|
+
IF to_regprocedure(
|
|
837
|
+
format(
|
|
838
|
+
'%I.company_brain_inspect_context_receipts(uuid,uuid,text,uuid,timestamptz,uuid,integer)',
|
|
839
|
+
${literal(schema)}
|
|
840
|
+
)
|
|
841
|
+
) IS NOT NULL THEN
|
|
842
|
+
EXECUTE format(
|
|
843
|
+
'GRANT EXECUTE ON FUNCTION %I.company_brain_inspect_context_receipts(uuid, uuid, text, uuid, timestamptz, uuid, integer) TO %I',
|
|
844
|
+
${literal(schema)},
|
|
845
|
+
${literal(role)}
|
|
846
|
+
);
|
|
847
|
+
END IF;
|
|
848
|
+
IF to_regprocedure(
|
|
849
|
+
format(
|
|
850
|
+
'%I.evaluate_governed_learning_proposal(uuid,uuid,uuid,uuid,uuid,integer,uuid,uuid,uuid,uuid,uuid)',
|
|
851
|
+
${literal(schema)}
|
|
852
|
+
)
|
|
853
|
+
) IS NOT NULL THEN
|
|
854
|
+
EXECUTE format(
|
|
855
|
+
'GRANT EXECUTE ON FUNCTION %I.evaluate_governed_learning_proposal(uuid, uuid, uuid, uuid, uuid, integer, uuid, uuid, uuid, uuid, uuid) TO %I',
|
|
856
|
+
${literal(schema)},
|
|
857
|
+
${literal(role)}
|
|
858
|
+
);
|
|
859
|
+
END IF;
|
|
860
|
+
IF to_regprocedure(
|
|
861
|
+
format('%I.activate_governed_learning_decision(uuid,uuid,uuid,uuid)', ${literal(schema)})
|
|
862
|
+
) IS NOT NULL THEN
|
|
863
|
+
EXECUTE format(
|
|
864
|
+
'GRANT EXECUTE ON FUNCTION %I.activate_governed_learning_decision(uuid, uuid, uuid, uuid) TO %I',
|
|
865
|
+
${literal(schema)},
|
|
866
|
+
${literal(role)}
|
|
867
|
+
);
|
|
868
|
+
END IF;
|
|
869
|
+
IF to_regprocedure(
|
|
870
|
+
format('%I.activate_human_confirmed_learning_decision(uuid,uuid,uuid,uuid,uuid)', ${literal(schema)})
|
|
871
|
+
) IS NOT NULL THEN
|
|
872
|
+
EXECUTE format(
|
|
873
|
+
'GRANT EXECUTE ON FUNCTION %I.activate_human_confirmed_learning_decision(uuid, uuid, uuid, uuid, uuid) TO %I',
|
|
874
|
+
${literal(schema)},
|
|
875
|
+
${literal(role)}
|
|
876
|
+
);
|
|
877
|
+
END IF;
|
|
878
|
+
IF to_regprocedure(
|
|
879
|
+
format('%I.confirm_remember_knowledge_claim(uuid,uuid,uuid,uuid,integer,uuid,uuid,uuid)', ${literal(schema)})
|
|
880
|
+
) IS NOT NULL THEN
|
|
881
|
+
EXECUTE format(
|
|
882
|
+
'GRANT EXECUTE ON FUNCTION %I.confirm_remember_knowledge_claim(uuid, uuid, uuid, uuid, integer, uuid, uuid, uuid) TO %I',
|
|
883
|
+
${literal(schema)},
|
|
884
|
+
${literal(role)}
|
|
885
|
+
);
|
|
886
|
+
END IF;
|
|
887
|
+
IF to_regprocedure(
|
|
888
|
+
format('%I.undo_governed_learning_activation(uuid,uuid,uuid,uuid)', ${literal(schema)})
|
|
889
|
+
) IS NOT NULL THEN
|
|
890
|
+
EXECUTE format(
|
|
891
|
+
'GRANT EXECUTE ON FUNCTION %I.undo_governed_learning_activation(uuid, uuid, uuid, uuid) TO %I',
|
|
892
|
+
${literal(schema)},
|
|
893
|
+
${literal(role)}
|
|
894
|
+
);
|
|
895
|
+
END IF;
|
|
896
|
+
IF to_regprocedure(
|
|
897
|
+
format('%I.inspect_governed_learning_decisions(uuid,uuid,text,integer)', ${literal(schema)})
|
|
898
|
+
) IS NOT NULL THEN
|
|
899
|
+
EXECUTE format(
|
|
900
|
+
'GRANT EXECUTE ON FUNCTION %I.inspect_governed_learning_decisions(uuid, uuid, text, integer) TO %I',
|
|
901
|
+
${literal(schema)},
|
|
902
|
+
${literal(role)}
|
|
903
|
+
);
|
|
904
|
+
END IF;
|
|
905
|
+
IF to_regprocedure(
|
|
906
|
+
format('%I.inspect_governed_learning_activations(uuid,uuid,text,integer)', ${literal(schema)})
|
|
907
|
+
) IS NOT NULL THEN
|
|
908
|
+
EXECUTE format(
|
|
909
|
+
'GRANT EXECUTE ON FUNCTION %I.inspect_governed_learning_activations(uuid, uuid, text, integer) TO %I',
|
|
910
|
+
${literal(schema)},
|
|
911
|
+
${literal(role)}
|
|
912
|
+
);
|
|
913
|
+
END IF;
|
|
914
|
+
IF to_regprocedure(
|
|
915
|
+
format('%I.inspect_governed_learning_activation_undos(uuid,uuid,text,integer)', ${literal(schema)})
|
|
916
|
+
) IS NOT NULL THEN
|
|
917
|
+
EXECUTE format(
|
|
918
|
+
'GRANT EXECUTE ON FUNCTION %I.inspect_governed_learning_activation_undos(uuid, uuid, text, integer) TO %I',
|
|
919
|
+
${literal(schema)},
|
|
920
|
+
${literal(role)}
|
|
921
|
+
);
|
|
922
|
+
END IF;
|
|
923
|
+
IF to_regprocedure(
|
|
924
|
+
format(
|
|
925
|
+
'%I.replace_task_note_for_attempt(uuid,uuid,uuid,uuid,uuid,integer,uuid,uuid,uuid,uuid,integer,text,text,integer,text)',
|
|
926
|
+
${literal(schema)}
|
|
927
|
+
)
|
|
928
|
+
) IS NOT NULL THEN
|
|
929
|
+
EXECUTE format(
|
|
930
|
+
'GRANT EXECUTE ON FUNCTION %I.replace_task_note_for_attempt(uuid, uuid, uuid, uuid, uuid, integer, uuid, uuid, uuid, uuid, integer, text, text, integer, text) TO %I',
|
|
931
|
+
${literal(schema)},
|
|
932
|
+
${literal(role)}
|
|
933
|
+
);
|
|
934
|
+
END IF;
|
|
935
|
+
IF to_regprocedure(
|
|
936
|
+
format(
|
|
937
|
+
'%I.resolve_task_note_knowledge_promotion_source(uuid,uuid,uuid,uuid,uuid,integer,uuid,integer,text,text,text)',
|
|
938
|
+
${literal(schema)}
|
|
939
|
+
)
|
|
940
|
+
) IS NOT NULL THEN
|
|
941
|
+
EXECUTE format(
|
|
942
|
+
'GRANT EXECUTE ON FUNCTION %I.resolve_task_note_knowledge_promotion_source(uuid, uuid, uuid, uuid, uuid, integer, uuid, integer, text, text, text) TO %I',
|
|
943
|
+
${literal(schema)},
|
|
944
|
+
${literal(role)}
|
|
945
|
+
);
|
|
946
|
+
END IF;
|
|
638
947
|
IF to_regprocedure(
|
|
639
948
|
format(
|
|
640
949
|
'%I.workspace_instruction_policy_get_or_create_snapshot(uuid,uuid,uuid,uuid,uuid,integer)',
|
|
@@ -671,6 +980,30 @@ BEGIN
|
|
|
671
980
|
${literal(role)}
|
|
672
981
|
);
|
|
673
982
|
END IF;
|
|
983
|
+
IF to_regprocedure(
|
|
984
|
+
format(
|
|
985
|
+
'%I.propose_company_profile_for_attempt(uuid,uuid,uuid,uuid,uuid,integer,uuid,text,text,text)',
|
|
986
|
+
${literal(schema)}
|
|
987
|
+
)
|
|
988
|
+
) IS NOT NULL THEN
|
|
989
|
+
EXECUTE format(
|
|
990
|
+
'GRANT EXECUTE ON FUNCTION %I.propose_company_profile_for_attempt(uuid, uuid, uuid, uuid, uuid, integer, uuid, text, text, text) TO %I',
|
|
991
|
+
${literal(schema)},
|
|
992
|
+
${literal(role)}
|
|
993
|
+
);
|
|
994
|
+
END IF;
|
|
995
|
+
IF to_regprocedure(
|
|
996
|
+
format(
|
|
997
|
+
'%I.confirm_company_profile_for_attempt(uuid,uuid,uuid,uuid,uuid,integer,uuid,uuid,uuid)',
|
|
998
|
+
${literal(schema)}
|
|
999
|
+
)
|
|
1000
|
+
) IS NOT NULL THEN
|
|
1001
|
+
EXECUTE format(
|
|
1002
|
+
'GRANT EXECUTE ON FUNCTION %I.confirm_company_profile_for_attempt(uuid, uuid, uuid, uuid, uuid, integer, uuid, uuid, uuid) TO %I',
|
|
1003
|
+
${literal(schema)},
|
|
1004
|
+
${literal(role)}
|
|
1005
|
+
);
|
|
1006
|
+
END IF;
|
|
674
1007
|
IF to_regprocedure(
|
|
675
1008
|
format(
|
|
676
1009
|
'%I.workspace_learning_policy_apply_activation(uuid,text,uuid,uuid,uuid,uuid,bigint,text,text,text)',
|
|
@@ -809,6 +1142,18 @@ BEGIN
|
|
|
809
1142
|
${literal(role)}
|
|
810
1143
|
);
|
|
811
1144
|
END IF;
|
|
1145
|
+
FOREACH routine_signature IN ARRAY ${organizationMembershipLifecycleRoutines} LOOP
|
|
1146
|
+
IF to_regprocedure(format('%I.%s', ${literal(schema)}, routine_signature)) IS NOT NULL THEN
|
|
1147
|
+
EXECUTE format(
|
|
1148
|
+
'REVOKE ALL ON FUNCTION %I.%s FROM PUBLIC',
|
|
1149
|
+
${literal(schema)}, routine_signature
|
|
1150
|
+
);
|
|
1151
|
+
EXECUTE format(
|
|
1152
|
+
'GRANT EXECUTE ON FUNCTION %I.%s TO %I',
|
|
1153
|
+
${literal(schema)}, routine_signature, ${literal(role)}
|
|
1154
|
+
);
|
|
1155
|
+
END IF;
|
|
1156
|
+
END LOOP;
|
|
812
1157
|
IF to_regprocedure(format('%I.ensure_canonical_human_identity(text,text)', ${literal(schema)})) IS NOT NULL THEN
|
|
813
1158
|
EXECUTE format(
|
|
814
1159
|
'REVOKE ALL ON FUNCTION %I.ensure_canonical_human_identity(text, text) FROM PUBLIC',
|
|
@@ -891,36 +1236,185 @@ BEGIN
|
|
|
891
1236
|
END IF;
|
|
892
1237
|
IF to_regprocedure(
|
|
893
1238
|
format(
|
|
894
|
-
'%I.transition_session_visibility(uuid,uuid,uuid,text,text,integer,text,text)',
|
|
1239
|
+
'%I.transition_session_visibility(uuid,uuid,uuid,text,text,integer,text,text,integer)',
|
|
895
1240
|
${literal(schema)}
|
|
896
1241
|
)
|
|
897
1242
|
) IS NOT NULL THEN
|
|
898
1243
|
EXECUTE format(
|
|
899
|
-
'REVOKE ALL ON FUNCTION %I.transition_session_visibility(uuid, uuid, uuid, text, text, integer, text, text) FROM PUBLIC',
|
|
1244
|
+
'REVOKE ALL ON FUNCTION %I.transition_session_visibility(uuid, uuid, uuid, text, text, integer, text, text, integer) FROM PUBLIC',
|
|
900
1245
|
${literal(schema)}
|
|
901
1246
|
);
|
|
902
1247
|
EXECUTE format(
|
|
903
|
-
'GRANT EXECUTE ON FUNCTION %I.transition_session_visibility(uuid, uuid, uuid, text, text, integer, text, text) TO %I',
|
|
1248
|
+
'GRANT EXECUTE ON FUNCTION %I.transition_session_visibility(uuid, uuid, uuid, text, text, integer, text, text, integer) TO %I',
|
|
904
1249
|
${literal(schema)},
|
|
905
1250
|
${literal(role)}
|
|
906
1251
|
);
|
|
907
1252
|
END IF;
|
|
908
1253
|
IF to_regprocedure(
|
|
909
1254
|
format(
|
|
910
|
-
'%I.fork_session_content(uuid,uuid,uuid,text,uuid,text,text,text)',
|
|
1255
|
+
'%I.fork_session_content(uuid,uuid,uuid,text,uuid,text,text,text,integer)',
|
|
911
1256
|
${literal(schema)}
|
|
912
1257
|
)
|
|
913
1258
|
) IS NOT NULL THEN
|
|
914
1259
|
EXECUTE format(
|
|
915
|
-
'REVOKE ALL ON FUNCTION %I.fork_session_content(uuid, uuid, uuid, text, uuid, text, text, text) FROM PUBLIC',
|
|
1260
|
+
'REVOKE ALL ON FUNCTION %I.fork_session_content(uuid, uuid, uuid, text, uuid, text, text, text, integer) FROM PUBLIC',
|
|
916
1261
|
${literal(schema)}
|
|
917
1262
|
);
|
|
918
1263
|
EXECUTE format(
|
|
919
|
-
'GRANT EXECUTE ON FUNCTION %I.fork_session_content(uuid, uuid, uuid, text, uuid, text, text, text) TO %I',
|
|
1264
|
+
'GRANT EXECUTE ON FUNCTION %I.fork_session_content(uuid, uuid, uuid, text, uuid, text, text, text, integer) TO %I',
|
|
920
1265
|
${literal(schema)},
|
|
921
1266
|
${literal(role)}
|
|
922
1267
|
);
|
|
923
1268
|
END IF;
|
|
1269
|
+
IF to_regprocedure(
|
|
1270
|
+
format(
|
|
1271
|
+
'%I.fork_session_content(uuid,uuid,uuid,text,uuid,text,boolean,text,text,integer)',
|
|
1272
|
+
${literal(schema)}
|
|
1273
|
+
)
|
|
1274
|
+
) IS NOT NULL THEN
|
|
1275
|
+
EXECUTE format(
|
|
1276
|
+
'REVOKE ALL ON FUNCTION %I.fork_session_content(uuid, uuid, uuid, text, uuid, text, boolean, text, text, integer) FROM PUBLIC',
|
|
1277
|
+
${literal(schema)}
|
|
1278
|
+
);
|
|
1279
|
+
EXECUTE format(
|
|
1280
|
+
'GRANT EXECUTE ON FUNCTION %I.fork_session_content(uuid, uuid, uuid, text, uuid, text, boolean, text, text, integer) TO %I',
|
|
1281
|
+
${literal(schema)},
|
|
1282
|
+
${literal(role)}
|
|
1283
|
+
);
|
|
1284
|
+
END IF;
|
|
1285
|
+
IF to_regprocedure(
|
|
1286
|
+
format(
|
|
1287
|
+
'%I.replay_applied_session_fork(uuid,uuid,uuid,text,uuid,text,boolean,text,text,integer)',
|
|
1288
|
+
${literal(schema)}
|
|
1289
|
+
)
|
|
1290
|
+
) IS NOT NULL THEN
|
|
1291
|
+
EXECUTE format(
|
|
1292
|
+
'REVOKE ALL ON FUNCTION %I.replay_applied_session_fork(uuid, uuid, uuid, text, uuid, text, boolean, text, text, integer) FROM PUBLIC',
|
|
1293
|
+
${literal(schema)}
|
|
1294
|
+
);
|
|
1295
|
+
EXECUTE format(
|
|
1296
|
+
'GRANT EXECUTE ON FUNCTION %I.replay_applied_session_fork(uuid, uuid, uuid, text, uuid, text, boolean, text, text, integer) TO %I',
|
|
1297
|
+
${literal(schema)},
|
|
1298
|
+
${literal(role)}
|
|
1299
|
+
);
|
|
1300
|
+
END IF;
|
|
1301
|
+
IF to_regprocedure(
|
|
1302
|
+
format('%I.session_tenancy_product_activated(uuid,integer)', ${literal(schema)})
|
|
1303
|
+
) IS NOT NULL THEN
|
|
1304
|
+
EXECUTE format(
|
|
1305
|
+
'REVOKE ALL ON FUNCTION %I.session_tenancy_product_activated(uuid, integer) FROM PUBLIC',
|
|
1306
|
+
${literal(schema)}
|
|
1307
|
+
);
|
|
1308
|
+
EXECUTE format(
|
|
1309
|
+
'GRANT EXECUTE ON FUNCTION %I.session_tenancy_product_activated(uuid, integer) TO %I',
|
|
1310
|
+
${literal(schema)},
|
|
1311
|
+
${literal(role)}
|
|
1312
|
+
);
|
|
1313
|
+
EXECUTE format(
|
|
1314
|
+
'REVOKE ALL ON FUNCTION %I.session_tenancy_any_product_activation() FROM PUBLIC',
|
|
1315
|
+
${literal(schema)}
|
|
1316
|
+
);
|
|
1317
|
+
EXECUTE format(
|
|
1318
|
+
'GRANT EXECUTE ON FUNCTION %I.session_tenancy_any_product_activation() TO %I',
|
|
1319
|
+
${literal(schema)},
|
|
1320
|
+
${literal(role)}
|
|
1321
|
+
);
|
|
1322
|
+
EXECUTE format(
|
|
1323
|
+
'REVOKE ALL ON FUNCTION %I.assert_session_tenancy_quiescent(uuid, uuid, uuid, boolean) FROM PUBLIC',
|
|
1324
|
+
${literal(schema)}
|
|
1325
|
+
);
|
|
1326
|
+
EXECUTE format(
|
|
1327
|
+
'REVOKE ALL ON FUNCTION %I.assert_session_tenancy_quiescent(uuid, uuid, uuid, boolean) FROM %I',
|
|
1328
|
+
${literal(schema)},
|
|
1329
|
+
${literal(role)}
|
|
1330
|
+
);
|
|
1331
|
+
END IF;
|
|
1332
|
+
IF to_regprocedure(
|
|
1333
|
+
format('%I.get_private_session_create_policy(uuid,uuid,text)', ${literal(schema)})
|
|
1334
|
+
) IS NOT NULL THEN
|
|
1335
|
+
EXECUTE format(
|
|
1336
|
+
'REVOKE ALL ON FUNCTION %I.get_private_session_create_policy(uuid, uuid, text) FROM PUBLIC',
|
|
1337
|
+
${literal(schema)}
|
|
1338
|
+
);
|
|
1339
|
+
EXECUTE format(
|
|
1340
|
+
'GRANT EXECUTE ON FUNCTION %I.get_private_session_create_policy(uuid, uuid, text) TO %I',
|
|
1341
|
+
${literal(schema)}, ${literal(role)}
|
|
1342
|
+
);
|
|
1343
|
+
END IF;
|
|
1344
|
+
IF to_regprocedure(
|
|
1345
|
+
format('%I.get_organization_private_session_settings(uuid,text)', ${literal(schema)})
|
|
1346
|
+
) IS NOT NULL THEN
|
|
1347
|
+
EXECUTE format(
|
|
1348
|
+
'REVOKE ALL ON FUNCTION %I.get_organization_private_session_settings(uuid, text) FROM PUBLIC',
|
|
1349
|
+
${literal(schema)}
|
|
1350
|
+
);
|
|
1351
|
+
EXECUTE format(
|
|
1352
|
+
'GRANT EXECUTE ON FUNCTION %I.get_organization_private_session_settings(uuid, text) TO %I',
|
|
1353
|
+
${literal(schema)}, ${literal(role)}
|
|
1354
|
+
);
|
|
1355
|
+
END IF;
|
|
1356
|
+
IF to_regprocedure(
|
|
1357
|
+
format(
|
|
1358
|
+
'%I.update_organization_private_session_settings(uuid,text,boolean,bigint,uuid)',
|
|
1359
|
+
${literal(schema)}
|
|
1360
|
+
)
|
|
1361
|
+
) IS NOT NULL THEN
|
|
1362
|
+
EXECUTE format(
|
|
1363
|
+
'REVOKE ALL ON FUNCTION %I.update_organization_private_session_settings(uuid, text, boolean, bigint, uuid) FROM PUBLIC',
|
|
1364
|
+
${literal(schema)}
|
|
1365
|
+
);
|
|
1366
|
+
EXECUTE format(
|
|
1367
|
+
'GRANT EXECUTE ON FUNCTION %I.update_organization_private_session_settings(uuid, text, boolean, bigint, uuid) TO %I',
|
|
1368
|
+
${literal(schema)}, ${literal(role)}
|
|
1369
|
+
);
|
|
1370
|
+
END IF;
|
|
1371
|
+
IF to_regprocedure(
|
|
1372
|
+
format('%I.organization_private_sessions_enabled(uuid)', ${literal(schema)})
|
|
1373
|
+
) IS NOT NULL THEN
|
|
1374
|
+
EXECUTE format(
|
|
1375
|
+
'REVOKE ALL ON FUNCTION %I.organization_private_sessions_enabled(uuid) FROM PUBLIC',
|
|
1376
|
+
${literal(schema)}
|
|
1377
|
+
);
|
|
1378
|
+
EXECUTE format(
|
|
1379
|
+
'REVOKE ALL ON FUNCTION %I.organization_private_sessions_enabled(uuid) FROM %I',
|
|
1380
|
+
${literal(schema)}, ${literal(role)}
|
|
1381
|
+
);
|
|
1382
|
+
END IF;
|
|
1383
|
+
IF to_regprocedure(
|
|
1384
|
+
format('%I.open_private_session_create_capability(uuid,uuid,uuid,text)', ${literal(schema)})
|
|
1385
|
+
) IS NOT NULL THEN
|
|
1386
|
+
EXECUTE format(
|
|
1387
|
+
'REVOKE ALL ON FUNCTION %I.open_private_session_create_capability(uuid, uuid, uuid, text) FROM PUBLIC',
|
|
1388
|
+
${literal(schema)}
|
|
1389
|
+
);
|
|
1390
|
+
EXECUTE format(
|
|
1391
|
+
'GRANT EXECUTE ON FUNCTION %I.open_private_session_create_capability(uuid, uuid, uuid, text) TO %I',
|
|
1392
|
+
${literal(schema)}, ${literal(role)}
|
|
1393
|
+
);
|
|
1394
|
+
EXECUTE format(
|
|
1395
|
+
'REVOKE ALL ON FUNCTION %I.close_private_session_create_capability(uuid) FROM PUBLIC',
|
|
1396
|
+
${literal(schema)}
|
|
1397
|
+
);
|
|
1398
|
+
EXECUTE format(
|
|
1399
|
+
'GRANT EXECUTE ON FUNCTION %I.close_private_session_create_capability(uuid) TO %I',
|
|
1400
|
+
${literal(schema)}, ${literal(role)}
|
|
1401
|
+
);
|
|
1402
|
+
END IF;
|
|
1403
|
+
IF to_regprocedure(
|
|
1404
|
+
format(
|
|
1405
|
+
'%I.open_private_child_session_create_capability(uuid,uuid,uuid,uuid,uuid,uuid,integer)',
|
|
1406
|
+
${literal(schema)}
|
|
1407
|
+
)
|
|
1408
|
+
) IS NOT NULL THEN
|
|
1409
|
+
EXECUTE format(
|
|
1410
|
+
'REVOKE ALL ON FUNCTION %I.open_private_child_session_create_capability(uuid,uuid,uuid,uuid,uuid,uuid,integer) FROM PUBLIC',
|
|
1411
|
+
${literal(schema)}
|
|
1412
|
+
);
|
|
1413
|
+
EXECUTE format(
|
|
1414
|
+
'GRANT EXECUTE ON FUNCTION %I.open_private_child_session_create_capability(uuid,uuid,uuid,uuid,uuid,uuid,integer) TO %I',
|
|
1415
|
+
${literal(schema)}, ${literal(role)}
|
|
1416
|
+
);
|
|
1417
|
+
END IF;
|
|
924
1418
|
IF to_regprocedure(
|
|
925
1419
|
format(
|
|
926
1420
|
'%I.create_xai_subscription_credential(uuid,uuid,text,text,text,text,text,text,text,timestamptz)',
|
|
@@ -991,6 +1485,352 @@ BEGIN
|
|
|
991
1485
|
${literal(role)}
|
|
992
1486
|
);
|
|
993
1487
|
END IF;
|
|
1488
|
+
IF to_regprocedure(
|
|
1489
|
+
format(
|
|
1490
|
+
'%I.resolve_session_attempt_personal_resources(uuid,uuid,uuid)',
|
|
1491
|
+
${literal(schema)}
|
|
1492
|
+
)
|
|
1493
|
+
) IS NOT NULL THEN
|
|
1494
|
+
EXECUTE format(
|
|
1495
|
+
'REVOKE ALL ON FUNCTION %I.resolve_session_attempt_personal_resources(uuid, uuid, uuid) FROM PUBLIC',
|
|
1496
|
+
${literal(schema)}
|
|
1497
|
+
);
|
|
1498
|
+
EXECUTE format(
|
|
1499
|
+
'GRANT EXECUTE ON FUNCTION %I.resolve_session_attempt_personal_resources(uuid, uuid, uuid) TO %I',
|
|
1500
|
+
${literal(schema)},
|
|
1501
|
+
${literal(role)}
|
|
1502
|
+
);
|
|
1503
|
+
END IF;
|
|
1504
|
+
IF to_regprocedure(
|
|
1505
|
+
format(
|
|
1506
|
+
'%I.accept_turn_personal_resource_attachment(uuid,uuid,uuid,uuid,text,integer,boolean,integer)',
|
|
1507
|
+
${literal(schema)}
|
|
1508
|
+
)
|
|
1509
|
+
) IS NOT NULL THEN
|
|
1510
|
+
EXECUTE format(
|
|
1511
|
+
'REVOKE ALL ON FUNCTION %I.accept_turn_personal_resource_attachment(uuid, uuid, uuid, uuid, text, integer, boolean, integer) FROM PUBLIC',
|
|
1512
|
+
${literal(schema)}
|
|
1513
|
+
);
|
|
1514
|
+
EXECUTE format(
|
|
1515
|
+
'GRANT EXECUTE ON FUNCTION %I.accept_turn_personal_resource_attachment(uuid, uuid, uuid, uuid, text, integer, boolean, integer) TO %I',
|
|
1516
|
+
${literal(schema)},
|
|
1517
|
+
${literal(role)}
|
|
1518
|
+
);
|
|
1519
|
+
END IF;
|
|
1520
|
+
IF to_regprocedure(format('%I.list_self_user_resource_authorities(uuid,uuid,text,uuid,integer)', ${literal(schema)}))
|
|
1521
|
+
IS NOT NULL THEN
|
|
1522
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.list_self_user_resource_authorities(uuid) FROM PUBLIC', ${literal(schema)});
|
|
1523
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.list_self_user_resource_authorities(uuid) FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1524
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.issue_self_user_resource_grant(uuid, uuid, uuid, text, text, text, uuid, boolean) FROM PUBLIC', ${literal(schema)});
|
|
1525
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.issue_self_user_resource_grant(uuid, uuid, uuid, text, text, text, uuid, boolean) FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1526
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.revoke_self_user_resource_grant(uuid, uuid) FROM PUBLIC', ${literal(schema)});
|
|
1527
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.revoke_self_user_resource_grant(uuid, uuid) FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1528
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.list_self_user_resource_authorities(uuid, uuid, text, uuid, integer) FROM PUBLIC', ${literal(schema)});
|
|
1529
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.list_self_user_resource_authorities(uuid, uuid, text, uuid, integer) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1530
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.issue_self_user_resource_grant(uuid, uuid, uuid, text, text, text, uuid, integer, boolean) FROM PUBLIC', ${literal(schema)});
|
|
1531
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.issue_self_user_resource_grant(uuid, uuid, uuid, text, text, text, uuid, integer, boolean) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1532
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.revoke_self_user_resource_grant(uuid, uuid, uuid) FROM PUBLIC', ${literal(schema)});
|
|
1533
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.revoke_self_user_resource_grant(uuid, uuid, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1534
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.authorize_session_attempt_personal_resource_reads(uuid, uuid, uuid) FROM PUBLIC', ${literal(schema)});
|
|
1535
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.authorize_session_attempt_personal_resource_reads(uuid, uuid, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1536
|
+
END IF;
|
|
1537
|
+
IF to_regprocedure(format('%I.resolve_connection_use_authority(uuid,uuid,uuid,jsonb)', ${literal(schema)}))
|
|
1538
|
+
IS NOT NULL THEN
|
|
1539
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.list_self_connection_authorities(uuid) FROM PUBLIC', ${literal(schema)});
|
|
1540
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.list_self_connection_authorities(uuid) FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1541
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.issue_self_connection_use_grant(uuid, uuid, uuid, text, text, uuid, boolean) FROM PUBLIC', ${literal(schema)});
|
|
1542
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.issue_self_connection_use_grant(uuid, uuid, uuid, text, text, uuid, boolean) FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1543
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.revoke_self_connection_use_grant(uuid, uuid) FROM PUBLIC', ${literal(schema)});
|
|
1544
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.revoke_self_connection_use_grant(uuid, uuid) FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1545
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.resolve_connection_use_authority(uuid, uuid, uuid, jsonb) FROM PUBLIC', ${literal(schema)});
|
|
1546
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.resolve_connection_use_authority(uuid, uuid, uuid, jsonb) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1547
|
+
IF to_regprocedure(format('%I.resolve_personal_connection_authority_selection(uuid,uuid,text,uuid,jsonb)', ${literal(schema)})) IS NOT NULL THEN
|
|
1548
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.resolve_personal_connection_authority_selection(uuid, uuid, text, uuid, jsonb) FROM PUBLIC', ${literal(schema)});
|
|
1549
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.resolve_personal_connection_authority_selection(uuid, uuid, text, uuid, jsonb) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1550
|
+
END IF;
|
|
1551
|
+
IF to_regprocedure(format('%I.resolve_accepted_connection_use(uuid,uuid,uuid,uuid,uuid,integer,uuid,text,text,uuid,text,text,text,text)', ${literal(schema)})) IS NOT NULL THEN
|
|
1552
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.resolve_accepted_connection_use(uuid, uuid, uuid, uuid, uuid, integer, uuid, text, text, uuid, text, text, text, text) FROM PUBLIC', ${literal(schema)});
|
|
1553
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.resolve_accepted_connection_use(uuid, uuid, uuid, uuid, uuid, integer, uuid, text, text, uuid, text, text, text, text) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1554
|
+
END IF;
|
|
1555
|
+
END IF;
|
|
1556
|
+
IF to_regprocedure(
|
|
1557
|
+
format('%I.get_self_personal_github_repository_selection(uuid,uuid,text,uuid)', ${literal(schema)})
|
|
1558
|
+
) IS NOT NULL THEN
|
|
1559
|
+
EXECUTE format(
|
|
1560
|
+
'REVOKE ALL ON FUNCTION %I.get_self_personal_github_repository_selection(uuid,uuid,text,uuid) FROM PUBLIC',
|
|
1561
|
+
${literal(schema)}
|
|
1562
|
+
);
|
|
1563
|
+
EXECUTE format(
|
|
1564
|
+
'GRANT EXECUTE ON FUNCTION %I.get_self_personal_github_repository_selection(uuid,uuid,text,uuid) TO %I',
|
|
1565
|
+
${literal(schema)}, ${literal(role)}
|
|
1566
|
+
);
|
|
1567
|
+
EXECUTE format(
|
|
1568
|
+
'REVOKE ALL ON FUNCTION %I.mutate_self_personal_github_repository_selection(uuid,uuid,text,uuid,bigint,bigint,text,jsonb,boolean) FROM PUBLIC',
|
|
1569
|
+
${literal(schema)}
|
|
1570
|
+
);
|
|
1571
|
+
EXECUTE format(
|
|
1572
|
+
'GRANT EXECUTE ON FUNCTION %I.mutate_self_personal_github_repository_selection(uuid,uuid,text,uuid,bigint,bigint,text,jsonb,boolean) TO %I',
|
|
1573
|
+
${literal(schema)}, ${literal(role)}
|
|
1574
|
+
);
|
|
1575
|
+
EXECUTE format(
|
|
1576
|
+
'REVOKE ALL PRIVILEGES ON TABLE %I.personal_github_repository_selection_heads, %I.personal_github_repository_selections, %I.personal_github_repository_selection_operations FROM %I',
|
|
1577
|
+
${literal(schema)}, ${literal(schema)}, ${literal(schema)}, ${literal(role)}
|
|
1578
|
+
);
|
|
1579
|
+
END IF;
|
|
1580
|
+
IF to_regprocedure(
|
|
1581
|
+
format('%I.create_personal_document_authority(uuid,uuid,uuid)', ${literal(schema)})
|
|
1582
|
+
) IS NOT NULL THEN
|
|
1583
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.create_personal_document_authority(uuid, uuid, uuid) FROM PUBLIC', ${literal(schema)});
|
|
1584
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.create_personal_document_authority(uuid, uuid, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1585
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.resolve_document_original_file(uuid, uuid, text, uuid) FROM PUBLIC', ${literal(schema)});
|
|
1586
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.resolve_document_original_file(uuid, uuid, text, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1587
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.prepare_session_attempt_personal_document_reads(uuid, uuid, uuid, uuid) FROM PUBLIC', ${literal(schema)});
|
|
1588
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.prepare_session_attempt_personal_document_reads(uuid, uuid, uuid, uuid) FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1589
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.resolve_session_attempt_personal_document_reads(uuid, uuid, uuid, uuid) FROM PUBLIC', ${literal(schema)});
|
|
1590
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.resolve_session_attempt_personal_document_reads(uuid, uuid, uuid, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1591
|
+
EXECUTE format('REVOKE ALL ON FUNCTION opengeni_private.personal_document_authority_capability_active(text) FROM PUBLIC');
|
|
1592
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION opengeni_private.personal_document_authority_capability_active(text) TO %I', ${literal(role)});
|
|
1593
|
+
EXECUTE format('REVOKE ALL PRIVILEGES ON TABLE opengeni_private.personal_document_authority_capabilities FROM %I', ${literal(role)});
|
|
1594
|
+
EXECUTE format('REVOKE ALL PRIVILEGES ON TABLE %I.session_attempt_personal_document_admissions FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1595
|
+
EXECUTE format('REVOKE ALL PRIVILEGES ON TABLE %I.session_attempt_personal_document_snapshots FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1596
|
+
EXECUTE format('REVOKE ALL PRIVILEGES ON TABLE %I.personal_document_once_consumption_receipts FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1597
|
+
END IF;
|
|
1598
|
+
IF to_regprocedure(
|
|
1599
|
+
format('%I.reclassify_document_authority(jsonb)', ${literal(schema)})
|
|
1600
|
+
) IS NOT NULL THEN
|
|
1601
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.reclassify_document_authority(jsonb) FROM PUBLIC', ${literal(schema)});
|
|
1602
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.reclassify_document_authority(jsonb) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1603
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.list_document_authority_reclassifications(uuid, uuid, text, uuid, integer, timestamptz, uuid) FROM PUBLIC', ${literal(schema)});
|
|
1604
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.list_document_authority_reclassifications(uuid, uuid, text, uuid, integer, timestamptz, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1605
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.run_document_default_collection_backfill(jsonb) FROM PUBLIC', ${literal(schema)});
|
|
1606
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.run_document_default_collection_backfill(jsonb) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1607
|
+
EXECUTE format('REVOKE ALL ON FUNCTION opengeni_private.document_migration_capability_active(text) FROM PUBLIC');
|
|
1608
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION opengeni_private.document_migration_capability_active(text) TO %I', ${literal(role)});
|
|
1609
|
+
EXECUTE format('REVOKE ALL PRIVILEGES ON TABLE opengeni_private.document_migration_capabilities FROM %I', ${literal(role)});
|
|
1610
|
+
EXECUTE format('GRANT SELECT ON TABLE %I.document_authority_reclassifications TO %I', ${literal(schema)}, ${literal(role)});
|
|
1611
|
+
EXECUTE format('REVOKE INSERT, UPDATE, DELETE ON TABLE %I.document_authority_reclassifications FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1612
|
+
EXECUTE format('REVOKE ALL PRIVILEGES ON TABLE %I.document_default_collection_backfill_runs, %I.document_default_collection_backfill_operations, %I.document_default_collection_backfill_receipts FROM %I', ${literal(schema)}, ${literal(schema)}, ${literal(schema)}, ${literal(role)});
|
|
1613
|
+
IF to_regprocedure(
|
|
1614
|
+
format('%I.list_document_default_collection_backfill_runs(jsonb)', ${literal(schema)})
|
|
1615
|
+
) IS NOT NULL THEN
|
|
1616
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.list_document_default_collection_backfill_runs(jsonb) FROM PUBLIC', ${literal(schema)});
|
|
1617
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.list_document_default_collection_backfill_runs(jsonb) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1618
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.get_document_default_collection_backfill_audit(jsonb) FROM PUBLIC', ${literal(schema)});
|
|
1619
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.get_document_default_collection_backfill_audit(jsonb) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1620
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.list_organization_document_authority_reclassifications(jsonb) FROM PUBLIC', ${literal(schema)});
|
|
1621
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.list_organization_document_authority_reclassifications(jsonb) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1622
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.document_migration_audit_capability_active(text) FROM PUBLIC', ${literal(schema)});
|
|
1623
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.document_migration_audit_capability_active(text) FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1624
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.assert_document_migration_audit_authority(jsonb) FROM PUBLIC', ${literal(schema)});
|
|
1625
|
+
EXECUTE format('REVOKE ALL ON FUNCTION %I.assert_document_migration_audit_authority(jsonb) FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1626
|
+
EXECUTE format('REVOKE ALL PRIVILEGES ON TABLE %I.document_migration_audit_capabilities FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1627
|
+
END IF;
|
|
1628
|
+
END IF;
|
|
1629
|
+
IF to_regprocedure(
|
|
1630
|
+
format('%I.create_scoped_variable_set(uuid,uuid,text,text,text,jsonb,boolean)', ${literal(schema)})
|
|
1631
|
+
) IS NOT NULL THEN
|
|
1632
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.create_scoped_variable_set(uuid, uuid, text, text, text, jsonb, boolean) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1633
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.list_scoped_variable_sets(uuid, uuid, uuid, text, text) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1634
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.count_scoped_variable_sets(uuid, uuid, text) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1635
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.mutate_scoped_variable_set(uuid, uuid, uuid, text, text, boolean, text, boolean, text, text, boolean) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1636
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.read_scoped_variable_set_secret(uuid, uuid, uuid, text, text, text, uuid, uuid, uuid, integer) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1637
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.materialize_scoped_variable_set_for_attempt(uuid, uuid, uuid, uuid, uuid, integer, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1638
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.materialize_scoped_variable_set_for_session(uuid, uuid, uuid, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1639
|
+
EXECUTE format('REVOKE ALL PRIVILEGES ON TABLE %I.workspace_variable_sets FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1640
|
+
EXECUTE format('REVOKE ALL PRIVILEGES ON TABLE %I.workspace_variable_set_variables FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1641
|
+
END IF;
|
|
1642
|
+
IF to_regprocedure(
|
|
1643
|
+
format('%I.create_scoped_rig(uuid,uuid,text,text,text,text,jsonb,boolean)', ${literal(schema)})
|
|
1644
|
+
) IS NOT NULL THEN
|
|
1645
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.create_scoped_rig(uuid, uuid, text, text, text, text, jsonb, boolean) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1646
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.list_scoped_rigs(uuid, uuid, uuid, text, text) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1647
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.count_scoped_rigs(uuid, uuid, text) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1648
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.mutate_scoped_rig(uuid, uuid, uuid, text, text, boolean, text, boolean, boolean) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1649
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.finalize_scoped_enrollment(uuid, uuid, text, text, boolean, boolean, text, text, text, boolean) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1650
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.list_scoped_enrollments(uuid, uuid, uuid, text) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1651
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.get_scoped_sandbox(uuid, uuid, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1652
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.authorize_scoped_sandbox_attach(uuid, uuid, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1653
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.materialize_scoped_rig_version_for_attempt(uuid, uuid, uuid, uuid, uuid, integer) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1654
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.authorize_session_attempt_personal_machine(uuid, uuid, uuid, uuid, uuid, integer, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1655
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.assert_session_attempt_personal_machine(uuid, uuid, uuid, uuid, uuid, integer, uuid, boolean) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1656
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.list_scoped_machine_dependent_sessions(uuid, uuid, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1657
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION %I.detach_scoped_machine_dependent_sessions(uuid, uuid, uuid) TO %I', ${literal(schema)}, ${literal(role)});
|
|
1658
|
+
EXECUTE format('REVOKE ALL PRIVILEGES ON TABLE %I.session_attempt_connected_machine_authorizations FROM %I', ${literal(schema)}, ${literal(role)});
|
|
1659
|
+
END IF;
|
|
1660
|
+
IF to_regprocedure(
|
|
1661
|
+
format(
|
|
1662
|
+
'%I.freeze_scheduled_task_personal_resources(uuid,uuid,uuid,bigint)',
|
|
1663
|
+
${literal(schema)}
|
|
1664
|
+
)
|
|
1665
|
+
) IS NOT NULL THEN
|
|
1666
|
+
EXECUTE format(
|
|
1667
|
+
'REVOKE ALL ON FUNCTION %I.freeze_scheduled_task_personal_resources(uuid, uuid, uuid, bigint) FROM PUBLIC',
|
|
1668
|
+
${literal(schema)}
|
|
1669
|
+
);
|
|
1670
|
+
EXECUTE format(
|
|
1671
|
+
'GRANT EXECUTE ON FUNCTION %I.freeze_scheduled_task_personal_resources(uuid, uuid, uuid, bigint) TO %I',
|
|
1672
|
+
${literal(schema)},
|
|
1673
|
+
${literal(role)}
|
|
1674
|
+
);
|
|
1675
|
+
EXECUTE format(
|
|
1676
|
+
'REVOKE ALL ON FUNCTION %I.clone_scheduled_task_personal_resource_authority(uuid, uuid, uuid, bigint, bigint) FROM PUBLIC',
|
|
1677
|
+
${literal(schema)}
|
|
1678
|
+
);
|
|
1679
|
+
EXECUTE format(
|
|
1680
|
+
'GRANT EXECUTE ON FUNCTION %I.clone_scheduled_task_personal_resource_authority(uuid, uuid, uuid, bigint, bigint) TO %I',
|
|
1681
|
+
${literal(schema)},
|
|
1682
|
+
${literal(role)}
|
|
1683
|
+
);
|
|
1684
|
+
IF to_regprocedure(
|
|
1685
|
+
format(
|
|
1686
|
+
'%I.refresh_scheduled_task_personal_resources_clone_connections(uuid,uuid,uuid,bigint,bigint)',
|
|
1687
|
+
${literal(schema)}
|
|
1688
|
+
)
|
|
1689
|
+
) IS NOT NULL THEN
|
|
1690
|
+
EXECUTE format(
|
|
1691
|
+
'REVOKE ALL ON FUNCTION %I.refresh_scheduled_task_personal_resources_clone_connections(uuid, uuid, uuid, bigint, bigint) FROM PUBLIC',
|
|
1692
|
+
${literal(schema)}
|
|
1693
|
+
);
|
|
1694
|
+
EXECUTE format(
|
|
1695
|
+
'GRANT EXECUTE ON FUNCTION %I.refresh_scheduled_task_personal_resources_clone_connections(uuid, uuid, uuid, bigint, bigint) TO %I',
|
|
1696
|
+
${literal(schema)}, ${literal(role)}
|
|
1697
|
+
);
|
|
1698
|
+
EXECUTE format(
|
|
1699
|
+
'REVOKE ALL ON FUNCTION %I.create_scheduled_agent_run_with_admission(uuid, uuid, uuid, uuid, bigint, text, text, text, timestamp with time zone, timestamp with time zone, jsonb) FROM PUBLIC',
|
|
1700
|
+
${literal(schema)}
|
|
1701
|
+
);
|
|
1702
|
+
EXECUTE format(
|
|
1703
|
+
'GRANT EXECUTE ON FUNCTION %I.create_scheduled_agent_run_with_admission(uuid, uuid, uuid, uuid, bigint, text, text, text, timestamp with time zone, timestamp with time zone, jsonb) TO %I',
|
|
1704
|
+
${literal(schema)}, ${literal(role)}
|
|
1705
|
+
);
|
|
1706
|
+
EXECUTE format(
|
|
1707
|
+
'REVOKE ALL ON FUNCTION %I.scheduled_task_run_connection_authority_subject(uuid, uuid, uuid) FROM PUBLIC',
|
|
1708
|
+
${literal(schema)}
|
|
1709
|
+
);
|
|
1710
|
+
EXECUTE format(
|
|
1711
|
+
'GRANT EXECUTE ON FUNCTION %I.scheduled_task_run_connection_authority_subject(uuid, uuid, uuid) TO %I',
|
|
1712
|
+
${literal(schema)}, ${literal(role)}
|
|
1713
|
+
);
|
|
1714
|
+
EXECUTE format(
|
|
1715
|
+
'REVOKE ALL ON FUNCTION %I.scheduled_task_personal_resource_authority_subject(uuid, uuid, uuid, bigint) FROM PUBLIC',
|
|
1716
|
+
${literal(schema)}
|
|
1717
|
+
);
|
|
1718
|
+
EXECUTE format(
|
|
1719
|
+
'GRANT EXECUTE ON FUNCTION %I.scheduled_task_personal_resource_authority_subject(uuid, uuid, uuid, bigint) TO %I',
|
|
1720
|
+
${literal(schema)}, ${literal(role)}
|
|
1721
|
+
);
|
|
1722
|
+
EXECUTE format(
|
|
1723
|
+
'REVOKE ALL ON FUNCTION %I.record_scheduled_task_revision_authority(uuid, uuid, uuid, bigint) FROM PUBLIC',
|
|
1724
|
+
${literal(schema)}
|
|
1725
|
+
);
|
|
1726
|
+
EXECUTE format(
|
|
1727
|
+
'GRANT EXECUTE ON FUNCTION %I.record_scheduled_task_revision_authority(uuid, uuid, uuid, bigint) TO %I',
|
|
1728
|
+
${literal(schema)}, ${literal(role)}
|
|
1729
|
+
);
|
|
1730
|
+
EXECUTE format(
|
|
1731
|
+
'REVOKE ALL ON FUNCTION %I.clone_scheduled_task_revision_authority(uuid, uuid, uuid, bigint, bigint) FROM PUBLIC',
|
|
1732
|
+
${literal(schema)}
|
|
1733
|
+
);
|
|
1734
|
+
EXECUTE format(
|
|
1735
|
+
'GRANT EXECUTE ON FUNCTION %I.clone_scheduled_task_revision_authority(uuid, uuid, uuid, bigint, bigint) TO %I',
|
|
1736
|
+
${literal(schema)}, ${literal(role)}
|
|
1737
|
+
);
|
|
1738
|
+
EXECUTE format(
|
|
1739
|
+
'REVOKE ALL ON FUNCTION %I.scheduled_task_revision_authority_subject(uuid, uuid, uuid, bigint) FROM PUBLIC',
|
|
1740
|
+
${literal(schema)}
|
|
1741
|
+
);
|
|
1742
|
+
EXECUTE format(
|
|
1743
|
+
'GRANT EXECUTE ON FUNCTION %I.scheduled_task_revision_authority_subject(uuid, uuid, uuid, bigint) TO %I',
|
|
1744
|
+
${literal(schema)}, ${literal(role)}
|
|
1745
|
+
);
|
|
1746
|
+
EXECUTE format(
|
|
1747
|
+
'REVOKE ALL ON FUNCTION %I.scheduled_task_revision_authority_snapshot(uuid, uuid, uuid, bigint) FROM PUBLIC',
|
|
1748
|
+
${literal(schema)}
|
|
1749
|
+
);
|
|
1750
|
+
EXECUTE format(
|
|
1751
|
+
'GRANT EXECUTE ON FUNCTION %I.scheduled_task_revision_authority_snapshot(uuid, uuid, uuid, bigint) TO %I',
|
|
1752
|
+
${literal(schema)}, ${literal(role)}
|
|
1753
|
+
);
|
|
1754
|
+
EXECUTE format(
|
|
1755
|
+
'REVOKE ALL ON FUNCTION %I.validate_scheduled_agent_run_live_authority(uuid, uuid, uuid) FROM PUBLIC',
|
|
1756
|
+
${literal(schema)}
|
|
1757
|
+
);
|
|
1758
|
+
EXECUTE format(
|
|
1759
|
+
'GRANT EXECUTE ON FUNCTION %I.validate_scheduled_agent_run_live_authority(uuid, uuid, uuid) TO %I',
|
|
1760
|
+
${literal(schema)}, ${literal(role)}
|
|
1761
|
+
);
|
|
1762
|
+
EXECUTE format(
|
|
1763
|
+
'REVOKE ALL ON FUNCTION %I.scheduled_scoped_rig_version_metadata(uuid, uuid, text, uuid, uuid) FROM PUBLIC',
|
|
1764
|
+
${literal(schema)}
|
|
1765
|
+
);
|
|
1766
|
+
EXECUTE format(
|
|
1767
|
+
'GRANT EXECUTE ON FUNCTION %I.scheduled_scoped_rig_version_metadata(uuid, uuid, text, uuid, uuid) TO %I',
|
|
1768
|
+
${literal(schema)}, ${literal(role)}
|
|
1769
|
+
);
|
|
1770
|
+
EXECUTE format(
|
|
1771
|
+
'REVOKE ALL ON FUNCTION %I.scheduled_variable_set_expected_generation_for_attempt(uuid, uuid, uuid, uuid, uuid, integer, uuid) FROM PUBLIC',
|
|
1772
|
+
${literal(schema)}
|
|
1773
|
+
);
|
|
1774
|
+
EXECUTE format(
|
|
1775
|
+
'GRANT EXECUTE ON FUNCTION %I.scheduled_variable_set_expected_generation_for_attempt(uuid, uuid, uuid, uuid, uuid, integer, uuid) TO %I',
|
|
1776
|
+
${literal(schema)}, ${literal(role)}
|
|
1777
|
+
);
|
|
1778
|
+
EXECUTE format(
|
|
1779
|
+
'REVOKE ALL ON FUNCTION %I.bind_scheduled_task_run_session(uuid, uuid, uuid, uuid) FROM PUBLIC',
|
|
1780
|
+
${literal(schema)}
|
|
1781
|
+
);
|
|
1782
|
+
EXECUTE format(
|
|
1783
|
+
'GRANT EXECUTE ON FUNCTION %I.bind_scheduled_task_run_session(uuid, uuid, uuid, uuid) TO %I',
|
|
1784
|
+
${literal(schema)}, ${literal(role)}
|
|
1785
|
+
);
|
|
1786
|
+
EXECUTE format(
|
|
1787
|
+
'REVOKE ALL ON FUNCTION %I.transition_scheduled_agent_run(uuid, uuid, uuid, uuid, uuid, text, text) FROM PUBLIC',
|
|
1788
|
+
${literal(schema)}
|
|
1789
|
+
);
|
|
1790
|
+
EXECUTE format(
|
|
1791
|
+
'GRANT EXECUTE ON FUNCTION %I.transition_scheduled_agent_run(uuid, uuid, uuid, uuid, uuid, text, text) TO %I',
|
|
1792
|
+
${literal(schema)}, ${literal(role)}
|
|
1793
|
+
);
|
|
1794
|
+
EXECUTE format(
|
|
1795
|
+
'REVOKE DELETE ON TABLE %I.scheduled_tasks, %I.scheduled_task_runs FROM %I',
|
|
1796
|
+
${literal(schema)}, ${literal(schema)}, ${literal(role)}
|
|
1797
|
+
);
|
|
1798
|
+
EXECUTE format(
|
|
1799
|
+
'REVOKE ALL PRIVILEGES ON TABLE %I.scheduled_task_connection_authority_snapshots FROM %I',
|
|
1800
|
+
${literal(schema)}, ${literal(role)}
|
|
1801
|
+
);
|
|
1802
|
+
EXECUTE format(
|
|
1803
|
+
'REVOKE ALL PRIVILEGES ON TABLE %I.scheduled_task_run_connection_authority_snapshots FROM %I',
|
|
1804
|
+
${literal(schema)}, ${literal(role)}
|
|
1805
|
+
);
|
|
1806
|
+
EXECUTE format(
|
|
1807
|
+
'REVOKE ALL PRIVILEGES ON TABLE %I.scheduled_task_reusable_connection_materializations FROM %I',
|
|
1808
|
+
${literal(schema)}, ${literal(role)}
|
|
1809
|
+
);
|
|
1810
|
+
EXECUTE format(
|
|
1811
|
+
'REVOKE ALL PRIVILEGES ON TABLE %I.scheduled_task_revision_authorities FROM %I',
|
|
1812
|
+
${literal(schema)}, ${literal(role)}
|
|
1813
|
+
);
|
|
1814
|
+
END IF;
|
|
1815
|
+
EXECUTE format(
|
|
1816
|
+
'REVOKE ALL ON FUNCTION %I.materialize_scheduled_task_reusable_session_from_run(uuid, uuid, uuid, uuid, uuid, bigint, text) FROM PUBLIC',
|
|
1817
|
+
${literal(schema)}
|
|
1818
|
+
);
|
|
1819
|
+
EXECUTE format(
|
|
1820
|
+
'GRANT EXECUTE ON FUNCTION %I.materialize_scheduled_task_reusable_session_from_run(uuid, uuid, uuid, uuid, uuid, bigint, text) TO %I',
|
|
1821
|
+
${literal(schema)},
|
|
1822
|
+
${literal(role)}
|
|
1823
|
+
);
|
|
1824
|
+
EXECUTE format(
|
|
1825
|
+
'REVOKE ALL ON FUNCTION %I.scheduled_task_run_personal_resource_authority(uuid, uuid, uuid) FROM PUBLIC',
|
|
1826
|
+
${literal(schema)}
|
|
1827
|
+
);
|
|
1828
|
+
EXECUTE format(
|
|
1829
|
+
'GRANT EXECUTE ON FUNCTION %I.scheduled_task_run_personal_resource_authority(uuid, uuid, uuid) TO %I',
|
|
1830
|
+
${literal(schema)},
|
|
1831
|
+
${literal(role)}
|
|
1832
|
+
);
|
|
1833
|
+
END IF;
|
|
994
1834
|
IF to_regprocedure(
|
|
995
1835
|
format(
|
|
996
1836
|
'%I.scoped_knowledge_advance_source_acl(uuid,uuid,bigint,bigint,uuid,text,text,text,text,text,text)',
|
|
@@ -1050,6 +1890,48 @@ BEGIN
|
|
|
1050
1890
|
owner_role,
|
|
1051
1891
|
${literal(role)}
|
|
1052
1892
|
);
|
|
1893
|
+
IF to_regprocedure('opengeni_private.personal_resource_delegation_capability_active(text)') IS NOT NULL THEN
|
|
1894
|
+
REVOKE ALL ON FUNCTION
|
|
1895
|
+
opengeni_private.personal_resource_delegation_capability_active(text)
|
|
1896
|
+
FROM PUBLIC;
|
|
1897
|
+
EXECUTE format(
|
|
1898
|
+
'GRANT EXECUTE ON FUNCTION opengeni_private.personal_resource_delegation_capability_active(text) TO %I',
|
|
1899
|
+
${literal(role)}
|
|
1900
|
+
);
|
|
1901
|
+
END IF;
|
|
1902
|
+
IF to_regprocedure('opengeni_private.scheduled_personal_resource_capability_active(text)') IS NOT NULL THEN
|
|
1903
|
+
REVOKE ALL ON FUNCTION
|
|
1904
|
+
opengeni_private.scheduled_personal_resource_capability_active(text)
|
|
1905
|
+
FROM PUBLIC;
|
|
1906
|
+
EXECUTE format(
|
|
1907
|
+
'GRANT EXECUTE ON FUNCTION opengeni_private.scheduled_personal_resource_capability_active(text) TO %I',
|
|
1908
|
+
${literal(role)}
|
|
1909
|
+
);
|
|
1910
|
+
END IF;
|
|
1911
|
+
IF to_regprocedure('opengeni_private.variable_set_authority_capability_active(text)') IS NOT NULL THEN
|
|
1912
|
+
REVOKE ALL ON FUNCTION
|
|
1913
|
+
opengeni_private.variable_set_authority_capability_active(text)
|
|
1914
|
+
FROM PUBLIC;
|
|
1915
|
+
EXECUTE format(
|
|
1916
|
+
'GRANT EXECUTE ON FUNCTION opengeni_private.variable_set_authority_capability_active(text) TO %I',
|
|
1917
|
+
${literal(role)}
|
|
1918
|
+
);
|
|
1919
|
+
EXECUTE format(
|
|
1920
|
+
'REVOKE ALL PRIVILEGES ON TABLE opengeni_private.variable_set_authority_capabilities FROM %I',
|
|
1921
|
+
${literal(role)}
|
|
1922
|
+
);
|
|
1923
|
+
END IF;
|
|
1924
|
+
IF to_regprocedure('opengeni_private.scoped_compute_capability_active(text)') IS NOT NULL THEN
|
|
1925
|
+
REVOKE ALL ON FUNCTION opengeni_private.scoped_compute_capability_active(text) FROM PUBLIC;
|
|
1926
|
+
EXECUTE format(
|
|
1927
|
+
'GRANT EXECUTE ON FUNCTION opengeni_private.scoped_compute_capability_active(text) TO %I',
|
|
1928
|
+
${literal(role)}
|
|
1929
|
+
);
|
|
1930
|
+
EXECUTE format(
|
|
1931
|
+
'REVOKE ALL PRIVILEGES ON TABLE opengeni_private.scoped_compute_capabilities FROM %I',
|
|
1932
|
+
${literal(role)}
|
|
1933
|
+
);
|
|
1934
|
+
END IF;
|
|
1053
1935
|
-- Global cross-workspace artifact workers are separate capabilities. Never
|
|
1054
1936
|
-- let the generic tenant-scoped app role inherit them from the historical
|
|
1055
1937
|
-- blanket grant of already-installed helpers.
|
|
@@ -1121,6 +2003,23 @@ BEGIN
|
|
|
1121
2003
|
${literal(role)}
|
|
1122
2004
|
);
|
|
1123
2005
|
END IF;
|
|
2006
|
+
FOREACH routine_signature IN ARRAY ARRAY[
|
|
2007
|
+
'complete_temporal_schedule_connector_cleanup(uuid,uuid)',
|
|
2008
|
+
'upgrade_temporal_schedule_connector_cleanup(uuid,uuid,text,uuid,text,jsonb,uuid)',
|
|
2009
|
+
'complete_workspace_temporal_connector_cleanups(uuid,uuid)'
|
|
2010
|
+
] LOOP
|
|
2011
|
+
IF to_regprocedure('opengeni_private.' || routine_signature) IS NOT NULL THEN
|
|
2012
|
+
EXECUTE format(
|
|
2013
|
+
'REVOKE ALL ON FUNCTION opengeni_private.%s FROM PUBLIC',
|
|
2014
|
+
routine_signature
|
|
2015
|
+
);
|
|
2016
|
+
EXECUTE format(
|
|
2017
|
+
'GRANT EXECUTE ON FUNCTION opengeni_private.%s TO %I',
|
|
2018
|
+
routine_signature,
|
|
2019
|
+
${literal(role)}
|
|
2020
|
+
);
|
|
2021
|
+
END IF;
|
|
2022
|
+
END LOOP;
|
|
1124
2023
|
END IF;
|
|
1125
2024
|
END $$;
|
|
1126
2025
|
`);
|