@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.
- package/CHANGELOG.md +93 -0
- package/README.md +4 -1
- package/dist/package.json +100 -0
- package/dist/scripts/install/create_root_config.d.mts +3 -0
- package/dist/scripts/install/create_root_config.mjs +13 -0
- package/dist/scripts/runtime/manage_database.d.mts +6 -0
- package/{scripts → dist/scripts}/runtime/manage_database.mjs +6 -8
- package/dist/src/application/session.d.mts +96 -0
- package/dist/src/application/session.mjs +380 -0
- package/dist/src/baseline/artifact.d.mts +119 -0
- package/dist/src/baseline/artifact.mjs +522 -0
- package/dist/src/baseline/builder.d.mts +19 -0
- package/dist/src/baseline/builder.mjs +142 -0
- package/dist/src/baseline/input_discovery.d.mts +13 -0
- package/dist/src/baseline/input_discovery.mjs +149 -0
- package/dist/src/baseline/policy_review.d.mts +56 -0
- package/dist/src/baseline/policy_review.mjs +73 -0
- package/dist/src/baseline/preparation.d.mts +63 -0
- package/dist/src/baseline/preparation.mjs +295 -0
- package/dist/src/baseline/privacy_engine.d.mts +162 -0
- package/dist/src/baseline/privacy_engine.mjs +1162 -0
- package/dist/src/baseline/privacy_structured_json.d.mts +66 -0
- package/dist/src/baseline/privacy_structured_json.mjs +464 -0
- package/dist/src/baseline/sanitization_policy.d.mts +69 -0
- package/dist/src/baseline/sanitization_policy.mjs +227 -0
- package/dist/src/baseline/schema_snapshot.d.mts +19 -0
- package/dist/src/baseline/schema_snapshot.mjs +79 -0
- package/dist/src/cli/arguments.d.mts +43 -0
- package/dist/src/cli/arguments.mjs +135 -0
- package/dist/src/cli/guided.d.mts +51 -0
- package/dist/src/cli/guided.mjs +713 -0
- package/dist/src/cli/init_command.d.mts +21 -0
- package/dist/src/cli/init_command.mjs +90 -0
- package/dist/src/cli/project_commands.d.mts +157 -0
- package/dist/src/cli/project_commands.mjs +183 -0
- package/dist/src/cli/rehearsal.d.mts +7 -0
- package/dist/src/cli/rehearsal.mjs +706 -0
- package/dist/src/cli/renderers.d.mts +299 -0
- package/dist/src/cli/renderers.mjs +554 -0
- package/dist/src/cli/runtime_commands.d.mts +265 -0
- package/dist/src/cli/runtime_commands.mjs +599 -0
- package/dist/src/cli/source_commands.d.mts +432 -0
- package/dist/src/cli/source_commands.mjs +299 -0
- package/dist/src/cli/terminal.d.mts +59 -0
- package/dist/src/cli/terminal.mjs +230 -0
- package/dist/src/identity/claim.d.mts +144 -0
- package/dist/src/identity/claim.mjs +947 -0
- package/dist/src/identity/provider_configuration.d.mts +37 -0
- package/dist/src/identity/provider_configuration.mjs +132 -0
- package/dist/src/identity/storage.d.mts +21 -0
- package/dist/src/identity/storage.mjs +122 -0
- package/dist/src/index.d.mts +4 -0
- package/dist/src/index.mjs +3 -0
- package/dist/src/project/configuration.d.mts +181 -0
- package/dist/src/project/configuration.mjs +958 -0
- package/dist/src/project/install_scaffold.d.mts +42 -0
- package/dist/src/project/install_scaffold.mjs +263 -0
- package/dist/src/project/setup.d.mts +87 -0
- package/dist/src/project/setup.mjs +414 -0
- package/dist/src/project/support_report.d.mts +88 -0
- package/dist/src/project/support_report.mjs +83 -0
- package/dist/src/runtime/cleanup.d.mts +85 -0
- package/dist/src/runtime/cleanup.mjs +311 -0
- package/dist/src/runtime/migration_history.d.mts +51 -0
- package/dist/src/runtime/migration_history.mjs +170 -0
- package/dist/src/runtime/plan.d.mts +134 -0
- package/dist/src/runtime/plan.mjs +636 -0
- package/dist/src/runtime/policy.d.mts +66 -0
- package/dist/src/runtime/policy.mjs +369 -0
- package/dist/src/runtime/restore.d.mts +22 -0
- package/dist/src/runtime/restore.mjs +276 -0
- package/dist/src/runtime/service_environment.d.mts +11 -0
- package/dist/src/runtime/service_environment.mjs +58 -0
- package/dist/src/runtime/topology.d.mts +51 -0
- package/dist/src/runtime/topology.mjs +128 -0
- package/dist/src/shared/diagnostics.d.mts +97 -0
- package/dist/src/shared/diagnostics.mjs +170 -0
- package/dist/src/shared/human_output.d.mts +2 -0
- package/{src → dist/src}/shared/human_output.mjs +1 -3
- package/dist/src/shared/node_runtime.d.mts +14 -0
- package/dist/src/shared/node_runtime.mjs +25 -0
- package/dist/src/shared/operation_guard.d.mts +22 -0
- package/dist/src/shared/operation_guard.mjs +150 -0
- package/dist/src/shared/process_environment.d.mts +15 -0
- package/dist/src/shared/process_environment.mjs +50 -0
- package/dist/src/source/access.d.mts +165 -0
- package/dist/src/source/access.mjs +602 -0
- package/dist/src/source/asset_transfer.d.mts +27 -0
- package/dist/src/source/asset_transfer.mjs +202 -0
- package/dist/src/source/baseline.d.mts +66 -0
- package/dist/src/source/baseline.mjs +372 -0
- package/dist/src/source/external_reader.d.mts +42 -0
- package/dist/src/source/external_reader.mjs +278 -0
- package/dist/src/source/postgresql_access.d.mts +86 -0
- package/dist/src/source/postgresql_access.mjs +454 -0
- package/dist/src/source/privacy_paths.d.mts +10 -0
- package/dist/src/source/privacy_paths.mjs +27 -0
- package/dist/src/targets/driver.d.mts +2 -0
- package/dist/src/targets/driver.mjs +13 -0
- package/dist/src/targets/postgresql.d.mts +5 -0
- package/dist/src/targets/postgresql.mjs +641 -0
- package/dist/src/targets/supabase.d.mts +8 -0
- package/dist/src/targets/supabase.mjs +659 -0
- package/dist/src/targets/supabase_environment.d.mts +49 -0
- package/dist/src/targets/supabase_environment.mjs +162 -0
- package/dist/src/targets/target.d.mts +33 -0
- package/dist/src/targets/target.mjs +39 -0
- package/docs/README.md +1 -0
- package/docs/architecture.md +17 -9
- package/docs/configuration.md +49 -8
- package/docs/getting-started.md +28 -0
- package/docs/index.md +1 -0
- package/docs/production-source.md +43 -7
- package/docs/releasing.md +5 -3
- package/docs/roadmap.md +3 -2
- package/docs/sanitization.md +415 -14
- package/docs/standalone-workflow.md +12 -6
- package/docs/troubleshooting.md +5 -1
- package/docs/tutorial.md +5 -0
- package/docs/typescript.md +87 -0
- package/package.json +35 -29
- package/scripts/install/create_root_config.mjs +0 -36
- package/src/README.md +0 -17
- package/src/application/session.mjs +0 -435
- package/src/baseline/artifact.mjs +0 -684
- package/src/baseline/builder.mjs +0 -164
- package/src/baseline/input_discovery.mjs +0 -155
- package/src/baseline/policy_review.mjs +0 -92
- package/src/baseline/preparation.mjs +0 -323
- package/src/baseline/privacy_engine.mjs +0 -952
- package/src/baseline/sanitization_policy.mjs +0 -299
- package/src/baseline/schema_snapshot.mjs +0 -113
- package/src/cli/arguments.mjs +0 -126
- package/src/cli/guided.mjs +0 -814
- package/src/cli/init_command.mjs +0 -94
- package/src/cli/rehearsal.mjs +0 -970
- package/src/cli/renderers.mjs +0 -626
- package/src/cli/runtime_commands.mjs +0 -707
- package/src/cli/source_commands.mjs +0 -347
- package/src/cli/terminal.mjs +0 -275
- package/src/identity/claim.mjs +0 -1163
- package/src/identity/provider_configuration.mjs +0 -177
- package/src/identity/storage.mjs +0 -165
- package/src/project/configuration.mjs +0 -1337
- package/src/project/install_scaffold.mjs +0 -291
- package/src/project/setup.mjs +0 -466
- package/src/project/support_report.mjs +0 -105
- package/src/runtime/cleanup.mjs +0 -381
- package/src/runtime/migration_history.mjs +0 -220
- package/src/runtime/plan.mjs +0 -722
- package/src/runtime/policy.mjs +0 -438
- package/src/runtime/restore.mjs +0 -337
- package/src/runtime/service_environment.mjs +0 -82
- package/src/runtime/topology.mjs +0 -177
- package/src/shared/diagnostics.mjs +0 -207
- package/src/shared/node_runtime.mjs +0 -31
- package/src/shared/operation_guard.mjs +0 -162
- package/src/shared/process_environment.mjs +0 -68
- package/src/source/access.mjs +0 -753
- package/src/source/asset_transfer.mjs +0 -207
- package/src/source/baseline.mjs +0 -482
- package/src/source/external_reader.mjs +0 -255
- package/src/source/postgresql_access.mjs +0 -581
- package/src/source/privacy_paths.mjs +0 -38
- package/src/targets/postgresql.mjs +0 -808
- package/src/targets/supabase.mjs +0 -840
- package/src/targets/supabase_environment.mjs +0 -229
- package/src/targets/target.mjs +0 -66
- /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 {};
|