@highflame/policy 2.0.3 → 2.0.5
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/overwatch/schema.cedarschema +19 -5
- package/dist/engine.d.ts +24 -7
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +75 -16
- package/dist/engine.js.map +1 -1
- package/dist/engine.test.js +13 -13
- package/dist/engine.test.js.map +1 -1
- package/dist/overwatch-defaults.gen.d.ts +62 -0
- package/dist/overwatch-defaults.gen.d.ts.map +1 -0
- package/dist/overwatch-defaults.gen.js +829 -0
- package/dist/overwatch-defaults.gen.js.map +1 -0
- package/dist/overwatch-defaults.test.d.ts +8 -0
- package/dist/overwatch-defaults.test.d.ts.map +1 -0
- package/dist/overwatch-defaults.test.js +145 -0
- package/dist/overwatch-defaults.test.js.map +1 -0
- package/dist/overwatch-rebac.test.d.ts +25 -0
- package/dist/overwatch-rebac.test.d.ts.map +1 -0
- package/dist/overwatch-rebac.test.js +301 -0
- package/dist/overwatch-rebac.test.js.map +1 -0
- package/dist/schemas.test.js +6 -8
- package/dist/schemas.test.js.map +1 -1
- package/dist/service-schemas.gen.d.ts +1 -1
- package/dist/service-schemas.gen.d.ts.map +1 -1
- package/dist/service-schemas.gen.js +2 -4
- package/dist/service-schemas.gen.js.map +1 -1
- package/dist/studio-ui.test.js +3 -6
- package/dist/studio-ui.test.js.map +1 -1
- package/package.json +1 -1
- package/src/engine.test.ts +13 -13
- package/src/engine.ts +90 -19
- package/src/overwatch-defaults.gen.ts +907 -0
- package/src/overwatch-defaults.test.ts +176 -0
- package/src/overwatch-rebac.test.ts +346 -0
- package/src/schemas.test.ts +8 -8
- package/src/service-schemas.gen.ts +4 -4
- package/src/studio-ui.test.ts +6 -6
|
@@ -16,17 +16,33 @@
|
|
|
16
16
|
namespace Overwatch {
|
|
17
17
|
|
|
18
18
|
// =============================================================================
|
|
19
|
-
// ENTITIES
|
|
19
|
+
// ENTITIES - Organization Hierarchy (ReBAC)
|
|
20
|
+
// =============================================================================
|
|
21
|
+
|
|
22
|
+
// Top-level organization for multi-tenant policy enforcement
|
|
23
|
+
// Enables policies like: principal in Overwatch::Organization::"acme-corp"
|
|
24
|
+
entity Organization {
|
|
25
|
+
name: String, // "Acme Corp", "Highflame"
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// Team within an organization
|
|
29
|
+
// Enables policies like: principal in Overwatch::Team::"security-team"
|
|
30
|
+
entity Team in [Organization] {
|
|
31
|
+
name: String, // "security", "engineering", "devops"
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// =============================================================================
|
|
35
|
+
// ENTITIES - Principals
|
|
20
36
|
// =============================================================================
|
|
21
37
|
|
|
22
38
|
// Human user or service account making requests to the IDE
|
|
23
|
-
entity User {
|
|
39
|
+
entity User in [Team] {
|
|
24
40
|
user_type: String, // "external" or "internal"
|
|
25
41
|
email: String, // User email (optional)
|
|
26
42
|
};
|
|
27
43
|
|
|
28
44
|
// AI agent (Claude, GitHub Copilot, etc.)
|
|
29
|
-
entity Agent {
|
|
45
|
+
entity Agent in [Team] {
|
|
30
46
|
agent_type: String, // "claude", "copilot", etc.
|
|
31
47
|
};
|
|
32
48
|
|
|
@@ -75,7 +91,6 @@ action process_prompt appliesTo {
|
|
|
75
91
|
threat_count: Long, // Total threats detected
|
|
76
92
|
highest_severity: String, // "critical", "high", "medium", "low"
|
|
77
93
|
threat_categories: Set<String>, // Threat category names
|
|
78
|
-
threat_types: Set<String>, // YARA threat categories
|
|
79
94
|
yara_threats: Set<String>, // YARA rule names
|
|
80
95
|
max_threat_severity: Long, // Numeric severity (0-4)
|
|
81
96
|
contains_secrets: Bool, // Whether secrets detected
|
|
@@ -111,7 +126,6 @@ action call_tool appliesTo {
|
|
|
111
126
|
threat_count: Long,
|
|
112
127
|
highest_severity: String,
|
|
113
128
|
threat_categories: Set<String>,
|
|
114
|
-
threat_types: Set<String>,
|
|
115
129
|
yara_threats: Set<String>,
|
|
116
130
|
max_threat_severity: Long,
|
|
117
131
|
contains_secrets: Bool,
|
package/dist/engine.d.ts
CHANGED
|
@@ -38,10 +38,13 @@ export interface EngineOptions {
|
|
|
38
38
|
export declare class InputValidationError extends Error {
|
|
39
39
|
constructor(message: string);
|
|
40
40
|
}
|
|
41
|
-
export
|
|
42
|
-
effect: "Allow" | "Deny";
|
|
43
|
-
determining_policies: string[];
|
|
44
|
-
reason?: string;
|
|
41
|
+
export declare class Decision {
|
|
42
|
+
readonly effect: "Allow" | "Deny";
|
|
43
|
+
readonly determining_policies: string[];
|
|
44
|
+
readonly reason?: string;
|
|
45
|
+
constructor(effect: "Allow" | "Deny", determining_policies: string[], reason?: string);
|
|
46
|
+
isAllowed(): boolean;
|
|
47
|
+
isDenied(): boolean;
|
|
45
48
|
}
|
|
46
49
|
export interface EvaluateRequest {
|
|
47
50
|
principal: EntityUID;
|
|
@@ -59,19 +62,33 @@ export interface EvaluateRequest {
|
|
|
59
62
|
* PolicyEngine wraps cedar-wasm with Highflame schema types.
|
|
60
63
|
*/
|
|
61
64
|
export declare class PolicyEngine {
|
|
62
|
-
private
|
|
65
|
+
private policySet;
|
|
63
66
|
private schema;
|
|
64
67
|
private options;
|
|
65
68
|
private limits;
|
|
66
69
|
constructor(options?: EngineOptions);
|
|
67
70
|
/**
|
|
68
|
-
* Load policies from a
|
|
71
|
+
* Load Cedar policies from a file.
|
|
69
72
|
*/
|
|
70
|
-
|
|
73
|
+
loadPoliciesFromFile(path: string): void;
|
|
74
|
+
/**
|
|
75
|
+
* Load a single Cedar policy text string.
|
|
76
|
+
* Uses @id annotations as policy IDs when available.
|
|
77
|
+
*/
|
|
78
|
+
loadPolicy(policy: string): void;
|
|
79
|
+
/**
|
|
80
|
+
* Load multiple Cedar policy texts (concatenated with newlines).
|
|
81
|
+
* Uses @id annotations as policy IDs when available.
|
|
82
|
+
*/
|
|
83
|
+
loadPolicies(policies: string[]): void;
|
|
71
84
|
/**
|
|
72
85
|
* Load schema from a Cedar schema string.
|
|
73
86
|
*/
|
|
74
87
|
loadSchema(schema: string): void;
|
|
88
|
+
/**
|
|
89
|
+
* Load schema from a Cedar schema file.
|
|
90
|
+
*/
|
|
91
|
+
loadSchemaFromFile(path: string): void;
|
|
75
92
|
/**
|
|
76
93
|
* Evaluate a policy request and return a decision.
|
|
77
94
|
* @throws InputValidationError if context validation fails
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Highflame Policy Engine - TypeScript Wrapper
|
|
3
3
|
* Wraps @cedar-policy/cedar-wasm with Highflame-specific types
|
|
4
4
|
*/
|
|
5
|
+
import * as fs from "node:fs";
|
|
5
6
|
import * as cedar from "@cedar-policy/cedar-wasm/nodejs";
|
|
6
7
|
// =============================================================================
|
|
7
8
|
// INPUT VALIDATION LIMITS (consistent across all language SDKs)
|
|
@@ -85,6 +86,22 @@ function validateValue(value, limits, depth) {
|
|
|
85
86
|
validateContext(value, limits, depth + 1);
|
|
86
87
|
}
|
|
87
88
|
}
|
|
89
|
+
export class Decision {
|
|
90
|
+
effect;
|
|
91
|
+
determining_policies;
|
|
92
|
+
reason;
|
|
93
|
+
constructor(effect, determining_policies, reason) {
|
|
94
|
+
this.effect = effect;
|
|
95
|
+
this.determining_policies = determining_policies;
|
|
96
|
+
this.reason = reason;
|
|
97
|
+
}
|
|
98
|
+
isAllowed() {
|
|
99
|
+
return this.effect === "Allow";
|
|
100
|
+
}
|
|
101
|
+
isDenied() {
|
|
102
|
+
return this.effect === "Deny";
|
|
103
|
+
}
|
|
104
|
+
}
|
|
88
105
|
/**
|
|
89
106
|
* Convert a value to Cedar JSON format
|
|
90
107
|
*/
|
|
@@ -130,11 +147,39 @@ function parseActionString(action) {
|
|
|
130
147
|
}
|
|
131
148
|
return { type: actionType, id: actionId };
|
|
132
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Extract @id annotations from Cedar policy text and return a
|
|
152
|
+
* Record<PolicyId, Policy> for cedar-wasm. This ensures that
|
|
153
|
+
* determining_policies in evaluation results use the @id values
|
|
154
|
+
* instead of positional IDs (policy0, policy1...).
|
|
155
|
+
*
|
|
156
|
+
* Falls back to the raw string when no @id annotations are found.
|
|
157
|
+
*/
|
|
158
|
+
function extractPolicyIds(policyText) {
|
|
159
|
+
const parts = cedar.policySetTextToParts(policyText);
|
|
160
|
+
if (parts.type !== "success" || parts.policies.length === 0) {
|
|
161
|
+
return policyText;
|
|
162
|
+
}
|
|
163
|
+
const policyMap = {};
|
|
164
|
+
let hasAnnotationIds = false;
|
|
165
|
+
for (let i = 0; i < parts.policies.length; i++) {
|
|
166
|
+
const policy = parts.policies[i];
|
|
167
|
+
const idMatch = policy.match(/@id\("([^"]+)"\)/);
|
|
168
|
+
if (idMatch) {
|
|
169
|
+
policyMap[idMatch[1]] = policy;
|
|
170
|
+
hasAnnotationIds = true;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
policyMap[`policy${i}`] = policy;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return hasAnnotationIds ? policyMap : policyText;
|
|
177
|
+
}
|
|
133
178
|
/**
|
|
134
179
|
* PolicyEngine wraps cedar-wasm with Highflame schema types.
|
|
135
180
|
*/
|
|
136
181
|
export class PolicyEngine {
|
|
137
|
-
|
|
182
|
+
policySet = "";
|
|
138
183
|
schema;
|
|
139
184
|
options;
|
|
140
185
|
limits;
|
|
@@ -149,10 +194,25 @@ export class PolicyEngine {
|
|
|
149
194
|
};
|
|
150
195
|
}
|
|
151
196
|
/**
|
|
152
|
-
* Load policies from a
|
|
197
|
+
* Load Cedar policies from a file.
|
|
198
|
+
*/
|
|
199
|
+
loadPoliciesFromFile(path) {
|
|
200
|
+
const content = fs.readFileSync(path, "utf-8");
|
|
201
|
+
this.loadPolicy(content);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Load a single Cedar policy text string.
|
|
205
|
+
* Uses @id annotations as policy IDs when available.
|
|
206
|
+
*/
|
|
207
|
+
loadPolicy(policy) {
|
|
208
|
+
this.policySet = extractPolicyIds(policy);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Load multiple Cedar policy texts (concatenated with newlines).
|
|
212
|
+
* Uses @id annotations as policy IDs when available.
|
|
153
213
|
*/
|
|
154
214
|
loadPolicies(policies) {
|
|
155
|
-
this.
|
|
215
|
+
this.policySet = extractPolicyIds(policies.join("\n"));
|
|
156
216
|
}
|
|
157
217
|
/**
|
|
158
218
|
* Load schema from a Cedar schema string.
|
|
@@ -160,6 +220,13 @@ export class PolicyEngine {
|
|
|
160
220
|
loadSchema(schema) {
|
|
161
221
|
this.schema = schema;
|
|
162
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Load schema from a Cedar schema file.
|
|
225
|
+
*/
|
|
226
|
+
loadSchemaFromFile(path) {
|
|
227
|
+
const content = fs.readFileSync(path, "utf-8");
|
|
228
|
+
this.loadSchema(content);
|
|
229
|
+
}
|
|
163
230
|
/**
|
|
164
231
|
* Evaluate a policy request and return a decision.
|
|
165
232
|
* @throws InputValidationError if context validation fails
|
|
@@ -198,7 +265,7 @@ export class PolicyEngine {
|
|
|
198
265
|
action,
|
|
199
266
|
resource,
|
|
200
267
|
context,
|
|
201
|
-
policies: { staticPolicies: this.
|
|
268
|
+
policies: { staticPolicies: this.policySet },
|
|
202
269
|
entities,
|
|
203
270
|
};
|
|
204
271
|
// Add schema if available
|
|
@@ -207,19 +274,11 @@ export class PolicyEngine {
|
|
|
207
274
|
}
|
|
208
275
|
const result = cedar.isAuthorized(call);
|
|
209
276
|
if (result.type === "failure") {
|
|
210
|
-
return
|
|
211
|
-
effect: "Deny",
|
|
212
|
-
determining_policies: [],
|
|
213
|
-
reason: result.errors.map(e => e.message).join("; "),
|
|
214
|
-
};
|
|
277
|
+
return new Decision("Deny", [], result.errors.map(e => e.message).join("; "));
|
|
215
278
|
}
|
|
216
|
-
return
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
reason: result.response.diagnostics.errors.length > 0
|
|
220
|
-
? result.response.diagnostics.errors.map(e => e.error.message).join("; ")
|
|
221
|
-
: undefined,
|
|
222
|
-
};
|
|
279
|
+
return new Decision(result.response.decision === "allow" ? "Allow" : "Deny", result.response.diagnostics.reason, result.response.diagnostics.errors.length > 0
|
|
280
|
+
? result.response.diagnostics.errors.map(e => e.error.message).join("; ")
|
|
281
|
+
: undefined);
|
|
223
282
|
}
|
|
224
283
|
/**
|
|
225
284
|
* Convenience method for simple evaluations.
|
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.test.js
CHANGED
|
@@ -32,24 +32,24 @@ describe('PolicyEngine', () => {
|
|
|
32
32
|
});
|
|
33
33
|
describe('basic evaluation', () => {
|
|
34
34
|
it('should allow when permit policy matches', () => {
|
|
35
|
-
engine.
|
|
35
|
+
engine.loadPolicy(permitAllPolicy);
|
|
36
36
|
const decision = engine.evaluateSimple(EntityType.Scanner, 'test-scanner', ActionType.ScanArtifact, EntityType.Artifact, '/model.safetensors');
|
|
37
37
|
expect(decision.effect).toBe('Allow');
|
|
38
38
|
});
|
|
39
39
|
it('should deny when forbid policy matches', () => {
|
|
40
|
-
engine.
|
|
40
|
+
engine.loadPolicy(denyAllPolicy);
|
|
41
41
|
const decision = engine.evaluateSimple(EntityType.Scanner, 'test-scanner', ActionType.ScanArtifact, EntityType.Artifact, '/model.safetensors');
|
|
42
42
|
expect(decision.effect).toBe('Deny');
|
|
43
43
|
});
|
|
44
44
|
it('should deny when no policies match (default deny)', () => {
|
|
45
|
-
engine.
|
|
45
|
+
engine.loadPolicy(''); // No policies
|
|
46
46
|
const decision = engine.evaluateSimple(EntityType.Scanner, 'test-scanner', ActionType.ScanArtifact, EntityType.Artifact, '/model.safetensors');
|
|
47
47
|
expect(decision.effect).toBe('Deny');
|
|
48
48
|
});
|
|
49
49
|
});
|
|
50
50
|
describe('context-based evaluation', () => {
|
|
51
51
|
beforeEach(() => {
|
|
52
|
-
engine.
|
|
52
|
+
engine.loadPolicy(contextBasedPolicy);
|
|
53
53
|
});
|
|
54
54
|
it('should allow when context matches permit condition', () => {
|
|
55
55
|
// Use simple permit policy to test context evaluation in isolation
|
|
@@ -58,7 +58,7 @@ describe('PolicyEngine', () => {
|
|
|
58
58
|
when { context.environment == "production" };
|
|
59
59
|
`;
|
|
60
60
|
const testEngine = new PolicyEngine();
|
|
61
|
-
testEngine.
|
|
61
|
+
testEngine.loadPolicy(simplePermitPolicy);
|
|
62
62
|
const decision = testEngine.evaluateSimple(EntityType.Scanner, 'palisade', ActionType.ScanArtifact, EntityType.Artifact, '/model.safetensors', { environment: 'production' });
|
|
63
63
|
expect(decision.effect).toBe('Allow');
|
|
64
64
|
});
|
|
@@ -74,7 +74,7 @@ describe('PolicyEngine', () => {
|
|
|
74
74
|
});
|
|
75
75
|
describe('input validation', () => {
|
|
76
76
|
beforeEach(() => {
|
|
77
|
-
engine.
|
|
77
|
+
engine.loadPolicy(permitAllPolicy);
|
|
78
78
|
});
|
|
79
79
|
it('should accept valid context', () => {
|
|
80
80
|
const decision = engine.evaluateSimple(EntityType.Scanner, 'test', ActionType.ScanArtifact, EntityType.Artifact, '/model.safetensors', {
|
|
@@ -87,7 +87,7 @@ describe('PolicyEngine', () => {
|
|
|
87
87
|
});
|
|
88
88
|
it('should reject context with too many keys', () => {
|
|
89
89
|
const engine = new PolicyEngine({ limits: { maxContextKeys: 5 } });
|
|
90
|
-
engine.
|
|
90
|
+
engine.loadPolicy(permitAllPolicy);
|
|
91
91
|
const bigContext = {};
|
|
92
92
|
for (let i = 0; i < 10; i++) {
|
|
93
93
|
bigContext[`key${i}`] = 'value';
|
|
@@ -98,7 +98,7 @@ describe('PolicyEngine', () => {
|
|
|
98
98
|
});
|
|
99
99
|
it('should reject context with too long strings', () => {
|
|
100
100
|
const engine = new PolicyEngine({ limits: { maxStringLength: 100 } });
|
|
101
|
-
engine.
|
|
101
|
+
engine.loadPolicy(permitAllPolicy);
|
|
102
102
|
const longString = 'x'.repeat(200);
|
|
103
103
|
expect(() => {
|
|
104
104
|
engine.evaluateSimple(EntityType.Scanner, 'test', ActionType.ScanArtifact, EntityType.Artifact, '/model.safetensors', { value: longString });
|
|
@@ -106,7 +106,7 @@ describe('PolicyEngine', () => {
|
|
|
106
106
|
});
|
|
107
107
|
it('should reject deeply nested context', () => {
|
|
108
108
|
const engine = new PolicyEngine({ limits: { maxNestingDepth: 3 } });
|
|
109
|
-
engine.
|
|
109
|
+
engine.loadPolicy(permitAllPolicy);
|
|
110
110
|
const deepContext = {
|
|
111
111
|
level1: {
|
|
112
112
|
level2: {
|
|
@@ -127,7 +127,7 @@ describe('PolicyEngine', () => {
|
|
|
127
127
|
skipValidation: true,
|
|
128
128
|
limits: { maxContextKeys: 1 },
|
|
129
129
|
});
|
|
130
|
-
engine.
|
|
130
|
+
engine.loadPolicy(permitAllPolicy);
|
|
131
131
|
// This would normally fail validation
|
|
132
132
|
const decision = engine.evaluateSimple(EntityType.Scanner, 'test', ActionType.ScanArtifact, EntityType.Artifact, '/model.safetensors', { key1: 'value1', key2: 'value2', key3: 'value3' });
|
|
133
133
|
expect(decision.effect).toBe('Allow');
|
|
@@ -135,7 +135,7 @@ describe('PolicyEngine', () => {
|
|
|
135
135
|
});
|
|
136
136
|
describe('complex context types', () => {
|
|
137
137
|
beforeEach(() => {
|
|
138
|
-
engine.
|
|
138
|
+
engine.loadPolicy(permitAllPolicy);
|
|
139
139
|
});
|
|
140
140
|
it('should handle array context values', () => {
|
|
141
141
|
const decision = engine.evaluateSimple(EntityType.Scanner, 'test', ActionType.ScanArtifact, EntityType.Artifact, '/model.safetensors', { threats: ['malware', 'backdoor', 'injection'] });
|
|
@@ -169,11 +169,11 @@ describe('PolicyEngine', () => {
|
|
|
169
169
|
it('should handle invalid policy syntax gracefully', () => {
|
|
170
170
|
const invalidPolicy = `permit(principal, action, resource`; // Missing closing paren
|
|
171
171
|
expect(() => {
|
|
172
|
-
engine.
|
|
172
|
+
engine.loadPolicy(invalidPolicy);
|
|
173
173
|
engine.evaluateSimple(EntityType.Scanner, 'test', ActionType.ScanArtifact, EntityType.Artifact, '/model.safetensors');
|
|
174
174
|
}).not.toThrow();
|
|
175
175
|
// Should return deny with reason
|
|
176
|
-
engine.
|
|
176
|
+
engine.loadPolicy(invalidPolicy);
|
|
177
177
|
const decision = engine.evaluateSimple(EntityType.Scanner, 'test', ActionType.ScanArtifact, EntityType.Artifact, '/model.safetensors');
|
|
178
178
|
expect(decision.effect).toBe('Deny');
|
|
179
179
|
});
|
package/dist/engine.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.test.js","sourceRoot":"","sources":["../src/engine.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EACL,YAAY,EAEZ,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,MAAoB,CAAC;IAEzB,MAAM,eAAe,GAAG;;GAEvB,CAAC;IAEF,MAAM,aAAa,GAAG;;GAErB,CAAC;IAEF,uFAAuF;IACvF,MAAM,kBAAkB,GAAG;;;;;;;;;;;GAW1B,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"engine.test.js","sourceRoot":"","sources":["../src/engine.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Overwatch policy category identifiers.
|
|
3
|
+
* Maps to UI tab names in Studio.
|
|
4
|
+
*/
|
|
5
|
+
export type OverwatchCategory = 'secrets' | 'pii' | 'semantic' | 'tools' | 'organization';
|
|
6
|
+
/**
|
|
7
|
+
* Category metadata for UI display.
|
|
8
|
+
*/
|
|
9
|
+
export interface OverwatchCategoryInfo {
|
|
10
|
+
id: OverwatchCategory;
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A default policy that is auto-created for new projects.
|
|
16
|
+
*/
|
|
17
|
+
export interface OverwatchDefaultPolicy {
|
|
18
|
+
/** Template identifier */
|
|
19
|
+
id: string;
|
|
20
|
+
/** Human-readable name */
|
|
21
|
+
name: string;
|
|
22
|
+
/** Description for UI display */
|
|
23
|
+
description: string;
|
|
24
|
+
/** Policy category */
|
|
25
|
+
category: OverwatchCategory;
|
|
26
|
+
/** Cedar policy text (source of truth) */
|
|
27
|
+
cedarText: string;
|
|
28
|
+
/** Severity level */
|
|
29
|
+
severity: string;
|
|
30
|
+
/** Tags for filtering */
|
|
31
|
+
tags: string[];
|
|
32
|
+
/** Whether this default should be activated immediately */
|
|
33
|
+
isActive: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A policy template available for users to create from.
|
|
37
|
+
*/
|
|
38
|
+
export interface OverwatchTemplate {
|
|
39
|
+
/** Template identifier */
|
|
40
|
+
id: string;
|
|
41
|
+
/** Human-readable name */
|
|
42
|
+
name: string;
|
|
43
|
+
/** Description for UI display */
|
|
44
|
+
description: string;
|
|
45
|
+
/** Policy category */
|
|
46
|
+
category: OverwatchCategory;
|
|
47
|
+
/** Cedar policy text */
|
|
48
|
+
cedarText: string;
|
|
49
|
+
/** Severity level */
|
|
50
|
+
severity: string;
|
|
51
|
+
/** Tags for filtering */
|
|
52
|
+
tags: string[];
|
|
53
|
+
}
|
|
54
|
+
export declare const OVERWATCH_CATEGORIES: OverwatchCategoryInfo[];
|
|
55
|
+
export declare const OVERWATCH_DEFAULTS: OverwatchDefaultPolicy[];
|
|
56
|
+
export declare const OVERWATCH_TEMPLATES: OverwatchTemplate[];
|
|
57
|
+
/** Raw templates.json metadata for the Overwatch service. */
|
|
58
|
+
export declare const OVERWATCH_TEMPLATES_JSON: string;
|
|
59
|
+
export declare function getOverwatchDefaultsByCategory(category: OverwatchCategory): OverwatchDefaultPolicy[];
|
|
60
|
+
export declare function getOverwatchTemplatesByCategory(category: OverwatchCategory): OverwatchTemplate[];
|
|
61
|
+
export declare function getOverwatchTemplateById(id: string): OverwatchTemplate | undefined;
|
|
62
|
+
//# sourceMappingURL=overwatch-defaults.gen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overwatch-defaults.gen.d.ts","sourceRoot":"","sources":["../src/overwatch-defaults.gen.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC;AAE1F;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,iBAAiB,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2DAA2D;IAC3D,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAmlBD,eAAO,MAAM,oBAAoB,EAAE,qBAAqB,EAMvD,CAAC;AAMF,eAAO,MAAM,kBAAkB,EAAE,sBAAsB,EAyCtD,CAAC;AAMF,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,EA8ClD,CAAC;AAMF,6DAA6D;AAC7D,eAAO,MAAM,wBAAwB,EAAE,MAyHtC,CAAC;AAMF,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,iBAAiB,GAAG,sBAAsB,EAAE,CAEpG;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAEhG;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAElF"}
|