Releases: ether/etherpad-integration-for-nextcloud
v1.1.0-alpha.3
Third public-review release. Builds on v1.1.0-alpha.2 with security hardening, a browser end-to-end test suite, and a deep static-analysis / tech-debt pass. No user-facing feature changes since alpha.2.
- Security hardening
- Etherpad API key stored as sensitive app config (masked in
occ/diagnostics instead of clear text). - External-pad framing now requires an explicit trusted-origin allowlist (no implicit CSP
frame-src). - Snapshot HTML sanitised client-side with DOMPurify before rendering.
- Etherpad API key stored as sensitive app config (masked in
- Internal changes — Etherpad HTTP via Nextcloud's
IClientService; shared pad-sync frontend module; MIME registration removed from the per-requestApplicationconstructor; legacyRetryPendingDeleteJobshim retired in favour of the tiered Hot/Warm/Cold jobs; dead-code removal. - Tests & tooling — Playwright end-to-end suite (23 browser tests against live Nextcloud + Etherpad); Psalm static analysis enabled in CI with the baseline burned down to zero real type issues plus
findUnusedCode; CI guards for stalejs/assets and version metadata consistency.
See CHANGELOG.md for the complete list of changes.
Not for production yet. This is a pre-release for testing and review.
v1.1.0-alpha.2
Second public-review release. Builds on v1.1.0-alpha.1 with cleaner translations, embed-create host signalling, and proper CI.
-
Localisation rework — DE/ES/FR catalogs cleaned up and consistent (132/132 each, no orphans, alphabetically sorted). Renamed several English source strings for clarity (
Test Etherpad connectioninstead ofHealth check,.pad file …instead ofPad file …, etc.).de_DEmirror and legacy*.phpcatalogs dropped — only*.json+*.jsper locale now.Translation quality: DE has been reviewed end-to-end by a native speaker. ES and FR are first-pass translations (AI + school grammar) — usable baseline, but expected to get native-speaker polish via translatewiki once the project is onboarded.
-
Embed-create result events —
/embed/create-by-parentnow postMessagesepnc:create-succeeded/epnc:create-failedto its parent host so embedders can react to create outcomes. -
CI in place — PHPUnit on PHP 8.2/8.3/8.4, npm-build + vitest, info.xml schema lint. Dependabot configured for npm / composer / actions.
-
Release tarball builder
scripts/build-release-tarball.sh. -
App icon for the Apps page in NC settings (
img/etherpad_nextcloud.svg).
See CHANGELOG.md for the complete list of changes.
Not for production yet. This is a pre-release for testing and review.
v1.1.0-alpha.1 — first reviewer-facing alpha
First reviewer-facing cut after the March 1.0.0 tag. Not for production yet — install on dev/staging only.
How to install
- Download
etherpad_nextcloud-1.1.0-alpha.1.tar.gz(asset below). - Extract into
<nextcloud-root>/apps/so the path is<nextcloud-root>/apps/etherpad_nextcloud/. php occ app:enable etherpad_nextcloud- If
.padicons or actions don't show up:php occ maintenance:mimetype:update-js && php occ maintenance:mimetype:update-db - Open admin settings → Etherpad integration → set host + API key.
What's worth testing
- Create:
+ → New pad(with and without templates), edit, close. Check the file syncs back. - Open: existing
.padfiles; protected and public access modes. - Templates: drop a
.padin/Templates, pick it from+ → New pad. Try the{{date}}/{{user}}placeholders. - Public share: share a
.padvia public link, open in an incognito tab. - Trash / restore: trash a
.pad, restore from NC's "Deleted files". - Legacy Ownpad migration: drop an
[InternetShortcut].padinto your files, open it — should silently migrate. (Seedocs/legacy-ownpad-migration.md.) - Embed integration: if you embed NC content from another origin, try
/embed/by-id/{fileId}after configuringtrusted_embed_origins.
Known cosmetic issues
- Two transient errors in the browser console on the very first
+ → New padper session (one/core/preview400 withfileId=-1, one Tiptap unmount warning). Both originate from NC's Files-app placeholder-rendering phase, not from this app. Tracked as a follow-up (#72).
Reporting issues
Please file a GitHub issue with:
- NC version + PHP version + Etherpad version
- What action triggered the issue
- Browser console output (if frontend) or
nextcloud.loglines (if backend)
What's in 1.1.0-alpha.1
See the CHANGELOG entry for the full list. Highlights since 1.0.0:
- Pad templates with placeholder substitution
- Legacy Ownpad lazy auto-migration
- Trusted embed integration
- External integration APIs (
from-template,from-url,create-by-parent,meta-by-id) - Architecture cleanup (split
PadController, extractedExternalPadExportFetcher, etc.) - Faster protected-pad open + closer-flush ack protocol