ai-database 2.1.3 → 2.3.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 -1
- package/README.md +880 -669
- package/dist/actions.d.ts +2 -2
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +1 -1
- package/dist/actions.js.map +1 -1
- package/dist/ai-promise-db.d.ts +49 -23
- package/dist/ai-promise-db.d.ts.map +1 -1
- package/dist/ai-promise-db.js +91 -63
- package/dist/ai-promise-db.js.map +1 -1
- package/dist/authorization.d.ts.map +1 -1
- package/dist/authorization.js +38 -30
- package/dist/authorization.js.map +1 -1
- package/dist/cascade-orchestrator.d.ts +404 -0
- package/dist/cascade-orchestrator.d.ts.map +1 -0
- package/dist/cascade-orchestrator.js +828 -0
- package/dist/cascade-orchestrator.js.map +1 -0
- package/dist/cascade-write-strategy.d.ts +584 -0
- package/dist/cascade-write-strategy.d.ts.map +1 -0
- package/dist/cascade-write-strategy.js +590 -0
- package/dist/cascade-write-strategy.js.map +1 -0
- package/dist/ch-adapter.d.ts +358 -0
- package/dist/ch-adapter.d.ts.map +1 -0
- package/dist/ch-adapter.js +929 -0
- package/dist/ch-adapter.js.map +1 -0
- package/dist/client/index.d.ts +42 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +43 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client.d.ts +266 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +81 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +64 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +52 -2
- package/dist/constants.js.map +1 -1
- package/dist/dataloader.d.ts +99 -0
- package/dist/dataloader.d.ts.map +1 -0
- package/dist/dataloader.js +225 -0
- package/dist/dataloader.js.map +1 -0
- package/dist/db-provider-port.d.ts +501 -0
- package/dist/db-provider-port.d.ts.map +1 -0
- package/dist/db-provider-port.js +113 -0
- package/dist/db-provider-port.js.map +1 -0
- package/dist/digital-objects-provider.d.ts +49 -0
- package/dist/digital-objects-provider.d.ts.map +1 -0
- package/dist/digital-objects-provider.js +55 -0
- package/dist/digital-objects-provider.js.map +1 -0
- package/dist/do-sqlite-adapter.d.ts +402 -0
- package/dist/do-sqlite-adapter.d.ts.map +1 -0
- package/dist/do-sqlite-adapter.js +745 -0
- package/dist/do-sqlite-adapter.js.map +1 -0
- package/dist/docs-rels/custom-types.d.ts +134 -0
- package/dist/docs-rels/custom-types.d.ts.map +1 -0
- package/dist/docs-rels/custom-types.js +70 -0
- package/dist/docs-rels/custom-types.js.map +1 -0
- package/dist/docs-rels/index.d.ts +16 -0
- package/dist/docs-rels/index.d.ts.map +1 -0
- package/dist/docs-rels/index.js +16 -0
- package/dist/docs-rels/index.js.map +1 -0
- package/dist/docs-rels/migrations/index.d.ts +30 -0
- package/dist/docs-rels/migrations/index.d.ts.map +1 -0
- package/dist/docs-rels/migrations/index.js +128 -0
- package/dist/docs-rels/migrations/index.js.map +1 -0
- package/dist/docs-rels/schema.d.ts +2961 -0
- package/dist/docs-rels/schema.d.ts.map +1 -0
- package/dist/docs-rels/schema.js +244 -0
- package/dist/docs-rels/schema.js.map +1 -0
- package/dist/durable-clickhouse.d.ts.map +1 -1
- package/dist/durable-clickhouse.js +16 -13
- package/dist/durable-clickhouse.js.map +1 -1
- package/dist/durable-promise.d.ts.map +1 -1
- package/dist/durable-promise.js +34 -15
- package/dist/durable-promise.js.map +1 -1
- package/dist/errors.d.ts +127 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +210 -0
- package/dist/errors.js.map +1 -0
- package/dist/eventbridge.d.ts +117 -0
- package/dist/eventbridge.d.ts.map +1 -0
- package/dist/eventbridge.js +238 -0
- package/dist/eventbridge.js.map +1 -0
- package/dist/events.d.ts +2 -2
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +1 -1
- package/dist/events.js.map +1 -1
- package/dist/execution-queue.d.ts.map +1 -1
- package/dist/execution-queue.js +4 -5
- package/dist/execution-queue.js.map +1 -1
- package/dist/index.d.ts +35 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +106 -6
- package/dist/index.js.map +1 -1
- package/dist/linguistic.d.ts +3 -108
- package/dist/linguistic.d.ts.map +1 -1
- package/dist/linguistic.js +3 -372
- package/dist/linguistic.js.map +1 -1
- package/dist/logger.d.ts +132 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +137 -0
- package/dist/logger.js.map +1 -0
- package/dist/memory-provider.d.ts +128 -0
- package/dist/memory-provider.d.ts.map +1 -1
- package/dist/memory-provider.js +592 -257
- package/dist/memory-provider.js.map +1 -1
- package/dist/pg-adapter.d.ts +424 -0
- package/dist/pg-adapter.d.ts.map +1 -0
- package/dist/pg-adapter.js +921 -0
- package/dist/pg-adapter.js.map +1 -0
- package/dist/pipelines-iceberg-emitter.d.ts +327 -0
- package/dist/pipelines-iceberg-emitter.d.ts.map +1 -0
- package/dist/pipelines-iceberg-emitter.js +351 -0
- package/dist/pipelines-iceberg-emitter.js.map +1 -0
- package/dist/provider-capabilities.d.ts +146 -0
- package/dist/provider-capabilities.d.ts.map +1 -0
- package/dist/provider-capabilities.js +214 -0
- package/dist/provider-capabilities.js.map +1 -0
- package/dist/rdb-provider-adapter.d.ts +195 -0
- package/dist/rdb-provider-adapter.d.ts.map +1 -0
- package/dist/rdb-provider-adapter.js +291 -0
- package/dist/rdb-provider-adapter.js.map +1 -0
- package/dist/schema/cascade.d.ts +48 -17
- package/dist/schema/cascade.d.ts.map +1 -1
- package/dist/schema/cascade.js +477 -278
- package/dist/schema/cascade.js.map +1 -1
- package/dist/schema/definition-caches.d.ts +24 -0
- package/dist/schema/definition-caches.d.ts.map +1 -0
- package/dist/schema/definition-caches.js +26 -0
- package/dist/schema/definition-caches.js.map +1 -0
- package/dist/schema/dependency-graph.d.ts +21 -109
- package/dist/schema/dependency-graph.d.ts.map +1 -1
- package/dist/schema/dependency-graph.js +25 -333
- package/dist/schema/dependency-graph.js.map +1 -1
- package/dist/schema/diff.d.ts +103 -0
- package/dist/schema/diff.d.ts.map +1 -0
- package/dist/schema/diff.js +329 -0
- package/dist/schema/diff.js.map +1 -0
- package/dist/schema/entity-operations.d.ts +99 -0
- package/dist/schema/entity-operations.d.ts.map +1 -0
- package/dist/schema/entity-operations.js +818 -0
- package/dist/schema/entity-operations.js.map +1 -0
- package/dist/schema/index.d.ts +28 -34
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +454 -521
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/migration.d.ts +205 -0
- package/dist/schema/migration.d.ts.map +1 -0
- package/dist/schema/migration.js +327 -0
- package/dist/schema/migration.js.map +1 -0
- package/dist/schema/nl-query-generator.d.ts +68 -0
- package/dist/schema/nl-query-generator.d.ts.map +1 -0
- package/dist/schema/nl-query-generator.js +362 -0
- package/dist/schema/nl-query-generator.js.map +1 -0
- package/dist/schema/nl-query.d.ts +65 -0
- package/dist/schema/nl-query.d.ts.map +1 -0
- package/dist/schema/nl-query.js +178 -0
- package/dist/schema/nl-query.js.map +1 -0
- package/dist/schema/parse.d.ts.map +1 -1
- package/dist/schema/parse.js +144 -89
- package/dist/schema/parse.js.map +1 -1
- package/dist/schema/provider.d.ts +37 -0
- package/dist/schema/provider.d.ts.map +1 -1
- package/dist/schema/provider.js +15 -7
- package/dist/schema/provider.js.map +1 -1
- package/dist/schema/resolve.d.ts +46 -5
- package/dist/schema/resolve.d.ts.map +1 -1
- package/dist/schema/resolve.js +237 -95
- package/dist/schema/resolve.js.map +1 -1
- package/dist/schema/search-utils.d.ts +76 -0
- package/dist/schema/search-utils.d.ts.map +1 -0
- package/dist/schema/search-utils.js +86 -0
- package/dist/schema/search-utils.js.map +1 -0
- package/dist/schema/seed.d.ts +53 -0
- package/dist/schema/seed.d.ts.map +1 -0
- package/dist/schema/seed.js +94 -0
- package/dist/schema/seed.js.map +1 -0
- package/dist/schema/semantic.d.ts +10 -0
- package/dist/schema/semantic.d.ts.map +1 -1
- package/dist/schema/semantic.js +192 -86
- package/dist/schema/semantic.js.map +1 -1
- package/dist/schema/sub-apis.d.ts +52 -0
- package/dist/schema/sub-apis.d.ts.map +1 -0
- package/dist/schema/sub-apis.js +216 -0
- package/dist/schema/sub-apis.js.map +1 -0
- package/dist/schema/system-entities.d.ts +42 -0
- package/dist/schema/system-entities.d.ts.map +1 -0
- package/dist/schema/system-entities.js +101 -0
- package/dist/schema/system-entities.js.map +1 -0
- package/dist/schema/types.d.ts +91 -9
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/union-fallback.d.ts.map +1 -1
- package/dist/schema/union-fallback.js +21 -15
- package/dist/schema/union-fallback.js.map +1 -1
- package/dist/schema/value-generators/ai.d.ts +54 -0
- package/dist/schema/value-generators/ai.d.ts.map +1 -0
- package/dist/schema/value-generators/ai.js +136 -0
- package/dist/schema/value-generators/ai.js.map +1 -0
- package/dist/schema/value-generators/index.d.ts +126 -0
- package/dist/schema/value-generators/index.d.ts.map +1 -0
- package/dist/schema/value-generators/index.js +219 -0
- package/dist/schema/value-generators/index.js.map +1 -0
- package/dist/schema/value-generators/placeholder.d.ts +52 -0
- package/dist/schema/value-generators/placeholder.d.ts.map +1 -0
- package/dist/schema/value-generators/placeholder.js +328 -0
- package/dist/schema/value-generators/placeholder.js.map +1 -0
- package/dist/schema/value-generators/types.d.ts +116 -0
- package/dist/schema/value-generators/types.d.ts.map +1 -0
- package/dist/schema/value-generators/types.js +11 -0
- package/dist/schema/value-generators/types.js.map +1 -0
- package/dist/schema/version.d.ts +111 -0
- package/dist/schema/version.d.ts.map +1 -0
- package/dist/schema/version.js +190 -0
- package/dist/schema/version.js.map +1 -0
- package/dist/schema.d.ts +1095 -24
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +2852 -40
- package/dist/schema.js.map +1 -1
- package/dist/semantic-vectors.d.ts +39 -0
- package/dist/semantic-vectors.d.ts.map +1 -0
- package/dist/semantic-vectors.js +334 -0
- package/dist/semantic-vectors.js.map +1 -0
- package/dist/semantic.d.ts +29 -1
- package/dist/semantic.d.ts.map +1 -1
- package/dist/semantic.js +26 -16
- package/dist/semantic.js.map +1 -1
- package/dist/telemetry.d.ts +128 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +305 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tests.d.ts.map +1 -1
- package/dist/tests.js +30 -22
- package/dist/tests.js.map +1 -1
- package/dist/type-guards.d.ts +50 -5
- package/dist/type-guards.d.ts.map +1 -1
- package/dist/type-guards.js +87 -16
- package/dist/type-guards.js.map +1 -1
- package/dist/types.d.ts +33 -245
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +62 -72
- package/dist/types.js.map +1 -1
- package/dist/validation.d.ts +2 -5
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +65 -93
- package/dist/validation.js.map +1 -1
- package/dist/worker/db-provider.d.ts +168 -0
- package/dist/worker/db-provider.d.ts.map +1 -0
- package/dist/worker/db-provider.js +277 -0
- package/dist/worker/db-provider.js.map +1 -0
- package/dist/worker/index.d.ts +35 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +37 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker.d.ts +779 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +2786 -0
- package/dist/worker.js.map +1 -0
- package/package.json +46 -16
- package/src/docs-rels/migrations/0001-init.sql +125 -0
- package/LICENSE +0 -21
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-adapter.js","sourceRoot":"","sources":["../src/pg-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pipelines → Iceberg analytical fan-out emitter — Phase 2 final, bead `aip-0ypt`.
|
|
3
|
+
*
|
|
4
|
+
* Implements the {@link AnalyticalEmitter} contract surfaced by
|
|
5
|
+
* {@link CascadeWriteStrategy} so cascade writes can dual-write into
|
|
6
|
+
* Iceberg via Cloudflare Pipelines without changing the strategy or
|
|
7
|
+
* orchestrator surface. Per
|
|
8
|
+
* [ADR-0003](../../../docs/adr/0003-storage-strategy-pg-clickhouse-default.md),
|
|
9
|
+
* Stack B's storage shape is:
|
|
10
|
+
*
|
|
11
|
+
* ```text
|
|
12
|
+
* cascade write
|
|
13
|
+
* │
|
|
14
|
+
* ▼
|
|
15
|
+
* DO SQLite (per-cascade, transactional, source of truth for traversal)
|
|
16
|
+
* │
|
|
17
|
+
* └──► CascadeWriteStrategy.analyticalEmitter ──► Cloudflare Pipelines ──► R2 Iceberg
|
|
18
|
+
* (analytical SOR; ClickHouse reads from here)
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* The transactional path through DO SQLite is the source of truth for
|
|
22
|
+
* cascade correctness. The analytical fan-out is **fire-and-forget** on
|
|
23
|
+
* the hot path: emitter failures MUST NOT fail the cascade write. The
|
|
24
|
+
* `CascadeWriteStrategy` already swallows thrown errors from the
|
|
25
|
+
* emitter; this module additionally never throws — even on completely
|
|
26
|
+
* misconfigured bindings — so callers get the same shape regardless of
|
|
27
|
+
* runtime.
|
|
28
|
+
*
|
|
29
|
+
* ## Schema mapping
|
|
30
|
+
*
|
|
31
|
+
* Iceberg tables for `things` and `actions` mirror the SVO surface used
|
|
32
|
+
* by the PG/CH/DO SQLite adapters. Columns are kept in lowercase
|
|
33
|
+
* snake_case (Iceberg is case-insensitive but tooling typically
|
|
34
|
+
* normalises this way):
|
|
35
|
+
*
|
|
36
|
+
* **things table**
|
|
37
|
+
* - `id` STRING (Thing id; content-hashed by the orchestrator)
|
|
38
|
+
* - `type` STRING (Thing `$type`)
|
|
39
|
+
* - `data` STRING (jsonb-style — emitted as a stringified JSON blob;
|
|
40
|
+
* downstream readers (CH `JSONExtract`, DataFusion `arrow_cast`) parse
|
|
41
|
+
* on read. Iceberg has STRUCT columns but cascade Things are
|
|
42
|
+
* open-shape so we keep the column STRING)
|
|
43
|
+
* - `cascade_id` STRING (the cascade this row belongs to; partition key)
|
|
44
|
+
* - `tenant_id` STRING NULL (when sharded by tenant)
|
|
45
|
+
* - `shard_key` STRING (the strategy's routing key, e.g. `cascade:abc`)
|
|
46
|
+
* - `created_at` TIMESTAMP (emit time; stable)
|
|
47
|
+
* - `updated_at` TIMESTAMP (emit time; bumped on re-emit)
|
|
48
|
+
*
|
|
49
|
+
* **actions table** — wire-compatible with `SVOAction`
|
|
50
|
+
* - `id` STRING (Action id; orchestrator-supplied or adapter-generated)
|
|
51
|
+
* - `verb` STRING
|
|
52
|
+
* - `subject` STRING NULL
|
|
53
|
+
* - `object` STRING NULL
|
|
54
|
+
* - `roles` STRING (JSON-stringified Frame role map)
|
|
55
|
+
* - `data` STRING (JSON-stringified payload)
|
|
56
|
+
* - `status` STRING (`pending` | `completed` | `failed` | `cancelled`)
|
|
57
|
+
* - `cascade_id` STRING (partition key)
|
|
58
|
+
* - `tenant_id` STRING NULL
|
|
59
|
+
* - `shard_key` STRING
|
|
60
|
+
* - `timestamp` TIMESTAMP (emit time)
|
|
61
|
+
*
|
|
62
|
+
* Schema bootstrap (creating the Iceberg tables) is a deployment-time
|
|
63
|
+
* concern; this emitter only writes records into an existing table
|
|
64
|
+
* via the Pipelines binding's `send()`.
|
|
65
|
+
*
|
|
66
|
+
* ## Bindings
|
|
67
|
+
*
|
|
68
|
+
* The emitter accepts a structurally-typed
|
|
69
|
+
* {@link PipelinesStreamBindingLike} so the module compiles in plain
|
|
70
|
+
* Node tests without `@cloudflare/workers-types`. Real Pipelines
|
|
71
|
+
* bindings produced by `wrangler.toml` satisfy this shape at runtime.
|
|
72
|
+
* For non-Workers callers (Node / dev / batch jobs) an
|
|
73
|
+
* {@link HttpPipelinesEmitterOptions} HTTP fallback is supported,
|
|
74
|
+
* issuing `POST` requests against the Pipelines stream endpoint.
|
|
75
|
+
*
|
|
76
|
+
* ## Exactly-once / dedup
|
|
77
|
+
*
|
|
78
|
+
* Cloudflare Pipelines is at-least-once by default. Cascade entity
|
|
79
|
+
* ids are content-hashed by the orchestrator (same inputs → same id),
|
|
80
|
+
* so re-emits of the same cascade re-use the same `id` field — Iceberg
|
|
81
|
+
* MERGE-on-read jobs (or the Pipelines binding's optional dedup key)
|
|
82
|
+
* collapse duplicates downstream. Callers wanting strict
|
|
83
|
+
* exactly-once semantics should configure dedup on the Pipelines
|
|
84
|
+
* stream itself; this emitter exposes `dedupKey?: 'id' | null` to
|
|
85
|
+
* indicate which field to use.
|
|
86
|
+
*
|
|
87
|
+
* @see {@link ../../../docs/adr/0003-storage-strategy-pg-clickhouse-default.md}
|
|
88
|
+
* @see {@link ./cascade-write-strategy.ts}
|
|
89
|
+
* @packageDocumentation
|
|
90
|
+
*/
|
|
91
|
+
import type { AnalyticalEmitter } from './cascade-write-strategy.js';
|
|
92
|
+
/**
|
|
93
|
+
* Minimal Cloudflare Pipelines stream binding shape.
|
|
94
|
+
*
|
|
95
|
+
* The real `Pipeline` binding exposes additional methods the emitter
|
|
96
|
+
* does not need (telemetry, batch flushing, etc.). The shape captured
|
|
97
|
+
* here is the subset we call.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```toml
|
|
101
|
+
* # wrangler.toml
|
|
102
|
+
* [[pipelines]]
|
|
103
|
+
* binding = "ANALYTICAL_PIPE"
|
|
104
|
+
* pipeline = "cascade-iceberg"
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```ts
|
|
109
|
+
* import { createPipelinesIcebergEmitter } from 'ai-database'
|
|
110
|
+
*
|
|
111
|
+
* const emitter = createPipelinesIcebergEmitter({
|
|
112
|
+
* binding: env.ANALYTICAL_PIPE,
|
|
113
|
+
* thingsTable: 'aidb.things',
|
|
114
|
+
* actionsTable: 'aidb.actions',
|
|
115
|
+
* })
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
export interface PipelinesStreamBindingLike {
|
|
119
|
+
/**
|
|
120
|
+
* Push an array of records into the pipeline. Records are JSON-
|
|
121
|
+
* serialisable objects; the Pipelines runtime batches and writes them
|
|
122
|
+
* into the configured destination (R2 Iceberg in this deployment).
|
|
123
|
+
*
|
|
124
|
+
* Cloudflare's runtime returns `void` / `Promise<void>` — the call is
|
|
125
|
+
* a fire-and-forget enqueue. Failures (binding misconfigured, quota
|
|
126
|
+
* exceeded, etc.) surface as rejected promises; this emitter
|
|
127
|
+
* swallows them so the cascade hot path remains correct.
|
|
128
|
+
*/
|
|
129
|
+
send(records: ReadonlyArray<Record<string, unknown>>): Promise<void> | void;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Shape of a row written into the Iceberg `things` table. Values are
|
|
133
|
+
* lowered (data is stringified JSON) so the Iceberg writer doesn't
|
|
134
|
+
* need to know about open-shape jsonb. CH / DataFusion readers parse
|
|
135
|
+
* the `data` column back into structures via `JSONExtract` /
|
|
136
|
+
* `arrow_cast`.
|
|
137
|
+
*/
|
|
138
|
+
export interface IcebergThingRow {
|
|
139
|
+
id: string;
|
|
140
|
+
type: string;
|
|
141
|
+
data: string;
|
|
142
|
+
cascade_id: string;
|
|
143
|
+
tenant_id: string | null;
|
|
144
|
+
shard_key: string;
|
|
145
|
+
created_at: string;
|
|
146
|
+
updated_at: string;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Shape of a row written into the Iceberg `actions` table. Mirrors
|
|
150
|
+
* the SVO Action surface plus cascade-routing columns.
|
|
151
|
+
*/
|
|
152
|
+
export interface IcebergActionRow {
|
|
153
|
+
id: string;
|
|
154
|
+
verb: string;
|
|
155
|
+
subject: string | null;
|
|
156
|
+
object: string | null;
|
|
157
|
+
roles: string;
|
|
158
|
+
data: string;
|
|
159
|
+
status: string;
|
|
160
|
+
cascade_id: string;
|
|
161
|
+
tenant_id: string | null;
|
|
162
|
+
shard_key: string;
|
|
163
|
+
timestamp: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Minimal logger shape the emitter calls when fan-out fails. Defaults
|
|
167
|
+
* to a no-op so library callers don't pay for a logger they didn't ask
|
|
168
|
+
* for. Workers callers typically pass `console`; production callers
|
|
169
|
+
* pass their structured logger.
|
|
170
|
+
*/
|
|
171
|
+
export interface PipelinesEmitterLoggerLike {
|
|
172
|
+
warn?: (message: string, data?: Record<string, unknown>) => void;
|
|
173
|
+
error?: (message: string, data?: Record<string, unknown>) => void;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Common options shared by binding-mode and HTTP-mode emitters.
|
|
177
|
+
*/
|
|
178
|
+
interface PipelinesIcebergEmitterCommonOptions {
|
|
179
|
+
/**
|
|
180
|
+
* Iceberg table name for Things rows. Defaults to `'things'`.
|
|
181
|
+
* Callers running multi-tenant deployments typically use
|
|
182
|
+
* `'tenant_<id>.things'` or similar; pass the fully-qualified table
|
|
183
|
+
* name your Pipelines stream is configured to write into.
|
|
184
|
+
*/
|
|
185
|
+
thingsTable?: string;
|
|
186
|
+
/**
|
|
187
|
+
* Iceberg table name for Actions rows. Defaults to `'actions'`.
|
|
188
|
+
*/
|
|
189
|
+
actionsTable?: string;
|
|
190
|
+
/**
|
|
191
|
+
* Tenant id stamped onto every row. When omitted the emitter looks
|
|
192
|
+
* for `tenantId` on the {@link ShardRef.context}; if neither is
|
|
193
|
+
* present rows carry `tenant_id = null`.
|
|
194
|
+
*/
|
|
195
|
+
tenantId?: string;
|
|
196
|
+
/**
|
|
197
|
+
* Hint to downstream MERGE-on-read jobs about which column carries
|
|
198
|
+
* the dedup key. The emitter doesn't use this internally — it's
|
|
199
|
+
* carried into the row payload as `_dedup_key` so the Pipelines
|
|
200
|
+
* stream / Iceberg compaction can act on it. Default: `'id'`.
|
|
201
|
+
*/
|
|
202
|
+
dedupKey?: 'id' | null;
|
|
203
|
+
/**
|
|
204
|
+
* Override `Date.now()` for deterministic tests. Returns an ISO 8601
|
|
205
|
+
* string used for `created_at` / `updated_at` / `timestamp`.
|
|
206
|
+
*/
|
|
207
|
+
now?: () => string;
|
|
208
|
+
/**
|
|
209
|
+
* Optional logger. Defaults to no-op. Failures are logged at `warn`
|
|
210
|
+
* level (the cascade local commit is the source of truth).
|
|
211
|
+
*/
|
|
212
|
+
logger?: PipelinesEmitterLoggerLike;
|
|
213
|
+
/**
|
|
214
|
+
* When true, `await` the `send()` call before returning from
|
|
215
|
+
* `emit()`. Default: `false` (fire-and-forget). Kept as an escape
|
|
216
|
+
* hatch for tests that want to assert exact ordering; production
|
|
217
|
+
* callers leave this off so the cascade hot path doesn't pay the
|
|
218
|
+
* round-trip latency.
|
|
219
|
+
*
|
|
220
|
+
* Even when `awaitSend` is true, errors are still swallowed —
|
|
221
|
+
* setting this to `true` does NOT change the failure semantics.
|
|
222
|
+
* If you need synchronous "did the analytical write land?"
|
|
223
|
+
* guarantees, that's a different design (the emitter would have
|
|
224
|
+
* to surface a typed error path; bead reserves that as out-of-scope).
|
|
225
|
+
*/
|
|
226
|
+
awaitSend?: boolean;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Options for the Workers-binding-mode emitter (canonical Stack B shape).
|
|
230
|
+
*/
|
|
231
|
+
export interface PipelinesIcebergEmitterOptions extends PipelinesIcebergEmitterCommonOptions {
|
|
232
|
+
/**
|
|
233
|
+
* The Pipelines stream binding (a single binding fans out into both
|
|
234
|
+
* tables — see {@link thingsTable} / {@link actionsTable}).
|
|
235
|
+
*
|
|
236
|
+
* For separate streams per table, pass {@link thingsBinding} and
|
|
237
|
+
* {@link actionsBinding} instead and leave this field undefined.
|
|
238
|
+
*/
|
|
239
|
+
binding?: PipelinesStreamBindingLike;
|
|
240
|
+
/** Optional separate binding for Things rows. Overrides {@link binding}. */
|
|
241
|
+
thingsBinding?: PipelinesStreamBindingLike;
|
|
242
|
+
/** Optional separate binding for Actions rows. Overrides {@link binding}. */
|
|
243
|
+
actionsBinding?: PipelinesStreamBindingLike;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Options for the HTTP-fallback emitter — used by Node / dev / batch
|
|
247
|
+
* jobs that don't have a Pipelines binding available. Issues a `POST`
|
|
248
|
+
* with `Content-Type: application/json` against the Pipelines stream
|
|
249
|
+
* endpoint URL provided. The body is a JSON array of rows (the same
|
|
250
|
+
* shape `send()` would receive).
|
|
251
|
+
*/
|
|
252
|
+
export interface HttpPipelinesEmitterOptions extends PipelinesIcebergEmitterCommonOptions {
|
|
253
|
+
/**
|
|
254
|
+
* Pipelines stream endpoint URL. Cloudflare exposes a per-stream
|
|
255
|
+
* HTTPS endpoint; configure the URL out-of-band (e.g. via
|
|
256
|
+
* `PIPELINES_THINGS_URL` / `PIPELINES_ACTIONS_URL` env vars at the
|
|
257
|
+
* call site).
|
|
258
|
+
*
|
|
259
|
+
* If only one URL is configured, both Things and Actions are sent
|
|
260
|
+
* to the same endpoint with a `_table` discriminator.
|
|
261
|
+
*/
|
|
262
|
+
url?: string;
|
|
263
|
+
/** Optional separate endpoint for Things rows. Overrides {@link url}. */
|
|
264
|
+
thingsUrl?: string;
|
|
265
|
+
/** Optional separate endpoint for Actions rows. Overrides {@link url}. */
|
|
266
|
+
actionsUrl?: string;
|
|
267
|
+
/**
|
|
268
|
+
* Optional bearer token for authentication. Sent as
|
|
269
|
+
* `Authorization: Bearer <token>` on the `POST`.
|
|
270
|
+
*/
|
|
271
|
+
authToken?: string;
|
|
272
|
+
/**
|
|
273
|
+
* Optional fetch implementation. Default: global `fetch`. Tests pass
|
|
274
|
+
* a structural fake.
|
|
275
|
+
*/
|
|
276
|
+
fetch?: (input: string, init?: RequestInit) => Promise<Response>;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Create an {@link AnalyticalEmitter} that fans out cascade writes
|
|
280
|
+
* into Iceberg via Cloudflare Pipelines.
|
|
281
|
+
*
|
|
282
|
+
* The returned emitter satisfies the
|
|
283
|
+
* {@link CascadeWriteStrategy.analyticalEmitter} contract — pass it
|
|
284
|
+
* directly to {@link CascadeWriteStrategy} or
|
|
285
|
+
* {@link generateCascade} via the `analyticalEmitter` option.
|
|
286
|
+
*
|
|
287
|
+
* @example Workers binding mode
|
|
288
|
+
* ```ts
|
|
289
|
+
* import { createPipelinesIcebergEmitter, generateCascade } from 'ai-database'
|
|
290
|
+
*
|
|
291
|
+
* const emitter = createPipelinesIcebergEmitter({
|
|
292
|
+
* binding: env.ANALYTICAL_PIPE,
|
|
293
|
+
* thingsTable: 'aidb.things',
|
|
294
|
+
* actionsTable: 'aidb.actions',
|
|
295
|
+
* tenantId: 'acme',
|
|
296
|
+
* })
|
|
297
|
+
*
|
|
298
|
+
* await generateCascade({
|
|
299
|
+
* adapter,
|
|
300
|
+
* rootNoun: 'Customer',
|
|
301
|
+
* analyticalEmitter: emitter,
|
|
302
|
+
* // ...
|
|
303
|
+
* })
|
|
304
|
+
* ```
|
|
305
|
+
*
|
|
306
|
+
* @example Node HTTP fallback (dev / batch)
|
|
307
|
+
* ```ts
|
|
308
|
+
* import { createHttpPipelinesIcebergEmitter } from 'ai-database'
|
|
309
|
+
*
|
|
310
|
+
* const emitter = createHttpPipelinesIcebergEmitter({
|
|
311
|
+
* url: process.env.PIPELINES_URL,
|
|
312
|
+
* authToken: process.env.PIPELINES_TOKEN,
|
|
313
|
+
* })
|
|
314
|
+
* ```
|
|
315
|
+
*/
|
|
316
|
+
export declare function createPipelinesIcebergEmitter(options: PipelinesIcebergEmitterOptions): AnalyticalEmitter;
|
|
317
|
+
/**
|
|
318
|
+
* Create an {@link AnalyticalEmitter} that fans out cascade writes
|
|
319
|
+
* into Iceberg via the Pipelines HTTPS stream endpoint.
|
|
320
|
+
*
|
|
321
|
+
* Used by non-Workers callers (Node / dev / batch jobs). Workers
|
|
322
|
+
* deployments should prefer {@link createPipelinesIcebergEmitter}
|
|
323
|
+
* for lower latency.
|
|
324
|
+
*/
|
|
325
|
+
export declare function createHttpPipelinesIcebergEmitter(options: HttpPipelinesEmitterOptions): AnalyticalEmitter;
|
|
326
|
+
export {};
|
|
327
|
+
//# sourceMappingURL=pipelines-iceberg-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipelines-iceberg-emitter.d.ts","sourceRoot":"","sources":["../src/pipelines-iceberg-emitter.ts"],"names":[],"mappings":"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"}
|