@atensec/pulumi-thoth 0.1.15 → 0.1.17

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 (50) hide show
  1. package/bin/governance/getExecutiveSummary.d.ts +2 -0
  2. package/bin/governance/getExecutiveSummary.d.ts.map +1 -1
  3. package/bin/governance/getExecutiveSummary.js.map +1 -1
  4. package/bin/governance/getReportsOverview.d.ts +3 -0
  5. package/bin/governance/getReportsOverview.d.ts.map +1 -1
  6. package/bin/governance/getReportsOverview.js.map +1 -1
  7. package/bin/governance/governanceSettings.d.ts +89 -3
  8. package/bin/governance/governanceSettings.d.ts.map +1 -1
  9. package/bin/governance/governanceSettings.js +18 -0
  10. package/bin/governance/governanceSettings.js.map +1 -1
  11. package/bin/governance/index.d.ts +3 -0
  12. package/bin/governance/index.d.ts.map +1 -1
  13. package/bin/governance/index.js +6 -1
  14. package/bin/governance/index.js.map +1 -1
  15. package/bin/governance/toolClassification.d.ts +65 -0
  16. package/bin/governance/toolClassification.d.ts.map +1 -0
  17. package/bin/governance/toolClassification.js +84 -0
  18. package/bin/governance/toolClassification.js.map +1 -0
  19. package/bin/index.d.ts +2 -1
  20. package/bin/index.d.ts.map +1 -1
  21. package/bin/index.js +3 -1
  22. package/bin/index.js.map +1 -1
  23. package/bin/mcp/vendor.d.ts +96 -0
  24. package/bin/mcp/vendor.d.ts.map +1 -1
  25. package/bin/mcp/vendor.js +16 -0
  26. package/bin/mcp/vendor.js.map +1 -1
  27. package/bin/types/index.d.ts +4 -0
  28. package/bin/types/index.d.ts.map +1 -0
  29. package/bin/types/index.js +34 -0
  30. package/bin/types/index.js.map +1 -0
  31. package/bin/types/input.d.ts +22 -0
  32. package/bin/types/input.d.ts.map +1 -0
  33. package/bin/types/input.js +5 -0
  34. package/bin/types/input.js.map +1 -0
  35. package/bin/types/output.d.ts +21 -0
  36. package/bin/types/output.d.ts.map +1 -0
  37. package/bin/types/output.js +5 -0
  38. package/bin/types/output.js.map +1 -0
  39. package/governance/getExecutiveSummary.ts +2 -0
  40. package/governance/getReportsOverview.ts +3 -0
  41. package/governance/governanceSettings.ts +103 -3
  42. package/governance/index.ts +8 -0
  43. package/governance/toolClassification.ts +109 -0
  44. package/index.ts +2 -0
  45. package/mcp/vendor.ts +112 -0
  46. package/package.json +1 -1
  47. package/tsconfig.json +4 -0
  48. package/types/index.ts +13 -0
  49. package/types/input.ts +27 -0
  50. package/types/output.ts +28 -0
@@ -0,0 +1,109 @@
1
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
2
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
3
+
4
+ import * as pulumi from "@pulumi/pulumi";
5
+ import * as utilities from "../utilities";
6
+
7
+ export class ToolClassification extends pulumi.CustomResource {
8
+ /**
9
+ * Get an existing ToolClassification resource's state with the given name, ID, and optional extra
10
+ * properties used to qualify the lookup.
11
+ *
12
+ * @param name The _unique_ name of the resulting resource.
13
+ * @param id The _unique_ provider ID of the resource to lookup.
14
+ * @param state Any extra arguments used during the lookup.
15
+ * @param opts Optional settings to control the behavior of the CustomResource.
16
+ */
17
+ public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ToolClassificationState, opts?: pulumi.CustomResourceOptions): ToolClassification {
18
+ return new ToolClassification(name, <any>state, { ...opts, id: id });
19
+ }
20
+
21
+ /** @internal */
22
+ public static readonly __pulumiType = 'thoth:governance/toolClassification:ToolClassification';
23
+
24
+ /**
25
+ * Returns true if the given object is an instance of ToolClassification. This is designed to work even
26
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
27
+ */
28
+ public static isInstance(obj: any): obj is ToolClassification {
29
+ if (obj === undefined || obj === null) {
30
+ return false;
31
+ }
32
+ return obj['__pulumiType'] === ToolClassification.__pulumiType;
33
+ }
34
+
35
+ /**
36
+ * Reviewed effects: read, write, delete, execute, export, external_call, bulk_operation, credential_access, sensitive_data_access.
37
+ */
38
+ declare public readonly classes: pulumi.Output<string[]>;
39
+ declare public /*out*/ readonly createdAt: pulumi.Output<string>;
40
+ declare public /*out*/ readonly createdBy: pulumi.Output<string>;
41
+ /**
42
+ * Exact tool name; wildcards are refused.
43
+ */
44
+ declare public readonly toolName: pulumi.Output<string>;
45
+
46
+ /**
47
+ * Create a ToolClassification resource with the given unique name, arguments, and options.
48
+ *
49
+ * @param name The _unique_ name of the resource.
50
+ * @param args The arguments to use to populate this resource's properties.
51
+ * @param opts A bag of options that control this resource's behavior.
52
+ */
53
+ constructor(name: string, args: ToolClassificationArgs, opts?: pulumi.CustomResourceOptions)
54
+ constructor(name: string, argsOrState?: ToolClassificationArgs | ToolClassificationState, opts?: pulumi.CustomResourceOptions) {
55
+ let resourceInputs: pulumi.Inputs = {};
56
+ opts = opts || {};
57
+ if (opts.id) {
58
+ const state = argsOrState as ToolClassificationState | undefined;
59
+ resourceInputs["classes"] = state?.classes;
60
+ resourceInputs["createdAt"] = state?.createdAt;
61
+ resourceInputs["createdBy"] = state?.createdBy;
62
+ resourceInputs["toolName"] = state?.toolName;
63
+ } else {
64
+ const args = argsOrState as ToolClassificationArgs | undefined;
65
+ if (args?.classes === undefined && !opts.urn) {
66
+ throw new Error("Missing required property 'classes'");
67
+ }
68
+ if (args?.toolName === undefined && !opts.urn) {
69
+ throw new Error("Missing required property 'toolName'");
70
+ }
71
+ resourceInputs["classes"] = args?.classes;
72
+ resourceInputs["toolName"] = args?.toolName;
73
+ resourceInputs["createdAt"] = undefined /*out*/;
74
+ resourceInputs["createdBy"] = undefined /*out*/;
75
+ }
76
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
77
+ super(ToolClassification.__pulumiType, name, resourceInputs, opts);
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Input properties used for looking up and filtering ToolClassification resources.
83
+ */
84
+ export interface ToolClassificationState {
85
+ /**
86
+ * Reviewed effects: read, write, delete, execute, export, external_call, bulk_operation, credential_access, sensitive_data_access.
87
+ */
88
+ classes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
89
+ createdAt?: pulumi.Input<string | undefined>;
90
+ createdBy?: pulumi.Input<string | undefined>;
91
+ /**
92
+ * Exact tool name; wildcards are refused.
93
+ */
94
+ toolName?: pulumi.Input<string | undefined>;
95
+ }
96
+
97
+ /**
98
+ * The set of arguments for constructing a ToolClassification resource.
99
+ */
100
+ export interface ToolClassificationArgs {
101
+ /**
102
+ * Reviewed effects: read, write, delete, execute, export, external_call, bulk_operation, credential_access, sensitive_data_access.
103
+ */
104
+ classes: pulumi.Input<pulumi.Input<string>[]>;
105
+ /**
106
+ * Exact tool name; wildcards are refused.
107
+ */
108
+ toolName: pulumi.Input<string>;
109
+ }
package/index.ts CHANGED
@@ -18,6 +18,7 @@ import * as fleet from "./fleet";
18
18
  import * as governance from "./governance";
19
19
  import * as mcp from "./mcp";
20
20
  import * as mdm from "./mdm";
21
+ import * as types from "./types";
21
22
 
22
23
  export {
23
24
  access,
@@ -28,6 +29,7 @@ export {
28
29
  governance,
29
30
  mcp,
30
31
  mdm,
32
+ types,
31
33
  };
32
34
  pulumi.runtime.registerResourcePackage("thoth", {
33
35
  version: utilities.getVersion(),
package/mcp/vendor.ts CHANGED
@@ -36,6 +36,10 @@ export class Vendor extends pulumi.CustomResource {
36
36
  * Whether this vendor is approved for pass-through MCP host access.
37
37
  */
38
38
  declare public readonly approved: pulumi.Output<boolean>;
39
+ /**
40
+ * Capability bindings this vendor/runtime identity is allowed to request.
41
+ */
42
+ declare public readonly capabilities: pulumi.Output<string[]>;
39
43
  /**
40
44
  * Creation timestamp.
41
45
  */
@@ -44,6 +48,14 @@ export class Vendor extends pulumi.CustomResource {
44
48
  * Human-friendly vendor display name.
45
49
  */
46
50
  declare public readonly displayName: pulumi.Output<string>;
51
+ /**
52
+ * Allowed egress host patterns enforced for this vendor/runtime identity.
53
+ */
54
+ declare public readonly egressAllowedHostPatterns: pulumi.Output<string[]>;
55
+ /**
56
+ * Egress policy mode for vendor traffic (enforce or observe).
57
+ */
58
+ declare public readonly egressPolicyMode: pulumi.Output<string>;
47
59
  /**
48
60
  * Allowed host patterns for this vendor (for example api.openai.com).
49
61
  */
@@ -52,10 +64,30 @@ export class Vendor extends pulumi.CustomResource {
52
64
  * Last observed timestamp (RFC3339) for this vendor in runtime traffic.
53
65
  */
54
66
  declare public readonly lastSeenAt: pulumi.Output<string>;
67
+ /**
68
+ * Signature bundle reference used for manifest verification.
69
+ */
70
+ declare public readonly manifestSignatureBundleRef: pulumi.Output<string>;
71
+ /**
72
+ * Signer identity for verified manifest signatures.
73
+ */
74
+ declare public readonly manifestSignatureSigner: pulumi.Output<string>;
75
+ /**
76
+ * Manifest signature verification status (verified, pending, failed).
77
+ */
78
+ declare public readonly manifestSignatureStatus: pulumi.Output<string>;
79
+ /**
80
+ * RFC3339 timestamp when manifest signature was verified.
81
+ */
82
+ declare public readonly manifestSignatureVerifiedAt: pulumi.Output<string>;
55
83
  /**
56
84
  * Optional reviewer notes for this vendor entry.
57
85
  */
58
86
  declare public readonly notes: pulumi.Output<string | undefined>;
87
+ /**
88
+ * Capability-scoped runtime identity used at action-time enforcement.
89
+ */
90
+ declare public readonly runtimeIdentity: pulumi.Output<string>;
59
91
  /**
60
92
  * Vendor entry source (for example manual, discovered).
61
93
  */
@@ -87,11 +119,19 @@ export class Vendor extends pulumi.CustomResource {
87
119
  if (opts.id) {
88
120
  const state = argsOrState as VendorState | undefined;
89
121
  resourceInputs["approved"] = state?.approved;
122
+ resourceInputs["capabilities"] = state?.capabilities;
90
123
  resourceInputs["createdAt"] = state?.createdAt;
91
124
  resourceInputs["displayName"] = state?.displayName;
125
+ resourceInputs["egressAllowedHostPatterns"] = state?.egressAllowedHostPatterns;
126
+ resourceInputs["egressPolicyMode"] = state?.egressPolicyMode;
92
127
  resourceInputs["hostPatterns"] = state?.hostPatterns;
93
128
  resourceInputs["lastSeenAt"] = state?.lastSeenAt;
129
+ resourceInputs["manifestSignatureBundleRef"] = state?.manifestSignatureBundleRef;
130
+ resourceInputs["manifestSignatureSigner"] = state?.manifestSignatureSigner;
131
+ resourceInputs["manifestSignatureStatus"] = state?.manifestSignatureStatus;
132
+ resourceInputs["manifestSignatureVerifiedAt"] = state?.manifestSignatureVerifiedAt;
94
133
  resourceInputs["notes"] = state?.notes;
134
+ resourceInputs["runtimeIdentity"] = state?.runtimeIdentity;
95
135
  resourceInputs["source"] = state?.source;
96
136
  resourceInputs["tenantId"] = state?.tenantId;
97
137
  resourceInputs["updatedAt"] = state?.updatedAt;
@@ -108,10 +148,18 @@ export class Vendor extends pulumi.CustomResource {
108
148
  throw new Error("Missing required property 'vendorId'");
109
149
  }
110
150
  resourceInputs["approved"] = args?.approved;
151
+ resourceInputs["capabilities"] = args?.capabilities;
111
152
  resourceInputs["displayName"] = args?.displayName;
153
+ resourceInputs["egressAllowedHostPatterns"] = args?.egressAllowedHostPatterns;
154
+ resourceInputs["egressPolicyMode"] = args?.egressPolicyMode;
112
155
  resourceInputs["hostPatterns"] = args?.hostPatterns;
113
156
  resourceInputs["lastSeenAt"] = args?.lastSeenAt;
157
+ resourceInputs["manifestSignatureBundleRef"] = args?.manifestSignatureBundleRef;
158
+ resourceInputs["manifestSignatureSigner"] = args?.manifestSignatureSigner;
159
+ resourceInputs["manifestSignatureStatus"] = args?.manifestSignatureStatus;
160
+ resourceInputs["manifestSignatureVerifiedAt"] = args?.manifestSignatureVerifiedAt;
114
161
  resourceInputs["notes"] = args?.notes;
162
+ resourceInputs["runtimeIdentity"] = args?.runtimeIdentity;
115
163
  resourceInputs["source"] = args?.source;
116
164
  resourceInputs["vendorId"] = args?.vendorId;
117
165
  resourceInputs["createdAt"] = undefined /*out*/;
@@ -131,6 +179,10 @@ export interface VendorState {
131
179
  * Whether this vendor is approved for pass-through MCP host access.
132
180
  */
133
181
  approved?: pulumi.Input<boolean | undefined>;
182
+ /**
183
+ * Capability bindings this vendor/runtime identity is allowed to request.
184
+ */
185
+ capabilities?: pulumi.Input<pulumi.Input<string>[] | undefined>;
134
186
  /**
135
187
  * Creation timestamp.
136
188
  */
@@ -139,6 +191,14 @@ export interface VendorState {
139
191
  * Human-friendly vendor display name.
140
192
  */
141
193
  displayName?: pulumi.Input<string | undefined>;
194
+ /**
195
+ * Allowed egress host patterns enforced for this vendor/runtime identity.
196
+ */
197
+ egressAllowedHostPatterns?: pulumi.Input<pulumi.Input<string>[] | undefined>;
198
+ /**
199
+ * Egress policy mode for vendor traffic (enforce or observe).
200
+ */
201
+ egressPolicyMode?: pulumi.Input<string | undefined>;
142
202
  /**
143
203
  * Allowed host patterns for this vendor (for example api.openai.com).
144
204
  */
@@ -147,10 +207,30 @@ export interface VendorState {
147
207
  * Last observed timestamp (RFC3339) for this vendor in runtime traffic.
148
208
  */
149
209
  lastSeenAt?: pulumi.Input<string | undefined>;
210
+ /**
211
+ * Signature bundle reference used for manifest verification.
212
+ */
213
+ manifestSignatureBundleRef?: pulumi.Input<string | undefined>;
214
+ /**
215
+ * Signer identity for verified manifest signatures.
216
+ */
217
+ manifestSignatureSigner?: pulumi.Input<string | undefined>;
218
+ /**
219
+ * Manifest signature verification status (verified, pending, failed).
220
+ */
221
+ manifestSignatureStatus?: pulumi.Input<string | undefined>;
222
+ /**
223
+ * RFC3339 timestamp when manifest signature was verified.
224
+ */
225
+ manifestSignatureVerifiedAt?: pulumi.Input<string | undefined>;
150
226
  /**
151
227
  * Optional reviewer notes for this vendor entry.
152
228
  */
153
229
  notes?: pulumi.Input<string | undefined>;
230
+ /**
231
+ * Capability-scoped runtime identity used at action-time enforcement.
232
+ */
233
+ runtimeIdentity?: pulumi.Input<string | undefined>;
154
234
  /**
155
235
  * Vendor entry source (for example manual, discovered).
156
236
  */
@@ -177,10 +257,22 @@ export interface VendorArgs {
177
257
  * Whether this vendor is approved for pass-through MCP host access.
178
258
  */
179
259
  approved?: pulumi.Input<boolean | undefined>;
260
+ /**
261
+ * Capability bindings this vendor/runtime identity is allowed to request.
262
+ */
263
+ capabilities?: pulumi.Input<pulumi.Input<string>[] | undefined>;
180
264
  /**
181
265
  * Human-friendly vendor display name.
182
266
  */
183
267
  displayName: pulumi.Input<string>;
268
+ /**
269
+ * Allowed egress host patterns enforced for this vendor/runtime identity.
270
+ */
271
+ egressAllowedHostPatterns?: pulumi.Input<pulumi.Input<string>[] | undefined>;
272
+ /**
273
+ * Egress policy mode for vendor traffic (enforce or observe).
274
+ */
275
+ egressPolicyMode?: pulumi.Input<string | undefined>;
184
276
  /**
185
277
  * Allowed host patterns for this vendor (for example api.openai.com).
186
278
  */
@@ -189,10 +281,30 @@ export interface VendorArgs {
189
281
  * Last observed timestamp (RFC3339) for this vendor in runtime traffic.
190
282
  */
191
283
  lastSeenAt?: pulumi.Input<string | undefined>;
284
+ /**
285
+ * Signature bundle reference used for manifest verification.
286
+ */
287
+ manifestSignatureBundleRef?: pulumi.Input<string | undefined>;
288
+ /**
289
+ * Signer identity for verified manifest signatures.
290
+ */
291
+ manifestSignatureSigner?: pulumi.Input<string | undefined>;
292
+ /**
293
+ * Manifest signature verification status (verified, pending, failed).
294
+ */
295
+ manifestSignatureStatus?: pulumi.Input<string | undefined>;
296
+ /**
297
+ * RFC3339 timestamp when manifest signature was verified.
298
+ */
299
+ manifestSignatureVerifiedAt?: pulumi.Input<string | undefined>;
192
300
  /**
193
301
  * Optional reviewer notes for this vendor entry.
194
302
  */
195
303
  notes?: pulumi.Input<string | undefined>;
304
+ /**
305
+ * Capability-scoped runtime identity used at action-time enforcement.
306
+ */
307
+ runtimeIdentity?: pulumi.Input<string | undefined>;
196
308
  /**
197
309
  * Vendor entry source (for example manual, discovered).
198
310
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atensec/pulumi-thoth",
3
- "version": "0.1.15",
3
+ "version": "0.1.17",
4
4
  "description": "Pulumi provider for Aten Security Thoth AI governance control plane.",
5
5
  "keywords": [
6
6
  "pulumi",
package/tsconfig.json CHANGED
@@ -94,6 +94,7 @@
94
94
  "governance/policyExceptionReview.ts",
95
95
  "governance/policySync.ts",
96
96
  "governance/siemSettings.ts",
97
+ "governance/toolClassification.ts",
97
98
  "governance/webhookSettings.ts",
98
99
  "governance/webhookTest.ts",
99
100
  "index.ts",
@@ -110,6 +111,9 @@
110
111
  "mdm/provider.ts",
111
112
  "mdm/sync.ts",
112
113
  "provider.ts",
114
+ "types/index.ts",
115
+ "types/input.ts",
116
+ "types/output.ts",
113
117
  "utilities.ts"
114
118
  ]
115
119
  }
package/types/index.ts ADDED
@@ -0,0 +1,13 @@
1
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
2
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
3
+
4
+ import * as utilities from "../utilities";
5
+
6
+ // Export sub-modules:
7
+ import * as input from "./input";
8
+ import * as output from "./output";
9
+
10
+ export {
11
+ input,
12
+ output,
13
+ };
package/types/input.ts ADDED
@@ -0,0 +1,27 @@
1
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
2
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
3
+
4
+ import * as pulumi from "@pulumi/pulumi";
5
+ import * as inputs from "../types/input";
6
+ import * as outputs from "../types/output";
7
+
8
+ export namespace governance {
9
+ export interface GovernanceSettingsComplianceCoverage {
10
+ /**
11
+ * Action-time controls with executable predicates.
12
+ */
13
+ enforced?: pulumi.Input<number | undefined>;
14
+ /**
15
+ * Controls classified as evidence gaps.
16
+ */
17
+ evidenceGap?: pulumi.Input<number | undefined>;
18
+ /**
19
+ * Controls outside action-time enforcement.
20
+ */
21
+ notActionTime?: pulumi.Input<number | undefined>;
22
+ /**
23
+ * Total classified controls.
24
+ */
25
+ total?: pulumi.Input<number | undefined>;
26
+ }
27
+ }
@@ -0,0 +1,28 @@
1
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
2
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
3
+
4
+ import * as pulumi from "@pulumi/pulumi";
5
+ import * as inputs from "../types/input";
6
+ import * as outputs from "../types/output";
7
+
8
+ export namespace governance {
9
+ export interface GovernanceSettingsComplianceCoverage {
10
+ /**
11
+ * Action-time controls with executable predicates.
12
+ */
13
+ enforced: number;
14
+ /**
15
+ * Controls classified as evidence gaps.
16
+ */
17
+ evidenceGap: number;
18
+ /**
19
+ * Controls outside action-time enforcement.
20
+ */
21
+ notActionTime: number;
22
+ /**
23
+ * Total classified controls.
24
+ */
25
+ total: number;
26
+ }
27
+
28
+ }