# Validation — WES PHP cPanel package

Validated on 15 September 2026 in an isolated copy on this laptop.

## Passed

- PHP 8.2.33 syntax validation for all 12 PHP files.
- Web installer imports all records and verifies every attachment; installer locks itself.
- Login, invalid-password rejection, and internal collection protection.
- All 43767 seed records match the API, with attachment URLs rewritten for this host.
- Pagination across Cable and ODUDU Cable.
- CRUD, filters, and transactional rollback of duplicate-ID bulk import.
- Overhaul-to-MTO create, update, and delete workflow.
- Authenticated file download, hash match, upload, and file read.
- Invitations, single-use password reset, group permissions, admin-only account management, deactivation.
- Clear disabled AI and invitation-only registration responses.
- Logout revokes the server-side session.
- React production bundle rebuilt successfully; login and dashboard verified in the browser against the PHP backend on port 8788.
- Dashboard rendered 6,217 cables, 1,782 EX records, 1,376 MDI documents, and 3,113 IO signals.
- Every packaged seed and attachment matched its SHA-256 checksum immediately before ZIP creation.

## Scope and remaining server checks

The integration tests used PHP 8.2.33 and **SQLite through PDO**. MySQL/MariaDB connection and SQL execution, Apache `.htaccess`, HTTPS, PHP-FPM, and the actual AlmaLinux/cPanel configuration have **not** been exercised on the VPS. Run the deployment guide checks before putting this site into service.

Email delivery and an external AI provider were not configured or tested. AI document attachment processing and Google sign-in are not implemented. The frontend build reports existing duplicate object-key warnings in some legacy import/export pages; those individual export formats were not verified in this conversion. No concurrent-user load test was performed.

The 43,767-record snapshot covers 56 collections and 456 attachments supplied through the local migration. It is not a fresh export of the entire live database. Test credentials, test records, runtime databases, and original login password hashes are excluded from this package.
