Skip to content

Track Etherpad-side improvements to upstream at ether/etherpad #79

@Jaggob

Description

@Jaggob

Collection of Etherpad-side improvements that would help this Plugin.

Top tier — would only work with changes

nothing

Mid tier

  • Per-app / per-tenant API keys, with rotation. Today there's one shared key; any NC admin who can read settings can act as god across the entire Etherpad install.
  • Stable author identity for external systemscreateOrGetAuthorByExternalId(namespace, externalId) so NC's (plugin, uid) tuple maps to a stable Etherpad author across requests. Today we maintain a local mapping.
  • Push events for pad changes (webhook or SSE). We currently poll getLastEdited to know if a .pad snapshot is stale.
  • Embed token in URL as an alternative to the session-cookie dance — Safari ITP / cross-site cookie restrictions make the current Set-Cookie-via-iframe path brittle.
  • createPadIfNotExists idempotent API to avoid the existence-then-create race.
  • deletePad idempotent on a missing pad (today it throws).
  • Bulk metadata read (getPadInfoBatch or similar) to make our consistency-check N→1 round-trips.
  • setText that preserves attributes so a plain-text refresh doesn't wipe headings / lists / bold (we hit this during the templates work).

Low tier / nice-to-haves

  • HTML round-trip lossless improvements (setHTMLgetHTML rewrites markup).
  • /p/<id>/export/txt returning a structured error code instead of 404 when the admin restricted exports — we currently surface remote_export_unavailable based on the bare 404.
  • CSP / X-Frame-Options config exposed from Etherpad's own admin instead of requiring webserver-level config for embed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions