@rudderhq/server 0.7.0 → 0.7.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/bootstrap/register-api-routes.js +1 -1
- package/dist/bootstrap/register-api-routes.js.map +1 -1
- package/dist/bundled-plugins/plugin-linear/dist/worker.js +3 -1
- package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
- package/dist/product-analytics-collector-config.d.ts +33 -0
- package/dist/product-analytics-collector-config.d.ts.map +1 -0
- package/dist/product-analytics-collector-config.js +67 -0
- package/dist/product-analytics-collector-config.js.map +1 -0
- package/dist/product-analytics-collector-server.d.ts +26 -0
- package/dist/product-analytics-collector-server.d.ts.map +1 -0
- package/dist/product-analytics-collector-server.js +150 -0
- package/dist/product-analytics-collector-server.js.map +1 -0
- package/dist/routes/instance-settings.d.ts +1 -0
- package/dist/routes/instance-settings.d.ts.map +1 -1
- package/dist/routes/instance-settings.js +58 -0
- package/dist/routes/instance-settings.js.map +1 -1
- package/dist/routes/product-analytics-collector-report.d.ts +7 -0
- package/dist/routes/product-analytics-collector-report.d.ts.map +1 -0
- package/dist/routes/product-analytics-collector-report.js +159 -0
- package/dist/routes/product-analytics-collector-report.js.map +1 -0
- package/dist/routes/product-analytics-collector.d.ts +14 -2
- package/dist/routes/product-analytics-collector.d.ts.map +1 -1
- package/dist/routes/product-analytics-collector.js +141 -4
- package/dist/routes/product-analytics-collector.js.map +1 -1
- package/dist/routes/product-analytics.d.ts.map +1 -1
- package/dist/routes/product-analytics.js +40 -3
- package/dist/routes/product-analytics.js.map +1 -1
- package/dist/services/instance-settings.d.ts.map +1 -1
- package/dist/services/instance-settings.js +4 -0
- package/dist/services/instance-settings.js.map +1 -1
- package/dist/services/product-analytics-collector-maintenance.d.ts +25 -0
- package/dist/services/product-analytics-collector-maintenance.d.ts.map +1 -0
- package/dist/services/product-analytics-collector-maintenance.js +309 -0
- package/dist/services/product-analytics-collector-maintenance.js.map +1 -0
- package/dist/services/product-analytics-collector-maintenance.test.d.ts +2 -0
- package/dist/services/product-analytics-collector-maintenance.test.d.ts.map +1 -0
- package/dist/services/product-analytics-collector-maintenance.test.js +14 -0
- package/dist/services/product-analytics-collector-maintenance.test.js.map +1 -0
- package/dist/services/product-analytics-collector.d.ts +75 -3
- package/dist/services/product-analytics-collector.d.ts.map +1 -1
- package/dist/services/product-analytics-collector.js +363 -12
- package/dist/services/product-analytics-collector.js.map +1 -1
- package/dist/services/product-analytics-collector.test.js +25 -0
- package/dist/services/product-analytics-collector.test.js.map +1 -1
- package/dist/services/product-analytics-fixture.d.ts +7 -0
- package/dist/services/product-analytics-fixture.d.ts.map +1 -0
- package/dist/services/product-analytics-fixture.js +65 -0
- package/dist/services/product-analytics-fixture.js.map +1 -0
- package/dist/services/product-analytics-prd-gates.test.d.ts +2 -0
- package/dist/services/product-analytics-prd-gates.test.d.ts.map +1 -0
- package/dist/services/product-analytics-prd-gates.test.js +135 -0
- package/dist/services/product-analytics-prd-gates.test.js.map +1 -0
- package/dist/services/product-analytics.d.ts +17 -5
- package/dist/services/product-analytics.d.ts.map +1 -1
- package/dist/services/product-analytics.js +94 -12
- package/dist/services/product-analytics.js.map +1 -1
- package/package.json +17 -14
- package/ui-dist/assets/{LibraryLiveSurface-DeUIV5N_.js → LibraryLiveSurface-CZED7oKj.js} +1 -1
- package/ui-dist/assets/{abnfDiagram-VRR7QNED-BaoLM9Pd.js → abnfDiagram-VRR7QNED-BoPyIoAq.js} +1 -1
- package/ui-dist/assets/{arc-Cx0L6o2z.js → arc-DTYs4RCH.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-zVfZP7v4.js → architectureDiagram-ZJ3FMSHR-BGfp2S_3.js} +1 -1
- package/ui-dist/assets/{blockDiagram-677ZJIJ3-BiWWFP9R.js → blockDiagram-677ZJIJ3-aW0EGIUf.js} +1 -1
- package/ui-dist/assets/{c4Diagram-LMCZKHZV-CX65GSJ6.js → c4Diagram-LMCZKHZV--1itKgA2.js} +1 -1
- package/ui-dist/assets/channel-DLNwhPnC.js +1 -0
- package/ui-dist/assets/{chunk-2Q5K7J3B-CH6PlelX.js → chunk-2Q5K7J3B-ZIqIozPQ.js} +1 -1
- package/ui-dist/assets/{chunk-32BRIVSS-C7ZEXYO8.js → chunk-32BRIVSS-DiwBEZVQ.js} +1 -1
- package/ui-dist/assets/{chunk-5VM5RSS4-CyInWuue.js → chunk-5VM5RSS4-CLOrTmL8.js} +1 -1
- package/ui-dist/assets/{chunk-EX3LRPZG-D58qFIdM.js → chunk-EX3LRPZG-D6xZzF47.js} +1 -1
- package/ui-dist/assets/{chunk-JWPE2WC7-CJ3Qx30f.js → chunk-JWPE2WC7-B9tYvTZl.js} +1 -1
- package/ui-dist/assets/{chunk-MOJQB5TN-BO4bKVLH.js → chunk-MOJQB5TN-D_qo-SzM.js} +1 -1
- package/ui-dist/assets/{chunk-RYQCIY6F-DxBmxcYc.js → chunk-RYQCIY6F-ChPHGc2P.js} +1 -1
- package/ui-dist/assets/{chunk-V7JOEXUC-Chdnd6Lq.js → chunk-V7JOEXUC-Dk6GbZYp.js} +1 -1
- package/ui-dist/assets/{chunk-VR4S4FIN-GkW_x_pD.js → chunk-VR4S4FIN-B6AREC1T.js} +1 -1
- package/ui-dist/assets/{chunk-XXDRQBXY-BJyBGcSF.js → chunk-XXDRQBXY-CUyO-JUr.js} +1 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-JsIc-rlc.js +1 -0
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-JsIc-rlc.js +1 -0
- package/ui-dist/assets/{cose-bilkent-JH36ORCC-BWP2r8TX.js → cose-bilkent-JH36ORCC-BCxIInLZ.js} +1 -1
- package/ui-dist/assets/{cynefin-VYW2F7L2-C08dfI3w.js → cynefin-VYW2F7L2-DqsnpnHA.js} +1 -1
- package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-h6dXjTaO.js → cynefinDiagram-TSTJHNR4-BD7QQNLW.js} +1 -1
- package/ui-dist/assets/{dagre-VKFMJZFB-CWDgoFQD.js → dagre-VKFMJZFB-DaE160f7.js} +1 -1
- package/ui-dist/assets/{diagram-FQU43EPY-CK1j48d-.js → diagram-FQU43EPY-DZ0c59y8.js} +1 -1
- package/ui-dist/assets/{diagram-G47NLZAW-CoSiG57q.js → diagram-G47NLZAW-C_413g5E.js} +1 -1
- package/ui-dist/assets/{diagram-NH7WQ7WH-DRG-xXGQ.js → diagram-NH7WQ7WH-D_o9pXB-.js} +1 -1
- package/ui-dist/assets/{diagram-OA4YK3LP-D04mMwYs.js → diagram-OA4YK3LP-BI2xMqiW.js} +1 -1
- package/ui-dist/assets/{diagram-WEI45ONY-ZkC1ZQMq.js → diagram-WEI45ONY-hhM8R_14.js} +1 -1
- package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-BxMIw9PZ.js → ebnfDiagram-CCIWWBDH-DfFgEtmG.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q63AITRT-B4Zwbn84.js → erDiagram-Q63AITRT-CCw4ysHK.js} +1 -1
- package/ui-dist/assets/{flowDiagram-23GEKE2U-D5pYz8Px.js → flowDiagram-23GEKE2U-CzC1SMmo.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-NO4QXBWP-RSramodc.js → ganttDiagram-NO4QXBWP-CbPJIrIw.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-BFQfCkMd.js → gitGraphDiagram-IHSO6WYX-jCxJ66_C.js} +1 -1
- package/ui-dist/assets/{graph-DuSS8poS.js → graph-BfNZ9Jzj.js} +1 -1
- package/ui-dist/assets/{index-DRbt_Svi.js → index-B3h9Vdxx.js} +1 -1
- package/ui-dist/assets/{index-9U78M9Np.js → index-B8q4cbOz.js} +1 -1
- package/ui-dist/assets/{index-olsHIcXs.js → index-BE1vSI6a.js} +1 -1
- package/ui-dist/assets/{index-B-NP8fOI.js → index-BKn4zRjf.js} +1 -1
- package/ui-dist/assets/{index-BKXUkeeU.js → index-BULll2e0.js} +1 -1
- package/ui-dist/assets/{index-BpvytaKr.js → index-BjxRqzZK.js} +1 -1
- package/ui-dist/assets/{index-Cyq94-QT.js → index-Bwo-C8W5.js} +1 -1
- package/ui-dist/assets/{index-BADa8mxG.js → index-ByUFNj0O.js} +1 -1
- package/ui-dist/assets/{index-CHbXMgL0.js → index-Chop-Dpa.js} +1 -1
- package/ui-dist/assets/{index-BU0KLNTt.js → index-Ck-ZNQeD.js} +541 -528
- package/ui-dist/assets/index-CxPYXL3t.css +1 -0
- package/ui-dist/assets/{index-wZlfBtwh.js → index-D00XdcOq.js} +1 -1
- package/ui-dist/assets/{index-BGcgy63z.js → index-D_K-9VDs.js} +1 -1
- package/ui-dist/assets/{index-DzdRgH-y.js → index-DiMDROQY.js} +1 -1
- package/ui-dist/assets/{index-5tzBDABj.js → index-DmjAbzHq.js} +1 -1
- package/ui-dist/assets/{index-De3vaw_P.js → index-SkHIC7Ma.js} +1 -1
- package/ui-dist/assets/{infoDiagram-FWYZ7A6U-f5i4pO3J.js → infoDiagram-FWYZ7A6U-BkDimGw3.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-CVEdv5i_.js → ishikawaDiagram-FXEZZL3T-BAyUfn6x.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-5HDEW3XC-Cvp7vWcy.js → journeyDiagram-5HDEW3XC-DlbpTZHG.js} +1 -1
- package/ui-dist/assets/{kanban-definition-HUTT4EX6-C6dURjjK.js → kanban-definition-HUTT4EX6-Cd67S14K.js} +1 -1
- package/ui-dist/assets/{layout-DxdOu9MY.js → layout-Dc4YEiCC.js} +1 -1
- package/ui-dist/assets/{linear-CRi8RB_7.js → linear-BhRsbD_5.js} +1 -1
- package/ui-dist/assets/{map-BlpDrw_l.js → map-CEWybj6z.js} +1 -1
- package/ui-dist/assets/{mermaid.core-2Gz9YusH.js → mermaid.core-CqqAFYNg.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-LN4V7U3C-BmSjJLTI.js → mindmap-definition-LN4V7U3C-CCb-XmEi.js} +1 -1
- package/ui-dist/assets/{pegDiagram-2B236MQR-BTUboUw8.js → pegDiagram-2B236MQR-CqUV14VZ.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ENE6RG2P-CVPP8SYv.js → pieDiagram-ENE6RG2P-Dn_M_GRM.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-BG4FmirT.js → quadrantDiagram-ABIIQ3AL-rAEhJDr2.js} +1 -1
- package/ui-dist/assets/{railroadDiagram-RFXS5EU6-DFRNo9hF.js → railroadDiagram-RFXS5EU6-iE2o_jkH.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-TGXJPOKE-DpnVF9qP.js → requirementDiagram-TGXJPOKE-BFyKBR1h.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-D1ETFdSE.js → sankeyDiagram-HTMAVEWB-DRa_2YB6.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-CNqzB_AL.js → sequenceDiagram-DBY2YBRQ-BG8VIjD7.js} +1 -1
- package/ui-dist/assets/{sizeCapture-X5ZJPWSS-DuoMCjdH.js → sizeCapture-X5ZJPWSS-CS1xlbzG.js} +1 -1
- package/ui-dist/assets/{stateDiagram-2N3HPSRC-fmHeKL8l.js → stateDiagram-2N3HPSRC-BSl2RUJ1.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-DUVNSzI8.js +1 -0
- package/ui-dist/assets/{swimlanes-5IMT3BWC-hjosaIhT.js → swimlanes-5IMT3BWC-BT8Hrm9J.js} +2 -2
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-DfLFj7sh.js +8 -0
- package/ui-dist/assets/{timeline-definition-FHXFAJF6-xoMEClc-.js → timeline-definition-FHXFAJF6-CfYIqEuQ.js} +1 -1
- package/ui-dist/assets/{vennDiagram-L72KCM5P-sdSXQfX-.js → vennDiagram-L72KCM5P-C8zBH7o9.js} +1 -1
- package/ui-dist/assets/{wardleyDiagram-EHGQE667-BbQBSKlD.js → wardleyDiagram-EHGQE667-D5HyFfI9.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-FW5EYKEG-BfAtadyK.js → xychartDiagram-FW5EYKEG-CGItJmLx.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/ui-dist/assets/channel-CHc3ibOz.js +0 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-9iLZpz3t.js +0 -1
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-9iLZpz3t.js +0 -1
- package/ui-dist/assets/index-QrRs-r-4.css +0 -1
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-DajAVikh.js +0 -1
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-DJjG9OJ-.js +0 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-analytics-collector-report.js","sourceRoot":"","sources":["../../src/routes/product-analytics-collector-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import { type Request } from "express";
|
|
2
|
-
import type { ProductAnalyticsCollector, ProductAnalyticsCollectorAuthorization } from "../services/product-analytics-collector.js";
|
|
2
|
+
import type { ProductAnalyticsCollector, ProductAnalyticsCollectorAuthorization, ProductAnalyticsPersistentCollector } from "../services/product-analytics-collector.js";
|
|
3
3
|
export type ProductAnalyticsCollectorAuthorizer = (req: Request) => ProductAnalyticsCollectorAuthorization | Promise<ProductAnalyticsCollectorAuthorization>;
|
|
4
|
+
/** Build the central authorizer for short-lived telemetry-scoped assertions. */
|
|
5
|
+
export declare function createProductAnalyticsAssertionAuthorizer(input: {
|
|
6
|
+
identityPublicKey: string | Buffer;
|
|
7
|
+
expectedKeyId: string;
|
|
8
|
+
expectedIssuer: string;
|
|
9
|
+
anonymousAuthorization?: string | null;
|
|
10
|
+
resolveInstallationId?: (req: Request) => string | null;
|
|
11
|
+
}): ProductAnalyticsCollectorAuthorizer;
|
|
4
12
|
/**
|
|
5
13
|
* Private collector boundary. It is intentionally not mounted on the local
|
|
6
14
|
* Rudder app; the central telemetry deployment supplies the authorizer and
|
|
7
15
|
* central store when it hosts this router.
|
|
8
16
|
*/
|
|
9
|
-
export declare function productAnalyticsCollectorRoutes(collector: ProductAnalyticsCollector, authorize: ProductAnalyticsCollectorAuthorizer
|
|
17
|
+
export declare function productAnalyticsCollectorRoutes(collector: ProductAnalyticsCollector | ProductAnalyticsPersistentCollector, authorize: ProductAnalyticsCollectorAuthorizer, options?: {
|
|
18
|
+
anonymousAuthorization?: string | null;
|
|
19
|
+
revokeSecret?: string | null;
|
|
20
|
+
consentSyncSecret?: string | null;
|
|
21
|
+
}): import("express-serve-static-core").Router;
|
|
10
22
|
//# sourceMappingURL=product-analytics-collector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-analytics-collector.d.ts","sourceRoot":"","sources":["../../src/routes/product-analytics-collector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"product-analytics-collector.d.ts","sourceRoot":"","sources":["../../src/routes/product-analytics-collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAG/C,OAAO,KAAK,EAAE,yBAAyB,EAAE,sCAAsC,EAAE,mCAAmC,EAAE,MAAM,4CAA4C,CAAC;AAEzK,MAAM,MAAM,mCAAmC,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,sCAAsC,GAAG,OAAO,CAAC,sCAAsC,CAAC,CAAC;AAgB7J,gFAAgF;AAChF,wBAAgB,yCAAyC,CAAC,KAAK,EAAE;IAC/D,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,CAAC;CACzD,GAAI,mCAAmC,CA8CvC;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,yBAAyB,GAAG,mCAAmC,EAC1E,SAAS,EAAE,mCAAmC,EAC9C,OAAO,GAAE;IAAE,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,8CA+F1H"}
|
|
@@ -1,28 +1,165 @@
|
|
|
1
|
+
import { verifyProductAnalyticsAssertion } from "@rudderhq/identity-core";
|
|
1
2
|
import { Router } from "express";
|
|
3
|
+
import { timingSafeEqual } from "node:crypto";
|
|
4
|
+
import { unauthorized } from "../errors.js";
|
|
5
|
+
function secretMatches(value, expected) {
|
|
6
|
+
if (!value || !expected)
|
|
7
|
+
return false;
|
|
8
|
+
const actual = Buffer.from(value);
|
|
9
|
+
const target = Buffer.from(expected);
|
|
10
|
+
return actual.length === target.length && timingSafeEqual(actual, target);
|
|
11
|
+
}
|
|
12
|
+
function readOptionalAnalyticsSubject(body) {
|
|
13
|
+
if (!body || typeof body !== "object")
|
|
14
|
+
return { value: null, valid: true };
|
|
15
|
+
const value = body.analyticsSubject;
|
|
16
|
+
if (value === undefined || value === null)
|
|
17
|
+
return { value: null, valid: true };
|
|
18
|
+
return typeof value === "string" ? { value, valid: true } : { value: null, valid: false };
|
|
19
|
+
}
|
|
20
|
+
/** Build the central authorizer for short-lived telemetry-scoped assertions. */
|
|
21
|
+
export function createProductAnalyticsAssertionAuthorizer(input) {
|
|
22
|
+
return (req) => {
|
|
23
|
+
const value = req.header("authorization")?.replace(/^Bearer\s+/i, "").trim();
|
|
24
|
+
if (!value)
|
|
25
|
+
throw unauthorized("Telemetry assertion required");
|
|
26
|
+
const installationId = input.resolveInstallationId?.(req) ?? req.header("x-rudder-installation-id") ?? null;
|
|
27
|
+
if (!installationId)
|
|
28
|
+
throw unauthorized("Telemetry installation required");
|
|
29
|
+
if (secretMatches(value, input.anonymousAuthorization ?? null)) {
|
|
30
|
+
const consentVersion = req.header("x-rudder-telemetry-consent-version")?.trim() ?? "";
|
|
31
|
+
const pseudonymousInstallationId = req.header("x-rudder-telemetry-pseudonymous-installation-id")?.trim() ?? "";
|
|
32
|
+
const consentEpochRaw = req.header("x-rudder-telemetry-consent-epoch")?.trim() ?? "";
|
|
33
|
+
const consentEpoch = Number(consentEpochRaw);
|
|
34
|
+
if (!consentVersion || consentVersion.length > 80 || !/^[0-9a-f]{64}$/u.test(pseudonymousInstallationId)
|
|
35
|
+
|| !Number.isSafeInteger(consentEpoch) || consentEpoch < 1) {
|
|
36
|
+
throw unauthorized("Anonymous telemetry authorization is missing consent state");
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
installationId,
|
|
40
|
+
mode: "anonymous",
|
|
41
|
+
consentVersion,
|
|
42
|
+
consentEpoch,
|
|
43
|
+
analyticsSubject: null,
|
|
44
|
+
pseudonymousInstallationId,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
let claims;
|
|
48
|
+
try {
|
|
49
|
+
claims = verifyProductAnalyticsAssertion({
|
|
50
|
+
assertion: value,
|
|
51
|
+
identityPublicKey: input.identityPublicKey,
|
|
52
|
+
expectedKeyId: input.expectedKeyId,
|
|
53
|
+
expectedIssuer: input.expectedIssuer,
|
|
54
|
+
expectedInstallationId: installationId,
|
|
55
|
+
nowMs: Date.now(),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
throw unauthorized("Telemetry assertion is invalid or expired");
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
installationId: claims.installationId,
|
|
63
|
+
mode: claims.analyticsSubject ? "account_linked" : "anonymous",
|
|
64
|
+
consentVersion: claims.consentVersion,
|
|
65
|
+
consentEpoch: claims.consentEpoch,
|
|
66
|
+
analyticsSubject: claims.analyticsSubject,
|
|
67
|
+
pseudonymousInstallationId: claims.pseudonymousInstallationId,
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
}
|
|
2
71
|
/**
|
|
3
72
|
* Private collector boundary. It is intentionally not mounted on the local
|
|
4
73
|
* Rudder app; the central telemetry deployment supplies the authorizer and
|
|
5
74
|
* central store when it hosts this router.
|
|
6
75
|
*/
|
|
7
|
-
export function productAnalyticsCollectorRoutes(collector, authorize) {
|
|
76
|
+
export function productAnalyticsCollectorRoutes(collector, authorize, options = {}) {
|
|
8
77
|
const router = Router();
|
|
9
78
|
router.post("/api/analytics/v1/events:batch", async (req, res) => {
|
|
10
79
|
const authorization = await authorize(req);
|
|
11
|
-
const result = collector.ingestBatch({ authorization, events: req.body?.events, now: new Date() });
|
|
12
|
-
|
|
80
|
+
const result = await collector.ingestBatch({ authorization, events: req.body?.events, now: new Date() });
|
|
81
|
+
const hasConflict = result.rejected.some((ack) => ack.errorCode === "conflict");
|
|
82
|
+
res.status(hasConflict ? 409 : result.rejected.length > 0 && result.accepted === 0 && result.duplicate === 0 ? 422 : 200).json(result);
|
|
13
83
|
});
|
|
14
84
|
router.post("/api/analytics/v1/consent/revoke", async (req, res) => {
|
|
15
85
|
const authorization = await authorize(req);
|
|
16
86
|
const consentVersion = typeof req.body?.consentVersion === "string" ? req.body.consentVersion : authorization.consentVersion;
|
|
17
87
|
const consentEpoch = typeof req.body?.consentEpoch === "number" ? req.body.consentEpoch : authorization.consentEpoch + 1;
|
|
18
|
-
const state = collector.advanceConsent({
|
|
88
|
+
const state = await collector.advanceConsent({
|
|
19
89
|
installationId: authorization.installationId,
|
|
90
|
+
analyticsSubject: authorization.mode === "account_linked" ? authorization.analyticsSubject : null,
|
|
20
91
|
consentVersion,
|
|
21
92
|
consentEpoch,
|
|
22
93
|
revoked: true,
|
|
23
94
|
});
|
|
24
95
|
res.json({ installationId: authorization.installationId, consentEpoch: state.consentEpoch, revoked: state.revoked });
|
|
25
96
|
});
|
|
97
|
+
// Self-hosted deployments without a signed-in Identity session may use an
|
|
98
|
+
// explicitly provisioned anonymous deployment credential. This endpoint
|
|
99
|
+
// establishes the installation-scoped consent state before the first batch;
|
|
100
|
+
// it never accepts an account-linked subject.
|
|
101
|
+
router.post("/api/analytics/v1/internal/anonymous/consent", async (req, res) => {
|
|
102
|
+
if (!secretMatches(req.header("x-rudder-telemetry-anonymous-authorization"), options.anonymousAuthorization ?? null)) {
|
|
103
|
+
res.status(401).json({ errorCode: "unauthorized" });
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const installationId = typeof req.body?.installationId === "string" ? req.body.installationId.trim() : "";
|
|
107
|
+
const pseudonymousInstallationId = typeof req.body?.pseudonymousInstallationId === "string" ? req.body.pseudonymousInstallationId.trim() : "";
|
|
108
|
+
const consentVersion = typeof req.body?.consentVersion === "string" ? req.body.consentVersion.trim() : "";
|
|
109
|
+
const consentEpoch = typeof req.body?.consentEpoch === "number" ? req.body.consentEpoch : NaN;
|
|
110
|
+
const revoked = req.body?.revoked;
|
|
111
|
+
if (!installationId || installationId.length > 256 || !/^[0-9a-f]{64}$/u.test(pseudonymousInstallationId)
|
|
112
|
+
|| !consentVersion || consentVersion.length > 80 || !Number.isSafeInteger(consentEpoch) || consentEpoch < 1
|
|
113
|
+
|| typeof revoked !== "boolean") {
|
|
114
|
+
res.status(422).json({ errorCode: "invalid_request" });
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const state = await collector.advanceConsent({ installationId, consentVersion, consentEpoch, revoked });
|
|
118
|
+
res.json({ installationId, pseudonymousInstallationId, consentVersion: state.consentVersion, consentEpoch: state.consentEpoch, revoked: state.revoked });
|
|
119
|
+
});
|
|
120
|
+
router.post("/api/analytics/v1/internal/consent/revoke", async (req, res) => {
|
|
121
|
+
if (!secretMatches(req.header("x-rudder-telemetry-revoke-secret"), options.revokeSecret ?? null)) {
|
|
122
|
+
res.status(401).json({ errorCode: "unauthorized" });
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const installationId = typeof req.body?.installationId === "string" ? req.body.installationId : "";
|
|
126
|
+
const analyticsSubjectInput = readOptionalAnalyticsSubject(req.body);
|
|
127
|
+
const analyticsSubject = analyticsSubjectInput.value;
|
|
128
|
+
const consentVersion = typeof req.body?.consentVersion === "string" ? req.body.consentVersion : "";
|
|
129
|
+
const consentEpoch = typeof req.body?.consentEpoch === "number" ? req.body.consentEpoch : NaN;
|
|
130
|
+
if (!analyticsSubjectInput.valid || !installationId || installationId.length > 256 || !consentVersion || consentVersion.length > 80
|
|
131
|
+
|| (analyticsSubject !== null && !/^[0-9a-f]{64}$/u.test(analyticsSubject))
|
|
132
|
+
|| !Number.isInteger(consentEpoch) || consentEpoch < 1) {
|
|
133
|
+
res.status(422).json({ errorCode: "invalid_request" });
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const state = await collector.advanceConsent({ installationId, consentVersion, consentEpoch, revoked: true, analyticsSubject });
|
|
137
|
+
res.json({ installationId, analyticsSubject, consentEpoch: state.consentEpoch, revoked: state.revoked });
|
|
138
|
+
});
|
|
139
|
+
// Identity owns the append-only consent ledger. This private hook mirrors
|
|
140
|
+
// its current grant/revoke state into the collector before any assertion can
|
|
141
|
+
// authorize delivery. Assertions are intentionally not allowed to bootstrap
|
|
142
|
+
// a consent row from request claims.
|
|
143
|
+
router.post("/api/analytics/v1/internal/consent/sync", async (req, res) => {
|
|
144
|
+
if (!secretMatches(req.header("x-rudder-telemetry-consent-sync-secret"), options.consentSyncSecret ?? null)) {
|
|
145
|
+
res.status(401).json({ errorCode: "unauthorized" });
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const installationId = typeof req.body?.installationId === "string" ? req.body.installationId : "";
|
|
149
|
+
const analyticsSubjectInput = readOptionalAnalyticsSubject(req.body);
|
|
150
|
+
const analyticsSubject = analyticsSubjectInput.value;
|
|
151
|
+
const consentVersion = typeof req.body?.consentVersion === "string" ? req.body.consentVersion : "";
|
|
152
|
+
const consentEpoch = typeof req.body?.consentEpoch === "number" ? req.body.consentEpoch : NaN;
|
|
153
|
+
const revoked = req.body?.revoked;
|
|
154
|
+
if (!analyticsSubjectInput.valid || !installationId || installationId.length > 256 || !consentVersion || consentVersion.length > 80
|
|
155
|
+
|| (analyticsSubject !== null && !/^[0-9a-f]{64}$/u.test(analyticsSubject))
|
|
156
|
+
|| !Number.isSafeInteger(consentEpoch) || consentEpoch < 1 || typeof revoked !== "boolean") {
|
|
157
|
+
res.status(422).json({ errorCode: "invalid_request" });
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const state = await collector.advanceConsent({ installationId, analyticsSubject, consentVersion, consentEpoch, revoked });
|
|
161
|
+
res.json({ installationId, analyticsSubject, consentVersion: state.consentVersion, consentEpoch: state.consentEpoch, revoked: state.revoked });
|
|
162
|
+
});
|
|
26
163
|
return router;
|
|
27
164
|
}
|
|
28
165
|
//# sourceMappingURL=product-analytics-collector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-analytics-collector.js","sourceRoot":"","sources":["../../src/routes/product-analytics-collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"product-analytics-collector.js","sourceRoot":"","sources":["../../src/routes/product-analytics-collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-analytics.d.ts","sourceRoot":"","sources":["../../src/routes/product-analytics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"product-analytics.d.ts","sourceRoot":"","sources":["../../src/routes/product-analytics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAsDvC,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,EAAE,8CAkK5C"}
|
|
@@ -31,6 +31,15 @@ function parseEventName(req) {
|
|
|
31
31
|
}
|
|
32
32
|
return value;
|
|
33
33
|
}
|
|
34
|
+
function sanitizeInstallationState(state) {
|
|
35
|
+
if (!state || typeof state !== "object" || Array.isArray(state))
|
|
36
|
+
return state;
|
|
37
|
+
const { lastPayload, lastPayloadAt, lastPayloadMode, ...safeState } = state;
|
|
38
|
+
void lastPayload;
|
|
39
|
+
void lastPayloadAt;
|
|
40
|
+
void lastPayloadMode;
|
|
41
|
+
return safeState;
|
|
42
|
+
}
|
|
34
43
|
export function productAnalyticsRoutes(db) {
|
|
35
44
|
const router = Router();
|
|
36
45
|
const service = productAnalyticsService(db);
|
|
@@ -90,7 +99,15 @@ export function productAnalyticsRoutes(db) {
|
|
|
90
99
|
res.status(404).json({ error: "Product analytics installation not found" });
|
|
91
100
|
return;
|
|
92
101
|
}
|
|
93
|
-
res.json({
|
|
102
|
+
res.json({
|
|
103
|
+
installation: {
|
|
104
|
+
id: state.installation.installationId,
|
|
105
|
+
mode: state.installation.mode,
|
|
106
|
+
state: sanitizeInstallationState(state.installation.state),
|
|
107
|
+
},
|
|
108
|
+
consent: state.consent,
|
|
109
|
+
pendingCount: state.pendingCount,
|
|
110
|
+
});
|
|
94
111
|
});
|
|
95
112
|
router.post("/orgs/:orgId/analytics/product/installation/:installationId/outbox/claim", async (req, res) => {
|
|
96
113
|
const orgId = req.params.orgId;
|
|
@@ -103,10 +120,17 @@ export function productAnalyticsRoutes(db) {
|
|
|
103
120
|
if (deliveryMode !== "anonymous" && deliveryMode !== "account_linked") {
|
|
104
121
|
throw unprocessable("Product analytics delivery mode is invalid");
|
|
105
122
|
}
|
|
123
|
+
const accountLinkedUserId = deliveryMode === "account_linked" && req.actor.type === "board" && req.actor.source !== "local_implicit" && typeof req.actor.userId === "string"
|
|
124
|
+
? req.actor.userId
|
|
125
|
+
: null;
|
|
126
|
+
if (deliveryMode === "account_linked" && !accountLinkedUserId) {
|
|
127
|
+
throw unprocessable("Account-linked product analytics requires a signed-in user");
|
|
128
|
+
}
|
|
106
129
|
const result = await claimProductAnalyticsOutboxBatch(db, {
|
|
107
130
|
installationId,
|
|
108
131
|
installationSecret,
|
|
109
132
|
deliveryMode,
|
|
133
|
+
consentedLocalUserId: deliveryMode === "account_linked" ? accountLinkedUserId : null,
|
|
110
134
|
limit: typeof req.body?.limit === "number" ? req.body.limit : undefined,
|
|
111
135
|
leaseSeconds: typeof req.body?.leaseSeconds === "number" ? req.body.leaseSeconds : undefined,
|
|
112
136
|
});
|
|
@@ -119,6 +143,10 @@ export function productAnalyticsRoutes(db) {
|
|
|
119
143
|
assertCompanyAccess(req, orgId);
|
|
120
144
|
const installationId = req.params.installationId;
|
|
121
145
|
const installationSecret = typeof req.body?.installationSecret === "string" ? req.body.installationSecret : "";
|
|
146
|
+
const deliveryMode = req.body?.deliveryMode;
|
|
147
|
+
if (deliveryMode !== "anonymous" && deliveryMode !== "account_linked") {
|
|
148
|
+
throw unprocessable("Product analytics delivery mode is invalid");
|
|
149
|
+
}
|
|
122
150
|
const eventIds = req.body?.eventIds;
|
|
123
151
|
const claimToken = typeof req.body?.claimToken === "string" ? req.body.claimToken : "";
|
|
124
152
|
if (!Array.isArray(eventIds) || eventIds.length < 1 || eventIds.length > 100 || !eventIds.every((id) => typeof id === "string" && isUuidLike(id))) {
|
|
@@ -126,9 +154,16 @@ export function productAnalyticsRoutes(db) {
|
|
|
126
154
|
}
|
|
127
155
|
if (!claimToken)
|
|
128
156
|
throw unprocessable("Product analytics claim token is required");
|
|
157
|
+
const accountLinkedUserId = deliveryMode === "account_linked" && req.actor.type === "board" && req.actor.source !== "local_implicit" && typeof req.actor.userId === "string"
|
|
158
|
+
? req.actor.userId
|
|
159
|
+
: null;
|
|
160
|
+
if (deliveryMode === "account_linked" && !accountLinkedUserId) {
|
|
161
|
+
throw unprocessable("Account-linked product analytics requires a signed-in user");
|
|
162
|
+
}
|
|
129
163
|
const result = await acknowledgeProductAnalyticsOutboxClaim(db, {
|
|
130
164
|
installationId,
|
|
131
165
|
installationSecret,
|
|
166
|
+
consentedLocalUserId: deliveryMode === "account_linked" ? accountLinkedUserId : null,
|
|
132
167
|
eventIds,
|
|
133
168
|
claimToken,
|
|
134
169
|
delivered: req.body?.delivered !== false,
|
|
@@ -150,7 +185,9 @@ export function productAnalyticsRoutes(db) {
|
|
|
150
185
|
const installationSecret = typeof req.body?.installationSecret === "string" ? req.body.installationSecret : "";
|
|
151
186
|
await assertProductAnalyticsInstallationSecret(db, req.params.installationId, installationSecret);
|
|
152
187
|
const actor = getActorInfo(req);
|
|
153
|
-
const localUserId = scope === "account_linked_user"
|
|
188
|
+
const localUserId = scope === "account_linked_user" && req.actor.type === "board" && req.actor.source !== "local_implicit" && typeof req.actor.userId === "string"
|
|
189
|
+
? req.actor.userId
|
|
190
|
+
: null;
|
|
154
191
|
if (scope === "account_linked_user" && !localUserId)
|
|
155
192
|
throw unprocessable("Account-linked consent requires a human user");
|
|
156
193
|
const consent = await recordProductAnalyticsConsent(db, {
|
|
@@ -161,7 +198,7 @@ export function productAnalyticsRoutes(db) {
|
|
|
161
198
|
policyVersion: typeof req.body?.policyVersion === "string" ? req.body.policyVersion : "v1",
|
|
162
199
|
decidedByLocalUserId: actor.actorType === "user" ? actor.actorId : null,
|
|
163
200
|
});
|
|
164
|
-
await reconcileProductAnalyticsInstallationMode(db, req.params.installationId);
|
|
201
|
+
await reconcileProductAnalyticsInstallationMode(db, req.params.installationId, decision === "granted" ? (scope === "account_linked_user" ? "account_linked" : "anonymous") : undefined);
|
|
165
202
|
res.status(201).json(consent);
|
|
166
203
|
});
|
|
167
204
|
return router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-analytics.js","sourceRoot":"","sources":["../../src/routes/product-analytics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"product-analytics.js","sourceRoot":"","sources":["../../src/routes/product-analytics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAgB,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,sCAAsC,EACtC,wCAAwC,EACxC,gCAAgC,EAChC,oCAAoC,EACpC,6BAA6B,EAC7B,uBAAuB,EACvB,yCAAyC,EACzC,6BAA6B,EAC7B,oCAAoC,GAErC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/D,SAAS,cAAc,CAAC,GAAY,EAAE,IAAmB;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACtE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,MAAM,aAAa,CAAC,qBAAqB,IAAI,aAAa,CAAC,CAAC;IAC9F,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,GAAY;IACnC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACtE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,aAAa,CAAC,yCAAyC,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,KAAkC,CAAC,EAAE,CAAC;QAC7G,MAAM,aAAa,CAAC,iCAAiC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAkC,CAAC;AAC5C,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc;IAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE,GAAG,KAAgC,CAAC;IACvG,KAAK,WAAW,CAAC;IACjB,KAAK,aAAa,CAAC;IACnB,KAAK,eAAe,CAAC;IACrB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EAAM;IAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,OAAO,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAE5C,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAe,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC1E,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;YACpC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC;YACjC,EAAE,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;YAC7B,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC;SACjC,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,uCAAuC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrE,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAe,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC1E,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1E,MAAM,aAAa,CAAC,oCAAoC,CAAC,CAAC;QAC5D,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE;YACvC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC;YACjC,EAAE,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;YAC7B,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC;YAC9B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5E,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAe,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC1E,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,OAAO,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1G,IAAI,CAAC,cAAc;YAAE,MAAM,aAAa,CAAC,+CAA+C,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;QAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9F,MAAM,aAAa,CAAC,mCAAmC,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,oCAAoC,CAAC,EAAE,EAAE;YAC5D,cAAc;YACd,kBAAkB,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;YAC9G,IAAI;SACL,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,6DAA6D,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3F,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAe,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC1E,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,oCAAoC,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,cAAwB,CAAC,CAAC;QAClG,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACP,YAAY,EAAE;gBACZ,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc;gBACrC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI;gBAC7B,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;aAC3D;YACD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,0EAA0E,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACzG,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAe,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC1E,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,cAAwB,CAAC;QAC3D,MAAM,kBAAkB,GAAG,OAAO,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC;QAC5C,IAAI,YAAY,KAAK,WAAW,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;YACtE,MAAM,aAAa,CAAC,4CAA4C,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,mBAAmB,GAAG,YAAY,KAAK,gBAAgB,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,gBAAgB,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ;YAC1K,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;YAClB,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,YAAY,KAAK,gBAAgB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9D,MAAM,aAAa,CAAC,4DAA4D,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,gCAAgC,CAAC,EAAE,EAAE;YACxD,cAAc;YACd,kBAAkB;YAClB,YAAY;YACZ,oBAAoB,EAAE,YAAY,KAAK,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI;YACpF,KAAK,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACvE,YAAY,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;SAC7F,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,wEAAwE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACvG,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAe,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC1E,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,cAAwB,CAAC;QAC3D,MAAM,kBAAkB,GAAG,OAAO,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC;QAC5C,IAAI,YAAY,KAAK,WAAW,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;YACtE,MAAM,aAAa,CAAC,4CAA4C,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAClJ,MAAM,aAAa,CAAC,yCAAyC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,UAAU;YAAE,MAAM,aAAa,CAAC,2CAA2C,CAAC,CAAC;QAClF,MAAM,mBAAmB,GAAG,YAAY,KAAK,gBAAgB,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,gBAAgB,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ;YAC1K,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;YAClB,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,YAAY,KAAK,gBAAgB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9D,MAAM,aAAa,CAAC,4DAA4D,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,sCAAsC,CAAC,EAAE,EAAE;YAC9D,cAAc;YACd,kBAAkB;YAClB,oBAAoB,EAAE,YAAY,KAAK,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI;YACpF,QAAQ;YACR,UAAU;YACV,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK,KAAK;YACxC,SAAS,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACpF,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,qEAAqE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACpG,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAe,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC1E,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;QACpC,IAAI,KAAK,KAAK,wBAAwB,IAAI,KAAK,KAAK,qBAAqB;YAAE,MAAM,aAAa,CAAC,4CAA4C,CAAC,CAAC;QAC7I,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,aAAa,CAAC,+CAA+C,CAAC,CAAC;QAC3H,MAAM,kBAAkB,GAAG,OAAO,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,MAAM,wCAAwC,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,cAAwB,EAAE,kBAAkB,CAAC,CAAC;QAC5G,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,KAAK,KAAK,qBAAqB,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,gBAAgB,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ;YAChK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;YAClB,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,KAAK,KAAK,qBAAqB,IAAI,CAAC,WAAW;YAAE,MAAM,aAAa,CAAC,8CAA8C,CAAC,CAAC;QACzH,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,EAAE,EAAE;YACtD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,cAAwB;YACnD,KAAK;YACL,WAAW;YACX,QAAQ;YACR,aAAa,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI;YAC1F,oBAAoB,EAAE,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;SACxE,CAAC,CAAC;QACH,MAAM,yCAAyC,CAC7C,EAAE,EACF,GAAG,CAAC,MAAM,CAAC,cAAwB,EACnC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CACxG,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-settings.d.ts","sourceRoot":"","sources":["../../src/services/instance-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACvC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"instance-settings.d.ts","sourceRoot":"","sources":["../../src/services/instance-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACvC,MAAM,kBAAkB,CAAC;AAuC1B,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAEpE;AAiCD,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,EAAE;eA8C3B,OAAO,CAAC,gBAAgB,CAAC;sBAElB,OAAO,CAAC,uBAAuB,CAAC;sBAKhC,OAAO,CAAC,uBAAuB,CAAC;4BAK1B,OAAO,CAAC,4BAA4B,CAAC;2BAKpC,4BAA4B,KAAG,OAAO,CAAC,gBAAgB,CAAC;2BAIxD,4BAA4B,KAAG,OAAO,CAAC,gBAAgB,CAAC;iCAkBlD,iCAAiC,KAAG,OAAO,CAAC,gBAAgB,CAAC;0BA6BtE,OAAO,CAAC,MAAM,EAAE,CAAC;EAM9C"}
|
|
@@ -22,6 +22,8 @@ function normalizeGeneralSettings(raw) {
|
|
|
22
22
|
showDeveloperDiagnostics: parsed.data.showDeveloperDiagnostics ?? false,
|
|
23
23
|
experimentalSitesEnabled: parsed.data.experimentalSitesEnabled ?? false,
|
|
24
24
|
locale: parsed.data.locale ?? "en",
|
|
25
|
+
productAnalyticsMode: parsed.data.productAnalyticsMode ?? "off",
|
|
26
|
+
productAnalyticsConsentEpoch: parsed.data.productAnalyticsConsentEpoch ?? 1,
|
|
25
27
|
};
|
|
26
28
|
}
|
|
27
29
|
return {
|
|
@@ -29,6 +31,8 @@ function normalizeGeneralSettings(raw) {
|
|
|
29
31
|
showDeveloperDiagnostics: false,
|
|
30
32
|
experimentalSitesEnabled: false,
|
|
31
33
|
locale: "en",
|
|
34
|
+
productAnalyticsMode: "off",
|
|
35
|
+
productAnalyticsConsentEpoch: 1,
|
|
32
36
|
};
|
|
33
37
|
}
|
|
34
38
|
export function normalizeInstanceLocale(raw) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-settings.js","sourceRoot":"","sources":["../../src/services/instance-settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,6BAA6B,EAC7B,kCAAkC,GASnC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAExC,SAAS,wBAAwB,CAAC,GAAY;IAC5C,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAClE,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACvC,OAAO,EAAE,GAAG,iCAAiC,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAY;IAC1C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACtE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,GAA8B,CAAC;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAY;IAC5C,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO;YACL,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,KAAK;YAC/D,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,IAAI,KAAK;YACvE,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,IAAI,KAAK;YACvE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"instance-settings.js","sourceRoot":"","sources":["../../src/services/instance-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Db } from "@rudderhq/db";
|
|
2
|
+
export type ProductAnalyticsCollectorMaintenanceOptions = {
|
|
3
|
+
retentionDays: number;
|
|
4
|
+
privacyThreshold: number;
|
|
5
|
+
now?: Date;
|
|
6
|
+
};
|
|
7
|
+
export type ProductAnalyticsCollectorMaintenanceResult = {
|
|
8
|
+
projectedWorkLoopRevisions: number;
|
|
9
|
+
rebuiltRollupDays: number;
|
|
10
|
+
privacyAggregateRows: number;
|
|
11
|
+
deletedRawEvents: number;
|
|
12
|
+
};
|
|
13
|
+
export declare function hashProductAnalyticsCollectorDimension(value: Record<string, unknown>): string;
|
|
14
|
+
/** Return a cohort only while its privacy aggregate is inside retention. */
|
|
15
|
+
export declare function retainedProductAnalyticsCohortDay(firstSeenAt: Date, retentionCutoff: Date): string | null;
|
|
16
|
+
/** Ensure a collector DB cannot accidentally run with the local app role/schema. */
|
|
17
|
+
export declare function assertProductAnalyticsCollectorDatabaseBoundary(db: Db, expectedRole?: string | null): Promise<{
|
|
18
|
+
role: string;
|
|
19
|
+
schema: string;
|
|
20
|
+
}>;
|
|
21
|
+
/** Run the central projector and retention policy as one idempotent maintenance tick. */
|
|
22
|
+
export declare function runProductAnalyticsCollectorMaintenance(db: Db, options: ProductAnalyticsCollectorMaintenanceOptions): Promise<ProductAnalyticsCollectorMaintenanceResult>;
|
|
23
|
+
export declare function deleteProductAnalyticsCollectorInstallation(db: Db, installationId: string): Promise<void>;
|
|
24
|
+
export declare function deleteProductAnalyticsCollectorSubject(db: Db, analyticsSubject: string): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=product-analytics-collector-maintenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-analytics-collector-maintenance.d.ts","sourceRoot":"","sources":["../../src/services/product-analytics-collector-maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAevC,MAAM,MAAM,2CAA2C,GAAG;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,0CAA0C,GAAG;IACvD,0BAA0B,EAAE,MAAM,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAaF,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAE7F;AAMD,4EAA4E;AAC5E,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAGzG;AAED,oFAAoF;AACpF,wBAAsB,+CAA+C,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAcrJ;AA8QD,yFAAyF;AACzF,wBAAsB,uCAAuC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,2CAA2C,GAAG,OAAO,CAAC,0CAA0C,CAAC,CAiB/K;AAED,wBAAsB,2CAA2C,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS/G;AAED,wBAAsB,sCAAsC,CAAC,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5G"}
|