@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.
Files changed (139) hide show
  1. package/dist/bootstrap/register-api-routes.js +1 -1
  2. package/dist/bootstrap/register-api-routes.js.map +1 -1
  3. package/dist/bundled-plugins/plugin-linear/dist/worker.js +3 -1
  4. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
  5. package/dist/product-analytics-collector-config.d.ts +33 -0
  6. package/dist/product-analytics-collector-config.d.ts.map +1 -0
  7. package/dist/product-analytics-collector-config.js +67 -0
  8. package/dist/product-analytics-collector-config.js.map +1 -0
  9. package/dist/product-analytics-collector-server.d.ts +26 -0
  10. package/dist/product-analytics-collector-server.d.ts.map +1 -0
  11. package/dist/product-analytics-collector-server.js +150 -0
  12. package/dist/product-analytics-collector-server.js.map +1 -0
  13. package/dist/routes/instance-settings.d.ts +1 -0
  14. package/dist/routes/instance-settings.d.ts.map +1 -1
  15. package/dist/routes/instance-settings.js +58 -0
  16. package/dist/routes/instance-settings.js.map +1 -1
  17. package/dist/routes/product-analytics-collector-report.d.ts +7 -0
  18. package/dist/routes/product-analytics-collector-report.d.ts.map +1 -0
  19. package/dist/routes/product-analytics-collector-report.js +159 -0
  20. package/dist/routes/product-analytics-collector-report.js.map +1 -0
  21. package/dist/routes/product-analytics-collector.d.ts +14 -2
  22. package/dist/routes/product-analytics-collector.d.ts.map +1 -1
  23. package/dist/routes/product-analytics-collector.js +141 -4
  24. package/dist/routes/product-analytics-collector.js.map +1 -1
  25. package/dist/routes/product-analytics.d.ts.map +1 -1
  26. package/dist/routes/product-analytics.js +40 -3
  27. package/dist/routes/product-analytics.js.map +1 -1
  28. package/dist/services/instance-settings.d.ts.map +1 -1
  29. package/dist/services/instance-settings.js +4 -0
  30. package/dist/services/instance-settings.js.map +1 -1
  31. package/dist/services/product-analytics-collector-maintenance.d.ts +25 -0
  32. package/dist/services/product-analytics-collector-maintenance.d.ts.map +1 -0
  33. package/dist/services/product-analytics-collector-maintenance.js +309 -0
  34. package/dist/services/product-analytics-collector-maintenance.js.map +1 -0
  35. package/dist/services/product-analytics-collector-maintenance.test.d.ts +2 -0
  36. package/dist/services/product-analytics-collector-maintenance.test.d.ts.map +1 -0
  37. package/dist/services/product-analytics-collector-maintenance.test.js +14 -0
  38. package/dist/services/product-analytics-collector-maintenance.test.js.map +1 -0
  39. package/dist/services/product-analytics-collector.d.ts +75 -3
  40. package/dist/services/product-analytics-collector.d.ts.map +1 -1
  41. package/dist/services/product-analytics-collector.js +363 -12
  42. package/dist/services/product-analytics-collector.js.map +1 -1
  43. package/dist/services/product-analytics-collector.test.js +25 -0
  44. package/dist/services/product-analytics-collector.test.js.map +1 -1
  45. package/dist/services/product-analytics-fixture.d.ts +7 -0
  46. package/dist/services/product-analytics-fixture.d.ts.map +1 -0
  47. package/dist/services/product-analytics-fixture.js +65 -0
  48. package/dist/services/product-analytics-fixture.js.map +1 -0
  49. package/dist/services/product-analytics-prd-gates.test.d.ts +2 -0
  50. package/dist/services/product-analytics-prd-gates.test.d.ts.map +1 -0
  51. package/dist/services/product-analytics-prd-gates.test.js +135 -0
  52. package/dist/services/product-analytics-prd-gates.test.js.map +1 -0
  53. package/dist/services/product-analytics.d.ts +17 -5
  54. package/dist/services/product-analytics.d.ts.map +1 -1
  55. package/dist/services/product-analytics.js +94 -12
  56. package/dist/services/product-analytics.js.map +1 -1
  57. package/package.json +17 -14
  58. package/ui-dist/assets/{LibraryLiveSurface-DeUIV5N_.js → LibraryLiveSurface-CZED7oKj.js} +1 -1
  59. package/ui-dist/assets/{abnfDiagram-VRR7QNED-BaoLM9Pd.js → abnfDiagram-VRR7QNED-BoPyIoAq.js} +1 -1
  60. package/ui-dist/assets/{arc-Cx0L6o2z.js → arc-DTYs4RCH.js} +1 -1
  61. package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-zVfZP7v4.js → architectureDiagram-ZJ3FMSHR-BGfp2S_3.js} +1 -1
  62. package/ui-dist/assets/{blockDiagram-677ZJIJ3-BiWWFP9R.js → blockDiagram-677ZJIJ3-aW0EGIUf.js} +1 -1
  63. package/ui-dist/assets/{c4Diagram-LMCZKHZV-CX65GSJ6.js → c4Diagram-LMCZKHZV--1itKgA2.js} +1 -1
  64. package/ui-dist/assets/channel-DLNwhPnC.js +1 -0
  65. package/ui-dist/assets/{chunk-2Q5K7J3B-CH6PlelX.js → chunk-2Q5K7J3B-ZIqIozPQ.js} +1 -1
  66. package/ui-dist/assets/{chunk-32BRIVSS-C7ZEXYO8.js → chunk-32BRIVSS-DiwBEZVQ.js} +1 -1
  67. package/ui-dist/assets/{chunk-5VM5RSS4-CyInWuue.js → chunk-5VM5RSS4-CLOrTmL8.js} +1 -1
  68. package/ui-dist/assets/{chunk-EX3LRPZG-D58qFIdM.js → chunk-EX3LRPZG-D6xZzF47.js} +1 -1
  69. package/ui-dist/assets/{chunk-JWPE2WC7-CJ3Qx30f.js → chunk-JWPE2WC7-B9tYvTZl.js} +1 -1
  70. package/ui-dist/assets/{chunk-MOJQB5TN-BO4bKVLH.js → chunk-MOJQB5TN-D_qo-SzM.js} +1 -1
  71. package/ui-dist/assets/{chunk-RYQCIY6F-DxBmxcYc.js → chunk-RYQCIY6F-ChPHGc2P.js} +1 -1
  72. package/ui-dist/assets/{chunk-V7JOEXUC-Chdnd6Lq.js → chunk-V7JOEXUC-Dk6GbZYp.js} +1 -1
  73. package/ui-dist/assets/{chunk-VR4S4FIN-GkW_x_pD.js → chunk-VR4S4FIN-B6AREC1T.js} +1 -1
  74. package/ui-dist/assets/{chunk-XXDRQBXY-BJyBGcSF.js → chunk-XXDRQBXY-CUyO-JUr.js} +1 -1
  75. package/ui-dist/assets/classDiagram-OUVF2IWQ-JsIc-rlc.js +1 -0
  76. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-JsIc-rlc.js +1 -0
  77. package/ui-dist/assets/{cose-bilkent-JH36ORCC-BWP2r8TX.js → cose-bilkent-JH36ORCC-BCxIInLZ.js} +1 -1
  78. package/ui-dist/assets/{cynefin-VYW2F7L2-C08dfI3w.js → cynefin-VYW2F7L2-DqsnpnHA.js} +1 -1
  79. package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-h6dXjTaO.js → cynefinDiagram-TSTJHNR4-BD7QQNLW.js} +1 -1
  80. package/ui-dist/assets/{dagre-VKFMJZFB-CWDgoFQD.js → dagre-VKFMJZFB-DaE160f7.js} +1 -1
  81. package/ui-dist/assets/{diagram-FQU43EPY-CK1j48d-.js → diagram-FQU43EPY-DZ0c59y8.js} +1 -1
  82. package/ui-dist/assets/{diagram-G47NLZAW-CoSiG57q.js → diagram-G47NLZAW-C_413g5E.js} +1 -1
  83. package/ui-dist/assets/{diagram-NH7WQ7WH-DRG-xXGQ.js → diagram-NH7WQ7WH-D_o9pXB-.js} +1 -1
  84. package/ui-dist/assets/{diagram-OA4YK3LP-D04mMwYs.js → diagram-OA4YK3LP-BI2xMqiW.js} +1 -1
  85. package/ui-dist/assets/{diagram-WEI45ONY-ZkC1ZQMq.js → diagram-WEI45ONY-hhM8R_14.js} +1 -1
  86. package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-BxMIw9PZ.js → ebnfDiagram-CCIWWBDH-DfFgEtmG.js} +1 -1
  87. package/ui-dist/assets/{erDiagram-Q63AITRT-B4Zwbn84.js → erDiagram-Q63AITRT-CCw4ysHK.js} +1 -1
  88. package/ui-dist/assets/{flowDiagram-23GEKE2U-D5pYz8Px.js → flowDiagram-23GEKE2U-CzC1SMmo.js} +1 -1
  89. package/ui-dist/assets/{ganttDiagram-NO4QXBWP-RSramodc.js → ganttDiagram-NO4QXBWP-CbPJIrIw.js} +1 -1
  90. package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-BFQfCkMd.js → gitGraphDiagram-IHSO6WYX-jCxJ66_C.js} +1 -1
  91. package/ui-dist/assets/{graph-DuSS8poS.js → graph-BfNZ9Jzj.js} +1 -1
  92. package/ui-dist/assets/{index-DRbt_Svi.js → index-B3h9Vdxx.js} +1 -1
  93. package/ui-dist/assets/{index-9U78M9Np.js → index-B8q4cbOz.js} +1 -1
  94. package/ui-dist/assets/{index-olsHIcXs.js → index-BE1vSI6a.js} +1 -1
  95. package/ui-dist/assets/{index-B-NP8fOI.js → index-BKn4zRjf.js} +1 -1
  96. package/ui-dist/assets/{index-BKXUkeeU.js → index-BULll2e0.js} +1 -1
  97. package/ui-dist/assets/{index-BpvytaKr.js → index-BjxRqzZK.js} +1 -1
  98. package/ui-dist/assets/{index-Cyq94-QT.js → index-Bwo-C8W5.js} +1 -1
  99. package/ui-dist/assets/{index-BADa8mxG.js → index-ByUFNj0O.js} +1 -1
  100. package/ui-dist/assets/{index-CHbXMgL0.js → index-Chop-Dpa.js} +1 -1
  101. package/ui-dist/assets/{index-BU0KLNTt.js → index-Ck-ZNQeD.js} +541 -528
  102. package/ui-dist/assets/index-CxPYXL3t.css +1 -0
  103. package/ui-dist/assets/{index-wZlfBtwh.js → index-D00XdcOq.js} +1 -1
  104. package/ui-dist/assets/{index-BGcgy63z.js → index-D_K-9VDs.js} +1 -1
  105. package/ui-dist/assets/{index-DzdRgH-y.js → index-DiMDROQY.js} +1 -1
  106. package/ui-dist/assets/{index-5tzBDABj.js → index-DmjAbzHq.js} +1 -1
  107. package/ui-dist/assets/{index-De3vaw_P.js → index-SkHIC7Ma.js} +1 -1
  108. package/ui-dist/assets/{infoDiagram-FWYZ7A6U-f5i4pO3J.js → infoDiagram-FWYZ7A6U-BkDimGw3.js} +1 -1
  109. package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-CVEdv5i_.js → ishikawaDiagram-FXEZZL3T-BAyUfn6x.js} +1 -1
  110. package/ui-dist/assets/{journeyDiagram-5HDEW3XC-Cvp7vWcy.js → journeyDiagram-5HDEW3XC-DlbpTZHG.js} +1 -1
  111. package/ui-dist/assets/{kanban-definition-HUTT4EX6-C6dURjjK.js → kanban-definition-HUTT4EX6-Cd67S14K.js} +1 -1
  112. package/ui-dist/assets/{layout-DxdOu9MY.js → layout-Dc4YEiCC.js} +1 -1
  113. package/ui-dist/assets/{linear-CRi8RB_7.js → linear-BhRsbD_5.js} +1 -1
  114. package/ui-dist/assets/{map-BlpDrw_l.js → map-CEWybj6z.js} +1 -1
  115. package/ui-dist/assets/{mermaid.core-2Gz9YusH.js → mermaid.core-CqqAFYNg.js} +4 -4
  116. package/ui-dist/assets/{mindmap-definition-LN4V7U3C-BmSjJLTI.js → mindmap-definition-LN4V7U3C-CCb-XmEi.js} +1 -1
  117. package/ui-dist/assets/{pegDiagram-2B236MQR-BTUboUw8.js → pegDiagram-2B236MQR-CqUV14VZ.js} +1 -1
  118. package/ui-dist/assets/{pieDiagram-ENE6RG2P-CVPP8SYv.js → pieDiagram-ENE6RG2P-Dn_M_GRM.js} +1 -1
  119. package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-BG4FmirT.js → quadrantDiagram-ABIIQ3AL-rAEhJDr2.js} +1 -1
  120. package/ui-dist/assets/{railroadDiagram-RFXS5EU6-DFRNo9hF.js → railroadDiagram-RFXS5EU6-iE2o_jkH.js} +1 -1
  121. package/ui-dist/assets/{requirementDiagram-TGXJPOKE-DpnVF9qP.js → requirementDiagram-TGXJPOKE-BFyKBR1h.js} +1 -1
  122. package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-D1ETFdSE.js → sankeyDiagram-HTMAVEWB-DRa_2YB6.js} +1 -1
  123. package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-CNqzB_AL.js → sequenceDiagram-DBY2YBRQ-BG8VIjD7.js} +1 -1
  124. package/ui-dist/assets/{sizeCapture-X5ZJPWSS-DuoMCjdH.js → sizeCapture-X5ZJPWSS-CS1xlbzG.js} +1 -1
  125. package/ui-dist/assets/{stateDiagram-2N3HPSRC-fmHeKL8l.js → stateDiagram-2N3HPSRC-BSl2RUJ1.js} +1 -1
  126. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-DUVNSzI8.js +1 -0
  127. package/ui-dist/assets/{swimlanes-5IMT3BWC-hjosaIhT.js → swimlanes-5IMT3BWC-BT8Hrm9J.js} +2 -2
  128. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-DfLFj7sh.js +8 -0
  129. package/ui-dist/assets/{timeline-definition-FHXFAJF6-xoMEClc-.js → timeline-definition-FHXFAJF6-CfYIqEuQ.js} +1 -1
  130. package/ui-dist/assets/{vennDiagram-L72KCM5P-sdSXQfX-.js → vennDiagram-L72KCM5P-C8zBH7o9.js} +1 -1
  131. package/ui-dist/assets/{wardleyDiagram-EHGQE667-BbQBSKlD.js → wardleyDiagram-EHGQE667-D5HyFfI9.js} +1 -1
  132. package/ui-dist/assets/{xychartDiagram-FW5EYKEG-BfAtadyK.js → xychartDiagram-FW5EYKEG-CGItJmLx.js} +1 -1
  133. package/ui-dist/index.html +2 -2
  134. package/ui-dist/assets/channel-CHc3ibOz.js +0 -1
  135. package/ui-dist/assets/classDiagram-OUVF2IWQ-9iLZpz3t.js +0 -1
  136. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-9iLZpz3t.js +0 -1
  137. package/ui-dist/assets/index-QrRs-r-4.css +0 -1
  138. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-DajAVikh.js +0 -1
  139. 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): import("express-serve-static-core").Router;
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":"AAAA,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,yBAAyB,EAAE,sCAAsC,EAAE,MAAM,4CAA4C,CAAC;AAEpI,MAAM,MAAM,mCAAmC,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,sCAAsC,GAAG,OAAO,CAAC,sCAAsC,CAAC,CAAC;AAE7J;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,yBAAyB,EAAE,SAAS,EAAE,mCAAmC,8CAuBnI"}
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
- res.status(result.rejected.length > 0 && result.accepted === 0 && result.duplicate === 0 ? 422 : 200).json(result);
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;AAK/C;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAAC,SAAoC,EAAE,SAA8C;IAClI,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/D,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACnG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjE,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,OAAO,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC;QAC7H,MAAM,YAAY,GAAG,OAAO,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,CAAC;QACzH,MAAM,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC;YACrC,cAAc,EAAE,aAAa,CAAC,cAAc;YAC5C,cAAc;YACd,YAAY;YACZ,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,aAAa,CAAC,cAAc,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACvH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,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;AA6CvC,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,EAAE,8CAkI5C"}
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({ installation: { id: state.installation.installationId, mode: state.installation.mode, state: state.installation.state }, consent: state.consent, pendingCount: state.pendingCount });
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" ? (actor.actorType === "user" ? actor.actorId : null) : null;
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":"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,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,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IAClM,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,MAAM,GAAG,MAAM,gCAAgC,CAAC,EAAE,EAAE;YACxD,cAAc;YACd,kBAAkB;YAClB,YAAY;YACZ,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,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,MAAM,GAAG,MAAM,sCAAsC,CAAC,EAAE,EAAE;YAC9D,cAAc;YACd,kBAAkB;YAClB,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,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjH,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,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,cAAwB,CAAC,CAAC;QACzF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"product-analytics.js","sourceRoot":"","sources":["../../src/routes/product-analytics.ts"],"names":[],"mappings":"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"}
@@ -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;AAmC1B,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"}
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":"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"}
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"}