Files
2026-10-12 15:27:09 +01:00

38 lines
2.2 KiB
Markdown

# Phase 12 — Controlled checkout handoff and production-readiness gate
This is a **safe first cutover increment**, not a completed production migration. It introduces a unified SonarDesk purchase landing page in ABSDev and an explicit, allowlisted HTTPS handoff to the *existing* licensing checkout. It deliberately does NOT duplicate payment processing, webhooks, licence issuance, subscription mutations or customer ownership rules.
## Install
Extract this archive **into the existing ABSDEV project root**, preserving `Modules/Licensing`. No root-level module copies are included.
```sh
composer dump-autoload
php artisan optimize:clear
php artisan route:list --path=sonardesk/buy
php artisan route:list --path=sonardesk/checkout
php artisan test --filter=SonarDeskCheckoutHandoffTest
```
## Staging-only opt-in
Add to ABSDev `.env` (use the real existing hosted checkout URL):
```dotenv
SONARDESK_CHECKOUT_ENABLED=false
SONARDESK_CHECKOUT_URL=https://sonardesk.stage.absdev.net/buy
SONARDESK_CHECKOUT_ALLOWED_HOSTS=sonardesk.stage.absdev.net
```
After verifying the hosted path exists and the correct Paddle **sandbox** account is used, set `SONARDESK_CHECKOUT_ENABLED=true` in staging and clear configuration cache. Hostnames are exact-match allowlisted. Do not use production until separately approved.
## Acceptance and cutover gates — NOT automatically satisfied
1. Verify the checkout path and Paddle sandbox checkout end to end.
2. Verify webhook signatures, idempotency, retry handling, licence issuance and delivery in the **existing** service.
3. Verify customer portal email ownership, subscription visibility and activation limits.
4. Verify signed Sparkle appcast and actual updater in a signed test build; merely serving RSS is insufficient.
5. Test product downloads, checksums, platform restrictions, admin permissions and backup/restore.
6. Address `npm audit` findings; perform Laravel tests, integration tests and manual UI checks.
7. Plan DB and file migration, dual-write/rollback, DNS and webhook destination cutover **before** switching billing authority.
8. Keep legacy production licensing service and webhook endpoint unchanged until a separate validated cutover.
No production deployment or billing authority transfer is performed by this patch.