Changelog
Piwik\Request instead of the deprecated Common::getRequestVar, ready for the next Matomo versions.>=5.0.0,<6.0.0-b1), instead of 5.10.0: nothing in the plugin needs Matomo 5.10.Swagger.getOpenApi is restricted to super users again, as in v6. The Swagger page loads the document with the session of the logged in user.Richer OpenAPI document
externalDocs link to the plugin homepage when available.int → integer, bool → boolean, float → number, array → array) instead of treating every input as a string. Nullable parameters are flagged with nullable: true.DocumentationGenerator::getExampleUrl(), so "Try it out" comes prefilled with sensible values.period is an enum (day/week/month/year/range), idSite/idSites get a regex matching integer / comma-separated list / "all", date and segment get human-readable descriptions of their accepted shapes, and language gets a locale pattern.json, xml, csv, tsv, html, rss, original) instead of only application/json, with a description noting that the concrete content type is selected via the format parameter.info.contact and info.license populated from the plugin manifest._) are now hidden, matching Matomo's reference doc generator.is_object() on a class-name string).fix: scope CSP frame-src 'self' and img-src validator.swagger.io to the Swagger pages only. The previous global decoration applied them to every Matomo page and broke the Overlay feature, which iframes cross-origin tracked sites.
fix: Authorization modal position in iframe view
update: Swagger admin page title
fix: CSP issue
Major Release: Full OpenAPI 3.1.0 Compliance & Dynamic API Discovery
New Features:
- Dynamic version detection from Matomo installation
- Dynamic protocol detection (HTTP/HTTPS) based on server configuration
- Bearer token authentication (replaces deprecated token_auth query parameter)
- POST method support for all API endpoints (required for POST-only token restrictions)
- Mandatory module and format parameters for all API calls
- Clean tag generation without descriptions for better UI experience
Improvements:
- 100% dynamic module discovery from installed and activated plugins
- Enhanced OpenAPI 3.1.0 specification compliance
- Proper parameter definitions with required flags and default values
- Support for both application/x-www-form-urlencoded and application/json content types
- Method names visible in endpoint paths for better comprehensibility
- Lazy plugin registration to avoid container initialization errors
- Performance optimization: metadata loaded once instead of per-method
Bug Fixes: - Fixed NoDefaultValue object handling preventing fatal conversion errors - Fixed type checking before get_class() calls - Filtered out translation key placeholders from descriptions - Filtered out literal "string" placeholder values - Set empty string defaults for optional parameters
Breaking Changes: - API calls now use POST method instead of GET - Authentication now uses Bearer token in Authorization header - Tags no longer include plugin descriptions (names only)
Technical Details: - All enhancements maintain backward compatibility with existing API endpoints - No database migrations required - Comprehensive error handling with graceful fallbacks
update: marketplace cover
update: marketplace category and cover
update: Swagger logo
Publish the plugin
setup: Plugin base