38 lines
2.2 KiB
Markdown
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.
|