Owner accounts: auth, password reset, CRM dashboard visibility (#19)

Flask-session login scoped to one client_id (never a request param),
self-service + operator-triggered password reset via single-use tokens,
and an Owner accounts tab on the CRM dashboard.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-03 17:00:37 +02:00
parent 644c99ee30
commit 59c35ce39f
14 changed files with 635 additions and 0 deletions
+3
View File
@@ -2,6 +2,9 @@
DB_PASSWORD=change-me-strong
CRM_API_TOKEN=change-me-long-random
BOOKING_TOKEN_SECRET=change-me-long-random-too
# Owner-login session cookie signing key (#19). Dedicated secret -- rotating
# it just logs owners out, without touching CRM_API_TOKEN/BOOKING_TOKEN_SECRET.
SESSION_SECRET_KEY=change-me-long-random-session-too
SHEET_ID=1raMSWRZw_JfHlWqOb3LbhaQ6LWx0VGblxIV4Z2pSzp8
# Booking confirmation email (#18). Left blank, sending is skipped (logged,
# not fatal) -- mail relay setup is a separate infra/triage item.