commit c19b20afcfc45320f970a2ae18696fe8705543b7 Author: Krystie Date: Fri Apr 17 17:58:50 2026 -0700 Initialize DashCaddy license server diff --git a/README.md b/README.md new file mode 100644 index 0000000..2f429a5 --- /dev/null +++ b/README.md @@ -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