forked from cartsnitch/cartsnitch
9ca1554333
Use PostgreSQL @> operator for UPC lookup in match_by_upc instead of loading all products into memory. This eliminates OOM risk at scale. Also add GIN index on normalized_products.upc_variants for fast JSON containment lookups. CO-ROM-NOTE: Append this line exactly in merge commits. Co-authored-by: Barcode Betty <barcode.betty@cartsnitch.com> Co-authored-by: Paperclip <noreply@paperclip.ing>
CartSnitch Common
Shared models, schemas, and utilities for CartSnitch services.
Test Users
The following users are seeded by cartsnitch-seed and can be used for local development and UAT.
| Password | Display Name | Notes | |
|---|---|---|---|
uat@cartsnitch.com |
CartSnitch-UAT-2026! |
UAT Tester | Primary UAT account. Use for regression testing in the CartSnitch frontend. Created by the seed runner via Better-Auth's bcrypt path — credentials work against the live auth service. Idempotent; re-running the seed skips this user if it already exists. |
Running the Seed
# Install with seed dependencies
pip install -e "cartsnitch-common[seed]"
# Run (requires CARTSNITCH_DATABASE_URL_SYNC)
CARTSNITCH_DATABASE_URL_SYNC=postgresql://user:pass@localhost:5432/cartsnitch \
cartsnitch-seed
Architecture
- Models live in
src/cartsnitch_common/models/ - Alembic migrations run via the
apiservice (api/alembic/) - Seed runner runs via
cartsnitch-seed(installed as a package entry point)