feat: AZ dispensary harmonization with Dutchie source of truth
Major changes: - Add harmonize-az-dispensaries.ts script to sync dispensaries with Dutchie API - Add migration 057 for crawl_enabled and dutchie_verified fields - Remove legacy dutchie-az module (replaced by platforms/dutchie) - Clean up deprecated crawlers, scrapers, and orchestrator code - Update location-discovery to not fallback to slug when ID is missing - Add crawl-rotator service for proxy rotation - Add types/index.ts for shared type definitions - Add woodpecker-agent k8s manifest Harmonization script: - Queries ConsumerDispensaries API for all 32 AZ cities - Matches dispensaries by platform_dispensary_id (not slug) - Updates existing records with full Dutchie data - Creates new records for unmatched Dutchie dispensaries - Disables dispensaries not found in Dutchie 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
40
backend/.env
40
backend/.env
@@ -1,30 +1,52 @@
|
||||
# CannaiQ Backend Environment Configuration
|
||||
# Copy this file to .env and fill in the values
|
||||
|
||||
# Server
|
||||
PORT=3010
|
||||
NODE_ENV=development
|
||||
|
||||
# =============================================================================
|
||||
# CannaiQ Database (dutchie_menus) - PRIMARY DATABASE
|
||||
# CANNAIQ DATABASE (dutchie_menus) - PRIMARY DATABASE
|
||||
# =============================================================================
|
||||
# This is where all schema migrations run and where canonical tables live.
|
||||
# All CANNAIQ_DB_* variables are REQUIRED - connection will fail if missing.
|
||||
# This is where ALL schema migrations run and where canonical tables live.
|
||||
# All CANNAIQ_DB_* variables are REQUIRED - no defaults.
|
||||
# The application will fail to start if any are missing.
|
||||
|
||||
CANNAIQ_DB_HOST=localhost
|
||||
CANNAIQ_DB_PORT=54320
|
||||
CANNAIQ_DB_NAME=dutchie_menus
|
||||
CANNAIQ_DB_NAME=dutchie_menus # MUST be dutchie_menus - NOT dutchie_legacy
|
||||
CANNAIQ_DB_USER=dutchie
|
||||
CANNAIQ_DB_PASS=dutchie_local_pass
|
||||
|
||||
# Alternative: Use a full connection URL instead of individual vars
|
||||
# If set, this takes priority over individual vars above
|
||||
# CANNAIQ_DB_URL=postgresql://user:pass@host:port/dutchie_menus
|
||||
|
||||
# =============================================================================
|
||||
# Legacy Database (dutchie_legacy) - READ-ONLY SOURCE
|
||||
# LEGACY DATABASE (dutchie_legacy) - READ-ONLY FOR ETL
|
||||
# =============================================================================
|
||||
# Used ONLY by ETL scripts to read historical data.
|
||||
# NEVER run migrations against this database.
|
||||
# These are only needed when running 042_legacy_import.ts
|
||||
|
||||
LEGACY_DB_HOST=localhost
|
||||
LEGACY_DB_PORT=54320
|
||||
LEGACY_DB_NAME=dutchie_legacy
|
||||
LEGACY_DB_NAME=dutchie_legacy # READ-ONLY - never migrated
|
||||
LEGACY_DB_USER=dutchie
|
||||
LEGACY_DB_PASS=dutchie_local_pass
|
||||
LEGACY_DB_PASS=
|
||||
|
||||
# Local image storage (no MinIO per CLAUDE.md)
|
||||
# Alternative: Use a full connection URL instead of individual vars
|
||||
# LEGACY_DB_URL=postgresql://user:pass@host:port/dutchie_legacy
|
||||
|
||||
# =============================================================================
|
||||
# LOCAL STORAGE
|
||||
# =============================================================================
|
||||
# Local image storage path (no MinIO)
|
||||
LOCAL_IMAGES_PATH=./public/images
|
||||
|
||||
# JWT
|
||||
# =============================================================================
|
||||
# AUTHENTICATION
|
||||
# =============================================================================
|
||||
JWT_SECRET=your-secret-key-change-in-production
|
||||
ANTHROPIC_API_KEY=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
|
||||
OPENAI_API_KEY=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
|
||||
|
||||
Reference in New Issue
Block a user