@malloy-publisher/app 0.8.2 → 0.8.4

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
@@ -7,7 +7,7 @@ info:
7
7
  description: |
8
8
  The Malloy Publisher - Semantic Model Serving API provides access to Malloy packages and everything they contain.
9
9
  A Malloy package is a directory with a `publisher.json` manifest at its root, holding Malloy models (`.malloy` files),
10
- notebooks (`.malloynb` files), embedded data (`.parquet`, `.csv`, and `.xlsx` files), and optionally an HTML data app
10
+ notebooks (`.malloynb` files and `.malloy` files under `notebooks/`), embedded data (`.parquet`, `.csv`, and `.xlsx` files), and optionally an HTML data app
11
11
  under `public/`.
12
12
 
13
13
  ## Key Features
@@ -1567,9 +1567,16 @@ paths:
1567
1567
  operationId: list-models
1568
1568
  summary: List package models
1569
1569
  description: |
1570
- Retrieves a list of all Malloy models within the specified package. Each model entry
1571
- includes the relative path, package name, and any compilation errors. This endpoint
1572
- is useful for discovering available models and checking their status.
1570
+ Retrieves the Malloy models within the specified package. Each model entry includes
1571
+ the relative path, package name, whether the file is on the package's surface, and any
1572
+ compilation errors.
1573
+
1574
+ On a package with a surface (a root `index.malloy`, or a legacy `explores`), only the
1575
+ files on that surface are listed, unless `includeHiddenFilesAndSources` is true. With it, every
1576
+ model file is listed and `onSurface` marks the ones on the surface. Dashboard files
1577
+ are listed by the dashboards route either way. Served notebooks (`.malloy` files under
1578
+ `notebooks/` that carry an `## artifact` note) are not models here, with or without a
1579
+ surface; they are listed by list-notebooks.
1573
1580
  parameters:
1574
1581
  - name: environmentName
1575
1582
  in: path
@@ -1589,6 +1596,7 @@ paths:
1589
1596
  required: false
1590
1597
  schema:
1591
1598
  $ref: "#/components/schemas/VersionIdPattern"
1599
+ - $ref: "#/components/parameters/includeHiddenFilesAndSources"
1592
1600
  responses:
1593
1601
  "200":
1594
1602
  description: A list of models in the package
@@ -1621,14 +1629,16 @@ paths:
1621
1629
  provides access to the model's structure, sources, and named queries for use in applications.
1622
1630
 
1623
1631
  On a package with a surface (a root `index.malloy`, or a legacy `explores`), a file off
1624
- that surface answers 404 with the same message a query to it gets. Dashboard files are
1625
- always returned. A package with no surface, or with `queryableSources: "all"`, returns
1626
- every file. For a file it returns, `modelDef.contents` and `modelDef.exports`,
1632
+ that surface answers 404 with the same message a query to it gets, unless
1633
+ `includeHiddenFilesAndSources` is true. With it, the file is returned with its `sourceText`, whatever
1634
+ sources the text names. Dashboard files and served notebooks (`notebooks/*.malloy` with
1635
+ an `## artifact` note) are always returned. A package with no surface, or with
1636
+ `queryableSources: "all"`, returns every file. For a file it returns, `modelDef.contents` and `modelDef.exports`,
1627
1637
  `modelInfo`, `sources` and `sourceInfos` are limited to the names the file publishes, so
1628
1638
  the surface file does not carry the hidden sources it imports. A join to a hidden source
1629
1639
  keeps only its name and the names and types of its fields. `sourceText` is left out
1630
- when the text names a source the file does not publish; a dashboard's text is always
1631
- returned.
1640
+ when the text names a source the file does not publish; the text of a dashboard is
1641
+ always returned.
1632
1642
  parameters:
1633
1643
  - name: environmentName
1634
1644
  in: path
@@ -1654,6 +1664,7 @@ paths:
1654
1664
  required: false
1655
1665
  schema:
1656
1666
  $ref: "#/components/schemas/VersionIdPattern"
1667
+ - $ref: "#/components/parameters/includeHiddenFilesAndSources"
1657
1668
  responses:
1658
1669
  "200":
1659
1670
  description: Compiled Malloy model
@@ -1808,6 +1819,7 @@ paths:
1808
1819
  required: true
1809
1820
  schema:
1810
1821
  $ref: "#/components/schemas/PathPattern"
1822
+ - $ref: "#/components/parameters/includeHiddenFilesAndSources"
1811
1823
  requestBody:
1812
1824
  required: true
1813
1825
  content:
@@ -2042,8 +2054,10 @@ paths:
2042
2054
  operationId: list-notebooks
2043
2055
  summary: List package notebooks
2044
2056
  description: |
2045
- Retrieves a list of all Malloy notebooks within the specified package. Each notebook entry
2046
- includes the relative path, package name, and any compilation errors. This endpoint
2057
+ Retrieves a list of all Malloy notebooks within the specified package: every
2058
+ `.malloynb` file, and every `.malloy` file directly under `notebooks/` that has a
2059
+ model-level `## artifact` note. Each notebook entry includes the relative path,
2060
+ package name, title, description, and any compilation or reading error. This endpoint
2047
2061
  is useful for discovering available notebooks and checking their status.
2048
2062
  parameters:
2049
2063
  - name: environmentName
@@ -2066,7 +2080,7 @@ paths:
2066
2080
  $ref: "#/components/schemas/VersionIdPattern"
2067
2081
  responses:
2068
2082
  "200":
2069
- description: A list of models in the package
2083
+ description: A list of notebooks in the package
2070
2084
  content:
2071
2085
  application/json:
2072
2086
  schema:
@@ -2093,6 +2107,8 @@ paths:
2093
2107
  description: |
2094
2108
  Retrieves a Malloy notebook with its raw cell contents (markdown and code).
2095
2109
  Cell execution should be done separately via the execute-notebook-cell endpoint.
2110
+ A served `notebooks/*.malloy` (one with an `## artifact` note) answers here as well as a
2111
+ `.malloynb`.
2096
2112
  On a package with a surface, the response shows only the sources the notebook may read.
2097
2113
  parameters:
2098
2114
  - name: environmentName
@@ -2144,7 +2160,8 @@ paths:
2144
2160
  description: |
2145
2161
  Executes a specific cell in a Malloy notebook by index. For code cells, this compiles
2146
2162
  and runs the Malloy code, returning query results and any new sources defined.
2147
- For markdown cells, this simply returns the cell content.
2163
+ For markdown cells, this simply returns the cell content. A served `notebooks/*.malloy`
2164
+ answers here as well as a `.malloynb`.
2148
2165
 
2149
2166
  On a package with a surface (a root `index.malloy`, or a legacy `explores`) with
2150
2167
  `queryableSources` left at `"declared"`, a code cell may read only sources the surface
@@ -2839,6 +2856,26 @@ components:
2839
2856
  governor). Already-loaded packages remain serviceable while throttled;
2840
2857
  callers can treat a throttled server as unhealthy for new load.
2841
2858
  Only reported when the memory governor is enabled.
2859
+ version:
2860
+ type: string
2861
+ readOnly: true
2862
+ description:
2863
+ This server's release version, for example "0.8.2". Use it to tell
2864
+ which build answered, for instance to rule out an old copy served
2865
+ from the npx cache.
2866
+ emptyReason:
2867
+ type: string
2868
+ readOnly: true
2869
+ description:
2870
+ Present only when the server has no environments because no
2871
+ publisher.config.json was found at startup, or because the --config
2872
+ path it was given does not exist. It names the path that was checked
2873
+ and how to fix it. It describes startup, so a config written while
2874
+ the server runs is not read until a restart. A server in this state
2875
+ still reports serving, so check this before treating an empty
2876
+ environments list as intended. Absent once any environment exists, including one created
2877
+ at runtime through the API, and absent when a config was found but
2878
+ lists no environments.
2842
2879
  loadErrors:
2843
2880
  type: array
2844
2881
  readOnly: true
@@ -3201,7 +3238,28 @@ components:
3201
3238
  than about the package: one when a file carrying an artifact tag
3202
3239
  could not be read and so is not served at all, and one when the lint
3203
3240
  stops early, in which case the list must be read as incomplete
3204
- rather than as a clean package. Server-computed and read-only:
3241
+ rather than as a clean package. Notebook findings: a `notebooks/`
3242
+ file with an `## artifact` note whose cells could not be read, which
3243
+ names the line and the fix and is reported with severity `error`,
3244
+ because the notebook is served with that error instead of opening.
3245
+ The same family carries findings on files under `notebooks/` and
3246
+ `dashboards/`, each naming its line and the fix; they are computed
3247
+ at discovery and are also returned by `/compile` at file and
3248
+ package scope. Eight codes are `error` and fail `/compile`:
3249
+ `notebook-statement-above-artifact` and `notebook-tag-above-artifact`
3250
+ (a statement or a tag above a served notebook's `## artifact`),
3251
+ `notebook-markdown-above-artifact` (a `(markdown)` annotation above
3252
+ it), `notebook-columns-conflict` (a tiled dashboard's
3253
+ `dashboard_columns` disagrees with `dashboard { columns }`),
3254
+ `notebook-markdown-opener-text` (more than a
3255
+ name after `(markdown)` on a block's opener),
3256
+ `notebook-markdown-attached-nowhere` (a `#(markdown)` annotation
3257
+ with no statement to take it), `notebook-artifact-unparsed` (an
3258
+ `## artifact` tag does not parse), and `notebook-cells-unreadable`
3259
+ (the reader could not read a served notebook's cells). The rest are
3260
+ `warn` (a mistyped `(markdown)` opener, a missing `kind=notebook`, a
3261
+ block that never closes, and similar).
3262
+ Server-computed and read-only:
3205
3263
  ignored on
3206
3264
  create/update requests and only returned in responses. Present only
3207
3265
  when there are such findings.
@@ -3591,13 +3649,18 @@ components:
3591
3649
  State of a package's semantic discovery index. Poll `status` until
3592
3650
  `ready` to know retrieval is warm - before this, that state existed
3593
3651
  only as a server log line, so anything waiting on a warm index had to
3594
- scrape logs. Every count is scoped to the embedding model currently
3595
- configured, matching what the search path reads, so a server pointed
3596
- at a new model reports the index as not yet ready rather than
3597
- reporting rows retrieval would reject. Reading it takes no locks, so
3598
- polling cannot perturb an indexing run; note that the first read after
3599
- a package loads or reloads builds the package's entity index, which is
3600
- work a metadata read would not otherwise do.
3652
+ scrape logs. Send the package one `get_context` question first, then
3653
+ poll: only a question starts the sync, and a restart forgets which
3654
+ syncs completed, so after every restart each package reads `indexing`
3655
+ until it is asked something. Polling before asking waits forever.
3656
+ Every count is scoped to the embedding model currently configured, so
3657
+ rows left behind by an earlier model are never counted. Read `status` for readiness and the counts for
3658
+ coverage: they answer different questions, and only `status` tracks
3659
+ what the search path will do. The first read after a package loads or
3660
+ reloads builds the package's entity index and its content
3661
+ fingerprint, which is work a metadata read would not otherwise do.
3662
+ After that a read is two row counts and never waits on a sync, so
3663
+ polling is cheap.
3601
3664
  properties:
3602
3665
  status:
3603
3666
  type: string
@@ -3607,12 +3670,27 @@ components:
3607
3670
  - cooldown
3608
3671
  - too-many-entities
3609
3672
  description: >-
3610
- `indexing` = at least one current entity has no usable vector yet.
3611
- Retrieval answers lexically meanwhile. This clears once a
3612
- `get_context` question triggers a sync, which is what builds
3613
- the index; it does not clear on its own for a package nothing has
3614
- queried. `ready` = every entity the package exposes has a vector
3615
- under the current model and the cache is serving semantic ranking.
3673
+ `ready` = the index is warm, so the next `get_context` question
3674
+ about this package is ranked semantically rather than lexically.
3675
+ (It is a statement about the index, not a promise about the next
3676
+ response: a question whose own query embedding fails still falls
3677
+ back, reporting `retrieval_reason: provider-error`.) It is decided
3678
+ by the same completed sync the search path gates on, not by
3679
+ whether cached rows happen to cover the current entity names.
3680
+ Those two differ exactly where it matters - the rows outlive a
3681
+ restart and a reload, so a coverage test called an index warm
3682
+ while the next question was still answered lexically.
3683
+ `indexing` = no completed sync covers the package's current
3684
+ content under the current model, so retrieval answers lexically
3685
+ meanwhile. A reload whose files did not change stays `ready`,
3686
+ because the vectors still describe that content. Four things move
3687
+ a package to `indexing`: an edit, a new package, a changed
3688
+ `EMBEDDING_MODEL`, and a server restart - the sync is recorded in
3689
+ memory, so a restart reports `indexing` until the first question
3690
+ re-establishes it, even though the vectors are still on disk. It
3691
+ clears when a `get_context` question triggers a sync, which is
3692
+ what builds the index; a package nothing has ever queried does not
3693
+ warm on its own.
3616
3694
  `cooldown` = the provider failed recently, so the semantic path is
3617
3695
  short-circuited for a window. `too-many-entities` = the package has
3618
3696
  more entities than the embedding cap, so it stays lexical
@@ -3624,18 +3702,26 @@ components:
3624
3702
  Cached vectors for this package under the current embedding model.
3625
3703
  An entity contributes one row for its name plus one per chunk of
3626
3704
  its documentation, so this exceeds `totalEntities` on a documented
3627
- model and is not a count of entities.
3705
+ model and is not a count of entities. Scoped by model only, not by
3706
+ vector length, so it counts what is cached rather than what a
3707
+ search could read today: after a change to `EMBEDDING_DIMENSIONS`
3708
+ that no question has probed yet, rows of the old length are still
3709
+ counted here until the next search discards them. `status` is
3710
+ already `indexing` in that window.
3628
3711
  totalEntities:
3629
3712
  type: integer
3630
3713
  description: Entities the package currently exposes to retrieval.
3631
3714
  embeddedEntities:
3632
3715
  type: integer
3633
3716
  description: >-
3634
- Of `totalEntities`, how many have at least one usable vector. The
3635
- two are equal exactly when `status` is `ready`. Reported because a
3636
- row count cannot show a model edit that removes two entities and
3637
- adds two others: the row total is unchanged while the new entities
3638
- have no vector at all.
3717
+ Of `totalEntities`, how many have at least one usable vector.
3718
+ Reported because a row count cannot show a model edit that removes
3719
+ two entities and adds two others: the row total is unchanged while
3720
+ the new entities have no vector at all. Coverage by identity, so
3721
+ equality does NOT imply `ready`: an edit that rewrote every doc
3722
+ without renaming anything leaves each entity holding its stale
3723
+ name vector. Read `status` for readiness and this pair for how
3724
+ much of the package is covered.
3639
3725
  lastSyncedAt:
3640
3726
  type: string
3641
3727
  format: date-time
@@ -3731,6 +3817,14 @@ components:
3731
3817
  path:
3732
3818
  type: string
3733
3819
  description: Relative path to the model file within its package directory
3820
+ onSurface:
3821
+ type: boolean
3822
+ description: |
3823
+ Whether the file is on the package's surface: the files this route lists without
3824
+ `includeHiddenFilesAndSources`. True for every file of a package with no surface. It does not
3825
+ say whether a query can reach the file, which `queryableSources: "all"` also
3826
+ decides. False only on a file listed because the
3827
+ request set `includeHiddenFilesAndSources`.
3734
3828
  error:
3735
3829
  type: string
3736
3830
  description: Error message if the model failed to compile or load
@@ -3751,12 +3845,18 @@ components:
3751
3845
  title:
3752
3846
  type: string
3753
3847
  description:
3754
- Human title, resolved from the notebook's own `## title="…"`, then
3755
- its `#"` doc comment, then its first markdown heading. Absent when
3756
- none of those resolve, leaving the caller to show the path.
3848
+ Human title. For a `.malloynb`, resolved from its own `## title="…"`,
3849
+ then its `#"` doc comment, then its first markdown heading. For a
3850
+ `.malloy` notebook, from the `title` in its `## artifact` tag, then
3851
+ the first line of the `"` notes above that tag, then its first
3852
+ markdown heading when no prose precedes it. Absent when none of
3853
+ those resolve, leaving the caller to show the path.
3757
3854
  description:
3758
3855
  type: string
3759
- description: The notebook's `#"` doc comment, when it has one
3856
+ description:
3857
+ The notebook's doc comment, when it has one. For a `.malloy`
3858
+ notebook that is the `"` notes above the `## artifact` line; prose
3859
+ below it is a `##(markdown)` or `##|(markdown)` cell.
3760
3860
  error:
3761
3861
  type: string
3762
3862
  description: Error message if the notebook failed to compile or load
@@ -3792,7 +3892,10 @@ components:
3792
3892
  doc comment and then to the slug
3793
3893
  description:
3794
3894
  type: string
3795
- description: The file's `#"` doc comment, when it has one
3895
+ description: >-
3896
+ The file's unnamed `"` notes above the `## artifact` tag; when it
3897
+ has none there, the ones below it (a legacy spot the lint flags). For
3898
+ a dashboard whose tag sits on one query, that query's `#"` notes.
3796
3899
  error:
3797
3900
  type: string
3798
3901
  description: Error message if the dashboard file failed to compile
@@ -3833,7 +3936,10 @@ components:
3833
3936
  doc comment and then to the slug
3834
3937
  description:
3835
3938
  type: string
3836
- description: The file's `#"` doc comment, when it has one
3939
+ description: >-
3940
+ The file's unnamed `"` notes above the `## artifact` tag; when it
3941
+ has none there, the ones below it (a legacy spot the lint flags). For
3942
+ a dashboard whose tag sits on one query, that query's `#"` notes.
3837
3943
  error:
3838
3944
  type: string
3839
3945
  description: Error message if the dashboard file failed to compile
@@ -4015,6 +4121,14 @@ components:
4015
4121
  modelPath:
4016
4122
  type: string
4017
4123
  description: Relative path to the notebook file within its package directory
4124
+ format:
4125
+ type: string
4126
+ enum: ["malloynb", "malloy"]
4127
+ description:
4128
+ The file format the notebook is written in. `malloynb` is the
4129
+ cell-separated format; `malloy` is a `.malloy` file under
4130
+ `notebooks/` with a model-level `## artifact` note, whose cells are
4131
+ its statements and its floating `(markdown)` notes in file order.
4018
4132
  malloyVersion:
4019
4133
  type: string
4020
4134
  description: Version of the Malloy compiler used to generate the notebook data
@@ -4028,24 +4142,31 @@ components:
4028
4142
  $ref: "#/components/schemas/NotebookCell"
4029
4143
  annotations:
4030
4144
  type: array
4031
- description: Array of file-level (##) annotations attached to the notebook
4145
+ description:
4146
+ Array of file-level (##) annotations attached to the notebook. For
4147
+ a `.malloy` notebook, every own note that is not a floating
4148
+ `(markdown)` cell, in file order, each note once. A `"` or `(text)`
4149
+ note below the `## artifact` tag is dropped and not listed.
4032
4150
  items:
4033
4151
  type: string
4034
4152
  startingGivens:
4035
4153
  allOf:
4036
4154
  - $ref: "#/components/schemas/EncodedGivenValues"
4037
4155
  description:
4038
- Starting values for the notebook's controls, declared at its file
4039
- level. URL parameters override these, which is why the two share a
4040
- shape. Omitted when the notebook declares none.
4156
+ Starting values for the notebook's controls. A `.malloy` notebook
4157
+ declares them in its artifact tag (`## artifact { givens { … } }`),
4158
+ a `.malloynb` in its file-level tags (`## givens { … }`). URL
4159
+ parameters override these, which is why the two share a shape.
4160
+ Omitted when the notebook declares none.
4041
4161
  autorun:
4042
4162
  type: boolean
4043
4163
  description:
4044
4164
  False batches control changes behind an Apply button instead of
4045
- re-running on every change. Defaults to true. The same flag, with
4046
- the same default, that `DashboardManifest.autorun` carries, so a
4047
- notebook's `## autorun=false` and a dashboard's
4048
- `# artifact { autorun=false }` arrive identically.
4165
+ re-running on every change. Defaults to true. A `.malloy` notebook
4166
+ reads it from its artifact tag (`## artifact { autorun=false }`), a
4167
+ `.malloynb` from its file-level tags (`## autorun=false`). The same
4168
+ flag, with the same default, that `DashboardManifest.autorun`
4169
+ carries.
4049
4170
  sources:
4050
4171
  type: array
4051
4172
  description: Sources defined in the notebook's model
@@ -4517,9 +4638,56 @@ components:
4517
4638
  type: string
4518
4639
  enum: ["markdown", "code"]
4519
4640
  description: Type of notebook cell
4641
+ kind:
4642
+ type: string
4643
+ enum: ["markdown", "query", "definition"]
4644
+ description:
4645
+ What a cell is, on a `.malloy` notebook. A definition cell
4646
+ (`source:`, `import`, `query:`, `given:`, `type:`, `export`) has type `code`
4647
+ and produces no result. Absent on a `.malloynb`.
4520
4648
  text:
4521
4649
  type: string
4522
4650
  description: Text contents of the notebook cell (either markdown or Malloy code)
4651
+ markdown:
4652
+ type: string
4653
+ description:
4654
+ On a `.malloy` notebook's code cell, the prose written on the
4655
+ `(markdown)` route in its own tag lines (`#(markdown) text` lines,
4656
+ `#|(markdown)` … `|#` blocks), which `text` still contains. Blocks
4657
+ join with a blank line, adjacent lines with a newline. Author
4658
+ prose, so it is served even when `queryInfo` is withheld. Absent
4659
+ when the cell has none.
4660
+ proseLines:
4661
+ type: array
4662
+ description:
4663
+ Present on every code cell of a `.malloy` notebook, and absent on
4664
+ a `.malloynb` or from a server that predates it. The lines of
4665
+ `text` that hold `markdown`, as `[start, end]` pairs in file order;
4666
+ `[]` when the cell has none. Lines are 0-based and inclusive,
4667
+ counted on `text` split at `\n`. Strip exactly these lines to get
4668
+ the cell's code without its prose; do not re-derive them from
4669
+ `text`, whose first line has lost its indentation.
4670
+ items:
4671
+ type: array
4672
+ minItems: 2
4673
+ maxItems: 2
4674
+ items:
4675
+ type: integer
4676
+ codeLine:
4677
+ type: integer
4678
+ description:
4679
+ Present on every code cell of a `.malloy` notebook, as `proseLines`
4680
+ is. The 0-based line of `text` (split at `\n`) where the
4681
+ statement's code starts, its first token that is neither a note nor
4682
+ a comment, so the `source`, `run`, `given` or `import` keyword sits
4683
+ on it.
4684
+ caption:
4685
+ type: string
4686
+ description:
4687
+ On a `.malloy` notebook's code cell, the joined text of its leading
4688
+ `#"` lines (space-joined, trimmed). Author prose, so it is served
4689
+ even when `queryInfo` is withheld. Absent when the cell has none,
4690
+ which is authoritative wherever `proseLines` is present.
4523
4691
  newSources:
4524
4692
  type: array
4525
4693
  description:
@@ -4542,9 +4710,33 @@ components:
4542
4710
  type: string
4543
4711
  enum: ["markdown", "code"]
4544
4712
  description: Type of notebook cell
4713
+ kind:
4714
+ type: string
4715
+ enum: ["markdown", "query", "definition"]
4716
+ description: The cell's kind, on a `.malloy` notebook. Absent on a `.malloynb`.
4545
4717
  text:
4546
4718
  type: string
4547
4719
  description: Text contents of the notebook cell
4720
+ markdown:
4721
+ type: string
4722
+ description:
4723
+ A `.malloy` notebook code cell's own `(markdown)` prose, as on
4724
+ `NotebookCell`. Absent when the cell has none.
4725
+ proseLines:
4726
+ type: array
4727
+ description: The lines of `text` that hold `markdown`, as on `NotebookCell`; `[]` when none.
4728
+ items:
4729
+ type: array
4730
+ minItems: 2
4731
+ maxItems: 2
4732
+ items:
4733
+ type: integer
4734
+ codeLine:
4735
+ type: integer
4736
+ description: The line of `text` where the statement's code starts, as on `NotebookCell`.
4737
+ caption:
4738
+ type: string
4739
+ description: The cell's leading `#"` caption, as on `NotebookCell`. Absent when the cell has none.
4548
4740
  result:
4549
4741
  type: string
4550
4742
  description: JSON string containing the execution result for this cell
@@ -7132,6 +7324,38 @@ components:
7132
7324
  gate rejects anyway.
7133
7325
 
7134
7326
  parameters:
7327
+ includeHiddenFilesAndSources:
7328
+ name: includeHiddenFilesAndSources
7329
+ in: query
7330
+ required: false
7331
+ description: |
7332
+ When true, a package with a surface (a root `index.malloy`, or a legacy
7333
+ `explores`) is served to this request as if it had none: the models
7334
+ list includes the files off the surface, the model GET returns them, and
7335
+ the query route runs any model path the request names, including a
7336
+ dashboard or notebook file, against every source, as
7337
+ `queryableSources: "all"` does for every request. `#(authorize)` and
7338
+ `#(access_filter)` still apply: it lifts curation, never the lock.
7339
+
7340
+ The model GET goes one step further than `queryableSources: "all"`: it
7341
+ returns the file's `sourceText` even when that text names a source the
7342
+ file does not publish. That text can include `#(authorize)`
7343
+ expressions, `given:` defaults, connection names and raw SQL.
7344
+
7345
+ Only the models list, the model GET and the query route read it. The
7346
+ notebook-cell route, the dashboards route, the MCP tools, and the legacy
7347
+ `/projects/...` aliases of these routes ignore it.
7348
+
7349
+ Like every route on this server, it is unauthenticated. A deployment
7350
+ that authenticates in front of Publisher decides who may send it, and
7351
+ should pass it only for callers allowed to work with a package's hidden
7352
+ files, such as its authors.
7353
+
7354
+ Only `true` and `false` are accepted. Any other value is refused with
7355
+ 400.
7356
+ schema:
7357
+ type: boolean
7358
+ default: false
7135
7359
  environmentName:
7136
7360
  name: environmentName
7137
7361
  in: path
@@ -0,0 +1 @@
1
+ import{f as r,L as t,j as e,a7 as i,ai as o}from"./index-D7mqb3VK.js";function m(){const s=r(),{environmentName:n}=t();if(n){const a=i({environmentName:n});return e.jsx(o,{onSelectPackage:s,resourceUri:a})}else return e.jsx("div",{children:e.jsx("h2",{children:"Missing environment name"})})}export{m as default};
@@ -1 +1 @@
1
- import{n as t,j as o,y as a}from"./index-CSUU2t5Q.js";function s(){const n=t();return o.jsx(a,{onClickEnvironment:n})}export{s as default};
1
+ import{f as t,j as o,M as a}from"./index-D7mqb3VK.js";function s(){const n=t();return o.jsx(a,{onClickEnvironment:n})}export{s as default};
@@ -1 +1 @@
1
- import{c,j as s}from"./index-CSUU2t5Q.js";const t=c(s.jsx("path",{d:"M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-.46-.04-.92-.1-1.36-.98 1.37-2.58 2.26-4.4 2.26-2.98 0-5.4-2.42-5.4-5.4 0-1.81.89-3.42 2.26-4.4-.44-.06-.9-.1-1.36-.1"})),a=c(s.jsx("path",{d:"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5M2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1m18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1M11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1m0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1M5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0z"}));export{t as D,a as L};
1
+ import{c,j as s}from"./index-D7mqb3VK.js";const t=c(s.jsx("path",{d:"M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-.46-.04-.92-.1-1.36-.98 1.37-2.58 2.26-4.4 2.26-2.98 0-5.4-2.42-5.4-5.4 0-1.81.89-3.42 2.26-4.4-.44-.06-.9-.1-1.36-.1"})),a=c(s.jsx("path",{d:"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5M2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1m18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1M11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1m0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1M5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0z"}));export{t as D,a as L};