@opengeni/db 0.27.9 → 0.27.11
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/{chunk-NX2JNJJP.js → chunk-JYQPJ6Y5.js} +52 -47
- package/dist/chunk-JYQPJ6Y5.js.map +1 -0
- package/dist/{chunk-2JFRTKTG.js → chunk-RPHPNVWW.js} +3 -1
- package/dist/chunk-RPHPNVWW.js.map +1 -0
- package/dist/index.d.ts +62 -30
- package/dist/index.js +303 -90
- package/dist/index.js.map +1 -1
- package/dist/provision-roles.js +1 -1
- package/dist/runtime-posture.d.ts +2 -2
- package/dist/schema.d.ts +128 -96
- package/dist/schema.js +3 -1
- package/drizzle/0172_retire_model_visible_github_token.sql +86 -0
- package/drizzle/0173_codex_auth_boundaries.sql +107 -0
- package/drizzle/0174_session_wake_live_interruption.sql +80 -0
- package/package.json +4 -4
- package/src/index.ts +468 -166
- package/src/runtime-posture.ts +2 -0
- package/src/schema.ts +59 -47
- package/dist/chunk-2JFRTKTG.js.map +0 -1
- package/dist/chunk-NX2JNJJP.js.map +0 -1
package/dist/provision-roles.js
CHANGED
|
@@ -4,7 +4,7 @@ import type { Database, RlsStrategy } from "./database";
|
|
|
4
4
|
* FORCE-RLS table is an architectural change: update this list in the same
|
|
5
5
|
* commit as the migration so startup cannot silently accept an unreviewed gap.
|
|
6
6
|
*/
|
|
7
|
-
export declare const FORCE_RLS_TABLES: readonly ["agent_run_states", "api_keys", "audit_events", "billing_customers", "capability_catalog_items", "capability_installations", "codex_capacity_waiters", "codex_credential_leases", "codex_reset_redemption_attempts", "codex_rotation_settings", "codex_subscription_credentials", "composer_drafts", "connection_disconnect_operations", "connections", "connector_action_policies", "connector_action_requests", "credit_ledger_entries", "device_enrollment_requests", "document_bases", "document_chunks", "documents", "enrollments", "file_uploads", "files", "github_installation_repositories", "github_installations", "host_export_config", "host_export_consumers", "host_export_cursor_state", "host_export_dead_letters", "host_export_outbox", "import_batches", "integration_oauth_state_nonces", "knowledge_change_proposals", "knowledge_claim_evidence", "knowledge_claim_relations", "knowledge_claim_reviews", "knowledge_claims", "knowledge_document_versions", "knowledge_entities", "knowledge_entity_aliases", "knowledge_facts", "knowledge_lifecycle_events", "knowledge_memories", "knowledge_memory_lifecycle_events", "knowledge_memory_relationships", "knowledge_operation_receipts", "knowledge_providers", "knowledge_source_acl_versions", "knowledge_source_objects", "knowledge_sources", "knowledge_sync_runs", "machine_metrics_latest", "machine_metrics_series", "model_call_facts", "new_session_drafts", "pack_installations", "preference_registry_events", "preference_registry_preferences", "preference_registry_revisions", "preference_registry_snapshots", "rig_changes", "rig_versions", "rigs", "sandbox_checkpoint_artifacts", "sandbox_lease_holders", "sandbox_leases", "sandbox_pty_sessions", "sandbox_retained_processes", "sandbox_session_envelopes", "sandbox_workspace_mutation_admissions", "sandboxes", "scheduled_task_runs", "scheduled_tasks", "session_attempt_interruptions", "session_command_receipts", "session_events", "session_goals", "session_history_items", "session_human_input_requests", "session_list_snapshots", "session_mcp_servers", "session_pending_tool_calls", "session_pins", "session_realtime_connections", "session_realtime_context_projections", "session_realtime_entries", "session_realtime_modes", "session_recordings", "session_spawn_denials", "session_stream_acknowledgments", "session_system_update_outbox", "session_system_updates", "session_turn_attempts", "session_turns", "session_workflow_wake_outbox", "sessions", "slack_bot_delete_operations", "slack_bot_post_operations", "slack_bot_user_links", "slack_interaction_inbox", "slack_interaction_progress_deliveries", "slack_interactions", "social_connections", "social_posts", "usage_events", "workspace_artifact_events", "workspace_artifact_versions", "workspace_artifacts", "workspace_captures", "workspace_control_events", "workspace_inference_controls", "workspace_instruction_policy_activation_events", "workspace_instruction_policy_heads", "workspace_instruction_policy_onboarding_proposals", "workspace_instruction_policy_revisions", "workspace_instruction_policy_snapshots", "workspace_model_policies", "workspace_packs", "workspace_session_activity_revisions", "workspace_variable_set_variables", "workspace_variable_sets"];
|
|
7
|
+
export declare const FORCE_RLS_TABLES: readonly ["agent_run_states", "api_keys", "audit_events", "billing_customers", "capability_catalog_items", "capability_installations", "codex_apps_settings", "codex_capacity_waiters", "codex_credential_leases", "codex_reset_redemption_attempts", "codex_rotation_settings", "codex_subscription_credentials", "composer_drafts", "connection_disconnect_operations", "connections", "connector_action_policies", "connector_action_requests", "credit_ledger_entries", "device_enrollment_requests", "document_bases", "document_chunks", "documents", "enrollments", "file_uploads", "files", "github_installation_repositories", "github_installations", "host_export_config", "host_export_consumers", "host_export_cursor_state", "host_export_dead_letters", "host_export_outbox", "import_batches", "integration_oauth_state_nonces", "knowledge_change_proposals", "knowledge_claim_evidence", "knowledge_claim_relations", "knowledge_claim_reviews", "knowledge_claims", "knowledge_document_versions", "knowledge_entities", "knowledge_entity_aliases", "knowledge_facts", "knowledge_lifecycle_events", "knowledge_memories", "knowledge_memory_lifecycle_events", "knowledge_memory_relationships", "knowledge_operation_receipts", "knowledge_providers", "knowledge_source_acl_versions", "knowledge_source_objects", "knowledge_sources", "knowledge_sync_runs", "machine_metrics_latest", "machine_metrics_series", "model_call_facts", "new_session_drafts", "pack_installations", "preference_registry_events", "preference_registry_preferences", "preference_registry_revisions", "preference_registry_snapshots", "rig_changes", "rig_versions", "rigs", "sandbox_checkpoint_artifacts", "sandbox_lease_holders", "sandbox_leases", "sandbox_pty_sessions", "sandbox_retained_processes", "sandbox_session_envelopes", "sandbox_workspace_mutation_admissions", "sandboxes", "scheduled_task_runs", "scheduled_tasks", "session_attempt_interruptions", "session_command_receipts", "session_events", "session_goals", "session_history_items", "session_human_input_requests", "session_list_snapshots", "session_mcp_servers", "session_pending_tool_calls", "session_pins", "session_realtime_connections", "session_realtime_context_projections", "session_realtime_entries", "session_realtime_modes", "session_recordings", "session_spawn_denials", "session_stream_acknowledgments", "session_system_update_outbox", "session_system_updates", "session_turn_attempts", "session_turns", "session_workflow_wake_outbox", "sessions", "slack_bot_delete_operations", "slack_bot_post_operations", "slack_bot_user_links", "slack_interaction_inbox", "slack_interaction_progress_deliveries", "slack_interactions", "social_connections", "social_posts", "usage_events", "workspace_artifact_events", "workspace_artifact_versions", "workspace_artifacts", "workspace_captures", "workspace_control_events", "workspace_inference_controls", "workspace_instruction_policy_activation_events", "workspace_instruction_policy_heads", "workspace_instruction_policy_onboarding_proposals", "workspace_instruction_policy_revisions", "workspace_instruction_policy_snapshots", "workspace_model_policies", "workspace_packs", "workspace_session_activity_revisions", "workspace_variable_set_variables", "workspace_variable_sets"];
|
|
8
8
|
/**
|
|
9
9
|
* Deployment-global and authentication tables used by ordinary API/worker
|
|
10
10
|
* traffic. They intentionally do not carry workspace RLS: their access model
|
|
@@ -16,7 +16,7 @@ export declare const NON_RLS_RUNTIME_TABLES: readonly ["auth_identities", "auth_
|
|
|
16
16
|
* explicit instead of being derived from FORCE_RLS_TABLES: adding a protected
|
|
17
17
|
* table must not silently grant it broader DML than its migration intended.
|
|
18
18
|
*/
|
|
19
|
-
export declare const RUNTIME_FULL_DML_TABLES: readonly ["agent_run_states", "api_keys", "audit_events", "auth_identities", "auth_rate_limits", "auth_sessions", "auth_users", "auth_verifications", "billing_customers", "capability_catalog_items", "capability_installations", "codex_capacity_waiters", "codex_credential_leases", "codex_reset_redemption_attempts", "codex_rotation_settings", "codex_subscription_credentials", "composer_drafts", "connection_disconnect_operations", "connections", "connector_action_policies", "connector_action_requests", "credit_ledger_entries", "device_enrollment_requests", "document_bases", "document_chunks", "documents", "enrollments", "file_uploads", "files", "github_installation_repositories", "github_installations", "import_batches", "integration_oauth_clients", "integration_oauth_state_nonces", "knowledge_memories", "machine_metrics_latest", "machine_metrics_series", "managed_accounts", "model_call_facts", "new_session_drafts", "pack_installations", "rig_changes", "rig_versions", "rigs", "sandbox_checkpoint_artifacts", "sandbox_lease_holders", "sandbox_leases", "sandbox_pty_sessions", "sandbox_retained_processes", "sandbox_session_envelopes", "sandbox_workspace_mutation_admissions", "sandboxes", "scheduled_task_runs", "scheduled_tasks", "session_attempt_interruptions", "session_command_receipts", "session_events", "session_goals", "session_history_items", "session_human_input_requests", "session_list_snapshots", "session_mcp_servers", "session_pending_tool_calls", "session_pins", "session_realtime_connections", "session_realtime_context_projections", "session_realtime_entries", "session_realtime_modes", "session_recordings", "session_stream_acknowledgments", "session_system_update_outbox", "session_system_updates", "session_turn_attempts", "session_turns", "session_workflow_wake_outbox", "sessions", "slack_bot_delete_operations", "slack_bot_post_operations", "slack_bot_user_links", "slack_interaction_inbox", "slack_interaction_progress_deliveries", "slack_interactions", "social_connections", "social_posts", "stripe_webhook_events", "usage_events", "workspace_artifacts", "workspace_captures", "workspace_control_events", "workspace_inference_controls", "workspace_instruction_policy_heads", "workspace_memberships", "workspace_model_policies", "workspace_packs", "workspace_session_activity_revisions", "workspace_variable_set_variables", "workspace_variable_sets", "workspaces"];
|
|
19
|
+
export declare const RUNTIME_FULL_DML_TABLES: readonly ["agent_run_states", "api_keys", "audit_events", "auth_identities", "auth_rate_limits", "auth_sessions", "auth_users", "auth_verifications", "billing_customers", "capability_catalog_items", "capability_installations", "codex_apps_settings", "codex_capacity_waiters", "codex_credential_leases", "codex_reset_redemption_attempts", "codex_rotation_settings", "codex_subscription_credentials", "composer_drafts", "connection_disconnect_operations", "connections", "connector_action_policies", "connector_action_requests", "credit_ledger_entries", "device_enrollment_requests", "document_bases", "document_chunks", "documents", "enrollments", "file_uploads", "files", "github_installation_repositories", "github_installations", "import_batches", "integration_oauth_clients", "integration_oauth_state_nonces", "knowledge_memories", "machine_metrics_latest", "machine_metrics_series", "managed_accounts", "model_call_facts", "new_session_drafts", "pack_installations", "rig_changes", "rig_versions", "rigs", "sandbox_checkpoint_artifacts", "sandbox_lease_holders", "sandbox_leases", "sandbox_pty_sessions", "sandbox_retained_processes", "sandbox_session_envelopes", "sandbox_workspace_mutation_admissions", "sandboxes", "scheduled_task_runs", "scheduled_tasks", "session_attempt_interruptions", "session_command_receipts", "session_events", "session_goals", "session_history_items", "session_human_input_requests", "session_list_snapshots", "session_mcp_servers", "session_pending_tool_calls", "session_pins", "session_realtime_connections", "session_realtime_context_projections", "session_realtime_entries", "session_realtime_modes", "session_recordings", "session_stream_acknowledgments", "session_system_update_outbox", "session_system_updates", "session_turn_attempts", "session_turns", "session_workflow_wake_outbox", "sessions", "slack_bot_delete_operations", "slack_bot_post_operations", "slack_bot_user_links", "slack_interaction_inbox", "slack_interaction_progress_deliveries", "slack_interactions", "social_connections", "social_posts", "stripe_webhook_events", "usage_events", "workspace_artifacts", "workspace_captures", "workspace_control_events", "workspace_inference_controls", "workspace_instruction_policy_heads", "workspace_memberships", "workspace_model_policies", "workspace_packs", "workspace_session_activity_revisions", "workspace_variable_set_variables", "workspace_variable_sets", "workspaces"];
|
|
20
20
|
/** Configuration and lifecycle-owned audit rows are read-only at runtime. */
|
|
21
21
|
export declare const RUNTIME_READ_ONLY_TABLES: readonly ["knowledge_lifecycle_events", "knowledge_memory_lifecycle_events", "knowledge_memory_relationships", "nested_agent_depth_configuration", "preference_registry_events", "preference_registry_snapshots", "workspace_instruction_policy_snapshots"];
|
|
22
22
|
/** Append-only evidence/revision tables are insertable and queryable, never mutable. */
|
package/dist/schema.d.ts
CHANGED
|
@@ -2422,66 +2422,6 @@ export declare const codexSubscriptionCredentials: import("drizzle-orm/pg-core")
|
|
|
2422
2422
|
identity: undefined;
|
|
2423
2423
|
generated: undefined;
|
|
2424
2424
|
}, {}, {}>;
|
|
2425
|
-
connectorNamespaces: import("drizzle-orm/pg-core").PgColumn<{
|
|
2426
|
-
name: "connector_namespaces";
|
|
2427
|
-
tableName: "codex_subscription_credentials";
|
|
2428
|
-
dataType: "array";
|
|
2429
|
-
columnType: "PgArray";
|
|
2430
|
-
data: string[];
|
|
2431
|
-
driverParam: string | string[];
|
|
2432
|
-
notNull: false;
|
|
2433
|
-
hasDefault: false;
|
|
2434
|
-
isPrimaryKey: false;
|
|
2435
|
-
isAutoincrement: false;
|
|
2436
|
-
hasRuntimeDefault: false;
|
|
2437
|
-
enumValues: [string, ...string[]];
|
|
2438
|
-
baseColumn: import("drizzle-orm").Column<{
|
|
2439
|
-
name: "connector_namespaces";
|
|
2440
|
-
tableName: "codex_subscription_credentials";
|
|
2441
|
-
dataType: "string";
|
|
2442
|
-
columnType: "PgText";
|
|
2443
|
-
data: string;
|
|
2444
|
-
driverParam: string;
|
|
2445
|
-
notNull: false;
|
|
2446
|
-
hasDefault: false;
|
|
2447
|
-
isPrimaryKey: false;
|
|
2448
|
-
isAutoincrement: false;
|
|
2449
|
-
hasRuntimeDefault: false;
|
|
2450
|
-
enumValues: [string, ...string[]];
|
|
2451
|
-
baseColumn: never;
|
|
2452
|
-
identity: undefined;
|
|
2453
|
-
generated: undefined;
|
|
2454
|
-
}, {}, {}>;
|
|
2455
|
-
identity: undefined;
|
|
2456
|
-
generated: undefined;
|
|
2457
|
-
}, {}, {
|
|
2458
|
-
baseBuilder: import("drizzle-orm/pg-core").PgColumnBuilder<{
|
|
2459
|
-
name: "connector_namespaces";
|
|
2460
|
-
dataType: 'string';
|
|
2461
|
-
columnType: 'PgText';
|
|
2462
|
-
data: string;
|
|
2463
|
-
enumValues: [string, ...string[]];
|
|
2464
|
-
driverParam: string;
|
|
2465
|
-
}, {}, {}, import("drizzle-orm").ColumnBuilderExtraConfig>;
|
|
2466
|
-
size: undefined;
|
|
2467
|
-
}>;
|
|
2468
|
-
connectorsCheckedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
2469
|
-
name: "connectors_checked_at";
|
|
2470
|
-
tableName: "codex_subscription_credentials";
|
|
2471
|
-
dataType: "date";
|
|
2472
|
-
columnType: "PgTimestamp";
|
|
2473
|
-
data: Date;
|
|
2474
|
-
driverParam: string;
|
|
2475
|
-
notNull: false;
|
|
2476
|
-
hasDefault: false;
|
|
2477
|
-
isPrimaryKey: false;
|
|
2478
|
-
isAutoincrement: false;
|
|
2479
|
-
hasRuntimeDefault: false;
|
|
2480
|
-
enumValues: undefined;
|
|
2481
|
-
baseColumn: never;
|
|
2482
|
-
identity: undefined;
|
|
2483
|
-
generated: undefined;
|
|
2484
|
-
}, {}, {}>;
|
|
2485
2425
|
allocatorEnabled: import("drizzle-orm/pg-core").PgColumn<{
|
|
2486
2426
|
name: "allocator_enabled";
|
|
2487
2427
|
tableName: "codex_subscription_credentials";
|
|
@@ -2672,6 +2612,132 @@ export declare const codexSubscriptionCredentials: import("drizzle-orm/pg-core")
|
|
|
2672
2612
|
};
|
|
2673
2613
|
dialect: 'pg';
|
|
2674
2614
|
}>;
|
|
2615
|
+
export declare const codexAppsSettings: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
2616
|
+
name: "codex_apps_settings";
|
|
2617
|
+
schema: undefined;
|
|
2618
|
+
columns: {
|
|
2619
|
+
id: import("drizzle-orm/pg-core").PgColumn<{
|
|
2620
|
+
name: "id";
|
|
2621
|
+
tableName: "codex_apps_settings";
|
|
2622
|
+
dataType: "string";
|
|
2623
|
+
columnType: "PgUUID";
|
|
2624
|
+
data: string;
|
|
2625
|
+
driverParam: string;
|
|
2626
|
+
notNull: true;
|
|
2627
|
+
hasDefault: true;
|
|
2628
|
+
isPrimaryKey: true;
|
|
2629
|
+
isAutoincrement: false;
|
|
2630
|
+
hasRuntimeDefault: false;
|
|
2631
|
+
enumValues: undefined;
|
|
2632
|
+
baseColumn: never;
|
|
2633
|
+
identity: undefined;
|
|
2634
|
+
generated: undefined;
|
|
2635
|
+
}, {}, {}>;
|
|
2636
|
+
accountId: import("drizzle-orm/pg-core").PgColumn<{
|
|
2637
|
+
name: "account_id";
|
|
2638
|
+
tableName: "codex_apps_settings";
|
|
2639
|
+
dataType: "string";
|
|
2640
|
+
columnType: "PgUUID";
|
|
2641
|
+
data: string;
|
|
2642
|
+
driverParam: string;
|
|
2643
|
+
notNull: true;
|
|
2644
|
+
hasDefault: false;
|
|
2645
|
+
isPrimaryKey: false;
|
|
2646
|
+
isAutoincrement: false;
|
|
2647
|
+
hasRuntimeDefault: false;
|
|
2648
|
+
enumValues: undefined;
|
|
2649
|
+
baseColumn: never;
|
|
2650
|
+
identity: undefined;
|
|
2651
|
+
generated: undefined;
|
|
2652
|
+
}, {}, {}>;
|
|
2653
|
+
workspaceId: import("drizzle-orm/pg-core").PgColumn<{
|
|
2654
|
+
name: "workspace_id";
|
|
2655
|
+
tableName: "codex_apps_settings";
|
|
2656
|
+
dataType: "string";
|
|
2657
|
+
columnType: "PgUUID";
|
|
2658
|
+
data: string;
|
|
2659
|
+
driverParam: string;
|
|
2660
|
+
notNull: true;
|
|
2661
|
+
hasDefault: false;
|
|
2662
|
+
isPrimaryKey: false;
|
|
2663
|
+
isAutoincrement: false;
|
|
2664
|
+
hasRuntimeDefault: false;
|
|
2665
|
+
enumValues: undefined;
|
|
2666
|
+
baseColumn: never;
|
|
2667
|
+
identity: undefined;
|
|
2668
|
+
generated: undefined;
|
|
2669
|
+
}, {}, {}>;
|
|
2670
|
+
credentialId: import("drizzle-orm/pg-core").PgColumn<{
|
|
2671
|
+
name: "credential_id";
|
|
2672
|
+
tableName: "codex_apps_settings";
|
|
2673
|
+
dataType: "string";
|
|
2674
|
+
columnType: "PgUUID";
|
|
2675
|
+
data: string;
|
|
2676
|
+
driverParam: string;
|
|
2677
|
+
notNull: false;
|
|
2678
|
+
hasDefault: false;
|
|
2679
|
+
isPrimaryKey: false;
|
|
2680
|
+
isAutoincrement: false;
|
|
2681
|
+
hasRuntimeDefault: false;
|
|
2682
|
+
enumValues: undefined;
|
|
2683
|
+
baseColumn: never;
|
|
2684
|
+
identity: undefined;
|
|
2685
|
+
generated: undefined;
|
|
2686
|
+
}, {}, {}>;
|
|
2687
|
+
version: import("drizzle-orm/pg-core").PgColumn<{
|
|
2688
|
+
name: "version";
|
|
2689
|
+
tableName: "codex_apps_settings";
|
|
2690
|
+
dataType: "number";
|
|
2691
|
+
columnType: "PgInteger";
|
|
2692
|
+
data: number;
|
|
2693
|
+
driverParam: string | number;
|
|
2694
|
+
notNull: true;
|
|
2695
|
+
hasDefault: true;
|
|
2696
|
+
isPrimaryKey: false;
|
|
2697
|
+
isAutoincrement: false;
|
|
2698
|
+
hasRuntimeDefault: false;
|
|
2699
|
+
enumValues: undefined;
|
|
2700
|
+
baseColumn: never;
|
|
2701
|
+
identity: undefined;
|
|
2702
|
+
generated: undefined;
|
|
2703
|
+
}, {}, {}>;
|
|
2704
|
+
designatedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
2705
|
+
name: "designated_at";
|
|
2706
|
+
tableName: "codex_apps_settings";
|
|
2707
|
+
dataType: "date";
|
|
2708
|
+
columnType: "PgTimestamp";
|
|
2709
|
+
data: Date;
|
|
2710
|
+
driverParam: string;
|
|
2711
|
+
notNull: false;
|
|
2712
|
+
hasDefault: false;
|
|
2713
|
+
isPrimaryKey: false;
|
|
2714
|
+
isAutoincrement: false;
|
|
2715
|
+
hasRuntimeDefault: false;
|
|
2716
|
+
enumValues: undefined;
|
|
2717
|
+
baseColumn: never;
|
|
2718
|
+
identity: undefined;
|
|
2719
|
+
generated: undefined;
|
|
2720
|
+
}, {}, {}>;
|
|
2721
|
+
updatedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
2722
|
+
name: "updated_at";
|
|
2723
|
+
tableName: "codex_apps_settings";
|
|
2724
|
+
dataType: "date";
|
|
2725
|
+
columnType: "PgTimestamp";
|
|
2726
|
+
data: Date;
|
|
2727
|
+
driverParam: string;
|
|
2728
|
+
notNull: true;
|
|
2729
|
+
hasDefault: true;
|
|
2730
|
+
isPrimaryKey: false;
|
|
2731
|
+
isAutoincrement: false;
|
|
2732
|
+
hasRuntimeDefault: false;
|
|
2733
|
+
enumValues: undefined;
|
|
2734
|
+
baseColumn: never;
|
|
2735
|
+
identity: undefined;
|
|
2736
|
+
generated: undefined;
|
|
2737
|
+
}, {}, {}>;
|
|
2738
|
+
};
|
|
2739
|
+
dialect: 'pg';
|
|
2740
|
+
}>;
|
|
2675
2741
|
export declare const codexResetRedemptionAttempts: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
2676
2742
|
name: "codex_reset_redemption_attempts";
|
|
2677
2743
|
schema: undefined;
|
|
@@ -6905,7 +6971,7 @@ export declare const sessions: import("drizzle-orm/pg-core").PgTableWithColumns<
|
|
|
6905
6971
|
tableName: "sessions";
|
|
6906
6972
|
dataType: "json";
|
|
6907
6973
|
columnType: "PgJsonb";
|
|
6908
|
-
data: ("artifacts_create" | "artifacts_get_source" | "artifacts_list" | "artifacts_publish" | "artifacts_rollback" | "environment_list" | "environment_set_variable" | "github_connect_link" | "github_repositories_list" | "
|
|
6974
|
+
data: ("artifacts_create" | "artifacts_get_source" | "artifacts_list" | "artifacts_publish" | "artifacts_rollback" | "environment_list" | "environment_set_variable" | "github_connect_link" | "github_repositories_list" | "goal_complete" | "goal_pause" | "goal_set" | "goal_update" | "memory_correct" | "memory_save" | "memory_search" | "preference_registry_get" | "preference_registry_summary" | "rig_get" | "rig_list" | "rig_promote" | "rig_propose_change" | "rig_verify" | "run_on" | "sandbox_attach" | "sandbox_provision" | "sandbox_swap" | "sandboxes_list" | "scheduled_task_runs_list" | "scheduled_tasks_create" | "scheduled_tasks_delete" | "scheduled_tasks_get" | "scheduled_tasks_list" | "scheduled_tasks_pause" | "scheduled_tasks_resume" | "scheduled_tasks_trigger" | "scheduled_tasks_update" | "session_create" | "session_events" | "session_get" | "session_pause" | "session_resume" | "session_send_message" | "session_steer" | "sessions_list" | "set_other_session_title" | "set_session_title" | "slack_bot_channel_history" | "slack_bot_delete_message" | "slack_bot_file_content" | "slack_bot_file_info" | "slack_bot_list_channels" | "slack_bot_list_files" | "slack_bot_list_users" | "slack_bot_post_message" | "slack_bot_thread_replies" | "social_connections_list" | "social_daily_analysis_context" | "social_mentions_live" | "social_post_reply" | "social_posts_recent" | "social_posts_sync" | "social_search_live" | "social_thread_fetch" | "variable_set_list" | "variable_set_set_variable")[];
|
|
6909
6975
|
driverParam: unknown;
|
|
6910
6976
|
notNull: true;
|
|
6911
6977
|
hasDefault: false;
|
|
@@ -6917,7 +6983,7 @@ export declare const sessions: import("drizzle-orm/pg-core").PgTableWithColumns<
|
|
|
6917
6983
|
identity: undefined;
|
|
6918
6984
|
generated: undefined;
|
|
6919
6985
|
}, {}, {
|
|
6920
|
-
$type: ("artifacts_create" | "artifacts_get_source" | "artifacts_list" | "artifacts_publish" | "artifacts_rollback" | "environment_list" | "environment_set_variable" | "github_connect_link" | "github_repositories_list" | "
|
|
6986
|
+
$type: ("artifacts_create" | "artifacts_get_source" | "artifacts_list" | "artifacts_publish" | "artifacts_rollback" | "environment_list" | "environment_set_variable" | "github_connect_link" | "github_repositories_list" | "goal_complete" | "goal_pause" | "goal_set" | "goal_update" | "memory_correct" | "memory_save" | "memory_search" | "preference_registry_get" | "preference_registry_summary" | "rig_get" | "rig_list" | "rig_promote" | "rig_propose_change" | "rig_verify" | "run_on" | "sandbox_attach" | "sandbox_provision" | "sandbox_swap" | "sandboxes_list" | "scheduled_task_runs_list" | "scheduled_tasks_create" | "scheduled_tasks_delete" | "scheduled_tasks_get" | "scheduled_tasks_list" | "scheduled_tasks_pause" | "scheduled_tasks_resume" | "scheduled_tasks_trigger" | "scheduled_tasks_update" | "session_create" | "session_events" | "session_get" | "session_pause" | "session_resume" | "session_send_message" | "session_steer" | "sessions_list" | "set_other_session_title" | "set_session_title" | "slack_bot_channel_history" | "slack_bot_delete_message" | "slack_bot_file_content" | "slack_bot_file_info" | "slack_bot_list_channels" | "slack_bot_list_files" | "slack_bot_list_users" | "slack_bot_post_message" | "slack_bot_thread_replies" | "social_connections_list" | "social_daily_analysis_context" | "social_mentions_live" | "social_post_reply" | "social_posts_recent" | "social_posts_sync" | "social_search_live" | "social_thread_fetch" | "variable_set_list" | "variable_set_set_variable")[];
|
|
6921
6987
|
}>;
|
|
6922
6988
|
initialPersonalConnectionDelegations: import("drizzle-orm/pg-core").PgColumn<{
|
|
6923
6989
|
name: "initial_personal_connection_delegations";
|
|
@@ -16693,23 +16759,6 @@ export declare const agentRunStates: import("drizzle-orm/pg-core").PgTableWithCo
|
|
|
16693
16759
|
}, {}, {
|
|
16694
16760
|
$type: unknown[];
|
|
16695
16761
|
}>;
|
|
16696
|
-
frozenCodexCredentialId: import("drizzle-orm/pg-core").PgColumn<{
|
|
16697
|
-
name: "frozen_codex_credential_id";
|
|
16698
|
-
tableName: "agent_run_states";
|
|
16699
|
-
dataType: "string";
|
|
16700
|
-
columnType: "PgUUID";
|
|
16701
|
-
data: string;
|
|
16702
|
-
driverParam: string;
|
|
16703
|
-
notNull: false;
|
|
16704
|
-
hasDefault: false;
|
|
16705
|
-
isPrimaryKey: false;
|
|
16706
|
-
isAutoincrement: false;
|
|
16707
|
-
hasRuntimeDefault: false;
|
|
16708
|
-
enumValues: undefined;
|
|
16709
|
-
baseColumn: never;
|
|
16710
|
-
identity: undefined;
|
|
16711
|
-
generated: undefined;
|
|
16712
|
-
}, {}, {}>;
|
|
16713
16762
|
providerArtifactInvalidatedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
16714
16763
|
name: "provider_artifact_invalidated_at";
|
|
16715
16764
|
tableName: "agent_run_states";
|
|
@@ -17283,23 +17332,6 @@ export declare const sessionHistoryItems: import("drizzle-orm/pg-core").PgTableW
|
|
|
17283
17332
|
identity: undefined;
|
|
17284
17333
|
generated: undefined;
|
|
17285
17334
|
}, {}, {}>;
|
|
17286
|
-
producerCodexCredentialId: import("drizzle-orm/pg-core").PgColumn<{
|
|
17287
|
-
name: "producer_codex_credential_id";
|
|
17288
|
-
tableName: "session_history_items";
|
|
17289
|
-
dataType: "string";
|
|
17290
|
-
columnType: "PgUUID";
|
|
17291
|
-
data: string;
|
|
17292
|
-
driverParam: string;
|
|
17293
|
-
notNull: false;
|
|
17294
|
-
hasDefault: false;
|
|
17295
|
-
isPrimaryKey: false;
|
|
17296
|
-
isAutoincrement: false;
|
|
17297
|
-
hasRuntimeDefault: false;
|
|
17298
|
-
enumValues: undefined;
|
|
17299
|
-
baseColumn: never;
|
|
17300
|
-
identity: undefined;
|
|
17301
|
-
generated: undefined;
|
|
17302
|
-
}, {}, {}>;
|
|
17303
17335
|
providerArtifactInvalidatedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
17304
17336
|
name: "provider_artifact_invalidated_at";
|
|
17305
17337
|
tableName: "session_history_items";
|
package/dist/schema.js
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
billingCustomers,
|
|
6
6
|
capabilityCatalogItems,
|
|
7
7
|
capabilityInstallations,
|
|
8
|
+
codexAppsSettings,
|
|
8
9
|
codexCapacityWaiters,
|
|
9
10
|
codexCredentialLeases,
|
|
10
11
|
codexResetRedemptionAttempts,
|
|
@@ -139,7 +140,7 @@ import {
|
|
|
139
140
|
workspaceVariableSetVariables,
|
|
140
141
|
workspaceVariableSets,
|
|
141
142
|
workspaces
|
|
142
|
-
} from "./chunk-
|
|
143
|
+
} from "./chunk-JYQPJ6Y5.js";
|
|
143
144
|
import "./chunk-PZ5AY32C.js";
|
|
144
145
|
export {
|
|
145
146
|
agentRunStates,
|
|
@@ -148,6 +149,7 @@ export {
|
|
|
148
149
|
billingCustomers,
|
|
149
150
|
capabilityCatalogItems,
|
|
150
151
|
capabilityInstallations,
|
|
152
|
+
codexAppsSettings,
|
|
151
153
|
codexCapacityWaiters,
|
|
152
154
|
codexCredentialLeases,
|
|
153
155
|
codexResetRedemptionAttempts,
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
-- deployment-mode: maintenance
|
|
2
|
+
-- GitHub App installation credentials are host-owned run material. Retire the
|
|
3
|
+
-- model-visible github_token MCP tool from every durable session selection and
|
|
4
|
+
-- prevent an old writer from reintroducing it after the coordinated cutover.
|
|
5
|
+
|
|
6
|
+
UPDATE "sessions"
|
|
7
|
+
SET "first_party_mcp_tools" = "first_party_mcp_tools" - 'github_token'
|
|
8
|
+
WHERE "first_party_mcp_tools" ? 'github_token';
|
|
9
|
+
|
|
10
|
+
ALTER TABLE "sessions"
|
|
11
|
+
ALTER COLUMN "first_party_mcp_tools"
|
|
12
|
+
SET DEFAULT '[
|
|
13
|
+
"set_session_title",
|
|
14
|
+
"goal_set",
|
|
15
|
+
"goal_update",
|
|
16
|
+
"goal_complete",
|
|
17
|
+
"goal_pause",
|
|
18
|
+
"memory_search",
|
|
19
|
+
"memory_save",
|
|
20
|
+
"memory_correct",
|
|
21
|
+
"preference_registry_summary",
|
|
22
|
+
"preference_registry_get",
|
|
23
|
+
"sandboxes_list",
|
|
24
|
+
"sandbox_attach",
|
|
25
|
+
"sandbox_swap",
|
|
26
|
+
"run_on",
|
|
27
|
+
"sandbox_provision",
|
|
28
|
+
"rig_list",
|
|
29
|
+
"rig_get",
|
|
30
|
+
"rig_propose_change",
|
|
31
|
+
"rig_verify",
|
|
32
|
+
"rig_promote",
|
|
33
|
+
"sessions_list",
|
|
34
|
+
"session_get",
|
|
35
|
+
"session_events",
|
|
36
|
+
"session_create",
|
|
37
|
+
"session_send_message",
|
|
38
|
+
"session_pause",
|
|
39
|
+
"session_resume",
|
|
40
|
+
"session_steer",
|
|
41
|
+
"set_other_session_title",
|
|
42
|
+
"variable_set_list",
|
|
43
|
+
"environment_list",
|
|
44
|
+
"variable_set_set_variable",
|
|
45
|
+
"environment_set_variable",
|
|
46
|
+
"github_connect_link",
|
|
47
|
+
"github_repositories_list",
|
|
48
|
+
"social_connections_list",
|
|
49
|
+
"social_posts_recent",
|
|
50
|
+
"social_daily_analysis_context",
|
|
51
|
+
"social_search_live",
|
|
52
|
+
"social_mentions_live",
|
|
53
|
+
"social_thread_fetch",
|
|
54
|
+
"social_posts_sync",
|
|
55
|
+
"social_post_reply",
|
|
56
|
+
"scheduled_tasks_list",
|
|
57
|
+
"scheduled_tasks_get",
|
|
58
|
+
"scheduled_tasks_create",
|
|
59
|
+
"scheduled_tasks_update",
|
|
60
|
+
"scheduled_tasks_pause",
|
|
61
|
+
"scheduled_tasks_resume",
|
|
62
|
+
"scheduled_tasks_trigger",
|
|
63
|
+
"scheduled_tasks_delete",
|
|
64
|
+
"scheduled_task_runs_list",
|
|
65
|
+
"slack_bot_list_channels",
|
|
66
|
+
"slack_bot_channel_history",
|
|
67
|
+
"slack_bot_thread_replies",
|
|
68
|
+
"slack_bot_list_users",
|
|
69
|
+
"slack_bot_list_files",
|
|
70
|
+
"slack_bot_file_info",
|
|
71
|
+
"slack_bot_file_content",
|
|
72
|
+
"slack_bot_post_message",
|
|
73
|
+
"slack_bot_delete_message",
|
|
74
|
+
"artifacts_list",
|
|
75
|
+
"artifacts_get_source",
|
|
76
|
+
"artifacts_create",
|
|
77
|
+
"artifacts_publish",
|
|
78
|
+
"artifacts_rollback"
|
|
79
|
+
]'::jsonb;
|
|
80
|
+
|
|
81
|
+
ALTER TABLE "sessions"
|
|
82
|
+
DROP CONSTRAINT IF EXISTS "sessions_first_party_mcp_tools_no_model_credentials_chk";
|
|
83
|
+
|
|
84
|
+
ALTER TABLE "sessions"
|
|
85
|
+
ADD CONSTRAINT "sessions_first_party_mcp_tools_no_model_credentials_chk"
|
|
86
|
+
CHECK (NOT ("first_party_mcp_tools" @> '["github_token"]'::jsonb));
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
-- deployment-mode: maintenance
|
|
2
|
+
|
|
3
|
+
SET LOCAL lock_timeout = '5s';
|
|
4
|
+
SET LOCAL statement_timeout = '10min';
|
|
5
|
+
|
|
6
|
+
-- Reject mixed-version writers before locking, then repeat after the locks to
|
|
7
|
+
-- close the connect-before-lock race. The deployment must keep API and workers
|
|
8
|
+
-- stopped until the new application version is active.
|
|
9
|
+
DO $codex_boundaries_writer_drain_before_lock$
|
|
10
|
+
BEGIN
|
|
11
|
+
IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'opengeni_app')
|
|
12
|
+
AND EXISTS (
|
|
13
|
+
SELECT 1
|
|
14
|
+
FROM pg_stat_activity
|
|
15
|
+
WHERE datname = current_database()
|
|
16
|
+
AND usename = 'opengeni_app'
|
|
17
|
+
AND pid <> pg_backend_pid()
|
|
18
|
+
)
|
|
19
|
+
THEN
|
|
20
|
+
RAISE EXCEPTION
|
|
21
|
+
'Codex authentication boundaries activation requires all opengeni_app sessions to be stopped'
|
|
22
|
+
USING ERRCODE = '55000';
|
|
23
|
+
END IF;
|
|
24
|
+
END
|
|
25
|
+
$codex_boundaries_writer_drain_before_lock$;
|
|
26
|
+
|
|
27
|
+
LOCK TABLE "codex_subscription_credentials" IN ACCESS EXCLUSIVE MODE;
|
|
28
|
+
LOCK TABLE "session_history_items" IN ACCESS EXCLUSIVE MODE;
|
|
29
|
+
LOCK TABLE "agent_run_states" IN ACCESS EXCLUSIVE MODE;
|
|
30
|
+
|
|
31
|
+
DO $codex_boundaries_writer_drain_after_lock$
|
|
32
|
+
BEGIN
|
|
33
|
+
IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'opengeni_app')
|
|
34
|
+
AND EXISTS (
|
|
35
|
+
SELECT 1
|
|
36
|
+
FROM pg_stat_activity
|
|
37
|
+
WHERE datname = current_database()
|
|
38
|
+
AND usename = 'opengeni_app'
|
|
39
|
+
AND pid <> pg_backend_pid()
|
|
40
|
+
)
|
|
41
|
+
THEN
|
|
42
|
+
RAISE EXCEPTION
|
|
43
|
+
'Codex authentication boundaries activation requires all opengeni_app sessions to be stopped'
|
|
44
|
+
USING ERRCODE = '55000';
|
|
45
|
+
END IF;
|
|
46
|
+
END
|
|
47
|
+
$codex_boundaries_writer_drain_after_lock$;
|
|
48
|
+
|
|
49
|
+
-- One optional workspace credential for ChatGPT connected Apps. This pointer is
|
|
50
|
+
-- intentionally separate from inference rotation and starts unset.
|
|
51
|
+
CREATE UNIQUE INDEX "codex_subscription_credentials_workspace_account_id_idx"
|
|
52
|
+
ON "codex_subscription_credentials" ("workspace_id", "account_id", "id");
|
|
53
|
+
|
|
54
|
+
CREATE TABLE "codex_apps_settings" (
|
|
55
|
+
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
56
|
+
"account_id" uuid NOT NULL REFERENCES "managed_accounts"("id") ON DELETE CASCADE,
|
|
57
|
+
"workspace_id" uuid NOT NULL REFERENCES "workspaces"("id") ON DELETE CASCADE,
|
|
58
|
+
"credential_id" uuid,
|
|
59
|
+
"version" integer NOT NULL DEFAULT 1,
|
|
60
|
+
"designated_at" timestamptz,
|
|
61
|
+
"updated_at" timestamptz NOT NULL DEFAULT now(),
|
|
62
|
+
CONSTRAINT "codex_apps_settings_workspace_account_fk"
|
|
63
|
+
FOREIGN KEY ("workspace_id", "account_id")
|
|
64
|
+
REFERENCES "workspaces"("id", "account_id") ON DELETE CASCADE,
|
|
65
|
+
CONSTRAINT "codex_apps_settings_credential_scope_fk"
|
|
66
|
+
FOREIGN KEY ("workspace_id", "account_id", "credential_id")
|
|
67
|
+
REFERENCES "codex_subscription_credentials"("workspace_id", "account_id", "id")
|
|
68
|
+
ON DELETE CASCADE,
|
|
69
|
+
CONSTRAINT "codex_apps_settings_designation_shape_chk" CHECK (
|
|
70
|
+
"version" > 0 AND (
|
|
71
|
+
("credential_id" IS NULL AND "designated_at" IS NULL)
|
|
72
|
+
OR
|
|
73
|
+
("credential_id" IS NOT NULL AND "designated_at" IS NOT NULL)
|
|
74
|
+
)
|
|
75
|
+
)
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
CREATE UNIQUE INDEX "codex_apps_settings_workspace_idx"
|
|
79
|
+
ON "codex_apps_settings" ("workspace_id");
|
|
80
|
+
|
|
81
|
+
ALTER TABLE "codex_apps_settings" ENABLE ROW LEVEL SECURITY;
|
|
82
|
+
ALTER TABLE "codex_apps_settings" FORCE ROW LEVEL SECURITY;
|
|
83
|
+
CREATE POLICY workspace_isolation ON "codex_apps_settings"
|
|
84
|
+
USING (opengeni_private.workspace_rls_visible(account_id, workspace_id))
|
|
85
|
+
WITH CHECK (opengeni_private.workspace_rls_visible(account_id, workspace_id));
|
|
86
|
+
|
|
87
|
+
-- Remove the false credential/history relation and the obsolete
|
|
88
|
+
-- connector-aware inference cache. Provider rejection receipts remain.
|
|
89
|
+
ALTER TABLE "session_history_items"
|
|
90
|
+
DROP COLUMN "producer_codex_credential_id";
|
|
91
|
+
ALTER TABLE "agent_run_states"
|
|
92
|
+
DROP COLUMN "frozen_codex_credential_id";
|
|
93
|
+
ALTER TABLE "codex_subscription_credentials"
|
|
94
|
+
DROP COLUMN "connector_namespaces",
|
|
95
|
+
DROP COLUMN "connectors_checked_at";
|
|
96
|
+
|
|
97
|
+
DO $$
|
|
98
|
+
DECLARE
|
|
99
|
+
target_schema text := current_schema();
|
|
100
|
+
BEGIN
|
|
101
|
+
IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'opengeni_app') THEN
|
|
102
|
+
EXECUTE format(
|
|
103
|
+
'GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE %I.codex_apps_settings TO opengeni_app',
|
|
104
|
+
target_schema
|
|
105
|
+
);
|
|
106
|
+
END IF;
|
|
107
|
+
END $$;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
-- deployment-mode: rolling
|
|
2
|
+
-- Historical, fully quiesced interruptions are audit evidence, not live control work.
|
|
3
|
+
|
|
4
|
+
SET lock_timeout = '5s';
|
|
5
|
+
SET statement_timeout = '10min';
|
|
6
|
+
|
|
7
|
+
DROP FUNCTION opengeni_private.claim_session_workflow_wakes(integer);
|
|
8
|
+
|
|
9
|
+
DO $migration$
|
|
10
|
+
DECLARE target_schema text := current_schema();
|
|
11
|
+
BEGIN
|
|
12
|
+
EXECUTE format($create$
|
|
13
|
+
CREATE FUNCTION opengeni_private.claim_session_workflow_wakes(p_limit integer)
|
|
14
|
+
RETURNS TABLE (
|
|
15
|
+
account_id uuid,
|
|
16
|
+
workspace_id uuid,
|
|
17
|
+
session_id uuid,
|
|
18
|
+
temporal_workflow_id text,
|
|
19
|
+
wake_revision bigint,
|
|
20
|
+
interruption_requested boolean
|
|
21
|
+
)
|
|
22
|
+
LANGUAGE plpgsql
|
|
23
|
+
SECURITY DEFINER
|
|
24
|
+
SET search_path = pg_catalog
|
|
25
|
+
AS $function$
|
|
26
|
+
BEGIN
|
|
27
|
+
RETURN QUERY
|
|
28
|
+
WITH due AS (
|
|
29
|
+
SELECT o.session_id
|
|
30
|
+
FROM %1$I.session_workflow_wake_outbox o
|
|
31
|
+
WHERE o.wake_revision > o.delivered_revision
|
|
32
|
+
AND o.next_attempt_at <= now()
|
|
33
|
+
ORDER BY o.next_attempt_at, o.updated_at, o.session_id
|
|
34
|
+
FOR UPDATE SKIP LOCKED
|
|
35
|
+
LIMIT greatest(1, least(coalesce(p_limit, 100), 1000))
|
|
36
|
+
)
|
|
37
|
+
UPDATE %1$I.session_workflow_wake_outbox o
|
|
38
|
+
SET attempts = o.attempts + 1,
|
|
39
|
+
next_attempt_at = now() + make_interval(
|
|
40
|
+
secs => least(300, greatest(1, power(2, least(o.attempts, 8))::integer))
|
|
41
|
+
),
|
|
42
|
+
updated_at = now()
|
|
43
|
+
FROM due
|
|
44
|
+
WHERE o.session_id = due.session_id
|
|
45
|
+
RETURNING o.account_id, o.workspace_id, o.session_id,
|
|
46
|
+
o.temporal_workflow_id, o.wake_revision,
|
|
47
|
+
o.control_revision > o.delivered_revision
|
|
48
|
+
OR EXISTS (
|
|
49
|
+
SELECT 1
|
|
50
|
+
FROM %1$I.session_attempt_interruptions interruption
|
|
51
|
+
JOIN %1$I.session_turn_attempts attempt
|
|
52
|
+
ON attempt.workspace_id = interruption.workspace_id
|
|
53
|
+
AND attempt.session_id = interruption.session_id
|
|
54
|
+
AND attempt.id = interruption.attempt_id
|
|
55
|
+
WHERE interruption.workspace_id = o.workspace_id
|
|
56
|
+
AND interruption.session_id = o.session_id
|
|
57
|
+
AND (
|
|
58
|
+
interruption.state IN ('pending', 'delivered', 'acknowledged')
|
|
59
|
+
OR (
|
|
60
|
+
interruption.state IN ('settled', 'rejected_stale')
|
|
61
|
+
AND attempt.quiesced_at IS NULL
|
|
62
|
+
)
|
|
63
|
+
)
|
|
64
|
+
) AS interruption_requested;
|
|
65
|
+
END $function$;
|
|
66
|
+
$create$, target_schema);
|
|
67
|
+
END $migration$;
|
|
68
|
+
|
|
69
|
+
REVOKE ALL ON FUNCTION opengeni_private.claim_session_workflow_wakes(integer) FROM PUBLIC;
|
|
70
|
+
|
|
71
|
+
DO $$
|
|
72
|
+
BEGIN
|
|
73
|
+
IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'opengeni_app') THEN
|
|
74
|
+
GRANT EXECUTE ON FUNCTION opengeni_private.claim_session_workflow_wakes(integer)
|
|
75
|
+
TO opengeni_app;
|
|
76
|
+
END IF;
|
|
77
|
+
END $$;
|
|
78
|
+
|
|
79
|
+
RESET statement_timeout;
|
|
80
|
+
RESET lock_timeout;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeni/db",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.11",
|
|
4
4
|
"description": "OpenGeni persistence: Drizzle schema, RLS-scoped query layer, the SQL migration runner, and role provisioning.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
"prepublishOnly": "bash ../../scripts/prepublish-guard"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@opengeni/codex": "^0.2.
|
|
54
|
-
"@opengeni/config": "^0.10.
|
|
55
|
-
"@opengeni/contracts": "^0.38.
|
|
53
|
+
"@opengeni/codex": "^0.2.11",
|
|
54
|
+
"@opengeni/config": "^0.10.14",
|
|
55
|
+
"@opengeni/contracts": "^0.38.3",
|
|
56
56
|
"@opengeni/network": "^0.2.0",
|
|
57
57
|
"drizzle-orm": "^0.45.2",
|
|
58
58
|
"postgres": "^3.4.7"
|