@blaxel/core 0.2.76 → 0.2.77

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.
@@ -256,7 +256,7 @@ const listDrives = (options) => {
256
256
  exports.listDrives = listDrives;
257
257
  /**
258
258
  * Create a drive
259
- * Creates a new drive in the workspace. Drives are backed by SeaweedFS buckets and can be mounted at runtime to sandboxes.
259
+ * Creates a new drive in the workspace. Drives can be buckets and can be mounted at runtime to sandboxes.
260
260
  */
261
261
  const createDrive = (options) => {
262
262
  return (options.client ?? client_gen_1.client).post({
@@ -332,7 +332,7 @@ const updateDrive = (options) => {
332
332
  exports.updateDrive = updateDrive;
333
333
  /**
334
334
  * Create drive access token
335
- * Issues a short-lived JWT access token scoped to a specific drive. The token can be used as Bearer authentication for direct S3 operations against the drive's SeaweedFS bucket.
335
+ * Issues a short-lived JWT access token scoped to a specific drive. The token can be used as Bearer authentication for direct S3 operations against the drive's bucket.
336
336
  */
337
337
  const createDriveAccessToken = (options) => {
338
338
  return (options.client ?? client_gen_1.client).post({
@@ -349,7 +349,7 @@ const createDriveAccessToken = (options) => {
349
349
  exports.createDriveAccessToken = createDriveAccessToken;
350
350
  /**
351
351
  * Get drive token JWKS
352
- * Returns the JSON Web Key Set containing the Ed25519 public key used to verify drive access tokens. SeaweedFS or other S3-compatible storage can use this endpoint to validate Bearer tokens.
352
+ * Returns the JSON Web Key Set containing the Ed25519 public key used to verify drive access tokens. Other S3-compatible storage can use this endpoint to validate Bearer tokens.
353
353
  */
354
354
  const getDriveJwks = (options) => {
355
355
  return (options?.client ?? client_gen_1.client).get({
@@ -9,8 +9,8 @@ const index_js_1 = require("../authentication/index.js");
9
9
  const env_js_1 = require("../common/env.js");
10
10
  const node_js_1 = require("../common/node.js");
11
11
  // Build info - these placeholders are replaced at build time by build:replace-imports
12
- const BUILD_VERSION = "0.2.76";
13
- const BUILD_COMMIT = "c20b61b130cca1692f6feaa2da8ad675f2aee770";
12
+ const BUILD_VERSION = "0.2.77";
13
+ const BUILD_COMMIT = "3d5932081fba211232402513e9765d0a776cd5d4";
14
14
  const BUILD_SENTRY_DSN = "https://fd5e60e1c9820e1eef5ccebb84a07127@o4508714045276160.ingest.us.sentry.io/4510465864564736";
15
15
  // Cache for config.yaml tracking value
16
16
  let configTrackingValue = null;
@@ -64,7 +64,16 @@ class SandboxDrive extends action_js_1.SandboxAction {
64
64
  throw new Error(`Failed to list drives: ${errorText}`);
65
65
  }
66
66
  const data = await response.json();
67
- return data.mounts || [];
67
+ console.log("[drives.list] raw response:", JSON.stringify(data));
68
+ // Normalise whichever shape the API returns
69
+ const raw = Array.isArray(data)
70
+ ? data
71
+ : (data?.mounts ?? data?.drives ?? data?.data ?? []);
72
+ return raw.map((m) => ({
73
+ driveName: m.driveName ?? m.drive_name ?? m.name ?? "",
74
+ mountPath: m.mountPath ?? m.mount_path ?? "",
75
+ drivePath: m.drivePath ?? m.drive_path ?? "/",
76
+ }));
68
77
  }
69
78
  }
70
79
  exports.SandboxDrive = SandboxDrive;
@@ -80,7 +80,7 @@ export declare const verifyCustomDomain: <ThrowOnError extends boolean = false>(
80
80
  export declare const listDrives: <ThrowOnError extends boolean = false>(options?: Options<ListDrivesData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").Drive[], unknown, ThrowOnError>;
81
81
  /**
82
82
  * Create a drive
83
- * Creates a new drive in the workspace. Drives are backed by SeaweedFS buckets and can be mounted at runtime to sandboxes.
83
+ * Creates a new drive in the workspace. Drives can be buckets and can be mounted at runtime to sandboxes.
84
84
  */
85
85
  export declare const createDrive: <ThrowOnError extends boolean = false>(options: Options<CreateDriveData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").Drive, unknown, ThrowOnError>;
86
86
  /**
@@ -103,7 +103,7 @@ export declare const getDrive: <ThrowOnError extends boolean = false>(options: O
103
103
  export declare const updateDrive: <ThrowOnError extends boolean = false>(options: Options<UpdateDriveData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").Drive, unknown, ThrowOnError>;
104
104
  /**
105
105
  * Create drive access token
106
- * Issues a short-lived JWT access token scoped to a specific drive. The token can be used as Bearer authentication for direct S3 operations against the drive's SeaweedFS bucket.
106
+ * Issues a short-lived JWT access token scoped to a specific drive. The token can be used as Bearer authentication for direct S3 operations against the drive's bucket.
107
107
  */
108
108
  export declare const createDriveAccessToken: <ThrowOnError extends boolean = false>(options: Options<CreateDriveAccessTokenData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<{
109
109
  access_token?: string;
@@ -112,7 +112,7 @@ export declare const createDriveAccessToken: <ThrowOnError extends boolean = fal
112
112
  }, unknown, ThrowOnError>;
113
113
  /**
114
114
  * Get drive token JWKS
115
- * Returns the JSON Web Key Set containing the Ed25519 public key used to verify drive access tokens. SeaweedFS or other S3-compatible storage can use this endpoint to validate Bearer tokens.
115
+ * Returns the JSON Web Key Set containing the Ed25519 public key used to verify drive access tokens. Other S3-compatible storage can use this endpoint to validate Bearer tokens.
116
116
  */
117
117
  export declare const getDriveJwks: <ThrowOnError extends boolean = false>(options?: Options<GetDriveJwksData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<{
118
118
  keys?: Array<{
@@ -58,10 +58,15 @@ export type AgentSpec = {
58
58
  * When true, the agent is publicly accessible without authentication. Only available for mk3 generation.
59
59
  */
60
60
  public?: boolean;
61
+ /**
62
+ * Region where the agent should be deployed (e.g. us-pdx-1, eu-lon-1). Required when volumes are attached.
63
+ */
64
+ region?: string;
61
65
  repository?: Repository;
62
66
  revision?: RevisionConfiguration;
63
67
  runtime?: AgentRuntime;
64
68
  triggers?: Triggers;
69
+ volumes?: VolumeAttachments;
65
70
  };
66
71
  /**
67
72
  * Configuration for an AI agent including runtime settings, repository source, and deployment triggers
@@ -76,10 +81,15 @@ export type AgentSpecWritable = {
76
81
  * When true, the agent is publicly accessible without authentication. Only available for mk3 generation.
77
82
  */
78
83
  public?: boolean;
84
+ /**
85
+ * Region where the agent should be deployed (e.g. us-pdx-1, eu-lon-1). Required when volumes are attached.
86
+ */
87
+ region?: string;
79
88
  repository?: Repository;
80
89
  revision?: RevisionConfiguration;
81
90
  runtime?: AgentRuntime;
82
91
  triggers?: TriggersWritable;
92
+ volumes?: VolumeAttachments;
83
93
  };
84
94
  /**
85
95
  * Long-lived API key for accessing Blaxel
@@ -415,7 +425,7 @@ export type CustomDomainSpecWritable = {
415
425
  };
416
426
  };
417
427
  /**
418
- * Drive providing persistent storage that can be attached to agents, functions, and sandboxes. Drives are backed by SeaweedFS buckets and can be mounted at runtime via the sbx API.
428
+ * Drive providing persistent storage that can be attached to agents, functions, and sandboxes. Drives can be mounted at runtime via the sbx API.
419
429
  */
420
430
  export type Drive = {
421
431
  events?: CoreEvents;
@@ -428,13 +438,13 @@ export type Drive = {
428
438
  readonly status?: string;
429
439
  };
430
440
  /**
431
- * Drive providing persistent storage that can be attached to agents, functions, and sandboxes. Drives are backed by SeaweedFS buckets and can be mounted at runtime via the sbx API.
441
+ * Drive providing persistent storage that can be attached to agents, functions, and sandboxes. Drives can be mounted at runtime via the sbx API.
432
442
  */
433
443
  export type DriveWritable = {
434
444
  events?: CoreEventsWritable;
435
445
  metadata: MetadataWritable;
436
446
  spec: DriveSpecWritable;
437
- state?: DriveState;
447
+ state?: DriveStateWritable;
438
448
  };
439
449
  /**
440
450
  * Immutable drive configuration set at creation time
@@ -475,6 +485,23 @@ export type DriveState = {
475
485
  */
476
486
  readonly s3Url?: string;
477
487
  };
488
+ /**
489
+ * Egress configuration for routing sandbox outbound traffic through a dedicated IP gateway
490
+ */
491
+ export type EgressConfig = {
492
+ /**
493
+ * Name of the egress gateway to route traffic through. The gateway must exist in the default VPC.
494
+ */
495
+ gateway?: string;
496
+ /**
497
+ * Egress mode. Use 'dedicated' for a dedicated egress IP.
498
+ */
499
+ mode?: string;
500
+ /**
501
+ * Per-destination egress policies (not yet supported)
502
+ */
503
+ policies?: Array<EgressPolicy>;
504
+ };
478
505
  /**
479
506
  * An egress gateway that manages outbound traffic routing within a VPC. Multiple egress IPs can be allocated from a single gateway.
480
507
  */
@@ -614,6 +641,23 @@ export type EgressIpSpecWritable = {
614
641
  */
615
642
  ipFamily: 'IPv4' | 'IPv6';
616
643
  };
644
+ /**
645
+ * Egress policy routing specific destinations through dedicated or shared gateways (not yet supported)
646
+ */
647
+ export type EgressPolicy = {
648
+ /**
649
+ * Destination domains or IPs this policy applies to
650
+ */
651
+ destinations?: Array<string>;
652
+ /**
653
+ * Egress mode for these destinations (dedicated or shared)
654
+ */
655
+ mode?: string;
656
+ /**
657
+ * Name of this egress policy
658
+ */
659
+ name?: string;
660
+ };
617
661
  /**
618
662
  * Entrypoint of the artifact
619
663
  */
@@ -792,6 +836,10 @@ export type FunctionSpec = {
792
836
  * When true, the function is publicly accessible without authentication. Only available for mk3 generation.
793
837
  */
794
838
  public?: boolean;
839
+ /**
840
+ * Region where the function should be deployed (e.g. us-pdx-1, eu-lon-1). If not specified, the function is deployed based on policy locations.
841
+ */
842
+ region?: string;
795
843
  revision?: RevisionConfiguration;
796
844
  runtime?: FunctionRuntime;
797
845
  triggers?: Triggers;
@@ -810,10 +858,27 @@ export type FunctionSpecWritable = {
810
858
  * When true, the function is publicly accessible without authentication. Only available for mk3 generation.
811
859
  */
812
860
  public?: boolean;
861
+ /**
862
+ * Region where the function should be deployed (e.g. us-pdx-1, eu-lon-1). If not specified, the function is deployed based on policy locations.
863
+ */
864
+ region?: string;
813
865
  revision?: RevisionConfiguration;
814
866
  runtime?: FunctionRuntime;
815
867
  triggers?: TriggersWritable;
816
868
  };
869
+ /**
870
+ * Mapping between an IdP group and a workspace role for directory sync
871
+ */
872
+ export type GroupWorkspaceMapping = {
873
+ /**
874
+ * Name of the IdP group (e.g. "Engineering", "Platform")
875
+ */
876
+ groupName?: string;
877
+ /**
878
+ * Role to assign in this workspace (admin or member)
879
+ */
880
+ role?: 'admin' | 'member';
881
+ };
817
882
  export type Image = {
818
883
  metadata: ImageMetadata;
819
884
  spec: ImageSpec;
@@ -1446,6 +1511,10 @@ export type JobExecutionTaskStatus = 'unspecified' | 'pending' | 'reconciling' |
1446
1511
  * Runtime configuration defining how batch job tasks are executed with parallelism and retry settings
1447
1512
  */
1448
1513
  export type JobRuntime = {
1514
+ /**
1515
+ * Percentage of VM RAM allocated for disk storage (tmpfs overlay). Valid range 10-95, default 50. Only applies to mk3.1 (microVM) generation.
1516
+ */
1517
+ diskPercent?: number;
1449
1518
  /**
1450
1519
  * Environment variables injected into job tasks. Supports Kubernetes EnvVar format with valueFrom references.
1451
1520
  */
@@ -1775,6 +1844,15 @@ export type ModelSpec = {
1775
1844
  */
1776
1845
  sandbox?: boolean;
1777
1846
  };
1847
+ /**
1848
+ * Firewall configuration restricting which external domains the sandbox can access
1849
+ */
1850
+ export type NetworkFirewall = {
1851
+ /**
1852
+ * List of allowed external domains. Supports wildcards (e.g. *.s3.amazonaws.com).
1853
+ */
1854
+ allowedDomains?: Array<string>;
1855
+ };
1778
1856
  /**
1779
1857
  * OAuth of the artifact
1780
1858
  */
@@ -1811,6 +1889,10 @@ export type PendingInvitation = TimeFields & OwnerFields & {
1811
1889
  * User email
1812
1890
  */
1813
1891
  email?: string;
1892
+ /**
1893
+ * The date and time when the invitation expires
1894
+ */
1895
+ expiresAt?: string;
1814
1896
  /**
1815
1897
  * User sub
1816
1898
  */
@@ -1832,6 +1914,10 @@ export type PendingInvitationWritable = TimeFields & OwnerFields & {
1832
1914
  * User email
1833
1915
  */
1834
1916
  email?: string;
1917
+ /**
1918
+ * The date and time when the invitation expires
1919
+ */
1920
+ expiresAt?: string;
1835
1921
  /**
1836
1922
  * User sub
1837
1923
  */
@@ -1873,6 +1959,10 @@ export type PendingInvitationRender = {
1873
1959
  * User email
1874
1960
  */
1875
1961
  email?: string;
1962
+ /**
1963
+ * The date and time when the invitation expires
1964
+ */
1965
+ expiresAt?: string;
1876
1966
  /**
1877
1967
  * Invitation date
1878
1968
  */
@@ -2273,6 +2363,46 @@ export type PrivateLocation = {
2273
2363
  */
2274
2364
  name?: string;
2275
2365
  };
2366
+ /**
2367
+ * Proxy configuration for routing sandbox HTTP traffic through the platform proxy with MITM inspection and per-destination header/body injection
2368
+ */
2369
+ export type ProxyConfig = {
2370
+ /**
2371
+ * Domains that bypass the proxy entirely via the NO_PROXY directive. Traffic to these destinations goes direct, not through the CONNECT tunnel. Supports wildcards. Note that localhost, private ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), 169.254.169.254, .local and .internal are always bypassed by default.
2372
+ */
2373
+ bypass?: Array<string>;
2374
+ /**
2375
+ * Per-destination routing rules with header/body injection and secrets. Use destinations ["*"] for global rules that apply to all destinations.
2376
+ */
2377
+ routing?: Array<ProxyTarget>;
2378
+ };
2379
+ /**
2380
+ * Routing rule that injects headers and body fields into requests matching the given destinations. Use destinations ["*"] for a global rule that applies to all proxied traffic.
2381
+ */
2382
+ export type ProxyTarget = {
2383
+ /**
2384
+ * Body fields to inject into matching requests. Values may contain {{SECRET:name}} references resolved from this rule's secrets.
2385
+ */
2386
+ body?: {
2387
+ [key: string]: string;
2388
+ };
2389
+ /**
2390
+ * Destination domains this rule applies to. Use ["*"] for a global rule that matches all destinations.
2391
+ */
2392
+ destinations?: Array<string>;
2393
+ /**
2394
+ * Headers to inject into matching requests. Values may contain {{SECRET:name}} references resolved from this rule's secrets.
2395
+ */
2396
+ headers?: {
2397
+ [key: string]: string;
2398
+ };
2399
+ /**
2400
+ * Named secret values for this routing rule, referenced in headers/body via {{SECRET:name}}. Stored encrypted at rest. Write-only: never returned in API responses.
2401
+ */
2402
+ secrets?: {
2403
+ [key: string]: string;
2404
+ };
2405
+ };
2276
2406
  export type PublicIp = {
2277
2407
  /**
2278
2408
  * Description of the region/location
@@ -2332,6 +2462,10 @@ export type Region = {
2332
2462
  * Region name
2333
2463
  */
2334
2464
  name?: string;
2465
+ /**
2466
+ * Proxy availability status - indicates if the proxy plane is configured for the region
2467
+ */
2468
+ proxyAvailable?: boolean;
2335
2469
  };
2336
2470
  /**
2337
2471
  * Repository
@@ -2429,6 +2563,118 @@ export type RevisionMetadataWritable = {
2429
2563
  */
2430
2564
  trafficPercent?: number;
2431
2565
  };
2566
+ /**
2567
+ * SSO domain for SAML-based Single Sign-On
2568
+ * An SSO domain links an email domain (e.g., acme.com) to a workspace so that
2569
+ * users with that email domain are redirected to the workspace's
2570
+ * SSO/SAML identity provider during login.
2571
+ */
2572
+ export type SsoDomain = {
2573
+ metadata: SsoDomainMetadata;
2574
+ spec: SsoDomainSpec;
2575
+ };
2576
+ /**
2577
+ * SSO domain for SAML-based Single Sign-On
2578
+ * An SSO domain links an email domain (e.g., acme.com) to a workspace so that
2579
+ * users with that email domain are redirected to the workspace's
2580
+ * SSO/SAML identity provider during login.
2581
+ */
2582
+ export type SsoDomainWritable = {
2583
+ metadata: SsoDomainMetadataWritable;
2584
+ spec: SsoDomainSpecWritable;
2585
+ };
2586
+ /**
2587
+ * SSO domain metadata
2588
+ */
2589
+ export type SsoDomainMetadata = TimeFields & OwnerFields & {
2590
+ /**
2591
+ * Account ID
2592
+ */
2593
+ accountId?: string;
2594
+ /**
2595
+ * Display name for the SSO domain
2596
+ */
2597
+ displayName?: string;
2598
+ /**
2599
+ * Domain name (e.g., "acme.com")
2600
+ */
2601
+ name?: string;
2602
+ };
2603
+ /**
2604
+ * SSO domain metadata
2605
+ */
2606
+ export type SsoDomainMetadataWritable = TimeFields & OwnerFields & {
2607
+ /**
2608
+ * Account ID
2609
+ */
2610
+ accountId?: string;
2611
+ /**
2612
+ * Display name for the SSO domain
2613
+ */
2614
+ displayName?: string;
2615
+ /**
2616
+ * Domain name (e.g., "acme.com")
2617
+ */
2618
+ name?: string;
2619
+ };
2620
+ /**
2621
+ * SSO domain specification
2622
+ */
2623
+ export type SsoDomainSpec = {
2624
+ /**
2625
+ * List of allowed login methods for this domain. When set, users with this email domain can only use the specified methods. Possible values are google, saml, email. Empty list means no restriction.
2626
+ */
2627
+ allowedAuthMethods?: Array<string>;
2628
+ /**
2629
+ * List of workspace names where users with this domain auto-join on login
2630
+ */
2631
+ autoJoinWorkspaces?: Array<string>;
2632
+ /**
2633
+ * The authentication method last used by a user with this domain (google, saml, email)
2634
+ */
2635
+ readonly lastUsedAuthMethod?: string;
2636
+ /**
2637
+ * Timestamp of when the last authentication method was used
2638
+ */
2639
+ readonly lastUsedAuthMethodAt?: string;
2640
+ /**
2641
+ * Last verification attempt timestamp
2642
+ */
2643
+ readonly lastVerifiedAt?: string;
2644
+ /**
2645
+ * Current verification status of the domain (pending, verified, failed)
2646
+ */
2647
+ status?: 'pending' | 'verified' | 'failed';
2648
+ /**
2649
+ * DNS TXT record name that must be created for verification
2650
+ */
2651
+ readonly txtRecordName?: string;
2652
+ /**
2653
+ * DNS TXT record value that must be set for verification
2654
+ */
2655
+ readonly txtRecordValue?: string;
2656
+ /**
2657
+ * Error message if verification failed
2658
+ */
2659
+ readonly verificationError?: string;
2660
+ };
2661
+ /**
2662
+ * SSO domain specification
2663
+ */
2664
+ export type SsoDomainSpecWritable = {
2665
+ /**
2666
+ * List of allowed login methods for this domain. When set, users with this email domain can only use the specified methods. Possible values are google, saml, email. Empty list means no restriction.
2667
+ */
2668
+ allowedAuthMethods?: Array<string>;
2669
+ /**
2670
+ * List of workspace names where users with this domain auto-join on login
2671
+ */
2672
+ autoJoinWorkspaces?: Array<string>;
2673
+ /**
2674
+ * Current verification status of the domain (pending, verified, failed)
2675
+ */
2676
+ status?: 'pending' | 'verified' | 'failed';
2677
+ };
2432
2678
  /**
2433
2679
  * Lightweight virtual machine for secure AI code execution. Sandboxes resume from standby in under 25ms and automatically scale to zero after inactivity, preserving memory state including running processes and filesystem.
2434
2680
  */
@@ -2562,19 +2808,25 @@ export type SandboxLifecycle = {
2562
2808
  * List of expiration policies. Multiple policies can be combined; whichever condition is met first triggers the action.
2563
2809
  */
2564
2810
  expirationPolicies?: Array<ExpirationPolicy>;
2811
+ /**
2812
+ * Duration to keep the sandbox record after termination for log access (e.g., '1h', '24h', '7d'). Defaults to 5m. Subject to maximum quota limits.
2813
+ */
2814
+ terminatedRetention?: string;
2565
2815
  };
2566
2816
  /**
2567
- * Network configuration for a sandbox including egress IP binding. All three fields (vpcName, egressGatewayName, egressIpName) must be specified together to assign a dedicated IP.
2817
+ * Network configuration for a sandbox including domain filtering, egress IP binding, and proxy settings
2568
2818
  */
2569
2819
  export type SandboxNetwork = {
2570
2820
  /**
2571
- * Name of the egress gateway in the VPC. Must be specified together with vpcName and egressIpName.
2821
+ * List of allowed external domains (allowlist). When set, only these domains are reachable. Supports wildcards (e.g. *.s3.amazonaws.com).
2572
2822
  */
2573
- egressGatewayName: string;
2823
+ allowedDomains?: Array<string>;
2824
+ egress?: EgressConfig;
2574
2825
  /**
2575
- * Name of the VPC where the egress gateway is provisioned. Must be specified together with egressGatewayName and egressIpName.
2826
+ * List of forbidden external domains (denylist). When set, all domains except these are reachable. Supports wildcards (e.g. *.malware.com). If both allowedDomains and forbiddenDomains are set, allowedDomains takes precedence.
2576
2827
  */
2577
- vpcName: string;
2828
+ forbiddenDomains?: Array<string>;
2829
+ proxy?: ProxyConfig;
2578
2830
  };
2579
2831
  /**
2580
2832
  * Runtime configuration defining how the sandbox VM is provisioned and its resource limits
@@ -3091,6 +3343,10 @@ export type Workspace = TimeFields & OwnerFields & {
3091
3343
  * Workspace display name
3092
3344
  */
3093
3345
  displayName?: string;
3346
+ /**
3347
+ * Group-to-role mappings for directory sync (SCIM) group membership
3348
+ */
3349
+ groupMappings?: Array<GroupWorkspaceMapping>;
3094
3350
  /**
3095
3351
  * Autogenerated unique workspace id
3096
3352
  */
@@ -3126,6 +3382,10 @@ export type WorkspaceWritable = TimeFields & OwnerFields & {
3126
3382
  * Workspace display name
3127
3383
  */
3128
3384
  displayName?: string;
3385
+ /**
3386
+ * Group-to-role mappings for directory sync (SCIM) group membership
3387
+ */
3388
+ groupMappings?: Array<GroupWorkspaceMapping>;
3129
3389
  labels?: MetadataLabels;
3130
3390
  /**
3131
3391
  * Workspace name
@@ -3166,6 +3426,10 @@ export type WorkspaceUser = {
3166
3426
  * Whether the user's email has been verified
3167
3427
  */
3168
3428
  email_verified?: boolean;
3429
+ /**
3430
+ * Whether the invitation has expired
3431
+ */
3432
+ expired?: boolean;
3169
3433
  /**
3170
3434
  * Workspace user family name
3171
3435
  */
@@ -3178,6 +3442,10 @@ export type WorkspaceUser = {
3178
3442
  * Workspace user role
3179
3443
  */
3180
3444
  role?: string;
3445
+ /**
3446
+ * Source of the user provisioning
3447
+ */
3448
+ source?: 'directory_sync' | 'invitation' | 'domain_capture';
3181
3449
  /**
3182
3450
  * Workspace user identifier
3183
3451
  */
@@ -3731,7 +3999,12 @@ export type TestFeatureFlagData = {
3731
3999
  */
3732
4000
  featureKey: string;
3733
4001
  };
3734
- query?: never;
4002
+ query?: {
4003
+ /**
4004
+ * Account ID to check feature flags for. When provided, evaluates the feature flag at the account level instead of the workspace level.
4005
+ */
4006
+ account?: string;
4007
+ };
3735
4008
  url: '/features/{featureKey}';
3736
4009
  };
3737
4010
  export type TestFeatureFlagErrors = {
@@ -6385,3 +6658,4 @@ export type CheckWorkspaceAvailabilityResponse = CheckWorkspaceAvailabilityRespo
6385
6658
  export type ClientOptions = {
6386
6659
  baseUrl: 'https://api.blaxel.ai/v0' | 'https://run.blaxel.ai' | (string & {});
6387
6660
  };
6661
+ export type DriveStateWritable = DriveState;