Repository navigation
v0.8.0
Upgrading
- Two database migrations run on upgrade (the Helm chart's migrate hook applies
them). - Pages deleted in earlier versions move to the archive with a 30-day
retention starting at the upgrade, and are then permanently deleted unless
restored. To change the period, setKNOT_ARCHIVE_RETENTION_DAYS(Helm
archive.retentionDays) before upgrading. - Subpages of previously deleted pages are moved to the top level, where the
sidebar already showed them. - Contributor lists count edits from this version on only.
Added
- Page byline showing who created the page and who has edited it, with their
last edit.GET /api/docs/{id}/contributors. (#35) - Resizable table columns. Widths are stored as proportions, so tables fill the
page width on any screen. Widths are not kept through Markdown export/import.
(#38) - Document archive. Deleting a page moves it and its subpages to the archive,
where editors and owners can preview and restore it, and owners can delete
it permanently. Archived pages are purged afterKNOT_ARCHIVE_RETENTION_DAYS
(default 30).GET /api/workspace/archive,POST /api/docs/{id}/purge.
(#39)
Changed
- Archived pages are read-only. Writes return
409 doc.archived, open editors
switch to read-only, and share links stop working. Archived pages are left
out of search, My Tasks and workspace export. (#39) - Tables with columns resized in earlier versions now fill the page width
instead of keeping fixed pixel widths. (#38) - A link now ends where its text ends. Retyping a link's last character, or
typing over all of its text, gives plain text. (#40)
Fixed
- Edits made while offline never reached the server and were lost on reload.
Boards had the same problem. (#35) - Revoking access did not disconnect open editors, and their edits kept being
saved. (#35) - Live edits were stored without an author, and batched edits were credited to
the first author in the batch. (#35) - An open editor wrote an autolink edit in response to another user's typing.
(#35) - Editors could not delete pages; only owners could. (#39)
- Deleting a page left its subpages at the top level of the sidebar and in
search. (#39) - The sidebar row menu could not be used with the keyboard. (#39)
- A page whose access changed while it was open showed "You no longer have
access" even when you could still read it. (#39) - Column resizing did not work on existing pages. (#38)
- Long URLs in table cells overflowed into the next column. (#38)
- Text typed after a pasted link, or at the edge of any link, became part of
the link. (#40) - Pasting a URL over selected text left the new link selected, so the next
keystroke replaced it. (#40) - The toolbar Link button opened empty with the cursor at a link's edge, and
applying the empty value removed the link. With nothing selected, Apply now
inserts the URL as link text. (#40) - Typing or pasting
https://…opened the date picker, which took the
keyboard focus. (#40)
Security
ammonia4.1.7 fixes RUSTSEC-2021-0157. knot was not affected: its
sanitizer does not allowstyleattributes. (#38)- RUSTSEC-2024-0449 (
unsafe-libyaml, unmaintained) is acknowledged in
deny.toml. It has no known vulnerability and only parses the operator's
own config file. (#38)
Container image
ghcr.io/opendefensecloud/knot:0.8.0 — multi-arch (amd64/arm64), cosign-signed, with SBOM + SLSA provenance.
Helm chart
helm install knot oci://ghcr.io/opendefensecloud/charts/knot \
--version 0.8.0 \
-n knot --create-namespace \
--set database.url='postgres://…' \
--set session.key="$(openssl rand -base64 32)" \
--set baseUrl=https://knot.example.comFull values: chart README.
What's Changed
- feat(docs): page byline (creator + contributors); fix(collab): offline edits never reached the server by @christianhuening in #35
- feat(editor): resizable table columns with proportional widths (#36) by @christianhuening in #38
- feat(docs): archive deleted pages with 30-day retention (#37) by @christianhuening in #39
- fix(editor): end links where their text ends by @christianhuening in #40
- docs: changelog for 0.8.0 by @christianhuening in #41
Full Changelog: v0.7.0...v0.8.0