@lumenflow/control-plane-sdk 3.1.2 → 3.2.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/mock/mock-control-plane-sync-port.d.ts +2 -0
- package/dist/mock/mock-control-plane-sync-port.d.ts.map +1 -1
- package/dist/mock/mock-control-plane-sync-port.js +10 -4
- package/dist/mock/mock-control-plane-sync-port.js.map +1 -1
- package/dist/sync-port.d.ts +14 -3
- package/dist/sync-port.d.ts.map +1 -1
- package/dist/sync-port.js +12 -1
- package/dist/sync-port.js.map +1 -1
- package/dist/workspace-config.d.ts +1 -1
- package/dist/workspace-config.d.ts.map +1 -1
- package/dist/workspace-config.js +42 -14
- package/dist/workspace-config.js.map +1 -1
- package/package.json +2 -2
|
@@ -2,8 +2,10 @@ import type { AuthenticateInput, ControlPlaneIdentity, ControlPlanePolicyMode, C
|
|
|
2
2
|
export interface MockControlPlaneSyncPortOptions {
|
|
3
3
|
endpoint: string;
|
|
4
4
|
org_id: string;
|
|
5
|
+
project_id: string;
|
|
5
6
|
policy_mode: ControlPlanePolicyMode;
|
|
6
7
|
local_override?: boolean;
|
|
8
|
+
auth_token_env?: string;
|
|
7
9
|
remote_policies?: ControlPlanePolicySet;
|
|
8
10
|
local_policies?: ControlPlanePolicySet;
|
|
9
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-control-plane-sync-port.d.ts","sourceRoot":"","sources":["../../src/mock/mock-control-plane-sync-port.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"mock-control-plane-sync-port.d.ts","sourceRoot":"","sources":["../../src/mock/mock-control-plane-sync-port.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,sBAAsB,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAeD,qBAAa,wBAAyB,YAAW,oBAAoB;IACnE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;IAC5E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+B;IACnE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAoC;gBAEzD,OAAO,EAAE,+BAA+B;IAU9C,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgBtE,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAgBtE,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAOvE,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAOrE,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAO7E,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IASrE,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAOjE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE;IAI1D,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAI3C,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE;CAG5D;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,+BAA+B,GACvC,wBAAwB,CAE1B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright (c) 2026 Hellmai Ltd
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import { applyPolicyMode } from '../policy-mode.js';
|
|
4
|
+
import { DEFAULT_CONTROL_PLANE_AUTH_TOKEN_ENV as DEFAULT_TOKEN_ENV } from '../sync-port.js';
|
|
4
5
|
const DEFAULT_REMOTE_POLICIES = {
|
|
5
6
|
default_decision: 'deny',
|
|
6
7
|
rules: [],
|
|
@@ -9,6 +10,8 @@ const DEFAULT_LOCAL_POLICIES = {
|
|
|
9
10
|
default_decision: 'deny',
|
|
10
11
|
rules: [],
|
|
11
12
|
};
|
|
13
|
+
const DEFAULT_SYNC_INTERVAL_SECONDS = 30;
|
|
14
|
+
const DEFAULT_LOCAL_OVERRIDE = false;
|
|
12
15
|
export class MockControlPlaneSyncPort {
|
|
13
16
|
options;
|
|
14
17
|
telemetryByEndpoint = new Map();
|
|
@@ -17,7 +20,8 @@ export class MockControlPlaneSyncPort {
|
|
|
17
20
|
constructor(options) {
|
|
18
21
|
this.options = {
|
|
19
22
|
...options,
|
|
20
|
-
local_override: options.local_override ??
|
|
23
|
+
local_override: options.local_override ?? DEFAULT_LOCAL_OVERRIDE,
|
|
24
|
+
auth_token_env: options.auth_token_env ?? DEFAULT_TOKEN_ENV,
|
|
21
25
|
remote_policies: options.remote_policies ?? DEFAULT_REMOTE_POLICIES,
|
|
22
26
|
local_policies: options.local_policies ?? DEFAULT_LOCAL_POLICIES,
|
|
23
27
|
};
|
|
@@ -39,12 +43,14 @@ export class MockControlPlaneSyncPort {
|
|
|
39
43
|
return {
|
|
40
44
|
id: input.workspace_id,
|
|
41
45
|
control_plane: {
|
|
42
|
-
enabled: true,
|
|
43
46
|
endpoint: this.options.endpoint,
|
|
44
47
|
org_id: this.options.org_id,
|
|
45
|
-
|
|
48
|
+
project_id: this.options.project_id,
|
|
49
|
+
sync_interval: DEFAULT_SYNC_INTERVAL_SECONDS,
|
|
46
50
|
policy_mode: this.options.policy_mode,
|
|
47
|
-
|
|
51
|
+
auth: {
|
|
52
|
+
token_env: this.options.auth_token_env ?? DEFAULT_TOKEN_ENV,
|
|
53
|
+
},
|
|
48
54
|
},
|
|
49
55
|
};
|
|
50
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-control-plane-sync-port.js","sourceRoot":"","sources":["../../src/mock/mock-control-plane-sync-port.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"mock-control-plane-sync-port.js","sourceRoot":"","sources":["../../src/mock/mock-control-plane-sync-port.ts"],"names":[],"mappings":"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"}
|
package/dist/sync-port.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import type { KernelEvent } from '@lumenflow/kernel';
|
|
2
2
|
export type PolicyDecision = 'allow' | 'deny';
|
|
3
|
-
export
|
|
3
|
+
export declare const CONTROL_PLANE_POLICY_MODES: {
|
|
4
|
+
readonly AUTHORITATIVE: "authoritative";
|
|
5
|
+
readonly TIGHTEN_ONLY: "tighten-only";
|
|
6
|
+
readonly DEV_OVERRIDE: "dev-override";
|
|
7
|
+
};
|
|
8
|
+
export declare const CONTROL_PLANE_POLICY_MODE_VALUES: readonly ["authoritative", "tighten-only", "dev-override"];
|
|
9
|
+
export type ControlPlanePolicyMode = (typeof CONTROL_PLANE_POLICY_MODE_VALUES)[number];
|
|
10
|
+
export declare const DEFAULT_CONTROL_PLANE_AUTH_TOKEN_ENV = "LUMENFLOW_CONTROL_PLANE_TOKEN";
|
|
11
|
+
export declare const CONTROL_PLANE_AUTH_TOKEN_ENV_PATTERN: RegExp;
|
|
4
12
|
export type { KernelEvent };
|
|
5
13
|
export interface ControlPlanePolicyRule {
|
|
6
14
|
id: string;
|
|
@@ -17,13 +25,16 @@ export interface TelemetryRecord {
|
|
|
17
25
|
timestamp: string;
|
|
18
26
|
tags?: Record<string, string | number | boolean>;
|
|
19
27
|
}
|
|
28
|
+
export interface WorkspaceControlPlaneAuthConfig {
|
|
29
|
+
token_env: string;
|
|
30
|
+
}
|
|
20
31
|
export interface WorkspaceControlPlaneConfig {
|
|
21
|
-
enabled: boolean;
|
|
22
32
|
endpoint: string;
|
|
23
33
|
org_id: string;
|
|
34
|
+
project_id: string;
|
|
24
35
|
sync_interval: number;
|
|
25
36
|
policy_mode: ControlPlanePolicyMode;
|
|
26
|
-
|
|
37
|
+
auth: WorkspaceControlPlaneAuthConfig;
|
|
27
38
|
}
|
|
28
39
|
export interface WorkspaceControlPlaneSpec {
|
|
29
40
|
id?: string;
|
package/dist/sync-port.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-port.d.ts","sourceRoot":"","sources":["../src/sync-port.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9C,MAAM,MAAM,sBAAsB,GAAG,
|
|
1
|
+
{"version":3,"file":"sync-port.d.ts","sourceRoot":"","sources":["../src/sync-port.ts"],"names":[],"mappings":"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"}
|
package/dist/sync-port.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
// Copyright (c) 2026 Hellmai Ltd
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
export {
|
|
3
|
+
export const CONTROL_PLANE_POLICY_MODES = {
|
|
4
|
+
AUTHORITATIVE: 'authoritative',
|
|
5
|
+
TIGHTEN_ONLY: 'tighten-only',
|
|
6
|
+
DEV_OVERRIDE: 'dev-override',
|
|
7
|
+
};
|
|
8
|
+
export const CONTROL_PLANE_POLICY_MODE_VALUES = [
|
|
9
|
+
CONTROL_PLANE_POLICY_MODES.AUTHORITATIVE,
|
|
10
|
+
CONTROL_PLANE_POLICY_MODES.TIGHTEN_ONLY,
|
|
11
|
+
CONTROL_PLANE_POLICY_MODES.DEV_OVERRIDE,
|
|
12
|
+
];
|
|
13
|
+
export const DEFAULT_CONTROL_PLANE_AUTH_TOKEN_ENV = 'LUMENFLOW_CONTROL_PLANE_TOKEN';
|
|
14
|
+
export const CONTROL_PLANE_AUTH_TOKEN_ENV_PATTERN = /^[A-Z][A-Z0-9_]*$/;
|
|
4
15
|
//# sourceMappingURL=sync-port.js.map
|
package/dist/sync-port.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-port.js","sourceRoot":"","sources":["../src/sync-port.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC"}
|
|
1
|
+
{"version":3,"file":"sync-port.js","sourceRoot":"","sources":["../src/sync-port.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC;AAMtC,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;CACpB,CAAC;AAEX,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,0BAA0B,CAAC,aAAa;IACxC,0BAA0B,CAAC,YAAY;IACvC,0BAA0B,CAAC,YAAY;CAC/B,CAAC;AAIX,MAAM,CAAC,MAAM,oCAAoC,GAAG,+BAA+B,CAAC;AACpF,MAAM,CAAC,MAAM,oCAAoC,GAAG,mBAAmB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type WorkspaceControlPlaneConfig, type WorkspaceControlPlaneSpec } from './sync-port.js';
|
|
2
2
|
declare function parseControlPlaneConfig(input: unknown): WorkspaceControlPlaneConfig;
|
|
3
3
|
export declare const ControlPlaneConfigSchema: {
|
|
4
4
|
readonly parse: typeof parseControlPlaneConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-config.d.ts","sourceRoot":"","sources":["../src/workspace-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"workspace-config.d.ts","sourceRoot":"","sources":["../src/workspace-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC/B,MAAM,gBAAgB,CAAC;AAqExB,iBAAS,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,2BAA2B,CAqB5E;AAED,eAAO,MAAM,wBAAwB;;CAE3B,CAAC;AAEX,eAAO,MAAM,2BAA2B;4BACzB,OAAO,KAAG,yBAAyB;CAoBxC,CAAC;AAEX,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,yBAAyB,CAE1F"}
|
package/dist/workspace-config.js
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
// Copyright (c) 2026 Hellmai Ltd
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { CONTROL_PLANE_AUTH_TOKEN_ENV_PATTERN, CONTROL_PLANE_POLICY_MODE_VALUES, } from './sync-port.js';
|
|
4
|
+
const CONTROL_PLANE_POLICY_MODE_SET = new Set(CONTROL_PLANE_POLICY_MODE_VALUES);
|
|
5
|
+
const CONTROL_PLANE_REQUIRED_FIELDS = [
|
|
6
|
+
'endpoint',
|
|
7
|
+
'org_id',
|
|
8
|
+
'project_id',
|
|
9
|
+
'sync_interval',
|
|
10
|
+
'policy_mode',
|
|
11
|
+
];
|
|
3
12
|
function isObject(input) {
|
|
4
13
|
return typeof input === 'object' && input !== null;
|
|
5
14
|
}
|
|
@@ -15,34 +24,53 @@ function asNonEmptyString(value, field) {
|
|
|
15
24
|
}
|
|
16
25
|
return value;
|
|
17
26
|
}
|
|
27
|
+
function asUrlString(value, field) {
|
|
28
|
+
const parsed = asNonEmptyString(value, field);
|
|
29
|
+
try {
|
|
30
|
+
void new URL(parsed);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
throw new Error(`Invalid ${field}: expected a valid URL`);
|
|
34
|
+
}
|
|
35
|
+
return parsed;
|
|
36
|
+
}
|
|
18
37
|
function asPolicyMode(value) {
|
|
19
|
-
if (
|
|
38
|
+
if (typeof value === 'string' && CONTROL_PLANE_POLICY_MODE_SET.has(value)) {
|
|
20
39
|
return value;
|
|
21
40
|
}
|
|
22
41
|
throw new Error('Invalid control_plane.policy_mode');
|
|
23
42
|
}
|
|
43
|
+
function asEnvVarName(value, field) {
|
|
44
|
+
const parsed = asNonEmptyString(value, field);
|
|
45
|
+
if (!CONTROL_PLANE_AUTH_TOKEN_ENV_PATTERN.test(parsed)) {
|
|
46
|
+
throw new Error(`Invalid ${field}: expected an uppercase env var name`);
|
|
47
|
+
}
|
|
48
|
+
return parsed;
|
|
49
|
+
}
|
|
50
|
+
function parseAuthConfig(input) {
|
|
51
|
+
if (!isObject(input)) {
|
|
52
|
+
throw new Error('Invalid control_plane.auth: expected an object');
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
token_env: asEnvVarName(input.token_env, 'control_plane.auth.token_env'),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
24
58
|
function parseControlPlaneConfig(input) {
|
|
25
59
|
if (!isObject(input)) {
|
|
26
60
|
throw new Error('Invalid control_plane config: expected an object');
|
|
27
61
|
}
|
|
28
|
-
|
|
29
|
-
|
|
62
|
+
for (const field of CONTROL_PLANE_REQUIRED_FIELDS) {
|
|
63
|
+
if (!(field in input)) {
|
|
64
|
+
throw new Error(`Invalid control_plane config: missing required field control_plane.${field}`);
|
|
65
|
+
}
|
|
30
66
|
}
|
|
31
|
-
const localOverrideRaw = input.local_override;
|
|
32
|
-
const localOverride = localOverrideRaw === undefined
|
|
33
|
-
? false
|
|
34
|
-
: typeof localOverrideRaw === 'boolean'
|
|
35
|
-
? localOverrideRaw
|
|
36
|
-
: (() => {
|
|
37
|
-
throw new Error('Invalid control_plane.local_override: expected boolean');
|
|
38
|
-
})();
|
|
39
67
|
return {
|
|
40
|
-
|
|
41
|
-
endpoint: asNonEmptyString(input.endpoint, 'control_plane.endpoint'),
|
|
68
|
+
endpoint: asUrlString(input.endpoint, 'control_plane.endpoint'),
|
|
42
69
|
org_id: asNonEmptyString(input.org_id, 'control_plane.org_id'),
|
|
70
|
+
project_id: asNonEmptyString(input.project_id, 'control_plane.project_id'),
|
|
43
71
|
sync_interval: asPositiveInt(input.sync_interval, 'control_plane.sync_interval'),
|
|
44
72
|
policy_mode: asPolicyMode(input.policy_mode),
|
|
45
|
-
|
|
73
|
+
auth: parseAuthConfig(input.auth),
|
|
46
74
|
};
|
|
47
75
|
}
|
|
48
76
|
export const ControlPlaneConfigSchema = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-config.js","sourceRoot":"","sources":["../src/workspace-config.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC;
|
|
1
|
+
{"version":3,"file":"workspace-config.js","sourceRoot":"","sources":["../src/workspace-config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lumenflow/control-plane-sdk",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "Control plane sync contracts and adapters for LumenFlow runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"README.md"
|
|
12
12
|
],
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@lumenflow/kernel": "3.
|
|
14
|
+
"@lumenflow/kernel": "3.2.0"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@vitest/coverage-v8": "^4.0.18",
|