windmill-client 1.775.2 → 1.777.0

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.
@@ -1,3 +1,147 @@
1
+ export type AssetGraph = {
2
+ assets: Array<{
3
+ kind: AssetKind;
4
+ path: string;
5
+ /**
6
+ * Fork workspaces only — 'fork' when this ducklake asset was materialized in the fork itself, 'deferred' when reads fall back to the parent workspace's current table via a defer view. Omitted otherwise.
7
+ */
8
+ fork_materialization?: 'fork' | 'deferred';
9
+ dbt?: DbtAssetProvenance;
10
+ }>;
11
+ runnables: Array<{
12
+ path: string;
13
+ usage_kind: AssetUsageKind;
14
+ /**
15
+ * True iff the script is a pipeline member (deployed with `// pipeline`). Omitted when false.
16
+ */
17
+ in_pipeline?: boolean;
18
+ /**
19
+ * Macros this script provides to the workspace registry (deployed `// macros` library). Omitted when empty.
20
+ */
21
+ macros?: Array<{
22
+ name: string;
23
+ /**
24
+ * verbatim parameter list
25
+ */
26
+ params: string;
27
+ is_table: boolean;
28
+ }>;
29
+ /**
30
+ * Set on a `dbt` script, which owns a whole project rather than a single output. Omitted otherwise.
31
+ */
32
+ dbt?: {
33
+ model_count: number;
34
+ };
35
+ }>;
36
+ edges: Array<{
37
+ runnable_path: string;
38
+ runnable_kind: AssetUsageKind;
39
+ asset_kind: AssetKind;
40
+ asset_path: string;
41
+ access_type?: AssetUsageAccessType;
42
+ }>;
43
+ triggers: Array<({
44
+ trigger_kind: 'asset';
45
+ asset_kind: AssetKind;
46
+ asset_path: string;
47
+ runnable_kind: AssetUsageKind;
48
+ runnable_path: string;
49
+ } | {
50
+ trigger_kind: 'schedule' | 'email' | 'kafka' | 'mqtt' | 'nats' | 'postgres' | 'sqs' | 'gcp';
51
+ path: string;
52
+ runnable_kind: AssetUsageKind;
53
+ runnable_path: string;
54
+ })>;
55
+ /**
56
+ * Macro-library → consumer edges (deploy-recorded call detection plus `// use`). Omitted when empty.
57
+ */
58
+ macro_edges?: Array<{
59
+ lib_path: string;
60
+ consumer_path: string;
61
+ macro_names: Array<(string)>;
62
+ via_use: boolean;
63
+ }>;
64
+ /**
65
+ * Ordering-only "must-run-after" edges — a `// data_test relationships` (or custom test reading a pipeline asset) requires the referenced asset's producer to run before the tested script. Not a data-consumption edge; fed into the cascade topo-sort so cold runs order correctly. Omitted when empty.
66
+ */
67
+ test_edges?: Array<{
68
+ producer_kind: AssetUsageKind;
69
+ producer_path: string;
70
+ runnable_kind: AssetUsageKind;
71
+ runnable_path: string;
72
+ asset_kind: AssetKind;
73
+ asset_path: string;
74
+ }>;
75
+ /**
76
+ * `ref()` lineage BETWEEN two dbt models, in the terms the canvas draws — the relations, not dbt's node ids. Without it every model hangs off the one dbt runnable and the project reads as a flat fan-out. Omitted when empty.
77
+ */
78
+ dbt_edges?: Array<{
79
+ from_asset_path: string;
80
+ to_asset_path: string;
81
+ }>;
82
+ /**
83
+ * The job whose own snapshot the dbt half was resolved from, when one was asked for and found. A run page polls the graph while its job runs, because a dynamic descriptor's snapshot is written mid-run, and this is what tells it to stop. Omitted when the answer came from the version's deployed graph.
84
+ */
85
+ dbt_snapshot_job?: string;
86
+ /**
87
+ * When the dbt half on screen was parsed, for a graph pinned to a job. What the dbt editor labels its provenance with — "parsed from the editor at 14:32" against "as of last deploy" — since the two are drawn identically and the ambiguity would otherwise just move into the editor. Omitted for the unpinned workspace graph, which spans every project and so has no one time.
88
+ */
89
+ dbt_graph_ingested_at?: string;
90
+ };
91
+ /**
92
+ * What dbt says about the model, snapshot, seed or source that produces (or, for a source, is read at) this relation. A dbt project is one runnable node with many model assets, so per-model metadata belongs here rather than on the script.
93
+ */
94
+ export type DbtAssetProvenance = {
95
+ /**
96
+ * dbt's own node id, e.g. `model.jaffle_shop.customers`.
97
+ */
98
+ unique_id: string;
99
+ resource_type: 'model' | 'snapshot' | 'seed' | 'source';
100
+ /**
101
+ * dbt's own word (`table`, `view`, `incremental`, `snapshot`).
102
+ */
103
+ materialized?: string;
104
+ /**
105
+ * The Windmill write strategy it maps to, absent for `view` and `ephemeral`, which have none.
106
+ */
107
+ materialize_strategy?: string;
108
+ tags?: Array<(string)>;
109
+ description?: string;
110
+ data_tests?: Array<{
111
+ /**
112
+ * One of the four generic tests, or a package test's namespaced name (`dbt_utils.accepted_range`).
113
+ */
114
+ kind: string;
115
+ column?: string;
116
+ args?: {
117
+ [key: string]: unknown;
118
+ };
119
+ /**
120
+ * Lowercased. dbt's severity decides whether a failure fails the run.
121
+ */
122
+ severity?: string;
123
+ }>;
124
+ /**
125
+ * Declared column metadata (name -> description). NOT column lineage — `manifest.json` carries none.
126
+ */
127
+ columns?: {
128
+ [key: string]: unknown;
129
+ };
130
+ /**
131
+ * A source's declared freshness policy, for the staleness chip.
132
+ */
133
+ freshness?: {
134
+ [key: string]: unknown;
135
+ };
136
+ /**
137
+ * The model's SQL as written, at the deploy this graph belongs to. Omitted when the caller cannot read the script.
138
+ */
139
+ raw_code?: string;
140
+ /**
141
+ * Its path inside the dbt project, e.g. `models/staging/stg_orders.sql`.
142
+ */
143
+ original_file_path?: string;
144
+ };
1
145
  /**
2
146
  * Overlay fields added to every "get by path" response that accepts
3
147
  * the `get_draft` query parameter. The deployed payload is sent
@@ -70,9 +214,13 @@ export type OpenFlow = {
70
214
  [key: string]: unknown;
71
215
  };
72
216
  /**
73
- * The flow will be run with the permissions of the user with this email.
217
+ * Address of the account the flow runs on behalf of. Derived from on_behalf_of on read; accepted on write, where it is resolved to the account it names.
74
218
  */
75
219
  on_behalf_of_email?: string;
220
+ /**
221
+ * The flow runs with the permissions of this identity: u/{username}, g/{group}, or a bare email when the username is itself email-shaped. The only stored half of the identity; on_behalf_of_email is derived from it. Omit it when writing and it is resolved from that address instead.
222
+ */
223
+ on_behalf_of?: string;
76
224
  };
77
225
  /**
78
226
  * The flow structure containing modules and optional preprocessor/failure handlers
@@ -541,7 +689,7 @@ export type RawScript = {
541
689
  /**
542
690
  * Type of asset
543
691
  */
544
- kind: 's3object' | 'resource' | 'ducklake' | 'datatable' | 'volume';
692
+ kind: 's3object' | 'resource' | 'ducklake' | 'datatable' | 'volume' | 'dbt';
545
693
  /**
546
694
  * Access level for this asset
547
695
  */
@@ -1440,7 +1588,7 @@ export type EndpointTool = {
1440
1588
  } | null;
1441
1589
  };
1442
1590
  export type AIProvider = 'openai' | 'azure_openai' | 'azure_foundry' | 'anthropic' | 'mistral' | 'deepseek' | 'googleai' | 'groq' | 'openrouter' | 'togetherai' | 'aws_bedrock' | 'customai';
1443
- export type GitSyncObjectType = 'script' | 'flow' | 'app' | 'folder' | 'resource' | 'variable' | 'secret' | 'resourcetype' | 'schedule' | 'user' | 'group' | 'trigger' | 'settings' | 'key' | 'workspacedependencies';
1591
+ export type GitSyncObjectType = 'script' | 'flow' | 'app' | 'folder' | 'resource' | 'variable' | 'secret' | 'resourcetype' | 'schedule' | 'user' | 'group' | 'trigger' | 'settings' | 'key' | 'workspacedependencies' | 'datatablemigration';
1444
1592
  export type AIProviderModel = {
1445
1593
  model: string;
1446
1594
  provider: AIProvider;
@@ -1597,6 +1745,10 @@ export type Script = {
1597
1745
  codebase?: string;
1598
1746
  has_preprocessor: boolean;
1599
1747
  on_behalf_of_email?: string;
1748
+ /**
1749
+ * Authorization identity the runnable runs as: u/{username}, g/{group}, or a bare email when the username is itself email-shaped. The only stored half of the identity; on_behalf_of_email is derived from it.
1750
+ */
1751
+ on_behalf_of?: string;
1600
1752
  /**
1601
1753
  * Additional script modules keyed by relative file path
1602
1754
  */
@@ -1655,7 +1807,11 @@ export type NewScript = {
1655
1807
  has_preprocessor?: boolean;
1656
1808
  on_behalf_of_email?: string;
1657
1809
  /**
1658
- * When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of_email value instead of overwriting it.
1810
+ * Authorization identity to run as: u/{username}, g/{group}, or a bare email when the username is itself email-shaped. Supply this or on_behalf_of_email; when only the address is given it is resolved to the account it names, and an address naming nobody is rejected. A pair that disagrees is rejected.
1811
+ */
1812
+ on_behalf_of?: string;
1813
+ /**
1814
+ * When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of_email / on_behalf_of pair instead of overwriting it with the caller's own identity.
1659
1815
  */
1660
1816
  preserve_on_behalf_of?: boolean;
1661
1817
  assets?: Array<{
@@ -1747,6 +1903,7 @@ export type QueuedJob = {
1747
1903
  suspend?: number;
1748
1904
  preprocessed?: boolean;
1749
1905
  is_retry?: boolean;
1906
+ trigger_kind?: JobTriggerKind;
1750
1907
  worker?: string;
1751
1908
  };
1752
1909
  export type CompletedJob = {
@@ -1807,6 +1964,7 @@ export type CompletedJob = {
1807
1964
  * true when a succeeding retry resolved this rather than a person. Explicit rather than inferred from an absent resolved_by, which is also absent for a manual resolution outside enterprise
1808
1965
  */
1809
1966
  resolved_automatically?: boolean;
1967
+ trigger_kind?: JobTriggerKind;
1810
1968
  worker?: string;
1811
1969
  };
1812
1970
  /**
@@ -2300,7 +2458,7 @@ export type MainArgSignature = {
2300
2458
  auto_kind: string | null;
2301
2459
  has_preprocessor: boolean | null;
2302
2460
  };
2303
- export type ScriptLang = 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible' | 'csharp' | 'nu' | 'java' | 'ruby' | 'rlang' | 'duckdb' | 'bunnative';
2461
+ export type ScriptLang = 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible' | 'csharp' | 'nu' | 'java' | 'ruby' | 'rlang' | 'duckdb' | 'bunnative' | 'dbt';
2304
2462
  /**
2305
2463
  * An additional module file associated with a script
2306
2464
  */
@@ -2797,7 +2955,7 @@ export type EditSchedule = {
2797
2955
  /**
2798
2956
  * job trigger kind (schedule, http, websocket...)
2799
2957
  */
2800
- export type JobTriggerKind = 'webhook' | 'default_email' | 'email' | 'schedule' | 'http' | 'websocket' | 'postgres' | 'kafka' | 'nats' | 'mqtt' | 'amqp' | 'sqs' | 'gcp' | 'azure' | 'google' | 'github' | 'asset' | 'freshness' | 'app';
2958
+ export type JobTriggerKind = 'webhook' | 'default_email' | 'email' | 'schedule' | 'http' | 'websocket' | 'postgres' | 'kafka' | 'nats' | 'mqtt' | 'amqp' | 'sqs' | 'gcp' | 'azure' | 'google' | 'github' | 'asset' | 'freshness' | 'app' | 'ui';
2801
2959
  /**
2802
2960
  * job trigger mode
2803
2961
  */
@@ -4935,6 +5093,10 @@ export type FlowMetadata = {
4935
5093
  timeout?: number;
4936
5094
  visible_to_runner_only?: boolean;
4937
5095
  on_behalf_of_email?: string;
5096
+ /**
5097
+ * Authorization identity the runnable runs as: u/{username}, g/{group}, or a bare email when the username is itself email-shaped. The only stored half of the identity; on_behalf_of_email is derived from it.
5098
+ */
5099
+ on_behalf_of?: string;
4938
5100
  labels?: Array<(string)>;
4939
5101
  /**
4940
5102
  * Labels inherited from the parent folder, computed at read time. Read-only — edit them on the folder.
@@ -4952,7 +5114,11 @@ export type OpenFlowWPath = OpenFlow & {
4952
5114
  visible_to_runner_only?: boolean;
4953
5115
  on_behalf_of_email?: string;
4954
5116
  /**
4955
- * When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of_email value instead of overwriting it.
5117
+ * Authorization identity to run as: u/{username}, g/{group}, or a bare email when the username is itself email-shaped. Supply this or on_behalf_of_email; when only the address is given it is resolved to the account it names, and an address naming nobody is rejected. A pair that disagrees is rejected.
5118
+ */
5119
+ on_behalf_of?: string;
5120
+ /**
5121
+ * When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of_email / on_behalf_of pair instead of overwriting it with the caller's own identity.
4956
5122
  */
4957
5123
  preserve_on_behalf_of?: boolean;
4958
5124
  labels?: Array<(string)>;
@@ -4967,7 +5133,11 @@ export type EditFlow = OpenFlow & {
4967
5133
  visible_to_runner_only?: boolean;
4968
5134
  on_behalf_of_email?: string;
4969
5135
  /**
4970
- * When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of_email value instead of overwriting it.
5136
+ * Authorization identity to run as: u/{username}, g/{group}, or a bare email when the username is itself email-shaped. Supply this or on_behalf_of_email; when only the address is given it is resolved to the account it names, and an address naming nobody is rejected. A pair that disagrees is rejected.
5137
+ */
5138
+ on_behalf_of?: string;
5139
+ /**
5140
+ * When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of_email / on_behalf_of pair instead of overwriting it with the caller's own identity.
4971
5141
  */
4972
5142
  preserve_on_behalf_of?: boolean;
4973
5143
  labels?: Array<(string)>;
@@ -5179,6 +5349,22 @@ export type HubScriptKind = 'script' | 'failure' | 'trigger' | 'approval';
5179
5349
  export type PolarsClientKwargs = {
5180
5350
  region_name: string;
5181
5351
  };
5352
+ /**
5353
+ * Warehouses a dbt project may run against, by name. `main` is the one a project gets when its descriptor names none. Each entry points at a resource; it never holds credentials.
5354
+ */
5355
+ export type DbtWarehouses = {
5356
+ [key: string]: {
5357
+ resource_path: string;
5358
+ target?: string;
5359
+ };
5360
+ };
5361
+ export type DbtWarehouseConnection = {
5362
+ /**
5363
+ * the resolved resource, rendered into profiles.yml
5364
+ */
5365
+ value: unknown;
5366
+ target?: string;
5367
+ };
5182
5368
  export type LargeFileStorage = {
5183
5369
  type?: 'S3Storage' | 'AzureBlobStorage' | 'AzureWorkloadIdentity' | 'S3AwsOidc' | 'GoogleCloudStorage';
5184
5370
  s3_resource_path?: string;
@@ -5414,6 +5600,7 @@ export type AutoPullSettings = {
5414
5600
  sync_forks?: boolean;
5415
5601
  webhook_id?: number;
5416
5602
  webhook_secret?: string;
5603
+ webhook_url?: string;
5417
5604
  webhook_error?: string;
5418
5605
  last_synced_sha?: {
5419
5606
  [key: string]: (string);
@@ -5628,6 +5815,10 @@ export type WorkspaceComparison = {
5628
5815
  * Behind items excluded from `diffs` because they are not visible to the caller
5629
5816
  */
5630
5817
  hidden_behind: HiddenItemsSummary;
5818
+ /**
5819
+ * For a pair outside the fork lineage, when its candidate set was last seeded by an explicit full scan. Absent when the pair has never been scanned (an empty `diffs` then says nothing about whether the workspaces agree) or when the pair is a lineage pair, which the tally keeps current.
5820
+ */
5821
+ full_scan_at?: string;
5631
5822
  };
5632
5823
  export type HiddenItemsSummary = {
5633
5824
  /**
@@ -5834,7 +6025,14 @@ export type TeamsChannel = {
5834
6025
  };
5835
6026
  export type AssetUsageKind = 'script' | 'flow' | 'job';
5836
6027
  export type AssetUsageAccessType = 'r' | 'w' | 'rw';
5837
- export type AssetKind = 's3object' | 'resource' | 'ducklake' | 'datatable' | 'volume';
6028
+ export type AssetKind = 's3object' | 'resource' | 'ducklake' | 'datatable' | 'volume' | 'dbt';
6029
+ export type AssetProgress = {
6030
+ asset_kind: AssetKind;
6031
+ asset_path: string;
6032
+ status: 'running' | 'materialized' | 'failed';
6033
+ row_count?: number | null;
6034
+ error?: string | null;
6035
+ };
5838
6036
  export type MaterializedPartition = {
5839
6037
  asset_kind: AssetKind;
5840
6038
  asset_path: string;
@@ -7296,6 +7494,20 @@ export type CompareWorkspacesData = {
7296
7494
  workspace: string;
7297
7495
  };
7298
7496
  export type CompareWorkspacesResponse = WorkspaceComparison;
7497
+ export type SeedFullDiffScanData = {
7498
+ /**
7499
+ * The ID of the workspace to compare with
7500
+ */
7501
+ targetWorkspaceId: string;
7502
+ workspace: string;
7503
+ };
7504
+ export type SeedFullDiffScanResponse = {
7505
+ /**
7506
+ * Number of candidate items the comparison will evaluate
7507
+ */
7508
+ candidates: number;
7509
+ scanned_at: string;
7510
+ };
7299
7511
  export type ResetDiffTallyData = {
7300
7512
  /**
7301
7513
  * The ID of the workspace to compare with
@@ -7341,12 +7553,12 @@ export type GetSettingsResponse = {
7341
7553
  plan?: string;
7342
7554
  customer_id?: string;
7343
7555
  webhook?: string;
7344
- deploy_to?: string;
7345
7556
  ai_config?: AIConfig;
7346
7557
  error_handler?: ErrorHandlerConfig;
7347
7558
  success_handler?: SuccessHandlerConfig;
7348
7559
  large_file_storage?: LargeFileStorage;
7349
7560
  ducklake?: DucklakeSettings;
7561
+ dbt_warehouses?: DbtWarehouses;
7350
7562
  datatable?: DataTableSettings;
7351
7563
  git_sync?: WorkspaceGitSyncSettings;
7352
7564
  deploy_ui?: WorkspaceDeployUISettings;
@@ -7580,13 +7792,6 @@ export type RunTeamsMessageTestJobData = {
7580
7792
  export type RunTeamsMessageTestJobResponse = {
7581
7793
  job_uuid?: string;
7582
7794
  };
7583
- export type EditDeployToData = {
7584
- requestBody: {
7585
- deploy_to?: string;
7586
- };
7587
- workspace: string;
7588
- };
7589
- export type EditDeployToResponse = string;
7590
7795
  export type EditAutoInviteData = {
7591
7796
  /**
7592
7797
  * WorkspaceInvite
@@ -7673,6 +7878,16 @@ export type EditLargeFileStorageConfigData = {
7673
7878
  workspace: string;
7674
7879
  };
7675
7880
  export type EditLargeFileStorageConfigResponse = unknown;
7881
+ export type EditDbtWarehousesData = {
7882
+ /**
7883
+ * dbt warehouses, by name
7884
+ */
7885
+ requestBody: {
7886
+ dbt_warehouses?: DbtWarehouses;
7887
+ };
7888
+ workspace: string;
7889
+ };
7890
+ export type EditDbtWarehousesResponse = unknown;
7676
7891
  export type ListDucklakesData = {
7677
7892
  workspace: string;
7678
7893
  };
@@ -8516,6 +8731,11 @@ export type TestMetadataData = {
8516
8731
  };
8517
8732
  export type TestMetadataResponse = string;
8518
8733
  export type ListGlobalSettingsResponse = Array<GlobalSetting>;
8734
+ export type GithubAppStaleWebhooksResponse = Array<{
8735
+ workspace_id: string;
8736
+ git_repo_resource_path: string;
8737
+ registered_url?: string | null;
8738
+ }>;
8519
8739
  export type GetInstanceConfigResponse = InstanceConfig;
8520
8740
  export type SetInstanceConfigData = {
8521
8741
  /**
@@ -8652,6 +8872,26 @@ export type SetPublicAppRateLimitData = {
8652
8872
  workspace: string;
8653
8873
  };
8654
8874
  export type SetPublicAppRateLimitResponse = string;
8875
+ export type RecordDbtRunProgressData = {
8876
+ requestBody: Array<{
8877
+ asset_path: string;
8878
+ status: string;
8879
+ row_count?: number;
8880
+ error?: string;
8881
+ }>;
8882
+ workspace: string;
8883
+ };
8884
+ export type RecordDbtRunProgressResponse = unknown;
8885
+ export type GetDbtWarehouseData = {
8886
+ name: string;
8887
+ workspace: string;
8888
+ };
8889
+ export type GetDbtWarehouseResponse = DbtWarehouseConnection;
8890
+ export type DbtWarehouseExistsData = {
8891
+ name: string;
8892
+ workspace: string;
8893
+ };
8894
+ export type DbtWarehouseExistsResponse = unknown;
8655
8895
  export type ListDataMetricsData = {
8656
8896
  cursorKind?: string;
8657
8897
  cursorName?: string;
@@ -12701,7 +12941,7 @@ export type ListDispatchEventsData = {
12701
12941
  };
12702
12942
  export type ListDispatchEventsResponse = Array<{
12703
12943
  subscriber_path: string;
12704
- asset_kind: 's3object' | 'resource' | 'variable' | 'ducklake' | 'datatable' | 'volume';
12944
+ asset_kind: 's3object' | 'resource' | 'variable' | 'ducklake' | 'datatable' | 'volume' | 'dbt';
12705
12945
  asset_path: string;
12706
12946
  outcome: 'dispatched' | 'join_pending' | 'skipped';
12707
12947
  child_job_id?: string;
@@ -12731,7 +12971,7 @@ export type ListAssetDispatchEdgesResponse = Array<{
12731
12971
  child_job_id?: string;
12732
12972
  subscriber_path: string;
12733
12973
  outcome: 'dispatched' | 'join_pending';
12734
- asset_kind: 's3object' | 'resource' | 'variable' | 'ducklake' | 'datatable' | 'volume';
12974
+ asset_kind: 's3object' | 'resource' | 'variable' | 'ducklake' | 'datatable' | 'volume' | 'dbt';
12735
12975
  asset_path: string;
12736
12976
  created_at: string;
12737
12977
  }>;
@@ -13153,6 +13393,48 @@ export type ListExtendedJobsData = {
13153
13393
  workspace: string;
13154
13394
  };
13155
13395
  export type ListExtendedJobsResponse = ExtendedJobs;
13396
+ export type GetDbtResumableData = {
13397
+ /**
13398
+ * The job whose script and principal decide the saved failure
13399
+ */
13400
+ id: string;
13401
+ workspace: string;
13402
+ };
13403
+ export type GetDbtResumableResponse = string | null;
13404
+ export type GetDbtResumableForScriptData = {
13405
+ path: string;
13406
+ workspace: string;
13407
+ };
13408
+ export type GetDbtResumableForScriptResponse = string | null;
13409
+ export type GetDbtRunGraphData = {
13410
+ /**
13411
+ * Filter by asset kinds (comma-separated list)
13412
+ */
13413
+ assetKinds?: string;
13414
+ /**
13415
+ * Fallback only, for a job that names no deployed script — a preview or a flow. For a script job the version comes from the job row itself, so this is ignored: which deploy's models, SQL and `ref()` lineage are shown is not the caller's to choose.
13416
+ *
13417
+ */
13418
+ dbtScriptHash?: string;
13419
+ /**
13420
+ * Scope the graph to runnables in a single folder
13421
+ */
13422
+ folder?: string;
13423
+ /**
13424
+ * The job whose graph to render
13425
+ */
13426
+ id: string;
13427
+ workspace: string;
13428
+ };
13429
+ export type GetDbtRunGraphResponse = AssetGraph;
13430
+ export type GetRunProgressData = {
13431
+ /**
13432
+ * The job whose per-relation progress to read
13433
+ */
13434
+ id: string;
13435
+ workspace: string;
13436
+ };
13437
+ export type GetRunProgressResponse = Array<AssetProgress>;
13156
13438
  export type ListFlowConversationsData = {
13157
13439
  /**
13158
13440
  * filter conversations by flow path
@@ -16033,80 +16315,18 @@ export type GetAssetsGraphData = {
16033
16315
  * Filter by asset kinds (comma-separated list)
16034
16316
  */
16035
16317
  assetKinds?: string;
16318
+ /**
16319
+ * Render the dbt half of the graph as one version of a dbt script had it, rather than as the currently deployed one. Given this, `folder` no longer scopes the dbt nodes: the pinned version's own models and lineage are the answer, including models a later deploy removed.
16320
+ *
16321
+ */
16322
+ dbtScriptHash?: string;
16036
16323
  /**
16037
16324
  * Scope the graph to runnables in a single folder
16038
16325
  */
16039
16326
  folder?: string;
16040
16327
  workspace: string;
16041
16328
  };
16042
- export type GetAssetsGraphResponse = {
16043
- assets: Array<{
16044
- kind: AssetKind;
16045
- path: string;
16046
- /**
16047
- * Fork workspaces only — 'fork' when this ducklake asset was materialized in the fork itself, 'deferred' when reads fall back to the parent workspace's current table via a defer view. Omitted otherwise.
16048
- */
16049
- fork_materialization?: 'fork' | 'deferred';
16050
- }>;
16051
- runnables: Array<{
16052
- path: string;
16053
- usage_kind: AssetUsageKind;
16054
- /**
16055
- * True iff the script is a pipeline member (deployed with `// pipeline`). Omitted when false.
16056
- */
16057
- in_pipeline?: boolean;
16058
- /**
16059
- * Macros this script provides to the workspace registry (deployed `// macros` library). Omitted when empty.
16060
- */
16061
- macros?: Array<{
16062
- name: string;
16063
- /**
16064
- * verbatim parameter list
16065
- */
16066
- params: string;
16067
- is_table: boolean;
16068
- }>;
16069
- }>;
16070
- edges: Array<{
16071
- runnable_path: string;
16072
- runnable_kind: AssetUsageKind;
16073
- asset_kind: AssetKind;
16074
- asset_path: string;
16075
- access_type?: AssetUsageAccessType;
16076
- }>;
16077
- triggers: Array<({
16078
- trigger_kind: 'asset';
16079
- asset_kind: AssetKind;
16080
- asset_path: string;
16081
- runnable_kind: AssetUsageKind;
16082
- runnable_path: string;
16083
- } | {
16084
- trigger_kind: 'schedule' | 'email' | 'kafka' | 'mqtt' | 'nats' | 'postgres' | 'sqs' | 'gcp';
16085
- path: string;
16086
- runnable_kind: AssetUsageKind;
16087
- runnable_path: string;
16088
- })>;
16089
- /**
16090
- * Macro-library → consumer edges (deploy-recorded call detection plus `// use`). Omitted when empty.
16091
- */
16092
- macro_edges?: Array<{
16093
- lib_path: string;
16094
- consumer_path: string;
16095
- macro_names: Array<(string)>;
16096
- via_use: boolean;
16097
- }>;
16098
- /**
16099
- * Ordering-only "must-run-after" edges — a `// data_test relationships` (or custom test reading a pipeline asset) requires the referenced asset's producer to run before the tested script. Not a data-consumption edge; fed into the cascade topo-sort so cold runs order correctly. Omitted when empty.
16100
- */
16101
- test_edges?: Array<{
16102
- producer_kind: AssetUsageKind;
16103
- producer_path: string;
16104
- runnable_kind: AssetUsageKind;
16105
- runnable_path: string;
16106
- asset_kind: AssetKind;
16107
- asset_path: string;
16108
- }>;
16109
- };
16329
+ export type GetAssetsGraphResponse = AssetGraph;
16110
16330
  export type ListWorkspaceMacrosData = {
16111
16331
  workspace: string;
16112
16332
  };
@@ -18181,6 +18401,29 @@ export type $OpenApiTs = {
18181
18401
  };
18182
18402
  };
18183
18403
  };
18404
+ '/w/{workspace}/workspaces/seed_full_diff/{target_workspace_id}': {
18405
+ post: {
18406
+ req: {
18407
+ /**
18408
+ * The ID of the workspace to compare with
18409
+ */
18410
+ targetWorkspaceId: string;
18411
+ workspace: string;
18412
+ };
18413
+ res: {
18414
+ /**
18415
+ * Scan seeded
18416
+ */
18417
+ 200: {
18418
+ /**
18419
+ * Number of candidate items the comparison will evaluate
18420
+ */
18421
+ candidates: number;
18422
+ scanned_at: string;
18423
+ };
18424
+ };
18425
+ };
18426
+ };
18184
18427
  '/w/{workspace}/workspaces/reset_diff_tally/{fork_workspace_id}': {
18185
18428
  post: {
18186
18429
  req: {
@@ -18259,12 +18502,12 @@ export type $OpenApiTs = {
18259
18502
  plan?: string;
18260
18503
  customer_id?: string;
18261
18504
  webhook?: string;
18262
- deploy_to?: string;
18263
18505
  ai_config?: AIConfig;
18264
18506
  error_handler?: ErrorHandlerConfig;
18265
18507
  success_handler?: SuccessHandlerConfig;
18266
18508
  large_file_storage?: LargeFileStorage;
18267
18509
  ducklake?: DucklakeSettings;
18510
+ dbt_warehouses?: DbtWarehouses;
18268
18511
  datatable?: DataTableSettings;
18269
18512
  git_sync?: WorkspaceGitSyncSettings;
18270
18513
  deploy_ui?: WorkspaceDeployUISettings;
@@ -18684,22 +18927,6 @@ export type $OpenApiTs = {
18684
18927
  };
18685
18928
  };
18686
18929
  };
18687
- '/w/{workspace}/workspaces/edit_deploy_to': {
18688
- post: {
18689
- req: {
18690
- requestBody: {
18691
- deploy_to?: string;
18692
- };
18693
- workspace: string;
18694
- };
18695
- res: {
18696
- /**
18697
- * status
18698
- */
18699
- 200: string;
18700
- };
18701
- };
18702
- };
18703
18930
  '/w/{workspace}/workspaces/edit_auto_invite': {
18704
18931
  post: {
18705
18932
  req: {
@@ -18867,6 +19094,25 @@ export type $OpenApiTs = {
18867
19094
  };
18868
19095
  };
18869
19096
  };
19097
+ '/w/{workspace}/workspaces/edit_dbt_warehouses': {
19098
+ post: {
19099
+ req: {
19100
+ /**
19101
+ * dbt warehouses, by name
19102
+ */
19103
+ requestBody: {
19104
+ dbt_warehouses?: DbtWarehouses;
19105
+ };
19106
+ workspace: string;
19107
+ };
19108
+ res: {
19109
+ /**
19110
+ * status
19111
+ */
19112
+ 200: unknown;
19113
+ };
19114
+ };
19115
+ };
18870
19116
  '/w/{workspace}/workspaces/list_ducklakes': {
18871
19117
  get: {
18872
19118
  req: {
@@ -20577,6 +20823,20 @@ export type $OpenApiTs = {
20577
20823
  };
20578
20824
  };
20579
20825
  };
20826
+ '/settings/github_app_stale_webhooks': {
20827
+ get: {
20828
+ res: {
20829
+ /**
20830
+ * repositories needing their git sync settings re-saved
20831
+ */
20832
+ 200: Array<{
20833
+ workspace_id: string;
20834
+ git_repo_resource_path: string;
20835
+ registered_url?: string | null;
20836
+ }>;
20837
+ };
20838
+ };
20839
+ };
20580
20840
  '/settings/instance_config': {
20581
20841
  get: {
20582
20842
  res: {
@@ -20882,6 +21142,53 @@ export type $OpenApiTs = {
20882
21142
  };
20883
21143
  };
20884
21144
  };
21145
+ '/w/{workspace}/dbt/run_progress': {
21146
+ post: {
21147
+ req: {
21148
+ requestBody: Array<{
21149
+ asset_path: string;
21150
+ status: string;
21151
+ row_count?: number;
21152
+ error?: string;
21153
+ }>;
21154
+ workspace: string;
21155
+ };
21156
+ res: {
21157
+ /**
21158
+ * recorded
21159
+ */
21160
+ 200: unknown;
21161
+ };
21162
+ };
21163
+ };
21164
+ '/w/{workspace}/dbt/warehouse/{name}': {
21165
+ get: {
21166
+ req: {
21167
+ name: string;
21168
+ workspace: string;
21169
+ };
21170
+ res: {
21171
+ /**
21172
+ * the connection the warehouse names
21173
+ */
21174
+ 200: DbtWarehouseConnection;
21175
+ };
21176
+ };
21177
+ };
21178
+ '/w/{workspace}/dbt/warehouse_exists/{name}': {
21179
+ get: {
21180
+ req: {
21181
+ name: string;
21182
+ workspace: string;
21183
+ };
21184
+ res: {
21185
+ /**
21186
+ * the warehouse is configured
21187
+ */
21188
+ 200: unknown;
21189
+ };
21190
+ };
21191
+ };
20885
21192
  '/w/{workspace}/data_metrics/list': {
20886
21193
  get: {
20887
21194
  req: {
@@ -27062,7 +27369,7 @@ export type $OpenApiTs = {
27062
27369
  */
27063
27370
  200: Array<{
27064
27371
  subscriber_path: string;
27065
- asset_kind: 's3object' | 'resource' | 'variable' | 'ducklake' | 'datatable' | 'volume';
27372
+ asset_kind: 's3object' | 'resource' | 'variable' | 'ducklake' | 'datatable' | 'volume' | 'dbt';
27066
27373
  asset_path: string;
27067
27374
  outcome: 'dispatched' | 'join_pending' | 'skipped';
27068
27375
  child_job_id?: string;
@@ -27101,7 +27408,7 @@ export type $OpenApiTs = {
27101
27408
  child_job_id?: string;
27102
27409
  subscriber_path: string;
27103
27410
  outcome: 'dispatched' | 'join_pending';
27104
- asset_kind: 's3object' | 'resource' | 'variable' | 'ducklake' | 'datatable' | 'volume';
27411
+ asset_kind: 's3object' | 'resource' | 'variable' | 'ducklake' | 'datatable' | 'volume' | 'dbt';
27105
27412
  asset_path: string;
27106
27413
  created_at: string;
27107
27414
  }>;
@@ -27736,6 +28043,84 @@ export type $OpenApiTs = {
27736
28043
  };
27737
28044
  };
27738
28045
  };
28046
+ '/w/{workspace}/jobs/dbt_resumable/{id}': {
28047
+ get: {
28048
+ req: {
28049
+ /**
28050
+ * The job whose script and principal decide the saved failure
28051
+ */
28052
+ id: string;
28053
+ workspace: string;
28054
+ };
28055
+ res: {
28056
+ /**
28057
+ * this job's id when a retry would resume it, or null
28058
+ */
28059
+ 200: string | null;
28060
+ };
28061
+ };
28062
+ };
28063
+ '/w/{workspace}/jobs/dbt_resumable_script/p/{path}': {
28064
+ get: {
28065
+ req: {
28066
+ path: string;
28067
+ workspace: string;
28068
+ };
28069
+ res: {
28070
+ /**
28071
+ * the job id a retry would resume, or null
28072
+ */
28073
+ 200: string | null;
28074
+ };
28075
+ };
28076
+ };
28077
+ '/w/{workspace}/jobs/dbt_graph/{id}': {
28078
+ get: {
28079
+ req: {
28080
+ /**
28081
+ * Filter by asset kinds (comma-separated list)
28082
+ */
28083
+ assetKinds?: string;
28084
+ /**
28085
+ * Fallback only, for a job that names no deployed script — a preview or a flow. For a script job the version comes from the job row itself, so this is ignored: which deploy's models, SQL and `ref()` lineage are shown is not the caller's to choose.
28086
+ *
28087
+ */
28088
+ dbtScriptHash?: string;
28089
+ /**
28090
+ * Scope the graph to runnables in a single folder
28091
+ */
28092
+ folder?: string;
28093
+ /**
28094
+ * The job whose graph to render
28095
+ */
28096
+ id: string;
28097
+ workspace: string;
28098
+ };
28099
+ res: {
28100
+ /**
28101
+ * asset graph nodes, lineage edges and trigger edges
28102
+ */
28103
+ 200: AssetGraph;
28104
+ };
28105
+ };
28106
+ };
28107
+ '/w/{workspace}/jobs/run_progress/{id}': {
28108
+ get: {
28109
+ req: {
28110
+ /**
28111
+ * The job whose per-relation progress to read
28112
+ */
28113
+ id: string;
28114
+ workspace: string;
28115
+ };
28116
+ res: {
28117
+ /**
28118
+ * per-relation status for this run
28119
+ */
28120
+ 200: Array<AssetProgress>;
28121
+ };
28122
+ };
28123
+ };
27739
28124
  '/w/{workspace}/flow_conversations/list': {
27740
28125
  get: {
27741
28126
  req: {
@@ -32913,6 +33298,11 @@ export type $OpenApiTs = {
32913
33298
  * Filter by asset kinds (comma-separated list)
32914
33299
  */
32915
33300
  assetKinds?: string;
33301
+ /**
33302
+ * Render the dbt half of the graph as one version of a dbt script had it, rather than as the currently deployed one. Given this, `folder` no longer scopes the dbt nodes: the pinned version's own models and lineage are the answer, including models a later deploy removed.
33303
+ *
33304
+ */
33305
+ dbtScriptHash?: string;
32916
33306
  /**
32917
33307
  * Scope the graph to runnables in a single folder
32918
33308
  */
@@ -32923,74 +33313,7 @@ export type $OpenApiTs = {
32923
33313
  /**
32924
33314
  * asset graph nodes, lineage edges and trigger edges
32925
33315
  */
32926
- 200: {
32927
- assets: Array<{
32928
- kind: AssetKind;
32929
- path: string;
32930
- /**
32931
- * Fork workspaces only — 'fork' when this ducklake asset was materialized in the fork itself, 'deferred' when reads fall back to the parent workspace's current table via a defer view. Omitted otherwise.
32932
- */
32933
- fork_materialization?: 'fork' | 'deferred';
32934
- }>;
32935
- runnables: Array<{
32936
- path: string;
32937
- usage_kind: AssetUsageKind;
32938
- /**
32939
- * True iff the script is a pipeline member (deployed with `// pipeline`). Omitted when false.
32940
- */
32941
- in_pipeline?: boolean;
32942
- /**
32943
- * Macros this script provides to the workspace registry (deployed `// macros` library). Omitted when empty.
32944
- */
32945
- macros?: Array<{
32946
- name: string;
32947
- /**
32948
- * verbatim parameter list
32949
- */
32950
- params: string;
32951
- is_table: boolean;
32952
- }>;
32953
- }>;
32954
- edges: Array<{
32955
- runnable_path: string;
32956
- runnable_kind: AssetUsageKind;
32957
- asset_kind: AssetKind;
32958
- asset_path: string;
32959
- access_type?: AssetUsageAccessType;
32960
- }>;
32961
- triggers: Array<({
32962
- trigger_kind: 'asset';
32963
- asset_kind: AssetKind;
32964
- asset_path: string;
32965
- runnable_kind: AssetUsageKind;
32966
- runnable_path: string;
32967
- } | {
32968
- trigger_kind: 'schedule' | 'email' | 'kafka' | 'mqtt' | 'nats' | 'postgres' | 'sqs' | 'gcp';
32969
- path: string;
32970
- runnable_kind: AssetUsageKind;
32971
- runnable_path: string;
32972
- })>;
32973
- /**
32974
- * Macro-library → consumer edges (deploy-recorded call detection plus `// use`). Omitted when empty.
32975
- */
32976
- macro_edges?: Array<{
32977
- lib_path: string;
32978
- consumer_path: string;
32979
- macro_names: Array<(string)>;
32980
- via_use: boolean;
32981
- }>;
32982
- /**
32983
- * Ordering-only "must-run-after" edges — a `// data_test relationships` (or custom test reading a pipeline asset) requires the referenced asset's producer to run before the tested script. Not a data-consumption edge; fed into the cascade topo-sort so cold runs order correctly. Omitted when empty.
32984
- */
32985
- test_edges?: Array<{
32986
- producer_kind: AssetUsageKind;
32987
- producer_path: string;
32988
- runnable_kind: AssetUsageKind;
32989
- runnable_path: string;
32990
- asset_kind: AssetKind;
32991
- asset_path: string;
32992
- }>;
32993
- };
33316
+ 200: AssetGraph;
32994
33317
  };
32995
33318
  };
32996
33319
  };