From 0a5e2b94e287c5d758af09c3441a843ed36390ab Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Mon, 29 Jun 2026 11:00:24 -0500 Subject: [PATCH] docs: update CHANGELOG and README for this development cycle - CHANGELOG: fix the mangled header (duplicate empty [01.05.00], misplaced intro) and add a full [Unreleased] section covering the dashboard, edit UI, CSV import UI, access.xml/config.xml, AI/sitemap hardening, forward-compat, dead-code removal, and the new unit tests - README: add Coverage dashboard / Manual tag editor / Component permissions to Admin Tools; drop the removed ImageGenerator overlay feature; note sitemap access-level filtering; add a Joomla 6.0+ / PHP 8.2+ Requirements line --- CHANGELOG.md | 40 +++++++++++++++++++++++++++++++++------- README.md | 15 +++++++++------ 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d8161b9..6b1c0e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,42 @@ # Changelog -## [Unreleased] - -## [01.05.00] --- 2026-06-28 - - - - All notable changes to MokoSuiteOpenGraph will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). + + +## [Unreleased] + +### Added +- OG coverage **dashboard** as the default admin view — SVG donut gauge, coverage by content type, and a list of articles missing OG tags with a batch-generate shortcut (#94) +- Single OG tag **create/edit screen** in the admin (the tag manager was previously read-only) (#98) +- **CSV import** button and upload form in the tag manager (#103) +- Component **Options** screen with a Permissions tab, plus `access.xml` ACL actions `mokoog.batch` and `mokoog.import` (#95) +- `og_video`, `event_data`, `recipe_data`, and `custom_schema` are now included in CSV import/export and the REST API (#101) +- Unit tests for `JsonLdBuilder::buildLocalBusiness()` and `toScriptTag()` (#33) + +### Changed +- **Require Joomla 6.0+ and PHP 8.2+** (enforced at install) +- Renamed the product from *MokoJoomOpenGraph* to **MokoSuiteOpenGraph** +- Forward-compatibility for Joomla 7: replaced deprecated `Factory::getDbo/getUser/getSession/getLanguage`, `Joomla\CMS\Filesystem\File/Folder`, and `jexit()` (#102) +- Aligned OG/SEO form `maxlength` values with the database column limits (#77) +- Moved coverage metrics out of the tag list into a dedicated model (no longer runs uncached `COUNT` queries on every list load) + +### Fixed +- Fatal frontend error (HTTP 500) when a non-object value was saved into the custom JSON-LD field — values are now validated as objects/arrays on save and guarded on render (#97) +- Stored XSS via the canonical URL field — now restricted to `http`/`https` (#79) +- Use the `mysqli` driver in the component manifest so install/upgrade SQL actually runs on Joomla 4/5/6 +- `loadArticle()` now caches negative lookups; zero dates are no longer emitted as `article:published_time`/`article:modified_time` (#106) + +### Security +- AI meta-generation endpoint now requires article-edit permission and enforces an HTTP timeout and status check — previously any authenticated back-end user could trigger paid API calls (#99) +- XML sitemap now excludes content above the public view level (no longer leaks registered/special-access articles) and writes atomically (#100) + +### Removed +- Unused `ImageGenerator` class and `JsonLdBuilder::buildOrganization()`; generated OG images are now pruned after 30 days to bound disk usage (#104) +- Empty `src/Field` and `src/Service` stub directories; packaged the `en-US` language folder (#107) + ## [01.05.00] --- 2026-06-28 ### Security diff --git a/README.md b/README.md index e0d4f8f..2e987ca 100644 --- a/README.md +++ b/README.md @@ -45,21 +45,24 @@ MokoSuiteOpenGraph gives you full control over how your Joomla content appears w - **Debug links** — Quick links to Facebook Debugger, LinkedIn Inspector, Google Rich Results - **Live preview** — Real-time Facebook, Twitter/X, LinkedIn, Discord, Mastodon, and Slack card previews in the editor - **Character count indicators** — Green/yellow/red warnings on OG and SEO text fields -- **OG coverage dashboard** — Coverage percentage and missing field counts -- **AI meta generation** — Generate OG titles and descriptions with Claude or OpenAI +- **Coverage dashboard** — Default admin view: coverage donut, breakdown by content type, and a list of articles missing OG tags with quick batch-generate +- **Manual tag editor** — Create and edit individual OG tag records directly in the admin +- **Component permissions** — ACL actions (`mokoog.batch`, `mokoog.import`) configurable from the component Options → Permissions +- **AI meta generation** — Generate OG titles and descriptions with Claude or OpenAI (article-edit permission required) ### Developer Features - **REST API** — Full CRUD via Joomla Web Services (`/api/v1/mokoog/tags`) - **MokoSuiteShop integration** — Auto-generated OG/JSON-LD for product pages with pricing meta - **Plugin event** — `onMokoOGAfterRender` for third-party plugins to add custom social tags -- **OG image generator** — Text overlay on template backgrounds with auto-resize to 1200x630 -- **Per-platform image resizing** — Twitter 1200x600, Pinterest 1000x1500, WhatsApp 400x400 -- **XML sitemap** — Auto-generates sitemap.xml on article save, respects noindex +- **Per-platform image resizing** — Twitter 1200x600, Pinterest 1000x1500, WhatsApp 400x400, with auto-resize to 1200x630 +- **XML sitemap** — Auto-generates sitemap.xml on article save; respects noindex and public access levels, written atomically - **OpenAPI spec** — Full REST API documentation at `openapi.yaml` -- **PHPUnit tests** — 16 unit tests for JsonLdBuilder schema outputs +- **PHPUnit tests** — Unit tests for JsonLdBuilder schema outputs and JSON-LD script-tag escaping ## Installation +**Requirements:** Joomla 6.0 or higher and PHP 8.2 or higher. + 1. Download the latest `pkg_mokoog-*.zip` from [Releases](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteOpenGraph/releases) 2. In Joomla Administrator → Extensions → Install → Upload Package File 3. All plugins are enabled automatically on install