@clawdreyhepburn/carapace 1.0.9 → 1.0.11
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/cedar-engine-cedarling.d.ts +32 -0
- package/dist/cedar-engine-cedarling.js +97 -4
- package/dist/cedar-engine-cedarling.js.map +1 -1
- package/dist/index.js +43 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/cedar-engine-cedarling.ts +103 -4
- package/src/index.ts +41 -3
|
@@ -28,8 +28,19 @@ export declare class CedarlingEngine {
|
|
|
28
28
|
private schemaRaw;
|
|
29
29
|
private lastPolicyMtimeMs;
|
|
30
30
|
private reloadInFlight;
|
|
31
|
+
private initialized;
|
|
31
32
|
constructor(opts: CedarlingEngineOpts);
|
|
32
33
|
init(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Idempotently ensure policies are loaded from disk.
|
|
36
|
+
*
|
|
37
|
+
* The background service calls init() at startup, but read-only callers
|
|
38
|
+
* (the `carapace status`/`check`/`verify` CLI commands) run in a process
|
|
39
|
+
* where the service never started. Without this, getPolicies() returns an
|
|
40
|
+
* empty map and the CLI falsely reports "0 policies loaded" even though the
|
|
41
|
+
* live hook enforces correctly. Safe to call multiple times.
|
|
42
|
+
*/
|
|
43
|
+
ensureLoaded(): Promise<void>;
|
|
33
44
|
/**
|
|
34
45
|
* Authorize a request using Cedarling WASM.
|
|
35
46
|
*/
|
|
@@ -60,6 +71,13 @@ export declare class CedarlingEngine {
|
|
|
60
71
|
effect: string;
|
|
61
72
|
raw: string;
|
|
62
73
|
}>;
|
|
74
|
+
/**
|
|
75
|
+
* True when the Cedarling WASM engine is loaded and active. When false, the
|
|
76
|
+
* engine uses the basic string-matching fallback, which cannot evaluate
|
|
77
|
+
* `when { ... }` condition clauses (path globs etc.). Callers/tests that
|
|
78
|
+
* rely on condition evaluation should check this.
|
|
79
|
+
*/
|
|
80
|
+
isWasmActive(): boolean;
|
|
63
81
|
/**
|
|
64
82
|
* Compute the newest mtime (ms) across *.cedar files in the policy dir, plus
|
|
65
83
|
* a count so that deletions are also detected (count change flips the key).
|
|
@@ -89,6 +107,20 @@ export declare class CedarlingEngine {
|
|
|
89
107
|
private writePolicyFile;
|
|
90
108
|
private removePolicyFile;
|
|
91
109
|
private writeDefaultSchema;
|
|
110
|
+
/**
|
|
111
|
+
* Context attributes shared by tool-call actions.
|
|
112
|
+
*
|
|
113
|
+
* The before_tool_call hook cannot know every tool's parameter shape ahead
|
|
114
|
+
* of time, and Cedar records are CLOSED (an undeclared attribute makes
|
|
115
|
+
* Cedarling reject the whole context). So instead of surfacing the raw,
|
|
116
|
+
* open params object, the hook serializes params to a single JSON string
|
|
117
|
+
* (`params_json`) plus a couple of commonly-matched scalars (`path`,
|
|
118
|
+
* `action`). Policies match with `like` globs, e.g.
|
|
119
|
+
* when { context.path like "*openclaw.json*" }
|
|
120
|
+
* when { context.params_json like "*\"secret\"*" }
|
|
121
|
+
* All optional, so a call with empty context still validates.
|
|
122
|
+
*/
|
|
123
|
+
private toolContextAttributes;
|
|
92
124
|
private buildDefaultSchemaJson;
|
|
93
125
|
private authorizeBasic;
|
|
94
126
|
private parseSchemaForGui;
|
|
@@ -30,6 +30,10 @@ export class CedarlingEngine {
|
|
|
30
30
|
lastPolicyMtimeMs = 0;
|
|
31
31
|
// Guards against overlapping async reloads.
|
|
32
32
|
reloadInFlight = null;
|
|
33
|
+
// Set once init() has completed. Lets read-only callers (CLI status/check/
|
|
34
|
+
// verify) lazily initialize without knowing whether the background service
|
|
35
|
+
// already ran.
|
|
36
|
+
initialized = false;
|
|
33
37
|
constructor(opts) {
|
|
34
38
|
this.policyDir = opts.policyDir.replace("~", homedir());
|
|
35
39
|
this.defaultPolicy = opts.defaultPolicy;
|
|
@@ -64,9 +68,26 @@ export class CedarlingEngine {
|
|
|
64
68
|
}
|
|
65
69
|
// Create Cedarling instance
|
|
66
70
|
await this.rebuildCedarling();
|
|
71
|
+
this.initialized = true;
|
|
67
72
|
this.logger.info(`Cedarling engine initialized: ${this.policies.size} policies, ` +
|
|
68
73
|
`WASM ${this.cedarling ? "active" : "unavailable"}`);
|
|
69
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Idempotently ensure policies are loaded from disk.
|
|
77
|
+
*
|
|
78
|
+
* The background service calls init() at startup, but read-only callers
|
|
79
|
+
* (the `carapace status`/`check`/`verify` CLI commands) run in a process
|
|
80
|
+
* where the service never started. Without this, getPolicies() returns an
|
|
81
|
+
* empty map and the CLI falsely reports "0 policies loaded" even though the
|
|
82
|
+
* live hook enforces correctly. Safe to call multiple times.
|
|
83
|
+
*/
|
|
84
|
+
async ensureLoaded() {
|
|
85
|
+
if (this.initialized) {
|
|
86
|
+
await this.reloadIfChanged();
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
await this.init();
|
|
90
|
+
}
|
|
70
91
|
/**
|
|
71
92
|
* Authorize a request using Cedarling WASM.
|
|
72
93
|
*/
|
|
@@ -129,8 +150,25 @@ export class CedarlingEngine {
|
|
|
129
150
|
return { decision: decision, reasons };
|
|
130
151
|
}
|
|
131
152
|
catch (err) {
|
|
132
|
-
|
|
133
|
-
|
|
153
|
+
const msg = String(err?.message ?? err);
|
|
154
|
+
// A context/schema build error is an ENGINE problem, not a policy deny.
|
|
155
|
+
// Failing closed here silently denied legitimate tool calls (e.g. any
|
|
156
|
+
// tool whose params didn't fit the declared context schema), which can
|
|
157
|
+
// brick the agent — including the tools needed to repair policy. Instead
|
|
158
|
+
// degrade to the basic string-matching engine so real forbid rules are
|
|
159
|
+
// still enforced, while a schema mismatch no longer blocks everything.
|
|
160
|
+
const isContextError = /build context|parsing context|should not exist according to the schema|attribute .* should not/i.test(msg);
|
|
161
|
+
if (isContextError) {
|
|
162
|
+
this.logger.error(`Cedarling context/schema error (degrading to basic matcher, NOT failing closed): ${msg}`);
|
|
163
|
+
const basic = this.authorizeBasic(request);
|
|
164
|
+
return {
|
|
165
|
+
decision: basic.decision,
|
|
166
|
+
reasons: [`cedarling-context-error-fallback`, ...basic.reasons],
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
// Any other error is treated conservatively as a deny.
|
|
170
|
+
this.logger.error(`Cedarling authorize error: ${msg}`);
|
|
171
|
+
return { decision: "deny", reasons: [`cedarling error: ${msg}`] };
|
|
134
172
|
}
|
|
135
173
|
}
|
|
136
174
|
/**
|
|
@@ -213,6 +251,15 @@ export class CedarlingEngine {
|
|
|
213
251
|
getPolicies() {
|
|
214
252
|
return [...this.policies.entries()].map(([id, p]) => ({ id, ...p }));
|
|
215
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* True when the Cedarling WASM engine is loaded and active. When false, the
|
|
256
|
+
* engine uses the basic string-matching fallback, which cannot evaluate
|
|
257
|
+
* `when { ... }` condition clauses (path globs etc.). Callers/tests that
|
|
258
|
+
* rely on condition evaluation should check this.
|
|
259
|
+
*/
|
|
260
|
+
isWasmActive() {
|
|
261
|
+
return this.cedarling !== null;
|
|
262
|
+
}
|
|
216
263
|
/**
|
|
217
264
|
* Compute the newest mtime (ms) across *.cedar files in the policy dir, plus
|
|
218
265
|
* a count so that deletions are also detected (count change flips the key).
|
|
@@ -458,6 +505,32 @@ export class CedarlingEngine {
|
|
|
458
505
|
writeFileSync(schemaPath, JSON.stringify(schema, null, 2), "utf-8");
|
|
459
506
|
this.logger.info("Created default Cedar JSON schema");
|
|
460
507
|
}
|
|
508
|
+
/**
|
|
509
|
+
* Context attributes shared by tool-call actions.
|
|
510
|
+
*
|
|
511
|
+
* The before_tool_call hook cannot know every tool's parameter shape ahead
|
|
512
|
+
* of time, and Cedar records are CLOSED (an undeclared attribute makes
|
|
513
|
+
* Cedarling reject the whole context). So instead of surfacing the raw,
|
|
514
|
+
* open params object, the hook serializes params to a single JSON string
|
|
515
|
+
* (`params_json`) plus a couple of commonly-matched scalars (`path`,
|
|
516
|
+
* `action`). Policies match with `like` globs, e.g.
|
|
517
|
+
* when { context.path like "*openclaw.json*" }
|
|
518
|
+
* when { context.params_json like "*\"secret\"*" }
|
|
519
|
+
* All optional, so a call with empty context still validates.
|
|
520
|
+
*/
|
|
521
|
+
toolContextAttributes() {
|
|
522
|
+
const str = { type: "EntityOrCommon", name: "String", required: false };
|
|
523
|
+
return {
|
|
524
|
+
params_json: str,
|
|
525
|
+
path: str,
|
|
526
|
+
action: str,
|
|
527
|
+
// Retained for backward-compat with prior OVID-style contexts.
|
|
528
|
+
agent_role: str,
|
|
529
|
+
agent_issuer: str,
|
|
530
|
+
agent_depth: { type: "EntityOrCommon", name: "Long", required: false },
|
|
531
|
+
agent_attestation_proven: { type: "EntityOrCommon", name: "Bool", required: false },
|
|
532
|
+
};
|
|
533
|
+
}
|
|
461
534
|
buildDefaultSchemaJson() {
|
|
462
535
|
return {
|
|
463
536
|
[this.namespace]: {
|
|
@@ -536,14 +609,14 @@ export class CedarlingEngine {
|
|
|
536
609
|
appliesTo: {
|
|
537
610
|
principalTypes: [this.agentEntityType],
|
|
538
611
|
resourceTypes: ["Tool"],
|
|
539
|
-
context: { type: "Record", attributes:
|
|
612
|
+
context: { type: "Record", attributes: this.toolContextAttributes() },
|
|
540
613
|
},
|
|
541
614
|
},
|
|
542
615
|
list_tools: {
|
|
543
616
|
appliesTo: {
|
|
544
617
|
principalTypes: [this.agentEntityType],
|
|
545
618
|
resourceTypes: ["Tool"],
|
|
546
|
-
context: { type: "Record", attributes:
|
|
619
|
+
context: { type: "Record", attributes: this.toolContextAttributes() },
|
|
547
620
|
},
|
|
548
621
|
},
|
|
549
622
|
exec_command: {
|
|
@@ -563,6 +636,16 @@ export class CedarlingEngine {
|
|
|
563
636
|
name: "String",
|
|
564
637
|
required: false,
|
|
565
638
|
},
|
|
639
|
+
params_json: {
|
|
640
|
+
type: "EntityOrCommon",
|
|
641
|
+
name: "String",
|
|
642
|
+
required: false,
|
|
643
|
+
},
|
|
644
|
+
path: {
|
|
645
|
+
type: "EntityOrCommon",
|
|
646
|
+
name: "String",
|
|
647
|
+
required: false,
|
|
648
|
+
},
|
|
566
649
|
},
|
|
567
650
|
},
|
|
568
651
|
},
|
|
@@ -589,6 +672,16 @@ export class CedarlingEngine {
|
|
|
589
672
|
name: "String",
|
|
590
673
|
required: false,
|
|
591
674
|
},
|
|
675
|
+
params_json: {
|
|
676
|
+
type: "EntityOrCommon",
|
|
677
|
+
name: "String",
|
|
678
|
+
required: false,
|
|
679
|
+
},
|
|
680
|
+
path: {
|
|
681
|
+
type: "EntityOrCommon",
|
|
682
|
+
name: "String",
|
|
683
|
+
required: false,
|
|
684
|
+
},
|
|
592
685
|
},
|
|
593
686
|
},
|
|
594
687
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cedar-engine-cedarling.js","sourceRoot":"","sources":["../src/cedar-engine-cedarling.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cedar-engine-cedarling.js","sourceRoot":"","sources":["../src/cedar-engine-cedarling.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -44,6 +44,32 @@ function buildUpstreamConfig(proxyConfig) {
|
|
|
44
44
|
openai: upstream.openai ? { url: upstream.openai.url ?? "https://api.openai.com", apiKey: upstream.openai.apiKey } : undefined,
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Serialize arbitrary tool params to a bounded JSON string for use as a
|
|
49
|
+
* schema-safe Cedar context attribute. Never throws (cyclic structures and
|
|
50
|
+
* over-large payloads are handled) so context construction can't brick a call.
|
|
51
|
+
*/
|
|
52
|
+
function safeParamsJson(params) {
|
|
53
|
+
try {
|
|
54
|
+
const seen = new WeakSet();
|
|
55
|
+
const json = JSON.stringify(params, (_k, v) => {
|
|
56
|
+
if (typeof v === "object" && v !== null) {
|
|
57
|
+
if (seen.has(v))
|
|
58
|
+
return "[circular]";
|
|
59
|
+
seen.add(v);
|
|
60
|
+
}
|
|
61
|
+
if (typeof v === "string" && v.length > 4096)
|
|
62
|
+
return v.slice(0, 4096) + "…";
|
|
63
|
+
return v;
|
|
64
|
+
});
|
|
65
|
+
const out = json ?? "";
|
|
66
|
+
// Cap total size to keep Cedar context small and predictable.
|
|
67
|
+
return out.length > 16384 ? out.slice(0, 16384) : out;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return "";
|
|
71
|
+
}
|
|
72
|
+
}
|
|
47
73
|
// Audit log
|
|
48
74
|
function appendAuditLog(entry) {
|
|
49
75
|
try {
|
|
@@ -98,7 +124,7 @@ export default function register(api) {
|
|
|
98
124
|
action = "exec_command";
|
|
99
125
|
const cmd = params.command ?? "";
|
|
100
126
|
resourceId = cmd.trim().split(/\s+/)[0]?.replace(/^.*\//, "") || toolName;
|
|
101
|
-
context = { args: cmd, workdir: params.workdir ?? "" };
|
|
127
|
+
context = { args: cmd, workdir: params.workdir ?? "", params_json: safeParamsJson(params) };
|
|
102
128
|
}
|
|
103
129
|
else if (toolName === "web_fetch" || toolName === "web_search") {
|
|
104
130
|
resourceType = "API";
|
|
@@ -119,8 +145,17 @@ export default function register(api) {
|
|
|
119
145
|
context = { action: params.action ?? "" };
|
|
120
146
|
}
|
|
121
147
|
else {
|
|
122
|
-
// MCP or other tools
|
|
123
|
-
|
|
148
|
+
// MCP or other tools. Cedar records are CLOSED, so we cannot surface
|
|
149
|
+
// the raw (arbitrary-shape) params object as a context attribute
|
|
150
|
+
// without risking a schema-rejection that would deny the call. Instead
|
|
151
|
+
// serialize params to a JSON string and lift a couple of commonly
|
|
152
|
+
// matched scalars. Policies match with `like` globs, e.g.
|
|
153
|
+
// when { context.path like "*openclaw.json*" }
|
|
154
|
+
context = {
|
|
155
|
+
params_json: safeParamsJson(params),
|
|
156
|
+
path: typeof params?.path === "string" ? params.path : "",
|
|
157
|
+
action: typeof params?.action === "string" ? params.action : "",
|
|
158
|
+
};
|
|
124
159
|
}
|
|
125
160
|
// Pick up policy files added/edited/removed on disk since boot without
|
|
126
161
|
// requiring a gateway restart. Cheap no-op when nothing changed.
|
|
@@ -357,6 +392,9 @@ export default function register(api) {
|
|
|
357
392
|
api.registerCli?.(({ program }) => {
|
|
358
393
|
const cmd = program.command("carapace").description("Carapace — Cedar policy enforcement for agent tools");
|
|
359
394
|
cmd.command("status").action(async () => {
|
|
395
|
+
// The CLI runs in a process where the background service never
|
|
396
|
+
// started, so lazily load policies before reporting counts.
|
|
397
|
+
await cedar.ensureLoaded();
|
|
360
398
|
const servers = aggregator.getServerStatus();
|
|
361
399
|
console.log("\n🦞 Carapace Status\n");
|
|
362
400
|
for (const [name, status] of Object.entries(servers)) {
|
|
@@ -382,6 +420,7 @@ export default function register(api) {
|
|
|
382
420
|
}
|
|
383
421
|
});
|
|
384
422
|
cmd.command("verify").action(async () => {
|
|
423
|
+
await cedar.ensureLoaded();
|
|
385
424
|
const result = await cedar.verify();
|
|
386
425
|
if (result.ok) {
|
|
387
426
|
console.log("✅ All policies verified");
|
|
@@ -456,6 +495,7 @@ export default function register(api) {
|
|
|
456
495
|
cmd.command("check")
|
|
457
496
|
.description("Check Cedar policy status")
|
|
458
497
|
.action(async () => {
|
|
498
|
+
await cedar.ensureLoaded();
|
|
459
499
|
console.log("\n🦞 Carapace Security Check\n");
|
|
460
500
|
const policies = cedar.getPolicies();
|
|
461
501
|
if (policies.length === 0) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -84,6 +84,10 @@ export class CedarlingEngine {
|
|
|
84
84
|
private lastPolicyMtimeMs = 0;
|
|
85
85
|
// Guards against overlapping async reloads.
|
|
86
86
|
private reloadInFlight: Promise<void> | null = null;
|
|
87
|
+
// Set once init() has completed. Lets read-only callers (CLI status/check/
|
|
88
|
+
// verify) lazily initialize without knowing whether the background service
|
|
89
|
+
// already ran.
|
|
90
|
+
private initialized = false;
|
|
87
91
|
|
|
88
92
|
constructor(opts: CedarlingEngineOpts) {
|
|
89
93
|
this.policyDir = opts.policyDir.replace("~", homedir());
|
|
@@ -123,12 +127,30 @@ export class CedarlingEngine {
|
|
|
123
127
|
// Create Cedarling instance
|
|
124
128
|
await this.rebuildCedarling();
|
|
125
129
|
|
|
130
|
+
this.initialized = true;
|
|
126
131
|
this.logger.info(
|
|
127
132
|
`Cedarling engine initialized: ${this.policies.size} policies, ` +
|
|
128
133
|
`WASM ${this.cedarling ? "active" : "unavailable"}`
|
|
129
134
|
);
|
|
130
135
|
}
|
|
131
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Idempotently ensure policies are loaded from disk.
|
|
139
|
+
*
|
|
140
|
+
* The background service calls init() at startup, but read-only callers
|
|
141
|
+
* (the `carapace status`/`check`/`verify` CLI commands) run in a process
|
|
142
|
+
* where the service never started. Without this, getPolicies() returns an
|
|
143
|
+
* empty map and the CLI falsely reports "0 policies loaded" even though the
|
|
144
|
+
* live hook enforces correctly. Safe to call multiple times.
|
|
145
|
+
*/
|
|
146
|
+
async ensureLoaded(): Promise<void> {
|
|
147
|
+
if (this.initialized) {
|
|
148
|
+
await this.reloadIfChanged();
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
await this.init();
|
|
152
|
+
}
|
|
153
|
+
|
|
132
154
|
/**
|
|
133
155
|
* Authorize a request using Cedarling WASM.
|
|
134
156
|
*/
|
|
@@ -197,8 +219,28 @@ export class CedarlingEngine {
|
|
|
197
219
|
|
|
198
220
|
return { decision: decision as "allow" | "deny", reasons };
|
|
199
221
|
} catch (err: any) {
|
|
200
|
-
|
|
201
|
-
|
|
222
|
+
const msg = String(err?.message ?? err);
|
|
223
|
+
// A context/schema build error is an ENGINE problem, not a policy deny.
|
|
224
|
+
// Failing closed here silently denied legitimate tool calls (e.g. any
|
|
225
|
+
// tool whose params didn't fit the declared context schema), which can
|
|
226
|
+
// brick the agent — including the tools needed to repair policy. Instead
|
|
227
|
+
// degrade to the basic string-matching engine so real forbid rules are
|
|
228
|
+
// still enforced, while a schema mismatch no longer blocks everything.
|
|
229
|
+
const isContextError =
|
|
230
|
+
/build context|parsing context|should not exist according to the schema|attribute .* should not/i.test(msg);
|
|
231
|
+
if (isContextError) {
|
|
232
|
+
this.logger.error(
|
|
233
|
+
`Cedarling context/schema error (degrading to basic matcher, NOT failing closed): ${msg}`
|
|
234
|
+
);
|
|
235
|
+
const basic = this.authorizeBasic(request);
|
|
236
|
+
return {
|
|
237
|
+
decision: basic.decision,
|
|
238
|
+
reasons: [`cedarling-context-error-fallback`, ...basic.reasons],
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
// Any other error is treated conservatively as a deny.
|
|
242
|
+
this.logger.error(`Cedarling authorize error: ${msg}`);
|
|
243
|
+
return { decision: "deny", reasons: [`cedarling error: ${msg}`] };
|
|
202
244
|
}
|
|
203
245
|
}
|
|
204
246
|
|
|
@@ -292,6 +334,16 @@ export class CedarlingEngine {
|
|
|
292
334
|
return [...this.policies.entries()].map(([id, p]) => ({ id, ...p }));
|
|
293
335
|
}
|
|
294
336
|
|
|
337
|
+
/**
|
|
338
|
+
* True when the Cedarling WASM engine is loaded and active. When false, the
|
|
339
|
+
* engine uses the basic string-matching fallback, which cannot evaluate
|
|
340
|
+
* `when { ... }` condition clauses (path globs etc.). Callers/tests that
|
|
341
|
+
* rely on condition evaluation should check this.
|
|
342
|
+
*/
|
|
343
|
+
isWasmActive(): boolean {
|
|
344
|
+
return this.cedarling !== null;
|
|
345
|
+
}
|
|
346
|
+
|
|
295
347
|
/**
|
|
296
348
|
* Compute the newest mtime (ms) across *.cedar files in the policy dir, plus
|
|
297
349
|
* a count so that deletions are also detected (count change flips the key).
|
|
@@ -551,6 +603,33 @@ export class CedarlingEngine {
|
|
|
551
603
|
this.logger.info("Created default Cedar JSON schema");
|
|
552
604
|
}
|
|
553
605
|
|
|
606
|
+
/**
|
|
607
|
+
* Context attributes shared by tool-call actions.
|
|
608
|
+
*
|
|
609
|
+
* The before_tool_call hook cannot know every tool's parameter shape ahead
|
|
610
|
+
* of time, and Cedar records are CLOSED (an undeclared attribute makes
|
|
611
|
+
* Cedarling reject the whole context). So instead of surfacing the raw,
|
|
612
|
+
* open params object, the hook serializes params to a single JSON string
|
|
613
|
+
* (`params_json`) plus a couple of commonly-matched scalars (`path`,
|
|
614
|
+
* `action`). Policies match with `like` globs, e.g.
|
|
615
|
+
* when { context.path like "*openclaw.json*" }
|
|
616
|
+
* when { context.params_json like "*\"secret\"*" }
|
|
617
|
+
* All optional, so a call with empty context still validates.
|
|
618
|
+
*/
|
|
619
|
+
private toolContextAttributes(): Record<string, any> {
|
|
620
|
+
const str = { type: "EntityOrCommon", name: "String", required: false };
|
|
621
|
+
return {
|
|
622
|
+
params_json: str,
|
|
623
|
+
path: str,
|
|
624
|
+
action: str,
|
|
625
|
+
// Retained for backward-compat with prior OVID-style contexts.
|
|
626
|
+
agent_role: str,
|
|
627
|
+
agent_issuer: str,
|
|
628
|
+
agent_depth: { type: "EntityOrCommon", name: "Long", required: false },
|
|
629
|
+
agent_attestation_proven: { type: "EntityOrCommon", name: "Bool", required: false },
|
|
630
|
+
};
|
|
631
|
+
}
|
|
632
|
+
|
|
554
633
|
private buildDefaultSchemaJson(): Record<string, any> {
|
|
555
634
|
return {
|
|
556
635
|
[this.namespace]: {
|
|
@@ -629,14 +708,14 @@ export class CedarlingEngine {
|
|
|
629
708
|
appliesTo: {
|
|
630
709
|
principalTypes: [this.agentEntityType],
|
|
631
710
|
resourceTypes: ["Tool"],
|
|
632
|
-
context: { type: "Record", attributes:
|
|
711
|
+
context: { type: "Record", attributes: this.toolContextAttributes() },
|
|
633
712
|
},
|
|
634
713
|
},
|
|
635
714
|
list_tools: {
|
|
636
715
|
appliesTo: {
|
|
637
716
|
principalTypes: [this.agentEntityType],
|
|
638
717
|
resourceTypes: ["Tool"],
|
|
639
|
-
context: { type: "Record", attributes:
|
|
718
|
+
context: { type: "Record", attributes: this.toolContextAttributes() },
|
|
640
719
|
},
|
|
641
720
|
},
|
|
642
721
|
exec_command: {
|
|
@@ -656,6 +735,16 @@ export class CedarlingEngine {
|
|
|
656
735
|
name: "String",
|
|
657
736
|
required: false,
|
|
658
737
|
},
|
|
738
|
+
params_json: {
|
|
739
|
+
type: "EntityOrCommon",
|
|
740
|
+
name: "String",
|
|
741
|
+
required: false,
|
|
742
|
+
},
|
|
743
|
+
path: {
|
|
744
|
+
type: "EntityOrCommon",
|
|
745
|
+
name: "String",
|
|
746
|
+
required: false,
|
|
747
|
+
},
|
|
659
748
|
},
|
|
660
749
|
},
|
|
661
750
|
},
|
|
@@ -682,6 +771,16 @@ export class CedarlingEngine {
|
|
|
682
771
|
name: "String",
|
|
683
772
|
required: false,
|
|
684
773
|
},
|
|
774
|
+
params_json: {
|
|
775
|
+
type: "EntityOrCommon",
|
|
776
|
+
name: "String",
|
|
777
|
+
required: false,
|
|
778
|
+
},
|
|
779
|
+
path: {
|
|
780
|
+
type: "EntityOrCommon",
|
|
781
|
+
name: "String",
|
|
782
|
+
required: false,
|
|
783
|
+
},
|
|
685
784
|
},
|
|
686
785
|
},
|
|
687
786
|
},
|
package/src/index.ts
CHANGED
|
@@ -84,6 +84,30 @@ function buildUpstreamConfig(proxyConfig: NonNullable<PluginConfig["proxy"]>): {
|
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Serialize arbitrary tool params to a bounded JSON string for use as a
|
|
89
|
+
* schema-safe Cedar context attribute. Never throws (cyclic structures and
|
|
90
|
+
* over-large payloads are handled) so context construction can't brick a call.
|
|
91
|
+
*/
|
|
92
|
+
function safeParamsJson(params: unknown): string {
|
|
93
|
+
try {
|
|
94
|
+
const seen = new WeakSet();
|
|
95
|
+
const json = JSON.stringify(params, (_k, v) => {
|
|
96
|
+
if (typeof v === "object" && v !== null) {
|
|
97
|
+
if (seen.has(v)) return "[circular]";
|
|
98
|
+
seen.add(v);
|
|
99
|
+
}
|
|
100
|
+
if (typeof v === "string" && v.length > 4096) return v.slice(0, 4096) + "…";
|
|
101
|
+
return v;
|
|
102
|
+
});
|
|
103
|
+
const out = json ?? "";
|
|
104
|
+
// Cap total size to keep Cedar context small and predictable.
|
|
105
|
+
return out.length > 16384 ? out.slice(0, 16384) : out;
|
|
106
|
+
} catch {
|
|
107
|
+
return "";
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
87
111
|
// Audit log
|
|
88
112
|
function appendAuditLog(entry: { timestamp: string; tool: string; decision: string; reasons: string[]; params?: any }): void {
|
|
89
113
|
try {
|
|
@@ -146,7 +170,7 @@ export default function register(api: OpenClawPluginApi) {
|
|
|
146
170
|
action = "exec_command";
|
|
147
171
|
const cmd = (params.command as string) ?? "";
|
|
148
172
|
resourceId = cmd.trim().split(/\s+/)[0]?.replace(/^.*\//, "") || toolName;
|
|
149
|
-
context = { args: cmd, workdir: (params.workdir as string) ?? "" };
|
|
173
|
+
context = { args: cmd, workdir: (params.workdir as string) ?? "", params_json: safeParamsJson(params) };
|
|
150
174
|
} else if (toolName === "web_fetch" || toolName === "web_search") {
|
|
151
175
|
resourceType = "API";
|
|
152
176
|
action = "call_api";
|
|
@@ -163,8 +187,17 @@ export default function register(api: OpenClawPluginApi) {
|
|
|
163
187
|
resourceId = "browser";
|
|
164
188
|
context = { action: (params.action as string) ?? "" };
|
|
165
189
|
} else {
|
|
166
|
-
// MCP or other tools
|
|
167
|
-
|
|
190
|
+
// MCP or other tools. Cedar records are CLOSED, so we cannot surface
|
|
191
|
+
// the raw (arbitrary-shape) params object as a context attribute
|
|
192
|
+
// without risking a schema-rejection that would deny the call. Instead
|
|
193
|
+
// serialize params to a JSON string and lift a couple of commonly
|
|
194
|
+
// matched scalars. Policies match with `like` globs, e.g.
|
|
195
|
+
// when { context.path like "*openclaw.json*" }
|
|
196
|
+
context = {
|
|
197
|
+
params_json: safeParamsJson(params),
|
|
198
|
+
path: typeof (params as any)?.path === "string" ? (params as any).path : "",
|
|
199
|
+
action: typeof (params as any)?.action === "string" ? (params as any).action : "",
|
|
200
|
+
};
|
|
168
201
|
}
|
|
169
202
|
|
|
170
203
|
// Pick up policy files added/edited/removed on disk since boot without
|
|
@@ -428,6 +461,9 @@ export default function register(api: OpenClawPluginApi) {
|
|
|
428
461
|
const cmd = program.command("carapace").description("Carapace — Cedar policy enforcement for agent tools");
|
|
429
462
|
|
|
430
463
|
cmd.command("status").action(async () => {
|
|
464
|
+
// The CLI runs in a process where the background service never
|
|
465
|
+
// started, so lazily load policies before reporting counts.
|
|
466
|
+
await cedar.ensureLoaded();
|
|
431
467
|
const servers = aggregator.getServerStatus();
|
|
432
468
|
console.log("\n🦞 Carapace Status\n");
|
|
433
469
|
for (const [name, status] of Object.entries(servers)) {
|
|
@@ -456,6 +492,7 @@ export default function register(api: OpenClawPluginApi) {
|
|
|
456
492
|
});
|
|
457
493
|
|
|
458
494
|
cmd.command("verify").action(async () => {
|
|
495
|
+
await cedar.ensureLoaded();
|
|
459
496
|
const result = await cedar.verify();
|
|
460
497
|
if (result.ok) {
|
|
461
498
|
console.log("✅ All policies verified");
|
|
@@ -536,6 +573,7 @@ export default function register(api: OpenClawPluginApi) {
|
|
|
536
573
|
cmd.command("check")
|
|
537
574
|
.description("Check Cedar policy status")
|
|
538
575
|
.action(async () => {
|
|
576
|
+
await cedar.ensureLoaded();
|
|
539
577
|
console.log("\n🦞 Carapace Security Check\n");
|
|
540
578
|
const policies = cedar.getPolicies();
|
|
541
579
|
if (policies.length === 0) {
|