Skip to content

Commit 40df27f

Browse files
authored
chore(release): prepare v1.1.0-alpha.3 (#135)
Bump version to 1.1.0-alpha.3 across appinfo/info.xml, package.json, and package-lock.json (consistency guard green); regenerate js/ license sidecars with the new version (bundles unchanged). Add the alpha.3 CHANGELOG section summarising the security hardening (#105, #102, #110), the Playwright e2e suite (#54), the Psalm burndown + findUnusedCode (#82, #122, #133, #134), and the supporting refactors/tooling.
1 parent 7b81860 commit 40df27f

13 files changed

Lines changed: 38 additions & 13 deletions

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# Changelog
22

3+
## 1.1.0-alpha.3 — 2026-06-09
4+
5+
Third public-review release. Focus: security hardening of the Etherpad/admin surface, a browser end-to-end test suite, and a deep static-analysis / tech-debt pass. No user-facing feature changes since alpha.2.
6+
7+
### Security
8+
9+
- **API key stored as sensitive app config.** The Etherpad API key is now persisted via the sensitive-value app-config path so it is masked in `occ config` output and admin diagnostics instead of being readable in clear text. (#105)
10+
- **External-pad framing requires an explicit allowlist.** The CSP `frame-src` for external Etherpad hosts is no longer opened implicitly; embedding an external pad now requires the host to be on the trusted-origin allowlist. (#102)
11+
- **Client-side snapshot sanitisation.** Snapshot HTML is sanitised with DOMPurify in the browser before rendering, closing a stored-HTML surface in the viewer/recovery path. (#110)
12+
13+
### Changed
14+
15+
- **Etherpad HTTP via `IClientService`.** Outbound Etherpad API calls go through Nextcloud's HTTP client instead of raw transport, picking up proxy/TLS configuration and consistent timeouts. (#103)
16+
- **Shared pad-sync frontend module.** The viewer and embed entry points now share one extracted pad-sync module instead of duplicating the loop. (#106)
17+
- **No per-request MIME registration.** Dropped the MIME-type registration from the `Application` constructor (it ran on every request); the `.pad` MIME type is owned solely by the `RegisterMimeType` repair step. (#108)
18+
- **Legacy retry job retired.** Removed the compatibility `RetryPendingDeleteJob` shim; the tiered Hot/Warm/Cold `TimedJob`s are the sole retry path for pending pad deletes. (#111)
19+
- Removed a batch of dead code surfaced during the refactors. (#104)
20+
21+
### Tooling / tests / CI
22+
23+
- **Playwright end-to-end suite.** 23 browser tests against a live Nextcloud + Etherpad covering create/open, templates + placeholders, trash/restore, move/rename, orphan recovery, ownership boundary, snapshot round-trip, user-to-user share, public-share view, and the admin health check. (#54)
24+
- **Psalm static analysis** enabled in CI with a baseline (#82), then the baseline was burned down: noise reduction via config + stubs + redundant-cast removal (#122/#133), all real type issues fixed so the type baseline is empty, and `findUnusedCode` turned on with `@psalm-api`-annotated entry points (#122/#134).
25+
- CI now fails the build when committed `js/` assets are stale. (#101)
26+
- Version metadata aligned across `appinfo/info.xml`, `package.json`, and `package-lock.json`, guarded by a version-consistency CI check. (#107, #119)
27+
328
## 1.1.0-alpha.2 — 2026-05-27
429

530
Second public-review release. Focus: localisation cleanup, embed-create host signalling, and CI / release infrastructure.

appinfo/info.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<name>Etherpad Integration for Nextcloud</name>
66
<summary>Standalone Etherpad integration for Nextcloud</summary>
77
<description>Standalone Etherpad integration for Nextcloud with binding-based lifecycle and secure viewer flows.</description>
8-
<version>1.1.0-alpha.2</version>
8+
<version>1.1.0-alpha.3</version>
99
<licence>agpl</licence>
1010
<author>Jacob Bühler</author>
1111
<author>John McLear</author>

js/api-client-BXEMiUh7.chunk.mjs.license

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/etherpad_nextcloud-admin-settings.mjs.license

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/etherpad_nextcloud-embed-create-main.mjs.license

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/etherpad_nextcloud-embed-main.mjs.license

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/etherpad_nextcloud-files-main.mjs.license

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/etherpad_nextcloud-viewer-main.mjs.license

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/fetch-helpers-C4MxuNvt.chunk.mjs.license

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/oc-compat-hVqZy-MX.chunk.mjs.license

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)