@owlpane/node 0.1.1 → 0.1.3
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/README.md +15 -1
- package/dist/index.d.ts +13 -0
- package/dist/index.js +23 -2
- package/dist/index.js.map +1 -1
- package/dist/nest.d.ts +4 -0
- package/dist/nest.js +15 -1
- package/dist/nest.js.map +1 -1
- package/dist/signals.d.ts +51 -0
- package/dist/signals.js +236 -0
- package/dist/signals.js.map +1 -0
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -22,9 +22,23 @@ Everything can also come from environment variables: `OTEL_EXPORTER_OTLP_ENDPOIN
|
|
|
22
22
|
- **Your key is a write-only credential.** It can send data for one project and cannot read anything.
|
|
23
23
|
- **Privacy.** Query strings, cookies and authorization headers are removed at the gateway as well as here.
|
|
24
24
|
|
|
25
|
-
Track a background job: `await owlpane.job("nightly-report", "cron", async () => { ... })`.
|
|
25
|
+
Track a background job: `await owlpane.job("nightly-report", "cron", {}, async () => { ... })`.
|
|
26
26
|
Tag the signed-in user (opaque id only): `owlpane.setUser(user.id)`. Email and name are **not** recorded unless you opt in with `traceUserProfile: true` or `OWLPANE_TRACE_USER_PROFILE=1` (discouraged for production).
|
|
27
27
|
|
|
28
|
+
These helpers set the attributes the console pages filter on. They do nothing useful until `start()` has an endpoint, except `mobileResource`, which only returns attributes for you to pass in:
|
|
29
|
+
|
|
30
|
+
| Helper | Attribute | Console page |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| `owlpane.setExperiment(id, variant?)` | `owlpane.experiment.id` | Experiments |
|
|
33
|
+
| `owlpane.setFeatureFlag(key, variant?)` | `feature_flag.key` | Feature flags |
|
|
34
|
+
| `owlpane.testCase(name, fn)` | `test.case.name` and `test.name` | Tests |
|
|
35
|
+
| `owlpane.pipeline(name, fn)` | `cicd.pipeline.name` | CI / DORA |
|
|
36
|
+
| `owlpane.recordFinding({ kind, id, title })` | `owlpane.finding.kind` | Security findings |
|
|
37
|
+
| `owlpane.mobileResource("ios" \| "android" \| "ipados", { reactNative: true })` | `os.name`, and `telemetry.sdk.language=react-native` when asked | Mobile, React Native |
|
|
38
|
+
| `start({ owner, repository })` | `service.owner`, `vcs.repository.url.full` | Service catalog |
|
|
39
|
+
|
|
40
|
+
`os.type` follows the OpenTelemetry enum (`darwin` for iOS and iPadOS, `linux` for Android). The Mobile page matches `os.name` (`iOS`, `Android`, `iPadOS`), not a desktop Node process.
|
|
41
|
+
|
|
28
42
|
**LLM usage in Owlpane:** when your app calls the official [`openai`](https://www.npmjs.com/package/openai) client (including Groq via `baseURL: "https://api.groq.com/openai/v1"`), `@opentelemetry/instrumentation-openai` is registered automatically and emits `gen_ai.*` span attributes for the LLM usage page. Disable with `disableInstrumentations: ["@opentelemetry/instrumentation-openai"]`. Raw `fetch` to an LLM API is not instrumented.
|
|
29
43
|
|
|
30
44
|
Full documentation: the `docs/05-onboarding-applications.md` guide in the Owlpane repository.
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,9 @@
|
|
|
13
13
|
* interceptor) are at "@owlpane/node/nest" so this entry point has no framework dependency.
|
|
14
14
|
*/
|
|
15
15
|
import { api } from "@opentelemetry/sdk-node";
|
|
16
|
+
import { mobileResource, setExperiment, setFeatureFlag, testCase, pipeline, recordFinding, FINDING_KINDS } from "./signals";
|
|
17
|
+
export { mobileResource, setExperiment, setFeatureFlag, testCase, pipeline, recordFinding, FINDING_KINDS };
|
|
18
|
+
export type { FindingKind, MobilePlatform } from "./signals";
|
|
16
19
|
export type InitOptions = {
|
|
17
20
|
/** Shows up as `service.name`. Falls back to OTEL_SERVICE_NAME, then "node-app". */
|
|
18
21
|
service?: string;
|
|
@@ -26,6 +29,10 @@ export type InitOptions = {
|
|
|
26
29
|
release?: string;
|
|
27
30
|
/** Trace sample ratio 0–1. */
|
|
28
31
|
sampleRatio?: number;
|
|
32
|
+
/** `service.owner`. Shown on the service catalog when set. */
|
|
33
|
+
owner?: string;
|
|
34
|
+
/** `vcs.repository.url.full`. Shown on the service catalog when set. */
|
|
35
|
+
repository?: string;
|
|
29
36
|
/** Extra resource attributes merged in alongside service/version/environment. */
|
|
30
37
|
resourceAttributes?: Record<string, string>;
|
|
31
38
|
/** Auto-instrumentation names to turn off, e.g. ["@opentelemetry/instrumentation-fs"]. */
|
|
@@ -68,4 +75,10 @@ export declare const owlpane: {
|
|
|
68
75
|
job: typeof job;
|
|
69
76
|
setUser: typeof setUser;
|
|
70
77
|
isEnabled: typeof isEnabled;
|
|
78
|
+
setExperiment: typeof setExperiment;
|
|
79
|
+
setFeatureFlag: typeof setFeatureFlag;
|
|
80
|
+
testCase: typeof testCase;
|
|
81
|
+
pipeline: typeof pipeline;
|
|
82
|
+
recordFinding: typeof recordFinding;
|
|
83
|
+
mobileResource: typeof mobileResource;
|
|
71
84
|
};
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.owlpane = void 0;
|
|
3
|
+
exports.owlpane = exports.FINDING_KINDS = exports.recordFinding = exports.pipeline = exports.testCase = exports.setFeatureFlag = exports.setExperiment = exports.mobileResource = void 0;
|
|
4
4
|
exports.traceUserProfileEnabled = traceUserProfileEnabled;
|
|
5
5
|
exports.isEnabled = isEnabled;
|
|
6
6
|
exports.start = start;
|
|
@@ -30,6 +30,14 @@ const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-h
|
|
|
30
30
|
const api_logs_1 = require("@opentelemetry/api-logs");
|
|
31
31
|
const sdk_logs_1 = require("@opentelemetry/sdk-logs");
|
|
32
32
|
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
33
|
+
const signals_1 = require("./signals");
|
|
34
|
+
Object.defineProperty(exports, "mobileResource", { enumerable: true, get: function () { return signals_1.mobileResource; } });
|
|
35
|
+
Object.defineProperty(exports, "setExperiment", { enumerable: true, get: function () { return signals_1.setExperiment; } });
|
|
36
|
+
Object.defineProperty(exports, "setFeatureFlag", { enumerable: true, get: function () { return signals_1.setFeatureFlag; } });
|
|
37
|
+
Object.defineProperty(exports, "testCase", { enumerable: true, get: function () { return signals_1.testCase; } });
|
|
38
|
+
Object.defineProperty(exports, "pipeline", { enumerable: true, get: function () { return signals_1.pipeline; } });
|
|
39
|
+
Object.defineProperty(exports, "recordFinding", { enumerable: true, get: function () { return signals_1.recordFinding; } });
|
|
40
|
+
Object.defineProperty(exports, "FINDING_KINDS", { enumerable: true, get: function () { return signals_1.FINDING_KINDS; } });
|
|
33
41
|
const { BatchSpanProcessor, ParentBasedSampler, TraceIdRatioBasedSampler } = sdk_node_1.tracing;
|
|
34
42
|
const { resourceFromAttributes } = sdk_node_1.resources;
|
|
35
43
|
let sdk;
|
|
@@ -92,6 +100,7 @@ function start(options = {}) {
|
|
|
92
100
|
[semantic_conventions_1.ATTR_SERVICE_NAME]: serviceName,
|
|
93
101
|
[semantic_conventions_1.ATTR_SERVICE_VERSION]: version,
|
|
94
102
|
"deployment.environment.name": environment,
|
|
103
|
+
...(0, signals_1.serviceCatalogAttributes)(options.owner, options.repository),
|
|
95
104
|
...options.resourceAttributes,
|
|
96
105
|
});
|
|
97
106
|
logProvider = new sdk_logs_1.LoggerProvider({
|
|
@@ -244,5 +253,17 @@ function registerProcessMetrics(meterName) {
|
|
|
244
253
|
})
|
|
245
254
|
.addCallback((result) => result.observe(process.memoryUsage().rss));
|
|
246
255
|
}
|
|
247
|
-
exports.owlpane = {
|
|
256
|
+
exports.owlpane = {
|
|
257
|
+
start,
|
|
258
|
+
shutdown,
|
|
259
|
+
job,
|
|
260
|
+
setUser,
|
|
261
|
+
isEnabled,
|
|
262
|
+
setExperiment: signals_1.setExperiment,
|
|
263
|
+
setFeatureFlag: signals_1.setFeatureFlag,
|
|
264
|
+
testCase: signals_1.testCase,
|
|
265
|
+
pipeline: signals_1.pipeline,
|
|
266
|
+
recordFinding: signals_1.recordFinding,
|
|
267
|
+
mobileResource: signals_1.mobileResource,
|
|
268
|
+
};
|
|
248
269
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/nest.d.ts
CHANGED
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
import type { CallHandler, ExecutionContext, NestInterceptor } from "@nestjs/common";
|
|
9
9
|
import type { Observable } from "rxjs";
|
|
10
10
|
import "reflect-metadata";
|
|
11
|
+
/** Registers Nest job tracing. Call `owlpane.start()` before the application module is created. */
|
|
12
|
+
export declare class OwlpaneModule {
|
|
13
|
+
constructor();
|
|
14
|
+
}
|
|
11
15
|
/**
|
|
12
16
|
* Traces every `@Cron`/`@Interval`/`@Timeout` handler (`@nestjs/schedule`) and every BullMQ
|
|
13
17
|
* processor (`@nestjs/bullmq`) as its own root span, named after the class and method or the
|
package/dist/nest.js
CHANGED
|
@@ -5,8 +5,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.OwlpaneUserInterceptor = void 0;
|
|
12
|
+
exports.OwlpaneUserInterceptor = exports.OwlpaneModule = void 0;
|
|
10
13
|
exports.installNestJobTracing = installNestJobTracing;
|
|
11
14
|
const common_1 = require("@nestjs/common");
|
|
12
15
|
const node_module_1 = require("node:module");
|
|
@@ -14,6 +17,17 @@ const node_path_1 = require("node:path");
|
|
|
14
17
|
require("reflect-metadata");
|
|
15
18
|
const index_1 = require("./index");
|
|
16
19
|
const logger = new common_1.Logger("OwlpaneNest");
|
|
20
|
+
/** Registers Nest job tracing. Call `owlpane.start()` before the application module is created. */
|
|
21
|
+
let OwlpaneModule = class OwlpaneModule {
|
|
22
|
+
constructor() {
|
|
23
|
+
installNestJobTracing();
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
exports.OwlpaneModule = OwlpaneModule;
|
|
27
|
+
exports.OwlpaneModule = OwlpaneModule = __decorate([
|
|
28
|
+
(0, common_1.Module)({}),
|
|
29
|
+
__metadata("design:paramtypes", [])
|
|
30
|
+
], OwlpaneModule);
|
|
17
31
|
/** Load a peer from the host app (BFF), not from @owlpane/node's copy — otherwise monkey-patches miss. */
|
|
18
32
|
function requireFromHost(specifier) {
|
|
19
33
|
const roots = new Set();
|
package/dist/nest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nest.js","sourceRoot":"","sources":["../src/nest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nest.js","sourceRoot":"","sources":["../src/nest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attribute builders for the console pages that filter on a specific OpenTelemetry field.
|
|
3
|
+
* The names match the catalog queries in the API. Builders never invent a value the caller did not pass.
|
|
4
|
+
*/
|
|
5
|
+
import { type Attributes } from "@opentelemetry/api";
|
|
6
|
+
export declare const EXPERIMENT_ID = "owlpane.experiment.id";
|
|
7
|
+
export declare const EXPERIMENT_VARIANT = "owlpane.experiment.variant";
|
|
8
|
+
/** The Feature flags page filters on this. OpenTelemetry has no experiment signal. */
|
|
9
|
+
export declare const FEATURE_FLAG_KEY = "feature_flag.key";
|
|
10
|
+
export declare const FINDING_KINDS: readonly ["code", "dependency", "static", "runtime", "manifest", "secret", "posture", "identity", "vulnerability", "compliance", "workload"];
|
|
11
|
+
export type FindingKind = (typeof FINDING_KINDS)[number];
|
|
12
|
+
export type MobilePlatform = "ios" | "android" | "ipados";
|
|
13
|
+
/** Resource attributes for a mobile process. `os.name` is the signal the Mobile page matches. */
|
|
14
|
+
export declare function mobileResource(platform: MobilePlatform, opts?: {
|
|
15
|
+
reactNative?: boolean;
|
|
16
|
+
}): Record<string, string>;
|
|
17
|
+
export declare function serviceCatalogAttributes(owner?: string, repository?: string): Record<string, string>;
|
|
18
|
+
export declare function experimentAttributes(id: string, variant?: string): Attributes | undefined;
|
|
19
|
+
export declare function featureFlagAttributes(key: string, variant?: string): Attributes | undefined;
|
|
20
|
+
export declare function testCaseAttributes(name: string, status: "pass" | "fail", suite?: string): Attributes | undefined;
|
|
21
|
+
export declare function pipelineAttributes(name: string, result: "success" | "failure", coverage?: string): Attributes | undefined;
|
|
22
|
+
export declare function findingAttributes(input: {
|
|
23
|
+
kind: FindingKind;
|
|
24
|
+
id: string;
|
|
25
|
+
title: string;
|
|
26
|
+
severity?: string;
|
|
27
|
+
source?: string;
|
|
28
|
+
}): Attributes | undefined;
|
|
29
|
+
/** Stamps `owlpane.experiment.id` on the active span. Experiments are an app attribute, not an OpenTelemetry signal. */
|
|
30
|
+
export declare function setExperiment(id: string, variant?: string): boolean;
|
|
31
|
+
/** Stamps `feature_flag.key` (and `feature_flag.result.variant` when given) on the active span. */
|
|
32
|
+
export declare function setFeatureFlag(key: string, variant?: string): boolean;
|
|
33
|
+
/** Root span named after the test case, with `test.case.name` and `test.name`. */
|
|
34
|
+
export declare function testCase<T>(name: string, fn: () => Promise<T>, opts?: {
|
|
35
|
+
suite?: string;
|
|
36
|
+
}): Promise<T>;
|
|
37
|
+
/** Root span with `cicd.pipeline.name` and `cicd.pipeline.result`. */
|
|
38
|
+
export declare function pipeline<T>(name: string, fn: () => Promise<T>, opts?: {
|
|
39
|
+
coverage?: string;
|
|
40
|
+
}): Promise<T>;
|
|
41
|
+
/**
|
|
42
|
+
* Log record the security catalog pages filter on (`owlpane.finding.kind`).
|
|
43
|
+
* No-op until `start()` has installed the log provider, and no-op for an unknown kind.
|
|
44
|
+
*/
|
|
45
|
+
export declare function recordFinding(input: {
|
|
46
|
+
kind: FindingKind;
|
|
47
|
+
id: string;
|
|
48
|
+
title: string;
|
|
49
|
+
severity?: string;
|
|
50
|
+
source?: string;
|
|
51
|
+
}): boolean;
|
package/dist/signals.js
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FINDING_KINDS = exports.FEATURE_FLAG_KEY = exports.EXPERIMENT_VARIANT = exports.EXPERIMENT_ID = void 0;
|
|
4
|
+
exports.mobileResource = mobileResource;
|
|
5
|
+
exports.serviceCatalogAttributes = serviceCatalogAttributes;
|
|
6
|
+
exports.experimentAttributes = experimentAttributes;
|
|
7
|
+
exports.featureFlagAttributes = featureFlagAttributes;
|
|
8
|
+
exports.testCaseAttributes = testCaseAttributes;
|
|
9
|
+
exports.pipelineAttributes = pipelineAttributes;
|
|
10
|
+
exports.findingAttributes = findingAttributes;
|
|
11
|
+
exports.setExperiment = setExperiment;
|
|
12
|
+
exports.setFeatureFlag = setFeatureFlag;
|
|
13
|
+
exports.testCase = testCase;
|
|
14
|
+
exports.pipeline = pipeline;
|
|
15
|
+
exports.recordFinding = recordFinding;
|
|
16
|
+
/**
|
|
17
|
+
* Attribute builders for the console pages that filter on a specific OpenTelemetry field.
|
|
18
|
+
* The names match the catalog queries in the API. Builders never invent a value the caller did not pass.
|
|
19
|
+
*/
|
|
20
|
+
const api_1 = require("@opentelemetry/api");
|
|
21
|
+
const api_logs_1 = require("@opentelemetry/api-logs");
|
|
22
|
+
/** OpenTelemetry semantic convention names. Inlined because this package's tsconfig resolves modules as "node", which cannot load the incubating export. */
|
|
23
|
+
const ATTR_FEATURE_FLAG_KEY = "feature_flag.key";
|
|
24
|
+
const ATTR_FEATURE_FLAG_RESULT_VARIANT = "feature_flag.result.variant";
|
|
25
|
+
const ATTR_OS_NAME = "os.name";
|
|
26
|
+
const ATTR_OS_TYPE = "os.type";
|
|
27
|
+
const ATTR_TEST_CASE_NAME = "test.case.name";
|
|
28
|
+
const ATTR_TEST_CASE_RESULT_STATUS = "test.case.result.status";
|
|
29
|
+
const ATTR_TEST_SUITE_NAME = "test.suite.name";
|
|
30
|
+
const ATTR_CICD_PIPELINE_NAME = "cicd.pipeline.name";
|
|
31
|
+
const ATTR_CICD_PIPELINE_RESULT = "cicd.pipeline.result";
|
|
32
|
+
const ATTR_VCS_REPOSITORY_URL_FULL = "vcs.repository.url.full";
|
|
33
|
+
const CICD_PIPELINE_RESULT_VALUE_FAILURE = "failure";
|
|
34
|
+
const CICD_PIPELINE_RESULT_VALUE_SUCCESS = "success";
|
|
35
|
+
const OS_TYPE_VALUE_DARWIN = "darwin";
|
|
36
|
+
const OS_TYPE_VALUE_LINUX = "linux";
|
|
37
|
+
const TEST_CASE_RESULT_STATUS_VALUE_FAIL = "fail";
|
|
38
|
+
const TEST_CASE_RESULT_STATUS_VALUE_PASS = "pass";
|
|
39
|
+
exports.EXPERIMENT_ID = "owlpane.experiment.id";
|
|
40
|
+
exports.EXPERIMENT_VARIANT = "owlpane.experiment.variant";
|
|
41
|
+
/** The Feature flags page filters on this. OpenTelemetry has no experiment signal. */
|
|
42
|
+
exports.FEATURE_FLAG_KEY = ATTR_FEATURE_FLAG_KEY;
|
|
43
|
+
exports.FINDING_KINDS = [
|
|
44
|
+
"code",
|
|
45
|
+
"dependency",
|
|
46
|
+
"static",
|
|
47
|
+
"runtime",
|
|
48
|
+
"manifest",
|
|
49
|
+
"secret",
|
|
50
|
+
"posture",
|
|
51
|
+
"identity",
|
|
52
|
+
"vulnerability",
|
|
53
|
+
"compliance",
|
|
54
|
+
"workload",
|
|
55
|
+
];
|
|
56
|
+
const OS_NAME = {
|
|
57
|
+
ios: "iOS",
|
|
58
|
+
android: "Android",
|
|
59
|
+
ipados: "iPadOS",
|
|
60
|
+
};
|
|
61
|
+
/** Resource attributes for a mobile process. `os.name` is the signal the Mobile page matches. */
|
|
62
|
+
function mobileResource(platform, opts) {
|
|
63
|
+
const attrs = {
|
|
64
|
+
[ATTR_OS_TYPE]: platform === "android" ? OS_TYPE_VALUE_LINUX : OS_TYPE_VALUE_DARWIN,
|
|
65
|
+
[ATTR_OS_NAME]: OS_NAME[platform],
|
|
66
|
+
};
|
|
67
|
+
if (opts?.reactNative) {
|
|
68
|
+
attrs["telemetry.sdk.language"] = "react-native";
|
|
69
|
+
attrs["process.runtime.name"] = "react-native";
|
|
70
|
+
}
|
|
71
|
+
return attrs;
|
|
72
|
+
}
|
|
73
|
+
function serviceCatalogAttributes(owner, repository) {
|
|
74
|
+
const attrs = {};
|
|
75
|
+
const o = owner?.trim();
|
|
76
|
+
const repo = repository?.trim();
|
|
77
|
+
if (o)
|
|
78
|
+
attrs["service.owner"] = o;
|
|
79
|
+
if (repo)
|
|
80
|
+
attrs[ATTR_VCS_REPOSITORY_URL_FULL] = repo;
|
|
81
|
+
return attrs;
|
|
82
|
+
}
|
|
83
|
+
function experimentAttributes(id, variant) {
|
|
84
|
+
const key = id.trim();
|
|
85
|
+
if (!key)
|
|
86
|
+
return undefined;
|
|
87
|
+
const attrs = { [exports.EXPERIMENT_ID]: key };
|
|
88
|
+
const v = variant?.trim();
|
|
89
|
+
if (v)
|
|
90
|
+
attrs[exports.EXPERIMENT_VARIANT] = v;
|
|
91
|
+
return attrs;
|
|
92
|
+
}
|
|
93
|
+
function featureFlagAttributes(key, variant) {
|
|
94
|
+
const name = key.trim();
|
|
95
|
+
if (!name)
|
|
96
|
+
return undefined;
|
|
97
|
+
const attrs = { [ATTR_FEATURE_FLAG_KEY]: name };
|
|
98
|
+
const v = variant?.trim();
|
|
99
|
+
if (v)
|
|
100
|
+
attrs[ATTR_FEATURE_FLAG_RESULT_VARIANT] = v;
|
|
101
|
+
return attrs;
|
|
102
|
+
}
|
|
103
|
+
function testCaseAttributes(name, status, suite) {
|
|
104
|
+
const testName = name.trim();
|
|
105
|
+
if (!testName)
|
|
106
|
+
return undefined;
|
|
107
|
+
const attrs = {
|
|
108
|
+
[ATTR_TEST_CASE_NAME]: testName,
|
|
109
|
+
"test.name": testName,
|
|
110
|
+
[ATTR_TEST_CASE_RESULT_STATUS]: status === "pass" ? TEST_CASE_RESULT_STATUS_VALUE_PASS : TEST_CASE_RESULT_STATUS_VALUE_FAIL,
|
|
111
|
+
};
|
|
112
|
+
const suiteName = suite?.trim();
|
|
113
|
+
if (suiteName)
|
|
114
|
+
attrs[ATTR_TEST_SUITE_NAME] = suiteName;
|
|
115
|
+
return attrs;
|
|
116
|
+
}
|
|
117
|
+
function pipelineAttributes(name, result, coverage) {
|
|
118
|
+
const pipeline = name.trim();
|
|
119
|
+
if (!pipeline)
|
|
120
|
+
return undefined;
|
|
121
|
+
const attrs = {
|
|
122
|
+
[ATTR_CICD_PIPELINE_NAME]: pipeline,
|
|
123
|
+
[ATTR_CICD_PIPELINE_RESULT]: result === "success" ? CICD_PIPELINE_RESULT_VALUE_SUCCESS : CICD_PIPELINE_RESULT_VALUE_FAILURE,
|
|
124
|
+
};
|
|
125
|
+
const cov = coverage?.trim();
|
|
126
|
+
if (cov)
|
|
127
|
+
attrs["cicd.coverage"] = cov;
|
|
128
|
+
return attrs;
|
|
129
|
+
}
|
|
130
|
+
function findingAttributes(input) {
|
|
131
|
+
if (!exports.FINDING_KINDS.includes(input.kind))
|
|
132
|
+
return undefined;
|
|
133
|
+
const id = input.id.trim();
|
|
134
|
+
const title = input.title.trim();
|
|
135
|
+
if (!id || !title)
|
|
136
|
+
return undefined;
|
|
137
|
+
const attrs = {
|
|
138
|
+
"owlpane.finding.kind": input.kind,
|
|
139
|
+
"owlpane.finding.id": id,
|
|
140
|
+
"owlpane.finding.title": title,
|
|
141
|
+
};
|
|
142
|
+
const severity = input.severity?.trim();
|
|
143
|
+
const source = input.source?.trim();
|
|
144
|
+
if (severity)
|
|
145
|
+
attrs["owlpane.finding.severity"] = severity;
|
|
146
|
+
if (source)
|
|
147
|
+
attrs["owlpane.finding.source"] = source;
|
|
148
|
+
return attrs;
|
|
149
|
+
}
|
|
150
|
+
function stamp(attrs) {
|
|
151
|
+
if (!attrs)
|
|
152
|
+
return false;
|
|
153
|
+
const span = api_1.trace.getActiveSpan();
|
|
154
|
+
if (!span)
|
|
155
|
+
return false;
|
|
156
|
+
span.setAttributes(attrs);
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
/** Stamps `owlpane.experiment.id` on the active span. Experiments are an app attribute, not an OpenTelemetry signal. */
|
|
160
|
+
function setExperiment(id, variant) {
|
|
161
|
+
return stamp(experimentAttributes(id, variant));
|
|
162
|
+
}
|
|
163
|
+
/** Stamps `feature_flag.key` (and `feature_flag.result.variant` when given) on the active span. */
|
|
164
|
+
function setFeatureFlag(key, variant) {
|
|
165
|
+
return stamp(featureFlagAttributes(key, variant));
|
|
166
|
+
}
|
|
167
|
+
/** Root span named after the test case, with `test.case.name` and `test.name`. */
|
|
168
|
+
async function testCase(name, fn, opts) {
|
|
169
|
+
const testName = name.trim();
|
|
170
|
+
if (!testName)
|
|
171
|
+
return fn();
|
|
172
|
+
const tracer = api_1.trace.getTracer("owlpane-tests");
|
|
173
|
+
return tracer.startActiveSpan(testName, { root: true }, async (span) => {
|
|
174
|
+
try {
|
|
175
|
+
const value = await fn();
|
|
176
|
+
const attrs = testCaseAttributes(name, "pass", opts?.suite);
|
|
177
|
+
if (attrs)
|
|
178
|
+
span.setAttributes(attrs);
|
|
179
|
+
return value;
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
const attrs = testCaseAttributes(name, "fail", opts?.suite);
|
|
183
|
+
if (attrs)
|
|
184
|
+
span.setAttributes(attrs);
|
|
185
|
+
const e = err instanceof Error ? err : new Error(String(err));
|
|
186
|
+
span.recordException(e);
|
|
187
|
+
span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: e.message });
|
|
188
|
+
throw err;
|
|
189
|
+
}
|
|
190
|
+
finally {
|
|
191
|
+
span.end();
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
/** Root span with `cicd.pipeline.name` and `cicd.pipeline.result`. */
|
|
196
|
+
async function pipeline(name, fn, opts) {
|
|
197
|
+
const pipelineName = name.trim();
|
|
198
|
+
if (!pipelineName)
|
|
199
|
+
return fn();
|
|
200
|
+
const tracer = api_1.trace.getTracer("owlpane-cicd");
|
|
201
|
+
return tracer.startActiveSpan(pipelineName, { root: true }, async (span) => {
|
|
202
|
+
let result = "success";
|
|
203
|
+
try {
|
|
204
|
+
return await fn();
|
|
205
|
+
}
|
|
206
|
+
catch (err) {
|
|
207
|
+
result = "failure";
|
|
208
|
+
const e = err instanceof Error ? err : new Error(String(err));
|
|
209
|
+
span.recordException(e);
|
|
210
|
+
span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: e.message });
|
|
211
|
+
throw err;
|
|
212
|
+
}
|
|
213
|
+
finally {
|
|
214
|
+
const attrs = pipelineAttributes(name, result, opts?.coverage);
|
|
215
|
+
if (attrs)
|
|
216
|
+
span.setAttributes(attrs);
|
|
217
|
+
span.end();
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Log record the security catalog pages filter on (`owlpane.finding.kind`).
|
|
223
|
+
* No-op until `start()` has installed the log provider, and no-op for an unknown kind.
|
|
224
|
+
*/
|
|
225
|
+
function recordFinding(input) {
|
|
226
|
+
const attributes = findingAttributes(input);
|
|
227
|
+
if (!attributes)
|
|
228
|
+
return false;
|
|
229
|
+
api_logs_1.logs.getLogger("owlpane-findings").emit({
|
|
230
|
+
body: input.title.trim(),
|
|
231
|
+
severityNumber: api_logs_1.SeverityNumber.WARN,
|
|
232
|
+
attributes,
|
|
233
|
+
});
|
|
234
|
+
return true;
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=signals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signals.js","sourceRoot":"","sources":["../src/signals.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlpane/node",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Owlpane telemetry SDK for Node.js: one-line OpenTelemetry setup, job tracing, and user tagging. Optional NestJS helpers at @owlpane/node/nest.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
"directory": "packages/node"
|
|
10
10
|
},
|
|
11
11
|
"publishConfig": {
|
|
12
|
-
"access": "public"
|
|
12
|
+
"access": "public",
|
|
13
|
+
"registry": "https://registry.npmjs.org"
|
|
13
14
|
},
|
|
14
15
|
"main": "dist/index.js",
|
|
15
16
|
"types": "dist/index.d.ts",
|
|
@@ -32,7 +33,7 @@
|
|
|
32
33
|
"scripts": {
|
|
33
34
|
"build": "tsc -p tsconfig.json",
|
|
34
35
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
35
|
-
"test": "node --test --import tsx test
|
|
36
|
+
"test": "node --test --import tsx test/*.test.ts"
|
|
36
37
|
},
|
|
37
38
|
"dependencies": {
|
|
38
39
|
"@opentelemetry/auto-instrumentations-node": "^0.80.0",
|