@malloy-publisher/app 0.0.119 → 0.0.120

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/api-doc.yaml CHANGED
@@ -21,12 +21,10 @@ info:
21
21
  ```
22
22
  Projects
23
23
  ├── Connections
24
- ├── Packages
25
- ├── Models
26
- ├── Notebooks
27
- │ ├── Databases
28
- │ └── Schedules
29
- └── Watch Mode
24
+ └── Packages
25
+ ├── Models
26
+ ├── Notebooks
27
+ └── Databases
30
28
  ```
31
29
 
32
30
  For examples, see the Malloy samples packages (https://github.com/malloydata/malloy-samples) repository.
@@ -49,12 +47,8 @@ tags:
49
47
  description: Malloy model access and compilation operations
50
48
  - name: notebooks
51
49
  description: Malloy notebook access and execution operations
52
- - name: queryresults
53
- description: Query execution and result retrieval operations
54
50
  - name: databases
55
51
  description: Embedded database management and access
56
- - name: schedules
57
- description: Scheduled task management and monitoring
58
52
  - name: watch-mode
59
53
  description: Real-time file watching for development workflows
60
54
 
@@ -77,39 +71,6 @@ paths:
77
71
  schema:
78
72
  $ref: "#/components/schemas/ServerStatus"
79
73
 
80
- /connections/test:
81
- post:
82
- tags:
83
- - connections
84
- operationId: test-connection-configuration
85
- summary: Test database connection configuration
86
- description: |
87
- Validates a database connection configuration without adding it to any project.
88
- This endpoint allows you to test connection parameters, credentials, and network
89
- connectivity before committing the connection to a project. Useful for troubleshooting
90
- connection issues and validating configurations during setup.
91
- requestBody:
92
- required: true
93
- content:
94
- application/json:
95
- schema:
96
- $ref: "#/components/schemas/Connection"
97
- responses:
98
- "200":
99
- description: Connection test result
100
- content:
101
- application/json:
102
- schema:
103
- $ref: "#/components/schemas/ConnectionStatus"
104
- "400":
105
- $ref: "#/components/responses/BadRequest"
106
- "401":
107
- $ref: "#/components/responses/Unauthorized"
108
- "404":
109
- $ref: "#/components/responses/NotFound"
110
- "500":
111
- $ref: "#/components/responses/InternalServerError"
112
-
113
74
  /projects:
114
75
  get:
115
76
  tags:
@@ -327,16 +288,16 @@ paths:
327
288
  "500":
328
289
  $ref: "#/components/responses/InternalServerError"
329
290
 
330
- /projects/{projectName}/connections/{connectionName}/test:
291
+ /projects/{projectName}/connections/{connectionName}/schemas:
331
292
  get:
332
293
  tags:
333
294
  - connections
334
- operationId: test-connection
335
- summary: Test existing project connection
295
+ operationId: list-schemas
296
+ summary: List database schemas
336
297
  description: |
337
- Tests the connectivity and configuration of an existing database connection within a project.
338
- This endpoint validates that the connection can be established, credentials are valid,
339
- and the database is accessible. Useful for monitoring connection health and troubleshooting.
298
+ Retrieves a list of all schemas (databases) available in the specified connection.
299
+ Each schema includes metadata such as name, description, and whether it's the default schema.
300
+ This endpoint is useful for exploring the database structure and discovering available data sources.
340
301
  parameters:
341
302
  - name: projectName
342
303
  in: path
@@ -352,11 +313,13 @@ paths:
352
313
  $ref: "#/components/schemas/IdentifierPattern"
353
314
  responses:
354
315
  "200":
355
- description: OK
316
+ description: A list of schemas available in the connection with metadata
356
317
  content:
357
318
  application/json:
358
319
  schema:
359
- $ref: "#/components/schemas/ConnectionStatus"
320
+ type: array
321
+ items:
322
+ $ref: "#/components/schemas/Schema"
360
323
  "401":
361
324
  $ref: "#/components/responses/Unauthorized"
362
325
  "404":
@@ -364,19 +327,16 @@ paths:
364
327
  "500":
365
328
  $ref: "#/components/responses/InternalServerError"
366
329
 
367
- /projects/{projectName}/connections/{connectionName}/sqlSource:
330
+ /projects/{projectName}/connections/{connectionName}/schemas/{schemaName}/tables:
368
331
  get:
369
332
  tags:
370
333
  - connections
371
- operationId: get-sqlsource
372
- deprecated: true
373
- summary: Get SQL source (deprecated)
334
+ operationId: list-tables
335
+ summary: List tables in database
374
336
  description: |
375
- **DEPRECATED**: This endpoint is deprecated and may be removed in future versions.
376
- Use the POST version instead for better security and functionality.
377
-
378
- Creates a Malloy source from a SQL statement using the specified connection.
379
- The SQL statement is executed to generate a source definition that can be used in Malloy models.
337
+ Retrieves a list of all tables and views available in the specified database schema.
338
+ This endpoint is useful for discovering available data sources and exploring the database
339
+ structure. The schema must exist in the connection for this operation to succeed.
380
340
  parameters:
381
341
  - name: projectName
382
342
  in: path
@@ -390,65 +350,21 @@ paths:
390
350
  required: true
391
351
  schema:
392
352
  $ref: "#/components/schemas/IdentifierPattern"
393
- - name: sqlStatement
394
- in: query
395
- description: SQL statement
396
- required: false
397
- schema:
398
- type: string
399
- responses:
400
- "200":
401
- description: SQL source information
402
- content:
403
- application/json:
404
- schema:
405
- $ref: "#/components/schemas/SqlSource"
406
- "401":
407
- $ref: "#/components/responses/Unauthorized"
408
- "404":
409
- $ref: "#/components/responses/NotFound"
410
- "500":
411
- $ref: "#/components/responses/InternalServerError"
412
- post:
413
- tags:
414
- - connections
415
- operationId: post-sqlsource
416
- summary: Create SQL source from statement
417
- description: |
418
- Creates a Malloy source from a SQL statement using the specified database connection.
419
- The SQL statement is executed to generate a source definition that can be used in Malloy models.
420
- This is the preferred method over the deprecated GET version as it provides better security
421
- and supports larger SQL statements.
422
- parameters:
423
- - name: projectName
424
- in: path
425
- description: Name of the project
426
- required: true
427
- schema:
428
- $ref: "#/components/schemas/IdentifierPattern"
429
- - name: connectionName
353
+ - name: schemaName
430
354
  in: path
431
- description: Name of the connection
355
+ description: Name of the schema
432
356
  required: true
433
357
  schema:
434
358
  $ref: "#/components/schemas/IdentifierPattern"
435
- requestBody:
436
- description: SQL statement to fetch the SQL source
437
- required: true
438
- content:
439
- application/json:
440
- schema:
441
- type: object
442
- properties:
443
- sqlStatement:
444
- type: string
445
359
  responses:
446
360
  "200":
447
- description: SQL source information
361
+ description: A list of table names available in the specified schema
448
362
  content:
449
363
  application/json:
450
364
  schema:
451
- $ref: "#/components/schemas/SqlSource"
365
+ type: array
366
+ items:
367
+ $ref: "#/components/schemas/Table"
452
368
  "401":
453
369
  $ref: "#/components/responses/Unauthorized"
454
370
  "404":
@@ -456,16 +372,17 @@ paths:
456
372
  "500":
457
373
  $ref: "#/components/responses/InternalServerError"
458
374
 
459
- /projects/{projectName}/connections/{connectionName}/tableSource:
375
+ /projects/{projectName}/connections/{connectionName}/schemas/{schemaName}/tables/{tablePath}:
460
376
  get:
461
377
  tags:
462
378
  - connections
463
- operationId: get-tablesource
464
- summary: Get table source information
379
+ operationId: get-table
380
+ summary: Get table details from database
465
381
  description: |
466
- Retrieves information about a specific table or view from the database connection.
467
- This includes table schema, column definitions, and metadata. The table can be specified
468
- by either tableKey or tablePath parameters, depending on the database type.
382
+ Retrieves a table from the specified database schema.
383
+ This endpoint is useful for discovering available data sources and exploring the database
384
+ structure. The schema must exist in the connection for this operation to succeed.
385
+ The tablePath is the full path to the table, including the schema name.
469
386
  parameters:
470
387
  - name: projectName
471
388
  in: path
@@ -479,25 +396,25 @@ paths:
479
396
  required: true
480
397
  schema:
481
398
  $ref: "#/components/schemas/IdentifierPattern"
482
- - name: tableKey
483
- in: query
484
- description: Table key
485
- required: false
399
+ - name: schemaName
400
+ in: path
401
+ description: Name of the schema
402
+ required: true
486
403
  schema:
487
- type: string
404
+ $ref: "#/components/schemas/IdentifierPattern"
488
405
  - name: tablePath
489
- in: query
490
- description: Table path
491
- required: false
406
+ in: path
407
+ description: Full path to the table
408
+ required: true
492
409
  schema:
493
- type: string
410
+ $ref: "#/components/schemas/IdentifierPattern"
494
411
  responses:
495
412
  "200":
496
- description: Table source information
413
+ description: Table information
497
414
  content:
498
415
  application/json:
499
416
  schema:
500
- $ref: "#/components/schemas/TableSource"
417
+ $ref: "#/components/schemas/Table"
501
418
  "401":
502
419
  $ref: "#/components/responses/Unauthorized"
503
420
  "404":
@@ -505,16 +422,20 @@ paths:
505
422
  "500":
506
423
  $ref: "#/components/responses/InternalServerError"
507
424
 
508
- /projects/{projectName}/connections/{connectionName}/schemas/{schemaName}/tables:
425
+ # TODO: Remove this endpoint.
426
+ /projects/{projectName}/connections/{connectionName}/sqlSource:
509
427
  get:
510
428
  tags:
511
429
  - connections
512
- operationId: list-tables
513
- summary: List tables in database schema
430
+ operationId: get-sqlsource
431
+ deprecated: true
432
+ summary: Get SQL source (deprecated)
514
433
  description: |
515
- Retrieves a list of all tables and views available in the specified database schema.
516
- This endpoint is useful for discovering available data sources and exploring the database
517
- structure. The schema must exist in the connection for this operation to succeed.
434
+ **DEPRECATED**: This endpoint is deprecated and may be removed in future versions.
435
+ Use the POST version instead for better security and functionality.
436
+
437
+ Creates a Malloy source from a SQL statement using the specified connection.
438
+ The SQL statement is executed to generate a source definition that can be used in Malloy models.
518
439
  parameters:
519
440
  - name: projectName
520
441
  in: path
@@ -528,21 +449,19 @@ paths:
528
449
  required: true
529
450
  schema:
530
451
  $ref: "#/components/schemas/IdentifierPattern"
531
- - name: schemaName
532
- in: path
533
- description: Name of the schema
534
- required: true
452
+ - name: sqlStatement
453
+ in: query
454
+ description: SQL statement
455
+ required: false
535
456
  schema:
536
- $ref: "#/components/schemas/IdentifierPattern"
457
+ type: string
537
458
  responses:
538
459
  "200":
539
- description: A list of table names available in the specified schema
460
+ description: SQL source information
540
461
  content:
541
462
  application/json:
542
463
  schema:
543
- type: array
544
- items:
545
- type: string
464
+ $ref: "#/components/schemas/SqlSource"
546
465
  "401":
547
466
  $ref: "#/components/responses/Unauthorized"
548
467
  "404":
@@ -550,16 +469,14 @@ paths:
550
469
  "500":
551
470
  $ref: "#/components/responses/InternalServerError"
552
471
 
553
- /projects/{projectName}/connections/{connectionName}/schemas:
554
- get:
472
+ post:
555
473
  tags:
556
474
  - connections
557
- operationId: list-schemas
558
- summary: List database schemas
475
+ operationId: post-sqlsource
476
+ summary: Create SQL source from statement
559
477
  description: |
560
- Retrieves a list of all schemas (databases) available in the specified connection.
561
- Each schema includes metadata such as name, description, and whether it's the default schema.
562
- This endpoint is useful for exploring the database structure and discovering available data sources.
478
+ Creates a Malloy source from a SQL statement using the specified database connection.
479
+ The SQL statement is executed to generate a source definition that can be used in Malloy models.
563
480
  parameters:
564
481
  - name: projectName
565
482
  in: path
@@ -573,15 +490,23 @@ paths:
573
490
  required: true
574
491
  schema:
575
492
  $ref: "#/components/schemas/IdentifierPattern"
493
+ requestBody:
494
+ description: SQL statement to fetch the SQL source
495
+ required: true
496
+ content:
497
+ application/json:
498
+ schema:
499
+ type: object
500
+ properties:
501
+ sqlStatement:
502
+ type: string
576
503
  responses:
577
504
  "200":
578
- description: A list of schemas available in the connection with metadata
505
+ description: SQL source information
579
506
  content:
580
507
  application/json:
581
508
  schema:
582
- type: array
583
- items:
584
- $ref: "#/components/schemas/SchemaName"
509
+ $ref: "#/components/schemas/SqlSource"
585
510
  "401":
586
511
  $ref: "#/components/responses/Unauthorized"
587
512
  "404":
@@ -589,19 +514,15 @@ paths:
589
514
  "500":
590
515
  $ref: "#/components/responses/InternalServerError"
591
516
 
592
- /projects/{projectName}/connections/{connectionName}/queryData:
593
- get:
517
+ /projects/{projectName}/connections/{connectionName}/sqlQuery:
518
+ post:
594
519
  tags:
595
520
  - connections
596
- operationId: get-querydata
597
- deprecated: true
598
- summary: Execute SQL query (deprecated)
521
+ operationId: post-querydata
522
+ summary: Execute SQL query
599
523
  description: |
600
- **DEPRECATED**: This endpoint is deprecated and may be removed in future versions.
601
- Use the POST version instead for better security and functionality.
602
-
603
524
  Executes a SQL statement against the specified database connection and returns the results.
604
- The query results include data, metadata, and execution information.
525
+ The results include data, metadata, and execution information.
605
526
  parameters:
606
527
  - name: projectName
607
528
  in: path
@@ -615,18 +536,22 @@ paths:
615
536
  required: true
616
537
  schema:
617
538
  $ref: "#/components/schemas/IdentifierPattern"
618
- - name: sqlStatement
619
- in: query
620
- description: SQL statement
621
- required: false
622
- schema:
623
- type: string
624
539
  - name: options
625
540
  in: query
626
541
  description: Options
627
542
  required: false
628
543
  schema:
629
544
  type: string
545
+ requestBody:
546
+ description: SQL statement to execute
547
+ required: true
548
+ content:
549
+ application/json:
550
+ schema:
551
+ type: object
552
+ properties:
553
+ sqlStatement:
554
+ type: string
630
555
  responses:
631
556
  "200":
632
557
  description: Query execution results
@@ -640,15 +565,15 @@ paths:
640
565
  $ref: "#/components/responses/NotFound"
641
566
  "500":
642
567
  $ref: "#/components/responses/InternalServerError"
568
+ /projects/{projectName}/connections/{connectionName}/sqlTemporaryTable:
643
569
  post:
644
570
  tags:
645
571
  - connections
646
- operationId: post-querydata
647
- summary: Execute SQL query
572
+ operationId: post-temporarytable
573
+ summary: Create temporary table
648
574
  description: |
649
- Executes a SQL statement against the specified database connection and returns the results.
650
- This is the preferred method over the deprecated GET version as it provides better security
651
- and supports larger SQL statements. The results include data, metadata, and execution information.
575
+ Creates a temporary table from a SQL statement using the specified database connection.
576
+ Temporary tables are useful for storing intermediate results during complex queries and data processing workflows.
652
577
  parameters:
653
578
  - name: projectName
654
579
  in: path
@@ -662,14 +587,8 @@ paths:
662
587
  required: true
663
588
  schema:
664
589
  $ref: "#/components/schemas/IdentifierPattern"
665
- - name: options
666
- in: query
667
- description: Options
668
- required: false
669
- schema:
670
- type: string
671
590
  requestBody:
672
- description: SQL statement to execute
591
+ description: SQL statement to create the temporary table
673
592
  required: true
674
593
  content:
675
594
  application/json:
@@ -680,11 +599,11 @@ paths:
680
599
  type: string
681
600
  responses:
682
601
  "200":
683
- description: Query execution results
602
+ description: Temporary table information
684
603
  content:
685
604
  application/json:
686
605
  schema:
687
- $ref: "#/components/schemas/QueryData"
606
+ $ref: "#/components/schemas/TemporaryTable"
688
607
  "401":
689
608
  $ref: "#/components/responses/Unauthorized"
690
609
  "404":
@@ -692,6 +611,7 @@ paths:
692
611
  "500":
693
612
  $ref: "#/components/responses/InternalServerError"
694
613
 
614
+ # TODO: Remove this endpoint.
695
615
  /projects/{projectName}/connections/{connectionName}/temporaryTable:
696
616
  get:
697
617
  tags:
@@ -717,36 +637,92 @@ paths:
717
637
  description: Name of the connection
718
638
  required: true
719
639
  schema:
720
- $ref: "#/components/schemas/IdentifierPattern"
721
- - name: sqlStatement
640
+ $ref: "#/components/schemas/IdentifierPattern"
641
+ - name: sqlStatement
642
+ in: query
643
+ description: SQL statement
644
+ required: false
645
+ schema:
646
+ type: string
647
+ responses:
648
+ "200":
649
+ description: Temporary table information
650
+ content:
651
+ application/json:
652
+ schema:
653
+ $ref: "#/components/schemas/TemporaryTable"
654
+ "401":
655
+ $ref: "#/components/responses/Unauthorized"
656
+ "404":
657
+ $ref: "#/components/responses/NotFound"
658
+ "500":
659
+ $ref: "#/components/responses/InternalServerError"
660
+
661
+ # TODO: Remove this endpoint. This is deprecated and replaced by /projects/{projectName}/connections/{connectionName}/table resource.
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
722
693
  in: query
723
- description: SQL statement
694
+ description: Table path
724
695
  required: false
725
696
  schema:
726
697
  type: string
727
698
  responses:
728
699
  "200":
729
- description: Temporary table information
700
+ description: Table source information
730
701
  content:
731
702
  application/json:
732
703
  schema:
733
- $ref: "#/components/schemas/TemporaryTable"
704
+ $ref: "#/components/schemas/TableSource"
734
705
  "401":
735
706
  $ref: "#/components/responses/Unauthorized"
736
707
  "404":
737
708
  $ref: "#/components/responses/NotFound"
738
709
  "500":
739
710
  $ref: "#/components/responses/InternalServerError"
740
- post:
711
+
712
+ # TODO: Remove this endpoint.
713
+ /projects/{projectName}/connections/{connectionName}/queryData:
714
+ get:
741
715
  tags:
742
716
  - connections
743
- operationId: post-temporarytable
744
- summary: Create temporary table
717
+ operationId: get-querydata
718
+ deprecated: true
719
+ summary: Execute SQL query (deprecated)
745
720
  description: |
746
- Creates a temporary table from a SQL statement using the specified database connection.
747
- This is the preferred method over the deprecated GET version as it provides better security
748
- and supports larger SQL statements. Temporary tables are useful for storing intermediate
749
- results during complex queries and data processing workflows.
721
+ **DEPRECATED**: This endpoint is deprecated and may be removed in future versions.
722
+ Use the POST version instead for better security and functionality.
723
+
724
+ Executes a SQL statement against the specified database connection and returns the results.
725
+ The query results include data, metadata, and execution information.
750
726
  parameters:
751
727
  - name: projectName
752
728
  in: path
@@ -760,23 +736,25 @@ paths:
760
736
  required: true
761
737
  schema:
762
738
  $ref: "#/components/schemas/IdentifierPattern"
763
- requestBody:
764
- description: SQL statement to create the temporary table
765
- required: true
766
- content:
767
- application/json:
768
- schema:
769
- type: object
770
- properties:
771
- sqlStatement:
772
- type: string
739
+ - name: sqlStatement
740
+ in: query
741
+ description: SQL statement
742
+ required: false
743
+ schema:
744
+ type: string
745
+ - name: options
746
+ in: query
747
+ description: Options
748
+ required: false
749
+ schema:
750
+ type: string
773
751
  responses:
774
752
  "200":
775
- description: Temporary table information
753
+ description: Query execution results
776
754
  content:
777
755
  application/json:
778
756
  schema:
779
- $ref: "#/components/schemas/TemporaryTable"
757
+ $ref: "#/components/schemas/QueryData"
780
758
  "401":
781
759
  $ref: "#/components/responses/Unauthorized"
782
760
  "404":
@@ -1084,16 +1062,17 @@ paths:
1084
1062
  "501":
1085
1063
  $ref: "#/components/responses/NotImplemented"
1086
1064
 
1087
- /projects/{projectName}/packages/{packageName}/notebooks:
1088
- get:
1065
+ /projects/{projectName}/packages/{packageName}/models/{path}/query:
1066
+ post:
1089
1067
  tags:
1090
- - notebooks
1091
- operationId: list-notebooks
1092
- summary: List package notebooks
1068
+ - models
1069
+ operationId: execute-query-model
1070
+ summary: Execute Malloy query
1093
1071
  description: |
1094
- Retrieves a list of all Malloy notebooks within the specified package. Each notebook entry
1095
- includes the relative path, package name, and any compilation errors. This endpoint
1096
- is useful for discovering available notebooks and checking their status.
1072
+ Executes a Malloy query against a model and returns the results. The query can be specified
1073
+ as a raw Malloy query string or by referencing a named query within the model. This endpoint
1074
+ supports both ad-hoc queries and predefined model queries, making it flexible for various
1075
+ use cases including data exploration, reporting, and application integration.
1097
1076
  parameters:
1098
1077
  - name: projectName
1099
1078
  in: path
@@ -1107,21 +1086,27 @@ paths:
1107
1086
  required: true
1108
1087
  schema:
1109
1088
  $ref: "#/components/schemas/IdentifierPattern"
1110
- - name: versionId
1111
- in: query
1112
- description: Version identifier for the package
1113
- required: false
1089
+ - name: path
1090
+ in: path
1091
+ description: Path to the model within the package
1092
+ required: true
1114
1093
  schema:
1115
- $ref: "#/components/schemas/VersionIdPattern"
1094
+ $ref: "#/components/schemas/PathPattern"
1095
+ requestBody:
1096
+ required: true
1097
+ content:
1098
+ application/json:
1099
+ schema:
1100
+ $ref: "#/components/schemas/QueryRequest"
1116
1101
  responses:
1117
1102
  "200":
1118
- description: A list of models in the package
1103
+ description: Query execution results
1119
1104
  content:
1120
- application/json:
1105
+ "application/json":
1121
1106
  schema:
1122
- type: array
1123
- items:
1124
- $ref: "#/components/schemas/Notebook"
1107
+ $ref: "#/components/schemas/QueryResult"
1108
+ "400":
1109
+ $ref: "#/components/responses/BadRequest"
1125
1110
  "401":
1126
1111
  $ref: "#/components/responses/Unauthorized"
1127
1112
  "404":
@@ -1130,17 +1115,17 @@ paths:
1130
1115
  $ref: "#/components/responses/InternalServerError"
1131
1116
  "501":
1132
1117
  $ref: "#/components/responses/NotImplemented"
1133
-
1134
- /projects/{projectName}/packages/{packageName}/notebooks/{path}:
1118
+
1119
+ /projects/{projectName}/packages/{packageName}/notebooks:
1135
1120
  get:
1136
1121
  tags:
1137
1122
  - notebooks
1138
- operationId: get-notebook
1139
- summary: Get compiled Malloy notebook
1123
+ operationId: list-notebooks
1124
+ summary: List package notebooks
1140
1125
  description: |
1141
- Retrieves a compiled Malloy notebook with its cells, results, and metadata. The notebook
1142
- is compiled using the specified version of the Malloy compiler. This endpoint provides
1143
- access to the notebook's structure, cells, and execution results for use in applications.
1126
+ Retrieves a list of all Malloy notebooks within the specified package. Each notebook entry
1127
+ includes the relative path, package name, and any compilation errors. This endpoint
1128
+ is useful for discovering available notebooks and checking their status.
1144
1129
  parameters:
1145
1130
  - name: projectName
1146
1131
  in: path
@@ -1153,13 +1138,7 @@ paths:
1153
1138
  description: Name of the package
1154
1139
  required: true
1155
1140
  schema:
1156
- type: string
1157
- - name: path
1158
- in: path
1159
- description: Path to notebook within the package.
1160
- required: true
1161
- schema:
1162
- type: string
1141
+ $ref: "#/components/schemas/IdentifierPattern"
1163
1142
  - name: versionId
1164
1143
  in: query
1165
1144
  description: Version identifier for the package
@@ -1168,11 +1147,13 @@ paths:
1168
1147
  $ref: "#/components/schemas/VersionIdPattern"
1169
1148
  responses:
1170
1149
  "200":
1171
- description: A Malloy notebook.
1150
+ description: A list of models in the package
1172
1151
  content:
1173
- "application/json":
1152
+ application/json:
1174
1153
  schema:
1175
- $ref: "#/components/schemas/CompiledNotebook"
1154
+ type: array
1155
+ items:
1156
+ $ref: "#/components/schemas/Notebook"
1176
1157
  "401":
1177
1158
  $ref: "#/components/responses/Unauthorized"
1178
1159
  "404":
@@ -1182,17 +1163,18 @@ paths:
1182
1163
  "501":
1183
1164
  $ref: "#/components/responses/NotImplemented"
1184
1165
 
1185
- /projects/{projectName}/packages/{packageName}/queryResults/{path}:
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
+ /projects/{projectName}/packages/{packageName}/notebooks/{path}:
1186
1169
  get:
1187
1170
  tags:
1188
- - queryresults
1189
- operationId: execute-query
1190
- summary: Execute Malloy query
1171
+ - notebooks
1172
+ operationId: get-notebook
1173
+ summary: Get compiled Malloy notebook
1191
1174
  description: |
1192
- Executes a Malloy query against a model and returns the results. The query can be specified
1193
- as a raw Malloy query string or by referencing a named query within the model. This endpoint
1194
- supports both ad-hoc queries and predefined model queries, making it flexible for various
1195
- use cases including data exploration, reporting, and application integration.
1175
+ Retrieves a compiled Malloy notebook with its cells, results, and metadata. The notebook
1176
+ is compiled using the specified version of the Malloy compiler. This endpoint provides
1177
+ access to the notebook's structure, cells, and execution results for use in applications.
1196
1178
  parameters:
1197
1179
  - name: projectName
1198
1180
  in: path
@@ -1205,46 +1187,26 @@ paths:
1205
1187
  description: Name of the package
1206
1188
  required: true
1207
1189
  schema:
1208
- $ref: "#/components/schemas/IdentifierPattern"
1190
+ type: string
1209
1191
  - name: path
1210
1192
  in: path
1211
- description: Path to the model within the package
1193
+ description: Path to notebook within the package.
1212
1194
  required: true
1213
- schema:
1214
- $ref: "#/components/schemas/PathPattern"
1215
- - in: query
1216
- name: query
1217
- description: Query string to execute on the model. If the query parameter is set, the queryName parameter must be empty.
1218
- required: false
1219
- schema:
1220
- type: string
1221
- - in: query
1222
- name: sourceName
1223
- description: Name of the source in the model to use for queryName, search, and topValue requests.
1224
- required: false
1225
- schema:
1226
- type: string
1227
- - in: query
1228
- name: queryName
1229
- description: Name of a query to execute on a source in the model. Requires the sourceName parameter is set. If the queryName parameter is set, the query parameter must be empty.
1230
- required: false
1231
1195
  schema:
1232
1196
  type: string
1233
- - in: query
1234
- name: versionId
1235
- description: Version ID
1197
+ - name: versionId
1198
+ in: query
1199
+ description: Version identifier for the package
1236
1200
  required: false
1237
1201
  schema:
1238
- type: string
1202
+ $ref: "#/components/schemas/VersionIdPattern"
1239
1203
  responses:
1240
1204
  "200":
1241
- description: Query execution results
1205
+ description: A Malloy notebook.
1242
1206
  content:
1243
1207
  "application/json":
1244
1208
  schema:
1245
- $ref: "#/components/schemas/QueryResult"
1246
- "400":
1247
- $ref: "#/components/responses/BadRequest"
1209
+ $ref: "#/components/schemas/CompiledNotebook"
1248
1210
  "401":
1249
1211
  $ref: "#/components/responses/Unauthorized"
1250
1212
  "404":
@@ -1254,6 +1216,7 @@ paths:
1254
1216
  "501":
1255
1217
  $ref: "#/components/responses/NotImplemented"
1256
1218
 
1219
+
1257
1220
  /projects/{projectName}/packages/{packageName}/databases:
1258
1221
  get:
1259
1222
  tags:
@@ -1301,52 +1264,38 @@ paths:
1301
1264
  "501":
1302
1265
  $ref: "#/components/responses/NotImplemented"
1303
1266
 
1304
- /projects/{projectName}/packages/{packageName}/schedules:
1305
- get:
1267
+ /connections/test:
1268
+ post:
1306
1269
  tags:
1307
- - schedules
1308
- operationId: list-schedules
1309
- summary: List package schedules
1270
+ - connectionsTest
1271
+ operationId: test-connection-configuration
1272
+ summary: Test database connection configuration
1310
1273
  description: |
1311
- Retrieves a list of all scheduled tasks associated with the specified package. These
1312
- schedules define automated operations such as data refresh, report generation, or other
1313
- recurring tasks. Each schedule includes timing information and execution status.
1314
- parameters:
1315
- - name: projectName
1316
- in: path
1317
- description: Name of the project
1318
- required: true
1319
- schema:
1320
- $ref: "#/components/schemas/IdentifierPattern"
1321
- - name: packageName
1322
- in: path
1323
- description: Name of the package
1324
- required: true
1325
- schema:
1326
- $ref: "#/components/schemas/IdentifierPattern"
1327
- - name: versionId
1328
- in: query
1329
- description: Version identifier for the package
1330
- required: false
1331
- schema:
1332
- $ref: "#/components/schemas/VersionIdPattern"
1274
+ Validates a database connection configuration without adding it to any project.
1275
+ This endpoint allows you to test connection parameters, credentials, and network
1276
+ connectivity before committing the connection to a project. Useful for troubleshooting
1277
+ connection issues and validating configurations during setup.
1278
+ requestBody:
1279
+ required: true
1280
+ content:
1281
+ application/json:
1282
+ schema:
1283
+ $ref: '#/components/schemas/Connection'
1333
1284
  responses:
1334
1285
  "200":
1335
- description: A list of scheduled tasks
1286
+ description: Connection test result
1336
1287
  content:
1337
1288
  application/json:
1338
1289
  schema:
1339
- type: array
1340
- items:
1341
- $ref: "#/components/schemas/Schedule"
1290
+ $ref: '#/components/schemas/ConnectionStatus'
1291
+ "400":
1292
+ $ref: "#/components/responses/BadRequest"
1342
1293
  "401":
1343
1294
  $ref: "#/components/responses/Unauthorized"
1344
1295
  "404":
1345
1296
  $ref: "#/components/responses/NotFound"
1346
1297
  "500":
1347
1298
  $ref: "#/components/responses/InternalServerError"
1348
- "501":
1349
- $ref: "#/components/responses/NotImplemented"
1350
1299
 
1351
1300
  /watch-mode/status:
1352
1301
  get:
@@ -1648,6 +1597,23 @@ components:
1648
1597
  items:
1649
1598
  type: string
1650
1599
 
1600
+ QueryRequest:
1601
+ type: object
1602
+ description: Request body for executing a Malloy query
1603
+ properties:
1604
+ query:
1605
+ type: string
1606
+ description: Query string to execute on the model. If the query parameter is set, the queryName parameter must be empty.
1607
+ sourceName:
1608
+ type: string
1609
+ description: Name of the source in the model to use for queryName, search, and topValue requests.
1610
+ queryName:
1611
+ type: string
1612
+ description: Name of a query to execute on a source in the model. Requires the sourceName parameter is set. If the queryName parameter is set, the query parameter must be empty.
1613
+ versionId:
1614
+ type: string
1615
+ description: Version ID
1616
+
1651
1617
  NotebookCell:
1652
1618
  type: object
1653
1619
  description: Individual cell within a Malloy notebook
@@ -1696,30 +1662,7 @@ components:
1696
1662
  description: Type of embedded database
1697
1663
  enum: ["embedded", "materialized"]
1698
1664
 
1699
- Schedule:
1700
- type: object
1701
- description: Scheduled task configuration and status
1702
- properties:
1703
- resource:
1704
- type: string
1705
- description: Resource path in the package that the schedule is attached to
1706
- schedule:
1707
- type: string
1708
- description: Schedule expression in cron format for executing the task
1709
- action:
1710
- type: string
1711
- description: Action to execute when the schedule triggers
1712
- connection:
1713
- type: string
1714
- description: Name of the connection to perform the action on
1715
- lastRunTime:
1716
- type: number
1717
- description: Unix timestamp in milliseconds of the last execution
1718
- lastRunStatus:
1719
- type: string
1720
- description: Status of the last execution
1721
-
1722
- SchemaName:
1665
+ Schema:
1723
1666
  description: A schema name in a Connection.
1724
1667
  type: object
1725
1668
  properties:
@@ -1749,7 +1692,7 @@ components:
1749
1692
  type:
1750
1693
  type: string
1751
1694
  description: Type of database connection
1752
- enum: [postgres, bigquery, snowflake, trino, mysql]
1695
+ enum: [postgres, bigquery, snowflake, trino, mysql, duckdb]
1753
1696
  attributes:
1754
1697
  $ref: "#/components/schemas/ConnectionAttributes"
1755
1698
  postgresConnection:
@@ -1762,6 +1705,8 @@ components:
1762
1705
  $ref: "#/components/schemas/TrinoConnection"
1763
1706
  mysqlConnection:
1764
1707
  $ref: "#/components/schemas/MysqlConnection"
1708
+ duckdbConnection:
1709
+ $ref: "#/components/schemas/DuckdbConnection"
1765
1710
 
1766
1711
  ConnectionAttributes:
1767
1712
  type: object
@@ -1898,6 +1843,36 @@ components:
1898
1843
  type: string
1899
1844
  description: Trino password for authentication
1900
1845
 
1846
+ DuckdbConnection:
1847
+ type: object
1848
+ description: DuckDB database connection configuration
1849
+ properties:
1850
+ attachedDatabases:
1851
+ array:
1852
+ $ref: "#/components/schemas/AttachedDatabase"
1853
+
1854
+ AttachedDatabase:
1855
+ type: object
1856
+ description: Attached DuckDB database
1857
+ properties:
1858
+ name:
1859
+ type: string
1860
+ description: Name of the connection
1861
+ type:
1862
+ type: string
1863
+ description: Type of database connection
1864
+ enum: [bigquery, snowflake, postgres]
1865
+ attributes:
1866
+ $ref: "#/components/schemas/ConnectionAttributes"
1867
+ bigqueryConnection:
1868
+ $ref: "#/components/schemas/BigqueryConnection"
1869
+ snowflakeConnection:
1870
+ $ref: "#/components/schemas/SnowflakeConnection"
1871
+ postgresConnection:
1872
+ $ref: "#/components/schemas/PostgresConnection"
1873
+
1874
+
1875
+ # TODO: What is this? Can we remove it?
1901
1876
  SqlSource:
1902
1877
  type: object
1903
1878
  properties:
@@ -1908,8 +1883,22 @@ components:
1908
1883
  source:
1909
1884
  type: string
1910
1885
 
1886
+ Table:
1887
+ type: object
1888
+ properties:
1889
+ resource:
1890
+ type: string
1891
+ description: Resource path to the table.
1892
+ columns:
1893
+ description: Table fields
1894
+ type: array
1895
+ items:
1896
+ $ref: "#/components/schemas/Column"
1897
+
1898
+ # TODO: Remove this. Replaced by Table
1911
1899
  TableSource:
1912
1900
  type: object
1901
+ deprecated: true
1913
1902
  properties:
1914
1903
  resource:
1915
1904
  type: string