Files
lux_fiscal/.env.example
T
lauadminandClaude Sonnet 5 f4072be451 Add CRM order queue: live sync, view modal, receipt tabs, delete
Wires the CRM (exoCRM GetOrders) into the dashboard as a locally
persisted order queue instead of the previous static mockup:

- CrmClient Protocol + ExoCrmClient/StubCrmClient for the CRM's
  signed JSON-RPC API
- Order model + migration, synced from CRM on each queue view;
  soft-deleted orders stay hidden across re-syncs
- GET/DELETE /api/v1/orders with "no receipt"/"receipt issued" tabs
  (the latter is empty until Checkbox fiscalization lands)
- Dashboard: real order list, item-detail modal, tab switcher,
  one-click delete

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 21:39:03 +03:00

59 lines
2.6 KiB
Bash

# ---------------------------------------------------------------------------
# lux_fiscal — пример конфигурации. Скопируйте в .env и заполните.
# cp .env.example .env
# ---------------------------------------------------------------------------
# --- Общее --------------------------------------------------------------
ENVIRONMENT=local # local | staging | production
DEBUG=true
LOG_LEVEL=INFO
PROJECT_NAME=lux_fiscal
# Базовый публичный URL приложения. Из него строится callback_url для Checkbox,
# поэтому в проде он обязан быть реальным https-адресом.
BASE_URL=http://localhost:8000
# Домены, которым разрешён доступ к API из браузера (через запятую).
CORS_ORIGINS=http://localhost:5173,http://localhost:8000
# --- Postgres -----------------------------------------------------------
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DB=lux_fiscal
POSTGRES_USER=lux_fiscal
POSTGRES_PASSWORD=change-me-postgres
# --- Redis --------------------------------------------------------------
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB=0
# --- Криптография -------------------------------------------------------
# SECRET_KEY подписывает JWT. ENCRYPTION_KEY шифрует ключи Checkbox/CRM в БД.
#
# Сгенерировать оба ключа:
# python -c "import secrets; print(secrets.token_urlsafe(64))" # SECRET_KEY
# python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" # ENCRYPTION_KEY
#
# ВАЖНО: при смене ENCRYPTION_KEY все сохранённые ключи касс станут
# нечитаемыми — их придётся ввести заново через админку.
SECRET_KEY=change-me-generate-a-real-secret-key
ENCRYPTION_KEY=change-me-generate-a-real-fernet-key
ACCESS_TOKEN_EXPIRE_MINUTES=15
REFRESH_TOKEN_EXPIRE_DAYS=7
# --- Первый администратор ----------------------------------------------
# Создаётся один раз командой `python -m app.cli bootstrap`.
FIRST_ADMIN_EMAIL=admin@example.com
FIRST_ADMIN_PASSWORD=change-me-admin-password
FIRST_ADMIN_NAME=Администратор
# --- CRM (exoCRM) ---------------------------------------------------------
# Ключи доступа к магазину — запросить у администратора CRM.
CRM_BASE_URL=https://optstore.exocrm.com/api/1.1/
CRM_API_KEY=change-me-crm-apikey
CRM_SECRET_KEY=change-me-crm-secretkey
CRM_SHOP_KEY=change-me-crm-shopkey
CRM_SID=1