pgbeam 0.3.2 → 0.3.4

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.
@@ -1299,6 +1299,29 @@ type RejectApprovalRequestRequestConfig = {
1299
1299
  url: `/v1/projects/${string}/approvals/${string}/reject`;
1300
1300
  };
1301
1301
 
1302
+ /**
1303
+ * Generated by Kubb (https://kubb.dev/).
1304
+ * Do not edit manually.
1305
+ */
1306
+ declare const auditDecision: {
1307
+ readonly allow: "allow";
1308
+ readonly block: "block";
1309
+ readonly mask: "mask";
1310
+ readonly truncate: "truncate";
1311
+ };
1312
+ type AuditDecisionKey = (typeof auditDecision)[keyof typeof auditDecision];
1313
+
1314
+ /**
1315
+ * Generated by Kubb (https://kubb.dev/).
1316
+ * Do not edit manually.
1317
+ */
1318
+ declare const auditSource: {
1319
+ readonly wire: "wire";
1320
+ readonly mcp: "mcp";
1321
+ readonly control: "control";
1322
+ };
1323
+ type AuditSourceKey = (typeof auditSource)[keyof typeof auditSource];
1324
+
1302
1325
  /**
1303
1326
  * Generated by Kubb (https://kubb.dev/).
1304
1327
  * Do not edit manually.
@@ -1446,13 +1469,33 @@ type ListAuditLogsPathProjectId = string;
1446
1469
  */
1447
1470
  type ListAuditLogsQueryCredentialId = string | undefined;
1448
1471
  /**
1449
- * @description Filter to a single event type (e.g. blocked).
1472
+ * @description Filter to a single event type (e.g. blocked, masked, query).
1450
1473
  * @pattern ^[a-z_]+$
1451
1474
  * @type string | undefined
1452
1475
  */
1453
1476
  type ListAuditLogsQueryEvent = string | undefined;
1454
1477
  /**
1455
- * @description Return entries strictly older than this timestamp (cursor).
1478
+ * @description Coarse outcome filter that groups events. `allow` = query; `block` = blocked, budget_exhausted, auth_failed, credential_expired; `mask` = masked; `truncate` = truncated.
1479
+ * @type string | undefined
1480
+ */
1481
+ type ListAuditLogsQueryDecision = AuditDecisionKey | undefined;
1482
+ /**
1483
+ * @description Filter by statement origin (wire, mcp, or control).
1484
+ * @type string | undefined
1485
+ */
1486
+ type ListAuditLogsQuerySource = AuditSourceKey | undefined;
1487
+ /**
1488
+ * @description Return entries at or after this timestamp (inclusive lower bound).
1489
+ * @type string | undefined
1490
+ */
1491
+ type ListAuditLogsQueryStart = string | undefined;
1492
+ /**
1493
+ * @description Return entries strictly older than this timestamp (cursor / upper bound).
1494
+ * @type string | undefined
1495
+ */
1496
+ type ListAuditLogsQueryEnd = string | undefined;
1497
+ /**
1498
+ * @description Return entries strictly older than this timestamp (keyset pagination cursor).
1456
1499
  * @type string | undefined
1457
1500
  */
1458
1501
  type ListAuditLogsQueryBefore = string | undefined;
@@ -1486,6 +1529,10 @@ type ListAuditLogsRequestConfig = {
1486
1529
  queryParams?: {
1487
1530
  credential_id?: ListAuditLogsQueryCredentialId;
1488
1531
  event?: ListAuditLogsQueryEvent;
1532
+ decision?: ListAuditLogsQueryDecision;
1533
+ source?: ListAuditLogsQuerySource;
1534
+ start?: ListAuditLogsQueryStart;
1535
+ end?: ListAuditLogsQueryEnd;
1489
1536
  before?: ListAuditLogsQueryBefore;
1490
1537
  page_size?: ListAuditLogsQueryPageSize;
1491
1538
  };
@@ -1496,6 +1543,82 @@ type ListAuditLogsRequestConfig = {
1496
1543
  url: `/v1/projects/${string}/audit-logs`;
1497
1544
  };
1498
1545
 
1546
+ /**
1547
+ * Generated by Kubb (https://kubb.dev/).
1548
+ * Do not edit manually.
1549
+ */
1550
+
1551
+ /**
1552
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
1553
+ * @pattern ^[a-zA-Z0-9_.-]+$
1554
+ * @type string
1555
+ */
1556
+ type ExportAuditLogsPathProjectId = string;
1557
+ /**
1558
+ * @description Filter to a single agent credential.
1559
+ * @pattern ^[a-zA-Z0-9_.-]+$
1560
+ * @type string | undefined
1561
+ */
1562
+ type ExportAuditLogsQueryCredentialId = string | undefined;
1563
+ /**
1564
+ * @description Filter to a single event type (e.g. blocked, masked, query).
1565
+ * @pattern ^[a-z_]+$
1566
+ * @type string | undefined
1567
+ */
1568
+ type ExportAuditLogsQueryEvent = string | undefined;
1569
+ /**
1570
+ * @description Coarse outcome filter that groups events. `allow` = query; `block` = blocked, budget_exhausted, auth_failed, credential_expired; `mask` = masked; `truncate` = truncated.
1571
+ * @type string | undefined
1572
+ */
1573
+ type ExportAuditLogsQueryDecision = AuditDecisionKey | undefined;
1574
+ /**
1575
+ * @description Filter by statement origin (wire, mcp, or control).
1576
+ * @type string | undefined
1577
+ */
1578
+ type ExportAuditLogsQuerySource = AuditSourceKey | undefined;
1579
+ /**
1580
+ * @description Return entries at or after this timestamp (inclusive lower bound).
1581
+ * @type string | undefined
1582
+ */
1583
+ type ExportAuditLogsQueryStart = string | undefined;
1584
+ /**
1585
+ * @description Return entries strictly older than this timestamp (cursor / upper bound).
1586
+ * @type string | undefined
1587
+ */
1588
+ type ExportAuditLogsQueryEnd = string | undefined;
1589
+ /**
1590
+ * @type string
1591
+ */
1592
+ type ExportAuditLogsStatus200 = string;
1593
+ /**
1594
+ * @type object
1595
+ */
1596
+ type ExportAuditLogsRequestConfig = {
1597
+ data?: never;
1598
+ /**
1599
+ * @type object
1600
+ */
1601
+ pathParams: {
1602
+ project_id: ExportAuditLogsPathProjectId;
1603
+ };
1604
+ /**
1605
+ * @type object | undefined
1606
+ */
1607
+ queryParams?: {
1608
+ credential_id?: ExportAuditLogsQueryCredentialId;
1609
+ event?: ExportAuditLogsQueryEvent;
1610
+ decision?: ExportAuditLogsQueryDecision;
1611
+ source?: ExportAuditLogsQuerySource;
1612
+ start?: ExportAuditLogsQueryStart;
1613
+ end?: ExportAuditLogsQueryEnd;
1614
+ };
1615
+ headerParams?: never;
1616
+ /**
1617
+ * @type string
1618
+ */
1619
+ url: `/v1/projects/${string}/audit-logs/export`;
1620
+ };
1621
+
1499
1622
  /**
1500
1623
  * Generated by Kubb (https://kubb.dev/).
1501
1624
  * Do not edit manually.
@@ -3078,6 +3201,328 @@ type TestDatabaseConnectionRequestConfig = {
3078
3201
  url: `/v1/projects/${string}/databases/${string}/test-connection`;
3079
3202
  };
3080
3203
 
3204
+ /**
3205
+ * Generated by Kubb (https://kubb.dev/).
3206
+ * Do not edit manually.
3207
+ */
3208
+ declare const piiSuggestionPiiTypeEnum: {
3209
+ readonly email: "email";
3210
+ readonly phone: "phone";
3211
+ readonly ssn: "ssn";
3212
+ readonly credit_card: "credit_card";
3213
+ readonly ip_address: "ip_address";
3214
+ readonly full_name: "full_name";
3215
+ readonly street_address: "street_address";
3216
+ readonly date_of_birth: "date_of_birth";
3217
+ readonly national_id: "national_id";
3218
+ readonly passport: "passport";
3219
+ readonly bank_account: "bank_account";
3220
+ readonly api_secret: "api_secret";
3221
+ readonly other: "other";
3222
+ };
3223
+ type PiiSuggestionPiiTypeEnumKey = (typeof piiSuggestionPiiTypeEnum)[keyof typeof piiSuggestionPiiTypeEnum];
3224
+ declare const piiSuggestionMaskKindEnum: {
3225
+ readonly redact: "redact";
3226
+ readonly null: "null";
3227
+ readonly hash: "hash";
3228
+ };
3229
+ type PiiSuggestionMaskKindEnumKey = (typeof piiSuggestionMaskKindEnum)[keyof typeof piiSuggestionMaskKindEnum];
3230
+ /**
3231
+ * @description A single likely-PII column detected by the scanner, with a recommended masking rule. Suggestions are advisory only — nothing is applied until the operator reviews and adds it to a policy profile.
3232
+ * @type object
3233
+ */
3234
+ type PiiSuggestion = {
3235
+ /**
3236
+ * @description Schema the column belongs to (e.g. \"public\").
3237
+ * @example public
3238
+ * @type string
3239
+ */
3240
+ schema: string;
3241
+ /**
3242
+ * @description Table the column belongs to.
3243
+ * @example users
3244
+ * @type string
3245
+ */
3246
+ table: string;
3247
+ /**
3248
+ * @description The detected column name.
3249
+ * @example email
3250
+ * @type string
3251
+ */
3252
+ column: string;
3253
+ /**
3254
+ * @description PostgreSQL data type of the column.
3255
+ * @example text
3256
+ * @type string
3257
+ */
3258
+ data_type: string;
3259
+ /**
3260
+ * @description The kind of personally identifiable information detected.
3261
+ * @type string
3262
+ */
3263
+ pii_type: PiiSuggestionPiiTypeEnumKey;
3264
+ /**
3265
+ * @description Recommended masking kind for this column. hash is suggested for join/group keys (e.g. email), redact for free-text PII, null for highly sensitive secrets.
3266
+ * @type string
3267
+ */
3268
+ mask_kind: PiiSuggestionMaskKindEnumKey;
3269
+ /**
3270
+ * @description Confidence score in [0,1]. Combines column-name signal and sampled-value signal; higher is stronger evidence.
3271
+ * @example 0.95
3272
+ * @type number
3273
+ */
3274
+ confidence: number;
3275
+ /**
3276
+ * @description Human-readable explanations for why the column was flagged.
3277
+ * @example column name matches 'email',8/10 sampled values look like emails
3278
+ * @type array
3279
+ */
3280
+ reasons: string[];
3281
+ /**
3282
+ * @description Number of sampled non-null values that matched the PII pattern.
3283
+ * @minLength 0
3284
+ * @type integer | undefined
3285
+ */
3286
+ sample_match_count?: number;
3287
+ /**
3288
+ * @description Number of non-null values sampled from the column.
3289
+ * @minLength 0
3290
+ * @type integer | undefined
3291
+ */
3292
+ sample_size?: number;
3293
+ };
3294
+
3295
+ /**
3296
+ * Generated by Kubb (https://kubb.dev/).
3297
+ * Do not edit manually.
3298
+ */
3299
+
3300
+ /**
3301
+ * @description Result of a PII detection scan over a database\'s schema.
3302
+ * @type object
3303
+ */
3304
+ type ScanPiiResult = {
3305
+ /**
3306
+ * @description Number of tables inspected.
3307
+ * @minLength 0
3308
+ * @type integer
3309
+ */
3310
+ scanned_tables: number;
3311
+ /**
3312
+ * @description Number of columns inspected.
3313
+ * @minLength 0
3314
+ * @type integer
3315
+ */
3316
+ scanned_columns: number;
3317
+ /**
3318
+ * @description Ranked masking suggestions, highest confidence first. Empty when no likely-PII columns were found.
3319
+ * @type array
3320
+ */
3321
+ suggestions: PiiSuggestion[];
3322
+ /**
3323
+ * @description True when the scan stopped early at the column limit and some columns were not inspected.
3324
+ * @type boolean | undefined
3325
+ */
3326
+ truncated?: boolean;
3327
+ /**
3328
+ * @description Present when the scan failed to connect or read the schema.
3329
+ * @type string | undefined
3330
+ */
3331
+ error?: string;
3332
+ };
3333
+
3334
+ /**
3335
+ * Generated by Kubb (https://kubb.dev/).
3336
+ * Do not edit manually.
3337
+ */
3338
+
3339
+ /**
3340
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
3341
+ * @pattern ^[a-zA-Z0-9_.-]+$
3342
+ * @type string
3343
+ */
3344
+ type ScanDatabaseForPiiPathProjectId = string;
3345
+ /**
3346
+ * @description Unique database identifier (prefixed, e.g. db_xxx).
3347
+ * @pattern ^[a-zA-Z0-9_.-]+$
3348
+ * @type string
3349
+ */
3350
+ type ScanDatabaseForPiiPathDatabaseId = string;
3351
+ /**
3352
+ * @description Result of a PII detection scan over a database\'s schema.
3353
+ * @type object
3354
+ */
3355
+ type ScanDatabaseForPiiStatus200 = ScanPiiResult;
3356
+ /**
3357
+ * @type object
3358
+ */
3359
+ type ScanDatabaseForPiiRequestConfig = {
3360
+ data?: never;
3361
+ /**
3362
+ * @type object
3363
+ */
3364
+ pathParams: {
3365
+ project_id: ScanDatabaseForPiiPathProjectId;
3366
+ database_id: ScanDatabaseForPiiPathDatabaseId;
3367
+ };
3368
+ queryParams?: never;
3369
+ headerParams?: never;
3370
+ /**
3371
+ * @type string
3372
+ */
3373
+ url: `/v1/projects/${string}/databases/${string}/scan-pii`;
3374
+ };
3375
+
3376
+ /**
3377
+ * Generated by Kubb (https://kubb.dev/).
3378
+ * Do not edit manually.
3379
+ */
3380
+ /**
3381
+ * @description One column of a relation in the schema catalog.
3382
+ * @type object
3383
+ */
3384
+ type SchemaCatalogColumn = {
3385
+ /**
3386
+ * @description Column name.
3387
+ * @example email
3388
+ * @type string
3389
+ */
3390
+ name: string;
3391
+ /**
3392
+ * @description PostgreSQL data type (information_schema.data_type).
3393
+ * @example text
3394
+ * @type string
3395
+ */
3396
+ data_type: string;
3397
+ /**
3398
+ * @description True for binary-typed columns (e.g. bytea). Masking a binary column always returns NULL — a redact/hash token would corrupt the wire type — so the editor warns when a masking rule targets one.
3399
+ * @type boolean
3400
+ */
3401
+ is_binary: boolean;
3402
+ };
3403
+
3404
+ /**
3405
+ * Generated by Kubb (https://kubb.dev/).
3406
+ * Do not edit manually.
3407
+ */
3408
+
3409
+ declare const schemaCatalogRelationKindEnum: {
3410
+ readonly table: "table";
3411
+ readonly view: "view";
3412
+ readonly materialized_view: "materialized_view";
3413
+ readonly other: "other";
3414
+ };
3415
+ type SchemaCatalogRelationKindEnumKey = (typeof schemaCatalogRelationKindEnum)[keyof typeof schemaCatalogRelationKindEnum];
3416
+ /**
3417
+ * @description One relation (base table or view) in the schema catalog.
3418
+ * @type object
3419
+ */
3420
+ type SchemaCatalogRelation = {
3421
+ /**
3422
+ * @description Schema the relation belongs to.
3423
+ * @example public
3424
+ * @type string
3425
+ */
3426
+ schema: string;
3427
+ /**
3428
+ * @description Relation name.
3429
+ * @example users
3430
+ * @type string
3431
+ */
3432
+ name: string;
3433
+ /**
3434
+ * @description Relation kind. Allowlists, masking, and row-filters are enforced against the named relation itself, NOT through a view to its base tables — so a view over a row-filtered base table can leak. The editor warns when a policy entry targets a view.
3435
+ * @type string
3436
+ */
3437
+ kind: SchemaCatalogRelationKindEnumKey;
3438
+ /**
3439
+ * @description The relation\'s columns.
3440
+ * @type array
3441
+ */
3442
+ columns: SchemaCatalogColumn[];
3443
+ };
3444
+
3445
+ /**
3446
+ * Generated by Kubb (https://kubb.dev/).
3447
+ * Do not edit manually.
3448
+ */
3449
+
3450
+ /**
3451
+ * @description A read-only snapshot of a database\'s user relations (tables and views) and their columns, used to power table/column autocomplete and view-aware warnings in the policy editor. System schemas (pg_catalog, information_schema, pg_toast) are excluded.
3452
+ * @type object
3453
+ */
3454
+ type SchemaCatalog = {
3455
+ /**
3456
+ * @description User relations, ordered by schema then name.
3457
+ * @type array
3458
+ */
3459
+ relations: SchemaCatalogRelation[];
3460
+ /**
3461
+ * @description Number of relations in the catalog.
3462
+ * @minLength 0
3463
+ * @type integer
3464
+ */
3465
+ scanned_relations: number;
3466
+ /**
3467
+ * @description Number of columns in the catalog.
3468
+ * @minLength 0
3469
+ * @type integer
3470
+ */
3471
+ scanned_columns: number;
3472
+ /**
3473
+ * @description True when the catalog stopped early at the column limit.
3474
+ * @type boolean | undefined
3475
+ */
3476
+ truncated?: boolean;
3477
+ /**
3478
+ * @description Present when introspection failed to connect or read the schema.
3479
+ * @type string | undefined
3480
+ */
3481
+ error?: string;
3482
+ };
3483
+
3484
+ /**
3485
+ * Generated by Kubb (https://kubb.dev/).
3486
+ * Do not edit manually.
3487
+ */
3488
+
3489
+ /**
3490
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
3491
+ * @pattern ^[a-zA-Z0-9_.-]+$
3492
+ * @type string
3493
+ */
3494
+ type GetSchemaCatalogPathProjectId = string;
3495
+ /**
3496
+ * @description Unique database identifier (prefixed, e.g. db_xxx).
3497
+ * @pattern ^[a-zA-Z0-9_.-]+$
3498
+ * @type string
3499
+ */
3500
+ type GetSchemaCatalogPathDatabaseId = string;
3501
+ /**
3502
+ * @description A read-only snapshot of a database\'s user relations (tables and views) and their columns, used to power table/column autocomplete and view-aware warnings in the policy editor. System schemas (pg_catalog, information_schema, pg_toast) are excluded.
3503
+ * @type object
3504
+ */
3505
+ type GetSchemaCatalogStatus200 = SchemaCatalog;
3506
+ /**
3507
+ * @type object
3508
+ */
3509
+ type GetSchemaCatalogRequestConfig = {
3510
+ data?: never;
3511
+ /**
3512
+ * @type object
3513
+ */
3514
+ pathParams: {
3515
+ project_id: GetSchemaCatalogPathProjectId;
3516
+ database_id: GetSchemaCatalogPathDatabaseId;
3517
+ };
3518
+ queryParams?: never;
3519
+ headerParams?: never;
3520
+ /**
3521
+ * @type string
3522
+ */
3523
+ url: `/v1/projects/${string}/databases/${string}/schema-catalog`;
3524
+ };
3525
+
3081
3526
  /**
3082
3527
  * Generated by Kubb (https://kubb.dev/).
3083
3528
  * Do not edit manually.
@@ -4588,6 +5033,166 @@ type DeletePolicyProfileRequestConfig = {
4588
5033
  url: `/v1/projects/${string}/policies/${string}`;
4589
5034
  };
4590
5035
 
5036
+ /**
5037
+ * Generated by Kubb (https://kubb.dev/).
5038
+ * Do not edit manually.
5039
+ */
5040
+
5041
+ /**
5042
+ * @description A SQL statement to test plus the policy to test it against. Supply exactly one of policy_id (an existing saved policy) or policy (an unsaved draft, e.g. the in-progress editor form).
5043
+ * @type object
5044
+ */
5045
+ type DryEvalInput = {
5046
+ /**
5047
+ * @description The single SQL statement to evaluate.
5048
+ * @minLength 1
5049
+ * @maxLength 100000
5050
+ * @example SELECT email FROM users WHERE id = 1
5051
+ * @type string
5052
+ */
5053
+ sql: string;
5054
+ /**
5055
+ * @description ID of an existing saved policy profile to evaluate against.
5056
+ * @example pol_01h455vb4pex5vsknk084sn02q
5057
+ * @type string | undefined
5058
+ */
5059
+ policy_id?: string;
5060
+ /**
5061
+ * @description Mutable fields of a policy profile (used for create and update).
5062
+ * @type object | undefined
5063
+ */
5064
+ policy?: PolicyProfileInput;
5065
+ };
5066
+
5067
+ /**
5068
+ * Generated by Kubb (https://kubb.dev/).
5069
+ * Do not edit manually.
5070
+ */
5071
+ declare const dryEvalMaskedColumnKindEnum: {
5072
+ readonly redact: "redact";
5073
+ readonly null: "null";
5074
+ readonly hash: "hash";
5075
+ };
5076
+ type DryEvalMaskedColumnKindEnumKey = (typeof dryEvalMaskedColumnKindEnum)[keyof typeof dryEvalMaskedColumnKindEnum];
5077
+ /**
5078
+ * @description One result column that would be masked, with the mask kind applied.
5079
+ * @type object
5080
+ */
5081
+ type DryEvalMaskedColumn = {
5082
+ /**
5083
+ * @description The output column name (post-alias) the client would see masked.
5084
+ * @example email
5085
+ * @type string
5086
+ */
5087
+ column: string;
5088
+ /**
5089
+ * @description How the column is masked.
5090
+ * @type string
5091
+ */
5092
+ kind: DryEvalMaskedColumnKindEnumKey;
5093
+ };
5094
+
5095
+ /**
5096
+ * Generated by Kubb (https://kubb.dev/).
5097
+ * Do not edit manually.
5098
+ */
5099
+
5100
+ declare const dryEvalResultVerdictEnum: {
5101
+ readonly allow: "allow";
5102
+ readonly block: "block";
5103
+ readonly mask: "mask";
5104
+ readonly "row-filter": "row-filter";
5105
+ };
5106
+ type DryEvalResultVerdictEnumKey = (typeof dryEvalResultVerdictEnum)[keyof typeof dryEvalResultVerdictEnum];
5107
+ /**
5108
+ * @description The decision the proxy would reach for the supplied statement under the supplied policy. verdict is the headline outcome; the remaining fields detail why.
5109
+ * @type object
5110
+ */
5111
+ type DryEvalResult = {
5112
+ /**
5113
+ * @description allow — permitted unchanged; block — rejected; mask — permitted but listed result columns are masked; row-filter — permitted but a WHERE predicate is injected (and any listed columns are also masked).
5114
+ * @type string
5115
+ */
5116
+ verdict: DryEvalResultVerdictEnumKey;
5117
+ /**
5118
+ * @description Machine-readable decision tag. For a block, the blocking rule (e.g. read_only, table_denied, table_not_allowed, statement_denied, row_filter_unsafe). Otherwise \"ok\".
5119
+ * @example ok
5120
+ * @type string
5121
+ */
5122
+ rule: string;
5123
+ /**
5124
+ * @description Human-readable explanation of the verdict.
5125
+ * @type string
5126
+ */
5127
+ reason: string;
5128
+ /**
5129
+ * @description What the author could do instead (present on block verdicts).
5130
+ * @type string | undefined
5131
+ */
5132
+ hint?: string;
5133
+ /**
5134
+ * @description Result columns that would be masked. Present on mask/row-filter verdicts.
5135
+ * @type array | undefined
5136
+ */
5137
+ masked_columns?: DryEvalMaskedColumn[];
5138
+ /**
5139
+ * @description The row-filter predicate ANDed into the statement\'s WHERE clause.
5140
+ * @example tenant_id = current_setting('pgbeam.tenant')
5141
+ * @type string | undefined
5142
+ */
5143
+ row_filter_predicate?: string;
5144
+ /**
5145
+ * @description The statement as it would be sent upstream after row-filter injection.
5146
+ * @type string | undefined
5147
+ */
5148
+ rewritten_sql?: string;
5149
+ /**
5150
+ * @description Informational caveats about stateful enforcement a single-statement preview cannot model (per-region budgets, approvals, write-mode routing).
5151
+ * @type array | undefined
5152
+ */
5153
+ notes?: string[];
5154
+ };
5155
+
5156
+ /**
5157
+ * Generated by Kubb (https://kubb.dev/).
5158
+ * Do not edit manually.
5159
+ */
5160
+
5161
+ /**
5162
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
5163
+ * @pattern ^[a-zA-Z0-9_.-]+$
5164
+ * @type string
5165
+ */
5166
+ type DryEvalPolicyPathProjectId = string;
5167
+ /**
5168
+ * @description The decision the proxy would reach for the supplied statement under the supplied policy. verdict is the headline outcome; the remaining fields detail why.
5169
+ * @type object
5170
+ */
5171
+ type DryEvalPolicyStatus200 = DryEvalResult;
5172
+ /**
5173
+ * @description A SQL statement to test plus the policy to test it against. Supply exactly one of policy_id (an existing saved policy) or policy (an unsaved draft, e.g. the in-progress editor form).
5174
+ * @type object
5175
+ */
5176
+ type DryEvalPolicyData = DryEvalInput;
5177
+ /**
5178
+ * @type object
5179
+ */
5180
+ type DryEvalPolicyRequestConfig = {
5181
+ data?: DryEvalPolicyData;
5182
+ /**
5183
+ * @type object
5184
+ */
5185
+ pathParams: {
5186
+ project_id: DryEvalPolicyPathProjectId;
5187
+ };
5188
+ queryParams?: never;
5189
+ headerParams?: never;
5190
+ /**
5191
+ * @type string
5192
+ */
5193
+ url: `/v1/projects/${string}/policy-evaluations`;
5194
+ };
5195
+
4591
5196
  /**
4592
5197
  * Generated by Kubb (https://kubb.dev/).
4593
5198
  * Do not edit manually.
@@ -4713,6 +5318,12 @@ type Project = {
4713
5318
  * @type string
4714
5319
  */
4715
5320
  default_policy_profile_id?: string | null;
5321
+ /**
5322
+ * @description Project-level kill-switch. When true, ALL agent-credential connections to this project are blocked at the proxy and live agent sessions are dropped within seconds. Passthrough/human connections are unaffected.\n
5323
+ * @example false
5324
+ * @type boolean | undefined
5325
+ */
5326
+ agents_disabled?: boolean;
4716
5327
  /**
4717
5328
  * @description Number of databases attached to this project.
4718
5329
  * @type integer | undefined
@@ -5021,6 +5632,12 @@ type UpdateProjectRequest = {
5021
5632
  * @type string
5022
5633
  */
5023
5634
  default_policy_profile_id?: string | null;
5635
+ /**
5636
+ * @description Project-level kill-switch. Set true to block ALL agent-credential connections to this project (live agent sessions are dropped within seconds); set false to re-enable them. Passthrough/human connections are unaffected. Engaging the kill-switch emits a kill_switch webhook event.\n
5637
+ * @example true
5638
+ * @type boolean | undefined
5639
+ */
5640
+ agents_disabled?: boolean;
5024
5641
  };
5025
5642
 
5026
5643
  /**
@@ -6838,6 +7455,10 @@ declare const operationsByTag: {
6838
7455
  readonly method: "GET";
6839
7456
  readonly path: "/v1/projects/{project_id}/audit-logs";
6840
7457
  };
7458
+ readonly exportAuditLogs: {
7459
+ readonly method: "GET";
7460
+ readonly path: "/v1/projects/{project_id}/audit-logs/export";
7461
+ };
6841
7462
  };
6842
7463
  readonly anomalies: {
6843
7464
  readonly listAnomalyAlerts: {
@@ -6990,6 +7611,14 @@ declare const operationsByTag: {
6990
7611
  readonly method: "POST";
6991
7612
  readonly path: "/v1/projects/{project_id}/databases/{database_id}/test-connection";
6992
7613
  };
7614
+ readonly scanDatabaseForPii: {
7615
+ readonly method: "POST";
7616
+ readonly path: "/v1/projects/{project_id}/databases/{database_id}/scan-pii";
7617
+ };
7618
+ readonly getSchemaCatalog: {
7619
+ readonly method: "GET";
7620
+ readonly path: "/v1/projects/{project_id}/databases/{database_id}/schema-catalog";
7621
+ };
6993
7622
  };
6994
7623
  readonly platform: {
6995
7624
  readonly getHealth: {
@@ -7028,6 +7657,10 @@ declare const operationsByTag: {
7028
7657
  readonly method: "DELETE";
7029
7658
  readonly path: "/v1/projects/{project_id}/policies/{policy_id}";
7030
7659
  };
7660
+ readonly dryEvalPolicy: {
7661
+ readonly method: "POST";
7662
+ readonly path: "/v1/projects/{project_id}/policy-evaluations";
7663
+ };
7031
7664
  };
7032
7665
  readonly support: {
7033
7666
  readonly listSupportCases: {
@@ -7150,6 +7783,11 @@ declare const operationsByPath: {
7150
7783
  readonly path: "/v1/projects/{project_id}/audit-logs";
7151
7784
  readonly operationId: "listAuditLogs";
7152
7785
  };
7786
+ readonly "GET /v1/projects/{project_id}/audit-logs/export": {
7787
+ readonly method: "GET";
7788
+ readonly path: "/v1/projects/{project_id}/audit-logs/export";
7789
+ readonly operationId: "exportAuditLogs";
7790
+ };
7153
7791
  readonly "GET /v1/plans": {
7154
7792
  readonly method: "GET";
7155
7793
  readonly path: "/v1/plans";
@@ -7220,6 +7858,16 @@ declare const operationsByPath: {
7220
7858
  readonly path: "/v1/projects/{project_id}/databases/{database_id}/test-connection";
7221
7859
  readonly operationId: "testDatabaseConnection";
7222
7860
  };
7861
+ readonly "POST /v1/projects/{project_id}/databases/{database_id}/scan-pii": {
7862
+ readonly method: "POST";
7863
+ readonly path: "/v1/projects/{project_id}/databases/{database_id}/scan-pii";
7864
+ readonly operationId: "scanDatabaseForPii";
7865
+ };
7866
+ readonly "GET /v1/projects/{project_id}/databases/{database_id}/schema-catalog": {
7867
+ readonly method: "GET";
7868
+ readonly path: "/v1/projects/{project_id}/databases/{database_id}/schema-catalog";
7869
+ readonly operationId: "getSchemaCatalog";
7870
+ };
7223
7871
  readonly "GET /v1/projects/{project_id}/domains": {
7224
7872
  readonly method: "GET";
7225
7873
  readonly path: "/v1/projects/{project_id}/domains";
@@ -7290,6 +7938,11 @@ declare const operationsByPath: {
7290
7938
  readonly path: "/v1/projects/{project_id}/policies/{policy_id}";
7291
7939
  readonly operationId: "deletePolicyProfile";
7292
7940
  };
7941
+ readonly "POST /v1/projects/{project_id}/policy-evaluations": {
7942
+ readonly method: "POST";
7943
+ readonly path: "/v1/projects/{project_id}/policy-evaluations";
7944
+ readonly operationId: "dryEvalPolicy";
7945
+ };
7293
7946
  readonly "GET /v1/projects": {
7294
7947
  readonly method: "GET";
7295
7948
  readonly path: "/v1/projects";
@@ -7456,6 +8109,10 @@ type ListAuditLogsParams = {
7456
8109
  pathParams: NonNullable<ListAuditLogsRequestConfig["pathParams"]>;
7457
8110
  queryParams?: NonNullable<ListAuditLogsRequestConfig["queryParams"]>;
7458
8111
  };
8112
+ type ExportAuditLogsParams = {
8113
+ pathParams: NonNullable<ExportAuditLogsRequestConfig["pathParams"]>;
8114
+ queryParams?: NonNullable<ExportAuditLogsRequestConfig["queryParams"]>;
8115
+ };
7459
8116
  type GetOrganizationPlanParams = {
7460
8117
  pathParams: NonNullable<GetOrganizationPlanRequestConfig["pathParams"]>;
7461
8118
  };
@@ -7503,6 +8160,12 @@ type DeleteDatabaseParams = {
7503
8160
  type TestDatabaseConnectionParams = {
7504
8161
  pathParams: NonNullable<TestDatabaseConnectionRequestConfig["pathParams"]>;
7505
8162
  };
8163
+ type ScanDatabaseForPiiParams = {
8164
+ pathParams: NonNullable<ScanDatabaseForPiiRequestConfig["pathParams"]>;
8165
+ };
8166
+ type GetSchemaCatalogParams = {
8167
+ pathParams: NonNullable<GetSchemaCatalogRequestConfig["pathParams"]>;
8168
+ };
7506
8169
  type ListCustomDomainsParams = {
7507
8170
  pathParams: NonNullable<ListCustomDomainsRequestConfig["pathParams"]>;
7508
8171
  queryParams?: NonNullable<ListCustomDomainsRequestConfig["queryParams"]>;
@@ -7550,6 +8213,10 @@ type UpdatePolicyProfileParams = {
7550
8213
  type DeletePolicyProfileParams = {
7551
8214
  pathParams: NonNullable<DeletePolicyProfileRequestConfig["pathParams"]>;
7552
8215
  };
8216
+ type DryEvalPolicyParams = {
8217
+ pathParams: NonNullable<DryEvalPolicyRequestConfig["pathParams"]>;
8218
+ body: NonNullable<DryEvalPolicyRequestConfig["data"]>;
8219
+ };
7553
8220
  type ListProjectsParams = {
7554
8221
  queryParams: NonNullable<ListProjectsRequestConfig["queryParams"]>;
7555
8222
  };
@@ -7645,6 +8312,7 @@ interface ApiOperations {
7645
8312
  revokeAgentCredential(params: RevokeAgentCredentialParams): Promise<void>;
7646
8313
  rotateAgentCredential(params: RotateAgentCredentialParams): Promise<RotateAgentCredentialStatus200>;
7647
8314
  listAuditLogs(params: ListAuditLogsParams): Promise<ListAuditLogsStatus200>;
8315
+ exportAuditLogs(params: ExportAuditLogsParams): Promise<ExportAuditLogsStatus200>;
7648
8316
  };
7649
8317
  anomalies: {
7650
8318
  listAnomalyAlerts(params: ListAnomalyAlertsParams): Promise<ListAnomalyAlertsStatus200>;
@@ -7692,6 +8360,8 @@ interface ApiOperations {
7692
8360
  updateDatabase(params: UpdateDatabaseParams): Promise<UpdateDatabaseStatus200>;
7693
8361
  deleteDatabase(params: DeleteDatabaseParams): Promise<void>;
7694
8362
  testDatabaseConnection(params: TestDatabaseConnectionParams): Promise<TestDatabaseConnectionStatus200>;
8363
+ scanDatabaseForPii(params: ScanDatabaseForPiiParams): Promise<ScanDatabaseForPiiStatus200>;
8364
+ getSchemaCatalog(params: GetSchemaCatalogParams): Promise<GetSchemaCatalogStatus200>;
7695
8365
  };
7696
8366
  platform: {
7697
8367
  getHealth(): Promise<GetHealthStatus200>;
@@ -7706,6 +8376,7 @@ interface ApiOperations {
7706
8376
  getPolicyProfile(params: GetPolicyProfileParams): Promise<GetPolicyProfileStatus200>;
7707
8377
  updatePolicyProfile(params: UpdatePolicyProfileParams): Promise<UpdatePolicyProfileStatus200>;
7708
8378
  deletePolicyProfile(params: DeletePolicyProfileParams): Promise<void>;
8379
+ dryEvalPolicy(params: DryEvalPolicyParams): Promise<DryEvalPolicyStatus200>;
7709
8380
  };
7710
8381
  support: {
7711
8382
  listSupportCases(params: ListSupportCasesParams): Promise<ListSupportCasesStatus200>;
@@ -7779,6 +8450,10 @@ interface RequestMap {
7779
8450
  params: ListAuditLogsParams;
7780
8451
  response: ListAuditLogsStatus200;
7781
8452
  };
8453
+ "GET /v1/projects/{project_id}/audit-logs/export": {
8454
+ params: ExportAuditLogsParams;
8455
+ response: ExportAuditLogsStatus200;
8456
+ };
7782
8457
  "GET /v1/plans": {
7783
8458
  params?: undefined;
7784
8459
  response: ListPlansStatus200;
@@ -7835,6 +8510,14 @@ interface RequestMap {
7835
8510
  params: TestDatabaseConnectionParams;
7836
8511
  response: TestDatabaseConnectionStatus200;
7837
8512
  };
8513
+ "POST /v1/projects/{project_id}/databases/{database_id}/scan-pii": {
8514
+ params: ScanDatabaseForPiiParams;
8515
+ response: ScanDatabaseForPiiStatus200;
8516
+ };
8517
+ "GET /v1/projects/{project_id}/databases/{database_id}/schema-catalog": {
8518
+ params: GetSchemaCatalogParams;
8519
+ response: GetSchemaCatalogStatus200;
8520
+ };
7838
8521
  "GET /v1/projects/{project_id}/domains": {
7839
8522
  params: ListCustomDomainsParams;
7840
8523
  response: ListCustomDomainsStatus200;
@@ -7891,6 +8574,10 @@ interface RequestMap {
7891
8574
  params: DeletePolicyProfileParams;
7892
8575
  response: void;
7893
8576
  };
8577
+ "POST /v1/projects/{project_id}/policy-evaluations": {
8578
+ params: DryEvalPolicyParams;
8579
+ response: DryEvalPolicyStatus200;
8580
+ };
7894
8581
  "GET /v1/projects": {
7895
8582
  params: ListProjectsParams;
7896
8583
  response: ListProjectsStatus200;