Changelog
Matomo 6 compatibility
>=6.0.0-b1,<7.0.0-b1) and PHP 8.1+.swagger-ui/ folder are removed.New features
filter_limit, filter_offset, filter_sort_column, filter_sort_order, filter_pattern, showColumns, hideColumns, flat, format_metrics, percent_of_total).Fixes
Swagger.getOpenApi now requires Super User access. The specification was previously readable anonymously.application/json request body: the Matomo API ignores parameters sent as JSON.name[] fields so PHP reads them as arrays.0 / 1 values, since PHP reads the string false as true.nullable, which is not part of OpenAPI 3.1.Breaking changes
index.php?module=Swagger&action=iframe URL is removed. Embed the Swagger API explorer widget with the Widgetize module instead.Swagger.getOpenApi requires Super User access.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