@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
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
-- deployment-mode: rolling
|
|
2
|
+
-- A direct Channel-A request may retain a provider process while it is still
|
|
3
|
+
-- polling that process itself. Reconciliation may start only after the exact
|
|
4
|
+
-- direct holder is released (normal return) or TTL-reaped (owner death).
|
|
5
|
+
|
|
6
|
+
DO $privileged_functions$
|
|
7
|
+
DECLARE data_schema text := current_schema();
|
|
8
|
+
BEGIN
|
|
9
|
+
EXECUTE format($create$
|
|
10
|
+
CREATE OR REPLACE FUNCTION opengeni_private.claim_terminal_retained_processes(
|
|
11
|
+
p_claim_id uuid,
|
|
12
|
+
p_limit integer,
|
|
13
|
+
p_claim_ttl_ms bigint
|
|
14
|
+
)
|
|
15
|
+
RETURNS TABLE (
|
|
16
|
+
account_id uuid,
|
|
17
|
+
workspace_id uuid,
|
|
18
|
+
session_id uuid,
|
|
19
|
+
process_id uuid,
|
|
20
|
+
claim_id uuid,
|
|
21
|
+
owner_state text,
|
|
22
|
+
owner_attempt_outcome text
|
|
23
|
+
)
|
|
24
|
+
LANGUAGE plpgsql
|
|
25
|
+
SECURITY DEFINER
|
|
26
|
+
SET search_path = pg_catalog
|
|
27
|
+
AS $function$
|
|
28
|
+
BEGIN
|
|
29
|
+
IF p_limit < 1 OR p_limit > 100 THEN
|
|
30
|
+
RAISE EXCEPTION 'retained-process reconciliation limit must be between 1 and 100'
|
|
31
|
+
USING ERRCODE = '22023';
|
|
32
|
+
END IF;
|
|
33
|
+
IF p_claim_ttl_ms < 0 OR p_claim_ttl_ms > 3600000 THEN
|
|
34
|
+
RAISE EXCEPTION 'retained-process reconciliation claim TTL is invalid'
|
|
35
|
+
USING ERRCODE = '22023';
|
|
36
|
+
END IF;
|
|
37
|
+
|
|
38
|
+
PERFORM pg_catalog.set_config('opengeni.sandbox_recovery_protocol_v2', '1', true);
|
|
39
|
+
|
|
40
|
+
RETURN QUERY
|
|
41
|
+
WITH candidate_window AS MATERIALIZED (
|
|
42
|
+
SELECT process.id,
|
|
43
|
+
process.workspace_id,
|
|
44
|
+
process.parent_admission_id,
|
|
45
|
+
process.owner_actor_kind,
|
|
46
|
+
process.owner_turn_id,
|
|
47
|
+
process.owner_attempt_id,
|
|
48
|
+
process.reconcile_after AS due_at,
|
|
49
|
+
process.started_at
|
|
50
|
+
FROM %1$I.sandbox_retained_processes process
|
|
51
|
+
WHERE process.state = 'active'
|
|
52
|
+
AND process.reconcile_after <= pg_catalog.now()
|
|
53
|
+
ORDER BY process.reconcile_after, process.started_at, process.id
|
|
54
|
+
FOR UPDATE OF process SKIP LOCKED
|
|
55
|
+
LIMIT p_limit
|
|
56
|
+
), classified AS MATERIALIZED (
|
|
57
|
+
SELECT candidate.id,
|
|
58
|
+
candidate.due_at,
|
|
59
|
+
candidate.started_at,
|
|
60
|
+
CASE
|
|
61
|
+
WHEN candidate.owner_actor_kind = 'direct' THEN direct_owner.live IS NULL
|
|
62
|
+
ELSE attempt.state = 'closed'
|
|
63
|
+
END AS eligible,
|
|
64
|
+
CASE
|
|
65
|
+
WHEN candidate.owner_actor_kind = 'direct' THEN 'direct'
|
|
66
|
+
ELSE COALESCE(turn_row.status, 'missing')
|
|
67
|
+
END AS owner_state,
|
|
68
|
+
attempt.outcome AS owner_attempt_outcome
|
|
69
|
+
FROM candidate_window candidate
|
|
70
|
+
LEFT JOIN LATERAL (
|
|
71
|
+
SELECT true AS live
|
|
72
|
+
FROM %1$I.sandbox_workspace_mutation_admissions admission
|
|
73
|
+
JOIN %1$I.sandbox_lease_holders holder
|
|
74
|
+
ON holder.lease_id = admission.lease_id
|
|
75
|
+
AND holder.account_id = admission.account_id
|
|
76
|
+
AND holder.workspace_id = admission.workspace_id
|
|
77
|
+
AND holder.kind = 'direct'
|
|
78
|
+
AND holder.holder_id = admission.holder_id
|
|
79
|
+
AND holder.subject_id = admission.session_id
|
|
80
|
+
WHERE candidate.owner_actor_kind = 'direct'
|
|
81
|
+
AND admission.id = candidate.parent_admission_id
|
|
82
|
+
AND admission.actor_kind = 'direct'
|
|
83
|
+
LIMIT 1
|
|
84
|
+
) direct_owner ON true
|
|
85
|
+
LEFT JOIN LATERAL (
|
|
86
|
+
SELECT source_turn.status
|
|
87
|
+
FROM %1$I.session_turns source_turn
|
|
88
|
+
WHERE source_turn.workspace_id = candidate.workspace_id
|
|
89
|
+
AND source_turn.id = candidate.owner_turn_id
|
|
90
|
+
LIMIT 1
|
|
91
|
+
) turn_row ON true
|
|
92
|
+
LEFT JOIN LATERAL (
|
|
93
|
+
SELECT source_attempt.state, source_attempt.outcome
|
|
94
|
+
FROM %1$I.session_turn_attempts source_attempt
|
|
95
|
+
WHERE source_attempt.workspace_id = candidate.workspace_id
|
|
96
|
+
AND source_attempt.id = candidate.owner_attempt_id
|
|
97
|
+
LIMIT 1
|
|
98
|
+
) attempt ON true
|
|
99
|
+
), inspected AS (
|
|
100
|
+
UPDATE %1$I.sandbox_retained_processes process SET
|
|
101
|
+
reconcile_after = CASE
|
|
102
|
+
WHEN classified.eligible THEN pg_catalog.now()
|
|
103
|
+
+ pg_catalog.make_interval(secs => p_claim_ttl_ms / 1000.0)
|
|
104
|
+
ELSE pg_catalog.now() + interval '30 seconds'
|
|
105
|
+
END,
|
|
106
|
+
reconcile_claim_id = CASE WHEN classified.eligible THEN p_claim_id ELSE NULL END,
|
|
107
|
+
reconcile_claimed_at = CASE
|
|
108
|
+
WHEN classified.eligible THEN pg_catalog.now() ELSE NULL
|
|
109
|
+
END,
|
|
110
|
+
reconcile_attempts = process.reconcile_attempts
|
|
111
|
+
+ CASE WHEN classified.eligible THEN 1 ELSE 0 END,
|
|
112
|
+
last_reconcile_outcome = CASE
|
|
113
|
+
WHEN classified.eligible THEN 'claimed' ELSE 'owner_active'
|
|
114
|
+
END
|
|
115
|
+
FROM classified
|
|
116
|
+
WHERE process.id = classified.id
|
|
117
|
+
AND process.state = 'active'
|
|
118
|
+
RETURNING process.account_id,
|
|
119
|
+
process.workspace_id,
|
|
120
|
+
process.session_id,
|
|
121
|
+
process.id,
|
|
122
|
+
process.reconcile_claim_id,
|
|
123
|
+
classified.due_at,
|
|
124
|
+
classified.started_at,
|
|
125
|
+
classified.eligible,
|
|
126
|
+
classified.owner_state,
|
|
127
|
+
classified.owner_attempt_outcome
|
|
128
|
+
)
|
|
129
|
+
SELECT inspected.account_id,
|
|
130
|
+
inspected.workspace_id,
|
|
131
|
+
inspected.session_id,
|
|
132
|
+
inspected.id,
|
|
133
|
+
inspected.reconcile_claim_id,
|
|
134
|
+
inspected.owner_state,
|
|
135
|
+
inspected.owner_attempt_outcome
|
|
136
|
+
FROM inspected
|
|
137
|
+
WHERE inspected.eligible
|
|
138
|
+
ORDER BY inspected.due_at, inspected.started_at, inspected.id;
|
|
139
|
+
|
|
140
|
+
SET CONSTRAINTS %1$I.sandbox_retained_processes_identity_v2 IMMEDIATE;
|
|
141
|
+
SET CONSTRAINTS %1$I.sandbox_retained_processes_identity_v2 DEFERRED;
|
|
142
|
+
END;
|
|
143
|
+
$function$;
|
|
144
|
+
$create$, data_schema);
|
|
145
|
+
|
|
146
|
+
EXECUTE format($create$
|
|
147
|
+
CREATE OR REPLACE FUNCTION opengeni_private.count_active_retained_processes_by_owner_state()
|
|
148
|
+
RETURNS TABLE (owner_state text, active_count bigint, terminal_owner_count bigint)
|
|
149
|
+
LANGUAGE sql
|
|
150
|
+
SECURITY DEFINER
|
|
151
|
+
SET search_path = pg_catalog
|
|
152
|
+
AS $function$
|
|
153
|
+
SELECT inventory.owner_state,
|
|
154
|
+
pg_catalog.count(*)::bigint AS active_count,
|
|
155
|
+
pg_catalog.count(*) FILTER (WHERE inventory.terminal_owner)::bigint
|
|
156
|
+
AS terminal_owner_count
|
|
157
|
+
FROM (
|
|
158
|
+
SELECT 'direct'::text AS owner_state,
|
|
159
|
+
NOT EXISTS (
|
|
160
|
+
SELECT 1
|
|
161
|
+
FROM %1$I.sandbox_workspace_mutation_admissions admission
|
|
162
|
+
JOIN %1$I.sandbox_lease_holders holder
|
|
163
|
+
ON holder.lease_id = admission.lease_id
|
|
164
|
+
AND holder.account_id = admission.account_id
|
|
165
|
+
AND holder.workspace_id = admission.workspace_id
|
|
166
|
+
AND holder.kind = 'direct'
|
|
167
|
+
AND holder.holder_id = admission.holder_id
|
|
168
|
+
AND holder.subject_id = admission.session_id
|
|
169
|
+
WHERE admission.id = process.parent_admission_id
|
|
170
|
+
AND admission.actor_kind = 'direct'
|
|
171
|
+
) AS terminal_owner
|
|
172
|
+
FROM %1$I.sandbox_retained_processes process
|
|
173
|
+
WHERE process.state = 'active'
|
|
174
|
+
AND process.owner_actor_kind = 'direct'
|
|
175
|
+
UNION ALL
|
|
176
|
+
SELECT COALESCE(turn_row.status, 'missing') AS owner_state,
|
|
177
|
+
attempt.state = 'closed' AS terminal_owner
|
|
178
|
+
FROM %1$I.sandbox_retained_processes process
|
|
179
|
+
LEFT JOIN LATERAL (
|
|
180
|
+
SELECT source_turn.status
|
|
181
|
+
FROM %1$I.session_turns source_turn
|
|
182
|
+
WHERE source_turn.workspace_id = process.workspace_id
|
|
183
|
+
AND source_turn.id = process.owner_turn_id
|
|
184
|
+
LIMIT 1
|
|
185
|
+
) turn_row ON true
|
|
186
|
+
LEFT JOIN LATERAL (
|
|
187
|
+
SELECT source_attempt.state
|
|
188
|
+
FROM %1$I.session_turn_attempts source_attempt
|
|
189
|
+
WHERE source_attempt.workspace_id = process.workspace_id
|
|
190
|
+
AND source_attempt.id = process.owner_attempt_id
|
|
191
|
+
LIMIT 1
|
|
192
|
+
) attempt ON true
|
|
193
|
+
WHERE process.state = 'active'
|
|
194
|
+
AND process.owner_actor_kind = 'turn'
|
|
195
|
+
) inventory
|
|
196
|
+
GROUP BY inventory.owner_state;
|
|
197
|
+
$function$;
|
|
198
|
+
$create$, data_schema);
|
|
199
|
+
END $privileged_functions$;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
-- deployment-mode: maintenance
|
|
2
|
+
-- Add an optional, revision-fenced command resource policy to each Connected
|
|
3
|
+
-- Machine enrollment. NULL remains the unrestricted product default. New
|
|
4
|
+
-- control planes may write the policy while old runners are still present;
|
|
5
|
+
-- runtime capability gating fails commands closed until an enforcing runner is
|
|
6
|
+
-- authoritative. Pre-feature control-plane workers must not overlap this release:
|
|
7
|
+
-- they do not read the desired columns and could dispatch a command without them.
|
|
8
|
+
-- Rollback to one of those binaries requires every desired limit to be cleared
|
|
9
|
+
-- under the same maintenance fence first.
|
|
10
|
+
|
|
11
|
+
SET LOCAL lock_timeout = '5s';
|
|
12
|
+
SET LOCAL statement_timeout = '30min';
|
|
13
|
+
|
|
14
|
+
ALTER TABLE enrollments
|
|
15
|
+
ADD COLUMN operation_memory_max_bytes bigint,
|
|
16
|
+
ADD COLUMN operation_memory_high_bytes bigint,
|
|
17
|
+
ADD COLUMN operation_cpu_max_millicores bigint,
|
|
18
|
+
ADD COLUMN operation_policy_revision integer NOT NULL DEFAULT 0,
|
|
19
|
+
ADD COLUMN operation_policy_updated_at timestamptz,
|
|
20
|
+
ADD CONSTRAINT enrollments_operation_memory_max_shape_chk CHECK (
|
|
21
|
+
operation_memory_max_bytes IS NULL OR (
|
|
22
|
+
operation_memory_max_bytes > 0
|
|
23
|
+
AND operation_memory_max_bytes <= 9007199254740991
|
|
24
|
+
)
|
|
25
|
+
),
|
|
26
|
+
ADD CONSTRAINT enrollments_operation_memory_high_shape_chk CHECK (
|
|
27
|
+
operation_memory_high_bytes IS NULL OR (
|
|
28
|
+
operation_memory_high_bytes > 0
|
|
29
|
+
AND operation_memory_high_bytes <= 9007199254740991
|
|
30
|
+
)
|
|
31
|
+
),
|
|
32
|
+
ADD CONSTRAINT enrollments_operation_memory_order_chk CHECK (
|
|
33
|
+
operation_memory_max_bytes IS NULL
|
|
34
|
+
OR operation_memory_high_bytes IS NULL
|
|
35
|
+
OR operation_memory_high_bytes <= operation_memory_max_bytes
|
|
36
|
+
),
|
|
37
|
+
-- Positive uint32 millicores. The runner chooses a cgroup-v2 period within the
|
|
38
|
+
-- kernel ABI that represents every accepted value exactly (no silent rounding).
|
|
39
|
+
ADD CONSTRAINT enrollments_operation_cpu_shape_chk CHECK (
|
|
40
|
+
operation_cpu_max_millicores IS NULL
|
|
41
|
+
OR operation_cpu_max_millicores BETWEEN 1 AND 4294967295
|
|
42
|
+
),
|
|
43
|
+
ADD CONSTRAINT enrollments_operation_policy_revision_chk CHECK (
|
|
44
|
+
operation_policy_revision >= 0
|
|
45
|
+
);
|