@mastra/clickhouse 1.9.1 → 1.10.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/README.md +27 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/reference-storage-clickhouse.md +52 -7
- package/dist/docs/references/reference-storage-composite.md +34 -2
- package/dist/index.cjs +243 -38
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +244 -39
- package/dist/index.js.map +1 -1
- package/dist/storage/db/index.d.ts +7 -1
- package/dist/storage/db/index.d.ts.map +1 -1
- package/dist/storage/db/replication.d.ts +52 -0
- package/dist/storage/db/replication.d.ts.map +1 -0
- package/dist/storage/db/utils.d.ts +2 -0
- package/dist/storage/db/utils.d.ts.map +1 -1
- package/dist/storage/domains/observability/v-next/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +8 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/package.json +8 -7
|
@@ -15,6 +15,7 @@ export type ClickhouseDomainConfig = ClickhouseDomainClientConfig | ClickhouseDo
|
|
|
15
15
|
export interface ClickhouseDomainClientConfig {
|
|
16
16
|
client: ClickHouseClient;
|
|
17
17
|
ttl?: ClickhouseConfig['ttl'];
|
|
18
|
+
replication?: ClickhouseConfig['replication'];
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
21
|
* Pass config to create a new ClickHouse client internally
|
|
@@ -24,6 +25,7 @@ export interface ClickhouseDomainRestConfig {
|
|
|
24
25
|
username: string;
|
|
25
26
|
password: string;
|
|
26
27
|
ttl?: ClickhouseConfig['ttl'];
|
|
28
|
+
replication?: ClickhouseConfig['replication'];
|
|
27
29
|
}
|
|
28
30
|
/**
|
|
29
31
|
* Resolves ClickhouseDomainConfig to a ClickHouse client and ttl config.
|
|
@@ -32,15 +34,18 @@ export interface ClickhouseDomainRestConfig {
|
|
|
32
34
|
export declare function resolveClickhouseConfig(config: ClickhouseDomainConfig): {
|
|
33
35
|
client: ClickHouseClient;
|
|
34
36
|
ttl?: ClickhouseConfig['ttl'];
|
|
37
|
+
replication?: ClickhouseConfig['replication'];
|
|
35
38
|
};
|
|
36
39
|
export declare class ClickhouseDB extends MastraBase {
|
|
37
40
|
protected ttl: ClickhouseConfig['ttl'];
|
|
41
|
+
protected replication: ClickhouseConfig['replication'];
|
|
38
42
|
protected client: ClickHouseClient;
|
|
39
43
|
/** Cache of actual table columns: tableName -> Promise<Set<columnName>> (stores in-flight promise to coalesce concurrent calls) */
|
|
40
44
|
private tableColumnsCache;
|
|
41
|
-
constructor({ client, ttl }: {
|
|
45
|
+
constructor({ client, ttl, replication, }: {
|
|
42
46
|
client: ClickHouseClient;
|
|
43
47
|
ttl: ClickhouseConfig['ttl'];
|
|
48
|
+
replication?: ClickhouseConfig['replication'];
|
|
44
49
|
});
|
|
45
50
|
/**
|
|
46
51
|
* Gets the set of column names that actually exist in the database table.
|
|
@@ -57,6 +62,7 @@ export declare class ClickhouseDB extends MastraBase {
|
|
|
57
62
|
* Checks if a table exists in the database.
|
|
58
63
|
*/
|
|
59
64
|
tableExists(tableName: string): Promise<boolean>;
|
|
65
|
+
private assertExistingTableCompatibleWithReplication;
|
|
60
66
|
/**
|
|
61
67
|
* Gets the sorting key (ORDER BY columns) for a table.
|
|
62
68
|
* Returns null if the table doesn't exist.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAU/C,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/db/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { MastraError } from '@mastra/core/error';
|
|
2
|
+
export interface ClickhouseReplicationConfig {
|
|
3
|
+
/** Optional cluster name. When set, Mastra-owned DDL is emitted with ON CLUSTER. */
|
|
4
|
+
cluster?: string;
|
|
5
|
+
/** Keeper path for replicated tables. Supports ClickHouse macros like {shard}, {database}, and {table}. */
|
|
6
|
+
zookeeperPath?: string;
|
|
7
|
+
/** Replica name. Supports ClickHouse macros like {replica}. */
|
|
8
|
+
replicaName?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function isReplicationConfigured(replication?: ClickhouseReplicationConfig): replication is ClickhouseReplicationConfig;
|
|
11
|
+
export declare function isReplicatedOrSharedEngine(engine?: string | null): boolean;
|
|
12
|
+
export declare function validateReplicationConfig(replication?: ClickhouseReplicationConfig): void;
|
|
13
|
+
export declare function buildReplicatedTableEngine(engine: string, replication?: ClickhouseReplicationConfig): string;
|
|
14
|
+
/**
|
|
15
|
+
* Injects `ON CLUSTER '<cluster>'` into Mastra-owned DDL when a cluster is configured.
|
|
16
|
+
*
|
|
17
|
+
* Covered forms:
|
|
18
|
+
* - `CREATE TABLE [IF NOT EXISTS] <name>`
|
|
19
|
+
* - `CREATE MATERIALIZED VIEW [IF NOT EXISTS] <name>`
|
|
20
|
+
* - `ALTER TABLE <name>` (covers ADD COLUMN, ADD INDEX, MODIFY TTL,
|
|
21
|
+
* MATERIALIZE TTL, UPDATE, DELETE, etc.)
|
|
22
|
+
* - `DROP TABLE|VIEW [IF EXISTS] <name>`
|
|
23
|
+
* - `TRUNCATE TABLE [IF EXISTS] <name>`
|
|
24
|
+
* - `OPTIMIZE TABLE <name>`
|
|
25
|
+
* - `SYSTEM REFRESH VIEW <name>` and `SYSTEM WAIT VIEW <name>`
|
|
26
|
+
*
|
|
27
|
+
* Several of these (TRUNCATE, ALTER UPDATE/DELETE, OPTIMIZE) replicate
|
|
28
|
+
* automatically on ReplicatedMergeTree via the Keeper queue, so ON CLUSTER is
|
|
29
|
+
* not strictly required for correctness. We add it anyway for two reasons:
|
|
30
|
+
* 1. Consistency — when an operator sets `cluster`, maintenance commands
|
|
31
|
+
* should fan out the same way DDL does.
|
|
32
|
+
* 2. Robustness — drift becomes impossible if a table is later swapped to a
|
|
33
|
+
* non-replicated engine, or someone runs the command against a node that
|
|
34
|
+
* is not yet a replica.
|
|
35
|
+
*
|
|
36
|
+
* Not covered (intentional — not emitted by Mastra under replication):
|
|
37
|
+
* - `RENAME TABLE`, `EXCHANGE TABLES`, `ATTACH`, `DETACH` — the v-next signal
|
|
38
|
+
* migration that uses EXCHANGE fails fast when replication is configured.
|
|
39
|
+
* - `SYSTEM STOP/START MERGES` — these are intentionally per-node. Pausing
|
|
40
|
+
* merges fleet-wide because `clearTable` wants to TRUNCATE one table is
|
|
41
|
+
* operational overreach; the per-node pause is enough since TRUNCATE
|
|
42
|
+
* itself replicates via Keeper. See `ClickhouseDB.clearTable`.
|
|
43
|
+
*
|
|
44
|
+
* The `\sON\s+CLUSTER\s` guard makes each rewriter idempotent.
|
|
45
|
+
*/
|
|
46
|
+
export declare function addOnClusterToDDL(sql: string, replication?: ClickhouseReplicationConfig): string;
|
|
47
|
+
export declare function applyReplicationToDDL(sql: string, replication?: ClickhouseReplicationConfig): string;
|
|
48
|
+
export declare function buildLocalTableReplicationError(tables: Array<{
|
|
49
|
+
name: string;
|
|
50
|
+
engine: string;
|
|
51
|
+
}>): MastraError;
|
|
52
|
+
//# sourceMappingURL=replication.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication.d.ts","sourceRoot":"","sources":["../../../src/storage/db/replication.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG7E,MAAM,WAAW,2BAA2B;IAC1C,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2GAA2G;IAC3G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAQD,wBAAgB,uBAAuB,CACrC,WAAW,CAAC,EAAE,2BAA2B,GACxC,WAAW,IAAI,2BAA2B,CAE5C;AAED,wBAAgB,0BAA0B,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAG1E;AAgCD,wBAAgB,yBAAyB,CAAC,WAAW,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAMzF;AAwCD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,2BAA2B,GAAG,MAAM,CAY5G;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,2BAA2B,GAAG,MAAM,CA4BhG;AA0BD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,2BAA2B,GAAG,MAAM,CAGpG;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,WAAW,CAW5G"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TABLE_NAMES, TABLE_SCHEMAS, StorageColumn } from '@mastra/core/storage';
|
|
2
|
+
import type { ClickhouseReplicationConfig } from './replication.js';
|
|
2
3
|
export declare const TABLE_ENGINES: Record<TABLE_NAMES, string>;
|
|
3
4
|
export declare const COLUMN_TYPES: Record<StorageColumn['type'], string>;
|
|
4
5
|
export type IntervalUnit = 'NANOSECOND' | 'MICROSECOND' | 'MILLISECOND' | 'SECOND' | 'MINUTE' | 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'QUARTER' | 'YEAR';
|
|
@@ -6,6 +7,7 @@ export type ClickhouseConfig = {
|
|
|
6
7
|
url: string;
|
|
7
8
|
username: string;
|
|
8
9
|
password: string;
|
|
10
|
+
replication?: ClickhouseReplicationConfig;
|
|
9
11
|
ttl?: {
|
|
10
12
|
[TableKey in TABLE_NAMES]?: {
|
|
11
13
|
row?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/storage/db/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/storage/db/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAqCtF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAyCrD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAS9D,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,aAAa,GACb,aAAa,GACb,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,KAAK,GACL,MAAM,GACN,OAAO,GACP,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,GAAG,CAAC,EAAE;SACH,QAAQ,IAAI,WAAW,CAAC,CAAC,EAAE;YAC1B,GAAG,CAAC,EAAE;gBAAE,QAAQ,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,YAAY,CAAC;gBAAC,MAAM,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAChE,OAAO,CAAC,EAAE,OAAO,CAAC;iBACf,SAAS,IAAI,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG;oBACrD,QAAQ,EAAE,MAAM,CAAC;oBACjB,IAAI,EAAE,YAAY,CAAC;oBACnB,MAAM,CAAC,EAAE,MAAM,CAAC;iBACjB;aACF,CAAC,CAAC;SACJ;KACF,CAAC;CACH,CAAC;AAQF,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAiC3C;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAEjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/storage/domains/observability/v-next/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAwB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EACV,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAC1B,8BAA8B,EAC9B,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/storage/domains/observability/v-next/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAwB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EACV,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAC1B,8BAA8B,EAC9B,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AA2B1D,OAAO,KAAK,EAAkC,eAAe,EAAE,MAAM,OAAO,CAAC;AAC7E,YAAY,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAE7C,6EAA6E;AAC7E,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,GAAG;IAC9D,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,6BAA6B,CAAC;CACrD,CAAC;AAMF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAsR/D,qBAAa,mCAAoC,SAAQ,oBAAoB;;gBAO/D,MAAM,EAAE,wBAAwB;IAatC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoI3B;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC;QAC5B,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,EAAE,OAAO,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAqCF,IAAoB,qBAAqB,IAAI;QAC3C,SAAS,EAAE,4BAA4B,CAAC;QACxC,SAAS,EAAE,4BAA4B,EAAE,CAAC;KAC3C,CAKA;IAEQ,WAAW;IAYL,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB/C,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB3D,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAiB3D,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBvD,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAiBvE,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAiB9D,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAiBxE,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgB7D,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgBvE,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgBnE,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBzD,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgBvD,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB/D,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAgBhE,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjD,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7D,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgB7D,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAiB1D,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvD,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjE,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoBnE,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAgBlF,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAgBlF,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAgBrF,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAoBxF,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAgB3F,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAgB3F,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAgB9F,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAoBjG,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAgBrF,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAgBrF,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAgBxF,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAoB3F,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAgBzE,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAgBrF,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAoB3F,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAgBzE,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAgBzE,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgB5E,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgB5E,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAoBpD,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB7D,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAuBpD"}
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ClickHouseClient, ClickHouseClientConfigOptions } from '@clickhouse/client';
|
|
2
2
|
import { MastraCompositeStore } from '@mastra/core/storage';
|
|
3
3
|
import type { TABLE_NAMES, StorageDomains, TABLE_SCHEMAS } from '@mastra/core/storage';
|
|
4
|
+
import type { ClickhouseReplicationConfig } from './db/replication.js';
|
|
4
5
|
import { BackgroundTasksStorageClickhouse } from './domains/background-tasks/index.js';
|
|
5
6
|
import { MemoryStorageClickhouse } from './domains/memory/index.js';
|
|
6
7
|
import { ObservabilityStorageClickhouse } from './domains/observability/index.js';
|
|
@@ -10,6 +11,7 @@ import { ScoresStorageClickhouse } from './domains/scores/index.js';
|
|
|
10
11
|
import { WorkflowsStorageClickhouse } from './domains/workflows/index.js';
|
|
11
12
|
export { BackgroundTasksStorageClickhouse, MemoryStorageClickhouse, ObservabilityStorageClickhouse, ObservabilityStorageClickhouseVNext, ScoresStorageClickhouse, WorkflowsStorageClickhouse, };
|
|
12
13
|
export type { ClickhouseDomainConfig } from './db/index.js';
|
|
14
|
+
export type { ClickhouseReplicationConfig } from './db/replication.js';
|
|
13
15
|
type IntervalUnit = 'NANOSECOND' | 'MICROSECOND' | 'MILLISECOND' | 'SECOND' | 'MINUTE' | 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'QUARTER' | 'YEAR';
|
|
14
16
|
type ClickhouseTtlConfig = {
|
|
15
17
|
[TableKey in TABLE_NAMES]?: {
|
|
@@ -74,6 +76,11 @@ type ClickhouseCredentialsConfig = Omit<ClickHouseClientConfigOptions, 'url' | '
|
|
|
74
76
|
export type ClickhouseConfig = {
|
|
75
77
|
id: string;
|
|
76
78
|
ttl?: ClickhouseTtlConfig;
|
|
79
|
+
/**
|
|
80
|
+
* Opt into replicated MergeTree engines for Mastra-owned ClickHouse tables.
|
|
81
|
+
* Set `cluster` to also emit ON CLUSTER for table and materialized-view DDL.
|
|
82
|
+
*/
|
|
83
|
+
replication?: ClickhouseReplicationConfig;
|
|
77
84
|
/**
|
|
78
85
|
* When true, automatic initialization (table creation/migrations) is disabled.
|
|
79
86
|
* This is useful for CI/CD pipelines where you want to:
|
|
@@ -142,6 +149,7 @@ export type ClickhouseConfig = {
|
|
|
142
149
|
export declare class ClickhouseStore extends MastraCompositeStore {
|
|
143
150
|
protected db: ClickHouseClient;
|
|
144
151
|
protected ttl: ClickhouseConfig['ttl'];
|
|
152
|
+
protected replication?: ClickhouseReplicationConfig;
|
|
145
153
|
stores: StorageDomains;
|
|
146
154
|
constructor(config: ClickhouseConfig);
|
|
147
155
|
optimizeTable({ tableName }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAG1F,OAAO,EAAwB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/clickhouse",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0-alpha.0",
|
|
4
4
|
"description": "Clickhouse provider for Mastra - includes db storage capabilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -20,21 +20,22 @@
|
|
|
20
20
|
},
|
|
21
21
|
"license": "Apache-2.0",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@clickhouse/client": "^1.
|
|
23
|
+
"@clickhouse/client": "^1.20.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/node": "22.19.15",
|
|
27
27
|
"@vitest/coverage-v8": "4.1.5",
|
|
28
28
|
"@vitest/ui": "4.1.5",
|
|
29
|
-
"eslint": "^10.
|
|
29
|
+
"eslint": "^10.4.1",
|
|
30
30
|
"tsup": "^8.5.1",
|
|
31
|
+
"tsx": "^4.22.4",
|
|
31
32
|
"typescript": "^6.0.3",
|
|
32
33
|
"vitest": "4.1.5",
|
|
33
34
|
"zod": "^4.4.3",
|
|
34
|
-
"@internal/lint": "0.0.
|
|
35
|
-
"@internal/storage-test-utils": "0.0.
|
|
36
|
-
"@internal/types-builder": "0.0.
|
|
37
|
-
"@mastra/core": "1.
|
|
35
|
+
"@internal/lint": "0.0.103",
|
|
36
|
+
"@internal/storage-test-utils": "0.0.99",
|
|
37
|
+
"@internal/types-builder": "0.0.78",
|
|
38
|
+
"@mastra/core": "1.42.0-alpha.4"
|
|
38
39
|
},
|
|
39
40
|
"peerDependencies": {
|
|
40
41
|
"@mastra/core": ">=1.34.0-0 <2.0.0-0",
|