@superblocksteam/telemetry 2.0.123-next.0 → 2.0.124-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +113 -0
  2. package/dist/common/contracts/tier2-traces.d.ts +3 -3
  3. package/dist/common/contracts/tier2-traces.d.ts.map +1 -1
  4. package/dist/common/contracts/tier2-traces.js +33 -6
  5. package/dist/common/contracts/tier2-traces.js.map +1 -1
  6. package/dist/common/index.d.ts +2 -0
  7. package/dist/common/index.d.ts.map +1 -1
  8. package/dist/common/index.js +2 -0
  9. package/dist/common/index.js.map +1 -1
  10. package/dist/common/npm-install-metrics.d.ts +88 -0
  11. package/dist/common/npm-install-metrics.d.ts.map +1 -0
  12. package/dist/common/npm-install-metrics.js +140 -0
  13. package/dist/common/npm-install-metrics.js.map +1 -0
  14. package/dist/common/sanitize-npm-attributes.d.ts +156 -0
  15. package/dist/common/sanitize-npm-attributes.d.ts.map +1 -0
  16. package/dist/common/sanitize-npm-attributes.js +268 -0
  17. package/dist/common/sanitize-npm-attributes.js.map +1 -0
  18. package/dist/node/init.d.ts.map +1 -1
  19. package/dist/node/init.js +7 -0
  20. package/dist/node/init.js.map +1 -1
  21. package/dist-esm/common/contracts/tier2-traces.d.ts +3 -3
  22. package/dist-esm/common/contracts/tier2-traces.d.ts.map +1 -1
  23. package/dist-esm/common/contracts/tier2-traces.js +33 -6
  24. package/dist-esm/common/contracts/tier2-traces.js.map +1 -1
  25. package/dist-esm/common/index.d.ts +2 -0
  26. package/dist-esm/common/index.d.ts.map +1 -1
  27. package/dist-esm/common/index.js +2 -0
  28. package/dist-esm/common/index.js.map +1 -1
  29. package/dist-esm/common/npm-install-metrics.d.ts +88 -0
  30. package/dist-esm/common/npm-install-metrics.d.ts.map +1 -0
  31. package/dist-esm/common/npm-install-metrics.js +135 -0
  32. package/dist-esm/common/npm-install-metrics.js.map +1 -0
  33. package/dist-esm/common/sanitize-npm-attributes.d.ts +156 -0
  34. package/dist-esm/common/sanitize-npm-attributes.d.ts.map +1 -0
  35. package/dist-esm/common/sanitize-npm-attributes.js +258 -0
  36. package/dist-esm/common/sanitize-npm-attributes.js.map +1 -0
  37. package/dist-esm/node/init.d.ts.map +1 -1
  38. package/dist-esm/node/init.js +7 -0
  39. package/dist-esm/node/init.js.map +1 -1
  40. package/package.json +11 -11
package/README.md CHANGED
@@ -145,6 +145,119 @@ import {
145
145
  span.setAttribute(TIER_HINT_ATTRIBUTE, TierPolicyHint.TIER1_ONLY);
146
146
  ```
147
147
 
148
+ ## NPM Registry Sanitization
149
+
150
+ Telemetry attributes describing npm install attempts (`registry_host`,
151
+ `package_name`, `npm.outcome`) ship out of cloud-prem and must be sanitized
152
+ **at the emit boundary** so customer infrastructure hostnames and registry
153
+ tokens never appear in exported traces, metrics, logs, or audit events.
154
+ Every emitter (P6.2 metrics, P6.3 audit events, any future runner) MUST
155
+ pass values through the helpers in
156
+ [`common/sanitize-npm-attributes.ts`](src/common/sanitize-npm-attributes.ts);
157
+ the dashboard/collector layer is not the right place to sanitize.
158
+
159
+ | Attribute | Rule | Helper |
160
+ | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------- |
161
+ | `registry_host` | Bucket to `public_npm` / `private` / `unknown`. Raw hostnames never ship. | `bucketNpmRegistryHost` |
162
+ | `package_name_bucket` | Metric destinations: bucket to `public` / `private` / `unknown` / `invalid`. Cardinality-safe; never carries the raw name. | `bucketNpmPackageName` (or `npmAttributesForMetric`) |
163
+ | `package_name` | Audit/log destinations only: emit verbatim (lowercased) if it parses as a valid npm name and is not a known-secret value pattern; else `invalid`. | `sanitizeNpmPackageName` (or `npmAttributesForAudit`) |
164
+ | `npm.outcome` | Closed allowlist of 6 values; unknown coerces to `other`. | `normalizeNpmOutcome` |
165
+ | Registry token | Never an attribute. Bucketing strips it from URLs; `tier2-traces` lists token-shaped attribute NAMES as forbidden and `containsForbiddenPattern` rejects token-shaped VALUES (including `npm_<36+>`) smuggled into the package name. | n/a |
166
+
167
+ ### `registry_host`
168
+
169
+ ```
170
+ public_npm | private | unknown
171
+ ```
172
+
173
+ Only `registry.npmjs.org` (case-insensitive, port/path stripped) maps to
174
+ `public_npm`. Everything else — customer Artifactory, JFrog, GitHub
175
+ Packages, anything reachable behind a customer VPN — maps to `private`.
176
+ Empty input or a URL that fails to parse maps to `unknown`. GitHub
177
+ Packages (`npm.pkg.github.com`) is intentionally `private`: customers
178
+ deploy it as their private registry, and a `private` bucket avoids the
179
+ false negative of treating their setup as public.
180
+
181
+ ### `package_name` — decision
182
+
183
+ The right shape is destination-dependent, so the helper exposes both a
184
+ metric-safe bucket and an audit-safe verbatim form. Emitters pick the
185
+ wrapper for their destination; the type system enforces that metric
186
+ emitters never see the raw name.
187
+
188
+ **Metric destinations — `package_name_bucket`**
189
+
190
+ Metric destinations (OTel metric attributes, Datadog tags, span
191
+ attributes that flow into shared metric pipelines) get a four-value
192
+ bucket:
193
+
194
+ ```
195
+ public | private | unknown | invalid
196
+ ```
197
+
198
+ - Cardinality: an OTel metric tagged with the raw package name is
199
+ unbounded — each unique install attempt creates a new time series, and
200
+ on Datadog that translates directly into custom-metric billing.
201
+ - Privacy: metric destinations are typically shared across orgs and
202
+ retained centrally. Emitting `@customer-acme/billing-engine` as a
203
+ metric tag leaks customer-internal package naming to anyone with read
204
+ access to the metric store. Bucketing strips that leak at the source.
205
+ - Mapping: a valid name on `public_npm` is `public`; a valid name on a
206
+ private registry is `private`; a valid name with no/`unknown`
207
+ registry is `unknown`; anything that fails the npm name spec or
208
+ matches a known-secret value pattern is `invalid`.
209
+
210
+ **Audit/log destinations — `package_name`**
211
+
212
+ Audit events and internal logs (per-org event streams, lower volume,
213
+ retained for forensic value) emit the lowercased name verbatim, gated
214
+ by a value-pattern guardrail. The forensic signal — "which package
215
+ failed for org X?" — is exactly the workflow these destinations exist
216
+ to serve; bucketing would destroy it.
217
+
218
+ - Package names are not credentials. The customer already shares them
219
+ with us via app code (which we render and store), install logs, and
220
+ the CVE-visibility surface in the parent project (AGENT-2579).
221
+ - Any input matching a known-secret value pattern
222
+ (`containsForbiddenPattern` from the tier-2 traces contract — GitHub
223
+ PATs, AWS keys, JWTs, Bearer tokens, PEM blocks, **npm registry
224
+ tokens (`npm_<36+>`)**, etc.) is rejected with `invalid`. This is a
225
+ developer-error backstop, not a primary defense; the primary defense
226
+ is that emitters never pass arbitrary strings as `package_name` in
227
+ the first place.
228
+ - Names that fail the npm name spec (`lodash@4.17.21`, `./local`,
229
+ `github:foo/bar`, anything with whitespace or shell metacharacters)
230
+ are rejected with `invalid` — those aren't package names, they're
231
+ install specs, and emitting them as a "package name" would mis-tag
232
+ the audit event.
233
+
234
+ If a future customer has a contractual requirement to redact even
235
+ audit-event names, tighten `sanitizeNpmPackageName` (e.g. hash scoped
236
+ names) rather than adding a parallel emitter — the goal is one place to
237
+ argue about the policy.
238
+
239
+ ### `npm.outcome`
240
+
241
+ Closed enum, allowlist explicit. The first five values match the
242
+ structured error from APPS-4179 (P1.2) and APPS-4195 (P1.5); `other` is
243
+ the catch-all so dashboards never see free-form strings.
244
+
245
+ ```
246
+ success | not_in_registry | registry_unreachable | registry_auth_failed
247
+ | lockfile_url_mismatch | other
248
+ ```
249
+
250
+ Coercion happens at the emit boundary — never at the dashboard.
251
+
252
+ ### Source-of-truth + acceptance
253
+
254
+ **Decision (APPS-4190, signed off in #19574):** `package_name` is destination-dependent — bucketed (`package_name_bucket`) for metric destinations, verbatim-lowercased for audit/log destinations. Future P6.2/P6.3 emitters do NOT re-argue this; tighten the helper instead.
255
+
256
+ - Helper: [`packages/telemetry/src/common/sanitize-npm-attributes.ts`](src/common/sanitize-npm-attributes.ts)
257
+ - Tests: [`sanitize-npm-attributes.test.ts`](src/common/sanitize-npm-attributes.test.ts) — covers each rule + a token-leak regression that asserts no token-bearing input ever appears in output
258
+ - Forbidden-attribute backstop: `npm.token` / `npm_token` / `npm.registry_token` / `registry_token` in `FORBIDDEN_TIER_2_SPAN_ATTRIBUTES`
259
+ - Ticket: [APPS-4190](https://linear.app/superblocks/issue/APPS-4190) — referenced from downstream tickets (APPS-4189 metrics, APPS-4191 audit events)
260
+
148
261
  ## Key Principles
149
262
 
150
263
  1. **Policy Required** — Cannot initialize telemetry without a `TelemetryPolicy`
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Tier 2 Traces Contract (v0.3.0)
2
+ * Tier 2 Traces Contract (v0.4.0)
3
3
  *
4
4
  * Single source of truth for Tier 2 sanitized trace telemetry.
5
- * Mirrors: engineering/projects/o11y-refactor/contracts/tier2-traces.v0.3.0.json
5
+ * Mirrors: engineering/projects/o11y-refactor/contracts/tier2-traces.v0.4.0.json
6
6
  *
7
7
  * Used by:
8
8
  * - trace-sanitizer (SDK: which spans/attributes to export)
@@ -28,7 +28,7 @@ export interface SpanDefinition {
28
28
  }
29
29
  export declare function getAttributeName(attr: AllowedAttribute): string;
30
30
  /**
31
- * Span patterns from tier2-traces.v0.3.0.json.
31
+ * Span patterns from tier2-traces.v0.4.0.json.
32
32
  * Suffix wildcard only: "HTTP POST *" matches "HTTP POST /api/..." or "POST /api/...".
33
33
  */
34
34
  export declare const TIER_2_TRACE_CONTRACT: SpanDefinition[];
@@ -1 +1 @@
1
- {"version":3,"file":"tier2-traces.d.ts","sourceRoot":"","sources":["../../../src/common/contracts/tier2-traces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAM7D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,mBAAmB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAE/D;AA0KD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAAc,EAkTjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAAc,EAEhD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,kBAAkB,GACjC,cAAc,EAAE,CAQlB;AAMD,8FAA8F;AAC9F,eAAO,MAAM,gCAAgC,EAAE,MAAM,EAqCpD,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,6BAA6B,EAAE,MAAM,EAAO,CAAC;AAE1D,iFAAiF;AACjF,eAAO,MAAM,mCAAmC,EAAE,MAAM,EAAqB,CAAC;AAM9E,eAAO,MAAM,0BAA0B,aAEtC,CAAC;AACF,eAAO,MAAM,uBAAuB,aAAyC,CAAC;AAC9E,eAAO,MAAM,wBAAwB,aAEpC,CAAC;AASF;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,sEAAsE;IACtE,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,uFAAuF;IACvF,6BAA6B,EAAE,OAAO,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,kBAAkB,GACjC,2BAA2B,CAwB7B;AAMD,0FAA0F;AAC1F,eAAO,MAAM,mBAAmB,aAA2B,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,UAQpC,CAAC;AAMF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGhE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE5D"}
1
+ {"version":3,"file":"tier2-traces.d.ts","sourceRoot":"","sources":["../../../src/common/contracts/tier2-traces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAM7D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,mBAAmB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAE/D;AA0KD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAAc,EA+TjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAAc,EAEhD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,kBAAkB,GACjC,cAAc,EAAE,CAQlB;AAMD,8FAA8F;AAC9F,eAAO,MAAM,gCAAgC,EAAE,MAAM,EAgDpD,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,6BAA6B,EAAE,MAAM,EAAO,CAAC;AAE1D,iFAAiF;AACjF,eAAO,MAAM,mCAAmC,EAAE,MAAM,EAAqB,CAAC;AAM9E,eAAO,MAAM,0BAA0B,aAEtC,CAAC;AACF,eAAO,MAAM,uBAAuB,aAAyC,CAAC;AAC9E,eAAO,MAAM,wBAAwB,aAEpC,CAAC;AASF;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,sEAAsE;IACtE,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,uFAAuF;IACvF,6BAA6B,EAAE,OAAO,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,kBAAkB,GACjC,2BAA2B,CAwB7B;AAMD,0FAA0F;AAC1F,eAAO,MAAM,mBAAmB,aAA2B,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,UAYpC,CAAC;AAMF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGhE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE5D"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  /**
3
- * Tier 2 Traces Contract (v0.3.0)
3
+ * Tier 2 Traces Contract (v0.4.0)
4
4
  *
5
5
  * Single source of truth for Tier 2 sanitized trace telemetry.
6
- * Mirrors: engineering/projects/o11y-refactor/contracts/tier2-traces.v0.3.0.json
6
+ * Mirrors: engineering/projects/o11y-refactor/contracts/tier2-traces.v0.4.0.json
7
7
  *
8
8
  * Used by:
9
9
  * - trace-sanitizer (SDK: which spans/attributes to export)
@@ -193,7 +193,7 @@ const GEN_AI_STREAM_STEP_ATTRIBUTES = [
193
193
  },
194
194
  ];
195
195
  /**
196
- * Span patterns from tier2-traces.v0.3.0.json.
196
+ * Span patterns from tier2-traces.v0.4.0.json.
197
197
  * Suffix wildcard only: "HTTP POST *" matches "HTTP POST /api/..." or "POST /api/...".
198
198
  */
199
199
  exports.TIER_2_TRACE_CONTRACT = [
@@ -477,7 +477,7 @@ exports.TIER_2_TRACE_CONTRACT = [
477
477
  },
478
478
  ],
479
479
  },
480
- // SABS app-builder spans (sabs-bundle-builder service)
480
+ // SABS app-builder spans (v0.3.0) + bundle download span (v0.4.0)
481
481
  {
482
482
  name: "sabs.build",
483
483
  allowedAttributes: [
@@ -498,6 +498,18 @@ exports.TIER_2_TRACE_CONTRACT = [
498
498
  "otel.status_description",
499
499
  ],
500
500
  },
501
+ // AGENT-2723: aggregate download span replacing ~511 per-file RPC spans
502
+ {
503
+ name: "sabs.bundle.download",
504
+ description: "Aggregate span for the full SABS bundle download. Replaces per-file spans; per-file metrics emitted as sabs.bundle.files_downloaded, sabs.bundle.bytes_downloaded, sabs.bundle.file_fetch_ms.",
505
+ allowedAttributes: [
506
+ { name: "files.count", type: "number" },
507
+ { name: "bytes.sum", type: "number" },
508
+ { name: "slowest.ms", type: "number" },
509
+ "otel.status_code",
510
+ "otel.status_description",
511
+ ],
512
+ },
501
513
  ];
502
514
  /**
503
515
  * Cloud trace contract: match-all span name ("*") so no spans are dropped by name.
@@ -521,7 +533,7 @@ function getTraceContract(deploymentType) {
521
533
  }
522
534
  }
523
535
  // ---------------------------------------------------------------------------
524
- // Forbidden / hashed / dropped attribute names (v0.3.0 JSON)
536
+ // Forbidden / hashed / dropped attribute names (v0.4.0 JSON)
525
537
  // ---------------------------------------------------------------------------
526
538
  /** Forbidden in Tier 2 (forbiddenAttributes in contract). Collector strips these entirely. */
527
539
  exports.FORBIDDEN_TIER_2_SPAN_ATTRIBUTES = [
@@ -534,7 +546,6 @@ exports.FORBIDDEN_TIER_2_SPAN_ATTRIBUTES = [
534
546
  "file_path",
535
547
  "file_content",
536
548
  "db.statement",
537
- "db.query_text",
538
549
  "db.query.text",
539
550
  "http.request.body",
540
551
  "http.response.body",
@@ -545,7 +556,12 @@ exports.FORBIDDEN_TIER_2_SPAN_ATTRIBUTES = [
545
556
  "user-email",
546
557
  "user.email",
547
558
  "user_email",
559
+ "user.id",
548
560
  "enduser.email",
561
+ // NOTE: api-id/api_id, resource-id/resource_id, integration-id/integration_id,
562
+ // commit-id/commit_id, profile-id/profile_id are in the v0.4.0 JSON contract's
563
+ // forbiddenAttributes but intentionally omitted here. See ENG-3459 to resolve.
564
+ // https://linear.app/superblocks/issue/ENG-3459
549
565
  "api-name",
550
566
  "api_name",
551
567
  "application-id",
@@ -561,6 +577,13 @@ exports.FORBIDDEN_TIER_2_SPAN_ATTRIBUTES = [
561
577
  "authorization",
562
578
  "cookie",
563
579
  "x-api-key",
580
+ // APPS-4190: npm registry tokens. Bucketing in sanitize-npm-attributes.ts
581
+ // is the primary defense; this list is the lint/runtime backstop so a
582
+ // future emitter that names an attribute after the token is stripped.
583
+ "npm.token",
584
+ "npm_token",
585
+ "npm.registry_token",
586
+ "registry_token",
564
587
  ];
565
588
  /** Hashed (keyed HMAC) for Tier 2 (hashedAttributes in contract). */
566
589
  exports.HASHED_TIER_2_SPAN_ATTRIBUTES = [];
@@ -624,6 +647,10 @@ exports.FORBIDDEN_VALUE_PATTERNS = [
624
647
  /-----BEGIN\s+(RSA\s+)?(PRIVATE|PUBLIC)\s+KEY-----/,
625
648
  /\bAKIA[A-Z0-9]{16}\b/,
626
649
  /\b(ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9]{36,}\b/,
650
+ // npm registry tokens (`npm_<36+ alphanumerics>`). The npm-name spec allows
651
+ // underscores, so without this pattern a token shaped like `npm_AAAA...`
652
+ // would slip through `sanitizeNpmPackageName` as a "valid" package name.
653
+ /\bnpm_[A-Za-z0-9]{36,}\b/,
627
654
  /\b(api[_-]?key|apikey|secret[_-]?key|access[_-]?token)[=:]\s*[A-Za-z0-9_-]{20,}\b/i,
628
655
  ];
629
656
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"tier2-traces.js","sourceRoot":"","sources":["../../../src/common/contracts/tier2-traces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tier2-traces.js","sourceRoot":"","sources":["../../../src/common/contracts/tier2-traces.ts"],"names":[],"mappings":"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"}
@@ -14,5 +14,7 @@ export * from "./guardrails.js";
14
14
  export * from "./contracts/tier2-traces.js";
15
15
  export * from "./log-sanitizer.js";
16
16
  export * from "./normalize-metric-path.js";
17
+ export * from "./sanitize-npm-attributes.js";
18
+ export * from "./npm-install-metrics.js";
17
19
  export * from "./tier-hints.js";
18
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC"}
@@ -30,5 +30,7 @@ __exportStar(require("./guardrails.js"), exports);
30
30
  __exportStar(require("./contracts/tier2-traces.js"), exports);
31
31
  __exportStar(require("./log-sanitizer.js"), exports);
32
32
  __exportStar(require("./normalize-metric-path.js"), exports);
33
+ __exportStar(require("./sanitize-npm-attributes.js"), exports);
34
+ __exportStar(require("./npm-install-metrics.js"), exports);
33
35
  __exportStar(require("./tier-hints.js"), exports);
34
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;AAEH,uDAAqC;AACrC,2DAAyC;AACzC,gDAA8B;AAC9B,wDAAsC;AACtC,kDAAgC;AAChC,8DAA4C;AAC5C,qDAAmC;AACnC,6DAA2C;AAC3C,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;AAEH,uDAAqC;AACrC,2DAAyC;AACzC,gDAA8B;AAC9B,wDAAsC;AACtC,kDAAgC;AAChC,8DAA4C;AAC5C,qDAAmC;AACnC,6DAA2C;AAC3C,+DAA6C;AAC7C,2DAAyC;AACzC,kDAAgC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * NPM Install Metrics (APPS-4189 / P6.2)
3
+ *
4
+ * Emits `superblocks.npm.install.*` metrics from every npm install path
5
+ * Superblocks owns and returns the matching attribute set so the caller can
6
+ * annotate its active llmobs span with the same dimensions. The metric and
7
+ * span streams share a closed attribute set so dashboards and traces join
8
+ * cleanly without dimension drift.
9
+ *
10
+ * Cardinality budget (documented contract — must not regress without a
11
+ * migration plan; every dashboard and Datadog saved facet pins on these):
12
+ *
13
+ * - `registry_host` ≤ 3 (`public_npm` | `private` | `unknown`)
14
+ * - `outcome` ≤ 6 (`NPM_OUTCOMES`)
15
+ * - `runner` ≤ 4 (`NPM_INSTALL_RUNNERS`)
16
+ *
17
+ * Total dimension product is bounded at 3 × 6 × 4 = 72 series, well under
18
+ * any per-metric ceiling. New runners or outcomes go through P6.1
19
+ * (sanitization policy) so a future emitter cannot blow the budget by
20
+ * accident.
21
+ *
22
+ * Every value flows through the P6.1 helpers in `./sanitize-npm-attributes`
23
+ * before reaching an OTel instrument, so raw registry hostnames and tokens
24
+ * cannot escape via this emitter — the same guarantee the audit-event
25
+ * emitter (P6.3) relies on.
26
+ */
27
+ import { type NpmOutcome, type NpmRegistryBucket } from "./sanitize-npm-attributes.js";
28
+ /**
29
+ * Closed enum of npm install call sites that emit metrics. One value per
30
+ * call site Superblocks owns. Names are stabilised here; renaming any
31
+ * value breaks every saved dashboard and alert split on `runner`, so
32
+ * additions/removals must come with a migration plan.
33
+ *
34
+ * - `install_all` — full install from package.json (no specific
35
+ * packages). Covers both `AppShell.runNpmInstall`
36
+ * and `AppShell.runPackageManagerInstall`; the
37
+ * two are semantically the same operation routed
38
+ * through different package managers.
39
+ * - `install_specific` — `AppShell.installSpecificPackages` (named
40
+ * packages via `npm add` / equivalent).
41
+ * - `prefetch` — `installTemplateModules` (template
42
+ * `node_modules` prefetch during AiService
43
+ * construction).
44
+ */
45
+ export declare const NPM_INSTALL_RUNNERS: readonly ["install_all", "install_specific", "prefetch"];
46
+ export type NpmInstallRunner = (typeof NPM_INSTALL_RUNNERS)[number];
47
+ export interface NpmInstallMetricInput {
48
+ /** Which install call site emitted this event. */
49
+ runner: NpmInstallRunner;
50
+ /**
51
+ * Registry URL or bare hostname the install was attempting (`null` /
52
+ * `undefined` is fine — bucketed to `unknown`). Always passed through
53
+ * `bucketNpmRegistryHost` before emission, so raw hostnames cannot leak.
54
+ */
55
+ registryHost: string | null | undefined;
56
+ /**
57
+ * Outcome key. Free-form on input; coerced to the closed
58
+ * `NPM_OUTCOMES` enum at the emit boundary (unknown strings → `other`).
59
+ * Use the `NpmInstallBlocked.reason` value for failures and the literal
60
+ * `"success"` on the happy path.
61
+ */
62
+ outcome: string | null | undefined;
63
+ /** Elapsed wall-clock time in milliseconds; clamped at 0. */
64
+ durationMs: number;
65
+ }
66
+ /**
67
+ * Attribute set shaped for direct spread into
68
+ * `llmobs.annotate({ tags: ... })`. Returned by `recordNpmInstall` so the
69
+ * span on the active install call site carries the exact same values that
70
+ * just went into the metric pipeline.
71
+ */
72
+ export interface NpmInstallSpanAttributes {
73
+ "npm.registry_host": NpmRegistryBucket;
74
+ "npm.outcome": NpmOutcome;
75
+ }
76
+ /**
77
+ * Emit one observation of the install metric triple and return the matching
78
+ * span-attribute pair. Idempotent w.r.t. the metric SDK; safe to call from
79
+ * `finally` blocks where the same code path may also throw.
80
+ */
81
+ export declare function recordNpmInstall(input: NpmInstallMetricInput): NpmInstallSpanAttributes;
82
+ /**
83
+ * Test-only: clear cached instruments + last-seen gauge state. Required
84
+ * when a test installs its own MeterProvider, so the next emit re-binds to
85
+ * the test provider and prior runs' gauge entries don't bleed across.
86
+ */
87
+ export declare function _resetNpmInstallMetricsForTesting(): void;
88
+ //# sourceMappingURL=npm-install-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-install-metrics.d.ts","sourceRoot":"","sources":["../../src/common/npm-install-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACvB,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,mBAAmB,0DAItB,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAuEpE,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,MAAM,EAAE,gBAAgB,CAAC;IACzB;;;;OAIG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC;;;;;OAKG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,iBAAiB,CAAC;IACvC,aAAa,EAAE,UAAU,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,qBAAqB,GAC3B,wBAAwB,CAwB1B;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,IAAI,IAAI,CAIxD"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ /**
3
+ * NPM Install Metrics (APPS-4189 / P6.2)
4
+ *
5
+ * Emits `superblocks.npm.install.*` metrics from every npm install path
6
+ * Superblocks owns and returns the matching attribute set so the caller can
7
+ * annotate its active llmobs span with the same dimensions. The metric and
8
+ * span streams share a closed attribute set so dashboards and traces join
9
+ * cleanly without dimension drift.
10
+ *
11
+ * Cardinality budget (documented contract — must not regress without a
12
+ * migration plan; every dashboard and Datadog saved facet pins on these):
13
+ *
14
+ * - `registry_host` ≤ 3 (`public_npm` | `private` | `unknown`)
15
+ * - `outcome` ≤ 6 (`NPM_OUTCOMES`)
16
+ * - `runner` ≤ 4 (`NPM_INSTALL_RUNNERS`)
17
+ *
18
+ * Total dimension product is bounded at 3 × 6 × 4 = 72 series, well under
19
+ * any per-metric ceiling. New runners or outcomes go through P6.1
20
+ * (sanitization policy) so a future emitter cannot blow the budget by
21
+ * accident.
22
+ *
23
+ * Every value flows through the P6.1 helpers in `./sanitize-npm-attributes`
24
+ * before reaching an OTel instrument, so raw registry hostnames and tokens
25
+ * cannot escape via this emitter — the same guarantee the audit-event
26
+ * emitter (P6.3) relies on.
27
+ */
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.NPM_INSTALL_RUNNERS = void 0;
30
+ exports.recordNpmInstall = recordNpmInstall;
31
+ exports._resetNpmInstallMetricsForTesting = _resetNpmInstallMetricsForTesting;
32
+ const api_1 = require("@opentelemetry/api");
33
+ const sanitize_npm_attributes_js_1 = require("./sanitize-npm-attributes.js");
34
+ /**
35
+ * Closed enum of npm install call sites that emit metrics. One value per
36
+ * call site Superblocks owns. Names are stabilised here; renaming any
37
+ * value breaks every saved dashboard and alert split on `runner`, so
38
+ * additions/removals must come with a migration plan.
39
+ *
40
+ * - `install_all` — full install from package.json (no specific
41
+ * packages). Covers both `AppShell.runNpmInstall`
42
+ * and `AppShell.runPackageManagerInstall`; the
43
+ * two are semantically the same operation routed
44
+ * through different package managers.
45
+ * - `install_specific` — `AppShell.installSpecificPackages` (named
46
+ * packages via `npm add` / equivalent).
47
+ * - `prefetch` — `installTemplateModules` (template
48
+ * `node_modules` prefetch during AiService
49
+ * construction).
50
+ */
51
+ exports.NPM_INSTALL_RUNNERS = [
52
+ "install_all",
53
+ "install_specific",
54
+ "prefetch",
55
+ ];
56
+ const METER_NAME = "@superblocksteam/telemetry/npm-install";
57
+ const METRIC_COUNT = "superblocks.npm.install.count";
58
+ const METRIC_DURATION = "superblocks.npm.install.duration";
59
+ const METRIC_STATUS = "superblocks.npm.install.status";
60
+ /**
61
+ * Last-seen status keyed by the attribute tuple. The observable gauge
62
+ * callback reads this on every collection cycle. Entries are intentionally
63
+ * kept until the process exits (or the test reset helper runs): the gauge
64
+ * is "last-seen for dashboards" and a stale combo dropping out would lie
65
+ * about the most recent outcome. The map is bounded by the cardinality
66
+ * budget above (72 entries worst case).
67
+ */
68
+ const lastStatusByLabels = new Map();
69
+ let cachedMeter;
70
+ let cachedInstruments;
71
+ /**
72
+ * Lazy instrument factory. Re-creates instruments and re-registers the
73
+ * gauge callback when the global MeterProvider changes (the typical case
74
+ * is a test that calls `metrics.setGlobalMeterProvider` for isolation —
75
+ * the previous Meter's instruments are no longer wired to the active
76
+ * provider so calling `.add()` / `.record()` on them silently drops data).
77
+ */
78
+ function getInstruments() {
79
+ const meter = api_1.metrics.getMeter(METER_NAME);
80
+ if (meter === cachedMeter && cachedInstruments) {
81
+ return cachedInstruments;
82
+ }
83
+ cachedMeter = meter;
84
+ cachedInstruments = {
85
+ counter: meter.createCounter(METRIC_COUNT, {
86
+ description: "Count of npm install invocations from Superblocks-owned paths.",
87
+ unit: "{install}",
88
+ }),
89
+ histogram: meter.createHistogram(METRIC_DURATION, {
90
+ description: "Duration of npm install invocations.",
91
+ unit: "ms",
92
+ }),
93
+ };
94
+ const gauge = meter.createObservableGauge(METRIC_STATUS, {
95
+ description: "Last-seen npm install status (1 = success, 0 = anything else) per runner+registry+outcome. For at-a-glance dashboards.",
96
+ });
97
+ gauge.addCallback((result) => {
98
+ for (const { value, attrs } of lastStatusByLabels.values()) {
99
+ result.observe(value, attrs);
100
+ }
101
+ });
102
+ return cachedInstruments;
103
+ }
104
+ /**
105
+ * Emit one observation of the install metric triple and return the matching
106
+ * span-attribute pair. Idempotent w.r.t. the metric SDK; safe to call from
107
+ * `finally` blocks where the same code path may also throw.
108
+ */
109
+ function recordNpmInstall(input) {
110
+ const { counter, histogram } = getInstruments();
111
+ const registry_host = (0, sanitize_npm_attributes_js_1.bucketNpmRegistryHost)(input.registryHost);
112
+ const outcome = (0, sanitize_npm_attributes_js_1.normalizeNpmOutcome)(input.outcome);
113
+ const attrs = {
114
+ runner: input.runner,
115
+ registry_host,
116
+ outcome,
117
+ };
118
+ counter.add(1, attrs);
119
+ histogram.record(Math.max(0, input.durationMs), attrs);
120
+ const key = `${attrs.runner}|${attrs.registry_host}|${attrs.outcome}`;
121
+ lastStatusByLabels.set(key, {
122
+ value: outcome === "success" ? 1 : 0,
123
+ attrs,
124
+ });
125
+ return {
126
+ "npm.registry_host": registry_host,
127
+ "npm.outcome": outcome,
128
+ };
129
+ }
130
+ /**
131
+ * Test-only: clear cached instruments + last-seen gauge state. Required
132
+ * when a test installs its own MeterProvider, so the next emit re-binds to
133
+ * the test provider and prior runs' gauge entries don't bleed across.
134
+ */
135
+ function _resetNpmInstallMetricsForTesting() {
136
+ cachedMeter = undefined;
137
+ cachedInstruments = undefined;
138
+ lastStatusByLabels.clear();
139
+ }
140
+ //# sourceMappingURL=npm-install-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-install-metrics.js","sourceRoot":"","sources":["../../src/common/npm-install-metrics.ts"],"names":[],"mappings":"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"}