@malloy-publisher/app 0.0.188 → 0.0.382-dev

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
@@ -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 deletion of data modeling projects
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 and access
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 distribution
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:
@@ -728,12 +735,6 @@ paths:
728
735
  required: true
729
736
  schema:
730
737
  $ref: "#/components/schemas/IdentifierPattern"
731
- - name: options
732
- in: query
733
- description: Options
734
- required: false
735
- schema:
736
- type: string
737
738
  requestBody:
738
739
  description: SQL statement to execute
739
740
  required: true
@@ -744,6 +745,9 @@ paths:
744
745
  properties:
745
746
  sqlStatement:
746
747
  type: string
748
+ options:
749
+ type: string
750
+ description: Options
747
751
  responses:
748
752
  "200":
749
753
  description: Query execution results
@@ -960,6 +964,16 @@ paths:
960
964
  required: true
961
965
  schema:
962
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
963
977
  requestBody:
964
978
  required: true
965
979
  content:
@@ -1305,7 +1319,8 @@ paths:
1305
1319
  type: string
1306
1320
  - name: path
1307
1321
  in: path
1308
- description: Path to the model within the package (used to resolve relative imports)
1322
+ description: Path to the model within the package (used to resolve relative
1323
+ imports)
1309
1324
  required: true
1310
1325
  schema:
1311
1326
  $ref: "#/components/schemas/PathPattern"
@@ -1660,10 +1675,225 @@ paths:
1660
1675
  "503":
1661
1676
  $ref: "#/components/responses/ServiceUnavailable"
1662
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"
1891
+
1663
1892
  components:
1664
1893
  responses:
1665
1894
  BadRequest:
1666
- description: The request was malformed or cannot be performed given the current state of the system
1895
+ description: The request was malformed or cannot be performed given the current
1896
+ state of the system
1667
1897
  content:
1668
1898
  application/json:
1669
1899
  schema:
@@ -1705,7 +1935,8 @@ components:
1705
1935
  schema:
1706
1936
  $ref: "#/components/schemas/Error"
1707
1937
  ServiceUnavailable:
1708
- description: The service is temporarily unavailable, typically due to initialization, or draining state (Rolling updates, etc.)
1938
+ description: The service is temporarily unavailable, typically due to
1939
+ initialization, or draining state (Rolling updates, etc.)
1709
1940
  content:
1710
1941
  application/json:
1711
1942
  schema:
@@ -1744,15 +1975,20 @@ components:
1744
1975
  description: Whether the server is fully initialized and ready to serve requests
1745
1976
  operationalState:
1746
1977
  type: string
1747
- enum: ["initializing", "serving", "draining"]
1748
- description: Status of the server; initializing when the server is loading projects, packages and connections, serving when the server is initialized and ready to serve requests, and draining when the server is going to shut down
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
1749
1983
  frozenConfig:
1750
1984
  type: boolean
1751
- description: Whether the server configuration is frozen (read-only mode). When true, all mutation operations are disabled.
1985
+ description: Whether the server configuration is frozen (read-only mode). When
1986
+ true, all mutation operations are disabled.
1752
1987
 
1753
1988
  Project:
1754
1989
  type: object
1755
- description: Represents a Malloy project containing packages, connections, and other resources
1990
+ description: Represents a Malloy project containing packages, connections, and
1991
+ other resources
1756
1992
  properties:
1757
1993
  resource:
1758
1994
  type: string
@@ -1765,7 +2001,8 @@ components:
1765
2001
  description: Project README content
1766
2002
  location:
1767
2003
  type: string
1768
- description: Project location, can be an absolute path or URI (e.g. github, s3, gcs, etc.)
2004
+ description: Project location, can be an absolute path or URI (e.g. github, s3,
2005
+ gcs, etc.)
1769
2006
  connections:
1770
2007
  type: array
1771
2008
  description: List of database connections configured for this project
@@ -1776,10 +2013,24 @@ components:
1776
2013
  description: List of Malloy packages in this project
1777
2014
  items:
1778
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
1779
2029
 
1780
2030
  Package:
1781
2031
  type: object
1782
- description: Represents a Malloy package containing models, notebooks, and embedded databases
2032
+ description: Represents a Malloy package containing models, notebooks, and
2033
+ embedded databases
1783
2034
  properties:
1784
2035
  resource:
1785
2036
  type: string
@@ -1792,7 +2043,8 @@ components:
1792
2043
  description: Package description
1793
2044
  location:
1794
2045
  type: string
1795
- description: Package location, can be an absolute path or URI (e.g. github, s3, gcs, etc.)
2046
+ description: Package location, can be an absolute path or URI (e.g. github, s3,
2047
+ gcs, etc.)
1796
2048
 
1797
2049
  Model:
1798
2050
  type: object
@@ -1881,7 +2133,8 @@ components:
1881
2133
  description: JSON string containing model metadata and structure information
1882
2134
  sourceInfos:
1883
2135
  type: array
1884
- description: Array of JSON strings containing source information for each data source
2136
+ description: Array of JSON strings containing source information for each data
2137
+ source
1885
2138
  items:
1886
2139
  type: string
1887
2140
  queries:
@@ -1951,7 +2204,8 @@ components:
1951
2204
  description: Whether a value must be provided
1952
2205
  dimensionType:
1953
2206
  type: string
1954
- description: Malloy data type of the dimension (e.g. string, number, boolean, date, timestamp)
2207
+ description: Malloy data type of the dimension (e.g. string, number, boolean,
2208
+ date, timestamp)
1955
2209
 
1956
2210
  Source:
1957
2211
  type: object
@@ -1982,33 +2236,35 @@ components:
1982
2236
  properties:
1983
2237
  query:
1984
2238
  type: string
1985
- description: Query string to execute on the model. If the query parameter is set, the queryName parameter must be empty.
2239
+ description: Query string to execute on the model. If the query parameter is
2240
+ set, the queryName parameter must be empty.
1986
2241
  sourceName:
1987
2242
  type: string
1988
- description: Name of the source in the model to use for queryName, search, and topValue requests.
2243
+ description: Name of the source in the model to use for queryName, search, and
2244
+ topValue requests.
1989
2245
  queryName:
1990
2246
  type: string
1991
- 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.
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.
1992
2250
  compactJson:
1993
2251
  type: boolean
1994
2252
  default: false
1995
- description: 'If true, returns a simple JSON array of row objects in the form {"columnName": value}. If false (default), returns the full Malloy result with type metadata for rendering.'
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."
1996
2256
  versionId:
1997
2257
  type: string
1998
2258
  description: Version ID
1999
2259
  filterParams:
2000
2260
  type: object
2001
- description: Filter parameter values keyed by filter name. Used with sources that declare #(filter) annotations.
2002
- additionalProperties:
2003
- oneOf:
2004
- - type: string
2005
- - type: array
2006
- items:
2007
- type: string
2261
+ description: Filter parameter values keyed by filter name. Used with sources
2262
+ that declare \#(filter) annotations. Each value is either a string or an array of strings.
2263
+ additionalProperties: true
2008
2264
  bypassFilters:
2009
2265
  type: boolean
2010
2266
  default: false
2011
- description: When true, skip server-side #(filter) injection entirely.
2267
+ description: When true, skip server-side \#(filter) injection entirely.
2012
2268
 
2013
2269
  NotebookCell:
2014
2270
  type: object
@@ -2016,19 +2272,21 @@ components:
2016
2272
  properties:
2017
2273
  type:
2018
2274
  type: string
2019
- enum: ["markdown", "code"]
2275
+ enum: [ "markdown", "code" ]
2020
2276
  description: Type of notebook cell
2021
2277
  text:
2022
2278
  type: string
2023
2279
  description: Text contents of the notebook cell (either markdown or Malloy code)
2024
2280
  newSources:
2025
2281
  type: array
2026
- description: Array of JSON strings containing SourceInfo objects made available in this cell
2282
+ description: Array of JSON strings containing SourceInfo objects made available
2283
+ in this cell
2027
2284
  items:
2028
2285
  type: string
2029
2286
  queryInfo:
2030
2287
  type: string
2031
- description: JSON string containing QueryInfo object for the query in this cell (if the cell contains a query)
2288
+ description: JSON string containing QueryInfo object for the query in this cell
2289
+ (if the cell contains a query)
2032
2290
 
2033
2291
  NotebookCellResult:
2034
2292
  type: object
@@ -2036,7 +2294,7 @@ components:
2036
2294
  properties:
2037
2295
  type:
2038
2296
  type: string
2039
- enum: ["markdown", "code"]
2297
+ enum: [ "markdown", "code" ]
2040
2298
  description: Type of notebook cell
2041
2299
  text:
2042
2300
  type: string
@@ -2046,7 +2304,8 @@ components:
2046
2304
  description: JSON string containing the execution result for this cell
2047
2305
  newSources:
2048
2306
  type: array
2049
- description: Array of JSON strings containing SourceInfo objects made available in this cell
2307
+ description: Array of JSON strings containing SourceInfo objects made available
2308
+ in this cell
2050
2309
  items:
2051
2310
  type: string
2052
2311
 
@@ -2056,13 +2315,15 @@ components:
2056
2315
  properties:
2057
2316
  result:
2058
2317
  type: string
2059
- description: JSON string containing the query results, metadata, and execution information
2318
+ description: JSON string containing the query results, metadata, and execution
2319
+ information
2060
2320
  resource:
2061
2321
  type: string
2062
2322
  description: Resource path to the query result
2063
2323
  renderLogs:
2064
2324
  type: array
2065
- description: Render tag validation messages (errors, warnings) detected during query preparation
2325
+ description: Render tag validation messages (errors, warnings) detected during
2326
+ query preparation
2066
2327
  items:
2067
2328
  $ref: "#/components/schemas/LogMessage"
2068
2329
 
@@ -2094,7 +2355,7 @@ components:
2094
2355
  severity:
2095
2356
  type: string
2096
2357
  description: Severity level of the log message
2097
- enum: ["debug", "info", "warn", "error"]
2358
+ enum: [ "debug", "info", "warn", "error" ]
2098
2359
  message:
2099
2360
  type: string
2100
2361
  description: Human-readable log message
@@ -2114,7 +2375,7 @@ components:
2114
2375
  type:
2115
2376
  type: string
2116
2377
  description: Type of embedded database
2117
- enum: ["embedded", "materialized"]
2378
+ enum: [ "embedded", "materialized" ]
2118
2379
 
2119
2380
  Schema:
2120
2381
  description: A schema name in a Connection.
@@ -2214,7 +2475,8 @@ components:
2214
2475
  description: PostgreSQL password for authentication
2215
2476
  connectionString:
2216
2477
  type: string
2217
- description: Complete PostgreSQL connection string (alternative to individual parameters)
2478
+ description: Complete PostgreSQL connection string (alternative to individual
2479
+ parameters)
2218
2480
 
2219
2481
  MysqlConnection:
2220
2482
  type: object
@@ -2277,19 +2539,21 @@ components:
2277
2539
  AzureConnection:
2278
2540
  type: object
2279
2541
  description: >
2280
- Azure Data Lake Storage (ADLS Gen2) / Blob Storage connection configuration
2281
- Supports https://, http://, abfss://, and az:// URL schemes.
2542
+ Azure Data Lake Storage (ADLS Gen2) / Blob Storage connection
2543
+ configuration Supports https://, http://, abfss://, and az:// URL
2544
+ schemes.
2282
2545
  properties:
2283
2546
  authType:
2284
2547
  type: string
2285
- enum: [service_principal, sas_token]
2548
+ enum: [ service_principal, sas_token ]
2286
2549
  description: Authentication method for Azure Storage
2287
2550
  sasUrl:
2288
2551
  type: string
2289
2552
  description: >
2290
- Full SAS URL including token; required for sas_token auth.
2291
- Supports single file, directory glob (*.ext), or recursive (**) patterns.
2292
- Example: https://account.blob.core.windows.net/container/path/*.parquet?sp=rl&st=...
2553
+ Full SAS URL including token; required for sas_token auth. Supports
2554
+ single file, directory glob (*.ext), or recursive (**) patterns.
2555
+ Example:
2556
+ https://account.blob.core.windows.net/container/path/*.parquet?sp=rl&st=...
2293
2557
  tenantId:
2294
2558
  type: string
2295
2559
  description: Azure AD tenant ID (required for service_principal)
@@ -2306,8 +2570,9 @@ components:
2306
2570
  type: string
2307
2571
  description: >
2308
2572
  Azure file URL to query; required for service_principal auth.
2309
- Supports single file, directory glob (*.ext), or recursive (**) patterns.
2310
- Example: https://account.blob.core.windows.net/container/path/**
2573
+ Supports single file, directory glob (*.ext), or recursive (**)
2574
+ patterns. Example:
2575
+ https://account.blob.core.windows.net/container/path/**
2311
2576
  required:
2312
2577
  - authType
2313
2578
 
@@ -2321,7 +2586,8 @@ components:
2321
2586
  properties:
2322
2587
  bucketUrl:
2323
2588
  type: string
2324
- description: URL of the storage bucket (e.g. s3://my-bucket/path or gs://my-bucket/path)
2589
+ description: URL of the storage bucket (e.g. s3://my-bucket/path or
2590
+ gs://my-bucket/path)
2325
2591
  s3Connection:
2326
2592
  $ref: "#/components/schemas/S3Connection"
2327
2593
  description: AWS S3 connection configuration for data storage
@@ -2457,7 +2723,7 @@ components:
2457
2723
  type:
2458
2724
  type: string
2459
2725
  description: Type of database connection
2460
- enum: [bigquery, snowflake, postgres, gcs, s3, azure]
2726
+ enum: [ bigquery, snowflake, postgres, gcs, s3, azure ]
2461
2727
  attributes:
2462
2728
  $ref: "#/components/schemas/ConnectionAttributes"
2463
2729
  bigqueryConnection:
@@ -2588,7 +2854,8 @@ components:
2588
2854
  description: Name of the project being watched for file changes
2589
2855
  watchingPath:
2590
2856
  type: string
2591
- description: The file system path being monitored for changes, null if not watching
2857
+ description: The file system path being monitored for changes, null if not
2858
+ watching
2592
2859
  required:
2593
2860
  - enabled
2594
2861
  - projectName
@@ -2611,7 +2878,7 @@ components:
2611
2878
  status:
2612
2879
  type: string
2613
2880
  description: Connection test result status
2614
- enum: ["ok", "failed"]
2881
+ enum: [ "ok", "failed" ]
2615
2882
  errorMessage:
2616
2883
  type: string
2617
2884
  description: Error message if the connection test failed, null if successful
@@ -2626,7 +2893,9 @@ components:
2626
2893
  includeSql:
2627
2894
  type: boolean
2628
2895
  default: false
2629
- description: If true, returns the generated SQL alongside compilation results (only available when compilation succeeds and the source contains a runnable query).
2896
+ description: If true, returns the generated SQL alongside compilation results
2897
+ (only available when compilation succeeds and the source contains a
2898
+ runnable query).
2630
2899
  required:
2631
2900
  - source
2632
2901
 
@@ -2636,8 +2905,9 @@ components:
2636
2905
  properties:
2637
2906
  status:
2638
2907
  type: string
2639
- description: Overall compilation status — "error" if any problems have error severity
2640
- enum: ["success", "error"]
2908
+ description: Overall compilation status — "error" if any problems have error
2909
+ severity
2910
+ enum: [ "success", "error" ]
2641
2911
  problems:
2642
2912
  type: array
2643
2913
  description: List of compilation problems (errors and warnings)
@@ -2645,7 +2915,8 @@ components:
2645
2915
  $ref: "#/components/schemas/CompileProblem"
2646
2916
  sql:
2647
2917
  type: string
2648
- description: Generated SQL for the compiled query. Only present when includeSql is true and compilation succeeds with a runnable query.
2918
+ description: Generated SQL for the compiled query. Only present when includeSql
2919
+ is true and compilation succeeds with a runnable query.
2649
2920
 
2650
2921
  CompileProblem:
2651
2922
  type: object
@@ -2657,7 +2928,7 @@ components:
2657
2928
  severity:
2658
2929
  type: string
2659
2930
  description: Severity level of the problem
2660
- enum: ["error", "warn", "debug"]
2931
+ enum: [ "error", "warn", "debug" ]
2661
2932
  code:
2662
2933
  type: string
2663
2934
  description: Machine-readable error code
@@ -2671,3 +2942,95 @@ components:
2671
2942
  range:
2672
2943
  type: object
2673
2944
  description: Character range within the source file
2945
+
2946
+ CreateMaterializationRequest:
2947
+ type: object
2948
+ description: Options for creating a materialization
2949
+ properties:
2950
+ forceRefresh:
2951
+ type: boolean
2952
+ default: false
2953
+ description: If true, forces rebuild of all sources even if their BuildID is
2954
+ unchanged
2955
+ autoLoadManifest:
2956
+ type: boolean
2957
+ default: false
2958
+ description: If true, automatically reloads the manifest into the Malloy Runtime
2959
+ after a successful materialization
2960
+
2961
+ Materialization:
2962
+ type: object
2963
+ description: A record of a package materialization
2964
+ properties:
2965
+ id:
2966
+ type: string
2967
+ projectId:
2968
+ type: string
2969
+ packageName:
2970
+ type: string
2971
+ status:
2972
+ type: string
2973
+ enum: [ "PENDING", "RUNNING", "SUCCESS", "FAILED", "CANCELLED" ]
2974
+ startedAt:
2975
+ type: [ "string", "null" ]
2976
+ format: date-time
2977
+ completedAt:
2978
+ type: [ "string", "null" ]
2979
+ format: date-time
2980
+ error:
2981
+ type: [ "string", "null" ]
2982
+ description: Error message if the materialization failed
2983
+ metadata:
2984
+ type: [ "object", "null" ]
2985
+ description: Materialization metadata including build options, source counts,
2986
+ and durations
2987
+ createdAt:
2988
+ type: string
2989
+ format: date-time
2990
+ updatedAt:
2991
+ type: string
2992
+ format: date-time
2993
+
2994
+ BuildManifest:
2995
+ type: object
2996
+ description: Manifest mapping BuildIDs to materialized table names
2997
+ properties:
2998
+ entries:
2999
+ type: object
3000
+ additionalProperties:
3001
+ $ref: "#/components/schemas/ManifestEntry"
3002
+ description: Map of BuildID to manifest entry
3003
+ strict:
3004
+ type: boolean
3005
+ description: Whether the manifest is in strict mode
3006
+
3007
+ ManifestEntry:
3008
+ type: object
3009
+ description: A single entry in the build manifest
3010
+ properties:
3011
+ tableName:
3012
+ type: string
3013
+ description: Name of the materialized table
3014
+
3015
+ parameters:
3016
+ projectName:
3017
+ name: projectName
3018
+ in: path
3019
+ required: true
3020
+ description: Name of the project
3021
+ schema:
3022
+ type: string
3023
+ packageName:
3024
+ name: packageName
3025
+ in: path
3026
+ required: true
3027
+ description: Name of the package
3028
+ schema:
3029
+ type: string
3030
+ materializationId:
3031
+ name: materializationId
3032
+ in: path
3033
+ required: true
3034
+ description: ID of the materialization
3035
+ schema:
3036
+ type: string