@relkit/graph 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/foundation-nodes.d.ts +3 -2
- package/dist/foundation-nodes.d.ts.map +1 -1
- package/dist/graph-validation.d.ts.map +1 -1
- package/dist/graph-validation.js +11 -2
- package/dist/graph-validation.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/model.d.ts +2 -13
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js.map +1 -1
- package/dist/provider-nodes.d.ts +57 -0
- package/dist/provider-nodes.d.ts.map +1 -0
- package/dist/provider-nodes.js +2 -0
- package/dist/provider-nodes.js.map +1 -0
- package/dist/provider-validation.d.ts +1 -0
- package/dist/provider-validation.d.ts.map +1 -1
- package/dist/provider-validation.js +132 -9
- package/dist/provider-validation.js.map +1 -1
- package/dist/telemetry-validation.d.ts +2 -0
- package/dist/telemetry-validation.d.ts.map +1 -0
- package/dist/telemetry-validation.js +95 -0
- package/dist/telemetry-validation.js.map +1 -0
- package/package.json +2 -2
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { JsonValue } from "@relkit/contracts";
|
|
2
2
|
import type { GraphNodeBase } from "./model.js";
|
|
3
|
+
import type { DeploymentRoleProjection } from "./provider-nodes.js";
|
|
3
4
|
export interface AppNode extends GraphNodeBase<"app"> {
|
|
4
5
|
readonly environment?: JsonValue;
|
|
5
|
-
readonly
|
|
6
|
-
readonly observability?: JsonValue;
|
|
6
|
+
readonly telemetry?: JsonValue;
|
|
7
7
|
readonly defaults?: JsonValue;
|
|
8
|
+
readonly deploymentRoles?: readonly DeploymentRoleProjection[];
|
|
8
9
|
}
|
|
9
10
|
export interface EnvironmentVariableNode extends GraphNodeBase<"env"> {
|
|
10
11
|
readonly name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundation-nodes.d.ts","sourceRoot":"","sources":["../src/foundation-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"foundation-nodes.d.ts","sourceRoot":"","sources":["../src/foundation-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEpE,MAAM,WAAW,OAAQ,SAAQ,aAAa,CAAC,KAAK,CAAC;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAChE;AAED,MAAM,WAAW,uBAAwB,SAAQ,aAAa,CAAC,KAAK,CAAC;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-validation.d.ts","sourceRoot":"","sources":["../src/graph-validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph-validation.d.ts","sourceRoot":"","sources":["../src/graph-validation.ts"],"names":[],"mappings":"AAOA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAatE"}
|
package/dist/graph-validation.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { isStableId, normalizeSourceLocation } from "@relkit/contracts";
|
|
1
|
+
import { GRAPH_VERSION, isStableId, normalizeSourceLocation } from "@relkit/contracts";
|
|
2
2
|
import { isGraphEdgeKind, isGraphNodeKind } from "./model.js";
|
|
3
|
-
import { validateProviderNode } from "./provider-validation.js";
|
|
3
|
+
import { validateDeploymentRoles, validateProviderNode } from "./provider-validation.js";
|
|
4
4
|
import { validateServiceNode } from "./service-validation.js";
|
|
5
5
|
import { validateEventTargets } from "./event-validation.js";
|
|
6
|
+
import { validateTelemetryConfiguration } from "./telemetry-validation.js";
|
|
6
7
|
export function validateGraphShape(value, root) {
|
|
7
8
|
if (!isRecord(value) || !Array.isArray(value.nodes) || !Array.isArray(value.edges)) {
|
|
8
9
|
fail("A graph must contain nodes and edges arrays.");
|
|
9
10
|
}
|
|
11
|
+
if (value.contractVersion !== GRAPH_VERSION)
|
|
12
|
+
fail(`Graph contract version ${String(value.contractVersion)} is unsupported; expected ${GRAPH_VERSION}. Regenerate with \`relkit check\`.`);
|
|
10
13
|
rejectUnboundIdentities(value);
|
|
11
14
|
if (value.appId !== undefined && !isCanonicalId(value.appId))
|
|
12
15
|
fail("Graph appId is invalid.");
|
|
@@ -48,6 +51,12 @@ function validateNode(value, root, index) {
|
|
|
48
51
|
validateServiceNode(value, index, validateId);
|
|
49
52
|
if (value.kind === "provider")
|
|
50
53
|
validateProviderNode(value, index, fail);
|
|
54
|
+
if (value.kind === "app") {
|
|
55
|
+
if ("providerBindings" in value || "observability" in value)
|
|
56
|
+
fail(`Graph nodes[${index}] contains legacy provider data.`);
|
|
57
|
+
validateDeploymentRoles(value.deploymentRoles, index, "app", fail);
|
|
58
|
+
validateTelemetryConfiguration(value.telemetry, index, fail);
|
|
59
|
+
}
|
|
51
60
|
if (value.kind === "middleware") {
|
|
52
61
|
if (typeof value.path !== "string" || !Number.isSafeInteger(value.order)) {
|
|
53
62
|
fail(`Graph nodes[${index}] middleware metadata is invalid.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-validation.js","sourceRoot":"","sources":["../src/graph-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-validation.js","sourceRoot":"","sources":["../src/graph-validation.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
|
package/dist/model.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { JsonValue, SourceLocation } from "@relkit/contracts";
|
|
2
2
|
import type { AppNode, EnvironmentVariableNode, GeneratedAgentMarker } from "./foundation-nodes.js";
|
|
3
3
|
import type { DomainExposure, ErrorNode, FunctionNode } from "./domain-nodes.js";
|
|
4
|
+
import type { ProviderBindingNode } from "./provider-nodes.js";
|
|
4
5
|
import type { ServiceNode } from "./service-nodes.js";
|
|
5
6
|
export declare const GRAPH_NODE_KINDS: readonly ["app", "env", "function", "error", "trigger", "job", "event", "bucket", "cache", "tool", "agent", "provider", "service", "middleware", "hook"];
|
|
6
7
|
export type GraphNodeKind = (typeof GRAPH_NODE_KINDS)[number];
|
|
@@ -115,19 +116,7 @@ export interface AgentNode extends GraphNodeBase<"agent"> {
|
|
|
115
116
|
readonly generatedFunction: GeneratedAgentMarker;
|
|
116
117
|
readonly profile: string;
|
|
117
118
|
}
|
|
118
|
-
export
|
|
119
|
-
readonly profile: string;
|
|
120
|
-
readonly capability: string;
|
|
121
|
-
readonly adapter: string;
|
|
122
|
-
readonly ownership: "external" | "managed";
|
|
123
|
-
readonly configuration: JsonValue;
|
|
124
|
-
readonly environment: readonly {
|
|
125
|
-
readonly name: string;
|
|
126
|
-
readonly type: string;
|
|
127
|
-
readonly sensitive: boolean;
|
|
128
|
-
}[];
|
|
129
|
-
}
|
|
130
|
-
export type GraphNode = AppNode | EnvironmentVariableNode | FunctionNode | ErrorNode | TriggerNode | JobNode | EventNode | BucketNode | CacheNode | ToolNode | AgentNode | ProviderProfileNode | ServiceNode | MiddlewareNode | HookNode;
|
|
119
|
+
export type GraphNode = AppNode | EnvironmentVariableNode | FunctionNode | ErrorNode | TriggerNode | JobNode | EventNode | BucketNode | CacheNode | ToolNode | AgentNode | ProviderBindingNode | ServiceNode | MiddlewareNode | HookNode;
|
|
131
120
|
export { GRAPH_EDGE_KINDS, isGraphEdgeKind, type GraphEdge, type GraphEdgeBase, type GraphEdgeKind, type TargetsFunctionEdge, type UsesHookEdge, type UsesMiddlewareEdge, } from "./graph-edges.js";
|
|
132
121
|
export type TargetFunctionRole = "primary";
|
|
133
122
|
export type { ApplicationGraph, Graph, ObservedEdge } from "./graph-types.js";
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAO,MAAM,gBAAgB,0JAgBnB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AACvE,MAAM,WAAW,aAAa,CAAC,IAAI,SAAS,aAAa,GAAG,aAAa;IACvE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AACD,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjF,YAAY,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,aAAa,CAAC;CAC1C;AACD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;CAC5B;AACD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;QACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AACD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AACD,MAAM,WAAW,WAAW,CAC1B,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,EACnD,MAAM,GAAG,SAAS,CAClB,SAAQ,aAAa,CAAC,SAAS,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,OAAQ,SAAQ,aAAa,CAAC,KAAK,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;CAClC;AACD,MAAM,WAAW,SAAU,SAAQ,aAAa,CAAC,OAAO,CAAC;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,UAAW,SAAQ,aAAa,CAAC,QAAQ,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClD;AACD,MAAM,WAAW,SAAU,SAAQ,aAAa,CAAC,OAAO,CAAC;IACvD,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AACD,MAAM,WAAW,QAAS,SAAQ,aAAa,CAAC,MAAM,CAAC;IACrD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AACD,MAAM,WAAW,cAAe,SAAQ,aAAa,CAAC,YAAY,CAAC;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AACD,MAAM,WAAW,QAAS,SAAQ,aAAa,CAAC,MAAM,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;CACpC;AACD,MAAM,WAAW,SAAU,SAAQ,aAAa,CAAC,OAAO,CAAC;IACvD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,uBAAuB,GACvB,YAAY,GACZ,SAAS,GACT,WAAW,GACX,OAAO,GACP,SAAS,GACT,UAAU,GACV,SAAS,GACT,QAAQ,GACR,SAAS,GACT,mBAAmB,GACnB,WAAW,GACX,cAAc,GACd,QAAQ,CAAC;AACb,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE"}
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK;IACL,KAAK;IACL,UAAU;IACV,OAAO;IACP,SAAS;IACT,KAAK;IACL,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,UAAU;IACV,SAAS;IACT,YAAY;IACZ,MAAM;CACE,CAAC;AAoIX,OAAO,EACL,gBAAgB,EAChB,eAAe,GAOhB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { JsonValue } from "@relkit/contracts";
|
|
2
|
+
import type { GraphNodeBase } from "./model.js";
|
|
3
|
+
export declare const PROVIDER_CAPABILITIES: readonly ["bucket", "cache", "job", "event", "model"];
|
|
4
|
+
export type ProviderCapability = (typeof PROVIDER_CAPABILITIES)[number];
|
|
5
|
+
export interface ProviderConnectionFieldProjection {
|
|
6
|
+
readonly required: boolean;
|
|
7
|
+
readonly sensitive: boolean;
|
|
8
|
+
readonly authoredValue: "fixed" | "fallback";
|
|
9
|
+
readonly default?: JsonValue;
|
|
10
|
+
}
|
|
11
|
+
export interface ProviderAdapterProjection {
|
|
12
|
+
readonly integrationId: string;
|
|
13
|
+
readonly adapterId: string;
|
|
14
|
+
readonly protocolVersion: 1;
|
|
15
|
+
readonly behavior: JsonValue;
|
|
16
|
+
readonly connectionContract: Readonly<Record<string, ProviderConnectionFieldProjection>>;
|
|
17
|
+
readonly connection: Readonly<Record<string, JsonValue>>;
|
|
18
|
+
readonly features: readonly string[];
|
|
19
|
+
}
|
|
20
|
+
export type ProviderSourceProjection = Readonly<{
|
|
21
|
+
kind: "connected";
|
|
22
|
+
}> | Readonly<{
|
|
23
|
+
kind: "local-only";
|
|
24
|
+
}> | Readonly<{
|
|
25
|
+
kind: "infrastructure";
|
|
26
|
+
integrationId: string;
|
|
27
|
+
options: JsonValue;
|
|
28
|
+
}>;
|
|
29
|
+
export interface ProviderNamedValueProjection {
|
|
30
|
+
readonly field: string;
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly type: string;
|
|
33
|
+
readonly sensitive: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface ProviderLocalRecipeProjection {
|
|
36
|
+
readonly integrationId: string;
|
|
37
|
+
readonly recipeId: string;
|
|
38
|
+
readonly recipeVersion: number;
|
|
39
|
+
}
|
|
40
|
+
export type DeploymentRole = "engine" | "host" | "infrastructure" | "access";
|
|
41
|
+
export interface DeploymentRoleProjection {
|
|
42
|
+
readonly role: DeploymentRole;
|
|
43
|
+
readonly integrationId: string;
|
|
44
|
+
readonly protocolVersion: 1;
|
|
45
|
+
readonly configuration: JsonValue;
|
|
46
|
+
}
|
|
47
|
+
export interface ProviderBindingNode extends GraphNodeBase<"provider"> {
|
|
48
|
+
readonly capability: ProviderCapability;
|
|
49
|
+
readonly profile: string;
|
|
50
|
+
readonly adapter: ProviderAdapterProjection;
|
|
51
|
+
readonly providerSource: ProviderSourceProjection;
|
|
52
|
+
readonly namedValues: readonly ProviderNamedValueProjection[];
|
|
53
|
+
readonly local?: ProviderLocalRecipeProjection;
|
|
54
|
+
readonly access?: JsonValue;
|
|
55
|
+
readonly deploymentRoles: readonly DeploymentRoleProjection[];
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=provider-nodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-nodes.d.ts","sourceRoot":"","sources":["../src/provider-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,qBAAqB,uDAAwD,CAAC;AAE3F,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,OAAO,GAAG,UAAU,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC,CAAC;IACzF,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,wBAAwB,GAChC,QAAQ,CAAC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,GAC/B,QAAQ,CAAC;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,GAChC,QAAQ,CAAC;IACP,IAAI,EAAE,gBAAgB,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,SAAS,CAAC;CACpB,CAAC,CAAC;AAEP,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,gBAAgB,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa,CAAC,UAAU,CAAC;IACpE,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-nodes.js","sourceRoot":"","sources":["../src/provider-nodes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export declare function validateProviderNode(value: Record<string, unknown>, index: number, fail: (message: string) => never): void;
|
|
2
|
+
export declare function validateDeploymentRoles(value: unknown, index: number, owner: "app" | "provider", fail: (message: string) => never): void;
|
|
2
3
|
//# sourceMappingURL=provider-validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-validation.d.ts","sourceRoot":"","sources":["../src/provider-validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider-validation.d.ts","sourceRoot":"","sources":["../src/provider-validation.ts"],"names":[],"mappings":"AAaA,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GAC/B,IAAI,CAkBN;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,GAAG,UAAU,EACzB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GAC/B,IAAI,CAyBN"}
|
|
@@ -1,21 +1,144 @@
|
|
|
1
|
+
import { PROVIDER_CAPABILITIES } from "./provider-nodes.js";
|
|
2
|
+
const bindingValueTypes = [
|
|
3
|
+
"string",
|
|
4
|
+
"number",
|
|
5
|
+
"boolean",
|
|
6
|
+
"port",
|
|
7
|
+
"url",
|
|
8
|
+
"json",
|
|
9
|
+
"secret-string",
|
|
10
|
+
];
|
|
11
|
+
const deploymentRoles = ["engine", "host", "infrastructure", "access"];
|
|
1
12
|
export function validateProviderNode(value, index, fail) {
|
|
2
|
-
|
|
3
|
-
if (!capabilities.includes(String(value.capability)) ||
|
|
13
|
+
if (!PROVIDER_CAPABILITIES.includes(value.capability) ||
|
|
4
14
|
!nonEmpty(value.profile) ||
|
|
5
|
-
!
|
|
6
|
-
(value.
|
|
7
|
-
!Array.isArray(value.
|
|
15
|
+
!isRecord(value.adapter) ||
|
|
16
|
+
!isRecord(value.providerSource) ||
|
|
17
|
+
!Array.isArray(value.namedValues) ||
|
|
18
|
+
!Array.isArray(value.deploymentRoles) ||
|
|
19
|
+
"ownership" in value) {
|
|
8
20
|
fail(`Graph nodes[${index}] provider metadata is invalid.`);
|
|
9
21
|
}
|
|
10
|
-
value.
|
|
22
|
+
validateAdapter(value.adapter, index, fail);
|
|
23
|
+
validateProviderSource(value.providerSource, index, fail);
|
|
24
|
+
validateNamedValues(value, index, fail);
|
|
25
|
+
validateLocal(value.local, index, fail);
|
|
26
|
+
validateDeploymentRoles(value.deploymentRoles, index, "provider", fail);
|
|
27
|
+
validateRoleConsistency(value, index, fail);
|
|
28
|
+
}
|
|
29
|
+
export function validateDeploymentRoles(value, index, owner, fail) {
|
|
30
|
+
if (value === undefined && owner === "app")
|
|
31
|
+
return;
|
|
32
|
+
if (!Array.isArray(value))
|
|
33
|
+
fail(`Graph nodes[${index}].deploymentRoles is invalid.`);
|
|
34
|
+
const seen = new Set();
|
|
35
|
+
value.forEach((entry, roleIndex) => {
|
|
36
|
+
if (isRecord(entry) && entry.protocolVersion !== 1)
|
|
37
|
+
fail(`Graph nodes[${index}].deploymentRoles[${roleIndex}] protocol version ${String(entry.protocolVersion)} is unsupported; regenerate with \`relkit check\`.`);
|
|
38
|
+
if (!isRecord(entry) ||
|
|
39
|
+
!deploymentRoles.includes(entry.role) ||
|
|
40
|
+
!nonEmpty(entry.integrationId) ||
|
|
41
|
+
entry.protocolVersion !== 1 ||
|
|
42
|
+
!Object.hasOwn(entry, "configuration")) {
|
|
43
|
+
fail(`Graph nodes[${index}].deploymentRoles[${roleIndex}] is invalid.`);
|
|
44
|
+
}
|
|
45
|
+
const role = entry.role;
|
|
46
|
+
if ((owner === "app") !== (role === "engine" || role === "host")) {
|
|
47
|
+
fail(`Graph nodes[${index}].deploymentRoles[${roleIndex}] has an invalid role.`);
|
|
48
|
+
}
|
|
49
|
+
if (seen.has(role))
|
|
50
|
+
fail(`Graph nodes[${index}] has duplicate ${role} deployment roles.`);
|
|
51
|
+
seen.add(role);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function validateAdapter(adapter, index, fail) {
|
|
55
|
+
if (adapter.protocolVersion !== 1)
|
|
56
|
+
fail(`Graph nodes[${index}].adapter protocol version ${String(adapter.protocolVersion)} is unsupported; regenerate with \`relkit check\`.`);
|
|
57
|
+
if (!nonEmpty(adapter.integrationId) ||
|
|
58
|
+
!nonEmpty(adapter.adapterId) ||
|
|
59
|
+
adapter.protocolVersion !== 1 ||
|
|
60
|
+
!Object.hasOwn(adapter, "behavior") ||
|
|
61
|
+
!isRecord(adapter.connectionContract) ||
|
|
62
|
+
!isRecord(adapter.connection) ||
|
|
63
|
+
!textList(adapter.features)) {
|
|
64
|
+
fail(`Graph nodes[${index}].adapter is invalid.`);
|
|
65
|
+
}
|
|
66
|
+
for (const [field, metadata] of Object.entries(adapter.connectionContract)) {
|
|
67
|
+
if (!nonEmpty(field) ||
|
|
68
|
+
!isRecord(metadata) ||
|
|
69
|
+
typeof metadata.required !== "boolean" ||
|
|
70
|
+
typeof metadata.sensitive !== "boolean" ||
|
|
71
|
+
(metadata.authoredValue !== "fixed" && metadata.authoredValue !== "fallback") ||
|
|
72
|
+
(metadata.sensitive === true && Object.hasOwn(metadata, "default"))) {
|
|
73
|
+
fail(`Graph nodes[${index}].adapter.connectionContract.${field} is invalid.`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
for (const field of Object.keys(adapter.connection)) {
|
|
77
|
+
const metadata = adapter.connectionContract[field];
|
|
78
|
+
if (!isRecord(metadata) || metadata.sensitive === true) {
|
|
79
|
+
fail(`Graph nodes[${index}].adapter.connection.${field} is invalid.`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function validateProviderSource(source, index, fail) {
|
|
84
|
+
if (source.kind === "connected" || source.kind === "local-only")
|
|
85
|
+
return;
|
|
86
|
+
if (source.kind !== "infrastructure" ||
|
|
87
|
+
!nonEmpty(source.integrationId) ||
|
|
88
|
+
!Object.hasOwn(source, "options")) {
|
|
89
|
+
fail(`Graph nodes[${index}].providerSource is invalid.`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function validateNamedValues(value, index, fail) {
|
|
93
|
+
const adapter = value.adapter;
|
|
94
|
+
const contract = adapter.connectionContract;
|
|
95
|
+
const connection = adapter.connection;
|
|
96
|
+
const seen = new Set();
|
|
97
|
+
value.namedValues.forEach((entry, namedIndex) => {
|
|
11
98
|
if (!isRecord(entry) ||
|
|
99
|
+
!nonEmpty(entry.field) ||
|
|
12
100
|
!nonEmpty(entry.name) ||
|
|
13
|
-
!
|
|
14
|
-
typeof entry.sensitive !== "boolean"
|
|
15
|
-
|
|
101
|
+
!bindingValueTypes.includes(entry.type) ||
|
|
102
|
+
typeof entry.sensitive !== "boolean" ||
|
|
103
|
+
Object.hasOwn(entry, "value")) {
|
|
104
|
+
fail(`Graph nodes[${index}].namedValues[${namedIndex}] is invalid.`);
|
|
105
|
+
}
|
|
106
|
+
const field = entry.field;
|
|
107
|
+
const metadata = contract[field];
|
|
108
|
+
if (seen.has(field) ||
|
|
109
|
+
Object.hasOwn(connection, field) ||
|
|
110
|
+
!isRecord(metadata) ||
|
|
111
|
+
metadata.sensitive !== entry.sensitive) {
|
|
112
|
+
fail(`Graph nodes[${index}].namedValues[${namedIndex}] does not match its contract.`);
|
|
16
113
|
}
|
|
114
|
+
seen.add(field);
|
|
17
115
|
});
|
|
18
116
|
}
|
|
117
|
+
function validateLocal(value, index, fail) {
|
|
118
|
+
if (value === undefined)
|
|
119
|
+
return;
|
|
120
|
+
if (!isRecord(value) ||
|
|
121
|
+
!nonEmpty(value.integrationId) ||
|
|
122
|
+
!nonEmpty(value.recipeId) ||
|
|
123
|
+
!Number.isSafeInteger(value.recipeVersion) ||
|
|
124
|
+
value.recipeVersion < 1) {
|
|
125
|
+
fail(`Graph nodes[${index}].local is invalid.`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function validateRoleConsistency(value, index, fail) {
|
|
129
|
+
const source = value.providerSource;
|
|
130
|
+
const roles = value.deploymentRoles;
|
|
131
|
+
const infrastructure = roles.find((entry) => entry.role === "infrastructure");
|
|
132
|
+
const access = roles.find((entry) => entry.role === "access");
|
|
133
|
+
if ((source.kind === "infrastructure") !== (infrastructure !== undefined) ||
|
|
134
|
+
(infrastructure !== undefined && infrastructure.integrationId !== source.integrationId) ||
|
|
135
|
+
(value.access !== undefined) !== (access !== undefined)) {
|
|
136
|
+
fail(`Graph nodes[${index}] deployment roles do not match its provider source.`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function textList(value) {
|
|
140
|
+
return Array.isArray(value) && value.every(nonEmpty) && new Set(value).size === value.length;
|
|
141
|
+
}
|
|
19
142
|
function nonEmpty(value) {
|
|
20
143
|
return typeof value === "string" && value.trim().length > 0;
|
|
21
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-validation.js","sourceRoot":"","sources":["../src/provider-validation.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAClC,KAA8B,EAC9B,KAAa,EACb,IAAgC;IAEhC,MAAM,
|
|
1
|
+
{"version":3,"file":"provider-validation.js","sourceRoot":"","sources":["../src/provider-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAuB,MAAM,qBAAqB,CAAC;AAEjF,MAAM,iBAAiB,GAAG;IACxB,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,KAAK;IACL,MAAM;IACN,eAAe;CACP,CAAC;AACX,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAU,CAAC;AAEhF,MAAM,UAAU,oBAAoB,CAClC,KAA8B,EAC9B,KAAa,EACb,IAAgC;IAEhC,IACE,CAAE,qBAA4C,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;QACzE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QACxB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QACxB,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;QAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;QACjC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;QACrC,WAAW,IAAI,KAAK,EACpB,CAAC;QACD,IAAI,CAAC,eAAe,KAAK,iCAAiC,CAAC,CAAC;IAC9D,CAAC;IACD,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5C,sBAAsB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1D,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACxC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACxC,uBAAuB,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACxE,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAc,EACd,KAAa,EACb,KAAyB,EACzB,IAAgC;IAEhC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,eAAe,KAAK,+BAA+B,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACjC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC;YAChD,IAAI,CACF,eAAe,KAAK,qBAAqB,SAAS,sBAAsB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,oDAAoD,CAC1J,CAAC;QACJ,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChB,CAAE,eAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7D,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;YAC9B,KAAK,CAAC,eAAe,KAAK,CAAC;YAC3B,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,EACtC,CAAC;YACD,IAAI,CAAC,eAAe,KAAK,qBAAqB,SAAS,eAAe,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAsB,CAAC;QAC1C,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,eAAe,KAAK,qBAAqB,SAAS,wBAAwB,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,eAAe,KAAK,mBAAmB,IAAI,oBAAoB,CAAC,CAAC;QAC1F,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CACtB,OAAgC,EAChC,KAAa,EACb,IAAgC;IAEhC,IAAI,OAAO,CAAC,eAAe,KAAK,CAAC;QAC/B,IAAI,CACF,eAAe,KAAK,8BAA8B,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,oDAAoD,CACtI,CAAC;IACJ,IACE,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;QAChC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5B,OAAO,CAAC,eAAe,KAAK,CAAC;QAC7B,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;QACnC,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACrC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7B,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAC3B,CAAC;QACD,IAAI,CAAC,eAAe,KAAK,uBAAuB,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC3E,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnB,OAAO,QAAQ,CAAC,QAAQ,KAAK,SAAS;YACtC,OAAO,QAAQ,CAAC,SAAS,KAAK,SAAS;YACvC,CAAC,QAAQ,CAAC,aAAa,KAAK,OAAO,IAAI,QAAQ,CAAC,aAAa,KAAK,UAAU,CAAC;YAC7E,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EACnE,CAAC;YACD,IAAI,CAAC,eAAe,KAAK,gCAAgC,KAAK,cAAc,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,eAAe,KAAK,wBAAwB,KAAK,cAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAA+B,EAC/B,KAAa,EACb,IAAgC;IAEhC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO;IACxE,IACE,MAAM,CAAC,IAAI,KAAK,gBAAgB;QAChC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;QAC/B,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,CAAC;QACD,IAAI,CAAC,eAAe,KAAK,8BAA8B,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAA8B,EAC9B,KAAa,EACb,IAAgC;IAEhC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAkC,CAAC;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAA6C,CAAC;IACvE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAqC,CAAC;IACjE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,CAAC,WAAyB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QAC7D,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;YACtB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YACrB,CAAE,iBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YAC/D,OAAO,KAAK,CAAC,SAAS,KAAK,SAAS;YACpC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAC7B,CAAC;YACD,IAAI,CAAC,eAAe,KAAK,iBAAiB,UAAU,eAAe,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAe,CAAC;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,IACE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC;YAChC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnB,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EACtC,CAAC;YACD,IAAI,CAAC,eAAe,KAAK,iBAAiB,UAAU,gCAAgC,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,KAAa,EAAE,IAAgC;IACpF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;QAC9B,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC;QACzC,KAAK,CAAC,aAAwB,GAAG,CAAC,EACnC,CAAC;QACD,IAAI,CAAC,eAAe,KAAK,qBAAqB,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAA8B,EAC9B,KAAa,EACb,IAAgC;IAEhC,MAAM,MAAM,GAAG,KAAK,CAAC,cAAyC,CAAC;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,eAA4C,CAAC;IACjE,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC9D,IACE,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC;QACrE,CAAC,cAAc,KAAK,SAAS,IAAI,cAAc,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,CAAC;QACvF,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,EACvD,CAAC;QACD,IAAI,CAAC,eAAe,KAAK,sDAAsD,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC;AAC/F,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-validation.d.ts","sourceRoot":"","sources":["../src/telemetry-validation.ts"],"names":[],"mappings":"AAiBA,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GAC/B,IAAI,CAqBN"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { isStableId } from "@relkit/contracts";
|
|
2
|
+
const signals = new Set([
|
|
3
|
+
"request",
|
|
4
|
+
"invocation",
|
|
5
|
+
"job",
|
|
6
|
+
"event",
|
|
7
|
+
"resource",
|
|
8
|
+
"tool",
|
|
9
|
+
"agent",
|
|
10
|
+
"log",
|
|
11
|
+
"span",
|
|
12
|
+
"trace",
|
|
13
|
+
"diagnostic",
|
|
14
|
+
"generation",
|
|
15
|
+
]);
|
|
16
|
+
export function validateTelemetryConfiguration(value, index, fail) {
|
|
17
|
+
if (value === undefined)
|
|
18
|
+
return;
|
|
19
|
+
if (!record(value))
|
|
20
|
+
fail(`Graph nodes[${index}].telemetry is invalid.`);
|
|
21
|
+
exact(value, ["capture", "redaction", "localRetention", "exportSampling", "exporters"], index, fail);
|
|
22
|
+
if (value.capture !== undefined)
|
|
23
|
+
validateCapture(value.capture, index, fail);
|
|
24
|
+
if (value.redaction !== undefined)
|
|
25
|
+
validateRedaction(value.redaction, index, fail);
|
|
26
|
+
if (value.localRetention !== undefined)
|
|
27
|
+
validatePositiveMap(value.localRetention, ["maxRecords", "maxAgeMs", "maxBytes", "maxEntries"], index, "localRetention", fail);
|
|
28
|
+
if (value.exportSampling !== undefined)
|
|
29
|
+
validateSampling(value.exportSampling, index, fail);
|
|
30
|
+
if (value.exporters !== undefined)
|
|
31
|
+
validateExporters(value.exporters, index, fail);
|
|
32
|
+
}
|
|
33
|
+
function validateCapture(value, index, fail) {
|
|
34
|
+
if (!record(value))
|
|
35
|
+
fail(`Graph nodes[${index}].telemetry.capture is invalid.`);
|
|
36
|
+
exact(value, ["signals"], index, fail);
|
|
37
|
+
if (value.signals !== undefined &&
|
|
38
|
+
(!Array.isArray(value.signals) || value.signals.some((signal) => !signals.has(String(signal)))))
|
|
39
|
+
fail(`Graph nodes[${index}].telemetry.capture.signals is invalid.`);
|
|
40
|
+
}
|
|
41
|
+
function validateRedaction(value, index, fail) {
|
|
42
|
+
if (!record(value))
|
|
43
|
+
fail(`Graph nodes[${index}].telemetry.redaction is invalid.`);
|
|
44
|
+
exact(value, ["mode", "maxBytes", "redactKeys"], index, fail);
|
|
45
|
+
if (value.mode !== undefined && value.mode !== "off" && value.mode !== "development-redacted")
|
|
46
|
+
fail(`Graph nodes[${index}].telemetry.redaction.mode is invalid.`);
|
|
47
|
+
if (value.maxBytes !== undefined &&
|
|
48
|
+
(!Number.isSafeInteger(value.maxBytes) || Number(value.maxBytes) < 1))
|
|
49
|
+
fail(`Graph nodes[${index}].telemetry.redaction.maxBytes is invalid.`);
|
|
50
|
+
if (value.redactKeys !== undefined &&
|
|
51
|
+
(!Array.isArray(value.redactKeys) ||
|
|
52
|
+
value.redactKeys.some((key) => typeof key !== "string" || key === "")))
|
|
53
|
+
fail(`Graph nodes[${index}].telemetry.redaction.redactKeys is invalid.`);
|
|
54
|
+
}
|
|
55
|
+
function validateSampling(value, index, fail) {
|
|
56
|
+
if (!record(value))
|
|
57
|
+
fail(`Graph nodes[${index}].telemetry.exportSampling is invalid.`);
|
|
58
|
+
exact(value, ["traceRate", "minimumLogLevel"], index, fail);
|
|
59
|
+
if (value.traceRate !== undefined &&
|
|
60
|
+
(typeof value.traceRate !== "number" || value.traceRate < 0 || value.traceRate > 1))
|
|
61
|
+
fail(`Graph nodes[${index}].telemetry.exportSampling.traceRate is invalid.`);
|
|
62
|
+
if (value.minimumLogLevel !== undefined &&
|
|
63
|
+
!["trace", "debug", "info", "warn", "error", "fatal"].includes(String(value.minimumLogLevel)))
|
|
64
|
+
fail(`Graph nodes[${index}].telemetry.exportSampling.minimumLogLevel is invalid.`);
|
|
65
|
+
}
|
|
66
|
+
function validateExporters(value, index, fail) {
|
|
67
|
+
if (!record(value))
|
|
68
|
+
fail(`Graph nodes[${index}].telemetry.exporters is invalid.`);
|
|
69
|
+
for (const [name, exporter] of Object.entries(value)) {
|
|
70
|
+
if (!isStableId(name) ||
|
|
71
|
+
!record(exporter) ||
|
|
72
|
+
Reflect.ownKeys(exporter).length !== 5 ||
|
|
73
|
+
exporter.kind !== "telemetry-exporter" ||
|
|
74
|
+
exporter.protocolVersion !== 1 ||
|
|
75
|
+
!isStableId(exporter.integrationId) ||
|
|
76
|
+
!isStableId(exporter.adapterId) ||
|
|
77
|
+
!record(exporter.configuration))
|
|
78
|
+
fail(`Graph nodes[${index}].telemetry.exporters.${name} is invalid.`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function validatePositiveMap(value, keys, index, field, fail) {
|
|
82
|
+
if (!record(value))
|
|
83
|
+
fail(`Graph nodes[${index}].telemetry.${field} is invalid.`);
|
|
84
|
+
exact(value, keys, index, fail);
|
|
85
|
+
if (Object.values(value).some((entry) => !Number.isSafeInteger(entry) || Number(entry) < 1))
|
|
86
|
+
fail(`Graph nodes[${index}].telemetry.${field} is invalid.`);
|
|
87
|
+
}
|
|
88
|
+
function exact(value, keys, index, fail) {
|
|
89
|
+
if (Object.keys(value).some((key) => !keys.includes(key)))
|
|
90
|
+
fail(`Graph nodes[${index}].telemetry contains unknown fields.`);
|
|
91
|
+
}
|
|
92
|
+
function record(value) {
|
|
93
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=telemetry-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-validation.js","sourceRoot":"","sources":["../src/telemetry-validation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@relkit/graph",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Unsupported internal RELKIT graph model; use @relkit/app.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@relkit/contracts": "0.
|
|
32
|
+
"@relkit/contracts": "0.3.0"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
35
|
"build": "tsc -b",
|