@zuplo/cli 7.1.10 → 7.2.1
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/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +4 -3
- package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +4 -3
- package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +4 -3
- package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwt/encrypt.d.ts +4 -3
- package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/types.d.ts +4 -2
- package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwe/general/encrypt.js +7 -3
- package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwks/remote.js +1 -1
- package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +6 -2
- package/node_modules/@modelcontextprotocol/client/node_modules/jose/package.json +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +4 -3
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +4 -3
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +4 -3
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwt/encrypt.d.ts +4 -3
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/types.d.ts +4 -2
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwe/general/encrypt.js +7 -3
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwks/remote.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +6 -2
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/package.json +1 -1
- package/node_modules/@zuplo/core/customer.cli.minified.js +1 -1
- package/node_modules/@zuplo/core/index.minified.js +1 -1
- package/node_modules/@zuplo/core/package.json +1 -1
- package/node_modules/@zuplo/graphql/package.json +1 -1
- package/node_modules/@zuplo/openapi-tools/package.json +1 -1
- package/node_modules/@zuplo/otel/package.json +1 -1
- package/node_modules/@zuplo/runtime/out/esm/chunk-GK3X4WPN.js +409 -0
- package/node_modules/@zuplo/runtime/out/esm/chunk-GK3X4WPN.js.map +1 -0
- package/node_modules/@zuplo/runtime/out/esm/index.js +1 -1
- package/node_modules/@zuplo/runtime/out/esm/index.js.map +1 -1
- package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js +1 -1
- package/node_modules/@zuplo/runtime/out/types/index.d.ts +286 -15
- package/node_modules/@zuplo/runtime/package.json +1 -1
- package/node_modules/default-browser/package.json +1 -1
- package/node_modules/default-browser/windows.js +3 -1
- package/package.json +6 -6
- package/node_modules/@zuplo/runtime/out/esm/chunk-DEKK4CFE.js +0 -382
- package/node_modules/@zuplo/runtime/out/esm/chunk-DEKK4CFE.js.map +0 -1
- /package/node_modules/@zuplo/runtime/out/esm/{chunk-DEKK4CFE.js.LEGAL.txt → chunk-GK3X4WPN.js.LEGAL.txt} +0 -0
|
@@ -332,6 +332,71 @@ export declare interface AIGatewayConfigurationLoaderV2InboundPolicyOptions {
|
|
|
332
332
|
cacheTtlSeconds?: number;
|
|
333
333
|
}
|
|
334
334
|
|
|
335
|
+
/**
|
|
336
|
+
* Data Loss Prevention (DLP) Inbound Policy for the AI Gateway
|
|
337
|
+
* @title Data Loss Prevention (DLP)
|
|
338
|
+
* @product ai-gateway
|
|
339
|
+
* @hidden
|
|
340
|
+
* @requiresAI
|
|
341
|
+
*
|
|
342
|
+
* Scans the content of AI requests and responses — system prompts, message
|
|
343
|
+
* text, and tool-call arguments — for sensitive data (credit cards, national
|
|
344
|
+
* identifiers, API keys and other credentials) using the in-gateway DLP
|
|
345
|
+
* engine, and applies per-rule actions: mask, block, or log. Detection runs
|
|
346
|
+
* entirely inside the gateway; nothing is sent to a third-party scanning
|
|
347
|
+
* service. Streaming responses are scanned as they stream, chunk by chunk
|
|
348
|
+
* with a sliding boundary window, rather than being buffered to the end.
|
|
349
|
+
*
|
|
350
|
+
* Options are validated at request time and invalid options fail closed with
|
|
351
|
+
* a ConfigurationError. Content that cannot be inspected is denied by
|
|
352
|
+
* default (`onUnknownShape: "deny"`), and internal scan failures fail closed
|
|
353
|
+
* by default (`onError: "block"`).
|
|
354
|
+
*
|
|
355
|
+
* @param request - The ZuploRequest
|
|
356
|
+
* @param context - The ZuploContext
|
|
357
|
+
* @param options - The policy options set in policies.json
|
|
358
|
+
* @param policyName - The name of the policy as set in policies.json
|
|
359
|
+
* @returns A Request or a Response
|
|
360
|
+
*/
|
|
361
|
+
export declare function AIGatewayDlpInboundPolicy(
|
|
362
|
+
request: ZuploRequest,
|
|
363
|
+
context: ZuploContext,
|
|
364
|
+
unparsedOptions: unknown,
|
|
365
|
+
policyName: string
|
|
366
|
+
): Promise<ZuploRequest | Response>;
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* The options for the Data Loss Prevention (DLP) policy. Scans the content of AI requests and responses — system prompts, messages, and tool-call arguments — for sensitive data such as credit cards, national identifiers, and API keys, applying a per-rule action (mask, block, or log). Detection runs entirely inside the gateway and streaming responses are scanned as they stream.
|
|
370
|
+
* @public
|
|
371
|
+
*/
|
|
372
|
+
export declare interface AIGatewayDlpInboundPolicyOptions {
|
|
373
|
+
rules: DlpRules;
|
|
374
|
+
/**
|
|
375
|
+
* Your own detection rules alongside the built-ins: the same rule object plus a `name`, a regex `pattern`, and optional `context` words.
|
|
376
|
+
*/
|
|
377
|
+
customRules?: DlpCustomRule[];
|
|
378
|
+
/**
|
|
379
|
+
* Exact strings that are never flagged by any rule — documentation samples like Stripe's public test card `4242 4242 4242 4242`, or your own support email address. Matching is case-sensitive against the exact detected text, including when a value arrives split across streaming chunks.
|
|
380
|
+
*/
|
|
381
|
+
allowValues?: string[];
|
|
382
|
+
/**
|
|
383
|
+
* Default evidence level for rules that do not set their own. See the per-rule `detection` description for the level semantics. There are no numeric confidence thresholds to tune — levels are the whole dial.
|
|
384
|
+
*/
|
|
385
|
+
detection?: "corroborated" | "standard" | "aggressive";
|
|
386
|
+
/**
|
|
387
|
+
* Also scan tool/function-call argument payloads — in requests, buffered responses, and streamed tool-call deltas. Tool arguments are user and model content; disabling this exempts them from every rule.
|
|
388
|
+
*/
|
|
389
|
+
scanToolArguments?: boolean;
|
|
390
|
+
streaming?: DlpStreamingSettings;
|
|
391
|
+
endpoints?: ApplicableEndpoints;
|
|
392
|
+
onUnknownShape?: OnUnknownShape;
|
|
393
|
+
onError?: OnEngineError;
|
|
394
|
+
/**
|
|
395
|
+
* The detection engine. Only `builtin` (in-gateway regex + checksum detection with context-word scoring; no data egress) is available today. Declaring the discriminator now keeps future engines an additive, non-breaking change.
|
|
396
|
+
*/
|
|
397
|
+
engine?: "builtin";
|
|
398
|
+
}
|
|
399
|
+
|
|
335
400
|
/**
|
|
336
401
|
* Adds failure and quota fallbacks to an existing AI Gateway model selection.
|
|
337
402
|
*
|
|
@@ -1003,8 +1068,8 @@ export declare interface AIGatewaySemanticCacheV2InboundPolicyOptions {
|
|
|
1003
1068
|
namespace?: CacheNamespace;
|
|
1004
1069
|
recentMessageCount?: RecentMessageCount;
|
|
1005
1070
|
maxConversationLength?: MaxConversationLength;
|
|
1006
|
-
endpoints?:
|
|
1007
|
-
onUnknownShape?:
|
|
1071
|
+
endpoints?: ApplicableEndpoints_2;
|
|
1072
|
+
onUnknownShape?: OnUnknownShape_2;
|
|
1008
1073
|
}
|
|
1009
1074
|
|
|
1010
1075
|
/**
|
|
@@ -1232,8 +1297,8 @@ export declare interface AkamaiAIFirewallV2PolicyOptions {
|
|
|
1232
1297
|
"api-key": APIKey_2;
|
|
1233
1298
|
applicationId?: ApplicationID_2;
|
|
1234
1299
|
streamingAccumulation?: StreamingAccumulationSettings_2;
|
|
1235
|
-
endpoints?:
|
|
1236
|
-
onUnknownShape?:
|
|
1300
|
+
endpoints?: ApplicableEndpoints_3;
|
|
1301
|
+
onUnknownShape?: OnUnknownShape_3;
|
|
1237
1302
|
onError?: OnFirewallError_2;
|
|
1238
1303
|
}
|
|
1239
1304
|
|
|
@@ -1842,7 +1907,7 @@ declare interface APITokenCredentialConfig {
|
|
|
1842
1907
|
}
|
|
1843
1908
|
|
|
1844
1909
|
/**
|
|
1845
|
-
* The endpoint shapes to
|
|
1910
|
+
* The endpoint shapes this policy applies to. Omit to apply to all (openai-chat, openai-responses, anthropic-messages).
|
|
1846
1911
|
* @public
|
|
1847
1912
|
*/
|
|
1848
1913
|
declare type ApplicableEndpoints = (
|
|
@@ -1852,7 +1917,7 @@ declare type ApplicableEndpoints = (
|
|
|
1852
1917
|
)[];
|
|
1853
1918
|
|
|
1854
1919
|
/**
|
|
1855
|
-
* The endpoint shapes
|
|
1920
|
+
* The endpoint shapes to cache. Defaults to all shapes: ['openai-chat', 'anthropic-messages', 'openai-responses'].
|
|
1856
1921
|
* @public
|
|
1857
1922
|
*/
|
|
1858
1923
|
declare type ApplicableEndpoints_2 = (
|
|
@@ -1881,6 +1946,16 @@ declare type ApplicableEndpoints_4 = (
|
|
|
1881
1946
|
| "anthropic-messages"
|
|
1882
1947
|
)[];
|
|
1883
1948
|
|
|
1949
|
+
/**
|
|
1950
|
+
* The endpoint shapes this policy applies to. Omit to apply to all (openai-chat, openai-responses, anthropic-messages).
|
|
1951
|
+
* @public
|
|
1952
|
+
*/
|
|
1953
|
+
declare type ApplicableEndpoints_5 = (
|
|
1954
|
+
| "openai-chat"
|
|
1955
|
+
| "openai-responses"
|
|
1956
|
+
| "anthropic-messages"
|
|
1957
|
+
)[];
|
|
1958
|
+
|
|
1884
1959
|
/**
|
|
1885
1960
|
* The application ID to identify this usage of the AI Firewall (optional).
|
|
1886
1961
|
* @public
|
|
@@ -3775,8 +3850,8 @@ export declare interface CometOpikTracingV2PolicyOptions {
|
|
|
3775
3850
|
* The base URL for the Comet Opik API (optional, defaults to https://www.comet.com/opik/api).
|
|
3776
3851
|
*/
|
|
3777
3852
|
baseUrl?: string;
|
|
3778
|
-
endpoints?:
|
|
3779
|
-
onUnknownShape?:
|
|
3853
|
+
endpoints?: ApplicableEndpoints_4;
|
|
3854
|
+
onUnknownShape?: OnUnknownShape_4;
|
|
3780
3855
|
}
|
|
3781
3856
|
|
|
3782
3857
|
/**
|
|
@@ -4555,7 +4630,11 @@ export declare interface DataLossPreventionInboundPolicyOptions {
|
|
|
4555
4630
|
*/
|
|
4556
4631
|
customPatterns?: DlpCustomPattern[];
|
|
4557
4632
|
/**
|
|
4558
|
-
*
|
|
4633
|
+
* Values that are never reported as findings, compared against the exact matched text (case-sensitive, separators included). Use this to exempt well-known non-sensitive values that share a sensitive shape — for example the Stripe test card number `4242 4242 4242 4242` in a payments sandbox, or a public support email address. List every written form you want to allow (a spaced and an unspaced card number are different matches).
|
|
4634
|
+
*/
|
|
4635
|
+
allowValues?: string[];
|
|
4636
|
+
/**
|
|
4637
|
+
* Minimum confidence (0-1) a match must reach to count as a finding. Every match starts at its recognizer's base confidence and gains a fixed boost of 0.45 when one of the recognizer's context words appears near it. Ambiguous shapes (for example `finance-us-bank-account` or `finance-cvv`) have a low base confidence and only cross the default threshold of 0.5 with that boost; lower the threshold to surface them without context. Raising the threshold is not a precision filter: any recognizer whose base confidence falls below it stops matching entirely except near its context words, and most checksum-validated recognizers run at 0.85, so values above 0.85 disable most of the catalog. To narrow detection, scope the `entities` list instead.
|
|
4559
4638
|
*/
|
|
4560
4639
|
minConfidence?: number;
|
|
4561
4640
|
/**
|
|
@@ -4698,7 +4777,11 @@ export declare interface DataLossPreventionOutboundPolicyOptions {
|
|
|
4698
4777
|
*/
|
|
4699
4778
|
customPatterns?: DlpCustomPattern_2[];
|
|
4700
4779
|
/**
|
|
4701
|
-
*
|
|
4780
|
+
* Values that are never reported as findings, compared against the exact matched text (case-sensitive, separators included). Use this to exempt well-known non-sensitive values that share a sensitive shape — for example the Stripe test card number `4242 4242 4242 4242` in a payments sandbox, or a public support email address. List every written form you want to allow (a spaced and an unspaced card number are different matches).
|
|
4781
|
+
*/
|
|
4782
|
+
allowValues?: string[];
|
|
4783
|
+
/**
|
|
4784
|
+
* Minimum confidence (0-1) a match must reach to count as a finding. Every match starts at its recognizer's base confidence and gains a fixed boost of 0.45 when one of the recognizer's context words appears near it. Ambiguous shapes (for example `finance-us-bank-account` or `finance-cvv`) have a low base confidence and only cross the default threshold of 0.5 with that boost; lower the threshold to surface them without context. Raising the threshold is not a precision filter: any recognizer whose base confidence falls below it stops matching entirely except near its context words, and most checksum-validated recognizers run at 0.85, so values above 0.85 disable most of the catalog. To narrow detection, scope the `entities` list instead.
|
|
4702
4785
|
*/
|
|
4703
4786
|
minConfidence?: number;
|
|
4704
4787
|
/**
|
|
@@ -4770,6 +4853,182 @@ declare interface DlpCustomPattern_2 {
|
|
|
4770
4853
|
context?: string[];
|
|
4771
4854
|
}
|
|
4772
4855
|
|
|
4856
|
+
declare interface DlpCustomRule {
|
|
4857
|
+
/**
|
|
4858
|
+
* Identifier reported in findings and block details for this rule.
|
|
4859
|
+
*/
|
|
4860
|
+
name: string;
|
|
4861
|
+
/**
|
|
4862
|
+
* A JavaScript regular expression source string. Remember to escape backslashes for JSON (for example `\\d` for a digit). An invalid pattern fails the configuration at request time — a broken guardrail never degrades into a silent pass-through.
|
|
4863
|
+
*/
|
|
4864
|
+
pattern: string;
|
|
4865
|
+
/**
|
|
4866
|
+
* Context words for this rule. With `detection: "corroborated"` the rule only fires when one of these words appears near the match.
|
|
4867
|
+
*/
|
|
4868
|
+
context?: string[];
|
|
4869
|
+
/**
|
|
4870
|
+
* What happens when this rule matches, in BOTH directions. `mask` replaces the matched text with a placeholder and the conversation continues; `block` rejects the request or terminates the response with an error naming only the rule's name (never the values); `log` records a finding and lets the traffic pass unchanged; `off` disables the rule. A rule states either `action` or the directional pair (`inboundAction`/`outboundAction`), never both.
|
|
4871
|
+
*/
|
|
4872
|
+
action?: "mask" | "block" | "log" | "off";
|
|
4873
|
+
/**
|
|
4874
|
+
* What happens when this rule matches in what callers send the model. Use with `outboundAction` to give the rule different behavior per direction. Omitting it (or `off`) leaves the inbound direction unscanned for this rule. Cannot be combined with `action`.
|
|
4875
|
+
*/
|
|
4876
|
+
inboundAction?: "mask" | "block" | "log" | "off";
|
|
4877
|
+
/**
|
|
4878
|
+
* What happens when this rule matches in what the model sends back. Omitting it (or `off`) leaves the outbound direction unscanned for this rule. Cannot be combined with `action`.
|
|
4879
|
+
*/
|
|
4880
|
+
outboundAction?: "mask" | "block" | "log" | "off";
|
|
4881
|
+
/**
|
|
4882
|
+
* How much evidence a match needs before this rule acts. `corroborated` additionally requires one of the type's context words near the match (types that define no context words behave as `standard`); `standard` uses the catalog as tuned — distinctive shapes act on their own while ambiguous shapes need nearby context; `aggressive` counts every pattern match and is false-positive-prone — pair it with the `log` action for audits. Overrides the policy-level `detection` for this rule.
|
|
4883
|
+
*/
|
|
4884
|
+
detection?: "corroborated" | "standard" | "aggressive";
|
|
4885
|
+
/**
|
|
4886
|
+
* Replacement text for this rule's masked matches. The `{type}` token inserts the detected type id in UPPER_SNAKE form, so the default turns a matched email into `[CONTACT_EMAIL]` — typed placeholders keep masked conversations legible to the model. Set a literal like `[REDACTED]` to hide the type.
|
|
4887
|
+
*/
|
|
4888
|
+
mask?: string;
|
|
4889
|
+
partialMask?: DlpPartialMask;
|
|
4890
|
+
}
|
|
4891
|
+
|
|
4892
|
+
declare interface DlpPartialMask {
|
|
4893
|
+
/**
|
|
4894
|
+
* Keep the last N characters of the matched value unmasked and replace the rest with `*`, preserving length (for example `**** **** **** 4242`). Values no longer than N characters are fully masked.
|
|
4895
|
+
*/
|
|
4896
|
+
keepLast: number;
|
|
4897
|
+
}
|
|
4898
|
+
|
|
4899
|
+
declare interface DlpRule {
|
|
4900
|
+
/**
|
|
4901
|
+
* What happens when this type is found, in BOTH directions. `mask` replaces the matched text with a placeholder and the conversation continues; `block` rejects the request or terminates the response with an error naming only the detected types (never the values); `log` records a finding and lets the traffic pass unchanged — use it to trial a rule before enforcing it; `off` excludes this type from a group enabled by a broader key. A rule states either `action` or the directional pair (`inboundAction`/`outboundAction`), never both.
|
|
4902
|
+
*/
|
|
4903
|
+
action?: "mask" | "block" | "log" | "off";
|
|
4904
|
+
/**
|
|
4905
|
+
* What happens when this type is found in what callers send the model (system prompt, message text, and tool-call arguments). Use with `outboundAction` to give one type different behavior per direction — for example mask PII on the way in and block it on the way out. Omitting it (or `off`) leaves the inbound direction unscanned for this type. Cannot be combined with `action`.
|
|
4906
|
+
*/
|
|
4907
|
+
inboundAction?: "mask" | "block" | "log" | "off";
|
|
4908
|
+
/**
|
|
4909
|
+
* What happens when this type is found in what the model sends back (buffered responses whole, streaming responses as they stream). Omitting it (or `off`) leaves the outbound direction unscanned for this type. Cannot be combined with `action`.
|
|
4910
|
+
*/
|
|
4911
|
+
outboundAction?: "mask" | "block" | "log" | "off";
|
|
4912
|
+
/**
|
|
4913
|
+
* How much evidence a match needs before this rule acts. `corroborated` additionally requires one of the type's context words near the match (types that define no context words behave as `standard`); `standard` uses the catalog as tuned — distinctive shapes act on their own while ambiguous shapes need nearby context; `aggressive` counts every pattern match and is false-positive-prone — pair it with the `log` action for audits. Overrides the policy-level `detection` for this rule.
|
|
4914
|
+
*/
|
|
4915
|
+
detection?: "corroborated" | "standard" | "aggressive";
|
|
4916
|
+
/**
|
|
4917
|
+
* Replacement text for this rule's masked matches. The `{type}` token inserts the detected type id in UPPER_SNAKE form, so the default turns a matched email into `[CONTACT_EMAIL]` — typed placeholders keep masked conversations legible to the model. Set a literal like `[REDACTED]` to hide the type.
|
|
4918
|
+
*/
|
|
4919
|
+
mask?: string;
|
|
4920
|
+
partialMask?: DlpPartialMask;
|
|
4921
|
+
}
|
|
4922
|
+
|
|
4923
|
+
/**
|
|
4924
|
+
* What to find and what to do about it. Each key is a built-in data type id (like `id-us-ssn`) or a group selector (like `pii` or `secret`, plus any dash-aligned id prefix such as `secret-aws`); each value is a rule object stating either one `action` for both directions or a directional pair (`inboundAction`/`outboundAction`) — for example mask PII inbound and block it outbound. Types you do not mention are not scanned. The most specific key wins — an exact id beats a prefix beats a group — and the winning entry decides everything for its type. When one stretch of text matches multiple rules, the severest action wins (block > mask > log). At least one rule must scan something.
|
|
4925
|
+
* @public
|
|
4926
|
+
*/
|
|
4927
|
+
declare interface DlpRules {
|
|
4928
|
+
contact?: DlpRule;
|
|
4929
|
+
finance?: DlpRule;
|
|
4930
|
+
"finance-us"?: DlpRule;
|
|
4931
|
+
id?: DlpRule;
|
|
4932
|
+
"id-au"?: DlpRule;
|
|
4933
|
+
"id-br"?: DlpRule;
|
|
4934
|
+
"id-ca"?: DlpRule;
|
|
4935
|
+
"id-es"?: DlpRule;
|
|
4936
|
+
"id-fr"?: DlpRule;
|
|
4937
|
+
"id-in"?: DlpRule;
|
|
4938
|
+
"id-it"?: DlpRule;
|
|
4939
|
+
"id-nl"?: DlpRule;
|
|
4940
|
+
"id-pl"?: DlpRule;
|
|
4941
|
+
"id-sg"?: DlpRule;
|
|
4942
|
+
"id-uk"?: DlpRule;
|
|
4943
|
+
"id-us"?: DlpRule;
|
|
4944
|
+
network?: DlpRule;
|
|
4945
|
+
pii?: DlpRule;
|
|
4946
|
+
"region-eu"?: DlpRule;
|
|
4947
|
+
secret?: DlpRule;
|
|
4948
|
+
"secret-aws"?: DlpRule;
|
|
4949
|
+
"contact-email"?: DlpRule;
|
|
4950
|
+
"contact-phone"?: DlpRule;
|
|
4951
|
+
"finance-credit-card"?: DlpRule;
|
|
4952
|
+
"finance-crypto-wallet"?: DlpRule;
|
|
4953
|
+
"finance-cvv"?: DlpRule;
|
|
4954
|
+
"finance-iban"?: DlpRule;
|
|
4955
|
+
"finance-swift-bic"?: DlpRule;
|
|
4956
|
+
"finance-us-aba-routing"?: DlpRule;
|
|
4957
|
+
"finance-us-bank-account"?: DlpRule;
|
|
4958
|
+
"id-au-abn"?: DlpRule;
|
|
4959
|
+
"id-au-acn"?: DlpRule;
|
|
4960
|
+
"id-au-medicare"?: DlpRule;
|
|
4961
|
+
"id-au-tfn"?: DlpRule;
|
|
4962
|
+
"id-br-cpf"?: DlpRule;
|
|
4963
|
+
"id-ca-sin"?: DlpRule;
|
|
4964
|
+
"id-es-nif"?: DlpRule;
|
|
4965
|
+
"id-fr-nir"?: DlpRule;
|
|
4966
|
+
"id-in-aadhaar"?: DlpRule;
|
|
4967
|
+
"id-in-pan"?: DlpRule;
|
|
4968
|
+
"id-it-fiscal-code"?: DlpRule;
|
|
4969
|
+
"id-nl-bsn"?: DlpRule;
|
|
4970
|
+
"id-pl-pesel"?: DlpRule;
|
|
4971
|
+
"id-sg-nric"?: DlpRule;
|
|
4972
|
+
"id-uk-nhs"?: DlpRule;
|
|
4973
|
+
"id-uk-nino"?: DlpRule;
|
|
4974
|
+
"id-us-itin"?: DlpRule;
|
|
4975
|
+
"id-us-passport"?: DlpRule;
|
|
4976
|
+
"id-us-ssn"?: DlpRule;
|
|
4977
|
+
"network-ipv4"?: DlpRule;
|
|
4978
|
+
"network-ipv6"?: DlpRule;
|
|
4979
|
+
"network-mac"?: DlpRule;
|
|
4980
|
+
"secret-anthropic"?: DlpRule;
|
|
4981
|
+
"secret-aws-access-key"?: DlpRule;
|
|
4982
|
+
"secret-aws-bedrock"?: DlpRule;
|
|
4983
|
+
"secret-azure-client"?: DlpRule;
|
|
4984
|
+
"secret-databricks"?: DlpRule;
|
|
4985
|
+
"secret-digitalocean"?: DlpRule;
|
|
4986
|
+
"secret-discord-webhook"?: DlpRule;
|
|
4987
|
+
"secret-github"?: DlpRule;
|
|
4988
|
+
"secret-gitlab"?: DlpRule;
|
|
4989
|
+
"secret-google-api-key"?: DlpRule;
|
|
4990
|
+
"secret-heroku"?: DlpRule;
|
|
4991
|
+
"secret-hugging-face"?: DlpRule;
|
|
4992
|
+
"secret-jwt"?: DlpRule;
|
|
4993
|
+
"secret-mailchimp"?: DlpRule;
|
|
4994
|
+
"secret-mailgun"?: DlpRule;
|
|
4995
|
+
"secret-npm"?: DlpRule;
|
|
4996
|
+
"secret-openai"?: DlpRule;
|
|
4997
|
+
"secret-perplexity"?: DlpRule;
|
|
4998
|
+
"secret-postman"?: DlpRule;
|
|
4999
|
+
"secret-private-key"?: DlpRule;
|
|
5000
|
+
"secret-pypi"?: DlpRule;
|
|
5001
|
+
"secret-sendgrid"?: DlpRule;
|
|
5002
|
+
"secret-sentry"?: DlpRule;
|
|
5003
|
+
"secret-shopify"?: DlpRule;
|
|
5004
|
+
"secret-slack"?: DlpRule;
|
|
5005
|
+
"secret-square"?: DlpRule;
|
|
5006
|
+
"secret-stripe"?: DlpRule;
|
|
5007
|
+
"secret-telegram-bot"?: DlpRule;
|
|
5008
|
+
"secret-terraform"?: DlpRule;
|
|
5009
|
+
"secret-twilio"?: DlpRule;
|
|
5010
|
+
"secret-zuplo"?: DlpRule;
|
|
5011
|
+
}
|
|
5012
|
+
|
|
5013
|
+
/**
|
|
5014
|
+
* Tuning for streaming (SSE) response scanning. Each chunk is held until the boundary scan that includes its successor passes, then released — so values split across chunks are always fully maskable, at the cost of one chunk of latency.
|
|
5015
|
+
* @public
|
|
5016
|
+
*/
|
|
5017
|
+
declare interface DlpStreamingSettings {
|
|
5018
|
+
/**
|
|
5019
|
+
* Scan streaming responses. When false, streaming responses pass through unscanned even when rules cover the outbound direction.
|
|
5020
|
+
*/
|
|
5021
|
+
enabled?: boolean;
|
|
5022
|
+
/**
|
|
5023
|
+
* Scan across chunk boundaries using a carried tail of already-scanned text. When false, each chunk is scanned alone and released immediately — lower cost, but values split across two chunks are missed.
|
|
5024
|
+
*/
|
|
5025
|
+
boundaryScan?: boolean;
|
|
5026
|
+
/**
|
|
5027
|
+
* How many trailing characters are carried from one chunk into the next boundary scan. Bounds memory and re-scan cost; must be larger than the longest value you need to catch.
|
|
5028
|
+
*/
|
|
5029
|
+
maxCarryChars?: number;
|
|
5030
|
+
}
|
|
5031
|
+
|
|
4773
5032
|
declare interface DynaTraceLoggingOptions {
|
|
4774
5033
|
url: string;
|
|
4775
5034
|
apiToken: string;
|
|
@@ -5196,8 +5455,8 @@ export declare interface GalileoTracingV2PolicyOptions {
|
|
|
5196
5455
|
* The base URL for the Galileo API (optional, defaults to https://api.galileo.ai).
|
|
5197
5456
|
*/
|
|
5198
5457
|
baseUrl?: string;
|
|
5199
|
-
endpoints?:
|
|
5200
|
-
onUnknownShape?:
|
|
5458
|
+
endpoints?: ApplicableEndpoints_5;
|
|
5459
|
+
onUnknownShape?: OnUnknownShape_5;
|
|
5201
5460
|
}
|
|
5202
5461
|
|
|
5203
5462
|
/**
|
|
@@ -10578,6 +10837,12 @@ export declare interface OktaJwtInboundPolicyOptions {
|
|
|
10578
10837
|
oAuthResourceMetadataEnabled?: boolean;
|
|
10579
10838
|
}
|
|
10580
10839
|
|
|
10840
|
+
/**
|
|
10841
|
+
* What to do if the scanner itself throws. The engine is a local in-gateway scanner, so this is effectively unreachable outside of a runtime defect — but a guardrail must declare its failure posture. `block` (the default) fails closed with a 500 in the route's native error format; `allow` fails open and serves the content uninspected.
|
|
10842
|
+
* @public
|
|
10843
|
+
*/
|
|
10844
|
+
declare type OnEngineError = "block" | "allow";
|
|
10845
|
+
|
|
10581
10846
|
/**
|
|
10582
10847
|
* What to do when the Akamai detect call itself fails (invalid API key, rate limit, outage). 'block' (the default) fails closed and returns a 502 so unverified content is never served; 'allow' fails open and lets the request through without inspection. An onError value in the AI Gateway app configuration takes precedence over this option.
|
|
10583
10848
|
* @public
|
|
@@ -10636,19 +10901,19 @@ declare interface OnSendingAwsLambdaEventHook {
|
|
|
10636
10901
|
}
|
|
10637
10902
|
|
|
10638
10903
|
/**
|
|
10639
|
-
*
|
|
10904
|
+
* What to do when the request shape cannot be inspected. As a guardrail this policy defaults to `deny` (fail closed) so uninspectable content is never served.
|
|
10640
10905
|
* @public
|
|
10641
10906
|
*/
|
|
10642
10907
|
declare type OnUnknownShape = "deny" | "skip";
|
|
10643
10908
|
|
|
10644
10909
|
/**
|
|
10645
|
-
*
|
|
10910
|
+
* Unused by the cache (a cache miss is never unsafe, so it always fails open). Present for interface consistency.
|
|
10646
10911
|
* @public
|
|
10647
10912
|
*/
|
|
10648
10913
|
declare type OnUnknownShape_2 = "deny" | "skip";
|
|
10649
10914
|
|
|
10650
10915
|
/**
|
|
10651
|
-
* What to do
|
|
10916
|
+
* What to do when the request shape cannot be inspected. As a guardrail, this policy defaults to 'deny' (fail closed) so uninspectable content is never served.
|
|
10652
10917
|
* @public
|
|
10653
10918
|
*/
|
|
10654
10919
|
declare type OnUnknownShape_3 = "deny" | "skip";
|
|
@@ -10659,6 +10924,12 @@ declare type OnUnknownShape_3 = "deny" | "skip";
|
|
|
10659
10924
|
*/
|
|
10660
10925
|
declare type OnUnknownShape_4 = "deny" | "skip";
|
|
10661
10926
|
|
|
10927
|
+
/**
|
|
10928
|
+
* What to do on a shape the policy cannot read. As an observer this defaults to 'skip' (fail open — pass through untraced).
|
|
10929
|
+
* @public
|
|
10930
|
+
*/
|
|
10931
|
+
declare type OnUnknownShape_5 = "deny" | "skip";
|
|
10932
|
+
|
|
10662
10933
|
/**
|
|
10663
10934
|
* Handler that serves OpenAPI specification files.
|
|
10664
10935
|
* Use this to expose your API documentation in a standard format that can be
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import process from 'node:process';
|
|
1
2
|
import {promisify} from 'node:util';
|
|
2
3
|
import {execFile} from 'node:child_process';
|
|
3
4
|
|
|
@@ -31,7 +32,8 @@ export const _windowsBrowserProgIdMap = new Map(Object.entries(windowsBrowserPro
|
|
|
31
32
|
export class UnknownBrowserError extends Error {}
|
|
32
33
|
|
|
33
34
|
export default async function defaultBrowser(_execFileAsync = execFileAsync) {
|
|
34
|
-
const
|
|
35
|
+
const regPath = `${process.env.SYSTEMROOT ?? process.env.windir ?? 'C:\\Windows'}\\System32\\reg.exe`;
|
|
36
|
+
const {stdout} = await _execFileAsync(regPath, [
|
|
35
37
|
'QUERY',
|
|
36
38
|
' HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice',
|
|
37
39
|
'/v',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zuplo/cli",
|
|
3
|
-
"version": "7.1
|
|
3
|
+
"version": "7.2.1",
|
|
4
4
|
"repository": "https://github.com/zuplo/zuplo",
|
|
5
5
|
"author": "Zuplo, Inc.",
|
|
6
6
|
"type": "module",
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
"@opentelemetry/api": "1.9.0",
|
|
29
29
|
"@opentelemetry/api-logs": "0.220.0",
|
|
30
30
|
"@swc/core": "1.10.18",
|
|
31
|
-
"@zuplo/core": "7.1
|
|
31
|
+
"@zuplo/core": "7.2.1",
|
|
32
32
|
"@zuplo/editor": "1.0.31094607111",
|
|
33
|
-
"@zuplo/openapi-tools": "7.1
|
|
34
|
-
"@zuplo/runtime": "7.1
|
|
33
|
+
"@zuplo/openapi-tools": "7.2.1",
|
|
34
|
+
"@zuplo/runtime": "7.2.1",
|
|
35
35
|
"chalk": "5.4.1",
|
|
36
36
|
"chokidar": "3.5.3",
|
|
37
37
|
"cookie": "1.0.2",
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
"workerd": "1.20241230.0",
|
|
63
63
|
"yargs": "17.7.2",
|
|
64
64
|
"zod": "4.4.3",
|
|
65
|
-
"@zuplo/graphql": "7.1
|
|
66
|
-
"@zuplo/otel": "7.1
|
|
65
|
+
"@zuplo/graphql": "7.2.1",
|
|
66
|
+
"@zuplo/otel": "7.2.1"
|
|
67
67
|
},
|
|
68
68
|
"bundleDependencies": [
|
|
69
69
|
"@inquirer/prompts",
|