@rehearsal-db/core 0.1.0-beta.13 → 0.1.0-beta.15

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 (169) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/README.md +4 -1
  3. package/dist/package.json +100 -0
  4. package/dist/scripts/install/create_root_config.d.mts +3 -0
  5. package/dist/scripts/install/create_root_config.mjs +13 -0
  6. package/dist/scripts/runtime/manage_database.d.mts +6 -0
  7. package/{scripts → dist/scripts}/runtime/manage_database.mjs +6 -8
  8. package/dist/src/application/session.d.mts +96 -0
  9. package/dist/src/application/session.mjs +380 -0
  10. package/dist/src/baseline/artifact.d.mts +119 -0
  11. package/dist/src/baseline/artifact.mjs +522 -0
  12. package/dist/src/baseline/builder.d.mts +19 -0
  13. package/dist/src/baseline/builder.mjs +142 -0
  14. package/dist/src/baseline/input_discovery.d.mts +13 -0
  15. package/dist/src/baseline/input_discovery.mjs +149 -0
  16. package/dist/src/baseline/policy_review.d.mts +56 -0
  17. package/dist/src/baseline/policy_review.mjs +73 -0
  18. package/dist/src/baseline/preparation.d.mts +63 -0
  19. package/dist/src/baseline/preparation.mjs +295 -0
  20. package/dist/src/baseline/privacy_engine.d.mts +162 -0
  21. package/dist/src/baseline/privacy_engine.mjs +1162 -0
  22. package/dist/src/baseline/privacy_structured_json.d.mts +66 -0
  23. package/dist/src/baseline/privacy_structured_json.mjs +464 -0
  24. package/dist/src/baseline/sanitization_policy.d.mts +69 -0
  25. package/dist/src/baseline/sanitization_policy.mjs +227 -0
  26. package/dist/src/baseline/schema_snapshot.d.mts +19 -0
  27. package/dist/src/baseline/schema_snapshot.mjs +79 -0
  28. package/dist/src/cli/arguments.d.mts +43 -0
  29. package/dist/src/cli/arguments.mjs +135 -0
  30. package/dist/src/cli/guided.d.mts +51 -0
  31. package/dist/src/cli/guided.mjs +713 -0
  32. package/dist/src/cli/init_command.d.mts +21 -0
  33. package/dist/src/cli/init_command.mjs +90 -0
  34. package/dist/src/cli/project_commands.d.mts +157 -0
  35. package/dist/src/cli/project_commands.mjs +183 -0
  36. package/dist/src/cli/rehearsal.d.mts +7 -0
  37. package/dist/src/cli/rehearsal.mjs +706 -0
  38. package/dist/src/cli/renderers.d.mts +299 -0
  39. package/dist/src/cli/renderers.mjs +554 -0
  40. package/dist/src/cli/runtime_commands.d.mts +265 -0
  41. package/dist/src/cli/runtime_commands.mjs +599 -0
  42. package/dist/src/cli/source_commands.d.mts +432 -0
  43. package/dist/src/cli/source_commands.mjs +299 -0
  44. package/dist/src/cli/terminal.d.mts +59 -0
  45. package/dist/src/cli/terminal.mjs +230 -0
  46. package/dist/src/identity/claim.d.mts +144 -0
  47. package/dist/src/identity/claim.mjs +947 -0
  48. package/dist/src/identity/provider_configuration.d.mts +37 -0
  49. package/dist/src/identity/provider_configuration.mjs +132 -0
  50. package/dist/src/identity/storage.d.mts +21 -0
  51. package/dist/src/identity/storage.mjs +122 -0
  52. package/dist/src/index.d.mts +4 -0
  53. package/dist/src/index.mjs +3 -0
  54. package/dist/src/project/configuration.d.mts +181 -0
  55. package/dist/src/project/configuration.mjs +958 -0
  56. package/dist/src/project/install_scaffold.d.mts +42 -0
  57. package/dist/src/project/install_scaffold.mjs +263 -0
  58. package/dist/src/project/setup.d.mts +87 -0
  59. package/dist/src/project/setup.mjs +414 -0
  60. package/dist/src/project/support_report.d.mts +88 -0
  61. package/dist/src/project/support_report.mjs +83 -0
  62. package/dist/src/runtime/cleanup.d.mts +85 -0
  63. package/dist/src/runtime/cleanup.mjs +311 -0
  64. package/dist/src/runtime/migration_history.d.mts +51 -0
  65. package/dist/src/runtime/migration_history.mjs +170 -0
  66. package/dist/src/runtime/plan.d.mts +134 -0
  67. package/dist/src/runtime/plan.mjs +636 -0
  68. package/dist/src/runtime/policy.d.mts +66 -0
  69. package/dist/src/runtime/policy.mjs +369 -0
  70. package/dist/src/runtime/restore.d.mts +22 -0
  71. package/dist/src/runtime/restore.mjs +276 -0
  72. package/dist/src/runtime/service_environment.d.mts +11 -0
  73. package/dist/src/runtime/service_environment.mjs +58 -0
  74. package/dist/src/runtime/topology.d.mts +51 -0
  75. package/dist/src/runtime/topology.mjs +128 -0
  76. package/dist/src/shared/diagnostics.d.mts +97 -0
  77. package/dist/src/shared/diagnostics.mjs +170 -0
  78. package/dist/src/shared/human_output.d.mts +2 -0
  79. package/{src → dist/src}/shared/human_output.mjs +1 -3
  80. package/dist/src/shared/node_runtime.d.mts +14 -0
  81. package/dist/src/shared/node_runtime.mjs +25 -0
  82. package/dist/src/shared/operation_guard.d.mts +22 -0
  83. package/dist/src/shared/operation_guard.mjs +150 -0
  84. package/dist/src/shared/process_environment.d.mts +15 -0
  85. package/dist/src/shared/process_environment.mjs +50 -0
  86. package/dist/src/source/access.d.mts +165 -0
  87. package/dist/src/source/access.mjs +602 -0
  88. package/dist/src/source/asset_transfer.d.mts +27 -0
  89. package/dist/src/source/asset_transfer.mjs +202 -0
  90. package/dist/src/source/baseline.d.mts +66 -0
  91. package/dist/src/source/baseline.mjs +372 -0
  92. package/dist/src/source/external_reader.d.mts +42 -0
  93. package/dist/src/source/external_reader.mjs +278 -0
  94. package/dist/src/source/postgresql_access.d.mts +86 -0
  95. package/dist/src/source/postgresql_access.mjs +454 -0
  96. package/dist/src/source/privacy_paths.d.mts +10 -0
  97. package/dist/src/source/privacy_paths.mjs +27 -0
  98. package/dist/src/targets/driver.d.mts +2 -0
  99. package/dist/src/targets/driver.mjs +13 -0
  100. package/dist/src/targets/postgresql.d.mts +5 -0
  101. package/dist/src/targets/postgresql.mjs +641 -0
  102. package/dist/src/targets/supabase.d.mts +8 -0
  103. package/dist/src/targets/supabase.mjs +659 -0
  104. package/dist/src/targets/supabase_environment.d.mts +49 -0
  105. package/dist/src/targets/supabase_environment.mjs +162 -0
  106. package/dist/src/targets/target.d.mts +33 -0
  107. package/dist/src/targets/target.mjs +39 -0
  108. package/docs/README.md +1 -0
  109. package/docs/architecture.md +17 -9
  110. package/docs/configuration.md +49 -8
  111. package/docs/getting-started.md +28 -0
  112. package/docs/index.md +1 -0
  113. package/docs/production-source.md +43 -7
  114. package/docs/releasing.md +5 -3
  115. package/docs/roadmap.md +3 -2
  116. package/docs/sanitization.md +415 -14
  117. package/docs/standalone-workflow.md +12 -6
  118. package/docs/troubleshooting.md +5 -1
  119. package/docs/tutorial.md +5 -0
  120. package/docs/typescript.md +87 -0
  121. package/package.json +35 -29
  122. package/scripts/install/create_root_config.mjs +0 -36
  123. package/src/README.md +0 -17
  124. package/src/application/session.mjs +0 -435
  125. package/src/baseline/artifact.mjs +0 -684
  126. package/src/baseline/builder.mjs +0 -164
  127. package/src/baseline/input_discovery.mjs +0 -155
  128. package/src/baseline/policy_review.mjs +0 -92
  129. package/src/baseline/preparation.mjs +0 -323
  130. package/src/baseline/privacy_engine.mjs +0 -952
  131. package/src/baseline/sanitization_policy.mjs +0 -299
  132. package/src/baseline/schema_snapshot.mjs +0 -113
  133. package/src/cli/arguments.mjs +0 -126
  134. package/src/cli/guided.mjs +0 -814
  135. package/src/cli/init_command.mjs +0 -94
  136. package/src/cli/rehearsal.mjs +0 -970
  137. package/src/cli/renderers.mjs +0 -626
  138. package/src/cli/runtime_commands.mjs +0 -707
  139. package/src/cli/source_commands.mjs +0 -347
  140. package/src/cli/terminal.mjs +0 -275
  141. package/src/identity/claim.mjs +0 -1163
  142. package/src/identity/provider_configuration.mjs +0 -177
  143. package/src/identity/storage.mjs +0 -165
  144. package/src/project/configuration.mjs +0 -1337
  145. package/src/project/install_scaffold.mjs +0 -291
  146. package/src/project/setup.mjs +0 -466
  147. package/src/project/support_report.mjs +0 -105
  148. package/src/runtime/cleanup.mjs +0 -381
  149. package/src/runtime/migration_history.mjs +0 -220
  150. package/src/runtime/plan.mjs +0 -722
  151. package/src/runtime/policy.mjs +0 -438
  152. package/src/runtime/restore.mjs +0 -337
  153. package/src/runtime/service_environment.mjs +0 -82
  154. package/src/runtime/topology.mjs +0 -177
  155. package/src/shared/diagnostics.mjs +0 -207
  156. package/src/shared/node_runtime.mjs +0 -31
  157. package/src/shared/operation_guard.mjs +0 -162
  158. package/src/shared/process_environment.mjs +0 -68
  159. package/src/source/access.mjs +0 -753
  160. package/src/source/asset_transfer.mjs +0 -207
  161. package/src/source/baseline.mjs +0 -482
  162. package/src/source/external_reader.mjs +0 -255
  163. package/src/source/postgresql_access.mjs +0 -581
  164. package/src/source/privacy_paths.mjs +0 -38
  165. package/src/targets/postgresql.mjs +0 -808
  166. package/src/targets/supabase.mjs +0 -840
  167. package/src/targets/supabase_environment.mjs +0 -229
  168. package/src/targets/target.mjs +0 -66
  169. /package/{src/project → types}/configuration.d.mts +0 -0
@@ -0,0 +1,144 @@
1
+ /** Associate a reviewed copied owner graph with one verified local Auth identity. */
2
+ import type { SupabaseStorageTransfer } from "./storage.mjs";
3
+ declare const SUPPORTED_IDENTITY_PROVIDERS: readonly ["email", "github", "google"];
4
+ type JsonObject = Record<string, unknown>;
5
+ type IdentityProvider = (typeof SUPPORTED_IDENTITY_PROVIDERS)[number];
6
+ type SubjectIdentityProvider = Exclude<IdentityProvider, "email">;
7
+ type IdentityStrategy = "transfer" | "preserve-audit";
8
+ type PathValueType = "text" | "jsonb";
9
+ interface Relation {
10
+ readonly schema: string;
11
+ readonly table: string;
12
+ }
13
+ interface PatternDefaultMatcher {
14
+ readonly kind: "pattern";
15
+ readonly pattern: string;
16
+ }
17
+ interface ExactDefaultMatcher {
18
+ readonly kind: "exact";
19
+ readonly value: unknown;
20
+ }
21
+ type SignupDefaultMatcher = PatternDefaultMatcher | ExactDefaultMatcher;
22
+ interface VerifiedEmailMatcher {
23
+ readonly type: "verified-email";
24
+ readonly providers: readonly IdentityProvider[];
25
+ readonly emailEnvironmentVariable: string;
26
+ readonly approvedEmailSha256: string;
27
+ }
28
+ interface ProviderSubjectMatcher {
29
+ readonly type: "provider-subject";
30
+ readonly provider: SubjectIdentityProvider;
31
+ readonly subjectEnvironmentVariable: string;
32
+ readonly approvedSubjectSha256: string;
33
+ }
34
+ type IdentityMatcher = VerifiedEmailMatcher | ProviderSubjectMatcher;
35
+ interface IdentityReference extends Relation {
36
+ readonly column: string;
37
+ readonly required: boolean;
38
+ readonly strategy: IdentityStrategy;
39
+ }
40
+ interface JsonIdentityReference extends Relation {
41
+ readonly column: string;
42
+ readonly path: readonly string[];
43
+ }
44
+ interface SignupDefaultDeclaration {
45
+ readonly table: Relation;
46
+ readonly identityColumn: string;
47
+ readonly ignoredColumns: readonly string[];
48
+ readonly values: Readonly<Record<string, SignupDefaultMatcher>>;
49
+ }
50
+ interface PathIdentityReference extends Relation {
51
+ readonly column: string;
52
+ readonly valueType: PathValueType;
53
+ }
54
+ interface IdentityAsset {
55
+ readonly bucket: string;
56
+ readonly prefix: string;
57
+ readonly rewritePath: boolean;
58
+ }
59
+ interface IdentityTokenHook {
60
+ readonly function: Readonly<{
61
+ schema: string;
62
+ name: string;
63
+ }>;
64
+ readonly expectedClaims: JsonObject;
65
+ }
66
+ export interface IdentityDeclaration {
67
+ readonly name: string;
68
+ readonly matcher: IdentityMatcher;
69
+ readonly placeholderUserId: string;
70
+ readonly references: readonly IdentityReference[];
71
+ readonly jsonReferences: readonly JsonIdentityReference[];
72
+ readonly signupDefaults: readonly SignupDefaultDeclaration[];
73
+ readonly pathReferences: readonly PathIdentityReference[];
74
+ readonly assets: readonly IdentityAsset[];
75
+ readonly claims: JsonObject;
76
+ readonly tokenHook: IdentityTokenHook | null;
77
+ }
78
+ export interface IdentityPolicy {
79
+ readonly identityVersion: 1;
80
+ readonly identities: readonly IdentityDeclaration[];
81
+ }
82
+ interface IdentityClaimReview {
83
+ readonly planVersion: 3;
84
+ readonly operation: "claim-local-identity";
85
+ readonly name: string;
86
+ readonly matcher: IdentityMatcher;
87
+ readonly placeholderUserId: string;
88
+ readonly references: readonly IdentityReference[];
89
+ readonly jsonReferences: readonly JsonIdentityReference[];
90
+ readonly signupDefaults: readonly Readonly<{
91
+ table: Relation;
92
+ identityColumn: string;
93
+ ignoredColumns: readonly string[];
94
+ valuesSha256: string;
95
+ }>[];
96
+ readonly pathReferences: readonly PathIdentityReference[];
97
+ readonly assets: readonly IdentityAsset[];
98
+ readonly claimKeys: readonly string[];
99
+ readonly claimsSha256: string;
100
+ readonly tokenHook: Readonly<{
101
+ function: Readonly<{
102
+ schema: string;
103
+ name: string;
104
+ }>;
105
+ expectedClaimsSha256: string;
106
+ }> | null;
107
+ }
108
+ export interface IdentityClaimPlan {
109
+ readonly identity: IdentityDeclaration;
110
+ readonly review: Readonly<IdentityClaimReview>;
111
+ readonly digest: string;
112
+ }
113
+ interface QueryResult<Row extends JsonObject = JsonObject> {
114
+ readonly rows: Row[];
115
+ }
116
+ interface IdentityDatabaseClient {
117
+ connect?(): Promise<void>;
118
+ end?(): Promise<void>;
119
+ query<Row extends JsonObject = JsonObject>(sql: string, parameters?: readonly unknown[]): Promise<QueryResult<Row>>;
120
+ }
121
+ type IdentityClientFactory = (connectionString: string) => IdentityDatabaseClient | Promise<IdentityDatabaseClient>;
122
+ export declare const validateIdentityPolicy: (policy: unknown) => IdentityPolicy;
123
+ export declare const createIdentityClaimPlan: ({ policy, name, environment, }: {
124
+ policy: unknown;
125
+ name: string;
126
+ environment?: Readonly<Record<string, string | undefined>>;
127
+ }) => IdentityClaimPlan;
128
+ export declare const applyIdentityClaim: ({ plan, confirmation, connectionString, clientFactory, storageTransfer, }: {
129
+ plan: IdentityClaimPlan;
130
+ confirmation: string;
131
+ connectionString: string;
132
+ clientFactory?: IdentityClientFactory;
133
+ storageTransfer?: SupabaseStorageTransfer;
134
+ }) => Promise<{
135
+ name: string;
136
+ provider: IdentityProvider;
137
+ claimed: true;
138
+ removedSignupDefaults: number;
139
+ tokenHookVerified: boolean;
140
+ placeholderRetainedForAudit: boolean;
141
+ storageObjectsTransferred: number;
142
+ idempotent: boolean;
143
+ }>;
144
+ export {};