Initialize DashCaddy license server
This commit is contained in:
33
README.md
Normal file
33
README.md
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# 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
|
||||||
Reference in New Issue
Block a user