@askdb/core 1.0.0-beta.42 → 1.0.0-beta.44
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/README.md +14 -8
- package/dist/ask.d.ts +101 -4
- package/dist/ask.d.ts.map +1 -1
- package/dist/ask.js +243 -25
- package/dist/ask.js.map +1 -1
- package/dist/enrichment/suggest.d.ts.map +1 -1
- package/dist/enrichment/suggest.js +3 -1
- package/dist/enrichment/suggest.js.map +1 -1
- package/dist/errors.d.ts +41 -5
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +9 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/retrieval/synthesize-ddl.d.ts +4 -0
- package/dist/retrieval/synthesize-ddl.d.ts.map +1 -1
- package/dist/retrieval/synthesize-ddl.js +5 -3
- package/dist/retrieval/synthesize-ddl.js.map +1 -1
- package/dist/schema/normalize.d.ts +10 -0
- package/dist/schema/normalize.d.ts.map +1 -1
- package/dist/schema/normalize.js.map +1 -1
- package/dist/schema/v2/format.d.ts +7 -0
- package/dist/schema/v2/format.d.ts.map +1 -1
- package/dist/schema/v2/format.js +20 -7
- package/dist/schema/v2/format.js.map +1 -1
- package/dist/schema/v2/index.d.ts +3 -1
- package/dist/schema/v2/index.d.ts.map +1 -1
- package/dist/schema/v2/index.js +1 -0
- package/dist/schema/v2/index.js.map +1 -1
- package/dist/schema/v2/loader.d.ts +32 -1
- package/dist/schema/v2/loader.d.ts.map +1 -1
- package/dist/schema/v2/loader.js +173 -49
- package/dist/schema/v2/loader.js.map +1 -1
- package/dist/schema/v2/mentions.d.ts +31 -0
- package/dist/schema/v2/mentions.d.ts.map +1 -0
- package/dist/schema/v2/mentions.js +47 -0
- package/dist/schema/v2/mentions.js.map +1 -0
- package/dist/schema/v2/normalized.d.ts +38 -0
- package/dist/schema/v2/normalized.d.ts.map +1 -1
- package/dist/schema/v2/parser.d.ts +9 -0
- package/dist/schema/v2/parser.d.ts.map +1 -1
- package/dist/schema/v2/parser.js +18 -2
- package/dist/schema/v2/parser.js.map +1 -1
- package/dist/schema/v2/tenant-policy-loader.d.ts.map +1 -1
- package/dist/schema/v2/tenant-policy-loader.js +7 -3
- package/dist/schema/v2/tenant-policy-loader.js.map +1 -1
- package/dist/schema/v2/tenant-policy.d.ts +28 -21
- package/dist/schema/v2/tenant-policy.d.ts.map +1 -1
- package/dist/schema/v2/tenant-policy.js +67 -11
- package/dist/schema/v2/tenant-policy.js.map +1 -1
- package/dist/sql/bind.d.ts +17 -15
- package/dist/sql/bind.d.ts.map +1 -1
- package/dist/sql/bind.js +38 -173
- package/dist/sql/bind.js.map +1 -1
- package/dist/sql/dialect-spec.d.ts +48 -3
- package/dist/sql/dialect-spec.d.ts.map +1 -1
- package/dist/sql/dialect-spec.js +89 -3
- package/dist/sql/dialect-spec.js.map +1 -1
- package/dist/sql/generate.d.ts +14 -0
- package/dist/sql/generate.d.ts.map +1 -1
- package/dist/sql/generate.js +31 -17
- package/dist/sql/generate.js.map +1 -1
- package/dist/sql/index.d.ts +2 -1
- package/dist/sql/index.d.ts.map +1 -1
- package/dist/sql/index.js +2 -1
- package/dist/sql/index.js.map +1 -1
- package/dist/sql/lexer.d.ts +114 -0
- package/dist/sql/lexer.d.ts.map +1 -0
- package/dist/sql/lexer.js +397 -0
- package/dist/sql/lexer.js.map +1 -0
- package/dist/sql/prompt-identifiers.d.ts +20 -0
- package/dist/sql/prompt-identifiers.d.ts.map +1 -0
- package/dist/sql/prompt-identifiers.js +64 -0
- package/dist/sql/prompt-identifiers.js.map +1 -0
- package/dist/sql/prompt.d.ts +7 -1
- package/dist/sql/prompt.d.ts.map +1 -1
- package/dist/sql/prompt.js +22 -2
- package/dist/sql/prompt.js.map +1 -1
- package/dist/sql/reserved-words.d.ts +15 -0
- package/dist/sql/reserved-words.d.ts.map +1 -0
- package/dist/sql/reserved-words.js +102 -0
- package/dist/sql/reserved-words.js.map +1 -0
- package/dist/sql/sensitive-guardrail.d.ts +18 -3
- package/dist/sql/sensitive-guardrail.d.ts.map +1 -1
- package/dist/sql/sensitive-guardrail.js +446 -157
- package/dist/sql/sensitive-guardrail.js.map +1 -1
- package/dist/sql/tenant-guardrail.d.ts +70 -8
- package/dist/sql/tenant-guardrail.d.ts.map +1 -1
- package/dist/sql/tenant-guardrail.js +799 -52
- package/dist/sql/tenant-guardrail.js.map +1 -1
- package/dist/sql/tenant-hierarchy.d.ts +19 -0
- package/dist/sql/tenant-hierarchy.d.ts.map +1 -0
- package/dist/sql/tenant-hierarchy.js +53 -0
- package/dist/sql/tenant-hierarchy.js.map +1 -0
- package/dist/sql/tenant-placeholders.d.ts +47 -19
- package/dist/sql/tenant-placeholders.d.ts.map +1 -1
- package/dist/sql/tenant-placeholders.js +229 -58
- package/dist/sql/tenant-placeholders.js.map +1 -1
- package/dist/sql/tenant-prompt.d.ts +4 -0
- package/dist/sql/tenant-prompt.d.ts.map +1 -1
- package/dist/sql/tenant-prompt.js +79 -11
- package/dist/sql/tenant-prompt.js.map +1 -1
- package/dist/sql/tenant-scope-validate.d.ts +3 -1
- package/dist/sql/tenant-scope-validate.d.ts.map +1 -1
- package/dist/sql/tenant-scope-validate.js +5 -2
- package/dist/sql/tenant-scope-validate.js.map +1 -1
- package/dist/sql/validate.d.ts +34 -4
- package/dist/sql/validate.d.ts.map +1 -1
- package/dist/sql/validate.js +138 -37
- package/dist/sql/validate.js.map +1 -1
- package/package.json +11 -7
- package/dist/exec/postgres.d.ts +0 -6
- package/dist/exec/postgres.d.ts.map +0 -1
- package/dist/exec/postgres.js +0 -30
- package/dist/exec/postgres.js.map +0 -1
- package/dist/modes/post-execute-log.d.ts +0 -9
- package/dist/modes/post-execute-log.d.ts.map +0 -1
- package/dist/modes/post-execute-log.js +0 -26
- package/dist/modes/post-execute-log.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/schema/v2/parser.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,GAIzB,MAAM,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,QAAiB;IACnE,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/schema/v2/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-policy-loader.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/tenant-policy-loader.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"tenant-policy-loader.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/tenant-policy-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,0BAA0B,EAG/B,KAAK,sBAAsB,EAI3B,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAM5B,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,0BAA0B,CAiB5B;AAyBD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,0BAA0B,EAClC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC7B,sBAAsB,CAqKxB;AAyDD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAE5F;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAErH"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import matter from "gray-matter";
|
|
2
1
|
import { SchemaParseError } from "../../errors.js";
|
|
3
|
-
import {
|
|
2
|
+
import { readFrontMatter } from "./parser.js";
|
|
3
|
+
import { assertDistinctRootPlaceholders, tenantPolicyFrontmatterSchema, TENANT_POLICY_H2_SECTIONS, } from "./tenant-policy.js";
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
5
5
|
// Parsing
|
|
6
6
|
// ---------------------------------------------------------------------------
|
|
7
7
|
export function parseTenantPolicyMarkdown(content, filePath) {
|
|
8
|
-
|
|
8
|
+
// Malformed YAML must surface as SchemaParseError, never as a raw exception a
|
|
9
|
+
// caller might treat as "no policy" — that would silently disable tenancy.
|
|
10
|
+
const file = readFrontMatter(content, "tenant-policy", filePath);
|
|
9
11
|
const result = tenantPolicyFrontmatterSchema.safeParse(file.data);
|
|
10
12
|
if (!result.success) {
|
|
11
13
|
const loc = filePath ? ` in ${filePath}` : "";
|
|
@@ -35,6 +37,8 @@ function extractTenantPolicySections(body) {
|
|
|
35
37
|
export function normalizeTenantPolicy(parsed, physicalTableIds, physicalColumnIds) {
|
|
36
38
|
const fm = parsed.frontmatter;
|
|
37
39
|
const warnings = [];
|
|
40
|
+
// A shared placeholder would bind one root's IDs where another root's column is compared.
|
|
41
|
+
assertDistinctRootPlaceholders(fm.roots);
|
|
38
42
|
const rootIds = new Set(fm.roots.map((r) => r.id));
|
|
39
43
|
// Validate root table IDs exist in physical schema
|
|
40
44
|
for (const root of fm.roots) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-policy-loader.js","sourceRoot":"","sources":["../../../src/schema/v2/tenant-policy-loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tenant-policy-loader.js","sourceRoot":"","sources":["../../../src/schema/v2/tenant-policy-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -94,6 +94,34 @@ export type ScopedTable = z.infer<typeof scopedTableSchema>;
|
|
|
94
94
|
export type PolymorphicTable = z.infer<typeof polymorphicTableSchema>;
|
|
95
95
|
export type EnforcementMode = z.infer<typeof enforcementModeSchema>;
|
|
96
96
|
export type TenantPolicyFrontmatter = z.infer<typeof tenantPolicyFrontmatterSchema>;
|
|
97
|
+
/**
|
|
98
|
+
* The `:tenant_<name>_ids` placeholder the model writes for a tenant root, and the one
|
|
99
|
+
* `ask()` and `resolveTenantSql()` bind. `<name>` is the root's label lowercased, with
|
|
100
|
+
* every run of characters other than ASCII letters and digits replaced by `_`
|
|
101
|
+
* (`Sub-Agency` → `:tenant_sub_agency_ids`).
|
|
102
|
+
*
|
|
103
|
+
* A label with no ASCII letter or digit (e.g. Cyrillic or CJK) would reduce to `_` for
|
|
104
|
+
* every such root, so `<name>` comes from the root's table name instead (`Клиент` on
|
|
105
|
+
* `table:public.clients` → `:tenant_clients_ids`). Every derivation in core (prompt,
|
|
106
|
+
* substitution, guardrail, collision check) goes through this function.
|
|
107
|
+
*/
|
|
108
|
+
export declare function placeholderForTenantRoot(root: Pick<TenantRoot, "id" | "label">): string;
|
|
109
|
+
/**
|
|
110
|
+
* The placeholder for a root label, from the label alone.
|
|
111
|
+
*
|
|
112
|
+
* @deprecated Use {@link placeholderForTenantRoot} with the root. For a label with no
|
|
113
|
+
* ASCII letter or digit this returns `:tenant___ids`, which is not the placeholder core
|
|
114
|
+
* prompts for and binds (that one comes from the root's table name). For every other
|
|
115
|
+
* label the two agree.
|
|
116
|
+
*/
|
|
117
|
+
export declare function placeholderForRoot(label: string): string;
|
|
118
|
+
/**
|
|
119
|
+
* Throw `SchemaParseError` when two roots' labels derive the same placeholder
|
|
120
|
+
* (`Agency` and `agency`, `Sub-Agency` and `Sub Agency`). Each root's IDs bind through
|
|
121
|
+
* its placeholder, so a shared one would bind one root's IDs where the other root's
|
|
122
|
+
* column is compared: a cross-tenant leak whenever the two ID spaces overlap.
|
|
123
|
+
*/
|
|
124
|
+
export declare function assertDistinctRootPlaceholders(roots: readonly Pick<TenantRoot, "id" | "label">[]): void;
|
|
97
125
|
export declare const TENANT_POLICY_H2_SECTIONS: readonly ["Hierarchy", "Scope rules", "Sensitive interactions"];
|
|
98
126
|
export type TenantPolicyH2Section = (typeof TENANT_POLICY_H2_SECTIONS)[number];
|
|
99
127
|
export type ParsedTenantPolicyMarkdown = {
|
|
@@ -124,14 +152,6 @@ export type TenantAccessGlobal = {
|
|
|
124
152
|
reason: string;
|
|
125
153
|
};
|
|
126
154
|
export type TenantAccess = TenantAccessIds | TenantAccessSubtree | TenantAccessMultiRoot | TenantAccessGlobal;
|
|
127
|
-
export type TenantFilterCondition = {
|
|
128
|
-
column: string;
|
|
129
|
-
operator: "=" | "IN" | "!=" | "NOT IN";
|
|
130
|
-
value: string | string[];
|
|
131
|
-
};
|
|
132
|
-
export type TenantFilter = {
|
|
133
|
-
conditions: TenantFilterCondition[];
|
|
134
|
-
};
|
|
135
155
|
export type TenantScopeContext = {
|
|
136
156
|
role?: string;
|
|
137
157
|
label?: string;
|
|
@@ -142,7 +162,6 @@ export type TenantScopeContext = {
|
|
|
142
162
|
};
|
|
143
163
|
export type TenantScope = {
|
|
144
164
|
access: TenantAccess;
|
|
145
|
-
tenantFilters?: Record<string, TenantFilter>;
|
|
146
165
|
context?: TenantScopeContext;
|
|
147
166
|
};
|
|
148
167
|
export declare const tenantAccessSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -184,18 +203,6 @@ export declare const tenantScopeSchema: z.ZodObject<{
|
|
|
184
203
|
kind: z.ZodLiteral<"global">;
|
|
185
204
|
reason: z.ZodString;
|
|
186
205
|
}, z.core.$strip>], "kind">;
|
|
187
|
-
tenantFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
188
|
-
conditions: z.ZodArray<z.ZodObject<{
|
|
189
|
-
column: z.ZodString;
|
|
190
|
-
operator: z.ZodEnum<{
|
|
191
|
-
"=": "=";
|
|
192
|
-
IN: "IN";
|
|
193
|
-
"!=": "!=";
|
|
194
|
-
"NOT IN": "NOT IN";
|
|
195
|
-
}>;
|
|
196
|
-
value: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
197
|
-
}, z.core.$strip>>;
|
|
198
|
-
}, z.core.$strip>>>;
|
|
199
206
|
context: z.ZodOptional<z.ZodObject<{
|
|
200
207
|
role: z.ZodOptional<z.ZodString>;
|
|
201
208
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-policy.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/tenant-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"tenant-policy.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/tenant-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { SchemaParseError } from "../../errors.js";
|
|
2
3
|
// ---------------------------------------------------------------------------
|
|
3
4
|
// Front-matter zod schemas (validated when parsing tenant-policy.md)
|
|
4
5
|
// ---------------------------------------------------------------------------
|
|
@@ -51,6 +52,62 @@ export const tenantPolicyFrontmatterSchema = z.strictObject({
|
|
|
51
52
|
globalTables: z.array(z.string().min(1)).optional(),
|
|
52
53
|
});
|
|
53
54
|
// ---------------------------------------------------------------------------
|
|
55
|
+
// Placeholder naming convention
|
|
56
|
+
// ---------------------------------------------------------------------------
|
|
57
|
+
const placeholderName = (text) => text.toLowerCase().replace(/[^a-z0-9]+/g, "_");
|
|
58
|
+
/**
|
|
59
|
+
* The `:tenant_<name>_ids` placeholder the model writes for a tenant root, and the one
|
|
60
|
+
* `ask()` and `resolveTenantSql()` bind. `<name>` is the root's label lowercased, with
|
|
61
|
+
* every run of characters other than ASCII letters and digits replaced by `_`
|
|
62
|
+
* (`Sub-Agency` → `:tenant_sub_agency_ids`).
|
|
63
|
+
*
|
|
64
|
+
* A label with no ASCII letter or digit (e.g. Cyrillic or CJK) would reduce to `_` for
|
|
65
|
+
* every such root, so `<name>` comes from the root's table name instead (`Клиент` on
|
|
66
|
+
* `table:public.clients` → `:tenant_clients_ids`). Every derivation in core (prompt,
|
|
67
|
+
* substitution, guardrail, collision check) goes through this function.
|
|
68
|
+
*/
|
|
69
|
+
export function placeholderForTenantRoot(root) {
|
|
70
|
+
const fromLabel = placeholderName(root.label);
|
|
71
|
+
if (/[a-z0-9]/.test(fromLabel))
|
|
72
|
+
return `:tenant_${fromLabel}_ids`;
|
|
73
|
+
const table = root.id.startsWith("table:") ? root.id.slice("table:".length) : root.id;
|
|
74
|
+
return `:tenant_${placeholderName(table.slice(table.lastIndexOf(".") + 1))}_ids`;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The placeholder for a root label, from the label alone.
|
|
78
|
+
*
|
|
79
|
+
* @deprecated Use {@link placeholderForTenantRoot} with the root. For a label with no
|
|
80
|
+
* ASCII letter or digit this returns `:tenant___ids`, which is not the placeholder core
|
|
81
|
+
* prompts for and binds (that one comes from the root's table name). For every other
|
|
82
|
+
* label the two agree.
|
|
83
|
+
*/
|
|
84
|
+
export function placeholderForRoot(label) {
|
|
85
|
+
return `:tenant_${placeholderName(label)}_ids`;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Throw `SchemaParseError` when two roots' labels derive the same placeholder
|
|
89
|
+
* (`Agency` and `agency`, `Sub-Agency` and `Sub Agency`). Each root's IDs bind through
|
|
90
|
+
* its placeholder, so a shared one would bind one root's IDs where the other root's
|
|
91
|
+
* column is compared: a cross-tenant leak whenever the two ID spaces overlap.
|
|
92
|
+
*/
|
|
93
|
+
export function assertDistinctRootPlaceholders(roots) {
|
|
94
|
+
const byPlaceholder = new Map();
|
|
95
|
+
for (const root of roots) {
|
|
96
|
+
const placeholder = placeholderForTenantRoot(root);
|
|
97
|
+
const other = byPlaceholder.get(placeholder);
|
|
98
|
+
if (other && other.id !== root.id) {
|
|
99
|
+
throw new SchemaParseError(`Invalid tenant policy: roots '${other.id}' (label "${other.label}") and '${root.id}' ` +
|
|
100
|
+
`(label "${root.label}") both map to the placeholder ${placeholder}, so one root's IDs ` +
|
|
101
|
+
"would be bound where the other root's column is compared. A root's placeholder is " +
|
|
102
|
+
":tenant_<name>_ids, where <name> is its label lowercased with every run of characters " +
|
|
103
|
+
"other than ASCII letters and digits replaced by '_'. A label with no ASCII letter or " +
|
|
104
|
+
"digit uses the root's table name instead. Rename one of these labels so the two " +
|
|
105
|
+
"placeholders differ (a label with ASCII letters or digits sets the name directly).");
|
|
106
|
+
}
|
|
107
|
+
byPlaceholder.set(placeholder, root);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
54
111
|
// Recognized H2 sections in tenant-policy.md body
|
|
55
112
|
// ---------------------------------------------------------------------------
|
|
56
113
|
export const TENANT_POLICY_H2_SECTIONS = [
|
|
@@ -74,12 +131,18 @@ const tenantAccessSubtreeSchema = z.object({
|
|
|
74
131
|
});
|
|
75
132
|
const tenantAccessMultiRootSchema = z.object({
|
|
76
133
|
kind: z.literal("multi_root"),
|
|
134
|
+
// An entry may have no IDs: it names a root the user is covered for but has no rows
|
|
135
|
+
// in (ask() expands an empty subtree level this way). Binding its placeholder fails
|
|
136
|
+
// closed (UNRESOLVED_TENANT_PLACEHOLDER). A scope with no ID anywhere grants nothing.
|
|
77
137
|
scopes: z
|
|
78
138
|
.array(z.object({
|
|
79
139
|
tenantRoot: z.string().min(1),
|
|
80
|
-
ids: z.array(z.string())
|
|
140
|
+
ids: z.array(z.string()),
|
|
81
141
|
}))
|
|
82
|
-
.min(1)
|
|
142
|
+
.min(1)
|
|
143
|
+
.refine((scopes) => scopes.some((s) => s.ids.length > 0), {
|
|
144
|
+
message: "multi_root needs at least one entry with an ID",
|
|
145
|
+
}),
|
|
83
146
|
});
|
|
84
147
|
const tenantAccessGlobalSchema = z.object({
|
|
85
148
|
kind: z.literal("global"),
|
|
@@ -91,14 +154,6 @@ export const tenantAccessSchema = z.discriminatedUnion("kind", [
|
|
|
91
154
|
tenantAccessMultiRootSchema,
|
|
92
155
|
tenantAccessGlobalSchema,
|
|
93
156
|
]);
|
|
94
|
-
const tenantFilterConditionSchema = z.object({
|
|
95
|
-
column: z.string().min(1),
|
|
96
|
-
operator: z.enum(["=", "IN", "!=", "NOT IN"]),
|
|
97
|
-
value: z.union([z.string(), z.array(z.string())]),
|
|
98
|
-
});
|
|
99
|
-
const tenantFilterSchema = z.object({
|
|
100
|
-
conditions: z.array(tenantFilterConditionSchema).min(1),
|
|
101
|
-
});
|
|
102
157
|
const tenantScopeContextSchema = z.strictObject({
|
|
103
158
|
role: z.string().optional(),
|
|
104
159
|
label: z.string().optional(),
|
|
@@ -107,9 +162,10 @@ const tenantScopeContextSchema = z.strictObject({
|
|
|
107
162
|
attributes: z.record(z.string(), z.string()).optional(),
|
|
108
163
|
description: z.string().optional(),
|
|
109
164
|
});
|
|
165
|
+
// Deliberately z.object (not strictObject): unknown keys — including the removed,
|
|
166
|
+
// never-implemented `tenantFilters` — are ignored rather than rejected.
|
|
110
167
|
export const tenantScopeSchema = z.object({
|
|
111
168
|
access: tenantAccessSchema,
|
|
112
|
-
tenantFilters: z.record(z.string(), tenantFilterSchema).optional(),
|
|
113
169
|
context: tenantScopeContextSchema.optional(),
|
|
114
170
|
});
|
|
115
171
|
//# sourceMappingURL=tenant-policy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-policy.js","sourceRoot":"","sources":["../../../src/schema/v2/tenant-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"tenant-policy.js","sourceRoot":"","sources":["../../../src/schema/v2/tenant-policy.ts"],"names":[],"mappings":"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"}
|
package/dist/sql/bind.d.ts
CHANGED
|
@@ -40,24 +40,20 @@ export type BoundQuery = {
|
|
|
40
40
|
params: QueryParamSlot[];
|
|
41
41
|
bindings: QueryParameterBinding[];
|
|
42
42
|
};
|
|
43
|
-
export type SqlSpanKind = "code" | "quoted";
|
|
43
|
+
export type SqlSpanKind = "code" | "quoted" | "comment";
|
|
44
44
|
export type SqlSpan = {
|
|
45
45
|
kind: SqlSpanKind;
|
|
46
46
|
start: number;
|
|
47
47
|
end: number;
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
50
|
+
* Split SQL into contiguous code / quoted / comment regions using the shared lexer
|
|
51
|
+
* (`lexer.ts`). With a dialect, strings, quoted identifiers, and comments follow that
|
|
52
|
+
* engine's rules (Postgres `E'…'` and exact-tag `$tag$…$tag$`, MySQL backslash escapes
|
|
53
|
+
* and `#` comments, SQL Server `[…]`, …). Without one, the generic profile recognizes
|
|
54
|
+
* the union of quoting forms. An unterminated quote or comment runs to the end.
|
|
53
55
|
*/
|
|
54
|
-
export declare function tokenizeSqlSpans(sql: string): SqlSpan[];
|
|
55
|
-
/**
|
|
56
|
-
* Strip quoted regions for keyword / multi-statement checks.
|
|
57
|
-
* Preserves historical replacement markers for quotes the old stripper knew
|
|
58
|
-
* about (`''`, `""`, `$$`); new quote forms (backticks, brackets) become spaces.
|
|
59
|
-
*/
|
|
60
|
-
export declare function stripSqlStringLiterals(sql: string): string;
|
|
56
|
+
export declare function tokenizeSqlSpans(sql: string, dialect?: Pick<DialectSpec, "id" | "backslashEscapes">): SqlSpan[];
|
|
61
57
|
export type PlaceholderOccurrence = {
|
|
62
58
|
/** Name without the leading colon, e.g. "state_name" or "tenant_agency_ids". */
|
|
63
59
|
name: string;
|
|
@@ -67,11 +63,17 @@ export type PlaceholderOccurrence = {
|
|
|
67
63
|
end: number;
|
|
68
64
|
};
|
|
69
65
|
/**
|
|
70
|
-
* Find `:name` placeholders only
|
|
71
|
-
* A quoted `':name'` is invisible by construction.
|
|
66
|
+
* Find `:name` placeholders only in code regions, in source order.
|
|
67
|
+
* A quoted `':name'` or a commented-out `-- :name` is invisible by construction.
|
|
68
|
+
*/
|
|
69
|
+
export declare function scanPlaceholders(sql: string, dialect?: Pick<DialectSpec, "id" | "backslashEscapes">): PlaceholderOccurrence[];
|
|
70
|
+
/**
|
|
71
|
+
* `:tenant_<root>_ids` placeholders in code regions. Pass the dialect so strings and
|
|
72
|
+
* comments are recognized the way the target engine reads them (MySQL backslash
|
|
73
|
+
* escapes and `#` comments, Postgres nested block comments, …); without one the
|
|
74
|
+
* generic profile is used.
|
|
72
75
|
*/
|
|
73
|
-
export declare function
|
|
74
|
-
export declare function scanTenantPlaceholders(sql: string): PlaceholderOccurrence[];
|
|
76
|
+
export declare function scanTenantPlaceholders(sql: string, dialect?: Pick<DialectSpec, "id" | "backslashEscapes">): PlaceholderOccurrence[];
|
|
75
77
|
/**
|
|
76
78
|
* A `many` placeholder must be the sole expression inside `IN (...)` / `NOT IN (...)`,
|
|
77
79
|
* or the sole argument of `= ANY(...)` on array dialects.
|
package/dist/sql/bind.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../src/sql/bind.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../src/sql/bind.ts"],"names":[],"mappings":"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"}
|