Skip to content

Commit c0f54de

Browse files
fix: prepare 1.0.9 compatibility release
Align the plugin and documentation with the verified WordPress 6.9.3 and Rank Math 1.0.265 compatibility update so the 1.0.9 release is ready to ship. This also refreshes the roadmap with page support and CI/CD follow-up work.
1 parent f44de0b commit c0f54de

21 files changed

Lines changed: 523 additions & 163 deletions

.gitignore

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,6 @@
33
#Test files
44
tests/
55

6-
#Temporary todo list
7-
todo.md
8-
TODO-NORWEGIAN.md
9-
@TODO-NORWEGIAN.md
10-
116
# OS generated files
127
.DS_Store
138
.DS_Store?
@@ -21,6 +16,7 @@ Thumbs.db
2116
.vscode/
2217
.idea/
2318
.cursor/
19+
.worktrees/
2420
*.swp
2521
*.swo
2622
*~
@@ -71,6 +67,7 @@ wp-content/plugins/hello.php
7167
*.tar.gz
7268
*.tar.bz2
7369
/deploy.sh
70+
/wp-local.sh
7471
/.deployignore
7572
agent-skills/
7673
*.code-workspace

CHANGELOG.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.0.9] - 2026-03-11
9+
10+
### Changed
11+
12+
- Verified compatibility with WordPress 6.9.3 during local runtime testing.
13+
- Verified compatibility with Rank Math SEO 1.0.265 during local runtime testing.
14+
- Updated plugin metadata and documentation to reflect current compatibility coverage.
15+
16+
### Security
17+
18+
- Split REST route authorization from REST-exposed meta authorization callbacks.
19+
- Added field-level sanitization for both the custom endpoint and native REST meta updates.
20+
- Hardened GitHub updater input validation and PHP 8.x safety checks.
21+
- Removed stored GitHub token during uninstall.
22+
23+
### Fixed
24+
25+
- Returned `unchanged` instead of `failed` for idempotent metadata updates.
26+
- Corrected documentation for authentication, permissions, error responses, and installation flow.
27+
828
## [1.0.8] - 2025-07-31
929

1030
### Added
@@ -30,7 +50,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3050
### Security
3151

3252
- Enhanced input validation and sanitization for all API endpoints
33-
- Proper capability checks (`edit_posts`) for all update operations
53+
- Proper object-level capability checks (`edit_post`) for all update operations
3454
- Secure GitHub API communication with proper error handling
3555
- Rate limiting to prevent API abuse
3656

CODE_OF_CONDUCT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,4 +202,4 @@ https://www.contributor-covenant.org/translations.
202202

203203
---
204204

205-
**Last Updated**: July 2025
205+
**Last Updated**: March 2026

README-NORWEGIAN.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
## 📋 Oversikt
1010

1111
**Plugin Name**: Rank Math API Manager
12-
**Version**: 1.0.6
12+
**Version**: 1.0.9
1313
**Author**: Devora AS
1414
**Description**: WordPress-plugin som eksponerer REST API-endepunkter for å oppdatere Rank Math SEO-metadata programmatisk.
1515

@@ -69,7 +69,7 @@ curl -X POST "https://example.com/wp-json/rank-math-api/v1/update-meta" \
6969

7070
### 2. Tillatelser
7171

72-
Plugin-et krever at brukeren har `edit_posts`-rettigheter for å oppdatere metadata.
72+
Plugin-et krever at brukeren er autentisert og kan redigere det konkrete innlegget eller produktet via `current_user_can( 'edit_post', $post_id )`.
7373

7474
### 3. REST API-tilgang
7575

@@ -106,13 +106,13 @@ Dette plugin-et er spesielt designet for å fungere med Devora sin n8n workflow
106106
### Autentisering
107107

108108
- Krever WordPress Application Password eller Basic Auth
109-
- Validerer brukerrettigheter (`edit_posts`)
109+
- Validerer objektnivå-brukerrettigheter (`edit_post` for det forespurte innlegget eller produktet)
110110
- Sanitizerer alle input-parametere
111111

112112
### Validering
113113

114114
- Validerer at `post_id` eksisterer
115-
- Sanitizerer tekst-felter med `sanitize_text_field()`
115+
- Sanitizerer SEO-tekstfelt med `wp_filter_nohtml_kses()`
116116
- Validerer URL-er med `esc_url_raw()`
117117

118118
## 🔧 Tekniske Detaljer
@@ -330,7 +330,7 @@ A: Ja, Rank Math SEO-plugin må være installert og aktivert for at dette plugin
330330
A: Last opp plugin-filen til `/wp-content/plugins/rank-math-api-manager/` og aktiver den i WordPress admin-panel.
331331

332332
**Q: Hvilke tillatelser trenger jeg?**
333-
A: Du må ha `edit_posts`-rettigheter for å bruke API-endepunktene.
333+
A: Du må være autentisert og ha rettighet til å redigere det konkrete innlegget eller produktet.
334334

335335
**Q: Hvordan setter jeg opp autentisering?**
336336
A: Bruk WordPress Application Passwords eller Basic Auth. Se installasjonsseksjonen for detaljer.
@@ -347,7 +347,7 @@ A: Ja, plugin-et støtter automatisk WooCommerce produkter hvis WooCommerce er a
347347
A: Se n8n-integrasjonsseksjonen i dokumentasjonen for eksempel-konfigurasjon.
348348

349349
**Q: Er det rate limiting på API-endepunktene?**
350-
A: Plugin-et bruker WordPress' innebygde rate limiting. For høy-trafikk nettsteder anbefales ekstra rate limiting.
350+
A: Plugin-et har forelopig ingen dedikert rate limiting for endepunktet. Ruten krever autentisering og objektnivå-tillatelser, og ekstra rate limiting kan legges til på nettsted- eller infrastrukturnivå ved behov.
351351

352352
### 🛡️ Sikkerhet
353353

@@ -374,7 +374,7 @@ A: Test API-endepunktet med en enkel POST-forespørsel til `/wp-json/rank-math-a
374374
### 🐛 Feilsøking
375375

376376
**Q: Får jeg 401 Unauthorized-feil?**
377-
A: Sjekk at Application Password er riktig konfigurert og at brukeren har `edit_posts`-rettigheter.
377+
A: Sjekk at Application Password er riktig konfigurert og at brukeren kan redigere det konkrete innlegget eller produktet.
378378

379379
**Q: Får jeg 404 Not Found-feil?**
380380
A: Verifiser at plugin-et er aktivt og at WordPress REST API er tilgjengelig.
@@ -403,7 +403,7 @@ A: Ja, webhook-støtte er planlagt for fase 3.
403403
1. **401 Unauthorized**
404404

405405
- Sjekk at Application Password er riktig konfigurert
406-
- Verifiser at brukeren har `edit_posts`-rettigheter
406+
- Verifiser at brukeren kan redigere det konkrete innlegget eller produktet
407407

408408
2. **404 Not Found**
409409

README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
## 📋 Overview
1111

1212
**Plugin Name**: Rank Math API Manager
13-
**Version**: 1.0.8
13+
**Version**: 1.0.9
1414
**Author**: [Devora AS](https://devora.no/)
1515
**Description**: WordPress extension that exposes REST API endpoints to update [Rank Math](https://rankmath.com/) SEO metadata programmatically.
1616

@@ -68,13 +68,13 @@ Replace `USERNAME` and `APPLICATION_PASSWORD` with your WordPress username and [
6868

6969
### 1. Plugin Installation
7070

71-
1. Upload `rank-math-api-manager.php` to `/wp-content/plugins/rank-math-api-manager/`
71+
1. Upload the plugin ZIP or extracted plugin folder to `/wp-content/plugins/rank-math-api-manager/`
7272
2. Activate the plugin in WordPress admin panel
7373
3. Verify that the plugin is active
7474

7575
### 2. Permissions
7676

77-
The plugin requires users to have `edit_posts` permissions to update metadata.
77+
The plugin requires users to be authenticated and able to edit the specific target post or product via `current_user_can( 'edit_post', $post_id )`.
7878

7979
### 3. REST API Access
8080

@@ -111,13 +111,13 @@ This plugin is specifically designed to work with Devora's n8n workflow "Write w
111111
### Authentication
112112

113113
- Requires WordPress Application Password or Basic Auth
114-
- Validates user permissions (`edit_posts`)
114+
- Validates object-level user permissions (`edit_post` on the requested post or product)
115115
- Sanitizes all input parameters
116116

117117
### Validation
118118

119119
- Validates that `post_id` exists
120-
- Sanitizes text fields with `sanitize_text_field()`
120+
- Sanitizes SEO text fields with `wp_filter_nohtml_kses()`
121121
- Validates URLs with `esc_url_raw()`
122122

123123
## 🔧 Technical Details
@@ -324,18 +324,18 @@ POST /wp-json/rank-math-api/v1/multisite-update
324324
A: Rank Math API Manager is a WordPress plugin that allows you to update Rank Math SEO metadata programmatically via REST API endpoints. It's specifically designed to integrate with automation like n8n workflows.
325325

326326
**Q: Which WordPress versions are supported?**
327-
A: The plugin requires WordPress 5.0 or newer and PHP 7.4 or newer.
327+
A: The plugin requires WordPress 5.0 or newer and PHP 7.4 or newer. It has been verified on WordPress 6.9.3 during local runtime testing.
328328

329329
**Q: Is Rank Math SEO plugin required?**
330330
A: Yes, the Rank Math SEO plugin must be installed and activated for this plugin to work.
331331

332332
### 🔧 Installation and Setup
333333

334334
**Q: How do I install the plugin?**
335-
A: Upload the plugin file to `/wp-content/plugins/rank-math-api-manager/` and activate it in the WordPress admin panel.
335+
A: Upload the plugin ZIP through **Plugins → Add New → Upload Plugin**, or place the extracted plugin folder in `/wp-content/plugins/rank-math-api-manager/`, then activate it in WordPress admin.
336336

337337
**Q: What permissions do I need?**
338-
A: You must have `edit_posts` permissions to use the API endpoints.
338+
A: You must be authenticated and have permission to edit the specific target post or product.
339339

340340
**Q: How do I set up authentication?**
341341
A: Use WordPress Application Passwords or Basic Auth. See the installation section for details.
@@ -352,7 +352,7 @@ A: Yes, the plugin automatically supports WooCommerce products if WooCommerce is
352352
A: See the n8n integration section in the documentation for example configuration.
353353

354354
**Q: Is there rate limiting on the API endpoints?**
355-
A: The plugin uses WordPress's built-in rate limiting. For high-traffic sites, additional rate limiting is recommended.
355+
A: The plugin does not currently add a dedicated endpoint rate limiter. The route is authenticated and permission-checked, and additional rate limiting can be added at the site or infrastructure layer if needed.
356356

357357
### 🛡️ Security
358358

@@ -379,7 +379,7 @@ A: Test the API endpoint with a simple POST request to `/wp-json/rank-math-api/v
379379
### 🐛 Troubleshooting
380380

381381
**Q: I get 401 Unauthorized errors?**
382-
A: Check that the Application Password is correctly configured and that the user has `edit_posts` permissions.
382+
A: Check that the Application Password is correctly configured and that the user can edit the specific target post or product.
383383

384384
**Q: I get 404 Not Found errors?**
385385
A: Verify that the plugin is active and that the WordPress REST API is available.
@@ -408,7 +408,7 @@ A: Yes, webhook support is planned for phase 3.
408408
1. **401 Unauthorized**
409409

410410
- Check that Application Password is correctly configured
411-
- Verify that the user has `edit_posts` permissions
411+
- Verify that the user can edit the specific target post or product
412412

413413
2. **404 Not Found**
414414

@@ -482,7 +482,7 @@ If you discover a bug or have other problems with the plugin, you can:
482482
---
483483

484484
**License**: [GPL v3](LICENSE.md) - Devora AS
485-
**Last Updated**: July 2025
485+
**Last Updated**: March 2026
486486

487487
---
488488

TODO-NORWEGIAN.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# TODO - Rank Math API Manager Plugin
2+
3+
## Nåværende Status
4+
5+
Versjon `1.0.9` er klargjort for release etter verifisert kompatibilitetsarbeid mot WordPress `6.9.3` og Rank Math SEO `1.0.265`.
6+
7+
Nylig fullført:
8+
9+
- Verifisert lokal runtime-kompatibilitet mot siste støttede WordPress- og Rank Math-versjoner.
10+
- Forbedret autorisasjon og sanitering for REST-endepunkt og meta-felter.
11+
- Strammet inn validering i updater og gjort flere PHP 8.x-sikkerhetstiltak.
12+
- Oppdatert bruker- og utviklerdokumentasjon for `1.0.9`.
13+
14+
## Høy Prioritet
15+
16+
### 1. Legg til støtte for sider
17+
18+
- Legg til støtte for posttypen `page` i det tilpassede REST-endepunktet.
19+
- Registrer Rank Math-meta for sider i native REST-responser.
20+
- Verifiser tilgangskontroll, sanitering og idempotente oppdateringer for sider.
21+
- Oppdater API-dokumentasjon og eksempler for innlegg, sider og produkter der det er relevant.
22+
23+
### 2. Legg til CI/CD-pipeline og GitHub Actions-workflows
24+
25+
- Legg til CI-workflow for pull requests og pushes til beskyttede brancher.
26+
- Legg til release-workflow for pakking, validering og taggede releaser.
27+
- Legg til [Plugin Check Action](https://github.com/WordPress/plugin-check-action) for å kjøre Plugin Check mot pluginen.
28+
- Legg til PHP CodeSniffer (PHPCS).
29+
- Legg til WPCS (WordPress Coding Standards).
30+
- Legg til unit tester med PHPUnit.
31+
- Legg til [WordPress Plugin Integration Test](https://github.com/marketplace/actions/wordpress-plugin-integration-test).
32+
- Legg til kontroller for syntaks, virus/malware-skanning og kjente sårbarheter.
33+
34+
### 3. Styrk automatiske kvalitetsporter
35+
36+
- Legg til dekning i CI for minimum støttede PHP- og WordPress-versjoner.
37+
- Legg til smoke-tester for REST-oppdateringer mot innlegg, sider og WooCommerce-produkter.
38+
- La build feile ved kodestandardbrudd, fatale feil og pakkingsproblemer.
39+
- Arkiver build-artefakter for release-verifisering.
40+
41+
## Medium Prioritet
42+
43+
### 4. Forbedre observabilitet og drift
44+
45+
- Legg til bedre styring av debug-logging for feilsøking.
46+
- Legg til tydeligere admin-diagnostikk for avhengighets- og updater-feil.
47+
- Dokumenter en repeterbar verifiseringsflyt for lokalt miljø og staging.
48+
49+
### 5. Utvid API-muligheter
50+
51+
- Vurder valgfri rate limiting på endepunkt-nivå.
52+
- Vurder API-nøkkel- eller token-basert autentisering for headless-integrasjoner.
53+
- Vurder audit logging for SEO-metadata-endringer.
54+
55+
### 6. Utvid kompatibilitetsdekning
56+
57+
- Test mot flere PHP-versjoner som pluginen støtter.
58+
- Test mot flere WordPress minor-versjoner og vanlige hostingmiljøer.
59+
- Verifiser oppførsel med flere kombinasjoner av Rank Math og WooCommerce.
60+
61+
## Lavere Prioritet
62+
63+
### 7. Forbedringer i admin-UX
64+
65+
- Legg til en dedikert admin-side for diagnostikk og konfigurasjon.
66+
- Legg til statuspanel for release, updater og avhengigheter.
67+
68+
### 8. Internasjonalisering
69+
70+
- Viderefør og synkroniser norsk og engelsk dokumentasjon.
71+
- Gå gjennom alle brukerrettede strenger for oversettbarhet.
72+
73+
## Dokumentasjonsoppfølging
74+
75+
- Hold `README.md`, `README-NORWEGIAN.md`, `readme.txt` og `docs/` synkronisert for hver release.
76+
- Oppdater roadmap-punkter når funksjoner fullføres eller utsettes.
77+
- Legg til CI/CD-dokumentasjon når workflows er på plass.
78+
79+
## Ressurser
80+
81+
- [WordPress Auto-Update Documentation](https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#how-does-the-wordpress-org-plugin-update-system-work)
82+
- [WordPress Plugin Update API](https://developer.wordpress.org/rest-api/reference/plugins/)
83+
- [WordPress Coding Standards](https://developer.wordpress.org/coding-standards/)
84+
- [Plugin Check Action](https://github.com/WordPress/plugin-check-action)
85+
- [WordPress Plugin Integration Test](https://github.com/marketplace/actions/wordpress-plugin-integration-test)
86+
87+
---
88+
89+
**Sist oppdatert**: Mars 2026
90+
**Status**: Aktiv vedlikehold / release-klargjort

0 commit comments

Comments
 (0)