34 lines
1.2 KiB
Markdown
34 lines
1.2 KiB
Markdown
# DashCaddy License Server
|
|
|
|
Stripe-driven license automation for DashCaddy.
|
|
|
|
## Purpose
|
|
|
|
This service is the billing and license orchestration layer for DashCaddy.
|
|
It receives Stripe webhooks, maps purchases/subscriptions to license entitlements,
|
|
and exposes license validation/deactivation endpoints for DashCaddy instances.
|
|
|
|
## Planned responsibilities
|
|
|
|
- Verify Stripe webhook signatures
|
|
- Track customers, subscriptions, invoices, and purchases
|
|
- Generate or extend DashCaddy licenses
|
|
- Expose `/api/license/validate` for DashCaddy activation
|
|
- Expose `/api/license/deactivate` for DashCaddy deactivation
|
|
- Support renewals, expirations, cancellations, and grace periods
|
|
|
|
## Architecture
|
|
|
|
- **Stripe** is billing truth
|
|
- **License server database** is entitlement truth
|
|
- **DashCaddy app** remains the consumer of license validation
|
|
- Existing DashCaddy license logic should be reused, not reinvented
|
|
|
|
## Next steps
|
|
|
|
1. Extract/reuse the current DashCaddy license key generation and verification logic
|
|
2. Define DB schema for customers, licenses, activations, and Stripe mapping
|
|
3. Implement webhook ingestion and event processing
|
|
4. Implement validate/deactivate endpoints
|
|
5. Add admin tooling for manual recovery and support workflows
|