@highflame/policy 2.1.22 → 2.1.24
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/_schemas/ai_gateway/templates/mcp_tool_permissions.cedar +10 -29
- package/_schemas/ai_gateway/templates/templates.json +3 -3
- package/_schemas/guardrails/context.json +1 -1
- package/_schemas/sentry/templates/defaults/clipboard.cedar +76 -0
- package/_schemas/sentry/templates/defaults/file_safety.cedar +7 -7
- package/_schemas/sentry/templates/defaults/organization.cedar +10 -159
- package/_schemas/sentry/templates/defaults/pii.cedar +0 -32
- package/_schemas/sentry/templates/defaults/secrets.cedar +155 -0
- package/_schemas/sentry/templates/templates.json +38 -12
- package/dist/ai_gateway-defaults.gen.js +16 -35
- package/dist/overwatch-defaults.gen.js +16 -35
- package/dist/sentry-defaults.gen.d.ts +1 -1
- package/dist/sentry-defaults.gen.js +284 -188
- package/dist/service-schemas.gen.js +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"description": "Sentry policy templates for browser AI security",
|
|
5
5
|
"categories": [
|
|
6
|
+
{
|
|
7
|
+
"id": "secrets",
|
|
8
|
+
"name": "Secrets Detection",
|
|
9
|
+
"description": "Detect and block secrets, API keys, tokens, and other credentials in messages and AI responses"
|
|
10
|
+
},
|
|
6
11
|
{
|
|
7
12
|
"id": "pii",
|
|
8
13
|
"name": "PII Detection",
|
|
@@ -23,10 +28,15 @@
|
|
|
23
28
|
"name": "File & Attachment Safety",
|
|
24
29
|
"description": "Enforce document sensitivity controls (MIP labels), block sensitive file uploads, detect secrets and PII in uploaded documents"
|
|
25
30
|
},
|
|
31
|
+
{
|
|
32
|
+
"id": "clipboard",
|
|
33
|
+
"name": "Clipboard Policy",
|
|
34
|
+
"description": "Control paste operations into AI chat services — block paste outright, block when secrets or source code are detected"
|
|
35
|
+
},
|
|
26
36
|
{
|
|
27
37
|
"id": "organization",
|
|
28
38
|
"name": "Organization Rules",
|
|
29
|
-
"description": "
|
|
39
|
+
"description": "Cross-cutting organization-wide rules: source code protection in messages and session-aware threat escalation"
|
|
30
40
|
}
|
|
31
41
|
],
|
|
32
42
|
"defaults": [
|
|
@@ -39,7 +49,9 @@
|
|
|
39
49
|
"severity": "low",
|
|
40
50
|
"tags": ["baseline", "permit-default", "organization"],
|
|
41
51
|
"is_active": true
|
|
42
|
-
}
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"templates": [
|
|
43
55
|
{
|
|
44
56
|
"id": "sentry-semantic-default",
|
|
45
57
|
"name": "Semantic Threat Detection",
|
|
@@ -47,8 +59,7 @@
|
|
|
47
59
|
"category": "semantic",
|
|
48
60
|
"file": "defaults/semantic.cedar",
|
|
49
61
|
"severity": "critical",
|
|
50
|
-
"tags": ["injection", "jailbreak", "owasp-llm01", "owasp-llm02", "baseline"]
|
|
51
|
-
"is_active": true
|
|
62
|
+
"tags": ["injection", "jailbreak", "owasp-llm01", "owasp-llm02", "baseline"]
|
|
52
63
|
},
|
|
53
64
|
{
|
|
54
65
|
"id": "sentry-content-safety-default",
|
|
@@ -57,11 +68,17 @@
|
|
|
57
68
|
"category": "content_safety",
|
|
58
69
|
"file": "defaults/content_safety.cedar",
|
|
59
70
|
"severity": "critical",
|
|
60
|
-
"tags": ["violence", "hate-speech", "sexual", "profanity", "content-safety", "paste-safety", "baseline"]
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
71
|
+
"tags": ["violence", "hate-speech", "sexual", "profanity", "content-safety", "paste-safety", "baseline"]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"id": "sentry-secrets-default",
|
|
75
|
+
"name": "Secrets Detection",
|
|
76
|
+
"description": "Block secrets, API keys, tokens, and credential leakage in messages and AI responses across all interactions",
|
|
77
|
+
"category": "secrets",
|
|
78
|
+
"file": "defaults/secrets.cedar",
|
|
79
|
+
"severity": "critical",
|
|
80
|
+
"tags": ["secrets", "credentials", "api-keys", "data-protection"]
|
|
81
|
+
},
|
|
65
82
|
{
|
|
66
83
|
"id": "sentry-pii-default",
|
|
67
84
|
"name": "PII Detection",
|
|
@@ -80,14 +97,23 @@
|
|
|
80
97
|
"severity": "critical",
|
|
81
98
|
"tags": ["mip", "document-sensitivity", "file-upload", "dlp", "compliance"]
|
|
82
99
|
},
|
|
100
|
+
{
|
|
101
|
+
"id": "sentry-clipboard-default",
|
|
102
|
+
"name": "Clipboard Policy",
|
|
103
|
+
"description": "Control paste into AI chat services: blanket paste blocking, secrets-in-paste blocking, and source-code-in-paste blocking",
|
|
104
|
+
"category": "clipboard",
|
|
105
|
+
"file": "defaults/clipboard.cedar",
|
|
106
|
+
"severity": "high",
|
|
107
|
+
"tags": ["paste", "clipboard", "data-protection", "source-code", "secrets"]
|
|
108
|
+
},
|
|
83
109
|
{
|
|
84
110
|
"id": "sentry-organization-default",
|
|
85
111
|
"name": "Organization Rules",
|
|
86
|
-
"description": "
|
|
112
|
+
"description": "Cross-cutting organization-wide policies: source code protection in messages and session-aware threat escalation",
|
|
87
113
|
"category": "organization",
|
|
88
114
|
"file": "defaults/organization.cedar",
|
|
89
|
-
"severity": "
|
|
90
|
-
"tags": ["
|
|
115
|
+
"severity": "high",
|
|
116
|
+
"tags": ["source-code", "session", "escalation", "organization"]
|
|
91
117
|
}
|
|
92
118
|
]
|
|
93
119
|
}
|
|
@@ -412,44 +412,25 @@ const AI_GATEWAY_TOOLS_MCP_TOOL_PERMISSIONS_CEDAR = `// ========================
|
|
|
412
412
|
// Complements the MCP Server Allowlist (connect_server action)
|
|
413
413
|
// with fine-grained per-tool control on call_tool action.
|
|
414
414
|
//
|
|
415
|
+
// Defaults to permit-all. Customize per-tool gating by adding forbid rules
|
|
416
|
+
// scoped to specific mcp_server / tool_name combinations.
|
|
417
|
+
//
|
|
415
418
|
// Category: tools
|
|
416
419
|
// Namespace: AIGateway
|
|
417
420
|
// =============================================================================
|
|
418
421
|
|
|
419
|
-
// --
|
|
422
|
+
// -- Permit all MCP tool calls (opt-in default) -----------------------------
|
|
420
423
|
|
|
421
|
-
@id("mcp-tool-allow-
|
|
422
|
-
@name("Allow
|
|
423
|
-
@description("Permit
|
|
424
|
-
@severity("
|
|
425
|
-
@tags("mcp,
|
|
424
|
+
@id("mcp-tool-allow-all")
|
|
425
|
+
@name("Allow all MCP tool calls")
|
|
426
|
+
@description("Permit every call_tool action. Add forbid rules below for per-tool gating.")
|
|
427
|
+
@severity("low")
|
|
428
|
+
@tags("mcp,permit-default")
|
|
426
429
|
permit (
|
|
427
430
|
principal,
|
|
428
431
|
action == AIGateway::Action::"call_tool",
|
|
429
432
|
resource
|
|
430
|
-
)
|
|
431
|
-
context has mcp_server && context.mcp_server == "github" &&
|
|
432
|
-
context has tool_name &&
|
|
433
|
-
(context.tool_name == "read_issues" ||
|
|
434
|
-
context.tool_name == "get_issue" ||
|
|
435
|
-
context.tool_name == "list_repos" ||
|
|
436
|
-
context.tool_name == "get_pull_request" ||
|
|
437
|
-
context.tool_name == "search_code" ||
|
|
438
|
-
context.tool_name == "get_file_contents")
|
|
439
|
-
};
|
|
440
|
-
|
|
441
|
-
@id("mcp-tool-deny-write-github")
|
|
442
|
-
@name("Deny write GitHub tools")
|
|
443
|
-
@description("Block create/update/delete operations on GitHub MCP server")
|
|
444
|
-
@severity("high")
|
|
445
|
-
@tags("mcp,github,write-block,least-privilege")
|
|
446
|
-
forbid (
|
|
447
|
-
principal,
|
|
448
|
-
action == AIGateway::Action::"call_tool",
|
|
449
|
-
resource
|
|
450
|
-
) when {
|
|
451
|
-
context has mcp_server && context.mcp_server == "github"
|
|
452
|
-
};
|
|
433
|
+
);
|
|
453
434
|
|
|
454
435
|
// -- Organization-wide MCP server exclusions --------------------------------
|
|
455
436
|
|
|
@@ -668,11 +649,11 @@ export const AI_GATEWAY_TEMPLATES = [
|
|
|
668
649
|
{
|
|
669
650
|
id: 'tools-mcp-tool-permissions',
|
|
670
651
|
name: 'MCP Tool Permissions',
|
|
671
|
-
description: '
|
|
652
|
+
description: 'Permit every MCP call_tool by default. Ships two opt-in safety rails (block untrusted/deprecated servers, block unverified servers). Add forbid rules for per-tool or per-server gating.',
|
|
672
653
|
category: 'tools',
|
|
673
654
|
cedarText: AI_GATEWAY_TOOLS_MCP_TOOL_PERMISSIONS_CEDAR,
|
|
674
|
-
severity: '
|
|
675
|
-
tags: ['mcp', 'tools', '
|
|
655
|
+
severity: 'low',
|
|
656
|
+
tags: ['mcp', 'tools', 'permit-default', 'exclusion'],
|
|
676
657
|
},
|
|
677
658
|
{
|
|
678
659
|
id: 'data-pii-redaction',
|
|
@@ -788,11 +769,11 @@ export const AI_GATEWAY_TEMPLATES_JSON = `{
|
|
|
788
769
|
{
|
|
789
770
|
"id": "tools-mcp-tool-permissions",
|
|
790
771
|
"name": "MCP Tool Permissions",
|
|
791
|
-
"description": "
|
|
772
|
+
"description": "Permit every MCP call_tool by default. Ships two opt-in safety rails (block untrusted/deprecated servers, block unverified servers). Add forbid rules for per-tool or per-server gating.",
|
|
792
773
|
"category": "tools",
|
|
793
774
|
"file": "mcp_tool_permissions.cedar",
|
|
794
|
-
"severity": "
|
|
795
|
-
"tags": ["mcp", "tools", "
|
|
775
|
+
"severity": "low",
|
|
776
|
+
"tags": ["mcp", "tools", "permit-default", "exclusion"]
|
|
796
777
|
},
|
|
797
778
|
{
|
|
798
779
|
"id": "data-pii-redaction",
|
|
@@ -855,44 +855,25 @@ const OVERWATCH_TOOLS_MCP_TOOL_PERMISSIONS_CEDAR = `// =========================
|
|
|
855
855
|
// Complements the existing MCP Server Allowlist (connect_server action)
|
|
856
856
|
// with fine-grained per-tool control on call_tool action.
|
|
857
857
|
//
|
|
858
|
+
// Defaults to permit-all. Customize per-tool gating by adding forbid rules
|
|
859
|
+
// scoped to specific mcp_server / tool_name combinations.
|
|
860
|
+
//
|
|
858
861
|
// Category: tools
|
|
859
862
|
// Namespace: Overwatch
|
|
860
863
|
// =============================================================================
|
|
861
864
|
|
|
862
|
-
// --
|
|
865
|
+
// -- Permit all MCP tool calls (opt-in default) -----------------------------
|
|
863
866
|
|
|
864
|
-
@id("mcp-tool-allow-
|
|
865
|
-
@name("Allow
|
|
866
|
-
@description("Permit
|
|
867
|
-
@severity("
|
|
868
|
-
@tags("mcp,
|
|
867
|
+
@id("mcp-tool-allow-all")
|
|
868
|
+
@name("Allow all MCP tool calls")
|
|
869
|
+
@description("Permit every call_tool action. Add forbid rules below for per-tool gating.")
|
|
870
|
+
@severity("low")
|
|
871
|
+
@tags("mcp,permit-default")
|
|
869
872
|
permit (
|
|
870
873
|
principal,
|
|
871
874
|
action == Overwatch::Action::"call_tool",
|
|
872
875
|
resource
|
|
873
|
-
)
|
|
874
|
-
context has mcp_server && context.mcp_server == "github" &&
|
|
875
|
-
context has tool_name &&
|
|
876
|
-
(context.tool_name == "read_issues" ||
|
|
877
|
-
context.tool_name == "get_issue" ||
|
|
878
|
-
context.tool_name == "list_repos" ||
|
|
879
|
-
context.tool_name == "get_pull_request" ||
|
|
880
|
-
context.tool_name == "search_code" ||
|
|
881
|
-
context.tool_name == "get_file_contents")
|
|
882
|
-
};
|
|
883
|
-
|
|
884
|
-
@id("mcp-tool-deny-write-github")
|
|
885
|
-
@name("Deny write GitHub tools")
|
|
886
|
-
@description("Block create/update/delete operations on GitHub MCP server")
|
|
887
|
-
@severity("high")
|
|
888
|
-
@tags("mcp,github,write-block,least-privilege")
|
|
889
|
-
forbid (
|
|
890
|
-
principal,
|
|
891
|
-
action == Overwatch::Action::"call_tool",
|
|
892
|
-
resource
|
|
893
|
-
) when {
|
|
894
|
-
context has mcp_server && context.mcp_server == "github"
|
|
895
|
-
};
|
|
876
|
+
);
|
|
896
877
|
|
|
897
878
|
// -- Organization-wide MCP server exclusions --------------------------------
|
|
898
879
|
|
|
@@ -1117,11 +1098,11 @@ export const OVERWATCH_TEMPLATES = [
|
|
|
1117
1098
|
{
|
|
1118
1099
|
id: 'tools-mcp-tool-permissions',
|
|
1119
1100
|
name: 'MCP Tool Permissions',
|
|
1120
|
-
description: '
|
|
1101
|
+
description: 'Permit every MCP call_tool by default. Ships two opt-in safety rails (block untrusted/deprecated servers, block unverified servers). Add forbid rules for per-tool or per-server gating.',
|
|
1121
1102
|
category: 'tools',
|
|
1122
1103
|
cedarText: OVERWATCH_TOOLS_MCP_TOOL_PERMISSIONS_CEDAR,
|
|
1123
|
-
severity: '
|
|
1124
|
-
tags: ['mcp', 'tools', '
|
|
1104
|
+
severity: 'low',
|
|
1105
|
+
tags: ['mcp', 'tools', 'permit-default', 'exclusion'],
|
|
1125
1106
|
},
|
|
1126
1107
|
{
|
|
1127
1108
|
id: 'org-default-deny',
|
|
@@ -1256,11 +1237,11 @@ export const OVERWATCH_TEMPLATES_JSON = `{
|
|
|
1256
1237
|
{
|
|
1257
1238
|
"id": "tools-mcp-tool-permissions",
|
|
1258
1239
|
"name": "MCP Tool Permissions",
|
|
1259
|
-
"description": "
|
|
1240
|
+
"description": "Permit every MCP call_tool by default. Ships two opt-in safety rails (block untrusted/deprecated servers, block unverified servers). Add forbid rules for per-tool or per-server gating.",
|
|
1260
1241
|
"category": "tools",
|
|
1261
1242
|
"file": "mcp_tool_permissions.cedar",
|
|
1262
|
-
"severity": "
|
|
1263
|
-
"tags": ["mcp", "tools", "
|
|
1243
|
+
"severity": "low",
|
|
1244
|
+
"tags": ["mcp", "tools", "permit-default", "exclusion"]
|
|
1264
1245
|
},
|
|
1265
1246
|
{
|
|
1266
1247
|
"id": "org-default-deny",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Sentry policy category identifiers.
|
|
3
3
|
* Maps to UI tab names in Studio.
|
|
4
4
|
*/
|
|
5
|
-
export type SentryCategory = 'pii' | 'semantic' | 'content_safety' | 'file_safety' | 'organization';
|
|
5
|
+
export type SentryCategory = 'secrets' | 'pii' | 'semantic' | 'content_safety' | 'file_safety' | 'clipboard' | 'organization';
|
|
6
6
|
/**
|
|
7
7
|
* Category metadata for UI display.
|
|
8
8
|
*/
|