Files
cartsnitch-engineer[bot] 9ca1554333 fix: replace in-memory UPC scan with PostgreSQL JSON containment query (#178)
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>
2026-05-04 15:19:33 +00:00
..

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.

Email 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 api service (api/alembic/)
  • Seed runner runs via cartsnitch-seed (installed as a package entry point)