@intentius/chant-lexicon-sql 0.117.0 → 0.118.1
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/clickhouse/access.d.ts +132 -0
- package/dist/clickhouse/access.d.ts.map +1 -0
- package/dist/clickhouse/apply/apply.d.ts.map +1 -1
- package/dist/clickhouse/apply/statements.d.ts +2 -0
- package/dist/clickhouse/apply/statements.d.ts.map +1 -1
- package/dist/clickhouse/entities.d.ts +171 -2
- package/dist/clickhouse/entities.d.ts.map +1 -1
- package/dist/clickhouse/http.d.ts +3 -0
- package/dist/clickhouse/http.d.ts.map +1 -1
- package/dist/clickhouse/import/generator.d.ts +28 -0
- package/dist/clickhouse/import/generator.d.ts.map +1 -1
- package/dist/clickhouse/import/ir.d.ts.map +1 -1
- package/dist/clickhouse/import/parser.d.ts +3 -3
- package/dist/clickhouse/import/parser.d.ts.map +1 -1
- package/dist/clickhouse/live/bind.d.ts.map +1 -1
- package/dist/clickhouse/live/catalog.d.ts +41 -6
- package/dist/clickhouse/live/catalog.d.ts.map +1 -1
- package/dist/clickhouse/live/describe-resources.d.ts +3 -2
- package/dist/clickhouse/live/describe-resources.d.ts.map +1 -1
- package/dist/clickhouse/parser.d.ts +54 -3
- package/dist/clickhouse/parser.d.ts.map +1 -1
- package/dist/clickhouse/plan/commands.d.ts +3 -1
- package/dist/clickhouse/plan/commands.d.ts.map +1 -1
- package/dist/clickhouse/plan/deep.d.ts.map +1 -1
- package/dist/clickhouse/plan/diff.d.ts +12 -0
- package/dist/clickhouse/plan/diff.d.ts.map +1 -1
- package/dist/clickhouse/plan/normalize.d.ts +61 -1
- package/dist/clickhouse/plan/normalize.d.ts.map +1 -1
- package/dist/clickhouse/plan/report.d.ts.map +1 -1
- package/dist/clickhouse/plan/rules.d.ts +7 -0
- package/dist/clickhouse/plan/rules.d.ts.map +1 -1
- package/dist/clickhouse/plan/schema.d.ts +8 -4
- package/dist/clickhouse/plan/schema.d.ts.map +1 -1
- package/dist/clickhouse/rebuild/backfill.d.ts +3 -1
- package/dist/clickhouse/rebuild/backfill.d.ts.map +1 -1
- package/dist/clickhouse/rebuild/observe.d.ts +7 -3
- package/dist/clickhouse/rebuild/observe.d.ts.map +1 -1
- package/dist/clickhouse/rebuild/op.d.ts +8 -0
- package/dist/clickhouse/rebuild/op.d.ts.map +1 -1
- package/dist/clickhouse/rebuild/steps.d.ts +48 -0
- package/dist/clickhouse/rebuild/steps.d.ts.map +1 -1
- package/dist/clickhouse/testing/fake-server.d.ts.map +1 -1
- package/dist/clickhouse/testing/writable-server.d.ts.map +1 -1
- package/dist/clickhouse/topology.d.ts.map +1 -1
- package/dist/clickhouse.d.ts +1 -1
- package/dist/clickhouse.d.ts.map +1 -1
- package/dist/codegen/classifier-page.d.ts.map +1 -1
- package/dist/codegen/registry.d.ts.map +1 -1
- package/dist/config.d.ts +50 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/core/references.d.ts +4 -2
- package/dist/core/references.d.ts.map +1 -1
- package/dist/core/statements.d.ts +11 -0
- package/dist/core/statements.d.ts.map +1 -1
- package/dist/files/build-root.d.ts +34 -0
- package/dist/files/build-root.d.ts.map +1 -0
- package/dist/files/clickhouse.d.ts +19 -0
- package/dist/files/clickhouse.d.ts.map +1 -0
- package/dist/files/common.d.ts +25 -0
- package/dist/files/common.d.ts.map +1 -0
- package/dist/files/postgres.d.ts +36 -0
- package/dist/files/postgres.d.ts.map +1 -0
- package/dist/import-parser.d.ts +25 -0
- package/dist/import-parser.d.ts.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/integrity.json +6 -6
- package/dist/lint/rules/sqlch001.d.ts +1 -1
- package/dist/lint/rules/sqlch001.d.ts.map +1 -1
- package/dist/lint/rules/sqlch002.d.ts.map +1 -1
- package/dist/lint/rules/templates.d.ts +1 -1
- package/dist/lint/rules/templates.d.ts.map +1 -1
- package/dist/manifest.json +1 -1
- package/dist/meta.json +30 -0
- package/dist/okf/index.md +7 -1
- package/dist/okf/rules/SQLCH001.md +2 -2
- package/dist/okf/types/Dictionary.md +9 -0
- package/dist/okf/types/Function.md +9 -0
- package/dist/okf/types/Grant.md +9 -0
- package/dist/okf/types/Role.md +9 -0
- package/dist/okf/types/RowPolicy.md +9 -0
- package/dist/okf/types/User.md +9 -0
- package/dist/op/activities/clickhouse-rebuild.d.ts.map +1 -1
- package/dist/op/activity-contracts.d.ts +9 -0
- package/dist/op/activity-contracts.d.ts.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/postgres/apply/statements.d.ts +68 -0
- package/dist/postgres/apply/statements.d.ts.map +1 -1
- package/dist/postgres/import/generator.d.ts +33 -0
- package/dist/postgres/import/generator.d.ts.map +1 -1
- package/dist/postgres/live/bind.d.ts.map +1 -1
- package/dist/postgres/live/client.d.ts +3 -0
- package/dist/postgres/live/client.d.ts.map +1 -1
- package/dist/rules/sqlch001.ts +26 -4
- package/dist/rules/sqlch002.ts +3 -2
- package/dist/rules/templates.ts +2 -2
- package/dist/serializer.d.ts +2 -1
- package/dist/serializer.d.ts.map +1 -1
- package/dist/sql-files.d.ts +79 -0
- package/dist/sql-files.d.ts.map +1 -0
- package/dist/token-source.d.ts +88 -0
- package/dist/token-source.d.ts.map +1 -0
- package/dist/validate.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/clickhouse/access.test.ts +203 -0
- package/src/clickhouse/access.ts +595 -0
- package/src/clickhouse/apply/apply.ts +29 -20
- package/src/clickhouse/apply/statements.ts +105 -8
- package/src/clickhouse/dictionary.test.ts +177 -0
- package/src/clickhouse/entities.ts +356 -6
- package/src/clickhouse/function.test.ts +91 -0
- package/src/clickhouse/http.ts +11 -2
- package/src/clickhouse/import/generator.ts +81 -46
- package/src/clickhouse/import/import.test.ts +9 -3
- package/src/clickhouse/import/ir.ts +6 -2
- package/src/clickhouse/import/parser.ts +10 -18
- package/src/clickhouse/live/access.e2e.test.ts +218 -0
- package/src/clickhouse/live/bind.ts +17 -6
- package/src/clickhouse/live/catalog.ts +106 -10
- package/src/clickhouse/live/describe-resources.ts +23 -10
- package/src/clickhouse/live/dictionaries.e2e.test.ts +186 -0
- package/src/clickhouse/live/functions.e2e.test.ts +155 -0
- package/src/clickhouse/live/live.test.ts +2 -2
- package/src/clickhouse/parser.ts +136 -4
- package/src/clickhouse/plan/commands.ts +18 -7
- package/src/clickhouse/plan/deep.ts +71 -11
- package/src/clickhouse/plan/diff.ts +65 -2
- package/src/clickhouse/plan/normalize.ts +200 -6
- package/src/clickhouse/plan/report.ts +14 -3
- package/src/clickhouse/plan/rules.ts +44 -1
- package/src/clickhouse/plan/schema.ts +40 -17
- package/src/clickhouse/plan/server-format.ts +1 -1
- package/src/clickhouse/rebuild/backfill.ts +5 -25
- package/src/clickhouse/rebuild/observe.ts +7 -3
- package/src/clickhouse/rebuild/op.ts +9 -0
- package/src/clickhouse/rebuild/rebuild.e2e.test.ts +62 -0
- package/src/clickhouse/rebuild/rebuild.test.ts +54 -0
- package/src/clickhouse/rebuild/steps.ts +136 -1
- package/src/clickhouse/testing/fake-server.ts +2 -0
- package/src/clickhouse/testing/writable-server.ts +2 -0
- package/src/clickhouse/topology.ts +17 -2
- package/src/clickhouse.ts +19 -0
- package/src/codegen/classifier-page.ts +2 -0
- package/src/codegen/registry.ts +6 -0
- package/src/config.ts +12 -3
- package/src/core/references.ts +5 -3
- package/src/core/statements.ts +11 -1
- package/src/files/build-root.ts +74 -0
- package/src/files/clickhouse.ts +52 -0
- package/src/files/common.ts +54 -0
- package/src/files/postgres.ts +371 -0
- package/src/generated/lexicon-sql.json +30 -0
- package/src/import-parser.ts +61 -0
- package/src/index.ts +15 -2
- package/src/lint/rules/sqlch001.ts +26 -4
- package/src/lint/rules/sqlch002.ts +3 -2
- package/src/lint/rules/templates.ts +2 -2
- package/src/lsp/template.ts +3 -3
- package/src/mcp/index.ts +6 -6
- package/src/migration-statements.test.ts +25 -0
- package/src/migration-statements.ts +1 -0
- package/src/op/activities/clickhouse-rebuild.ts +1 -0
- package/src/op/activity-contracts.ts +1 -0
- package/src/plugin.ts +29 -8
- package/src/postgres/apply/constraint-sequences.e2e.test.ts +179 -0
- package/src/postgres/apply/safe-sequences.e2e.test.ts +176 -0
- package/src/postgres/apply/statements.test.ts +138 -6
- package/src/postgres/apply/statements.ts +156 -10
- package/src/postgres/import/generator.ts +118 -45
- package/src/postgres/live/bind.ts +17 -6
- package/src/postgres/live/client.ts +10 -2
- package/src/postgres/plan/plan.test.ts +2 -2
- package/src/postgres/plan/rules.ts +5 -5
- package/src/serializer.ts +14 -9
- package/src/skills/chant-sql-postgres-plan.md +3 -3
- package/src/skills/chant-sql-rebuild.md +3 -2
- package/src/skills/chant-sql.md +7 -1
- package/src/sql-files.test.ts +220 -0
- package/src/sql-files.ts +218 -0
- package/src/token-source.e2e.test.ts +142 -0
- package/src/token-source.test.ts +119 -0
- package/src/token-source.ts +189 -0
- package/src/validate.ts +6 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClickHouse access control as declarations (#3682): users, roles, row
|
|
3
|
+
* policies and grants.
|
|
4
|
+
*
|
|
5
|
+
* Each is a statement the server keeps outside any table: `CREATE USER`,
|
|
6
|
+
* `CREATE ROLE`, `CREATE ROW POLICY` and `GRANT`. This module parses them
|
|
7
|
+
* (the tags in `./entities.ts`, the lint rule, the plan), reduces each to
|
|
8
|
+
* the fields a plan compares, and writes the statements that make a change.
|
|
9
|
+
*
|
|
10
|
+
* What a declaration owns and what the environment owns:
|
|
11
|
+
*
|
|
12
|
+
* - A password is the environment's. `IDENTIFIED BY` is refused in a
|
|
13
|
+
* declaration (only `ssh_key BY KEY`, a public key, is taken), so no
|
|
14
|
+
* secret is ever in a build. A user declared with no `IDENTIFIED` clause
|
|
15
|
+
* is compared without it, and is not created by chant: create it with its
|
|
16
|
+
* password, and the next apply manages the rest of it. A user declared
|
|
17
|
+
* with a method that holds no secret (`ssl_certificate`, `ldap`,
|
|
18
|
+
* `kerberos`, `http`, `ssh_key`, `no_password`) is created and kept so.
|
|
19
|
+
* - Grants are compared per grantee, for each grantee the build declares a
|
|
20
|
+
* grant to: every grant declaration naming it adds up to its complete
|
|
21
|
+
* list, and a grant made by hand to it is revoked. A grant another one
|
|
22
|
+
* covers (`SELECT ON db.t` beside `SELECT ON db.*`) is folded away, as the
|
|
23
|
+
* server folds it.
|
|
24
|
+
* - None of these objects has a comment, so none carries chant's ownership
|
|
25
|
+
* marker. A plan reads only the ones the build declares; chant creates and
|
|
26
|
+
* changes them, and never drops one.
|
|
27
|
+
*/
|
|
28
|
+
import { type Token } from "./tokens.js";
|
|
29
|
+
import { type Span } from "../core/cursor.js";
|
|
30
|
+
export type AccessStatement = "user" | "role" | "rowPolicy" | "grant";
|
|
31
|
+
/** One parsed access statement. Clause spans are token spans, keywords left out. */
|
|
32
|
+
export interface AccessNode {
|
|
33
|
+
statement: AccessStatement;
|
|
34
|
+
orReplace: boolean;
|
|
35
|
+
ifNotExists: boolean;
|
|
36
|
+
/** A user's, role's or row policy's name; none for a grant. */
|
|
37
|
+
name?: Span;
|
|
38
|
+
onCluster?: Span;
|
|
39
|
+
/** A row policy's table, `[db.]table`. */
|
|
40
|
+
table?: Span;
|
|
41
|
+
/** Each clause after its keywords, by key: `identified`, `host`, `defaultRole`, `defaultDatabase`, `grantees`, `settings`, `validUntil`, `as`, `for`, `using`, `to`. */
|
|
42
|
+
clauses: Partial<Record<string, Span>>;
|
|
43
|
+
/** A grant's privileges or roles, one span each. */
|
|
44
|
+
items: Span[];
|
|
45
|
+
/** A grant's `ON` target; none for a grant of roles. */
|
|
46
|
+
target?: Span;
|
|
47
|
+
/** A grant's grantees. */
|
|
48
|
+
grantees: Span[];
|
|
49
|
+
/** `WITH GRANT OPTION` or `WITH ADMIN OPTION`. */
|
|
50
|
+
withOption?: "GRANT" | "ADMIN";
|
|
51
|
+
/** A `REVOKE` line, as `SHOW GRANTS` prints a partial revoke. Never declared. */
|
|
52
|
+
revoke?: boolean;
|
|
53
|
+
}
|
|
54
|
+
/** The authentication methods that hold no secret: a user declared with one is created by chant. */
|
|
55
|
+
export declare const SECRETLESS: Set<string>;
|
|
56
|
+
/** Parse one access statement. Throws `SqlSyntaxError` located in the statement. */
|
|
57
|
+
export declare function parseAccess(tokens: Token[]): AccessNode;
|
|
58
|
+
/** Whether a statement's text is an access statement this module reads. */
|
|
59
|
+
export declare function isAccessStatement(ddl: string): boolean;
|
|
60
|
+
/** What a plan compares of a user, role or row policy: one string per field, absent at its default. */
|
|
61
|
+
export interface AccessCanonical {
|
|
62
|
+
kind: "user" | "role" | "rowPolicy";
|
|
63
|
+
name: string;
|
|
64
|
+
/** A row policy's table's database. */
|
|
65
|
+
database?: string;
|
|
66
|
+
/** A row policy's table. */
|
|
67
|
+
table?: string;
|
|
68
|
+
fields: Record<string, string>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* A user, role or row policy as a plan compares it. A field at the server's
|
|
72
|
+
* default is left out, so a declaration that leaves out `HOST ANY` and the
|
|
73
|
+
* server that does not print it agree. A user's `IDENTIFIED` is kept only
|
|
74
|
+
* when written; a plan compares it only when the declaration has one.
|
|
75
|
+
*/
|
|
76
|
+
export declare function accessCanonical(ddl: string, defaultDatabase?: string): AccessCanonical;
|
|
77
|
+
/** One grant, the smallest thing a plan adds or takes away. */
|
|
78
|
+
export interface GrantAtom {
|
|
79
|
+
/** A privilege, upper case (`SELECT`, `SHOW TABLES`), or the role granted. */
|
|
80
|
+
privilege?: string;
|
|
81
|
+
role?: string;
|
|
82
|
+
/** One column of a column-level privilege. */
|
|
83
|
+
column?: string;
|
|
84
|
+
/** `db.table`, `db.*`, `*.*` or `*`, unquoted. */
|
|
85
|
+
target?: string;
|
|
86
|
+
/** `WITH GRANT OPTION` (a privilege) or `WITH ADMIN OPTION` (a role). */
|
|
87
|
+
option?: boolean;
|
|
88
|
+
/** A partial revoke the server holds (`REVOKE SELECT(b) ON db.t`). Never declared. */
|
|
89
|
+
revoke?: boolean;
|
|
90
|
+
}
|
|
91
|
+
/** An atom's key, which is also how a plan prints it: `SELECT(a) ON shop.t`, `ROLE reader WITH ADMIN OPTION`. */
|
|
92
|
+
export declare function atomKey(a: GrantAtom): string;
|
|
93
|
+
/**
|
|
94
|
+
* The atoms a grantee holds, with each atom another covers left out, as the
|
|
95
|
+
* server folds them: a column's privilege under the table's, a table's under
|
|
96
|
+
* its database's, any under `*.*`, the same privilege, with a grant option at
|
|
97
|
+
* least as wide.
|
|
98
|
+
*/
|
|
99
|
+
export declare function foldAtoms(atoms: readonly GrantAtom[]): GrantAtom[];
|
|
100
|
+
/** A grantee's grants as a plan compares them: each atom's key, mapped to the atom. */
|
|
101
|
+
export declare function grantsCanonical(ddl: string, grantee: string, defaultDatabase?: string): Record<string, string>;
|
|
102
|
+
/** Every grantee a grant statement names. */
|
|
103
|
+
export declare function granteesOf(ddl: string): string[];
|
|
104
|
+
/** The statement that gives `grantee` one atom. */
|
|
105
|
+
export declare function grantStatement(atom: GrantAtom, grantee: string): string;
|
|
106
|
+
/** The statement that takes one atom from `grantee`. */
|
|
107
|
+
export declare function revokeStatement(atom: GrantAtom, grantee: string): string;
|
|
108
|
+
/**
|
|
109
|
+
* The `ALTER` that sets one field of a user or role to its declared value,
|
|
110
|
+
* or back to the server's default when the declaration leaves it out.
|
|
111
|
+
*/
|
|
112
|
+
export declare function alterAccessField(kind: "user" | "role", name: string, field: string, declared: AccessCanonical["fields"], declaredText: Partial<Record<string, string>>): string;
|
|
113
|
+
/** A user's or role's clauses as written, by field, for the `ALTER` that sets one. */
|
|
114
|
+
export declare function accessClauseText(ddl: string): Partial<Record<string, string>>;
|
|
115
|
+
/**
|
|
116
|
+
* The grant declarations of a build, one entry per grantee they name: the
|
|
117
|
+
* export names that grant to it, their statements on their own lines, and
|
|
118
|
+
* what they depend on. A plan compares each entry with what the server
|
|
119
|
+
* holds for that grantee.
|
|
120
|
+
*/
|
|
121
|
+
export declare function grantsByGrantee(objects: ReadonlyArray<{
|
|
122
|
+
export: string;
|
|
123
|
+
type: string;
|
|
124
|
+
ddl: string;
|
|
125
|
+
dependsOn?: readonly string[];
|
|
126
|
+
}>): Array<{
|
|
127
|
+
grantee: string;
|
|
128
|
+
exports: string[];
|
|
129
|
+
ddl: string;
|
|
130
|
+
dependsOn: string[];
|
|
131
|
+
}>;
|
|
132
|
+
//# sourceMappingURL=access.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/clickhouse/access.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/apply/apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,aAAa,EAIb,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,
|
|
1
|
+
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/apply/apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,aAAa,EAIb,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAoE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE3H,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAIxD,OAAO,EAA6B,KAAK,cAAc,EAAiC,MAAM,cAAc,CAAC;AAE7G,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,SAAY,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,cAAc,EAAE,CAoBhH;AAED,0FAA0F;AAC1F,eAAO,MAAM,QAAQ,GAAI,UAAU,SAAS,cAAc,EAAE,KAAG,QAAQ,EAA0D,CAAC;AAElI,MAAM,WAAW,sBAAsB;IACrC,8FAA8F;IAC9F,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,6FAA6F;IAC7F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,wDAAwD;IACxD,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAErD,sGAAsG;AACtG,qBAAa,oBAAqB,SAAQ,aAAa,CAAC,sBAAsB,CAAC;gBACjE,OAAO,EAAE,sBAAsB;CAI5C;AAgBD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAMzJ;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,cAAc,EAAE,EAAE,IAAI,GAAE,sBAA2B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAkFvK"}
|
|
@@ -180,4 +180,6 @@ export interface StatementPlan {
|
|
|
180
180
|
* both see it.
|
|
181
181
|
*/
|
|
182
182
|
export declare function planStatements(input: StatementPlanInput): StatementPlan;
|
|
183
|
+
/** The entity types of access control (`../access.ts`): no comment, no marker, never dropped. */
|
|
184
|
+
export declare const ACCESS_TYPES: ReadonlySet<string>;
|
|
183
185
|
//# sourceMappingURL=statements.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/apply/statements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE1F,OAAO,EAA2B,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/apply/statements.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The ClickHouse entities: `database`, `table
|
|
3
|
-
* parse their DDL at fold time into one
|
|
2
|
+
* The ClickHouse entities: `database`, `table`, `view`, `dictionary` and
|
|
3
|
+
* `func` (#3682) tagged templates that parse their DDL at fold time into one
|
|
4
|
+
* Declarable each (chant #3196, #3197).
|
|
4
5
|
*
|
|
5
6
|
* ```ts
|
|
6
7
|
* import { table, view } from "@intentius/chant-lexicon-sql/clickhouse";
|
|
@@ -48,6 +49,12 @@ export declare const CLICKHOUSE_ENTITY_TYPES: {
|
|
|
48
49
|
readonly table: "ClickHouse::Table";
|
|
49
50
|
readonly view: "ClickHouse::View";
|
|
50
51
|
readonly materializedView: "ClickHouse::MaterializedView";
|
|
52
|
+
readonly dictionary: "ClickHouse::Dictionary";
|
|
53
|
+
readonly function: "ClickHouse::Function";
|
|
54
|
+
readonly user: "ClickHouse::User";
|
|
55
|
+
readonly role: "ClickHouse::Role";
|
|
56
|
+
readonly rowPolicy: "ClickHouse::RowPolicy";
|
|
57
|
+
readonly grant: "ClickHouse::Grant";
|
|
51
58
|
};
|
|
52
59
|
export type ClickHouseEntityType = (typeof CLICKHOUSE_ENTITY_TYPES)[keyof typeof CLICKHOUSE_ENTITY_TYPES];
|
|
53
60
|
/** A column of a table or view, as declared. Expressions are the source text with interpolations rendered. */
|
|
@@ -136,6 +143,34 @@ export interface ViewProps extends CommonProps, StorageProps {
|
|
|
136
143
|
orReplace?: boolean;
|
|
137
144
|
ifNotExists?: boolean;
|
|
138
145
|
}
|
|
146
|
+
/** One attribute of a dictionary, as declared. */
|
|
147
|
+
export interface DictionaryAttributeDef {
|
|
148
|
+
name: string;
|
|
149
|
+
type: string;
|
|
150
|
+
/** The value for a key the source does not have: `DEFAULT expr`. */
|
|
151
|
+
default?: string;
|
|
152
|
+
/** `EXPRESSION expr`: what the source computes the attribute from. */
|
|
153
|
+
expression?: string;
|
|
154
|
+
/** `HIERARCHICAL`, `BIDIRECTIONAL`, `INJECTIVE`, `IS_OBJECT_ID`, as written. */
|
|
155
|
+
flags?: string[];
|
|
156
|
+
}
|
|
157
|
+
export interface DictionaryProps extends CommonProps {
|
|
158
|
+
/** The attributes, key columns included. */
|
|
159
|
+
columns: DictionaryAttributeDef[];
|
|
160
|
+
/** The key columns: `PRIMARY KEY id`. */
|
|
161
|
+
primaryKey: string;
|
|
162
|
+
/** What is inside `SOURCE(...)`: `CLICKHOUSE(TABLE 'rates' DB 'shop')`. */
|
|
163
|
+
dataSource: string;
|
|
164
|
+
/** What is inside `LAYOUT(...)`: `HASHED()`. */
|
|
165
|
+
layout: string;
|
|
166
|
+
/** What is inside `LIFETIME(...)`: `300`, `MIN 0 MAX 300`. */
|
|
167
|
+
lifetime?: string;
|
|
168
|
+
/** What is inside `RANGE(...)`, for a range layout. */
|
|
169
|
+
range?: string;
|
|
170
|
+
settings?: Record<string, string>;
|
|
171
|
+
orReplace?: boolean;
|
|
172
|
+
ifNotExists?: boolean;
|
|
173
|
+
}
|
|
139
174
|
/**
|
|
140
175
|
* A string as a quoted, escaped ClickHouse string literal. An interpolated
|
|
141
176
|
* plain string is SQL text; wrap it in `literal()` when it is a value.
|
|
@@ -164,6 +199,111 @@ export interface ClickHouseView extends ClickHouseRelation {
|
|
|
164
199
|
readonly entityType: "ClickHouse::View" | "ClickHouse::MaterializedView";
|
|
165
200
|
readonly props: ViewProps;
|
|
166
201
|
}
|
|
202
|
+
/** A SQL user-defined function, `CREATE FUNCTION name AS (x) -> expr`. It belongs to no database. */
|
|
203
|
+
export interface FunctionProps {
|
|
204
|
+
name: string;
|
|
205
|
+
onCluster?: string;
|
|
206
|
+
/** The parameter names, in order. */
|
|
207
|
+
params: string[];
|
|
208
|
+
/** The expression after `->`, as written. */
|
|
209
|
+
body: string;
|
|
210
|
+
orReplace?: boolean;
|
|
211
|
+
ifNotExists?: boolean;
|
|
212
|
+
ddl: string;
|
|
213
|
+
source: {
|
|
214
|
+
strings: string[];
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
export interface ClickHouseFunction extends ClickHouseObject {
|
|
218
|
+
readonly entityType: "ClickHouse::Function";
|
|
219
|
+
readonly props: FunctionProps;
|
|
220
|
+
}
|
|
221
|
+
/** A user (#3682). Its password is the environment's and is never declared (`./access.ts`). */
|
|
222
|
+
export interface UserProps {
|
|
223
|
+
name: string;
|
|
224
|
+
onCluster?: string;
|
|
225
|
+
/** `IDENTIFIED ...` after the keyword, for a method that holds no secret; `NOT IDENTIFIED` as itself. */
|
|
226
|
+
identified?: string;
|
|
227
|
+
host?: string;
|
|
228
|
+
validUntil?: string;
|
|
229
|
+
defaultRole?: string;
|
|
230
|
+
defaultDatabase?: string;
|
|
231
|
+
grantees?: string;
|
|
232
|
+
settings?: string;
|
|
233
|
+
orReplace?: boolean;
|
|
234
|
+
ifNotExists?: boolean;
|
|
235
|
+
ddl: string;
|
|
236
|
+
source: {
|
|
237
|
+
strings: string[];
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
export interface RoleProps {
|
|
241
|
+
name: string;
|
|
242
|
+
onCluster?: string;
|
|
243
|
+
settings?: string;
|
|
244
|
+
orReplace?: boolean;
|
|
245
|
+
ifNotExists?: boolean;
|
|
246
|
+
ddl: string;
|
|
247
|
+
source: {
|
|
248
|
+
strings: string[];
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
export interface RowPolicyProps {
|
|
252
|
+
name: string;
|
|
253
|
+
onCluster?: string;
|
|
254
|
+
/** The table's database, when the DDL qualifies it. */
|
|
255
|
+
database?: string;
|
|
256
|
+
table: string;
|
|
257
|
+
/** `PERMISSIVE` or `RESTRICTIVE`. */
|
|
258
|
+
as?: string;
|
|
259
|
+
for?: string;
|
|
260
|
+
using: string;
|
|
261
|
+
to?: string;
|
|
262
|
+
orReplace?: boolean;
|
|
263
|
+
ifNotExists?: boolean;
|
|
264
|
+
ddl: string;
|
|
265
|
+
source: {
|
|
266
|
+
strings: string[];
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
export interface GrantProps {
|
|
270
|
+
/** The grant's name in chant: its grantees, for a report. */
|
|
271
|
+
name: string;
|
|
272
|
+
onCluster?: string;
|
|
273
|
+
/** The privileges granted (`SELECT(a)`, `SHOW TABLES`), or the roles. */
|
|
274
|
+
privileges?: string[];
|
|
275
|
+
roles?: string[];
|
|
276
|
+
/** `db.table`, `db.*`, `*.*`. */
|
|
277
|
+
on?: string;
|
|
278
|
+
to: string[];
|
|
279
|
+
withGrantOption?: boolean;
|
|
280
|
+
withAdminOption?: boolean;
|
|
281
|
+
ddl: string;
|
|
282
|
+
source: {
|
|
283
|
+
strings: string[];
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
export interface ClickHouseUser extends ClickHouseObject {
|
|
287
|
+
readonly entityType: "ClickHouse::User";
|
|
288
|
+
readonly props: UserProps;
|
|
289
|
+
}
|
|
290
|
+
export interface ClickHouseRole extends ClickHouseObject {
|
|
291
|
+
readonly entityType: "ClickHouse::Role";
|
|
292
|
+
readonly props: RoleProps;
|
|
293
|
+
}
|
|
294
|
+
export interface ClickHouseRowPolicy extends ClickHouseObject {
|
|
295
|
+
readonly entityType: "ClickHouse::RowPolicy";
|
|
296
|
+
readonly props: RowPolicyProps;
|
|
297
|
+
}
|
|
298
|
+
export interface ClickHouseGrant extends ClickHouseObject {
|
|
299
|
+
readonly entityType: "ClickHouse::Grant";
|
|
300
|
+
readonly props: GrantProps;
|
|
301
|
+
}
|
|
302
|
+
/** A dictionary: its attributes are columns `dictGet` reads, so SQL can reference them. */
|
|
303
|
+
export interface ClickHouseDictionary extends ClickHouseRelation {
|
|
304
|
+
readonly entityType: "ClickHouse::Dictionary";
|
|
305
|
+
readonly props: DictionaryProps;
|
|
306
|
+
}
|
|
167
307
|
export declare function isClickHouseObject(value: unknown): value is ClickHouseObject;
|
|
168
308
|
/** A column reference: an AttrRef whose parent is a ClickHouse table or view. */
|
|
169
309
|
export declare function isColumnRef(value: unknown): value is AttrRef;
|
|
@@ -180,4 +320,33 @@ export declare function table(strings: TemplateStringsArray, ...values: unknown[
|
|
|
180
320
|
* with the tables it reads and its column lineage.
|
|
181
321
|
*/
|
|
182
322
|
export declare function view(strings: TemplateStringsArray, ...values: unknown[]): ClickHouseView;
|
|
323
|
+
/**
|
|
324
|
+
* `` dictionary`CREATE DICTIONARY ...` ``: one dictionary, its attributes,
|
|
325
|
+
* key, source, layout and lifetime, parsed at build time (#3682). Its
|
|
326
|
+
* attributes are columns: `${rates.columns.rate}`.
|
|
327
|
+
*/
|
|
328
|
+
export declare function dictionary(strings: TemplateStringsArray, ...values: unknown[]): ClickHouseDictionary;
|
|
329
|
+
/**
|
|
330
|
+
* `` func`CREATE FUNCTION ...` ``: one SQL user-defined function, a lambda
|
|
331
|
+
* with a name (#3682). It belongs to no database, and has no comment, so it
|
|
332
|
+
* carries no ownership marker: chant replaces it when its declaration
|
|
333
|
+
* changes and never drops it.
|
|
334
|
+
*/
|
|
335
|
+
export declare function func(strings: TemplateStringsArray, ...values: unknown[]): ClickHouseFunction;
|
|
336
|
+
/**
|
|
337
|
+
* `` user`CREATE USER ...` ``: one user (#3682). A password is the
|
|
338
|
+
* environment's: `IDENTIFIED BY` is refused, and a user declared without
|
|
339
|
+
* `IDENTIFIED` is compared without it and is not created by chant.
|
|
340
|
+
*/
|
|
341
|
+
export declare function user(strings: TemplateStringsArray, ...values: unknown[]): ClickHouseUser;
|
|
342
|
+
/** `` role`CREATE ROLE ...` ``: one role (#3682). Interpolate it where a grant or a user names it. */
|
|
343
|
+
export declare function role(strings: TemplateStringsArray, ...values: unknown[]): ClickHouseRole;
|
|
344
|
+
/** `` policy`CREATE ROW POLICY ...` ``: one row policy on one table (#3682). */
|
|
345
|
+
export declare function policy(strings: TemplateStringsArray, ...values: unknown[]): ClickHouseRowPolicy;
|
|
346
|
+
/**
|
|
347
|
+
* `` grant`GRANT ...` ``: privileges or roles granted to users or roles
|
|
348
|
+
* (#3682). Every grant declaration naming a grantee adds up to its complete
|
|
349
|
+
* list: a plan revokes what it holds besides.
|
|
350
|
+
*/
|
|
351
|
+
export declare function grant(strings: TemplateStringsArray, ...values: unknown[]): ClickHouseGrant;
|
|
183
352
|
//# sourceMappingURL=entities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/clickhouse/entities.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/clickhouse/entities.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,15 @@
|
|
|
6
6
|
* request body and `default_format=JSONEachRow` returns one JSON object per
|
|
7
7
|
* line, which is all generation (and, later, observation and import) reads.
|
|
8
8
|
*/
|
|
9
|
+
import type { CredentialSource } from "../token-source.js";
|
|
9
10
|
/** Where a server answers, and as whom. */
|
|
10
11
|
export interface ClickHouseEndpoint {
|
|
11
12
|
/** Base URL of the HTTP interface, e.g. `http://127.0.0.1:8123`. */
|
|
12
13
|
url: string;
|
|
13
14
|
user?: string;
|
|
14
15
|
password?: string;
|
|
16
|
+
/** Mints the password for each request, in place of `password` (a profile's token source, #3685). */
|
|
17
|
+
token?: CredentialSource;
|
|
15
18
|
}
|
|
16
19
|
/** A query the server refused, with the server's own message. */
|
|
17
20
|
export declare class ClickHouseQueryError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/clickhouse/http.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/clickhouse/http.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qGAAqG;IACrG,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,iEAAiE;AACjE,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAFX,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM;CAKvB;AAED,yBAAyB;AACzB,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,yFAAyF;IACzF,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,2FAA2F;AAC3F,wBAAsB,eAAe,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,QAAQ,EAAE,kBAAkB,EAC5B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,GAAG,EAAE,CAAC,CAsBhB;AAED,4CAA4C;AAC5C,wBAAsB,cAAc,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnF"}
|
|
@@ -7,10 +7,38 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { GeneratedFile, TypeScriptGenerator } from "@intentius/chant/import/generator";
|
|
9
9
|
import type { TemplateIR } from "@intentius/chant/import/parser";
|
|
10
|
+
/** One object a template is written for, or one a template may reference. */
|
|
11
|
+
export interface ChTemplateItem {
|
|
12
|
+
exportName: string;
|
|
13
|
+
type: string;
|
|
14
|
+
database?: string;
|
|
15
|
+
name: string;
|
|
16
|
+
ddl: string;
|
|
17
|
+
}
|
|
18
|
+
type Item = ChTemplateItem;
|
|
19
|
+
/** A template's text: `parts` (template-literal safe) around one interpolation per entry of `refs`, an export name. */
|
|
20
|
+
export interface TemplateBody {
|
|
21
|
+
parts: string[];
|
|
22
|
+
refs: string[];
|
|
23
|
+
}
|
|
24
|
+
export declare const CLICKHOUSE_TAG_OF: Readonly<Record<string, "database" | "table" | "view" | "dictionary" | "func">>;
|
|
25
|
+
/** A template body as the text between the backquotes. */
|
|
26
|
+
export declare const bodyText: (body: TemplateBody) => string;
|
|
27
|
+
/**
|
|
28
|
+
* The template of each object in `items`, with the references to `targets`
|
|
29
|
+
* (the items themselves, and any object declared elsewhere that they may
|
|
30
|
+
* name) interpolated, and the items in the order a file declares them: each
|
|
31
|
+
* after what it references.
|
|
32
|
+
*/
|
|
33
|
+
export declare function clickhouseTemplates(items: readonly Item[], targets?: readonly Item[]): {
|
|
34
|
+
order: Item[];
|
|
35
|
+
bodies: Map<string, TemplateBody>;
|
|
36
|
+
};
|
|
10
37
|
export declare class ClickHouseGenerator implements TypeScriptGenerator {
|
|
11
38
|
private readonly header?;
|
|
12
39
|
readonly ownsLayout = true;
|
|
13
40
|
constructor(header?: string | undefined);
|
|
14
41
|
generate(ir: TemplateIR): GeneratedFile[];
|
|
15
42
|
}
|
|
43
|
+
export {};
|
|
16
44
|
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/import/generator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/import/generator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAKjE,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AACD,KAAK,IAAI,GAAG,cAAc,CAAC;AAE3B,uHAAuH;AACvH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC,CAO7G,CAAC;AA+EF,0DAA0D;AAC1D,eAAO,MAAM,QAAQ,GAAI,MAAM,YAAY,KAAG,MAA0F,CAAC;AAEzI;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,GAAE,SAAS,IAAI,EAAU,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CAAE,CA2BlJ;AAOD,qBAAa,mBAAoB,YAAW,mBAAmB;IAGjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAFpC,QAAQ,CAAC,UAAU,QAAQ;gBAEE,MAAM,CAAC,EAAE,MAAM,YAAA;IAE5C,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,aAAa,EAAE;CAuB1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/import/ir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG7E,OAAO,EAA2B,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGjF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAeD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,EAAE,CAkBxE;AAED,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CActD;
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/import/ir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG7E,OAAO,EAA2B,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGjF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAeD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,EAAE,CAkBxE;AAED,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CActD;AAuBD,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAI7D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAoCvD;AAED,mCAAmC;AACnC,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,UAAU,CAQnG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `chant import schema.sql
|
|
3
|
-
* import IR.
|
|
4
|
-
*
|
|
2
|
+
* `chant import schema.sql` for ClickHouse: a file of CREATE statements into
|
|
3
|
+
* the import IR. A statement that is not a CREATE, or does not parse, is an
|
|
4
|
+
* error naming it (`../../files/clickhouse.ts`); none is left out.
|
|
5
5
|
*/
|
|
6
6
|
import type { TemplateIR, TemplateParser } from "@intentius/chant/import/parser";
|
|
7
7
|
export declare class ClickHouseSqlParser implements TemplateParser {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/import/parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/import/parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKjF,qBAAa,mBAAoB,YAAW,cAAc;IACxD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;CAMnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/live/bind.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAyC,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAA6B,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/live/bind.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAyC,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAA6B,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,kBAAkB,GAAI,GAAG,gBAAgB,GAAG,gBAAgB,KAAG,CAAC,IAAI,gBAAiC,CAAC;AAEnH;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C,GAAG,gBAAgB,GAAG,gBAAgB,CA6CtC;AAED,2CAA2C;AAC3C,qBAAa,sBAAuB,SAAQ,KAAK;IACnC,QAAQ,CAAC,UAAU,EAAE,gBAAgB;gBAA5B,UAAU,EAAE,gBAAgB;CAIlD;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C;AAYD,kGAAkG;AAClG,wBAAsB,cAAc,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAKzF;AAED,uEAAuE;AACvE,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAWpG;AAED,wCAAwC;AACxC,wBAAsB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7E"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Reading a live server's schema: the databases and the tables, views
|
|
3
|
-
* materialized views in them, from `system.databases`,
|
|
4
|
-
* `SHOW CREATE
|
|
2
|
+
* Reading a live server's schema: the databases and the tables, views,
|
|
3
|
+
* materialized views and dictionaries in them, from `system.databases`,
|
|
4
|
+
* `system.tables` and `SHOW CREATE`, and the SQL user-defined functions,
|
|
5
|
+
* from `system.functions`.
|
|
5
6
|
*/
|
|
6
7
|
import type { ClickHouseTarget } from "./bind.js";
|
|
7
8
|
import { type ClickHouseEntityType } from "../entities.js";
|
|
@@ -11,21 +12,25 @@ export interface LiveObject {
|
|
|
11
12
|
type: ClickHouseEntityType;
|
|
12
13
|
database?: string;
|
|
13
14
|
name: string;
|
|
14
|
-
/** The engine `system.tables` / `system.databases` report: `MergeTree`, `View`, `MaterializedView`, `Atomic`. */
|
|
15
|
+
/** The engine `system.tables` / `system.databases` report: `MergeTree`, `View`, `MaterializedView`, `Atomic`, `Dictionary`. */
|
|
15
16
|
engine: string;
|
|
16
17
|
uuid?: string;
|
|
17
18
|
/** The object's comment as the server holds it, chant's ownership trailer included (`../ownership.ts`). */
|
|
18
19
|
comment?: string;
|
|
19
20
|
/** `SHOW CREATE` as the server prints it, less chant's ownership trailer, so it reads as the declaration. */
|
|
20
21
|
statement: string;
|
|
22
|
+
/** A row policy's table. */
|
|
23
|
+
table?: string;
|
|
21
24
|
}
|
|
22
25
|
/** The entity type a `system.tables` engine stands for. */
|
|
23
26
|
export declare function entityTypeOfEngine(engine: string): ClickHouseEntityType;
|
|
24
27
|
/**
|
|
25
28
|
* Every object in the target's databases, sorted by database then name.
|
|
26
29
|
* A materialized view's inner table (`.inner_id.<uuid>`, `.inner.<name>`)
|
|
27
|
-
* belongs to its view and is left out, as are temporary tables
|
|
28
|
-
*
|
|
30
|
+
* belongs to its view and is left out, as are temporary tables. A
|
|
31
|
+
* dictionary is read (#3682) from `system.tables`, where a reader granted
|
|
32
|
+
* `SELECT` on the database sees it without a grant on `system.dictionaries`;
|
|
33
|
+
* a table with the `Dictionary` engine is a table.
|
|
29
34
|
*
|
|
30
35
|
* So are chant's own working objects (`../ownership.ts`
|
|
31
36
|
* `isChantWorkingObject`): a rebuild migration's new, dual-write and retained
|
|
@@ -36,4 +41,34 @@ export declare function entityTypeOfEngine(engine: string): ClickHouseEntityType
|
|
|
36
41
|
export declare function readLiveSchema(target: ClickHouseTarget, opts?: {
|
|
37
42
|
withStatements?: boolean;
|
|
38
43
|
}): Promise<LiveObject[]>;
|
|
44
|
+
/** The access objects a build declares, by kind and name: what `readLiveAccess` reads. */
|
|
45
|
+
export interface DeclaredAccess {
|
|
46
|
+
kind: string;
|
|
47
|
+
name: string;
|
|
48
|
+
database?: string;
|
|
49
|
+
table?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The users, roles, row policies and grantees' grants the build declares,
|
|
53
|
+
* as the server holds them (#3682): `SHOW CREATE USER`, `SHOW CREATE ROLE`,
|
|
54
|
+
* `SHOW CREATE ROW POLICY`, and for a grantee every line of
|
|
55
|
+
* `SHOW GRANTS FOR`, one per line. Nothing else is read, so a project that
|
|
56
|
+
* declares none needs no access to `system.users` and the like, and an
|
|
57
|
+
* object made by hand is never seen. One that does not exist is left out.
|
|
58
|
+
*/
|
|
59
|
+
export declare function readLiveAccess(target: ClickHouseTarget, declared: readonly DeclaredAccess[], opts?: {
|
|
60
|
+
withStatements?: boolean;
|
|
61
|
+
}): Promise<LiveObject[]>;
|
|
62
|
+
/** The access objects among declared canonical objects, for `readLiveAccess`. */
|
|
63
|
+
export declare function declaredAccess(objects: ReadonlyArray<{
|
|
64
|
+
kind: string;
|
|
65
|
+
name: string;
|
|
66
|
+
database?: string;
|
|
67
|
+
table?: string;
|
|
68
|
+
}>): DeclaredAccess[];
|
|
69
|
+
/** The users, roles and row policies among declared entities, for `readLiveAccess`. */
|
|
70
|
+
export declare function accessOf(entities: ReadonlyMap<string, {
|
|
71
|
+
entityType: string;
|
|
72
|
+
props: Record<string, unknown>;
|
|
73
|
+
}>, defaultDatabase: string): DeclaredAccess[];
|
|
39
74
|
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/live/catalog.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/live/catalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAA2B,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGjF,mEAAmE;AACnE,eAAO,MAAM,gBAAgB,aAAkE,CAAC;AAEhG,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,+HAA+H;IAC/H,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2GAA2G;IAC3G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6GAA6G;IAC7G,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAIvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAqD7H;AAGD,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,cAAc,EAAE,EAAE,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA0ClK;AAID,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,cAAc,EAAE,CAI1I;AAED,uFAAuF;AACvF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,EAAE,eAAe,EAAE,MAAM,GAAG,cAAc,EAAE,CAWzJ"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* `describeResources()` for the ClickHouse dialect: which declared databases,
|
|
3
3
|
* tables and views exist on the environment's server.
|
|
4
4
|
*
|
|
5
|
-
* One read of `system.databases` and `system.
|
|
6
|
-
* per declared entity, so N entities are
|
|
5
|
+
* One read of `system.databases`, `system.tables` and `system.functions` per
|
|
6
|
+
* run, then a lookup per declared entity, so N entities are three queries,
|
|
7
|
+
* not N. An object the
|
|
7
8
|
* catalog does not list is absent, and the `queried` address says which
|
|
8
9
|
* server and name were asked. A server that cannot be reached, or refuses the
|
|
9
10
|
* credentials, leaves every entity unobserved with that reason: never absent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe-resources.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/live/describe-resources.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"describe-resources.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/live/describe-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAG7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAA6C,KAAK,WAAW,EAAyB,MAAM,QAAQ,CAAC;AAY5G,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAWpH;AA+CD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE;IACP,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC9E,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,GACnC,OAAO,CAAC,uBAAuB,CAAC,CAMlC"}
|