move into sonardesk
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user