@malloydata/db-publisher 0.0.381 → 0.0.382
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/api.d.ts +1762 -406
- package/dist/client/api.js +1190 -152
- package/dist/client/api.js.map +1 -1
- package/dist/publisher_connection.js +4 -2
- package/dist/publisher_connection.js.map +1 -1
- package/dist/publisher_connection.unit.spec.js +13 -4
- package/dist/publisher_connection.unit.spec.js.map +1 -1
- package/package.json +2 -2
- package/publisher-api-doc.yaml +1095 -91
- package/src/client/api.ts +2938 -1042
- package/src/publisher_connection.ts +5 -4
- package/src/publisher_connection.unit.spec.ts +13 -8
package/publisher-api-doc.yaml
CHANGED
|
@@ -38,11 +38,14 @@ tags:
|
|
|
38
38
|
- name: publisher
|
|
39
39
|
description: Publisher status and health check operations
|
|
40
40
|
- name: projects
|
|
41
|
-
description: Project lifecycle management including creation, configuration, and
|
|
41
|
+
description: Project lifecycle management including creation, configuration, and
|
|
42
|
+
deletion of data modeling projects
|
|
42
43
|
- name: connections
|
|
43
|
-
description: Database connection management for secure data source configuration
|
|
44
|
+
description: Database connection management for secure data source configuration
|
|
45
|
+
and access
|
|
44
46
|
- name: packages
|
|
45
|
-
description: Package management for Malloy data models, including versioning and
|
|
47
|
+
description: Package management for Malloy data models, including versioning and
|
|
48
|
+
distribution
|
|
46
49
|
- name: models
|
|
47
50
|
description: Malloy model access and compilation operations
|
|
48
51
|
- name: notebooks
|
|
@@ -51,6 +54,10 @@ tags:
|
|
|
51
54
|
description: Embedded database management and access
|
|
52
55
|
- name: watch-mode
|
|
53
56
|
description: Real-time file watching for development workflows
|
|
57
|
+
- name: materializations
|
|
58
|
+
description: Package-level materializations for persisting Malloy sources
|
|
59
|
+
- name: manifests
|
|
60
|
+
description: Build manifest management for tracking materialized source tables
|
|
54
61
|
|
|
55
62
|
paths:
|
|
56
63
|
/status:
|
|
@@ -70,6 +77,8 @@ paths:
|
|
|
70
77
|
application/json:
|
|
71
78
|
schema:
|
|
72
79
|
$ref: "#/components/schemas/ServerStatus"
|
|
80
|
+
"503":
|
|
81
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
73
82
|
|
|
74
83
|
/projects:
|
|
75
84
|
get:
|
|
@@ -94,6 +103,8 @@ paths:
|
|
|
94
103
|
$ref: "#/components/responses/Unauthorized"
|
|
95
104
|
"500":
|
|
96
105
|
$ref: "#/components/responses/InternalServerError"
|
|
106
|
+
"503":
|
|
107
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
97
108
|
post:
|
|
98
109
|
tags:
|
|
99
110
|
- projects
|
|
@@ -120,6 +131,8 @@ paths:
|
|
|
120
131
|
$ref: "#/components/responses/Unauthorized"
|
|
121
132
|
"500":
|
|
122
133
|
$ref: "#/components/responses/InternalServerError"
|
|
134
|
+
"503":
|
|
135
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
123
136
|
|
|
124
137
|
/projects/{projectName}:
|
|
125
138
|
get:
|
|
@@ -157,6 +170,8 @@ paths:
|
|
|
157
170
|
$ref: "#/components/responses/NotFound"
|
|
158
171
|
"500":
|
|
159
172
|
$ref: "#/components/responses/InternalServerError"
|
|
173
|
+
"503":
|
|
174
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
160
175
|
patch:
|
|
161
176
|
tags:
|
|
162
177
|
- projects
|
|
@@ -190,6 +205,8 @@ paths:
|
|
|
190
205
|
$ref: "#/components/responses/Unauthorized"
|
|
191
206
|
"500":
|
|
192
207
|
$ref: "#/components/responses/InternalServerError"
|
|
208
|
+
"503":
|
|
209
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
193
210
|
delete:
|
|
194
211
|
tags:
|
|
195
212
|
- projects
|
|
@@ -219,6 +236,8 @@ paths:
|
|
|
219
236
|
$ref: "#/components/responses/NotFound"
|
|
220
237
|
"500":
|
|
221
238
|
$ref: "#/components/responses/InternalServerError"
|
|
239
|
+
"503":
|
|
240
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
222
241
|
|
|
223
242
|
/projects/{projectName}/connections:
|
|
224
243
|
get:
|
|
@@ -250,6 +269,8 @@ paths:
|
|
|
250
269
|
$ref: "#/components/responses/Unauthorized"
|
|
251
270
|
"500":
|
|
252
271
|
$ref: "#/components/responses/InternalServerError"
|
|
272
|
+
"503":
|
|
273
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
253
274
|
|
|
254
275
|
/projects/{projectName}/connections/{connectionName}:
|
|
255
276
|
get:
|
|
@@ -287,6 +308,164 @@ paths:
|
|
|
287
308
|
$ref: "#/components/responses/NotFound"
|
|
288
309
|
"500":
|
|
289
310
|
$ref: "#/components/responses/InternalServerError"
|
|
311
|
+
"503":
|
|
312
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
313
|
+
post:
|
|
314
|
+
tags:
|
|
315
|
+
- connections
|
|
316
|
+
operationId: create-connection
|
|
317
|
+
summary: Create a new database connection
|
|
318
|
+
description: |
|
|
319
|
+
Creates a new database connection in the specified project.
|
|
320
|
+
parameters:
|
|
321
|
+
- name: projectName
|
|
322
|
+
in: path
|
|
323
|
+
description: Name of the project
|
|
324
|
+
required: true
|
|
325
|
+
schema:
|
|
326
|
+
$ref: "#/components/schemas/IdentifierPattern"
|
|
327
|
+
- name: connectionName
|
|
328
|
+
in: path
|
|
329
|
+
description: Name of the connection
|
|
330
|
+
required: true
|
|
331
|
+
schema:
|
|
332
|
+
$ref: "#/components/schemas/IdentifierPattern"
|
|
333
|
+
requestBody:
|
|
334
|
+
required: true
|
|
335
|
+
content:
|
|
336
|
+
application/json:
|
|
337
|
+
schema:
|
|
338
|
+
$ref: "#/components/schemas/Connection"
|
|
339
|
+
responses:
|
|
340
|
+
"201":
|
|
341
|
+
description: Connection created successfully
|
|
342
|
+
content:
|
|
343
|
+
application/json:
|
|
344
|
+
schema:
|
|
345
|
+
type: object
|
|
346
|
+
properties:
|
|
347
|
+
message:
|
|
348
|
+
type: string
|
|
349
|
+
"400":
|
|
350
|
+
$ref: "#/components/responses/BadRequest"
|
|
351
|
+
"404":
|
|
352
|
+
$ref: "#/components/responses/NotFound"
|
|
353
|
+
"409":
|
|
354
|
+
description: Connection already exists
|
|
355
|
+
content:
|
|
356
|
+
application/json:
|
|
357
|
+
schema:
|
|
358
|
+
type: object
|
|
359
|
+
properties:
|
|
360
|
+
error:
|
|
361
|
+
type: string
|
|
362
|
+
"401":
|
|
363
|
+
$ref: "#/components/responses/Unauthorized"
|
|
364
|
+
"500":
|
|
365
|
+
$ref: "#/components/responses/InternalServerError"
|
|
366
|
+
"503":
|
|
367
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
368
|
+
patch:
|
|
369
|
+
tags:
|
|
370
|
+
- connections
|
|
371
|
+
operationId: update-connection
|
|
372
|
+
summary: Update an existing database connection
|
|
373
|
+
description: |
|
|
374
|
+
Updates the configuration of an existing database connection.
|
|
375
|
+
parameters:
|
|
376
|
+
- name: projectName
|
|
377
|
+
in: path
|
|
378
|
+
description: Name of the project
|
|
379
|
+
required: true
|
|
380
|
+
schema:
|
|
381
|
+
$ref: "#/components/schemas/IdentifierPattern"
|
|
382
|
+
- name: connectionName
|
|
383
|
+
in: path
|
|
384
|
+
description: Name of the connection to update
|
|
385
|
+
required: true
|
|
386
|
+
schema:
|
|
387
|
+
$ref: "#/components/schemas/IdentifierPattern"
|
|
388
|
+
requestBody:
|
|
389
|
+
required: true
|
|
390
|
+
content:
|
|
391
|
+
application/json:
|
|
392
|
+
schema:
|
|
393
|
+
type: object
|
|
394
|
+
properties:
|
|
395
|
+
postgresConnection:
|
|
396
|
+
$ref: "#/components/schemas/PostgresConnection"
|
|
397
|
+
mysqlConnection:
|
|
398
|
+
$ref: "#/components/schemas/MysqlConnection"
|
|
399
|
+
bigqueryConnection:
|
|
400
|
+
$ref: "#/components/schemas/BigqueryConnection"
|
|
401
|
+
snowflakeConnection:
|
|
402
|
+
$ref: "#/components/schemas/SnowflakeConnection"
|
|
403
|
+
duckdbConnection:
|
|
404
|
+
$ref: "#/components/schemas/DuckdbConnection"
|
|
405
|
+
motherduckConnection:
|
|
406
|
+
$ref: "#/components/schemas/MotherDuckConnection"
|
|
407
|
+
trinoConnection:
|
|
408
|
+
$ref: "#/components/schemas/TrinoConnection"
|
|
409
|
+
ducklakeConnection:
|
|
410
|
+
$ref: "#/components/schemas/DucklakeConnection"
|
|
411
|
+
responses:
|
|
412
|
+
"200":
|
|
413
|
+
description: Connection updated successfully
|
|
414
|
+
content:
|
|
415
|
+
application/json:
|
|
416
|
+
schema:
|
|
417
|
+
type: object
|
|
418
|
+
properties:
|
|
419
|
+
message:
|
|
420
|
+
type: string
|
|
421
|
+
"400":
|
|
422
|
+
$ref: "#/components/responses/BadRequest"
|
|
423
|
+
"404":
|
|
424
|
+
$ref: "#/components/responses/NotFound"
|
|
425
|
+
"401":
|
|
426
|
+
$ref: "#/components/responses/Unauthorized"
|
|
427
|
+
"500":
|
|
428
|
+
$ref: "#/components/responses/InternalServerError"
|
|
429
|
+
"503":
|
|
430
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
431
|
+
delete:
|
|
432
|
+
tags:
|
|
433
|
+
- connections
|
|
434
|
+
operationId: delete-connection
|
|
435
|
+
summary: Delete a database connection
|
|
436
|
+
description: |
|
|
437
|
+
Permanently deletes a database connection from the project.
|
|
438
|
+
parameters:
|
|
439
|
+
- name: projectName
|
|
440
|
+
in: path
|
|
441
|
+
description: Name of the project
|
|
442
|
+
required: true
|
|
443
|
+
schema:
|
|
444
|
+
$ref: "#/components/schemas/IdentifierPattern"
|
|
445
|
+
- name: connectionName
|
|
446
|
+
in: path
|
|
447
|
+
description: Name of the connection to delete
|
|
448
|
+
required: true
|
|
449
|
+
schema:
|
|
450
|
+
$ref: "#/components/schemas/IdentifierPattern"
|
|
451
|
+
responses:
|
|
452
|
+
"200":
|
|
453
|
+
description: Connection deleted successfully
|
|
454
|
+
content:
|
|
455
|
+
application/json:
|
|
456
|
+
schema:
|
|
457
|
+
type: object
|
|
458
|
+
properties:
|
|
459
|
+
message:
|
|
460
|
+
type: string
|
|
461
|
+
"404":
|
|
462
|
+
$ref: "#/components/responses/NotFound"
|
|
463
|
+
"401":
|
|
464
|
+
$ref: "#/components/responses/Unauthorized"
|
|
465
|
+
"500":
|
|
466
|
+
$ref: "#/components/responses/InternalServerError"
|
|
467
|
+
"503":
|
|
468
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
290
469
|
|
|
291
470
|
/projects/{projectName}/connections/{connectionName}/schemas:
|
|
292
471
|
get:
|
|
@@ -326,6 +505,8 @@ paths:
|
|
|
326
505
|
$ref: "#/components/responses/NotFound"
|
|
327
506
|
"500":
|
|
328
507
|
$ref: "#/components/responses/InternalServerError"
|
|
508
|
+
"503":
|
|
509
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
329
510
|
|
|
330
511
|
/projects/{projectName}/connections/{connectionName}/schemas/{schemaName}/tables:
|
|
331
512
|
get:
|
|
@@ -356,6 +537,16 @@ paths:
|
|
|
356
537
|
required: true
|
|
357
538
|
schema:
|
|
358
539
|
$ref: "#/components/schemas/IdentifierPattern"
|
|
540
|
+
- name: tableNames
|
|
541
|
+
in: query
|
|
542
|
+
description: |
|
|
543
|
+
List of table names to filter results. When provided, only returns metadata
|
|
544
|
+
for the specified tables. When omitted, returns all tables in the schema.
|
|
545
|
+
required: false
|
|
546
|
+
schema:
|
|
547
|
+
type: array
|
|
548
|
+
items:
|
|
549
|
+
type: string
|
|
359
550
|
responses:
|
|
360
551
|
"200":
|
|
361
552
|
description: A list of table names available in the specified schema
|
|
@@ -371,6 +562,8 @@ paths:
|
|
|
371
562
|
$ref: "#/components/responses/NotFound"
|
|
372
563
|
"500":
|
|
373
564
|
$ref: "#/components/responses/InternalServerError"
|
|
565
|
+
"503":
|
|
566
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
374
567
|
|
|
375
568
|
/projects/{projectName}/connections/{connectionName}/schemas/{schemaName}/tables/{tablePath}:
|
|
376
569
|
get:
|
|
@@ -421,6 +614,8 @@ paths:
|
|
|
421
614
|
$ref: "#/components/responses/NotFound"
|
|
422
615
|
"500":
|
|
423
616
|
$ref: "#/components/responses/InternalServerError"
|
|
617
|
+
"503":
|
|
618
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
424
619
|
|
|
425
620
|
# TODO: Remove this endpoint.
|
|
426
621
|
/projects/{projectName}/connections/{connectionName}/sqlSource:
|
|
@@ -468,6 +663,8 @@ paths:
|
|
|
468
663
|
$ref: "#/components/responses/NotFound"
|
|
469
664
|
"500":
|
|
470
665
|
$ref: "#/components/responses/InternalServerError"
|
|
666
|
+
"503":
|
|
667
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
471
668
|
|
|
472
669
|
post:
|
|
473
670
|
tags:
|
|
@@ -513,6 +710,8 @@ paths:
|
|
|
513
710
|
$ref: "#/components/responses/NotFound"
|
|
514
711
|
"500":
|
|
515
712
|
$ref: "#/components/responses/InternalServerError"
|
|
713
|
+
"503":
|
|
714
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
516
715
|
|
|
517
716
|
/projects/{projectName}/connections/{connectionName}/sqlQuery:
|
|
518
717
|
post:
|
|
@@ -536,12 +735,6 @@ paths:
|
|
|
536
735
|
required: true
|
|
537
736
|
schema:
|
|
538
737
|
$ref: "#/components/schemas/IdentifierPattern"
|
|
539
|
-
- name: options
|
|
540
|
-
in: query
|
|
541
|
-
description: Options
|
|
542
|
-
required: false
|
|
543
|
-
schema:
|
|
544
|
-
type: string
|
|
545
738
|
requestBody:
|
|
546
739
|
description: SQL statement to execute
|
|
547
740
|
required: true
|
|
@@ -552,6 +745,9 @@ paths:
|
|
|
552
745
|
properties:
|
|
553
746
|
sqlStatement:
|
|
554
747
|
type: string
|
|
748
|
+
options:
|
|
749
|
+
type: string
|
|
750
|
+
description: Options
|
|
555
751
|
responses:
|
|
556
752
|
"200":
|
|
557
753
|
description: Query execution results
|
|
@@ -565,6 +761,9 @@ paths:
|
|
|
565
761
|
$ref: "#/components/responses/NotFound"
|
|
566
762
|
"500":
|
|
567
763
|
$ref: "#/components/responses/InternalServerError"
|
|
764
|
+
"503":
|
|
765
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
766
|
+
|
|
568
767
|
/projects/{projectName}/connections/{connectionName}/sqlTemporaryTable:
|
|
569
768
|
post:
|
|
570
769
|
tags:
|
|
@@ -610,6 +809,8 @@ paths:
|
|
|
610
809
|
$ref: "#/components/responses/NotFound"
|
|
611
810
|
"500":
|
|
612
811
|
$ref: "#/components/responses/InternalServerError"
|
|
812
|
+
"503":
|
|
813
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
613
814
|
|
|
614
815
|
# TODO: Remove this endpoint.
|
|
615
816
|
/projects/{projectName}/connections/{connectionName}/temporaryTable:
|
|
@@ -657,57 +858,8 @@ paths:
|
|
|
657
858
|
$ref: "#/components/responses/NotFound"
|
|
658
859
|
"500":
|
|
659
860
|
$ref: "#/components/responses/InternalServerError"
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
/projects/{projectName}/connections/{connectionName}/tableSource:
|
|
663
|
-
get:
|
|
664
|
-
tags:
|
|
665
|
-
- connections
|
|
666
|
-
operationId: get-tablesource
|
|
667
|
-
summary: Get table source information
|
|
668
|
-
deprecated: true
|
|
669
|
-
description: |
|
|
670
|
-
Retrieves information about a specific table or view from the database connection.
|
|
671
|
-
This includes table schema, column definitions, and metadata. The table can be specified
|
|
672
|
-
by either tableKey or tablePath parameters, depending on the database type.
|
|
673
|
-
parameters:
|
|
674
|
-
- name: projectName
|
|
675
|
-
in: path
|
|
676
|
-
description: Name of the project
|
|
677
|
-
required: true
|
|
678
|
-
schema:
|
|
679
|
-
$ref: "#/components/schemas/IdentifierPattern"
|
|
680
|
-
- name: connectionName
|
|
681
|
-
in: path
|
|
682
|
-
description: Name of the connection
|
|
683
|
-
required: true
|
|
684
|
-
schema:
|
|
685
|
-
$ref: "#/components/schemas/IdentifierPattern"
|
|
686
|
-
- name: tableKey
|
|
687
|
-
in: query
|
|
688
|
-
description: Table key
|
|
689
|
-
required: false
|
|
690
|
-
schema:
|
|
691
|
-
type: string
|
|
692
|
-
- name: tablePath
|
|
693
|
-
in: query
|
|
694
|
-
description: Table path
|
|
695
|
-
required: false
|
|
696
|
-
schema:
|
|
697
|
-
type: string
|
|
698
|
-
responses:
|
|
699
|
-
"200":
|
|
700
|
-
description: Table source information
|
|
701
|
-
content:
|
|
702
|
-
application/json:
|
|
703
|
-
schema:
|
|
704
|
-
$ref: "#/components/schemas/TableSource"
|
|
705
|
-
"401":
|
|
706
|
-
$ref: "#/components/responses/Unauthorized"
|
|
707
|
-
"404":
|
|
708
|
-
$ref: "#/components/responses/NotFound"
|
|
709
|
-
"500":
|
|
710
|
-
$ref: "#/components/responses/InternalServerError"
|
|
861
|
+
"503":
|
|
862
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
711
863
|
|
|
712
864
|
# TODO: Remove this endpoint.
|
|
713
865
|
/projects/{projectName}/connections/{connectionName}/queryData:
|
|
@@ -794,6 +946,8 @@ paths:
|
|
|
794
946
|
$ref: "#/components/responses/InternalServerError"
|
|
795
947
|
"501":
|
|
796
948
|
$ref: "#/components/responses/NotImplemented"
|
|
949
|
+
"503":
|
|
950
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
797
951
|
post:
|
|
798
952
|
tags:
|
|
799
953
|
- packages
|
|
@@ -810,6 +964,16 @@ paths:
|
|
|
810
964
|
required: true
|
|
811
965
|
schema:
|
|
812
966
|
$ref: "#/components/schemas/IdentifierPattern"
|
|
967
|
+
- name: autoLoadManifest
|
|
968
|
+
in: query
|
|
969
|
+
description: |
|
|
970
|
+
When true, automatically loads any existing build manifest
|
|
971
|
+
for the package so materialized table references resolve immediately.
|
|
972
|
+
Defaults to false.
|
|
973
|
+
required: false
|
|
974
|
+
schema:
|
|
975
|
+
type: boolean
|
|
976
|
+
default: false
|
|
813
977
|
requestBody:
|
|
814
978
|
required: true
|
|
815
979
|
content:
|
|
@@ -829,6 +993,8 @@ paths:
|
|
|
829
993
|
$ref: "#/components/responses/InternalServerError"
|
|
830
994
|
"501":
|
|
831
995
|
$ref: "#/components/responses/NotImplemented"
|
|
996
|
+
"503":
|
|
997
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
832
998
|
|
|
833
999
|
/projects/{projectName}/packages/{packageName}:
|
|
834
1000
|
get:
|
|
@@ -881,6 +1047,8 @@ paths:
|
|
|
881
1047
|
$ref: "#/components/responses/InternalServerError"
|
|
882
1048
|
"501":
|
|
883
1049
|
$ref: "#/components/responses/NotImplemented"
|
|
1050
|
+
"503":
|
|
1051
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
884
1052
|
patch:
|
|
885
1053
|
tags:
|
|
886
1054
|
- packages
|
|
@@ -924,6 +1092,8 @@ paths:
|
|
|
924
1092
|
$ref: "#/components/responses/InternalServerError"
|
|
925
1093
|
"501":
|
|
926
1094
|
$ref: "#/components/responses/NotImplemented"
|
|
1095
|
+
"503":
|
|
1096
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
927
1097
|
delete:
|
|
928
1098
|
tags:
|
|
929
1099
|
- packages
|
|
@@ -961,6 +1131,8 @@ paths:
|
|
|
961
1131
|
$ref: "#/components/responses/InternalServerError"
|
|
962
1132
|
"501":
|
|
963
1133
|
$ref: "#/components/responses/NotImplemented"
|
|
1134
|
+
"503":
|
|
1135
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
964
1136
|
|
|
965
1137
|
/projects/{projectName}/packages/{packageName}/models:
|
|
966
1138
|
get:
|
|
@@ -1008,6 +1180,8 @@ paths:
|
|
|
1008
1180
|
$ref: "#/components/responses/InternalServerError"
|
|
1009
1181
|
"501":
|
|
1010
1182
|
$ref: "#/components/responses/NotImplemented"
|
|
1183
|
+
"503":
|
|
1184
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
1011
1185
|
|
|
1012
1186
|
/projects/{projectName}/packages/{packageName}/models/{path}:
|
|
1013
1187
|
get:
|
|
@@ -1115,6 +1289,62 @@ paths:
|
|
|
1115
1289
|
$ref: "#/components/responses/InternalServerError"
|
|
1116
1290
|
"501":
|
|
1117
1291
|
$ref: "#/components/responses/NotImplemented"
|
|
1292
|
+
"503":
|
|
1293
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
1294
|
+
|
|
1295
|
+
/projects/{projectName}/packages/{packageName}/models/{path}/compile:
|
|
1296
|
+
post:
|
|
1297
|
+
tags:
|
|
1298
|
+
- models
|
|
1299
|
+
operationId: compile-model-source
|
|
1300
|
+
summary: Compile Malloy source code
|
|
1301
|
+
description: |
|
|
1302
|
+
Compiles Malloy source code in the context of a specific model file.
|
|
1303
|
+
The submitted source is appended to the full model content, giving it
|
|
1304
|
+
access to all sources, imports, and queries defined in the model.
|
|
1305
|
+
Relative imports resolve correctly against sibling model files.
|
|
1306
|
+
Returns compilation status and any problems (errors or warnings) found.
|
|
1307
|
+
parameters:
|
|
1308
|
+
- name: projectName
|
|
1309
|
+
in: path
|
|
1310
|
+
description: Name of the project
|
|
1311
|
+
required: true
|
|
1312
|
+
schema:
|
|
1313
|
+
$ref: "#/components/schemas/IdentifierPattern"
|
|
1314
|
+
- name: packageName
|
|
1315
|
+
in: path
|
|
1316
|
+
description: Name of the package
|
|
1317
|
+
required: true
|
|
1318
|
+
schema:
|
|
1319
|
+
type: string
|
|
1320
|
+
- name: path
|
|
1321
|
+
in: path
|
|
1322
|
+
description: Path to the model within the package (used to resolve relative
|
|
1323
|
+
imports)
|
|
1324
|
+
required: true
|
|
1325
|
+
schema:
|
|
1326
|
+
$ref: "#/components/schemas/PathPattern"
|
|
1327
|
+
requestBody:
|
|
1328
|
+
required: true
|
|
1329
|
+
content:
|
|
1330
|
+
application/json:
|
|
1331
|
+
schema:
|
|
1332
|
+
$ref: "#/components/schemas/CompileRequest"
|
|
1333
|
+
responses:
|
|
1334
|
+
"200":
|
|
1335
|
+
description: Compilation result with status and any problems
|
|
1336
|
+
content:
|
|
1337
|
+
application/json:
|
|
1338
|
+
schema:
|
|
1339
|
+
$ref: "#/components/schemas/CompileResult"
|
|
1340
|
+
"400":
|
|
1341
|
+
$ref: "#/components/responses/BadRequest"
|
|
1342
|
+
"404":
|
|
1343
|
+
$ref: "#/components/responses/NotFound"
|
|
1344
|
+
"500":
|
|
1345
|
+
$ref: "#/components/responses/InternalServerError"
|
|
1346
|
+
"503":
|
|
1347
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
1118
1348
|
|
|
1119
1349
|
/projects/{projectName}/packages/{packageName}/notebooks:
|
|
1120
1350
|
get:
|
|
@@ -1162,19 +1392,18 @@ paths:
|
|
|
1162
1392
|
$ref: "#/components/responses/InternalServerError"
|
|
1163
1393
|
"501":
|
|
1164
1394
|
$ref: "#/components/responses/NotImplemented"
|
|
1395
|
+
"503":
|
|
1396
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
1165
1397
|
|
|
1166
|
-
# TODO: Notebooks should return the notebook file content, not the compiled notebook. The front end shoould
|
|
1167
|
-
# run the individual notebook cells against the backend.
|
|
1168
1398
|
/projects/{projectName}/packages/{packageName}/notebooks/{path}:
|
|
1169
1399
|
get:
|
|
1170
1400
|
tags:
|
|
1171
1401
|
- notebooks
|
|
1172
1402
|
operationId: get-notebook
|
|
1173
|
-
summary: Get
|
|
1403
|
+
summary: Get Malloy notebook cells
|
|
1174
1404
|
description: |
|
|
1175
|
-
Retrieves a
|
|
1176
|
-
|
|
1177
|
-
access to the notebook's structure, cells, and execution results for use in applications.
|
|
1405
|
+
Retrieves a Malloy notebook with its raw cell contents (markdown and code).
|
|
1406
|
+
Cell execution should be done separately via the execute-notebook-cell endpoint.
|
|
1178
1407
|
parameters:
|
|
1179
1408
|
- name: projectName
|
|
1180
1409
|
in: path
|
|
@@ -1202,11 +1431,11 @@ paths:
|
|
|
1202
1431
|
$ref: "#/components/schemas/VersionIdPattern"
|
|
1203
1432
|
responses:
|
|
1204
1433
|
"200":
|
|
1205
|
-
description: A Malloy notebook.
|
|
1434
|
+
description: A Malloy notebook with raw cell contents.
|
|
1206
1435
|
content:
|
|
1207
1436
|
"application/json":
|
|
1208
1437
|
schema:
|
|
1209
|
-
$ref: "#/components/schemas/
|
|
1438
|
+
$ref: "#/components/schemas/RawNotebook"
|
|
1210
1439
|
"401":
|
|
1211
1440
|
$ref: "#/components/responses/Unauthorized"
|
|
1212
1441
|
"404":
|
|
@@ -1216,6 +1445,82 @@ paths:
|
|
|
1216
1445
|
"501":
|
|
1217
1446
|
$ref: "#/components/responses/NotImplemented"
|
|
1218
1447
|
|
|
1448
|
+
/projects/{projectName}/packages/{packageName}/notebooks/{path}/cells/{cellIndex}:
|
|
1449
|
+
get:
|
|
1450
|
+
tags:
|
|
1451
|
+
- notebooks
|
|
1452
|
+
operationId: execute-notebook-cell
|
|
1453
|
+
summary: Execute a specific notebook cell
|
|
1454
|
+
description: |
|
|
1455
|
+
Executes a specific cell in a Malloy notebook by index. For code cells, this compiles
|
|
1456
|
+
and runs the Malloy code, returning query results and any new sources defined.
|
|
1457
|
+
For markdown cells, this simply returns the cell content.
|
|
1458
|
+
parameters:
|
|
1459
|
+
- name: projectName
|
|
1460
|
+
in: path
|
|
1461
|
+
description: Name of the project
|
|
1462
|
+
required: true
|
|
1463
|
+
schema:
|
|
1464
|
+
$ref: "#/components/schemas/IdentifierPattern"
|
|
1465
|
+
- name: packageName
|
|
1466
|
+
in: path
|
|
1467
|
+
description: Name of the package
|
|
1468
|
+
required: true
|
|
1469
|
+
schema:
|
|
1470
|
+
type: string
|
|
1471
|
+
- name: path
|
|
1472
|
+
in: path
|
|
1473
|
+
description: Path to notebook within the package
|
|
1474
|
+
required: true
|
|
1475
|
+
schema:
|
|
1476
|
+
type: string
|
|
1477
|
+
- name: cellIndex
|
|
1478
|
+
in: path
|
|
1479
|
+
description: Index of the cell to execute (0-based)
|
|
1480
|
+
required: true
|
|
1481
|
+
schema:
|
|
1482
|
+
type: integer
|
|
1483
|
+
- name: versionId
|
|
1484
|
+
in: query
|
|
1485
|
+
description: Version identifier for the package
|
|
1486
|
+
required: false
|
|
1487
|
+
schema:
|
|
1488
|
+
$ref: "#/components/schemas/VersionIdPattern"
|
|
1489
|
+
- name: filter_params
|
|
1490
|
+
in: query
|
|
1491
|
+
description: JSON-encoded filter parameter values keyed by filter name
|
|
1492
|
+
required: false
|
|
1493
|
+
schema:
|
|
1494
|
+
type: string
|
|
1495
|
+
- name: bypass_filters
|
|
1496
|
+
in: query
|
|
1497
|
+
description: When true, skip filter injection entirely
|
|
1498
|
+
required: false
|
|
1499
|
+
schema:
|
|
1500
|
+
type: string
|
|
1501
|
+
enum:
|
|
1502
|
+
- "true"
|
|
1503
|
+
- "false"
|
|
1504
|
+
responses:
|
|
1505
|
+
"200":
|
|
1506
|
+
description: Cell execution result
|
|
1507
|
+
content:
|
|
1508
|
+
"application/json":
|
|
1509
|
+
schema:
|
|
1510
|
+
$ref: "#/components/schemas/NotebookCellResult"
|
|
1511
|
+
"400":
|
|
1512
|
+
$ref: "#/components/responses/BadRequest"
|
|
1513
|
+
"401":
|
|
1514
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1515
|
+
"404":
|
|
1516
|
+
$ref: "#/components/responses/NotFound"
|
|
1517
|
+
"500":
|
|
1518
|
+
$ref: "#/components/responses/InternalServerError"
|
|
1519
|
+
"501":
|
|
1520
|
+
$ref: "#/components/responses/NotImplemented"
|
|
1521
|
+
"503":
|
|
1522
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
1523
|
+
|
|
1219
1524
|
/projects/{projectName}/packages/{packageName}/databases:
|
|
1220
1525
|
get:
|
|
1221
1526
|
tags:
|
|
@@ -1262,6 +1567,8 @@ paths:
|
|
|
1262
1567
|
$ref: "#/components/responses/InternalServerError"
|
|
1263
1568
|
"501":
|
|
1264
1569
|
$ref: "#/components/responses/NotImplemented"
|
|
1570
|
+
"503":
|
|
1571
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
1265
1572
|
|
|
1266
1573
|
/connections/test:
|
|
1267
1574
|
post:
|
|
@@ -1295,6 +1602,8 @@ paths:
|
|
|
1295
1602
|
$ref: "#/components/responses/NotFound"
|
|
1296
1603
|
"500":
|
|
1297
1604
|
$ref: "#/components/responses/InternalServerError"
|
|
1605
|
+
"503":
|
|
1606
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
1298
1607
|
|
|
1299
1608
|
/watch-mode/status:
|
|
1300
1609
|
get:
|
|
@@ -1317,6 +1626,8 @@ paths:
|
|
|
1317
1626
|
$ref: "#/components/responses/Unauthorized"
|
|
1318
1627
|
"500":
|
|
1319
1628
|
$ref: "#/components/responses/InternalServerError"
|
|
1629
|
+
"503":
|
|
1630
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
1320
1631
|
|
|
1321
1632
|
/watch-mode/start:
|
|
1322
1633
|
post:
|
|
@@ -1341,6 +1652,8 @@ paths:
|
|
|
1341
1652
|
$ref: "#/components/responses/Unauthorized"
|
|
1342
1653
|
"500":
|
|
1343
1654
|
$ref: "#/components/responses/InternalServerError"
|
|
1655
|
+
"503":
|
|
1656
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
1344
1657
|
|
|
1345
1658
|
/watch-mode/stop:
|
|
1346
1659
|
post:
|
|
@@ -1359,11 +1672,228 @@ paths:
|
|
|
1359
1672
|
$ref: "#/components/responses/Unauthorized"
|
|
1360
1673
|
"500":
|
|
1361
1674
|
$ref: "#/components/responses/InternalServerError"
|
|
1675
|
+
"503":
|
|
1676
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
1677
|
+
|
|
1678
|
+
/projects/{projectName}/packages/{packageName}/materializations:
|
|
1679
|
+
post:
|
|
1680
|
+
tags:
|
|
1681
|
+
- materializations
|
|
1682
|
+
operationId: create-materialization
|
|
1683
|
+
summary: Create a materialization
|
|
1684
|
+
description: |
|
|
1685
|
+
Creates a new materialization in PENDING state for all persist sources across all
|
|
1686
|
+
models in the package. Use POST .../materializations/{materializationId}?action=start to begin execution.
|
|
1687
|
+
parameters:
|
|
1688
|
+
- $ref: "#/components/parameters/projectName"
|
|
1689
|
+
- $ref: "#/components/parameters/packageName"
|
|
1690
|
+
requestBody:
|
|
1691
|
+
content:
|
|
1692
|
+
application/json:
|
|
1693
|
+
schema:
|
|
1694
|
+
$ref: "#/components/schemas/CreateMaterializationRequest"
|
|
1695
|
+
responses:
|
|
1696
|
+
"201":
|
|
1697
|
+
description: Materialization created
|
|
1698
|
+
content:
|
|
1699
|
+
application/json:
|
|
1700
|
+
schema:
|
|
1701
|
+
$ref: "#/components/schemas/Materialization"
|
|
1702
|
+
"404":
|
|
1703
|
+
$ref: "#/components/responses/NotFound"
|
|
1704
|
+
"409":
|
|
1705
|
+
description: Package already has an active materialization
|
|
1706
|
+
content:
|
|
1707
|
+
application/json:
|
|
1708
|
+
schema:
|
|
1709
|
+
$ref: "#/components/schemas/Error"
|
|
1710
|
+
get:
|
|
1711
|
+
tags:
|
|
1712
|
+
- materializations
|
|
1713
|
+
operationId: list-materializations
|
|
1714
|
+
summary: List materializations for a package
|
|
1715
|
+
description: Returns the materialization history for the package, ordered by
|
|
1716
|
+
most recent first.
|
|
1717
|
+
parameters:
|
|
1718
|
+
- $ref: "#/components/parameters/projectName"
|
|
1719
|
+
- $ref: "#/components/parameters/packageName"
|
|
1720
|
+
- name: limit
|
|
1721
|
+
in: query
|
|
1722
|
+
required: false
|
|
1723
|
+
schema:
|
|
1724
|
+
type: integer
|
|
1725
|
+
minimum: 1
|
|
1726
|
+
description: Maximum number of materializations to return
|
|
1727
|
+
- name: offset
|
|
1728
|
+
in: query
|
|
1729
|
+
required: false
|
|
1730
|
+
schema:
|
|
1731
|
+
type: integer
|
|
1732
|
+
minimum: 0
|
|
1733
|
+
description: Number of materializations to skip
|
|
1734
|
+
responses:
|
|
1735
|
+
"200":
|
|
1736
|
+
description: List of materializations
|
|
1737
|
+
content:
|
|
1738
|
+
application/json:
|
|
1739
|
+
schema:
|
|
1740
|
+
type: array
|
|
1741
|
+
items:
|
|
1742
|
+
$ref: "#/components/schemas/Materialization"
|
|
1743
|
+
"404":
|
|
1744
|
+
$ref: "#/components/responses/NotFound"
|
|
1745
|
+
|
|
1746
|
+
/projects/{projectName}/packages/{packageName}/materializations/{materializationId}:
|
|
1747
|
+
get:
|
|
1748
|
+
tags:
|
|
1749
|
+
- materializations
|
|
1750
|
+
operationId: get-materialization
|
|
1751
|
+
summary: Get a specific materialization
|
|
1752
|
+
parameters:
|
|
1753
|
+
- $ref: "#/components/parameters/projectName"
|
|
1754
|
+
- $ref: "#/components/parameters/packageName"
|
|
1755
|
+
- $ref: "#/components/parameters/materializationId"
|
|
1756
|
+
responses:
|
|
1757
|
+
"200":
|
|
1758
|
+
description: Materialization details
|
|
1759
|
+
content:
|
|
1760
|
+
application/json:
|
|
1761
|
+
schema:
|
|
1762
|
+
$ref: "#/components/schemas/Materialization"
|
|
1763
|
+
"404":
|
|
1764
|
+
$ref: "#/components/responses/NotFound"
|
|
1765
|
+
post:
|
|
1766
|
+
tags:
|
|
1767
|
+
- materializations
|
|
1768
|
+
operationId: materialization-action
|
|
1769
|
+
summary: Perform an action on a materialization
|
|
1770
|
+
description: |
|
|
1771
|
+
Performs an action on a materialization. The action is specified via
|
|
1772
|
+
the `action` query parameter:
|
|
1773
|
+
* `start` - Transitions a PENDING materialization to RUNNING and begins execution in the background. Returns 202.
|
|
1774
|
+
* `stop` - Cancels a PENDING or RUNNING materialization. Returns 200.
|
|
1775
|
+
parameters:
|
|
1776
|
+
- $ref: "#/components/parameters/projectName"
|
|
1777
|
+
- $ref: "#/components/parameters/packageName"
|
|
1778
|
+
- $ref: "#/components/parameters/materializationId"
|
|
1779
|
+
- name: action
|
|
1780
|
+
in: query
|
|
1781
|
+
required: true
|
|
1782
|
+
schema:
|
|
1783
|
+
type: string
|
|
1784
|
+
enum:
|
|
1785
|
+
- start
|
|
1786
|
+
- stop
|
|
1787
|
+
description: Action to perform on the materialization
|
|
1788
|
+
responses:
|
|
1789
|
+
"200":
|
|
1790
|
+
description: Materialization cancelled (action=stop)
|
|
1791
|
+
content:
|
|
1792
|
+
application/json:
|
|
1793
|
+
schema:
|
|
1794
|
+
$ref: "#/components/schemas/Materialization"
|
|
1795
|
+
"202":
|
|
1796
|
+
description: Materialization started (action=start)
|
|
1797
|
+
content:
|
|
1798
|
+
application/json:
|
|
1799
|
+
schema:
|
|
1800
|
+
$ref: "#/components/schemas/Materialization"
|
|
1801
|
+
"400":
|
|
1802
|
+
$ref: "#/components/responses/BadRequest"
|
|
1803
|
+
"404":
|
|
1804
|
+
$ref: "#/components/responses/NotFound"
|
|
1805
|
+
"409":
|
|
1806
|
+
description: Materialization cannot transition to the requested state
|
|
1807
|
+
content:
|
|
1808
|
+
application/json:
|
|
1809
|
+
schema:
|
|
1810
|
+
$ref: "#/components/schemas/Error"
|
|
1811
|
+
delete:
|
|
1812
|
+
tags:
|
|
1813
|
+
- materializations
|
|
1814
|
+
operationId: delete-materialization
|
|
1815
|
+
summary: Delete a materialization
|
|
1816
|
+
description: Deletes a terminal (SUCCESS, FAILED, or CANCELLED) materialization
|
|
1817
|
+
record.
|
|
1818
|
+
parameters:
|
|
1819
|
+
- $ref: "#/components/parameters/projectName"
|
|
1820
|
+
- $ref: "#/components/parameters/packageName"
|
|
1821
|
+
- $ref: "#/components/parameters/materializationId"
|
|
1822
|
+
responses:
|
|
1823
|
+
"204":
|
|
1824
|
+
description: Materialization deleted
|
|
1825
|
+
"404":
|
|
1826
|
+
$ref: "#/components/responses/NotFound"
|
|
1827
|
+
"409":
|
|
1828
|
+
description: Materialization cannot be deleted (PENDING or RUNNING)
|
|
1829
|
+
content:
|
|
1830
|
+
application/json:
|
|
1831
|
+
schema:
|
|
1832
|
+
$ref: "#/components/schemas/Error"
|
|
1833
|
+
|
|
1834
|
+
/projects/{projectName}/packages/{packageName}/manifest:
|
|
1835
|
+
get:
|
|
1836
|
+
tags:
|
|
1837
|
+
- manifests
|
|
1838
|
+
operationId: get-manifest
|
|
1839
|
+
summary: Get the build manifest for a package
|
|
1840
|
+
description: |
|
|
1841
|
+
Returns the current build manifest containing buildId-to-tableName mappings
|
|
1842
|
+
for all materialized sources in the package.
|
|
1843
|
+
parameters:
|
|
1844
|
+
- $ref: "#/components/parameters/projectName"
|
|
1845
|
+
- $ref: "#/components/parameters/packageName"
|
|
1846
|
+
responses:
|
|
1847
|
+
"200":
|
|
1848
|
+
description: Build manifest
|
|
1849
|
+
content:
|
|
1850
|
+
application/json:
|
|
1851
|
+
schema:
|
|
1852
|
+
$ref: "#/components/schemas/BuildManifest"
|
|
1853
|
+
"404":
|
|
1854
|
+
$ref: "#/components/responses/NotFound"
|
|
1855
|
+
post:
|
|
1856
|
+
tags:
|
|
1857
|
+
- manifests
|
|
1858
|
+
operationId: manifest-action
|
|
1859
|
+
summary: Perform an action on the package manifest
|
|
1860
|
+
description: |
|
|
1861
|
+
Performs an action on the package manifest. The action is specified via
|
|
1862
|
+
the `action` query parameter:
|
|
1863
|
+
* `reload` - Reads the build manifest from the shared store (DuckLake
|
|
1864
|
+
in orchestrated mode, local DuckDB in standalone mode) and recompiles
|
|
1865
|
+
every model in the package so subsequent queries resolve persisted
|
|
1866
|
+
sources to their materialized tables. Intended for orchestrated
|
|
1867
|
+
workers that did not themselves run the build; the endpoint does
|
|
1868
|
+
not write anything *into* storage.
|
|
1869
|
+
parameters:
|
|
1870
|
+
- $ref: "#/components/parameters/projectName"
|
|
1871
|
+
- $ref: "#/components/parameters/packageName"
|
|
1872
|
+
- name: action
|
|
1873
|
+
in: query
|
|
1874
|
+
required: true
|
|
1875
|
+
schema:
|
|
1876
|
+
type: string
|
|
1877
|
+
enum:
|
|
1878
|
+
- reload
|
|
1879
|
+
description: Action to perform on the manifest
|
|
1880
|
+
responses:
|
|
1881
|
+
"200":
|
|
1882
|
+
description: Manifest loaded
|
|
1883
|
+
content:
|
|
1884
|
+
application/json:
|
|
1885
|
+
schema:
|
|
1886
|
+
$ref: "#/components/schemas/BuildManifest"
|
|
1887
|
+
"400":
|
|
1888
|
+
$ref: "#/components/responses/BadRequest"
|
|
1889
|
+
"404":
|
|
1890
|
+
$ref: "#/components/responses/NotFound"
|
|
1362
1891
|
|
|
1363
1892
|
components:
|
|
1364
1893
|
responses:
|
|
1365
1894
|
BadRequest:
|
|
1366
|
-
description: The request was malformed or cannot be performed given the current
|
|
1895
|
+
description: The request was malformed or cannot be performed given the current
|
|
1896
|
+
state of the system
|
|
1367
1897
|
content:
|
|
1368
1898
|
application/json:
|
|
1369
1899
|
schema:
|
|
@@ -1404,6 +1934,13 @@ components:
|
|
|
1404
1934
|
application/json:
|
|
1405
1935
|
schema:
|
|
1406
1936
|
$ref: "#/components/schemas/Error"
|
|
1937
|
+
ServiceUnavailable:
|
|
1938
|
+
description: The service is temporarily unavailable, typically due to
|
|
1939
|
+
initialization, or draining state (Rolling updates, etc.)
|
|
1940
|
+
content:
|
|
1941
|
+
application/json:
|
|
1942
|
+
schema:
|
|
1943
|
+
$ref: "#/components/schemas/Error"
|
|
1407
1944
|
|
|
1408
1945
|
schemas:
|
|
1409
1946
|
IdentifierPattern:
|
|
@@ -1436,10 +1973,22 @@ components:
|
|
|
1436
1973
|
initialized:
|
|
1437
1974
|
type: boolean
|
|
1438
1975
|
description: Whether the server is fully initialized and ready to serve requests
|
|
1976
|
+
operationalState:
|
|
1977
|
+
type: string
|
|
1978
|
+
enum: [ "initializing", "serving", "draining" ]
|
|
1979
|
+
description: Status of the server; initializing when the server is loading
|
|
1980
|
+
projects, packages and connections, serving when the server is
|
|
1981
|
+
initialized and ready to serve requests, and draining when the
|
|
1982
|
+
server is going to shut down
|
|
1983
|
+
frozenConfig:
|
|
1984
|
+
type: boolean
|
|
1985
|
+
description: Whether the server configuration is frozen (read-only mode). When
|
|
1986
|
+
true, all mutation operations are disabled.
|
|
1439
1987
|
|
|
1440
1988
|
Project:
|
|
1441
1989
|
type: object
|
|
1442
|
-
description: Represents a Malloy project containing packages, connections, and
|
|
1990
|
+
description: Represents a Malloy project containing packages, connections, and
|
|
1991
|
+
other resources
|
|
1443
1992
|
properties:
|
|
1444
1993
|
resource:
|
|
1445
1994
|
type: string
|
|
@@ -1452,7 +2001,8 @@ components:
|
|
|
1452
2001
|
description: Project README content
|
|
1453
2002
|
location:
|
|
1454
2003
|
type: string
|
|
1455
|
-
description: Project location, can be an absolute path or URI (e.g. github, s3,
|
|
2004
|
+
description: Project location, can be an absolute path or URI (e.g. github, s3,
|
|
2005
|
+
gcs, etc.)
|
|
1456
2006
|
connections:
|
|
1457
2007
|
type: array
|
|
1458
2008
|
description: List of database connections configured for this project
|
|
@@ -1463,10 +2013,24 @@ components:
|
|
|
1463
2013
|
description: List of Malloy packages in this project
|
|
1464
2014
|
items:
|
|
1465
2015
|
$ref: "#/components/schemas/Package"
|
|
2016
|
+
materializationStorage:
|
|
2017
|
+
type: object
|
|
2018
|
+
nullable: true
|
|
2019
|
+
description: Optional DuckLake-backed storage for materialization manifests
|
|
2020
|
+
(orchestrated mode). When set, manifests are stored in a shared
|
|
2021
|
+
DuckLake catalog instead of the local DuckDB database.
|
|
2022
|
+
properties:
|
|
2023
|
+
catalogUrl:
|
|
2024
|
+
type: string
|
|
2025
|
+
description: PostgreSQL connection URL for the DuckLake catalog metadata store
|
|
2026
|
+
dataPath:
|
|
2027
|
+
type: string
|
|
2028
|
+
description: Cloud storage path (s3:// or gs://) for DuckLake data files
|
|
1466
2029
|
|
|
1467
2030
|
Package:
|
|
1468
2031
|
type: object
|
|
1469
|
-
description: Represents a Malloy package containing models, notebooks, and
|
|
2032
|
+
description: Represents a Malloy package containing models, notebooks, and
|
|
2033
|
+
embedded databases
|
|
1470
2034
|
properties:
|
|
1471
2035
|
resource:
|
|
1472
2036
|
type: string
|
|
@@ -1479,7 +2043,8 @@ components:
|
|
|
1479
2043
|
description: Package description
|
|
1480
2044
|
location:
|
|
1481
2045
|
type: string
|
|
1482
|
-
description: Package location, can be an absolute path or URI (e.g. github, s3,
|
|
2046
|
+
description: Package location, can be an absolute path or URI (e.g. github, s3,
|
|
2047
|
+
gcs, etc.)
|
|
1483
2048
|
|
|
1484
2049
|
Model:
|
|
1485
2050
|
type: object
|
|
@@ -1515,9 +2080,9 @@ components:
|
|
|
1515
2080
|
type: string
|
|
1516
2081
|
description: Error message if the notebook failed to compile or load
|
|
1517
2082
|
|
|
1518
|
-
|
|
2083
|
+
RawNotebook:
|
|
1519
2084
|
type: object
|
|
1520
|
-
description:
|
|
2085
|
+
description: Raw Malloy notebook with unexecuted cell contents
|
|
1521
2086
|
properties:
|
|
1522
2087
|
resource:
|
|
1523
2088
|
type: string
|
|
@@ -1533,9 +2098,19 @@ components:
|
|
|
1533
2098
|
description: Version of the Malloy compiler used to generate the notebook data
|
|
1534
2099
|
notebookCells:
|
|
1535
2100
|
type: array
|
|
1536
|
-
description: Array of notebook cells containing
|
|
2101
|
+
description: Array of notebook cells containing raw markdown and code content
|
|
1537
2102
|
items:
|
|
1538
2103
|
$ref: "#/components/schemas/NotebookCell"
|
|
2104
|
+
annotations:
|
|
2105
|
+
type: array
|
|
2106
|
+
description: Array of file-level (##) annotations attached to the notebook
|
|
2107
|
+
items:
|
|
2108
|
+
type: string
|
|
2109
|
+
sources:
|
|
2110
|
+
type: array
|
|
2111
|
+
description: Sources defined in the notebook's model
|
|
2112
|
+
items:
|
|
2113
|
+
$ref: "#/components/schemas/Source"
|
|
1539
2114
|
|
|
1540
2115
|
CompiledModel:
|
|
1541
2116
|
type: object
|
|
@@ -1558,7 +2133,8 @@ components:
|
|
|
1558
2133
|
description: JSON string containing model metadata and structure information
|
|
1559
2134
|
sourceInfos:
|
|
1560
2135
|
type: array
|
|
1561
|
-
description: Array of JSON strings containing source information for each data
|
|
2136
|
+
description: Array of JSON strings containing source information for each data
|
|
2137
|
+
source
|
|
1562
2138
|
items:
|
|
1563
2139
|
type: string
|
|
1564
2140
|
queries:
|
|
@@ -1566,6 +2142,11 @@ components:
|
|
|
1566
2142
|
description: Array of named queries defined in the model
|
|
1567
2143
|
items:
|
|
1568
2144
|
$ref: "#/components/schemas/Query"
|
|
2145
|
+
sources:
|
|
2146
|
+
type: array
|
|
2147
|
+
description: Sources defined in this model
|
|
2148
|
+
items:
|
|
2149
|
+
$ref: "#/components/schemas/Source"
|
|
1569
2150
|
|
|
1570
2151
|
View:
|
|
1571
2152
|
type: object
|
|
@@ -1596,22 +2177,99 @@ components:
|
|
|
1596
2177
|
items:
|
|
1597
2178
|
type: string
|
|
1598
2179
|
|
|
2180
|
+
Filter:
|
|
2181
|
+
type: object
|
|
2182
|
+
description: A filter declared via #(filter) annotation on a Malloy source
|
|
2183
|
+
properties:
|
|
2184
|
+
name:
|
|
2185
|
+
type: string
|
|
2186
|
+
description: Display name of the filter
|
|
2187
|
+
dimension:
|
|
2188
|
+
type: string
|
|
2189
|
+
description: Dimension this filter targets
|
|
2190
|
+
type:
|
|
2191
|
+
type: string
|
|
2192
|
+
description: Comparator type
|
|
2193
|
+
enum:
|
|
2194
|
+
- equal
|
|
2195
|
+
- in
|
|
2196
|
+
- like
|
|
2197
|
+
- greater_than
|
|
2198
|
+
- less_than
|
|
2199
|
+
implicit:
|
|
2200
|
+
type: boolean
|
|
2201
|
+
description: Whether this filter is hidden from users
|
|
2202
|
+
required:
|
|
2203
|
+
type: boolean
|
|
2204
|
+
description: Whether a value must be provided
|
|
2205
|
+
dimensionType:
|
|
2206
|
+
type: string
|
|
2207
|
+
description: Malloy data type of the dimension (e.g. string, number, boolean,
|
|
2208
|
+
date, timestamp)
|
|
2209
|
+
|
|
2210
|
+
Source:
|
|
2211
|
+
type: object
|
|
2212
|
+
description: A Malloy source defined in a model
|
|
2213
|
+
properties:
|
|
2214
|
+
name:
|
|
2215
|
+
type: string
|
|
2216
|
+
description: Name of the source
|
|
2217
|
+
annotations:
|
|
2218
|
+
type: array
|
|
2219
|
+
description: Annotations attached to the source
|
|
2220
|
+
items:
|
|
2221
|
+
type: string
|
|
2222
|
+
views:
|
|
2223
|
+
type: array
|
|
2224
|
+
description: Views defined in this source
|
|
2225
|
+
items:
|
|
2226
|
+
$ref: "#/components/schemas/View"
|
|
2227
|
+
filters:
|
|
2228
|
+
type: array
|
|
2229
|
+
description: Filters declared on this source via #(filter) annotations
|
|
2230
|
+
items:
|
|
2231
|
+
$ref: "#/components/schemas/Filter"
|
|
2232
|
+
|
|
1599
2233
|
QueryRequest:
|
|
1600
2234
|
type: object
|
|
1601
2235
|
description: Request body for executing a Malloy query
|
|
1602
2236
|
properties:
|
|
1603
2237
|
query:
|
|
1604
2238
|
type: string
|
|
1605
|
-
description: Query string to execute on the model. If the query parameter is
|
|
2239
|
+
description: Query string to execute on the model. If the query parameter is
|
|
2240
|
+
set, the queryName parameter must be empty.
|
|
1606
2241
|
sourceName:
|
|
1607
2242
|
type: string
|
|
1608
|
-
description: Name of the source in the model to use for queryName, search, and
|
|
2243
|
+
description: Name of the source in the model to use for queryName, search, and
|
|
2244
|
+
topValue requests.
|
|
1609
2245
|
queryName:
|
|
1610
2246
|
type: string
|
|
1611
|
-
description: Name of a query to execute on a source in the model. Requires the
|
|
2247
|
+
description: Name of a query to execute on a source in the model. Requires the
|
|
2248
|
+
sourceName parameter is set. If the queryName parameter is set, the
|
|
2249
|
+
query parameter must be empty.
|
|
2250
|
+
compactJson:
|
|
2251
|
+
type: boolean
|
|
2252
|
+
default: false
|
|
2253
|
+
description: "If true, returns a simple JSON array of row objects in the form
|
|
2254
|
+
{\"columnName\": value}. If false (default), returns the full Malloy
|
|
2255
|
+
result with type metadata for rendering."
|
|
1612
2256
|
versionId:
|
|
1613
2257
|
type: string
|
|
1614
2258
|
description: Version ID
|
|
2259
|
+
filterParams:
|
|
2260
|
+
type: object
|
|
2261
|
+
description: Filter parameter values keyed by filter name. Used with sources
|
|
2262
|
+
that declare #(filter) annotations.
|
|
2263
|
+
additionalProperties:
|
|
2264
|
+
oneOf:
|
|
2265
|
+
- type: string
|
|
2266
|
+
- type: array
|
|
2267
|
+
items:
|
|
2268
|
+
type: string
|
|
2269
|
+
bypassFilters:
|
|
2270
|
+
type: boolean
|
|
2271
|
+
default: false
|
|
2272
|
+
description: When true, skip server-side #(filter) injection entirely.
|
|
1615
2273
|
|
|
1616
2274
|
NotebookCell:
|
|
1617
2275
|
type: object
|
|
@@ -1619,7 +2277,29 @@ components:
|
|
|
1619
2277
|
properties:
|
|
1620
2278
|
type:
|
|
1621
2279
|
type: string
|
|
1622
|
-
enum: ["markdown", "code"]
|
|
2280
|
+
enum: [ "markdown", "code" ]
|
|
2281
|
+
description: Type of notebook cell
|
|
2282
|
+
text:
|
|
2283
|
+
type: string
|
|
2284
|
+
description: Text contents of the notebook cell (either markdown or Malloy code)
|
|
2285
|
+
newSources:
|
|
2286
|
+
type: array
|
|
2287
|
+
description: Array of JSON strings containing SourceInfo objects made available
|
|
2288
|
+
in this cell
|
|
2289
|
+
items:
|
|
2290
|
+
type: string
|
|
2291
|
+
queryInfo:
|
|
2292
|
+
type: string
|
|
2293
|
+
description: JSON string containing QueryInfo object for the query in this cell
|
|
2294
|
+
(if the cell contains a query)
|
|
2295
|
+
|
|
2296
|
+
NotebookCellResult:
|
|
2297
|
+
type: object
|
|
2298
|
+
description: Result of executing a notebook cell
|
|
2299
|
+
properties:
|
|
2300
|
+
type:
|
|
2301
|
+
type: string
|
|
2302
|
+
enum: [ "markdown", "code" ]
|
|
1623
2303
|
description: Type of notebook cell
|
|
1624
2304
|
text:
|
|
1625
2305
|
type: string
|
|
@@ -1629,7 +2309,8 @@ components:
|
|
|
1629
2309
|
description: JSON string containing the execution result for this cell
|
|
1630
2310
|
newSources:
|
|
1631
2311
|
type: array
|
|
1632
|
-
description: Array of JSON strings containing SourceInfo objects made available
|
|
2312
|
+
description: Array of JSON strings containing SourceInfo objects made available
|
|
2313
|
+
in this cell
|
|
1633
2314
|
items:
|
|
1634
2315
|
type: string
|
|
1635
2316
|
|
|
@@ -1639,10 +2320,50 @@ components:
|
|
|
1639
2320
|
properties:
|
|
1640
2321
|
result:
|
|
1641
2322
|
type: string
|
|
1642
|
-
description: JSON string containing the query results, metadata, and execution
|
|
2323
|
+
description: JSON string containing the query results, metadata, and execution
|
|
2324
|
+
information
|
|
1643
2325
|
resource:
|
|
1644
2326
|
type: string
|
|
1645
2327
|
description: Resource path to the query result
|
|
2328
|
+
renderLogs:
|
|
2329
|
+
type: array
|
|
2330
|
+
description: Render tag validation messages (errors, warnings) detected during
|
|
2331
|
+
query preparation
|
|
2332
|
+
items:
|
|
2333
|
+
$ref: "#/components/schemas/LogMessage"
|
|
2334
|
+
|
|
2335
|
+
LogMessage:
|
|
2336
|
+
type: object
|
|
2337
|
+
description: A log message from render tag validation
|
|
2338
|
+
properties:
|
|
2339
|
+
url:
|
|
2340
|
+
type: string
|
|
2341
|
+
description: URL of the source file related to this message
|
|
2342
|
+
range:
|
|
2343
|
+
type: object
|
|
2344
|
+
description: Source location range for this message
|
|
2345
|
+
properties:
|
|
2346
|
+
start:
|
|
2347
|
+
type: object
|
|
2348
|
+
properties:
|
|
2349
|
+
line:
|
|
2350
|
+
type: integer
|
|
2351
|
+
character:
|
|
2352
|
+
type: integer
|
|
2353
|
+
end:
|
|
2354
|
+
type: object
|
|
2355
|
+
properties:
|
|
2356
|
+
line:
|
|
2357
|
+
type: integer
|
|
2358
|
+
character:
|
|
2359
|
+
type: integer
|
|
2360
|
+
severity:
|
|
2361
|
+
type: string
|
|
2362
|
+
description: Severity level of the log message
|
|
2363
|
+
enum: [ "debug", "info", "warn", "error" ]
|
|
2364
|
+
message:
|
|
2365
|
+
type: string
|
|
2366
|
+
description: Human-readable log message
|
|
1646
2367
|
|
|
1647
2368
|
Database:
|
|
1648
2369
|
type: object
|
|
@@ -1659,7 +2380,7 @@ components:
|
|
|
1659
2380
|
type:
|
|
1660
2381
|
type: string
|
|
1661
2382
|
description: Type of embedded database
|
|
1662
|
-
enum: ["embedded", "materialized"]
|
|
2383
|
+
enum: [ "embedded", "materialized" ]
|
|
1663
2384
|
|
|
1664
2385
|
Schema:
|
|
1665
2386
|
description: A schema name in a Connection.
|
|
@@ -1692,7 +2413,16 @@ components:
|
|
|
1692
2413
|
type: string
|
|
1693
2414
|
description: Type of database connection
|
|
1694
2415
|
enum:
|
|
1695
|
-
[
|
|
2416
|
+
[
|
|
2417
|
+
postgres,
|
|
2418
|
+
bigquery,
|
|
2419
|
+
snowflake,
|
|
2420
|
+
trino,
|
|
2421
|
+
mysql,
|
|
2422
|
+
duckdb,
|
|
2423
|
+
motherduck,
|
|
2424
|
+
ducklake,
|
|
2425
|
+
]
|
|
1696
2426
|
attributes:
|
|
1697
2427
|
$ref: "#/components/schemas/ConnectionAttributes"
|
|
1698
2428
|
postgresConnection:
|
|
@@ -1709,6 +2439,8 @@ components:
|
|
|
1709
2439
|
$ref: "#/components/schemas/DuckdbConnection"
|
|
1710
2440
|
motherduckConnection:
|
|
1711
2441
|
$ref: "#/components/schemas/MotherDuckConnection"
|
|
2442
|
+
ducklakeConnection:
|
|
2443
|
+
$ref: "#/components/schemas/DucklakeConnection"
|
|
1712
2444
|
|
|
1713
2445
|
ConnectionAttributes:
|
|
1714
2446
|
type: object
|
|
@@ -1748,7 +2480,8 @@ components:
|
|
|
1748
2480
|
description: PostgreSQL password for authentication
|
|
1749
2481
|
connectionString:
|
|
1750
2482
|
type: string
|
|
1751
|
-
description: Complete PostgreSQL connection string (alternative to individual
|
|
2483
|
+
description: Complete PostgreSQL connection string (alternative to individual
|
|
2484
|
+
parameters)
|
|
1752
2485
|
|
|
1753
2486
|
MysqlConnection:
|
|
1754
2487
|
type: object
|
|
@@ -1770,6 +2503,116 @@ components:
|
|
|
1770
2503
|
type: string
|
|
1771
2504
|
description: MySQL password for authentication
|
|
1772
2505
|
|
|
2506
|
+
GCSConnection:
|
|
2507
|
+
type: object
|
|
2508
|
+
description: Google Cloud Storage connection configuration for DuckDB
|
|
2509
|
+
properties:
|
|
2510
|
+
keyId:
|
|
2511
|
+
type: string
|
|
2512
|
+
description: GCS HMAC access key ID
|
|
2513
|
+
secret:
|
|
2514
|
+
type: string
|
|
2515
|
+
description: GCS HMAC secret key
|
|
2516
|
+
required:
|
|
2517
|
+
- keyId
|
|
2518
|
+
- secret
|
|
2519
|
+
|
|
2520
|
+
S3Connection:
|
|
2521
|
+
type: object
|
|
2522
|
+
description: AWS S3 connection configuration for DuckDB
|
|
2523
|
+
properties:
|
|
2524
|
+
accessKeyId:
|
|
2525
|
+
type: string
|
|
2526
|
+
description: AWS access key ID
|
|
2527
|
+
secretAccessKey:
|
|
2528
|
+
type: string
|
|
2529
|
+
description: AWS secret access key
|
|
2530
|
+
region:
|
|
2531
|
+
type: string
|
|
2532
|
+
description: AWS region (e.g., us-east-1)
|
|
2533
|
+
default: us-east-1
|
|
2534
|
+
endpoint:
|
|
2535
|
+
type: string
|
|
2536
|
+
description: Custom S3-compatible endpoint URL (optional, for MinIO, etc.)
|
|
2537
|
+
sessionToken:
|
|
2538
|
+
type: string
|
|
2539
|
+
description: AWS session token for temporary credentials (optional)
|
|
2540
|
+
required:
|
|
2541
|
+
- accessKeyId
|
|
2542
|
+
- secretAccessKey
|
|
2543
|
+
|
|
2544
|
+
AzureConnection:
|
|
2545
|
+
type: object
|
|
2546
|
+
description: >
|
|
2547
|
+
Azure Data Lake Storage (ADLS Gen2) / Blob Storage connection
|
|
2548
|
+
configuration Supports https://, http://, abfss://, and az:// URL
|
|
2549
|
+
schemes.
|
|
2550
|
+
properties:
|
|
2551
|
+
authType:
|
|
2552
|
+
type: string
|
|
2553
|
+
enum: [ service_principal, sas_token ]
|
|
2554
|
+
description: Authentication method for Azure Storage
|
|
2555
|
+
sasUrl:
|
|
2556
|
+
type: string
|
|
2557
|
+
description: >
|
|
2558
|
+
Full SAS URL including token; required for sas_token auth. Supports
|
|
2559
|
+
single file, directory glob (*.ext), or recursive (**) patterns.
|
|
2560
|
+
Example:
|
|
2561
|
+
https://account.blob.core.windows.net/container/path/*.parquet?sp=rl&st=...
|
|
2562
|
+
tenantId:
|
|
2563
|
+
type: string
|
|
2564
|
+
description: Azure AD tenant ID (required for service_principal)
|
|
2565
|
+
clientId:
|
|
2566
|
+
type: string
|
|
2567
|
+
description: Azure AD application (client) ID (required for service_principal)
|
|
2568
|
+
clientSecret:
|
|
2569
|
+
type: string
|
|
2570
|
+
description: Azure AD client secret (required for service_principal)
|
|
2571
|
+
accountName:
|
|
2572
|
+
type: string
|
|
2573
|
+
description: Azure Storage account name (required for service_principal)
|
|
2574
|
+
fileUrl:
|
|
2575
|
+
type: string
|
|
2576
|
+
description: >
|
|
2577
|
+
Azure file URL to query; required for service_principal auth.
|
|
2578
|
+
Supports single file, directory glob (*.ext), or recursive (**)
|
|
2579
|
+
patterns. Example:
|
|
2580
|
+
https://account.blob.core.windows.net/container/path/**
|
|
2581
|
+
required:
|
|
2582
|
+
- authType
|
|
2583
|
+
|
|
2584
|
+
DucklakeConnection:
|
|
2585
|
+
type: object
|
|
2586
|
+
description: DuckLake lakehouse connection configuration
|
|
2587
|
+
properties:
|
|
2588
|
+
storage:
|
|
2589
|
+
type: object
|
|
2590
|
+
description: Data storage connection configuration (S3 or GCS)
|
|
2591
|
+
properties:
|
|
2592
|
+
bucketUrl:
|
|
2593
|
+
type: string
|
|
2594
|
+
description: URL of the storage bucket (e.g. s3://my-bucket/path or
|
|
2595
|
+
gs://my-bucket/path)
|
|
2596
|
+
s3Connection:
|
|
2597
|
+
$ref: "#/components/schemas/S3Connection"
|
|
2598
|
+
description: AWS S3 connection configuration for data storage
|
|
2599
|
+
gcsConnection:
|
|
2600
|
+
$ref: "#/components/schemas/GCSConnection"
|
|
2601
|
+
description: Google Cloud Storage connection configuration for data storage
|
|
2602
|
+
required:
|
|
2603
|
+
- bucketUrl
|
|
2604
|
+
catalog:
|
|
2605
|
+
type: object
|
|
2606
|
+
description: Catalog metadata connection configuration
|
|
2607
|
+
properties:
|
|
2608
|
+
postgresConnection:
|
|
2609
|
+
$ref: "#/components/schemas/PostgresConnection"
|
|
2610
|
+
description: PostgreSQL connection for DuckLake metadata catalog
|
|
2611
|
+
required:
|
|
2612
|
+
- postgresConnection
|
|
2613
|
+
required:
|
|
2614
|
+
- storage
|
|
2615
|
+
- catalog
|
|
1773
2616
|
BigqueryConnection:
|
|
1774
2617
|
type: object
|
|
1775
2618
|
description: Google BigQuery database connection configuration
|
|
@@ -1885,7 +2728,7 @@ components:
|
|
|
1885
2728
|
type:
|
|
1886
2729
|
type: string
|
|
1887
2730
|
description: Type of database connection
|
|
1888
|
-
enum: [bigquery, snowflake, postgres]
|
|
2731
|
+
enum: [ bigquery, snowflake, postgres, gcs, s3, azure ]
|
|
1889
2732
|
attributes:
|
|
1890
2733
|
$ref: "#/components/schemas/ConnectionAttributes"
|
|
1891
2734
|
bigqueryConnection:
|
|
@@ -1894,7 +2737,12 @@ components:
|
|
|
1894
2737
|
$ref: "#/components/schemas/SnowflakeConnection"
|
|
1895
2738
|
postgresConnection:
|
|
1896
2739
|
$ref: "#/components/schemas/PostgresConnection"
|
|
1897
|
-
|
|
2740
|
+
gcsConnection:
|
|
2741
|
+
$ref: "#/components/schemas/GCSConnection"
|
|
2742
|
+
s3Connection:
|
|
2743
|
+
$ref: "#/components/schemas/S3Connection"
|
|
2744
|
+
azureConnection:
|
|
2745
|
+
$ref: "#/components/schemas/AzureConnection"
|
|
1898
2746
|
# TODO: What is this? Can we remove it?
|
|
1899
2747
|
SqlSource:
|
|
1900
2748
|
type: object
|
|
@@ -2011,8 +2859,12 @@ components:
|
|
|
2011
2859
|
description: Name of the project being watched for file changes
|
|
2012
2860
|
watchingPath:
|
|
2013
2861
|
type: string
|
|
2014
|
-
|
|
2015
|
-
|
|
2862
|
+
description: The file system path being monitored for changes, null if not
|
|
2863
|
+
watching
|
|
2864
|
+
required:
|
|
2865
|
+
- enabled
|
|
2866
|
+
- projectName
|
|
2867
|
+
- watchingPath
|
|
2016
2868
|
|
|
2017
2869
|
StartWatchRequest:
|
|
2018
2870
|
type: object
|
|
@@ -2031,7 +2883,159 @@ components:
|
|
|
2031
2883
|
status:
|
|
2032
2884
|
type: string
|
|
2033
2885
|
description: Connection test result status
|
|
2034
|
-
enum: ["ok", "failed"]
|
|
2886
|
+
enum: [ "ok", "failed" ]
|
|
2035
2887
|
errorMessage:
|
|
2036
2888
|
type: string
|
|
2037
2889
|
description: Error message if the connection test failed, null if successful
|
|
2890
|
+
|
|
2891
|
+
CompileRequest:
|
|
2892
|
+
type: object
|
|
2893
|
+
description: Request body for compiling Malloy source code
|
|
2894
|
+
properties:
|
|
2895
|
+
source:
|
|
2896
|
+
type: string
|
|
2897
|
+
description: Malloy source code to compile
|
|
2898
|
+
includeSql:
|
|
2899
|
+
type: boolean
|
|
2900
|
+
default: false
|
|
2901
|
+
description: If true, returns the generated SQL alongside compilation results
|
|
2902
|
+
(only available when compilation succeeds and the source contains a
|
|
2903
|
+
runnable query).
|
|
2904
|
+
required:
|
|
2905
|
+
- source
|
|
2906
|
+
|
|
2907
|
+
CompileResult:
|
|
2908
|
+
type: object
|
|
2909
|
+
description: Result of a Malloy source compilation check
|
|
2910
|
+
properties:
|
|
2911
|
+
status:
|
|
2912
|
+
type: string
|
|
2913
|
+
description: Overall compilation status — "error" if any problems have error
|
|
2914
|
+
severity
|
|
2915
|
+
enum: [ "success", "error" ]
|
|
2916
|
+
problems:
|
|
2917
|
+
type: array
|
|
2918
|
+
description: List of compilation problems (errors and warnings)
|
|
2919
|
+
items:
|
|
2920
|
+
$ref: "#/components/schemas/CompileProblem"
|
|
2921
|
+
sql:
|
|
2922
|
+
type: string
|
|
2923
|
+
description: Generated SQL for the compiled query. Only present when includeSql
|
|
2924
|
+
is true and compilation succeeds with a runnable query.
|
|
2925
|
+
|
|
2926
|
+
CompileProblem:
|
|
2927
|
+
type: object
|
|
2928
|
+
description: A compilation problem reported by the Malloy compiler
|
|
2929
|
+
properties:
|
|
2930
|
+
message:
|
|
2931
|
+
type: string
|
|
2932
|
+
description: Human-readable problem description
|
|
2933
|
+
severity:
|
|
2934
|
+
type: string
|
|
2935
|
+
description: Severity level of the problem
|
|
2936
|
+
enum: [ "error", "warn", "debug" ]
|
|
2937
|
+
code:
|
|
2938
|
+
type: string
|
|
2939
|
+
description: Machine-readable error code
|
|
2940
|
+
at:
|
|
2941
|
+
type: object
|
|
2942
|
+
description: Source location of the problem
|
|
2943
|
+
properties:
|
|
2944
|
+
url:
|
|
2945
|
+
type: string
|
|
2946
|
+
description: URL of the source file
|
|
2947
|
+
range:
|
|
2948
|
+
type: object
|
|
2949
|
+
description: Character range within the source file
|
|
2950
|
+
|
|
2951
|
+
CreateMaterializationRequest:
|
|
2952
|
+
type: object
|
|
2953
|
+
description: Options for creating a materialization
|
|
2954
|
+
properties:
|
|
2955
|
+
forceRefresh:
|
|
2956
|
+
type: boolean
|
|
2957
|
+
default: false
|
|
2958
|
+
description: If true, forces rebuild of all sources even if their BuildID is
|
|
2959
|
+
unchanged
|
|
2960
|
+
autoLoadManifest:
|
|
2961
|
+
type: boolean
|
|
2962
|
+
default: false
|
|
2963
|
+
description: If true, automatically reloads the manifest into the Malloy Runtime
|
|
2964
|
+
after a successful materialization
|
|
2965
|
+
|
|
2966
|
+
Materialization:
|
|
2967
|
+
type: object
|
|
2968
|
+
description: A record of a package materialization
|
|
2969
|
+
properties:
|
|
2970
|
+
id:
|
|
2971
|
+
type: string
|
|
2972
|
+
projectId:
|
|
2973
|
+
type: string
|
|
2974
|
+
packageName:
|
|
2975
|
+
type: string
|
|
2976
|
+
status:
|
|
2977
|
+
type: string
|
|
2978
|
+
enum: [ "PENDING", "RUNNING", "SUCCESS", "FAILED", "CANCELLED" ]
|
|
2979
|
+
startedAt:
|
|
2980
|
+
type: [ "string", "null" ]
|
|
2981
|
+
format: date-time
|
|
2982
|
+
completedAt:
|
|
2983
|
+
type: [ "string", "null" ]
|
|
2984
|
+
format: date-time
|
|
2985
|
+
error:
|
|
2986
|
+
type: [ "string", "null" ]
|
|
2987
|
+
description: Error message if the materialization failed
|
|
2988
|
+
metadata:
|
|
2989
|
+
type: [ "object", "null" ]
|
|
2990
|
+
description: Materialization metadata including build options, source counts,
|
|
2991
|
+
and durations
|
|
2992
|
+
createdAt:
|
|
2993
|
+
type: string
|
|
2994
|
+
format: date-time
|
|
2995
|
+
updatedAt:
|
|
2996
|
+
type: string
|
|
2997
|
+
format: date-time
|
|
2998
|
+
|
|
2999
|
+
BuildManifest:
|
|
3000
|
+
type: object
|
|
3001
|
+
description: Manifest mapping BuildIDs to materialized table names
|
|
3002
|
+
properties:
|
|
3003
|
+
entries:
|
|
3004
|
+
type: object
|
|
3005
|
+
additionalProperties:
|
|
3006
|
+
$ref: "#/components/schemas/ManifestEntry"
|
|
3007
|
+
description: Map of BuildID to manifest entry
|
|
3008
|
+
strict:
|
|
3009
|
+
type: boolean
|
|
3010
|
+
description: Whether the manifest is in strict mode
|
|
3011
|
+
|
|
3012
|
+
ManifestEntry:
|
|
3013
|
+
type: object
|
|
3014
|
+
description: A single entry in the build manifest
|
|
3015
|
+
properties:
|
|
3016
|
+
tableName:
|
|
3017
|
+
type: string
|
|
3018
|
+
description: Name of the materialized table
|
|
3019
|
+
|
|
3020
|
+
parameters:
|
|
3021
|
+
projectName:
|
|
3022
|
+
name: projectName
|
|
3023
|
+
in: path
|
|
3024
|
+
required: true
|
|
3025
|
+
description: Name of the project
|
|
3026
|
+
schema:
|
|
3027
|
+
type: string
|
|
3028
|
+
packageName:
|
|
3029
|
+
name: packageName
|
|
3030
|
+
in: path
|
|
3031
|
+
required: true
|
|
3032
|
+
description: Name of the package
|
|
3033
|
+
schema:
|
|
3034
|
+
type: string
|
|
3035
|
+
materializationId:
|
|
3036
|
+
name: materializationId
|
|
3037
|
+
in: path
|
|
3038
|
+
required: true
|
|
3039
|
+
description: ID of the materialization
|
|
3040
|
+
schema:
|
|
3041
|
+
type: string
|