@opengeni/db 3.1.0-canary.0 → 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.
Files changed (57) hide show
  1. package/dist/canonical-human-identities.js +3 -3
  2. package/dist/{chunk-NMUBV7Z5.js → chunk-2EH4WRHL.js} +2 -2
  3. package/dist/{chunk-NJVZPWXY.js → chunk-2PRS4J5Q.js} +3 -3
  4. package/dist/{chunk-TIKF3KTI.js → chunk-6HMM2R5T.js} +11 -4
  5. package/dist/chunk-6HMM2R5T.js.map +1 -0
  6. package/dist/{chunk-SCPUJS53.js → chunk-AZHW7R5V.js} +17 -9
  7. package/dist/chunk-AZHW7R5V.js.map +1 -0
  8. package/dist/{chunk-EULAN2NP.js → chunk-E6CLMKEE.js} +2 -2
  9. package/dist/{chunk-PR2WMLOQ.js → chunk-KRLPEMLH.js} +12 -1
  10. package/dist/chunk-KRLPEMLH.js.map +1 -0
  11. package/dist/{chunk-ZZ5LJEFX.js → chunk-NAB6FKFN.js} +3 -3
  12. package/dist/{chunk-OF5OBB76.js → chunk-UZNXG44K.js} +56 -5
  13. package/dist/chunk-UZNXG44K.js.map +1 -0
  14. package/dist/connection-tenancy-backfill.d.ts +44 -0
  15. package/dist/database.d.ts +4 -4
  16. package/dist/editable-artifact-durable-export.js +2 -2
  17. package/dist/editable-artifacts.js +3 -3
  18. package/dist/index.d.ts +12 -1
  19. package/dist/index.js +1384 -1078
  20. package/dist/index.js.map +1 -1
  21. package/dist/provision-roles.js +1 -1
  22. package/dist/runtime-posture.d.ts +9 -2
  23. package/dist/schema.js +1 -1
  24. package/dist/session-background-commands.js +3 -3
  25. package/dist/session-queue-commands.d.ts +2 -0
  26. package/dist/session-tenancy.js +3 -3
  27. package/dist/slack-routing.d.ts +115 -0
  28. package/dist/slack-user-link-access.d.ts +27 -0
  29. package/dist/video-generation.js +3 -3
  30. package/drizzle/0342_slack_route_prompt_single_pending.sql +32 -0
  31. package/drizzle/0343_personal_document_force_rls_lock_repair.sql +146 -0
  32. package/drizzle/0344_private_session_visibility_transition_gate.sql +85 -0
  33. package/drizzle/0345_tenant_scoped_session_tenancy_fence.sql +2839 -0
  34. package/drizzle/0346_document_migration_audit_surface.sql +454 -0
  35. package/drizzle/0347_connection_authority_convergence_evidence.sql +396 -0
  36. package/package.json +6 -6
  37. package/src/connection-tenancy-backfill.ts +86 -0
  38. package/src/database.ts +12 -0
  39. package/src/index.ts +25 -2
  40. package/src/organization-membership-lifecycle.ts +15 -5
  41. package/src/provision-roles.ts +28 -0
  42. package/src/runtime-posture.ts +31 -1
  43. package/src/schema.ts +13 -0
  44. package/src/session-queue-commands.ts +4 -1
  45. package/src/session-realtime-context.ts +1 -3
  46. package/src/session-realtime-ledger.ts +6 -3
  47. package/src/session-tenancy.ts +7 -0
  48. package/src/slack-routing.ts +399 -1
  49. package/src/slack-user-link-access.ts +121 -10
  50. package/dist/chunk-OF5OBB76.js.map +0 -1
  51. package/dist/chunk-PR2WMLOQ.js.map +0 -1
  52. package/dist/chunk-SCPUJS53.js.map +0 -1
  53. package/dist/chunk-TIKF3KTI.js.map +0 -1
  54. /package/dist/{chunk-NMUBV7Z5.js.map → chunk-2EH4WRHL.js.map} +0 -0
  55. /package/dist/{chunk-NJVZPWXY.js.map → chunk-2PRS4J5Q.js.map} +0 -0
  56. /package/dist/{chunk-EULAN2NP.js.map → chunk-E6CLMKEE.js.map} +0 -0
  57. /package/dist/{chunk-ZZ5LJEFX.js.map → chunk-NAB6FKFN.js.map} +0 -0
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  withRlsContext
3
- } from "./chunk-SCPUJS53.js";
3
+ } from "./chunk-AZHW7R5V.js";
4
4
  import {
5
5
  sandboxRetainedProcesses,
6
6
  sessionBackgroundCommands,
7
7
  sessions
8
- } from "./chunk-PR2WMLOQ.js";
8
+ } from "./chunk-KRLPEMLH.js";
9
9
 
10
10
  // src/session-background-commands.ts
11
11
  import { and, desc, eq, inArray, sql } from "drizzle-orm";
@@ -513,4 +513,4 @@ export {
513
513
  settleSessionBackgroundCommandForRetainedProcess,
514
514
  settleConnectedMachineSessionBackgroundCommand
515
515
  };
516
- //# sourceMappingURL=chunk-ZZ5LJEFX.js.map
516
+ //# sourceMappingURL=chunk-NAB6FKFN.js.map
@@ -248,10 +248,13 @@ var USER_RESOURCE_LIFECYCLE_ROUTINES = [
248
248
  "revoke_self_user_resource_grant(uuid, uuid, uuid)",
249
249
  "authorize_session_attempt_personal_resource_reads(uuid, uuid, uuid)"
250
250
  ];
251
+ var CONNECTION_CONVERGENCE_AUDIT_CAPABILITY_ROUTINE = "connection_authority_convergence_audit_capability_active(uuid)";
251
252
  var CONNECTION_AUTHORITY_ROUTINES = [
253
+ CONNECTION_CONVERGENCE_AUDIT_CAPABILITY_ROUTINE,
252
254
  "resolve_personal_connection_authority_selection(uuid, uuid, text, uuid, jsonb)",
253
255
  "resolve_accepted_connection_use(uuid, uuid, uuid, uuid, uuid, integer, uuid, text, text, uuid, text, text, text, text)",
254
- "resolve_connection_use_authority(uuid, uuid, uuid, jsonb)"
256
+ "resolve_connection_use_authority(uuid, uuid, uuid, jsonb)",
257
+ "inspect_organization_connection_authority_convergence(uuid, integer, uuid)"
255
258
  ];
256
259
  var PERSONAL_GITHUB_REPOSITORY_AUTHORITY_ROUTINES = [
257
260
  "get_self_personal_github_repository_selection(uuid, uuid, text, uuid)",
@@ -299,7 +302,14 @@ var DOCUMENT_MIGRATION_CAPABILITY_TABLE = "document_migration_capabilities";
299
302
  var DOCUMENT_MIGRATION_AUTHORITY_ROUTINES = [
300
303
  "list_document_authority_reclassifications(uuid, uuid, text, uuid, integer, timestamp with time zone, uuid)",
301
304
  "reclassify_document_authority(jsonb)",
302
- "run_document_default_collection_backfill(jsonb)"
305
+ "run_document_default_collection_backfill(jsonb)",
306
+ "list_document_default_collection_backfill_runs(jsonb)",
307
+ "get_document_default_collection_backfill_audit(jsonb)",
308
+ "list_organization_document_authority_reclassifications(jsonb)"
309
+ ];
310
+ var DOCUMENT_MIGRATION_AUDIT_INTERNAL_ROUTINES = [
311
+ "document_migration_audit_capability_active(text)",
312
+ "assert_document_migration_audit_authority(jsonb)"
303
313
  ];
304
314
  var VARIABLE_SET_AUTHORITY_ROUTINES = [
305
315
  "create_scoped_variable_set(uuid, uuid, text, text, text, jsonb, boolean)",
@@ -518,10 +528,17 @@ var RUNTIME_TARGET_SCHEMA_CAPABILITY_ROUTINES = [
518
528
  XAI_REVALIDATE_CREDENTIAL_ROUTINE,
519
529
  XAI_SNAPSHOT_VALIDATOR_ROUTINE
520
530
  ];
531
+ var RUNTIME_TARGET_SCHEMA_PUBLIC_POLICY_PREDICATE_ROUTINES = [
532
+ CONNECTION_CONVERGENCE_AUDIT_CAPABILITY_ROUTINE
533
+ ];
534
+ var RUNTIME_TARGET_SCHEMA_PUBLIC_POLICY_PREDICATE_ROUTINE_SET = new Set(
535
+ RUNTIME_TARGET_SCHEMA_PUBLIC_POLICY_PREDICATE_ROUTINES
536
+ );
521
537
  var RUNTIME_TARGET_SCHEMA_FORBIDDEN_ROUTINES = [
522
538
  ORGANIZATION_PRIVATE_SESSIONS_ENABLED_ROUTINE,
523
539
  SESSION_TENANCY_QUIESCENCE_ROUTINE,
524
- TENANCY_BACKFILL_ACTIVATION_EVIDENCE_ROUTINE
540
+ TENANCY_BACKFILL_ACTIVATION_EVIDENCE_ROUTINE,
541
+ ...DOCUMENT_MIGRATION_AUDIT_INTERNAL_ROUTINES
525
542
  ];
526
543
  var RUNTIME_TARGET_SCHEMA_INVOKER_ROUTINES = [
527
544
  SESSION_REFERENCE_VISIBLE_ROUTINE,
@@ -2035,7 +2052,12 @@ function evaluateRuntimeDatabasePosture(posture, options) {
2035
2052
  if (!routine.execute) {
2036
2053
  violations.push(`runtime role lacks target-schema capability ${routine.name}`);
2037
2054
  }
2038
- if (routine.publicExecute) {
2055
+ const publicPolicyPredicate = RUNTIME_TARGET_SCHEMA_PUBLIC_POLICY_PREDICATE_ROUTINE_SET.has(
2056
+ routine.name
2057
+ );
2058
+ if (publicPolicyPredicate && !routine.publicExecute) {
2059
+ violations.push(`PUBLIC lacks required shared-policy predicate ${routine.name}`);
2060
+ } else if (!publicPolicyPredicate && routine.publicExecute) {
2039
2061
  violations.push(`PUBLIC has forbidden target-schema capability ${routine.name}`);
2040
2062
  }
2041
2063
  }
@@ -3080,6 +3102,7 @@ BEGIN
3080
3102
  FOREACH routine_signature IN ARRAY ARRAY[
3081
3103
  'classify_organization_connection_authority(uuid,text)',
3082
3104
  'backfill_organization_connection_authority(uuid,integer,boolean)',
3105
+ 'inspect_organization_connection_authority_convergence(uuid,integer,uuid)',
3083
3106
  'check_organization_tenancy_parity(uuid,integer,integer)'
3084
3107
  ] LOOP
3085
3108
  IF to_regprocedure(format('%I.%s', ${literal(schema)}, routine_signature))
@@ -3093,6 +3116,18 @@ BEGIN
3093
3116
  );
3094
3117
  END IF;
3095
3118
  END LOOP;
3119
+ IF to_regclass(
3120
+ format(
3121
+ '%I.connection_authority_convergence_audit_capabilities',
3122
+ ${literal(schema)}
3123
+ )
3124
+ ) IS NOT NULL THEN
3125
+ EXECUTE format(
3126
+ 'REVOKE ALL PRIVILEGES ON TABLE %I.connection_authority_convergence_audit_capabilities FROM %I',
3127
+ ${literal(schema)},
3128
+ ${literal(role)}
3129
+ );
3130
+ END IF;
3096
3131
  -- Migration 0110 creates this target-schema-local SECURITY DEFINER
3097
3132
  -- capability before opengeni_app may exist. Re-converge its exact EXECUTE
3098
3133
  -- grant here so the supported migrate-then-provision order is equivalent to
@@ -4001,6 +4036,21 @@ BEGIN
4001
4036
  EXECUTE format('GRANT SELECT ON TABLE %I.document_authority_reclassifications TO %I', ${literal(schema)}, ${literal(role)});
4002
4037
  EXECUTE format('REVOKE INSERT, UPDATE, DELETE ON TABLE %I.document_authority_reclassifications FROM %I', ${literal(schema)}, ${literal(role)});
4003
4038
  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)});
4039
+ IF to_regprocedure(
4040
+ format('%I.list_document_default_collection_backfill_runs(jsonb)', ${literal(schema)})
4041
+ ) IS NOT NULL THEN
4042
+ EXECUTE format('REVOKE ALL ON FUNCTION %I.list_document_default_collection_backfill_runs(jsonb) FROM PUBLIC', ${literal(schema)});
4043
+ EXECUTE format('GRANT EXECUTE ON FUNCTION %I.list_document_default_collection_backfill_runs(jsonb) TO %I', ${literal(schema)}, ${literal(role)});
4044
+ EXECUTE format('REVOKE ALL ON FUNCTION %I.get_document_default_collection_backfill_audit(jsonb) FROM PUBLIC', ${literal(schema)});
4045
+ EXECUTE format('GRANT EXECUTE ON FUNCTION %I.get_document_default_collection_backfill_audit(jsonb) TO %I', ${literal(schema)}, ${literal(role)});
4046
+ EXECUTE format('REVOKE ALL ON FUNCTION %I.list_organization_document_authority_reclassifications(jsonb) FROM PUBLIC', ${literal(schema)});
4047
+ EXECUTE format('GRANT EXECUTE ON FUNCTION %I.list_organization_document_authority_reclassifications(jsonb) TO %I', ${literal(schema)}, ${literal(role)});
4048
+ EXECUTE format('REVOKE ALL ON FUNCTION %I.document_migration_audit_capability_active(text) FROM PUBLIC', ${literal(schema)});
4049
+ EXECUTE format('REVOKE ALL ON FUNCTION %I.document_migration_audit_capability_active(text) FROM %I', ${literal(schema)}, ${literal(role)});
4050
+ EXECUTE format('REVOKE ALL ON FUNCTION %I.assert_document_migration_audit_authority(jsonb) FROM PUBLIC', ${literal(schema)});
4051
+ EXECUTE format('REVOKE ALL ON FUNCTION %I.assert_document_migration_audit_authority(jsonb) FROM %I', ${literal(schema)}, ${literal(role)});
4052
+ EXECUTE format('REVOKE ALL PRIVILEGES ON TABLE %I.document_migration_audit_capabilities FROM %I', ${literal(schema)}, ${literal(role)});
4053
+ END IF;
4004
4054
  END IF;
4005
4055
  IF to_regprocedure(
4006
4056
  format('%I.create_scoped_variable_set(uuid,uuid,text,text,text,jsonb,boolean)', ${literal(schema)})
@@ -4435,6 +4485,7 @@ if (import.meta.main) {
4435
4485
 
4436
4486
  export {
4437
4487
  RUNTIME_TARGET_SCHEMA_CAPABILITY_ROUTINES,
4488
+ RUNTIME_TARGET_SCHEMA_PUBLIC_POLICY_PREDICATE_ROUTINES,
4438
4489
  RUNTIME_TARGET_SCHEMA_FORBIDDEN_ROUTINES,
4439
4490
  RUNTIME_TARGET_SCHEMA_INVOKER_ROUTINES,
4440
4491
  FORCE_RLS_TABLES,
@@ -4454,4 +4505,4 @@ export {
4454
4505
  runtimeDatabaseReadyCheck,
4455
4506
  provisionRoles
4456
4507
  };
4457
- //# sourceMappingURL=chunk-OF5OBB76.js.map
4508
+ //# sourceMappingURL=chunk-UZNXG44K.js.map