mirror of
https://github.com/Dvorinka/Bookra.git
synced 2026-10-28 23:51:17 +00:00
refactor(db): replace sqlc with handwritten pgx repos
- Finish Paddle-to-Stripe billing migration; drop paddle/stripe libs - Renumber migrations; add 00012 memberships+manage_token, 00013 location_type_capacity - Add tests: admin, auth, bookings customer service - Remove graphify-out artifacts and stale env files Authored By: TDvorak <[email protected]> Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
2039669e2c
commit
f2f7439050
93 files changed
+6987
-69060
No files matched your search
+50
-19
@@ -5,7 +5,7 @@
|
||||
# - frontend signs users in with Neon Auth
|
||||
# - backend verifies Neon Auth JWTs
|
||||
# - backend serves booking + billing APIs
|
||||
# - Paddle handles SaaS billing + customer portal
|
||||
# - Stripe handles SaaS billing + customer portal
|
||||
# ============================================
|
||||
|
||||
BOOKRA_APP_ENV=staging
|
||||
@@ -37,33 +37,47 @@ BOOKRA_DATABASE_DIRECT_URL=postgres://user:[email protected]
|
||||
# AUTHENTICATION (Required when DEMO_MODE=false)
|
||||
# --------------------------------------------
|
||||
# Neon Auth base URL for JWKS verification.
|
||||
BOOKRA_NEON_AUTH_URL=https://ep-mute-water-alem1v8u.neonauth.c-3.eu-central-1.aws.neon.tech/neondb/auth
|
||||
# Optional emergency/local fallback for non-Neon JWT verification.
|
||||
# Leave blank in normal Neon Auth setup.
|
||||
BOOKRA_NEON_AUTH_URL=https://ep-example.neonauth.region.aws.neon.tech/neondb/auth
|
||||
# Local JWT fallback secret for the password-auth endpoints (/v1/auth/*).
|
||||
# Required when DEMO_MODE=false if you use local auth.
|
||||
BOOKRA_AUTH_JWT_SECRET=
|
||||
|
||||
# --------------------------------------------
|
||||
# INTERNAL SERVICES
|
||||
# --------------------------------------------
|
||||
# Job runner key for internal API endpoints (reminders, notifications)
|
||||
BOOKRA_JOB_RUNNER_KEY=job_runner_secret_123
|
||||
BOOKRA_JOB_RUNNER_KEY=replace-with-secure-random-key
|
||||
|
||||
# --------------------------------------------
|
||||
# PADDLE BILLING (Required for live checkout/webhooks)
|
||||
# STRIPE BILLING (Required for live checkout/webhooks)
|
||||
# --------------------------------------------
|
||||
# BOOKRA_PADDLE_ENV must be "sandbox" or "live".
|
||||
# API key: Paddle dashboard -> Developer tools -> Authentication.
|
||||
# Webhook secret: Paddle dashboard -> Notification settings -> destination secret key.
|
||||
# Price IDs: Paddle dashboard -> Catalog -> Product price IDs.
|
||||
BOOKRA_PADDLE_ENV=sandbox
|
||||
BOOKRA_PADDLE_API_KEY=
|
||||
BOOKRA_PADDLE_WEBHOOK_SECRET=
|
||||
BOOKRA_PADDLE_STARTER_CZK_PRICE_ID=
|
||||
BOOKRA_PADDLE_STARTER_USD_PRICE_ID=
|
||||
BOOKRA_PADDLE_PRO_CZK_PRICE_ID=
|
||||
BOOKRA_PADDLE_PRO_USD_PRICE_ID=
|
||||
BOOKRA_PADDLE_BUSINESS_CZK_PRICE_ID=
|
||||
BOOKRA_PADDLE_BUSINESS_USD_PRICE_ID=
|
||||
# Secret API key + webhook signing secret from the Stripe dashboard.
|
||||
# Price IDs: Stripe dashboard -> Product catalog -> Price IDs.
|
||||
BOOKRA_STRIPE_API_KEY=sk_test_xxx
|
||||
BOOKRA_STRIPE_WEBHOOK_SECRET=whsec_xxx
|
||||
|
||||
# Monthly subscription price IDs
|
||||
BOOKRA_STRIPE_STARTER_CZK_MONTHLY_PRICE_ID=price_xxx
|
||||
BOOKRA_STRIPE_STARTER_USD_MONTHLY_PRICE_ID=price_xxx
|
||||
BOOKRA_STRIPE_PRO_CZK_MONTHLY_PRICE_ID=price_xxx
|
||||
BOOKRA_STRIPE_PRO_USD_MONTHLY_PRICE_ID=price_xxx
|
||||
BOOKRA_STRIPE_BUSINESS_CZK_MONTHLY_PRICE_ID=price_xxx
|
||||
BOOKRA_STRIPE_BUSINESS_USD_MONTHLY_PRICE_ID=price_xxx
|
||||
|
||||
# Yearly subscription price IDs
|
||||
BOOKRA_STRIPE_STARTER_CZK_YEARLY_PRICE_ID=price_xxx
|
||||
BOOKRA_STRIPE_STARTER_USD_YEARLY_PRICE_ID=price_xxx
|
||||
BOOKRA_STRIPE_PRO_CZK_YEARLY_PRICE_ID=price_xxx
|
||||
BOOKRA_STRIPE_PRO_USD_YEARLY_PRICE_ID=price_xxx
|
||||
BOOKRA_STRIPE_BUSINESS_CZK_YEARLY_PRICE_ID=price_xxx
|
||||
BOOKRA_STRIPE_BUSINESS_USD_YEARLY_PRICE_ID=price_xxx
|
||||
|
||||
# SMS usage prices (standard prices — usage is aggregated monthly into invoices)
|
||||
BOOKRA_STRIPE_SMS_CZK_PRICE_ID=price_xxx
|
||||
BOOKRA_STRIPE_SMS_USD_PRICE_ID=price_xxx
|
||||
BOOKRA_STRIPE_SMS_EUR_PRICE_ID=
|
||||
BOOKRA_STRIPE_SMS_GBP_PRICE_ID=
|
||||
BOOKRA_STRIPE_SMS_PLN_PRICE_ID=
|
||||
|
||||
# --------------------------------------------
|
||||
# EMAIL (Optional)
|
||||
@@ -75,8 +89,25 @@ BOOKRA_SMTP_PORT=587
|
||||
BOOKRA_SMTP_USERNAME=
|
||||
BOOKRA_SMTP_PASSWORD=
|
||||
|
||||
# --------------------------------------------
|
||||
# SMS Manager.cz (Optional — SMS add-on)
|
||||
# --------------------------------------------
|
||||
BOOKRA_SMSMANAGER_API_KEY=
|
||||
BOOKRA_SMSMANAGER_BASE_URL=https://api.smsmngr.com/v2
|
||||
|
||||
# --------------------------------------------
|
||||
# ANALYTICS (Optional)
|
||||
# --------------------------------------------
|
||||
BOOKRA_UMAMI_API_URL=
|
||||
BOOKRA_UMAMI_API_KEY=
|
||||
|
||||
# --------------------------------------------
|
||||
# MONITORING (Optional)
|
||||
# --------------------------------------------
|
||||
BOOKRA_SENTRY_DSN=
|
||||
|
||||
# --------------------------------------------
|
||||
# ADMIN (Optional — platform admin API)
|
||||
# --------------------------------------------
|
||||
BOOKRA_ADMIN_EMAIL=
|
||||
BOOKRA_ADMIN_KEY=
|
||||
Reference in new issue
Block a user