Skip to content

fix: manage the office connector app, and proxy Collabora's websockets - #140

Merged
MattDHill merged 1 commit into
masterfrom
fix/office-connector-lifecycle
Sep 1, 2026
Merged

fix: manage the office connector app, and proxy Collabora's websockets#140
MattDHill merged 1 commit into
masterfrom
fix/office-connector-lifecycle

Conversation

@MattDHill

Copy link
Copy Markdown
Member

Follow-up to #139, closing the gaps that install found.

Fixes

  • Websocket proxying. ProxyPassMatch "/cool/(.*)/ws$" matched neither of Collabora's socket URL shapes: the bare /cool/ws fell through to the plain-HTTP rule and returned 400, and the /cool/<url-encoded WOPI source>/ws compat form 404'd. Replaced with one ProxyPass … upgrade=websocket nocanon over the whole prefix, which upgrades the requests that ask for it and passes the rest through. ONLYOFFICE's config had the same fragility and got the same treatment.
  • Confirmation on Reset Admin Password. It replaced a credential on click with nothing in between. It now carries a warning, like audiobookshelf and btcpayserver do.

The connector app is now managed

Selecting a document server used to leave the connector app to the user, and nothing surfaced the gap — the reconcile logged "waiting" forever while the service looked healthy and no document would open in it.

  • The office-suite oneshot installs the connector (Nextcloud Office (Collabora) or ONLYOFFICE) when it is absent. It sits behind the signature check, so it fires on a change of selection and never on an ordinary start — an app the user later removes stays removed.
  • It never re-enables a disabled connector. That state is either the user's decision or a major Nextcloud upgrade disabling an app with no compatible release; re-enabling it is how that protection gets undone, and it is what Disable Non-default Apps exists to recover from.
  • office-connectors now fails in both directions — connector missing or disabled, and more than one enabled — each with its own instruction, naming the app as Nextcloud's own Apps page names it.

Office Suite presentation

Collabora is labelled recommended in the form, and instructions.md says why in terms a non-developer can act on. The basis is a measured round-trip of a complex Word document through both engines rather than a marketing claim: both preserve text, tables, images, links, footnotes and fields exactly; ONLYOFFICE returns the file structurally identical, where LibreOffice resolves style-inherited formatting into direct formatting on each run. That is invisible on screen and only compounds across a large corpus of style-dependent documents cycling back to Word.

ONLYOFFICE now ships from the Community Registry, which the docs note.

Verified on a dev box

Four connector states: absent → auto-installed on selection; enabled → green; removed → red and not reinstalled; disabled → red and not re-enabled. Documents open and edit on both backends.

Version stays 34.0.3:3 — it is in alpha only, so it re-releases in place rather than burning a revision.

Selecting a document server left the connector app to the user, and nothing
surfaced the gap: the reconcile logged that it was waiting, the service looked
healthy, and no document would open in it. The office-suite oneshot now installs
the connector when it is absent. It sits behind the signature check, so it fires
on a change of selection and never on an ordinary start — an app the user later
removes stays removed and the health check reports it.

A present-but-disabled connector is left alone. That state is either the user's
decision or a major Nextcloud upgrade disabling an app with no compatible
release; re-enabling it is how that protection gets undone.

office-connectors now fails in both directions — connector missing or disabled,
and more than one enabled — naming the app as Nextcloud's own Apps page names it
and saying whether to install or enable.

ProxyPassMatch matched neither of Collabora's socket URL shapes: a bare /cool/ws
fell through to the plain-HTTP rule and returned 400, and the compat form
carrying a url-encoded WOPI source 404'd. One ProxyPass with upgrade=websocket
over the whole prefix handles both, and nocanon keeps the encoded slashes.

Reset Admin Password carries a warning: it replaced a credential on click with
nothing in between.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@MattDHill
MattDHill merged commit 3804c2d into master Sep 1, 2026
3 checks passed
@MattDHill
MattDHill deleted the fix/office-connector-lifecycle branch September 1, 2026 21:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant