Repository navigation
Before you upgrade
Until the first public release, nothing upgrades a database in place. A build whose database schema differs from the one your instance holds refuses to start on it, changes nothing in the file, and says so in its log. The build that wrote the file can still read it, so going back to that build brings the instance back.
To try carrying your data into this build, take an export with the build that wrote the file (GET /export?format=archive&state=any), start this build on a fresh file, and restore the archive there (POST /restore). The state=any parameter includes trashed items. Until the first public release, archive compatibility is guaranteed only for the build that wrote the archive. Another build can refuse it, and a successful restore does not guarantee that every field from the original database was preserved. Keep the original database, its build, and the export so you can return to the original instance.
In the container image, a refused database leaves the container running and unhealthy, with the message in its log, rather than restarting it into the same refusal. deploy/README.md says what to do next.
Changes that need action
- Views hold no layouts. A view is a
title, aquery, an optionalsortand an optionalgroup. A request that sendslayoutsor a layout option is refused400 validation_error. A view saved withlayoutsdrops them the next time it is changed.marfa device items list --layoutandmarfa device views groups --layoutare gone, and so is a group'ssum. Sendgroup: nullto clear a grouping (#2391). - Notes, articles and messages no longer require a body (#2392).
New
- A view filters by an edge and by
sourcethrough itsfilter. A working copy answers abackrefcondition where it holds that edge type whole (#2391). - Every edge type names both ends.
labelnames the source end, and the optionalreverse_labelnames the target end. Withoutreverse_label, the label names both ends, which is a two-way relation. Withoutlabel, one is made from the id (#2394). - Moving a type is one step.
POST /types/{id}/moveandmarfa types movemove every item of a type, items in the bin included. Once nothing of the old type is left, they rewrite the folders, views and webhooks that name it.DELETE /types/{id}refuses while a folder, view or webhook names the type, and lists them (#2395). - Every attached file comes down into a folder beside its document, embedded or not (#2393).
Fixed
- A folder pull no longer deletes and rewrites an attached or embedded file on every pass when a second folder on the same machine also holds it (#2393).
What's Changed
- test(server): give the audit census room on a busy runner by @aicayzer in #2384
- chore(deps): bump undici from 8.11.2 to 8.12.2 by @dependabot[bot] in #2360
- feat(types): stop requiring body on notes, articles and messages by @aicayzer in #2392
- test(cli): read the whole request before answering on the test socket by @aicayzer in #2396
- feat(views): hold a view's sort and group, not layouts by @aicayzer in #2391
- feat(edges): name both ends of every edge type with a label and a reverse label by @aicayzer in #2394
- feat(server): move a type's items in one step by @aicayzer in #2395
- feat(core): write every attached file beside its document by @aicayzer in #2393
Full Changelog: v0.0.34...v0.0.35