feca-mailshots-plugin/docs/requirements_review_2026-04...

50 lines
2.3 KiB
Markdown

# Requirements Review - 2026-04-23
## Scope
- Reviewed files under `requirements/` against current implementation in `feca_mailshots_plugin/`.
## Findings
### 1) High: Packaging script requirement not implemented
- Requirement:
- `requirements/environment.md` states `scripts/` must contain a packaging script that creates an uploadable WordPress plugin package.
- Reference: `/home/adrians/persistent/nosnap/development/mailshots-plugin/requirements/environment.md:62`
- Current implementation:
- `scripts/` currently contains:
- `cleanup_testing_artefacts.sh`
- `deploy_remote.sh`
- `mysql_tunnel.sh`
- `run_fixture_server.sh`
- `sql/`
- No packaging script is present.
- Gap:
- Requirement is unmet.
### 2) High: Data source REST capability split requirement not implemented
- Requirement:
- Data source API auth/capabilities require:
- create/update/delete => management capability (e.g. `manage_mailshots`)
- read/preview/validate => read capability (e.g. `read_mailshots`)
- References:
- `/home/adrians/persistent/nosnap/development/mailshots-plugin/requirements/mailshot_data_source.md:427`
- `/home/adrians/persistent/nosnap/development/mailshots-plugin/requirements/mailshot_data_source.md:428`
- Current implementation:
- `DataSourcesAdminPage` defines one capability only:
- `private const CAPABILITY = 'edit_pages';`
- `/home/adrians/persistent/nosnap/development/mailshots-plugin/feca_mailshots_plugin/src/Admin/DataSourcesAdminPage.php:13`
- Both REST permission callbacks use the same capability:
- `restCanRead()` -> `currentUserCan(self::CAPABILITY)`
- `/home/adrians/persistent/nosnap/development/mailshots-plugin/feca_mailshots_plugin/src/Admin/DataSourcesAdminPage.php:584`
- `restCanManage()` -> `currentUserCan(self::CAPABILITY)`
- `/home/adrians/persistent/nosnap/development/mailshots-plugin/feca_mailshots_plugin/src/Admin/DataSourcesAdminPage.php:589`
- Gap:
- Requirement for separate read/manage capability model is unmet.
## Notes
- This review focused on direct, verifiable requirement-to-code mismatches.
- Files reviewed include:
- `requirements/environment.md`
- `requirements/mailshot_data_source.md`
- `requirements/third_party_software.md`
- `feca_mailshots_plugin/src/Admin/DataSourcesAdminPage.php`