Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions xar-assembly.xml
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,25 @@
</components>

<changelog>
<change xmlns="http://exist-db.org/xquery/repo" version="0.10.0">
<ul xmlns="http://www.w3.org/1999/xhtml">
<li>New <code>GET /api/search</code> endpoint: full-text search over the shared site-content field, with relevance score, KWIC highlighting, paging, facets, and site title and URL drawn from producer fields.</li>
<li>Language services gain completions and signature help: scoped-prefix completions carrying <code>filterText</code>, <code>sortText</code>, and <code>insertTextFormat</code>; snippet-based function completion with argument placeholders; name-based lenient signature help with overload resolution, setting <code>activeSignature</code> from call-site arity; and LSP-shaped Markdown hover with type information on variables.</li>
<li>Resource content is consolidated onto a single binary-safe <code>/api/db/resource</code> (<a href="https://github.com/eXist-db/existdb-openapi/pull/59">#59</a>), which supersedes the earlier path-in-URL endpoints. Adds mime type to listing items and closes several db-core gaps: <code>meta=full</code>, <code>writable</code>, pagination, <code>runPath</code>, and <code>set-mime</code>.</li>
<li>EXPath package installation via multipart upload on <code>POST /api/packages/install</code>, resolving dependencies and removing a conflicting package before install.</li>
<li>External variable binding on <code>/api/query</code> through a <code>variables</code> map.</li>
<li>Fixes: <code>cursor:eval</code> errors are no longer swallowed as HTTP 200 "Invalid context-item"; the <code>/api/query</code> error envelope reports user-relative line and column; <code>GET /api/packages</code> no longer returns 500 because of one malformed package entry; <code>/api/db</code> listings tolerate an unreadable child by way of an <code>accessible</code> flag instead of failing; <code>set-permissions</code> failures are classified per operation (403 versus 400); write handlers guard against paths outside <code>/db</code>; resource names round-trip correctly through decode and encode, including a literal <code>+</code>, with legacy-name read compatibility in GET; and <code>langservice</code> hover renders an <code>empty-sequence()</code> return type cleanly.</li>
<li>The OpenAPI contract version (<code>modules/api.json</code> <code>info.version</code>) advanced from 0.9.x to 0.14.0 across this release, and a CI guard now requires <code>info.version</code> to change whenever <code>api.json</code> does.</li>
</ul>
</change>
<change xmlns="http://exist-db.org/xquery/repo" version="0.9.7">
<ul xmlns="http://www.w3.org/1999/xhtml">
<li><code>POST /api/db/copy</code> and <code>POST /api/db/move</code> support rename, duplicate, and copy-into-collection alongside copy-to-collection; refusing to overwrite, plus try/catch hardening, prevents data loss on partial failure (<a href="https://github.com/eXist-db/existdb-openapi/pull/33">#33</a>; closes <a href="https://github.com/eXist-db/existdb-openapi/issues/32">#32</a>, <a href="https://github.com/eXist-db/existdb-openapi/issues/36">#36</a>, <a href="https://github.com/eXist-db/existdb-openapi/issues/37">#37</a>).</li>
<li><code>POST /api/query</code> accepts optional <code>context-item</code> (inline serialized XML) and <code>context-path</code> (DB path) body fields, so editor integrations can evaluate context-dependent expressions such as <code>//foo</code> against the document the user has open (<a href="https://github.com/eXist-db/existdb-openapi/pull/41">#41</a>; closes <a href="https://github.com/eXist-db/existdb-openapi/issues/39">#39</a>).</li>
<li><code>POST /api/db/resource</code> auto-detects the mime type from the file extension when <code>mime-type</code> is omitted (<a href="https://github.com/eXist-db/existdb-openapi/pull/34">#34</a>).</li>
<li><code>GET /api/query/{id}/results</code> populates <code>documentURI</code> and <code>nodeId</code> for stored-document nodes; a dead <code>instanceof Node</code> guard around the NodeProxy branch had left both empty. Atomic and in-memory nodes continue to return both fields empty (<a href="https://github.com/eXist-db/existdb-openapi/pull/43">#43</a>; closes <a href="https://github.com/eXist-db/existdb-openapi/issues/40">#40</a>).</li>
</ul>
</change>
<change xmlns="http://exist-db.org/xquery/repo" version="0.9.6">
<ul xmlns="http://www.w3.org/1999/xhtml">
<li>Fix <code>POST /api/langservice/hover</code>, <code>/definition</code>, and <code>/references</code> returning HTTP 500 (<code>err:XPTY0004</code>) for every request: JSON numbers in the request body parse as <code>xs:double</code>, but the underlying <code>lang:hover</code> / <code>lang:definition</code> / <code>lang:references</code> functions declare <code>xs:integer</code> parameters. Coerce <code>line</code> and <code>column</code> to <code>xs:integer</code> in the langservice handler (<a href="https://github.com/eXist-db/existdb-openapi/pull/30">#30</a>). Adds a Cypress spec covering all seven langservice endpoints so this class of regression can't ship silently again.</li>
Expand Down