@uptimizr/collector-server 2.0.1 → 2.2.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/AGENTS.md +187 -11
- package/README.md +91 -7
- package/dist/__tests__/support/registryRequests.d.ts +2 -1
- package/dist/__tests__/support/registryRequests.d.ts.map +1 -1
- package/dist/__tests__/support/registryRequests.js +17 -1
- package/dist/__tests__/support/registryRequests.js.map +1 -1
- package/dist/__tests__/support/subscriptionFixtures.d.ts +63 -0
- package/dist/__tests__/support/subscriptionFixtures.d.ts.map +1 -0
- package/dist/__tests__/support/subscriptionFixtures.js +17 -0
- package/dist/__tests__/support/subscriptionFixtures.js.map +1 -0
- package/dist/agentReport.d.ts +256 -0
- package/dist/agentReport.d.ts.map +1 -0
- package/dist/agentReport.js +861 -0
- package/dist/agentReport.js.map +1 -0
- package/dist/app.d.ts +13 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +112 -5
- package/dist/app.js.map +1 -1
- package/dist/audit.d.ts +5 -1
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +24 -4
- package/dist/audit.js.map +1 -1
- package/dist/auth.d.ts +41 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +47 -0
- package/dist/auth.js.map +1 -1
- package/dist/cli.js +133 -13
- package/dist/cli.js.map +1 -1
- package/dist/cliStore.d.ts +31 -2
- package/dist/cliStore.d.ts.map +1 -1
- package/dist/cliStore.js +34 -0
- package/dist/cliStore.js.map +1 -1
- package/dist/clickhouseStore.d.ts.map +1 -1
- package/dist/clickhouseStore.js +44 -2
- package/dist/clickhouseStore.js.map +1 -1
- package/dist/config.d.ts +49 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +21 -0
- package/dist/config.js.map +1 -1
- package/dist/connectionLimiter.d.ts +23 -0
- package/dist/connectionLimiter.d.ts.map +1 -0
- package/dist/connectionLimiter.js +24 -0
- package/dist/connectionLimiter.js.map +1 -0
- package/dist/duckdbStore.d.ts.map +1 -1
- package/dist/duckdbStore.js +44 -1
- package/dist/duckdbStore.js.map +1 -1
- package/dist/internalDispatch.d.ts +36 -0
- package/dist/internalDispatch.d.ts.map +1 -0
- package/dist/internalDispatch.js +50 -0
- package/dist/internalDispatch.js.map +1 -0
- package/dist/memoryStore.d.ts.map +1 -1
- package/dist/memoryStore.js +314 -1
- package/dist/memoryStore.js.map +1 -1
- package/dist/mssqlStore.d.ts.map +1 -1
- package/dist/mssqlStore.js +44 -2
- package/dist/mssqlStore.js.map +1 -1
- package/dist/postgresStore.d.ts.map +1 -1
- package/dist/postgresStore.js +44 -2
- package/dist/postgresStore.js.map +1 -1
- package/dist/projectMetadata.d.ts +82 -0
- package/dist/projectMetadata.d.ts.map +1 -0
- package/dist/projectMetadata.js +50 -0
- package/dist/projectMetadata.js.map +1 -0
- package/dist/routes/context.d.ts +135 -0
- package/dist/routes/context.d.ts.map +1 -0
- package/dist/routes/context.js +306 -0
- package/dist/routes/context.js.map +1 -0
- package/dist/routes/insights.d.ts +36 -0
- package/dist/routes/insights.d.ts.map +1 -0
- package/dist/routes/insights.js +810 -0
- package/dist/routes/insights.js.map +1 -0
- package/dist/routes/live.d.ts +8 -0
- package/dist/routes/live.d.ts.map +1 -1
- package/dist/routes/live.js +8 -7
- package/dist/routes/live.js.map +1 -1
- package/dist/routes/mcp.d.ts +36 -0
- package/dist/routes/mcp.d.ts.map +1 -0
- package/dist/routes/mcp.js +262 -0
- package/dist/routes/mcp.js.map +1 -0
- package/dist/routes/meta.d.ts +16 -2
- package/dist/routes/meta.d.ts.map +1 -1
- package/dist/routes/meta.js +699 -10
- package/dist/routes/meta.js.map +1 -1
- package/dist/routes/metadata.d.ts +31 -0
- package/dist/routes/metadata.d.ts.map +1 -0
- package/dist/routes/metadata.js +163 -0
- package/dist/routes/metadata.js.map +1 -0
- package/dist/routes/narrative.d.ts +36 -0
- package/dist/routes/narrative.d.ts.map +1 -0
- package/dist/routes/narrative.js +95 -0
- package/dist/routes/narrative.js.map +1 -0
- package/dist/routes/panels.d.ts +44 -0
- package/dist/routes/panels.d.ts.map +1 -0
- package/dist/routes/panels.js +108 -0
- package/dist/routes/panels.js.map +1 -0
- package/dist/routes/query-dsl.d.ts +50 -0
- package/dist/routes/query-dsl.d.ts.map +1 -0
- package/dist/routes/query-dsl.js +359 -0
- package/dist/routes/query-dsl.js.map +1 -0
- package/dist/routes/query.d.ts +36 -0
- package/dist/routes/query.d.ts.map +1 -1
- package/dist/routes/query.js +101 -13
- package/dist/routes/query.js.map +1 -1
- package/dist/routes/subscriptions.d.ts +52 -0
- package/dist/routes/subscriptions.d.ts.map +1 -0
- package/dist/routes/subscriptions.js +290 -0
- package/dist/routes/subscriptions.js.map +1 -0
- package/dist/store.d.ts +113 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/subscriptions/cli.d.ts +36 -0
- package/dist/subscriptions/cli.d.ts.map +1 -0
- package/dist/subscriptions/cli.js +143 -0
- package/dist/subscriptions/cli.js.map +1 -0
- package/dist/subscriptions/delivery.d.ts +101 -0
- package/dist/subscriptions/delivery.d.ts.map +1 -0
- package/dist/subscriptions/delivery.js +165 -0
- package/dist/subscriptions/delivery.js.map +1 -0
- package/dist/subscriptions/evaluate.d.ts +119 -0
- package/dist/subscriptions/evaluate.d.ts.map +1 -0
- package/dist/subscriptions/evaluate.js +326 -0
- package/dist/subscriptions/evaluate.js.map +1 -0
- package/dist/subscriptions/scheduler.d.ts +97 -0
- package/dist/subscriptions/scheduler.d.ts.map +1 -0
- package/dist/subscriptions/scheduler.js +332 -0
- package/dist/subscriptions/scheduler.js.map +1 -0
- package/dist/subscriptions/stream.d.ts +40 -0
- package/dist/subscriptions/stream.d.ts.map +1 -0
- package/dist/subscriptions/stream.js +38 -0
- package/dist/subscriptions/stream.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +25 -0
- package/dist/version.js.map +1 -0
- package/dist/webhookSignature.d.ts +64 -0
- package/dist/webhookSignature.d.ts.map +1 -0
- package/dist/webhookSignature.js +91 -0
- package/dist/webhookSignature.js.map +1 -0
- package/llms.txt +39 -2
- package/package.json +17 -14
package/dist/memoryStore.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { METADATA_LIMITS, MetadataLimitError, clampMetadataLimit, evaluateBucketMeasure, foldCustomEventVocabulary, toEventRow, MAX_ENABLED_SUBSCRIPTIONS, MAX_SUBSCRIPTIONS_PER_PROJECT, MAX_SUBSCRIPTION_EVENTS, SubscriptionLimitError, clampEventLimit, clampSubscriptionError, rowToSubscription, toSubscriptionColumns, } from "@uptimizr/db";
|
|
2
3
|
function isSessionStart(event) {
|
|
3
4
|
return event.type === "session_start";
|
|
4
5
|
}
|
|
@@ -18,6 +19,28 @@ export function createMemoryStore({ projectId, apiKey, capabilities = ["query"],
|
|
|
18
19
|
const audit = [];
|
|
19
20
|
/** Scene regions keyed by scene id; each value is that scene's whole set. */
|
|
20
21
|
const regions = new Map();
|
|
22
|
+
/** Project metadata (#310): annotations, glossary (keyed by term), analyses. */
|
|
23
|
+
const annotations = [];
|
|
24
|
+
const glossary = new Map();
|
|
25
|
+
const analyses = [];
|
|
26
|
+
/**
|
|
27
|
+
* Pinned panels (#315). An array rather than a `Map` because insertion order
|
|
28
|
+
* *is* the listing order here — the persistent stores order these oldest-first
|
|
29
|
+
* so a pinned panel keeps its place in the grid.
|
|
30
|
+
*/
|
|
31
|
+
const panelSpecs = [];
|
|
32
|
+
/**
|
|
33
|
+
* Conditional subscriptions (#311). Kept in insertion order — the persistent
|
|
34
|
+
* stores order by `created_at, id`, and a `Map` preserves exactly that.
|
|
35
|
+
* `secrets` is separate from the records for the same reason the stores keep
|
|
36
|
+
* the secret in its own column: a record handed to a caller can then never
|
|
37
|
+
* carry it, whatever the caller does with it.
|
|
38
|
+
*/
|
|
39
|
+
const subscriptions = new Map();
|
|
40
|
+
const secrets = new Map();
|
|
41
|
+
/** Firing log per subscription id, newest last; bounded on write. */
|
|
42
|
+
const firings = new Map();
|
|
43
|
+
let subscriptionSeq = 0;
|
|
21
44
|
const forSession = (sid) => events
|
|
22
45
|
.filter((e) => e.projectId === projectId && e.sessionId === sid)
|
|
23
46
|
.sort((a, b) => a.ts - b.ts);
|
|
@@ -27,7 +50,37 @@ export function createMemoryStore({ projectId, apiKey, capabilities = ["query"],
|
|
|
27
50
|
return typeof s === "string" && s.length > 0 ? s : "default";
|
|
28
51
|
};
|
|
29
52
|
const inRange = (e, opts) => (opts.since == null || e.ts >= opts.since) && (opts.until == null || e.ts < opts.until);
|
|
53
|
+
/**
|
|
54
|
+
* Project a captured event onto the promoted columns an insight bucket
|
|
55
|
+
* measure reads (ADR 0051 §4). `toEventRow` is the same mapping the
|
|
56
|
+
* persistent stores insert through, so the in-memory series is computed from
|
|
57
|
+
* the same columns the SQL series is — the one payload field a measure needs
|
|
58
|
+
* (`ar_placement.scale`) is lifted alongside it.
|
|
59
|
+
*/
|
|
60
|
+
const toBucketEvent = (e) => {
|
|
61
|
+
const row = toEventRow(e);
|
|
62
|
+
const scale = e.scale;
|
|
63
|
+
return {
|
|
64
|
+
ts: e.ts,
|
|
65
|
+
event_type: row.event_type,
|
|
66
|
+
scene_id: row.scene_id,
|
|
67
|
+
session_id: row.session_id,
|
|
68
|
+
mesh: row.mesh,
|
|
69
|
+
name: row.name,
|
|
70
|
+
source: row.source,
|
|
71
|
+
fps: row.fps,
|
|
72
|
+
visible_ms: row.visible_ms,
|
|
73
|
+
js_heap_bytes: row.js_heap_bytes,
|
|
74
|
+
long_frames: row.long_frames,
|
|
75
|
+
position: row.position,
|
|
76
|
+
direction: row.direction,
|
|
77
|
+
hit_point: row.hit_point,
|
|
78
|
+
screen: row.screen,
|
|
79
|
+
...(typeof scale === "number" ? { ar_placement_scale: scale } : {}),
|
|
80
|
+
};
|
|
81
|
+
};
|
|
30
82
|
return {
|
|
83
|
+
engine: "memory",
|
|
31
84
|
resolveApiKey: async (key) => key === apiKey
|
|
32
85
|
? { projectId, keyId, capabilities: [...capabilities], label: null, rateLimit: null }
|
|
33
86
|
: null,
|
|
@@ -61,6 +114,16 @@ export function createMemoryStore({ projectId, apiKey, capabilities = ["query"],
|
|
|
61
114
|
insertEvents: async (incoming) => {
|
|
62
115
|
events.push(...incoming);
|
|
63
116
|
},
|
|
117
|
+
// The query DSL (ADR 0051 §3) compiles to SQL, and this store has no SQL
|
|
118
|
+
// engine — it answers a handful of aggregates by walking the array above.
|
|
119
|
+
// Rather than grow a second, JavaScript re-implementation of seventy
|
|
120
|
+
// builders that could silently disagree with the real ones, it reports no
|
|
121
|
+
// rows, exactly as the spatial aggregates below already do. Use the DuckDB
|
|
122
|
+
// store (the OSS default) for the DSL.
|
|
123
|
+
runMetric: async () => [],
|
|
124
|
+
// No SQL is compiled here, so there is no plan to show; `explain` falls back
|
|
125
|
+
// to the registry-derived warnings (#304).
|
|
126
|
+
describeMetric: () => null,
|
|
64
127
|
listSessions: async () => {
|
|
65
128
|
const bySession = new Map();
|
|
66
129
|
for (const e of events) {
|
|
@@ -143,6 +206,39 @@ export function createMemoryStore({ projectId, apiKey, capabilities = ["query"],
|
|
|
143
206
|
trackingQuality: async () => [],
|
|
144
207
|
interactionsBySource: async () => [],
|
|
145
208
|
topInputActions: async () => [],
|
|
209
|
+
// Discovered custom-event vocabulary (ADR 0051 §5). Implemented here (unlike
|
|
210
|
+
// the heavier spatial aggregates) because the playground and the demo run on
|
|
211
|
+
// this store, and an empty vocabulary would make their project context
|
|
212
|
+
// document silently wrong about what the app emits.
|
|
213
|
+
customEventVocabulary: async (_projectId, opts = {}) => {
|
|
214
|
+
const limit = Math.min(opts.limit ?? 100, 200);
|
|
215
|
+
const sampleRows = Math.min(opts.sampleRows ?? 20, 100);
|
|
216
|
+
const byName = new Map();
|
|
217
|
+
for (const e of forProject()) {
|
|
218
|
+
if (e.type !== "custom" || !inRange(e, opts))
|
|
219
|
+
continue;
|
|
220
|
+
if (opts.scene != null && opts.scene.length > 0 && sceneOf(e) !== opts.scene)
|
|
221
|
+
continue;
|
|
222
|
+
const name = e.name;
|
|
223
|
+
if (typeof name !== "string" || name.length === 0)
|
|
224
|
+
continue;
|
|
225
|
+
const list = byName.get(name) ?? [];
|
|
226
|
+
list.push(e);
|
|
227
|
+
byName.set(name, list);
|
|
228
|
+
}
|
|
229
|
+
const samples = [];
|
|
230
|
+
const ranked = [...byName.entries()]
|
|
231
|
+
.sort((a, b) => b[1].length - a[1].length || (a[0] < b[0] ? -1 : 1))
|
|
232
|
+
.slice(0, limit);
|
|
233
|
+
for (const [name, list] of ranked) {
|
|
234
|
+
const sessions = new Set(list.map((e) => e.sessionId)).size;
|
|
235
|
+
const recent = [...list].sort((a, b) => b.ts - a.ts).slice(0, sampleRows);
|
|
236
|
+
for (const event of recent) {
|
|
237
|
+
samples.push({ name, count: list.length, sessions, sample_payload: event });
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return foldCustomEventVocabulary(samples);
|
|
241
|
+
},
|
|
146
242
|
scenes: async (_projectId, opts = {}) => {
|
|
147
243
|
const map = new Map();
|
|
148
244
|
for (const e of forProject()) {
|
|
@@ -189,7 +285,11 @@ export function createMemoryStore({ projectId, apiKey, capabilities = ["query"],
|
|
|
189
285
|
.map(([bucket, v]) => ({
|
|
190
286
|
bucket,
|
|
191
287
|
events: v.events,
|
|
192
|
-
|
|
288
|
+
// `null`, not `0`: a bucket can carry traffic and no `frame_perf`
|
|
289
|
+
// sample at all, and an average over nothing is absent. The SQL
|
|
290
|
+
// stores report SQL-NULL here and the registry declares the column
|
|
291
|
+
// `numOrNull` — this store must not be the odd one out.
|
|
292
|
+
avg_fps: v.fpsCount > 0 ? v.fpsSum / v.fpsCount : null,
|
|
193
293
|
}))
|
|
194
294
|
.sort((a, b) => a.bucket - b.bucket);
|
|
195
295
|
},
|
|
@@ -206,6 +306,12 @@ export function createMemoryStore({ projectId, apiKey, capabilities = ["query"],
|
|
|
206
306
|
.map(([event_type, count]) => ({ event_type, count }))
|
|
207
307
|
.sort((a, b) => b.count - a.count);
|
|
208
308
|
},
|
|
309
|
+
// The bucket series behind `baseline` and `movers` (ADR 0051 §4). The
|
|
310
|
+
// persistent stores render the declarative measure to SQL; here the same
|
|
311
|
+
// measure is evaluated over the in-memory events, so the insight endpoints
|
|
312
|
+
// answer in the playground and the E2E harness rather than reporting an
|
|
313
|
+
// empty series — which would read as "no data", a different claim.
|
|
314
|
+
metricBuckets: async (_projectId, opts) => evaluateBucketMeasure(forProject().map(toBucketEvent), opts),
|
|
209
315
|
funnel: async (_projectId, opts) => {
|
|
210
316
|
const steps = opts.steps ?? [];
|
|
211
317
|
if (steps.length === 0)
|
|
@@ -457,10 +563,217 @@ export function createMemoryStore({ projectId, apiKey, capabilities = ["query"],
|
|
|
457
563
|
listSceneRegions: async () => [...regions.entries()]
|
|
458
564
|
.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
|
|
459
565
|
.flatMap(([sceneId, set]) => set.map((r) => ({ sceneId, regionId: r.regionId, label: r.label }))),
|
|
566
|
+
// --- Project metadata (#310, ADR 0051 §5) ------------------------------
|
|
567
|
+
// Same semantics as the persistent stores — per-project caps, newest-first
|
|
568
|
+
// ordering, overlap filtering, `MetadataLimitError` when a table is full —
|
|
569
|
+
// so an E2E run against this store exercises the real contract.
|
|
570
|
+
createAnnotation: async (_projectId, input) => {
|
|
571
|
+
if (annotations.length >= METADATA_LIMITS.annotations) {
|
|
572
|
+
throw new MetadataLimitError("annotations", METADATA_LIMITS.annotations);
|
|
573
|
+
}
|
|
574
|
+
const now = new Date();
|
|
575
|
+
const { annotation } = input;
|
|
576
|
+
const record = {
|
|
577
|
+
id: randomUUID(),
|
|
578
|
+
projectId,
|
|
579
|
+
targetKind: annotation.targetKind,
|
|
580
|
+
targetId: annotation.targetId ?? null,
|
|
581
|
+
since: annotation.since == null ? null : new Date(annotation.since),
|
|
582
|
+
until: annotation.until == null ? null : new Date(annotation.until),
|
|
583
|
+
text: annotation.text,
|
|
584
|
+
authorKind: input.authorKind,
|
|
585
|
+
authorKeyId: input.authorKeyId,
|
|
586
|
+
createdAt: now,
|
|
587
|
+
updatedAt: now,
|
|
588
|
+
};
|
|
589
|
+
annotations.push(record);
|
|
590
|
+
return record;
|
|
591
|
+
},
|
|
592
|
+
listAnnotations: async (_projectId, opts = {}) => annotations
|
|
593
|
+
.filter((row) => opts.targetKind == null || row.targetKind === opts.targetKind)
|
|
594
|
+
.filter((row) => opts.targetId == null || row.targetId === opts.targetId)
|
|
595
|
+
.filter((row) => opts.since == null || row.until == null || row.until.getTime() >= opts.since)
|
|
596
|
+
.filter((row) => opts.until == null || row.since == null || row.since.getTime() < opts.until)
|
|
597
|
+
.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime())
|
|
598
|
+
.slice(0, clampMetadataLimit(opts.limit)),
|
|
599
|
+
deleteAnnotation: async (_projectId, id) => {
|
|
600
|
+
const index = annotations.findIndex((row) => row.id === id);
|
|
601
|
+
if (index < 0)
|
|
602
|
+
return false;
|
|
603
|
+
annotations.splice(index, 1);
|
|
604
|
+
return true;
|
|
605
|
+
},
|
|
606
|
+
putGlossaryEntry: async (_projectId, input) => {
|
|
607
|
+
const { term, meaning } = input.entry;
|
|
608
|
+
if (!glossary.has(term) && glossary.size >= METADATA_LIMITS.glossary) {
|
|
609
|
+
throw new MetadataLimitError("glossary", METADATA_LIMITS.glossary);
|
|
610
|
+
}
|
|
611
|
+
const record = { projectId, term, meaning, updatedAt: new Date() };
|
|
612
|
+
glossary.set(term, record);
|
|
613
|
+
return record;
|
|
614
|
+
},
|
|
615
|
+
listGlossary: async (_projectId, opts = {}) => [...glossary.values()]
|
|
616
|
+
.sort((a, b) => (a.term < b.term ? -1 : a.term > b.term ? 1 : 0))
|
|
617
|
+
.slice(0, clampMetadataLimit(opts.limit, METADATA_LIMITS.glossary, METADATA_LIMITS.glossary)),
|
|
618
|
+
deleteGlossaryEntry: async (_projectId, term) => glossary.delete(term),
|
|
619
|
+
createSavedAnalysis: async (_projectId, input) => {
|
|
620
|
+
if (analyses.length >= METADATA_LIMITS.savedAnalyses) {
|
|
621
|
+
throw new MetadataLimitError("savedAnalyses", METADATA_LIMITS.savedAnalyses);
|
|
622
|
+
}
|
|
623
|
+
const { analysis } = input;
|
|
624
|
+
const record = {
|
|
625
|
+
id: randomUUID(),
|
|
626
|
+
projectId,
|
|
627
|
+
title: analysis.title,
|
|
628
|
+
query: analysis.query,
|
|
629
|
+
conclusion: analysis.conclusion ?? null,
|
|
630
|
+
authorKind: input.authorKind,
|
|
631
|
+
authorKeyId: input.authorKeyId,
|
|
632
|
+
createdAt: new Date(),
|
|
633
|
+
};
|
|
634
|
+
analyses.push(record);
|
|
635
|
+
return record;
|
|
636
|
+
},
|
|
637
|
+
listSavedAnalyses: async (_projectId, opts = {}) => [...analyses]
|
|
638
|
+
.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime())
|
|
639
|
+
.slice(0, clampMetadataLimit(opts.limit)),
|
|
640
|
+
deleteSavedAnalysis: async (_projectId, id) => {
|
|
641
|
+
const index = analyses.findIndex((row) => row.id === id);
|
|
642
|
+
if (index < 0)
|
|
643
|
+
return false;
|
|
644
|
+
analyses.splice(index, 1);
|
|
645
|
+
return true;
|
|
646
|
+
},
|
|
647
|
+
// --- Declarative panel specs (#315, ADR 0051 §7) ---------------------
|
|
648
|
+
createPanelSpec: async (_projectId, input) => {
|
|
649
|
+
if (panelSpecs.length >= METADATA_LIMITS.panelSpecs) {
|
|
650
|
+
throw new MetadataLimitError("panelSpecs", METADATA_LIMITS.panelSpecs);
|
|
651
|
+
}
|
|
652
|
+
const now = new Date();
|
|
653
|
+
const record = {
|
|
654
|
+
id: randomUUID(),
|
|
655
|
+
projectId,
|
|
656
|
+
spec: input.spec,
|
|
657
|
+
authorKind: input.authorKind,
|
|
658
|
+
authorKeyId: input.authorKeyId,
|
|
659
|
+
createdAt: now,
|
|
660
|
+
updatedAt: now,
|
|
661
|
+
};
|
|
662
|
+
panelSpecs.push(record);
|
|
663
|
+
return record;
|
|
664
|
+
},
|
|
665
|
+
// Oldest first, which is insertion order — a pinned panel keeps its place.
|
|
666
|
+
listPanelSpecs: async (_projectId, opts = {}) => panelSpecs.slice(0, clampMetadataLimit(opts.limit, METADATA_LIMITS.panelSpecs, METADATA_LIMITS.panelSpecs)),
|
|
667
|
+
updatePanelSpec: async (_projectId, id, input) => {
|
|
668
|
+
const index = panelSpecs.findIndex((row) => row.id === id);
|
|
669
|
+
if (index < 0)
|
|
670
|
+
return null;
|
|
671
|
+
// The row keeps its id, its position and its original authorship — an
|
|
672
|
+
// edit is not a new pin.
|
|
673
|
+
const updated = {
|
|
674
|
+
...panelSpecs[index],
|
|
675
|
+
spec: input.spec,
|
|
676
|
+
updatedAt: new Date(),
|
|
677
|
+
};
|
|
678
|
+
panelSpecs[index] = updated;
|
|
679
|
+
return updated;
|
|
680
|
+
},
|
|
681
|
+
deletePanelSpec: async (_projectId, id) => {
|
|
682
|
+
const index = panelSpecs.findIndex((row) => row.id === id);
|
|
683
|
+
if (index < 0)
|
|
684
|
+
return false;
|
|
685
|
+
panelSpecs.splice(index, 1);
|
|
686
|
+
return true;
|
|
687
|
+
},
|
|
688
|
+
// --- Conditional subscriptions (#311, ADR 0051 §6) -------------------
|
|
689
|
+
listSubscriptions: async () => [...subscriptions.values()],
|
|
690
|
+
listEnabledSubscriptions: async (limit) => [...subscriptions.values()]
|
|
691
|
+
.filter((sub) => sub.enabled)
|
|
692
|
+
.slice(0, Math.max(1, Math.trunc(limit ?? MAX_ENABLED_SUBSCRIPTIONS))),
|
|
693
|
+
getSubscription: async (_projectId, id) => subscriptions.get(id) ?? null,
|
|
694
|
+
createSubscription: async (_projectId, sub) => {
|
|
695
|
+
if (subscriptions.size >= MAX_SUBSCRIPTIONS_PER_PROJECT)
|
|
696
|
+
throw new SubscriptionLimitError();
|
|
697
|
+
const id = `sub_mem_${++subscriptionSeq}`;
|
|
698
|
+
const cols = toSubscriptionColumns(sub);
|
|
699
|
+
const now = Date.now();
|
|
700
|
+
// Round-trip through the shared row mapper rather than hand-building the
|
|
701
|
+
// record, so the in-memory store cannot drift from the four SQL stores
|
|
702
|
+
// (masking included).
|
|
703
|
+
const record = rowToSubscription({
|
|
704
|
+
id,
|
|
705
|
+
project_id: projectId,
|
|
706
|
+
name: cols.name,
|
|
707
|
+
metric: cols.metric,
|
|
708
|
+
config: cols.config,
|
|
709
|
+
enabled: cols.enabled,
|
|
710
|
+
created_at_ms: now,
|
|
711
|
+
updated_at_ms: now,
|
|
712
|
+
last_fired_at_ms: null,
|
|
713
|
+
last_error: null,
|
|
714
|
+
failures: 0,
|
|
715
|
+
});
|
|
716
|
+
subscriptions.set(id, record);
|
|
717
|
+
if (cols.webhookSecret != null)
|
|
718
|
+
secrets.set(id, cols.webhookSecret);
|
|
719
|
+
return record;
|
|
720
|
+
},
|
|
721
|
+
setSubscriptionEnabled: async (_projectId, id, enabled) => {
|
|
722
|
+
const existing = subscriptions.get(id);
|
|
723
|
+
if (existing == null)
|
|
724
|
+
return null;
|
|
725
|
+
const updated = { ...existing, enabled, updatedAt: new Date() };
|
|
726
|
+
subscriptions.set(id, updated);
|
|
727
|
+
return updated;
|
|
728
|
+
},
|
|
729
|
+
deleteSubscription: async (_projectId, id) => {
|
|
730
|
+
secrets.delete(id);
|
|
731
|
+
firings.delete(id);
|
|
732
|
+
return subscriptions.delete(id);
|
|
733
|
+
},
|
|
734
|
+
recordSubscriptionOutcome: async (_projectId, id, outcome) => {
|
|
735
|
+
const existing = subscriptions.get(id);
|
|
736
|
+
if (existing == null)
|
|
737
|
+
return;
|
|
738
|
+
subscriptions.set(id, {
|
|
739
|
+
...existing,
|
|
740
|
+
updatedAt: new Date(),
|
|
741
|
+
lastFiredAt: outcome.firedAt ?? existing.lastFiredAt,
|
|
742
|
+
lastError: outcome.lastError === undefined
|
|
743
|
+
? existing.lastError
|
|
744
|
+
: outcome.lastError == null
|
|
745
|
+
? null
|
|
746
|
+
: clampSubscriptionError(outcome.lastError),
|
|
747
|
+
failures: outcome.failures ?? existing.failures,
|
|
748
|
+
});
|
|
749
|
+
},
|
|
750
|
+
getWebhookSecret: async (_projectId, id) => secrets.get(id) ?? null,
|
|
751
|
+
recordSubscriptionEvent: async (entry) => {
|
|
752
|
+
const log = firings.get(entry.subscriptionId) ?? [];
|
|
753
|
+
log.push({
|
|
754
|
+
id: randomUUID(),
|
|
755
|
+
subscriptionId: entry.subscriptionId,
|
|
756
|
+
projectId: entry.projectId,
|
|
757
|
+
at: entry.at ?? new Date(),
|
|
758
|
+
payload: entry.payload,
|
|
759
|
+
});
|
|
760
|
+
// Same bound as every persistent store: the oldest fall off the front.
|
|
761
|
+
while (log.length > MAX_SUBSCRIPTION_EVENTS)
|
|
762
|
+
log.shift();
|
|
763
|
+
firings.set(entry.subscriptionId, log);
|
|
764
|
+
},
|
|
765
|
+
listSubscriptionEvents: async (_projectId, id, opts) => [...(firings.get(id) ?? [])].reverse().slice(0, clampEventLimit(opts?.limit)),
|
|
460
766
|
close: async () => {
|
|
461
767
|
events.length = 0;
|
|
462
768
|
representations.clear();
|
|
463
769
|
regions.clear();
|
|
770
|
+
annotations.length = 0;
|
|
771
|
+
glossary.clear();
|
|
772
|
+
analyses.length = 0;
|
|
773
|
+
panelSpecs.length = 0;
|
|
774
|
+
subscriptions.clear();
|
|
775
|
+
secrets.clear();
|
|
776
|
+
firings.clear();
|
|
464
777
|
},
|
|
465
778
|
};
|
|
466
779
|
}
|
package/dist/memoryStore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryStore.js","sourceRoot":"","sources":["../src/memoryStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memoryStore.js","sourceRoot":"","sources":["../src/memoryStore.ts"],"names":[],"mappings":"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"}
|
package/dist/mssqlStore.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mssqlStore.d.ts","sourceRoot":"","sources":["../src/mssqlStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mssqlStore.d.ts","sourceRoot":"","sources":["../src/mssqlStore.ts"],"names":[],"mappings":"AAwLA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,cAAc,CAAC,CAsPhE"}
|
package/dist/mssqlStore.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { buildCameraDirectionHeatmap, buildViewCoverageHistogram, buildCameraDistance, buildCameraPositionHeatmap, buildClickGazeRay, buildDeadClicks, buildRageClicks, buildHoverDwell, buildCompileStalls, buildArPlacementTimeToPlace, buildArPlacementAttempts, buildArPlacementSurfaces, buildResourceSummary, buildCapabilityChanges, buildCameraGestures, buildDistinctScenes, buildEventTypeCounts, buildFlowHeatmap, buildFunnel, buildSceneRetention, buildLoadBounceFunnel, buildVariantLeaderboard, buildListSessions, buildNavigationStats, buildBacktrackRatio, buildXrRotationRate, buildXrSourceUsage, buildXrAbandonment, buildXrLocomotionComfort, buildTrackingQuality, buildInteractionsBySource, buildMeshDwell, buildMeshBlindSpots, buildMeshInteractionKinds, buildReachability, buildPerfSummary, buildPerfDistribution, buildFpsHistogram, buildFrameTimePercentiles, buildJankRate, buildPerfChurn, buildPerfByDevice, buildPerfByScene, buildResourcePercentiles, buildStabilityCounts, buildGraphicsDiagnosticCounts, buildErrorHeatmap, buildBoundaryHeatmap, buildBoundaryHeatmapStats, buildBoundaryContacts, buildRenderingTechnology, buildPointerHeatmap, buildMeshUvHeatmap, buildSceneCoverage, buildPerfHeatmap, buildSessionTrajectory, buildAggregateTrajectories, buildRenderScaleTruth, buildTimeseries, buildTopMeshes, buildTopMeshesBySource, buildTopMeshesTrend, buildTopInputActions, buildWorldHeatmap, buildWorldHeatmapStats, buildGazeHeatmap, buildGazeHeatmapStats, mssqlDialect, readDbSettings, } from "@uptimizr/db";
|
|
2
|
-
import { createMssqlClient, ensureMssqlDatabase, migrateMssql, resolveMssqlConfig, runMssqlQuery, insertEvents as msInsertEvents, getSessionEvents as msGetSessionEvents, streamSessionEvents as msStreamSessionEvents, getSessionMeta as msGetSessionMeta, getProject as msGetProject, resolveApiKey as msResolveApiKey, recordAudit as msRecordAudit, listAudit as msListAudit, pruneAudit as msPruneAudit, upsertSceneProxy as msUpsertSceneProxy, getSceneRepresentation as msGetSceneRepresentation, listSceneRepresentations as msListSceneRepresentations, putSceneRegions as msPutSceneRegions, getSceneRegions as msGetSceneRegions, listSceneRegions as msListSceneRegions, } from "@uptimizr/db-mssql";
|
|
1
|
+
import { buildCameraDirectionHeatmap, buildViewCoverageHistogram, buildCameraDistance, buildCameraPositionHeatmap, buildClickGazeRay, buildCustomEventVocabulary, buildDeadClicks, buildRageClicks, buildHoverDwell, buildCompileStalls, buildArPlacementTimeToPlace, buildArPlacementAttempts, buildArPlacementSurfaces, buildResourceSummary, buildCapabilityChanges, buildCameraGestures, buildDistinctScenes, buildEventTypeCounts, buildMetricBuckets, toMetricBucketRows, buildFlowHeatmap, buildFunnel, buildSceneRetention, buildLoadBounceFunnel, buildVariantLeaderboard, buildListSessions, buildNavigationStats, buildBacktrackRatio, buildXrRotationRate, buildXrSourceUsage, buildXrAbandonment, buildXrLocomotionComfort, buildTrackingQuality, buildInteractionsBySource, buildMeshDwell, buildMeshBlindSpots, buildMeshInteractionKinds, buildReachability, buildPerfSummary, buildPerfDistribution, buildFpsHistogram, buildFrameTimePercentiles, buildJankRate, buildPerfChurn, buildPerfByDevice, buildPerfByScene, buildResourcePercentiles, buildStabilityCounts, buildGraphicsDiagnosticCounts, buildErrorHeatmap, buildBoundaryHeatmap, buildBoundaryHeatmapStats, buildBoundaryContacts, buildRenderingTechnology, buildPointerHeatmap, buildMeshUvHeatmap, buildSceneCoverage, buildPerfHeatmap, buildSessionTrajectory, buildAggregateTrajectories, buildRenderScaleTruth, buildTimeseries, buildTopMeshes, buildTopMeshesBySource, buildTopMeshesTrend, buildTopInputActions, foldCustomEventVocabulary, buildWorldHeatmap, buildWorldHeatmapStats, buildGazeHeatmap, buildGazeHeatmapStats, mssqlDialect, compileMetric, readDbSettings, } from "@uptimizr/db";
|
|
2
|
+
import { createMssqlClient, ensureMssqlDatabase, migrateMssql, resolveMssqlConfig, runMssqlQuery, insertEvents as msInsertEvents, getSessionEvents as msGetSessionEvents, streamSessionEvents as msStreamSessionEvents, getSessionMeta as msGetSessionMeta, getProject as msGetProject, resolveApiKey as msResolveApiKey, recordAudit as msRecordAudit, listAudit as msListAudit, pruneAudit as msPruneAudit, upsertSceneProxy as msUpsertSceneProxy, getSceneRepresentation as msGetSceneRepresentation, listSceneRepresentations as msListSceneRepresentations, putSceneRegions as msPutSceneRegions, listSubscriptions as msListSubscriptions, listEnabledSubscriptions as msListEnabledSubscriptions, getSubscription as msGetSubscription, createSubscription as msCreateSubscription, setSubscriptionEnabled as msSetSubscriptionEnabled, deleteSubscription as msDeleteSubscription, recordSubscriptionOutcome as msRecordSubscriptionOutcome, getWebhookSecret as msGetWebhookSecret, recordSubscriptionEvent as msRecordSubscriptionEvent, listSubscriptionEvents as msListSubscriptionEvents, getSceneRegions as msGetSceneRegions, listSceneRegions as msListSceneRegions, createAnnotation as msCreateAnnotation, listAnnotations as msListAnnotations, deleteAnnotation as msDeleteAnnotation, putGlossaryEntry as msPutGlossaryEntry, listGlossary as msListGlossary, deleteGlossaryEntry as msDeleteGlossaryEntry, createSavedAnalysis as msCreateSavedAnalysis, listSavedAnalyses as msListSavedAnalyses, deleteSavedAnalysis as msDeleteSavedAnalysis, createPanelSpec as msCreatePanelSpec, listPanelSpecs as msListPanelSpecs, updatePanelSpec as msUpdatePanelSpec, deletePanelSpec as msDeletePanelSpec, } from "@uptimizr/db-mssql";
|
|
3
3
|
/**
|
|
4
4
|
* Optional single-tenant Microsoft SQL Server store (ADR 0020, #85): the
|
|
5
5
|
* relational, multi-writer path for self-hosters standardized on SQL Server /
|
|
@@ -27,12 +27,22 @@ export async function createMssqlStore() {
|
|
|
27
27
|
await migrateMssql(msc);
|
|
28
28
|
const d = mssqlDialect;
|
|
29
29
|
return {
|
|
30
|
+
engine: "mssql",
|
|
30
31
|
resolveApiKey: (key) => msResolveApiKey(msc, key),
|
|
31
32
|
recordAudit: (entry) => msRecordAudit(msc, entry),
|
|
32
33
|
listAudit: (projectId, opts) => msListAudit(msc, projectId, opts),
|
|
33
34
|
pruneAudit: (cutoffMs) => msPruneAudit(msc, cutoffMs),
|
|
34
35
|
projectExists: async (projectId) => (await msGetProject(msc, projectId)) !== null,
|
|
35
36
|
insertEvents: (events) => msInsertEvents(msc, [...events]),
|
|
37
|
+
// Query DSL v1 (ADR 0051 §3): any registry metric, compiled onto its own
|
|
38
|
+
// aggregation builder and run through the same SQL Server path — and therefore
|
|
39
|
+
// the same parity coverage and the same numeric coercion — as the canned
|
|
40
|
+
// aggregates below.
|
|
41
|
+
runMetric: (projectId, metric, options) => runMssqlQuery(msc, compileMetric(metric, projectId, options, d)),
|
|
42
|
+
describeMetric: (projectId, metric, options) => ({
|
|
43
|
+
dialect: d.name,
|
|
44
|
+
spec: compileMetric(metric, projectId, options, d),
|
|
45
|
+
}),
|
|
36
46
|
listSessions: (projectId, opts = {}) => runMssqlQuery(msc, buildListSessions(projectId, opts, d)),
|
|
37
47
|
pointerHeatmap: (projectId, opts = {}) => runMssqlQuery(msc, buildPointerHeatmap(projectId, opts, d)),
|
|
38
48
|
meshUvHeatmap: (projectId, opts = {}) => runMssqlQuery(msc, buildMeshUvHeatmap(projectId, opts, d)),
|
|
@@ -102,9 +112,18 @@ export async function createMssqlStore() {
|
|
|
102
112
|
trackingQuality: (projectId, opts = {}) => runMssqlQuery(msc, buildTrackingQuality(projectId, opts, d)),
|
|
103
113
|
interactionsBySource: (projectId, opts = {}) => runMssqlQuery(msc, buildInteractionsBySource(projectId, opts, d)),
|
|
104
114
|
topInputActions: (projectId, opts = {}) => runMssqlQuery(msc, buildTopInputActions(projectId, opts, d)),
|
|
115
|
+
// Discovered custom-event vocabulary (ADR 0051 §5): the SQL counts and
|
|
116
|
+
// samples, the pure fold turns the sampled payloads into prop types. The
|
|
117
|
+
// raw payload stops here and never reaches a route.
|
|
118
|
+
customEventVocabulary: async (projectId, opts = {}) => foldCustomEventVocabulary(await runMssqlQuery(msc, buildCustomEventVocabulary(projectId, opts, d))),
|
|
105
119
|
scenes: (projectId, opts = {}) => runMssqlQuery(msc, buildDistinctScenes(projectId, opts, d)),
|
|
106
120
|
timeseries: (projectId, opts = {}) => runMssqlQuery(msc, buildTimeseries(projectId, opts, d)),
|
|
107
121
|
eventTypeCounts: (projectId, opts = {}) => runMssqlQuery(msc, buildEventTypeCounts(projectId, opts, d)),
|
|
122
|
+
// The one bucket series behind `baseline` and `movers` (ADR 0051 §4). The
|
|
123
|
+
// spec carries no registry metric of its own, so the store edge has no row
|
|
124
|
+
// schema to coerce it against — `toMetricBucketRows` parses the numbers,
|
|
125
|
+
// which is what keeps the engines that string-encode 64-bit counts honest.
|
|
126
|
+
metricBuckets: async (projectId, opts) => toMetricBucketRows(await runMssqlQuery(msc, buildMetricBuckets(projectId, opts, d))),
|
|
108
127
|
funnel: (projectId, opts) => runMssqlQuery(msc, buildFunnel(projectId, opts, d)),
|
|
109
128
|
sceneRetention: (projectId, opts) => runMssqlQuery(msc, buildSceneRetention(projectId, opts, d)),
|
|
110
129
|
loadBounceFunnel: (projectId, opts = {}) => runMssqlQuery(msc, buildLoadBounceFunnel(projectId, opts, d)),
|
|
@@ -118,6 +137,29 @@ export async function createMssqlStore() {
|
|
|
118
137
|
putSceneRegions: (projectId, sceneId, regions) => msPutSceneRegions(msc, projectId, sceneId, regions),
|
|
119
138
|
getSceneRegions: (projectId, sceneId) => msGetSceneRegions(msc, projectId, sceneId),
|
|
120
139
|
listSceneRegions: (projectId) => msListSceneRegions(msc, projectId),
|
|
140
|
+
createAnnotation: (projectId, input) => msCreateAnnotation(msc, projectId, input),
|
|
141
|
+
listAnnotations: (projectId, opts) => msListAnnotations(msc, projectId, opts),
|
|
142
|
+
deleteAnnotation: (projectId, id) => msDeleteAnnotation(msc, projectId, id),
|
|
143
|
+
putGlossaryEntry: (projectId, input) => msPutGlossaryEntry(msc, projectId, input),
|
|
144
|
+
listGlossary: (projectId, opts) => msListGlossary(msc, projectId, opts),
|
|
145
|
+
deleteGlossaryEntry: (projectId, term) => msDeleteGlossaryEntry(msc, projectId, term),
|
|
146
|
+
createSavedAnalysis: (projectId, input) => msCreateSavedAnalysis(msc, projectId, input),
|
|
147
|
+
listSavedAnalyses: (projectId, opts) => msListSavedAnalyses(msc, projectId, opts),
|
|
148
|
+
deleteSavedAnalysis: (projectId, id) => msDeleteSavedAnalysis(msc, projectId, id),
|
|
149
|
+
createPanelSpec: (projectId, input) => msCreatePanelSpec(msc, projectId, input),
|
|
150
|
+
listPanelSpecs: (projectId, opts) => msListPanelSpecs(msc, projectId, opts),
|
|
151
|
+
updatePanelSpec: (projectId, id, input) => msUpdatePanelSpec(msc, projectId, id, input),
|
|
152
|
+
deletePanelSpec: (projectId, id) => msDeletePanelSpec(msc, projectId, id),
|
|
153
|
+
listSubscriptions: (projectId) => msListSubscriptions(msc, projectId),
|
|
154
|
+
listEnabledSubscriptions: (limit) => msListEnabledSubscriptions(msc, limit),
|
|
155
|
+
getSubscription: (projectId, id) => msGetSubscription(msc, projectId, id),
|
|
156
|
+
createSubscription: (projectId, sub) => msCreateSubscription(msc, projectId, sub),
|
|
157
|
+
setSubscriptionEnabled: (projectId, id, enabled) => msSetSubscriptionEnabled(msc, projectId, id, enabled),
|
|
158
|
+
deleteSubscription: (projectId, id) => msDeleteSubscription(msc, projectId, id),
|
|
159
|
+
recordSubscriptionOutcome: (projectId, id, outcome) => msRecordSubscriptionOutcome(msc, projectId, id, outcome),
|
|
160
|
+
getWebhookSecret: (projectId, id) => msGetWebhookSecret(msc, projectId, id),
|
|
161
|
+
recordSubscriptionEvent: (entry) => msRecordSubscriptionEvent(msc, entry),
|
|
162
|
+
listSubscriptionEvents: (projectId, id, opts) => msListSubscriptionEvents(msc, projectId, id, opts),
|
|
121
163
|
async close() {
|
|
122
164
|
await msc.close();
|
|
123
165
|
},
|