@highflame/policy 2.0.1 → 2.0.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.
Files changed (47) hide show
  1. package/dist/annotations.d.ts +127 -0
  2. package/dist/annotations.d.ts.map +1 -0
  3. package/dist/annotations.js +175 -0
  4. package/dist/annotations.js.map +1 -0
  5. package/dist/builder.d.ts +114 -25
  6. package/dist/builder.d.ts.map +1 -1
  7. package/dist/builder.js +295 -113
  8. package/dist/builder.js.map +1 -1
  9. package/dist/entity-metadata-types.gen.d.ts +17 -0
  10. package/dist/entity-metadata-types.gen.d.ts.map +1 -0
  11. package/dist/entity-metadata-types.gen.js +3 -0
  12. package/dist/entity-metadata-types.gen.js.map +1 -0
  13. package/dist/index.d.ts +5 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +5 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/overwatch-entities.gen.d.ts +12 -0
  18. package/dist/overwatch-entities.gen.d.ts.map +1 -0
  19. package/dist/overwatch-entities.gen.js +38 -0
  20. package/dist/overwatch-entities.gen.js.map +1 -0
  21. package/dist/palisade-entities.gen.d.ts +12 -0
  22. package/dist/palisade-entities.gen.d.ts.map +1 -0
  23. package/dist/palisade-entities.gen.js +46 -0
  24. package/dist/palisade-entities.gen.js.map +1 -0
  25. package/dist/parser.d.ts +1 -1
  26. package/dist/parser.d.ts.map +1 -1
  27. package/dist/parser.js +18 -11
  28. package/dist/parser.js.map +1 -1
  29. package/dist/parser.test.js +2 -2
  30. package/dist/parser.test.js.map +1 -1
  31. package/dist/studio-ui.test.js +526 -1
  32. package/dist/studio-ui.test.js.map +1 -1
  33. package/dist/types.d.ts +5 -1
  34. package/dist/types.d.ts.map +1 -1
  35. package/dist/types.js +6 -1
  36. package/dist/types.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/annotations.ts +243 -0
  39. package/src/builder.ts +386 -127
  40. package/src/entity-metadata-types.gen.ts +19 -0
  41. package/src/index.ts +13 -1
  42. package/src/overwatch-entities.gen.ts +41 -0
  43. package/src/palisade-entities.gen.ts +49 -0
  44. package/src/parser.test.ts +2 -2
  45. package/src/parser.ts +20 -12
  46. package/src/studio-ui.test.ts +606 -0
  47. package/src/types.ts +15 -1
@@ -6,7 +6,9 @@
6
6
  */
7
7
  import { describe, it, expect } from 'vitest';
8
8
  // Browser-safe imports (simulating '@highflame/policy/types')
9
- import { PolicyBuilder, OVERWATCH_SCHEMA, PALISADE_SCHEMA, OVERWATCH_CONTEXT, OverwatchContextKey, PalisadeContextKey, } from './types.js';
9
+ import { PolicyBuilder, OVERWATCH_SCHEMA, PALISADE_SCHEMA, OVERWATCH_CONTEXT, OverwatchContextKey, PalisadeContextKey,
10
+ // Entity metadata for UI dropdowns
11
+ OVERWATCH_ENTITIES, OVERWATCH_ACTION_ENTITIES, PALISADE_ENTITIES, PALISADE_ACTION_ENTITIES, } from './types.js';
10
12
  // Node.js only imports (for API routes)
11
13
  import { PolicyEngine, PolicyValidator, newEntityUID, newEntity, } from './index.js';
12
14
  describe('Studio UI Integration Tests', () => {
@@ -161,5 +163,528 @@ describe('Studio UI Integration Tests', () => {
161
163
  });
162
164
  expect(decision.effect).toBe('Deny');
163
165
  });
166
+ /**
167
+ * Test 4: Entity Metadata for UI Dropdowns - Overwatch
168
+ *
169
+ * Studio UI needs to know which entity types can be principals,
170
+ * which can be resources, and what actions are available.
171
+ * This data is extracted from Cedar schema appliesTo blocks.
172
+ */
173
+ it('should provide correct entity metadata for Overwatch UI dropdowns', () => {
174
+ // Verify ServiceEntityMetadata structure
175
+ expect(OVERWATCH_ENTITIES.principals).toBeDefined();
176
+ expect(OVERWATCH_ENTITIES.resources).toBeDefined();
177
+ expect(OVERWATCH_ENTITIES.actions).toBeDefined();
178
+ // Overwatch principals should include User and Agent
179
+ expect(OVERWATCH_ENTITIES.principals).toContain('Agent');
180
+ expect(OVERWATCH_ENTITIES.principals).toContain('User');
181
+ expect(OVERWATCH_ENTITIES.principals).toHaveLength(2);
182
+ // Overwatch resources should include all resource types
183
+ expect(OVERWATCH_ENTITIES.resources).toContain('FilePath');
184
+ expect(OVERWATCH_ENTITIES.resources).toContain('LlmPrompt');
185
+ expect(OVERWATCH_ENTITIES.resources).toContain('Server');
186
+ expect(OVERWATCH_ENTITIES.resources).toContain('Tool');
187
+ expect(OVERWATCH_ENTITIES.resources).toHaveLength(4);
188
+ // Overwatch actions should match schema
189
+ expect(OVERWATCH_ENTITIES.actions).toContain('call_tool');
190
+ expect(OVERWATCH_ENTITIES.actions).toContain('connect_server');
191
+ expect(OVERWATCH_ENTITIES.actions).toContain('process_prompt');
192
+ expect(OVERWATCH_ENTITIES.actions).toContain('read_file');
193
+ expect(OVERWATCH_ENTITIES.actions).toContain('write_file');
194
+ expect(OVERWATCH_ENTITIES.actions).toHaveLength(5);
195
+ });
196
+ /**
197
+ * Test 5: Per-Action Entity Mapping - Overwatch
198
+ *
199
+ * Studio UI needs to filter dropdowns based on selected action.
200
+ * Each action has specific valid principals and resources.
201
+ */
202
+ it('should provide per-action entity mapping for Overwatch', () => {
203
+ // call_tool action should have correct principals and resources
204
+ const callTool = OVERWATCH_ACTION_ENTITIES['call_tool'];
205
+ expect(callTool).toBeDefined();
206
+ expect(callTool.principals).toContain('User');
207
+ expect(callTool.principals).toContain('Agent');
208
+ expect(callTool.resources).toContain('Tool');
209
+ expect(callTool.resources).toContain('FilePath');
210
+ // connect_server action should only apply to Server resource
211
+ const connectServer = OVERWATCH_ACTION_ENTITIES['connect_server'];
212
+ expect(connectServer).toBeDefined();
213
+ expect(connectServer.principals).toContain('User');
214
+ expect(connectServer.principals).toContain('Agent');
215
+ expect(connectServer.resources).toContain('Server');
216
+ expect(connectServer.resources).not.toContain('Tool');
217
+ // process_prompt action should only apply to LlmPrompt resource
218
+ const processPrompt = OVERWATCH_ACTION_ENTITIES['process_prompt'];
219
+ expect(processPrompt).toBeDefined();
220
+ expect(processPrompt.resources).toContain('LlmPrompt');
221
+ expect(processPrompt.resources).not.toContain('Tool');
222
+ // read_file and write_file should apply to FilePath resource
223
+ const readFile = OVERWATCH_ACTION_ENTITIES['read_file'];
224
+ const writeFile = OVERWATCH_ACTION_ENTITIES['write_file'];
225
+ expect(readFile.resources).toContain('FilePath');
226
+ expect(writeFile.resources).toContain('FilePath');
227
+ });
228
+ /**
229
+ * Test 6: Entity Metadata for Palisade
230
+ *
231
+ * Verify Palisade service also has correct entity metadata.
232
+ */
233
+ it('should provide correct entity metadata for Palisade UI dropdowns', () => {
234
+ // Palisade has Scanner as principal
235
+ expect(PALISADE_ENTITIES.principals).toContain('Scanner');
236
+ // Palisade resources include Artifact and Package
237
+ expect(PALISADE_ENTITIES.resources).toContain('Artifact');
238
+ expect(PALISADE_ENTITIES.resources).toContain('Package');
239
+ // Palisade actions
240
+ expect(PALISADE_ENTITIES.actions).toContain('load_model');
241
+ expect(PALISADE_ENTITIES.actions).toContain('scan_artifact');
242
+ expect(PALISADE_ENTITIES.actions).toContain('quarantine_artifact');
243
+ // Per-action mapping - load_model applies to Artifact
244
+ const loadModel = PALISADE_ACTION_ENTITIES['load_model'];
245
+ expect(loadModel).toBeDefined();
246
+ expect(loadModel.principals).toContain('Scanner');
247
+ expect(loadModel.resources).toContain('Artifact');
248
+ // scan_package applies to Package resource
249
+ const scanPackage = PALISADE_ACTION_ENTITIES['scan_package'];
250
+ expect(scanPackage).toBeDefined();
251
+ expect(scanPackage.resources).toContain('Package');
252
+ });
253
+ });
254
+ /**
255
+ * Cedar Policy Annotations Integration Tests
256
+ *
257
+ * These tests verify the full round-trip of Cedar policy annotations:
258
+ * PolicyRule → Cedar text → parse back → verify annotations preserved
259
+ */
260
+ // Import annotation functions for tests
261
+ import { ruleToCedar, rulesToCedar, parseCedarToRules, generateRuleId, isValidAnnotationKey, } from './index.js';
262
+ describe('Cedar Annotations Integration Tests', () => {
263
+ /**
264
+ * Test 1: Basic Annotations Round-Trip
265
+ *
266
+ * Create a PolicyRule with all standard annotations, convert to Cedar,
267
+ * parse back, and verify all annotations are preserved.
268
+ */
269
+ it('should preserve annotations through Cedar round-trip', () => {
270
+ // Step 1: Create a PolicyRule with full annotations
271
+ const originalRule = {
272
+ annotations: {
273
+ id: 'rule-001',
274
+ name: 'Block high-threat tool calls',
275
+ description: 'Forbids tool calls when threat count exceeds threshold',
276
+ severity: 'high',
277
+ tags: ['security', 'baseline', 'v2'],
278
+ },
279
+ effect: 'forbid',
280
+ principal: { type: 'Overwatch::User' },
281
+ action: 'Overwatch::Action::"call_tool"',
282
+ resource: { type: 'Overwatch::Tool' },
283
+ conditions: [{ field: 'threat_count', operator: 'gt', value: 5 }],
284
+ enabled: true,
285
+ order: 0,
286
+ };
287
+ // Step 2: Convert to Cedar text
288
+ const cedarText = ruleToCedar(originalRule);
289
+ // Verify Cedar text contains annotations in proper syntax
290
+ expect(cedarText).toContain('@id("rule-001")');
291
+ expect(cedarText).toContain('@name("Block high-threat tool calls")');
292
+ expect(cedarText).toContain('@description("Forbids tool calls when threat count exceeds threshold")');
293
+ expect(cedarText).toContain('@severity("high")');
294
+ expect(cedarText).toContain('@tags("security,baseline,v2")');
295
+ expect(cedarText).toContain('forbid');
296
+ expect(cedarText).toContain('context.threat_count > 5');
297
+ // Step 3: Validate the generated Cedar against Overwatch schema
298
+ const validator = new PolicyValidator(OVERWATCH_SCHEMA);
299
+ const validationResult = validator.validate(cedarText);
300
+ expect(validationResult.valid).toBe(true);
301
+ // Step 4: Parse back to PolicyRule
302
+ const parseResult = parseCedarToRules(cedarText);
303
+ expect(parseResult.errors).toHaveLength(0);
304
+ expect(parseResult.rules).toHaveLength(1);
305
+ const parsedRule = parseResult.rules[0];
306
+ // Step 5: Verify all annotations are preserved
307
+ expect(parsedRule.annotations.id).toBe('rule-001');
308
+ expect(parsedRule.annotations.name).toBe('Block high-threat tool calls');
309
+ expect(parsedRule.annotations.description).toBe('Forbids tool calls when threat count exceeds threshold');
310
+ expect(parsedRule.annotations.severity).toBe('high');
311
+ expect(parsedRule.annotations.tags).toEqual(['security', 'baseline', 'v2']);
312
+ });
313
+ /**
314
+ * Test 2: Custom Annotations Round-Trip
315
+ *
316
+ * Verifies that custom user-defined annotations are preserved.
317
+ */
318
+ it('should preserve custom annotations through Cedar round-trip', () => {
319
+ const originalRule = {
320
+ annotations: {
321
+ id: 'compliance-rule',
322
+ name: 'SOC2 Compliance Policy',
323
+ severity: 'critical',
324
+ },
325
+ customAnnotations: {
326
+ compliance: 'SOC2',
327
+ ticket: 'SEC-1234',
328
+ owner: 'security-team',
329
+ review_date: '2024-06-01',
330
+ },
331
+ effect: 'forbid',
332
+ principal: null,
333
+ action: 'Overwatch::Action::"call_tool"',
334
+ resource: null,
335
+ conditions: [],
336
+ rawCondition: 'context.contains_secrets == true',
337
+ enabled: true,
338
+ order: 0,
339
+ };
340
+ // Convert to Cedar
341
+ const cedarText = ruleToCedar(originalRule);
342
+ // Verify custom annotations in Cedar text (alphabetically ordered)
343
+ expect(cedarText).toContain('@compliance("SOC2")');
344
+ expect(cedarText).toContain('@owner("security-team")');
345
+ expect(cedarText).toContain('@review_date("2024-06-01")');
346
+ expect(cedarText).toContain('@ticket("SEC-1234")');
347
+ // Validate Cedar
348
+ const validator = new PolicyValidator(OVERWATCH_SCHEMA);
349
+ expect(validator.validate(cedarText).valid).toBe(true);
350
+ // Parse back
351
+ const parseResult = parseCedarToRules(cedarText);
352
+ expect(parseResult.errors).toHaveLength(0);
353
+ const parsedRule = parseResult.rules[0];
354
+ // Verify custom annotations preserved
355
+ expect(parsedRule.customAnnotations).toBeDefined();
356
+ expect(parsedRule.customAnnotations?.compliance).toBe('SOC2');
357
+ expect(parsedRule.customAnnotations?.ticket).toBe('SEC-1234');
358
+ expect(parsedRule.customAnnotations?.owner).toBe('security-team');
359
+ expect(parsedRule.customAnnotations?.review_date).toBe('2024-06-01');
360
+ });
361
+ /**
362
+ * Test 3: Multiple Rules with rulesToCedar
363
+ *
364
+ * Verifies that multiple rules are correctly converted and ordered.
365
+ */
366
+ it('should handle multiple rules with correct ordering', () => {
367
+ const rules = [
368
+ {
369
+ annotations: { id: 'rule-c', name: 'Third Rule' },
370
+ effect: 'permit',
371
+ principal: null,
372
+ action: 'Overwatch::Action::"read_file"',
373
+ resource: null,
374
+ conditions: [],
375
+ enabled: true,
376
+ order: 2,
377
+ },
378
+ {
379
+ annotations: { id: 'rule-a', name: 'First Rule', severity: 'critical' },
380
+ effect: 'forbid',
381
+ principal: null,
382
+ action: 'Overwatch::Action::"call_tool"',
383
+ resource: null,
384
+ conditions: [],
385
+ rawCondition: 'context.threat_count > 0',
386
+ enabled: true,
387
+ order: 0,
388
+ },
389
+ {
390
+ annotations: { id: 'rule-b', name: 'Second Rule (Disabled)' },
391
+ effect: 'forbid',
392
+ principal: null,
393
+ action: 'Overwatch::Action::"write_file"',
394
+ resource: null,
395
+ conditions: [],
396
+ enabled: false, // Disabled rule
397
+ order: 1,
398
+ },
399
+ ];
400
+ // Convert to Cedar (enabled only, sorted by order)
401
+ const cedarText = rulesToCedar(rules);
402
+ // Verify order (rule-a order=0 should come before rule-c order=2)
403
+ const ruleAIndex = cedarText.indexOf('@id("rule-a")');
404
+ const ruleCIndex = cedarText.indexOf('@id("rule-c")');
405
+ expect(ruleAIndex).toBeLessThan(ruleCIndex);
406
+ // Disabled rule should NOT be included
407
+ expect(cedarText).not.toContain('@id("rule-b")');
408
+ // Validate the combined policy text
409
+ const validator = new PolicyValidator(OVERWATCH_SCHEMA);
410
+ expect(validator.validate(cedarText).valid).toBe(true);
411
+ // Parse back and verify
412
+ const parseResult = parseCedarToRules(cedarText);
413
+ expect(parseResult.errors).toHaveLength(0);
414
+ expect(parseResult.rules).toHaveLength(2); // Only enabled rules
415
+ // Verify parsed rules
416
+ const ruleIds = parseResult.rules.map((r) => r.annotations.id);
417
+ expect(ruleIds).toContain('rule-a');
418
+ expect(ruleIds).toContain('rule-c');
419
+ expect(ruleIds).not.toContain('rule-b');
420
+ });
421
+ /**
422
+ * Test 4: Disabled Rules as Comments
423
+ *
424
+ * Verifies that includeDisabled=true adds disabled rules as comments.
425
+ */
426
+ it('should include disabled rules as comments when requested', () => {
427
+ const rules = [
428
+ {
429
+ annotations: { id: 'active-rule', name: 'Active Rule' },
430
+ effect: 'permit',
431
+ principal: null,
432
+ action: 'Overwatch::Action::"call_tool"',
433
+ resource: null,
434
+ conditions: [],
435
+ enabled: true,
436
+ order: 0,
437
+ },
438
+ {
439
+ annotations: { id: 'disabled-rule', name: 'Disabled Rule' },
440
+ effect: 'forbid',
441
+ principal: null,
442
+ action: 'Overwatch::Action::"call_tool"',
443
+ resource: null,
444
+ conditions: [],
445
+ enabled: false,
446
+ order: 1,
447
+ },
448
+ ];
449
+ // Convert with includeDisabled=true
450
+ const cedarText = rulesToCedar(rules, true);
451
+ // Active rule should be normal
452
+ expect(cedarText).toContain('@id("active-rule")');
453
+ expect(cedarText).not.toMatch(/\/\/ \[DISABLED\].*@id\("active-rule"\)/);
454
+ // Disabled rule should be commented
455
+ expect(cedarText).toContain('// [DISABLED] @id("disabled-rule")');
456
+ expect(cedarText).toContain('// [DISABLED] @name("Disabled Rule")');
457
+ expect(cedarText).toContain('// [DISABLED] forbid');
458
+ });
459
+ /**
460
+ * Test 5: Annotation Value Escaping
461
+ *
462
+ * Verifies that special characters in annotation values are properly escaped.
463
+ */
464
+ it('should properly escape special characters in annotation values', () => {
465
+ const rule = {
466
+ annotations: {
467
+ id: 'escape-test',
468
+ name: 'Rule with "quotes" and \\backslashes',
469
+ description: 'Multi-line text works too',
470
+ },
471
+ effect: 'permit',
472
+ principal: null,
473
+ action: 'Overwatch::Action::"call_tool"',
474
+ resource: null,
475
+ conditions: [],
476
+ enabled: true,
477
+ order: 0,
478
+ };
479
+ const cedarText = ruleToCedar(rule);
480
+ // Quotes and backslashes should be escaped
481
+ expect(cedarText).toContain('Rule with \\"quotes\\" and \\\\backslashes');
482
+ // Parse back and verify values are unescaped
483
+ const parseResult = parseCedarToRules(cedarText);
484
+ expect(parseResult.errors).toHaveLength(0);
485
+ const parsedRule = parseResult.rules[0];
486
+ expect(parsedRule.annotations.name).toBe('Rule with "quotes" and \\backslashes');
487
+ });
488
+ /**
489
+ * Test 6: Annotation Key Validation
490
+ *
491
+ * Verifies that only valid annotation keys are accepted.
492
+ */
493
+ it('should validate annotation keys correctly', () => {
494
+ // Valid custom keys
495
+ expect(isValidAnnotationKey('compliance')).toBe(true);
496
+ expect(isValidAnnotationKey('ticket_number')).toBe(true);
497
+ expect(isValidAnnotationKey('_internal')).toBe(true);
498
+ expect(isValidAnnotationKey('myKey123')).toBe(true);
499
+ // Invalid - predefined keys (handled separately)
500
+ expect(isValidAnnotationKey('id')).toBe(false);
501
+ expect(isValidAnnotationKey('name')).toBe(false);
502
+ expect(isValidAnnotationKey('severity')).toBe(false);
503
+ expect(isValidAnnotationKey('tags')).toBe(false);
504
+ // Invalid - bad format
505
+ expect(isValidAnnotationKey('123abc')).toBe(false); // Starts with number
506
+ expect(isValidAnnotationKey('has-dash')).toBe(false); // Contains dash
507
+ expect(isValidAnnotationKey('has.dot')).toBe(false); // Contains dot
508
+ expect(isValidAnnotationKey('')).toBe(false); // Empty
509
+ });
510
+ /**
511
+ * Test 7: Generated Rule ID
512
+ *
513
+ * Verifies that rule IDs are auto-generated when not provided.
514
+ */
515
+ it('should auto-generate rule IDs when not provided', () => {
516
+ const id1 = generateRuleId();
517
+ const id2 = generateRuleId();
518
+ // Should be valid UUIDs
519
+ const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
520
+ expect(id1).toMatch(uuidRegex);
521
+ expect(id2).toMatch(uuidRegex);
522
+ // Should be unique
523
+ expect(id1).not.toBe(id2);
524
+ });
525
+ /**
526
+ * Test 8: Palisade Schema Compatibility
527
+ *
528
+ * Verifies annotations work correctly with Palisade schema.
529
+ */
530
+ it('should work correctly with Palisade schema', () => {
531
+ const rule = {
532
+ annotations: {
533
+ id: 'palisade-rule-001',
534
+ name: 'Block Critical ML Findings',
535
+ description: 'Prevents loading models with critical security findings',
536
+ severity: 'critical',
537
+ tags: ['ml-security', 'compliance'],
538
+ },
539
+ customAnnotations: {
540
+ framework: 'pytorch',
541
+ scan_type: 'static',
542
+ },
543
+ effect: 'forbid',
544
+ principal: { type: 'Palisade::Scanner' },
545
+ action: 'Palisade::Action::"load_model"',
546
+ resource: { type: 'Palisade::Artifact' },
547
+ conditions: [],
548
+ rawCondition: 'context.severity == "CRITICAL"',
549
+ enabled: true,
550
+ order: 0,
551
+ };
552
+ const cedarText = ruleToCedar(rule);
553
+ // Validate against Palisade schema
554
+ const validator = new PolicyValidator(PALISADE_SCHEMA);
555
+ expect(validator.validate(cedarText).valid).toBe(true);
556
+ // Parse and verify
557
+ const parseResult = parseCedarToRules(cedarText);
558
+ expect(parseResult.errors).toHaveLength(0);
559
+ const parsedRule = parseResult.rules[0];
560
+ expect(parsedRule.annotations.id).toBe('palisade-rule-001');
561
+ expect(parsedRule.annotations.severity).toBe('critical');
562
+ expect(parsedRule.customAnnotations?.framework).toBe('pytorch');
563
+ });
564
+ /**
565
+ * Test 9: Full Policy Lifecycle with Annotations
566
+ *
567
+ * Simulates the complete Studio UI workflow:
568
+ * 1. Create rules via UI form
569
+ * 2. Convert to Cedar for storage/evaluation
570
+ * 3. Validate against schema
571
+ * 4. Load into engine
572
+ * 5. Evaluate requests
573
+ * 6. Parse back for editing
574
+ */
575
+ it('should support full policy lifecycle with annotations', () => {
576
+ // Step 1: Create rules via UI form (simulated)
577
+ const rules = [
578
+ {
579
+ annotations: {
580
+ id: 'allow-safe-tools',
581
+ name: 'Allow Safe Tools',
582
+ description: 'Permits tool calls with no detected threats',
583
+ severity: 'low',
584
+ },
585
+ effect: 'permit',
586
+ principal: { type: 'Overwatch::User' },
587
+ action: 'Overwatch::Action::"call_tool"',
588
+ resource: { type: 'Overwatch::Tool' },
589
+ conditions: [],
590
+ rawCondition: 'context.threat_count == 0',
591
+ enabled: true,
592
+ order: 0,
593
+ },
594
+ {
595
+ annotations: {
596
+ id: 'block-high-threats',
597
+ name: 'Block High Threats',
598
+ severity: 'critical',
599
+ tags: ['security'],
600
+ },
601
+ effect: 'forbid',
602
+ principal: null,
603
+ action: 'Overwatch::Action::"call_tool"',
604
+ resource: null,
605
+ conditions: [{ field: 'threat_count', operator: 'gt', value: 0 }],
606
+ enabled: true,
607
+ order: 1,
608
+ },
609
+ ];
610
+ // Step 2: Convert to Cedar for storage
611
+ const cedarText = rulesToCedar(rules);
612
+ // Step 3: Validate
613
+ const validator = new PolicyValidator(OVERWATCH_SCHEMA);
614
+ expect(validator.validate(cedarText).valid).toBe(true);
615
+ // Step 4: Load into engine
616
+ const engine = new PolicyEngine({ schema: OVERWATCH_SCHEMA });
617
+ engine.loadPolicies(cedarText);
618
+ // Step 5: Evaluate - safe request (0 threats) should be allowed
619
+ const entities = [
620
+ newEntity('Overwatch::User', 'mcp_client', { user_type: 'external', email: 'test@example.com' }),
621
+ newEntity('Overwatch::Tool', 'shell', { tool_name: 'shell', risk_level: 'low' }),
622
+ ];
623
+ const safeRequest = engine.evaluate({
624
+ principal: newEntityUID('Overwatch::User', 'mcp_client'),
625
+ action: 'Overwatch::Action::"call_tool"',
626
+ resource: newEntityUID('Overwatch::Tool', 'shell'),
627
+ context: {
628
+ content: 'ls',
629
+ source: 'claudecode',
630
+ event: 'PreToolUse',
631
+ user_email: 'test@example.com',
632
+ tool_name: 'shell',
633
+ threat_count: 0,
634
+ highest_severity: 'low',
635
+ threat_categories: [],
636
+ threat_types: [],
637
+ yara_threats: [],
638
+ max_threat_severity: 0,
639
+ contains_secrets: false,
640
+ mcp_server: '',
641
+ mcp_tool: '',
642
+ path: '',
643
+ cwd: '',
644
+ workspace_root: '',
645
+ response_content: '',
646
+ },
647
+ entities,
648
+ });
649
+ expect(safeRequest.effect).toBe('Allow');
650
+ // Risky request (threats detected) should be denied
651
+ const riskyRequest = engine.evaluate({
652
+ principal: newEntityUID('Overwatch::User', 'mcp_client'),
653
+ action: 'Overwatch::Action::"call_tool"',
654
+ resource: newEntityUID('Overwatch::Tool', 'shell'),
655
+ context: {
656
+ content: 'rm -rf /',
657
+ source: 'claudecode',
658
+ event: 'PreToolUse',
659
+ user_email: 'test@example.com',
660
+ tool_name: 'shell',
661
+ threat_count: 3,
662
+ highest_severity: 'critical',
663
+ threat_categories: ['destructive'],
664
+ threat_types: ['shell_command'],
665
+ yara_threats: [],
666
+ max_threat_severity: 4,
667
+ contains_secrets: false,
668
+ mcp_server: '',
669
+ mcp_tool: '',
670
+ path: '',
671
+ cwd: '',
672
+ workspace_root: '',
673
+ response_content: '',
674
+ },
675
+ entities,
676
+ });
677
+ expect(riskyRequest.effect).toBe('Deny');
678
+ // Step 6: Parse back for editing
679
+ const parseResult = parseCedarToRules(cedarText);
680
+ expect(parseResult.errors).toHaveLength(0);
681
+ expect(parseResult.rules).toHaveLength(2);
682
+ // Verify all rules and annotations are preserved for editing
683
+ const allowRule = parseResult.rules.find((r) => r.annotations.id === 'allow-safe-tools');
684
+ const blockRule = parseResult.rules.find((r) => r.annotations.id === 'block-high-threats');
685
+ expect(allowRule?.annotations.name).toBe('Allow Safe Tools');
686
+ expect(blockRule?.annotations.severity).toBe('critical');
687
+ expect(blockRule?.annotations.tags).toEqual(['security']);
688
+ });
164
689
  });
165
690
  //# sourceMappingURL=studio-ui.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"studio-ui.test.js","sourceRoot":"","sources":["../src/studio-ui.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"studio-ui.test.js","sourceRoot":"","sources":["../src/studio-ui.test.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -4,8 +4,12 @@ export * from './context.gen.js';
4
4
  export * from './schema.gen.js';
5
5
  export * from './builder.js';
6
6
  export * from './errors.js';
7
- export { OVERWATCH_SCHEMA, PALISADE_SCHEMA, OVERWATCH_CONTEXT, PALISADE_CONTEXT, } from './service-schemas.gen.js';
7
+ export * from './annotations.js';
8
+ export { OVERWATCH_SCHEMA, OVERWATCH_CONTEXT, PALISADE_SCHEMA, PALISADE_CONTEXT, } from './service-schemas.gen.js';
8
9
  export type { ContextAttribute, ActionContext, ServiceContext, } from './service-schemas.gen.js';
9
10
  export { OverwatchContextKey } from './overwatch-context.gen.js';
10
11
  export { PalisadeContextKey } from './palisade-context.gen.js';
12
+ export { OVERWATCH_ENTITIES, OVERWATCH_ACTION_ENTITIES, } from './overwatch-entities.gen.js';
13
+ export { PALISADE_ENTITIES, PALISADE_ACTION_ENTITIES, } from './palisade-entities.gen.js';
14
+ export type { ServiceEntityMetadata, ActionEntityMetadata } from './entity-metadata-types.gen.js';
11
15
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAQA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,cAAc,CAAC;AAG7B,cAAc,aAAa,CAAC;AAG5B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,cAAc,GACf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAQA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,cAAc,CAAC;AAG7B,cAAc,aAAa,CAAC;AAG5B,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,cAAc,GACf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC"}
package/dist/types.js CHANGED
@@ -13,9 +13,14 @@ export * from './schema.gen.js';
13
13
  export * from './builder.js';
14
14
  // Error types - works in browser (no WASM dependency)
15
15
  export * from './errors.js';
16
+ // Annotations - works in browser (no WASM dependency)
17
+ export * from './annotations.js';
16
18
  // Service-specific schemas and context (inlined, browser-safe)
17
- export { OVERWATCH_SCHEMA, PALISADE_SCHEMA, OVERWATCH_CONTEXT, PALISADE_CONTEXT, } from './service-schemas.gen.js';
19
+ export { OVERWATCH_SCHEMA, OVERWATCH_CONTEXT, PALISADE_SCHEMA, PALISADE_CONTEXT, } from './service-schemas.gen.js';
18
20
  // Service-specific context key enums
19
21
  export { OverwatchContextKey } from './overwatch-context.gen.js';
20
22
  export { PalisadeContextKey } from './palisade-context.gen.js';
23
+ // Service-specific entity metadata (for UI - principals, resources, actions)
24
+ export { OVERWATCH_ENTITIES, OVERWATCH_ACTION_ENTITIES, } from './overwatch-entities.gen.js';
25
+ export { PALISADE_ENTITIES, PALISADE_ACTION_ENTITIES, } from './palisade-entities.gen.js';
21
26
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,uCAAuC;AACvC,EAAE;AACF,6CAA6C;AAC7C,gDAAgD;AAChD,yEAAyE;AAEzE,gDAAgD;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAEhC,wDAAwD;AACxD,cAAc,cAAc,CAAC;AAE7B,sDAAsD;AACtD,cAAc,aAAa,CAAC;AAE5B,+DAA+D;AAC/D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAOlC,qCAAqC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,uCAAuC;AACvC,EAAE;AACF,6CAA6C;AAC7C,gDAAgD;AAChD,yEAAyE;AAEzE,gDAAgD;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAEhC,wDAAwD;AACxD,cAAc,cAAc,CAAC;AAE7B,sDAAsD;AACtD,cAAc,aAAa,CAAC;AAE5B,sDAAsD;AACtD,cAAc,kBAAkB,CAAC;AAEjC,+DAA+D;AAC/D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAOlC,qCAAqC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,6EAA6E;AAC7E,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@highflame/policy",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "description": "Highflame Cedar policy types and engine wrapper",
5
5
  "readme": "README.md",
6
6
  "main": "dist/index.js",