WP Manifestindependent plugin directory
manifest / integrations / calluna-companion-wp

Calluna Companion WP Registry grade B-. Medium-severity findings · 3 findingsWP RegistryMedium-severity findings · 3 findingsOpen the reportB-

WordPress-Bridge für Calluna Dashboard + Content Pipe (SEO + Maintenance + Auto-Update)

★ 0stars
54release downloads
v0.8.9latest · 29d ago

Install

Download calluna-companion.zip From the v0.8.9 release on GitHub, Oct 6, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/callunalabs/calluna-companion-wp/releases/download/v0.8.9/calluna-companion.zip
Updates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.

WordPress-Bridge für Calluna Dashboard + Calluna Content Pipe.

Ein einziges Plugin, drei Aufgaben:

  1. SEO-Bridge — normalisiert Yoast / RankMath / AIOSEO Felder hinter einem einheitlichen REST-Endpoint.
  2. Content-Bridge — flacher Posts-Endpoint inkl. Featured Image, Categories, Tags. Für die Content Pipe.
  3. Maintenance-Bridge — Health-Snapshots, Plugin-Updates, Multi-Layer Cache-Clear (WP Rocket + Elementor + …). Für das Dashboard.

Installation

Empfohlen: über Calluna Dashboard

  1. Im Dashboard auf /websites/kunden/new → „Mit WordPress verbinden" klicken.
  2. Auf der WP-Site einmal das Plugin manuell installieren (Plugins → Hinzufügen → Plugin hochladen → ZIP aus Releases) und aktivieren.
  3. Folgende Updates kommen automatisch über den WordPress-Update-Mechanismus (Plugin Update Checker pollt GitHub-Releases alle 12 h).

Manuell

# ZIP aus dem neuesten Release runterladen
wget https://github.com/callunaLabs/calluna-companion-wp/releases/latest/download/calluna-companion.zip
# In WordPress hochladen über Plugins → Hochladen

Endpoints

Namespace calluna/v1. Auth: WordPress Application Passwords (HTTP Basic).

Content (Cap: edit_posts)

Endpoint Method Zweck
/info GET Erkannte SEO-Plugins, Capabilities, Versionen
/posts GET Posts inkl. SEO-Meta + Featured Image (flat)
/posts/{id} GET/POST Read + Update Post inkl. SEO + Featured Image URL

Außerdem wird calluna_seo als Field an /wp/v2/posts registriert (rückwärtskompatibel).

Maintenance (Cap: manage_options bzw. update_plugins)

Endpoint Method Cap Zweck
/maintenance/health GET manage_options WP-/PHP-Version, debug.log-Tail (max 8KB), Update-Counts, Cache-Provider-Detection
/maintenance/plugins GET update_plugins Plugin-Inventory mit update_available + new_version
/maintenance/cache/clear POST manage_options Multi-Layer-Flush: Core Object → WP Rocket → Elementor → W3TC → Super-Cache → Autoptimize → OPcache
/maintenance/plugins/{slug}/update POST update_plugins Plugin_Upgrader->upgrade() mit Automatic_Upgrader_Skin

Auto-Update

Powered by Plugin Update Checker v5.7.

Beim Aktivieren registriert sich das Plugin als Update-Quelle für sich selbst:

  • WP-Cron prüft alle 12 h api.github.com/repos/callunaLabs/calluna-companion-wp/releases/latest
  • Bei neuem tag_name (z. B. v0.4.1) erscheint das Update in WP-Admin → Plugins mit „Update verfügbar"-Hinweis
  • 1-Click-Update via WP-Standard-UI oder Remote-Trigger via POST /maintenance/plugins/calluna-companion/update aus dem Dashboard

Release-Workflow (Maintainer)

# 1. Version bumpen (Plugin-Header + readme.txt + Konstante)
# 2. Commit + Tag
git commit -am "release: v0.4.1"
git tag -a v0.4.1 -m "v0.4.1"
git push --follow-tags

# 3. ZIP bauen (Top-Level-Folder muss "calluna-companion/" heißen!)
cd ..
zip -r calluna-companion.zip calluna-companion-wp \
  -x "*.git*" "*.DS_Store" "*.github/*"
# Oder besser: Top-Level umbenennen vor ZIP, damit WP-Upload nicht klagt
mkdir -p _build/calluna-companion
cp -R calluna-companion-wp/* _build/calluna-companion/
(cd _build && zip -r ../calluna-companion.zip calluna-companion -x "*.git*")

# 4. GitHub-Release erstellen
gh release create v0.4.1 calluna-companion.zip \
  --title "v0.4.1" --notes "Changelog siehe readme.txt"

Wichtig: das ZIP muss einen Top-Level-Folder calluna-companion/ enthalten (nicht calluna-companion-wp/ oder calluna-companion-0.4.1/), sonst legt WordPress beim Update einen neuen Plugin-Ordner an statt den alten zu überschreiben — und das Plugin ist dann doppelt installiert + die Hooks brechen.

Sicherheit

  • Alle Endpoints verlangen WordPress-Application-Password (Basic Auth)
  • Posts-Endpoints: edit_posts
  • Maintenance-Endpoints: manage_options (Health, Cache) bzw. update_plugins (Plugin-Inventory + Updates)
  • cache/clear ist bewusst nicht auf edit_posts heruntergesetzt — kein Redakteur soll versehentlich/böswillig Cache flushen

Lizenz

GPL-2.0+ (gleiche Lizenz wie WordPress Core und Plugin Update Checker).

Repo

Releases

18 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v0.8.9 latest
Oct 6, 2026 29d ago
calluna-companion.zip
11
Oct 6, 2026 29d ago
calluna-companion.zip
0
Aug 10, 2026 2mo ago
calluna-companion.zip
12
Jul 9, 2026 3mo ago
tag only
—
Jul 4, 2026 4mo ago
tag only
—
Jul 4, 2026 4mo ago
calluna-companion-084.zip
1
Jul 4, 2026 4mo ago
calluna-companion-083.zip
1
Jun 24, 2026 4mo ago
calluna-companion-072.zip
7
Jun 20, 2026 4mo ago
calluna-companion-071.zip
2
Jun 20, 2026 4mo ago
calluna-companion-070.zip
1
Jun 19, 2026 4mo ago
calluna-companion-060.zip
4
Jun 10, 2026 4mo ago
calluna-companion-055.zip
3
Jun 10, 2026 4mo ago
calluna-companion.zip
2
Jun 9, 2026 4mo ago
calluna-companion.zip
2
Jun 9, 2026 4mo ago
calluna-companion.zip
4
Jun 9, 2026 4mo ago
calluna-companion.zip
1
Jun 4, 2026 5mo ago
calluna-companion.zip
2
May 28, 2026 5mo ago
calluna-companion.zip
1
B- grade

Security

Calluna Companion 0.8.9 · audited by WP Registry

Medium-severity findings.

2 medium 1 low
Audited release
0.8.9
Findings
3
Worst severity
medium
Content hash
2c57fa9d8e41fc26f8553d75…

Findings

  • medium Posts list returns draft/private of all authors to any edit_posts user

    information_disclosure

    GET /calluna/v1/posts allows post_status any (default) and runs WP_Query without author restriction or per-post read caps. Any user with edit_posts (Contributor+) receives titles, excerpts, SEO, and metadata for drafts and private posts they cannot edit.

    calluna-companion.php:507-555

    Recommendation

    Default status to publish; for non-publish statuses require edit_others_posts or filter to posts the user can edit_post.

  • medium i18n/link mutates translation links without edit_post on target IDs

    missing_capability

    POST /calluna/v1/i18n/link is gated only by current_user_can(edit_posts). It accepts arbitrary post IDs and calls pll_set_post_language / pll_save_post_translations or WPML language APIs without verifying the user can edit each post, allowing a Contributor to relink others' posts.

    calluna-companion.php:877-932

    Recommendation

    Require current_user_can(edit_post, $pid) for every ID in the map before calling Polylang/WPML APIs.

  • low hreflang endpoint updates post meta without object capability

    missing_capability

    POST /calluna/v1/hreflang/{id} checks edit_posts but not edit_post($id), so a Contributor can set/delete CALLUNA_COMPANION_HREFLANG_META on posts they cannot edit.

    calluna-companion.php:771-798

    Recommendation

    Use current_user_can(edit_post, $post_id) in permission_callback or at the start of the handler.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.