← back to Designer Wallcoverings
security: strip hardcoded dw_admin DSN password -> env-first across DW. No rotation/deploy.
f19be762ba7ef824cc91916b81d108eecf54dbaa · 2026-05-30 09:46:14 -0700 · Steve
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
M DW-Agents/dw-agents/agent-slack/slack-agent.jsM DW-Agents/dw-agents/agent-slack/slack-agent.tsM DW-Agents/dw-agents/agent-thibaut-updater/thibaut-updater-agent.tsM DW-Agents/dw-agents/architectural-update-agent.tsM DW-Agents/dw-agents/dw-blog-agent/server.jsM DW-Agents/dw-agents/dw-instagram-agent/server.jsM DW-Agents/dw-agents/shared-executive-core.tsM DW-Programming/150dpi/database/db-postgres.jsM DW-Programming/ImportNewSkufromURL/api-vendor-fixer.tsM DW-Programming/ImportNewSkufromURL/app/api/auto-explore/route.tsM DW-Programming/ImportNewSkufromURL/app/api/crawl-last-50/route.tsM DW-Programming/ImportNewSkufromURL/app/api/delete-vendor-samples/route.tsM DW-Programming/ImportNewSkufromURL/app/api/detect-colorways/route.tsM DW-Programming/ImportNewSkufromURL/app/api/detect-images/route.tsM DW-Programming/ImportNewSkufromURL/app/api/image-proxy/route.tsM DW-Programming/ImportNewSkufromURL/app/api/ralph-wiggum-postgres/route.tsM DW-Programming/ImportNewSkufromURL/app/api/run-crawl/route.tsM DW-Programming/ImportNewSkufromURL/app/api/save-colorways/route.tsM DW-Programming/ImportNewSkufromURL/app/api/save-crawled-products/route.tsM DW-Programming/ImportNewSkufromURL/app/api/save-tested-url/route.tsM DW-Programming/ImportNewSkufromURL/app/api/update-product-thumbnail/route.tsM DW-Programming/ImportNewSkufromURL/app/api/update-vendor-urls/route.tsM DW-Programming/ImportNewSkufromURL/app/api/vendor-approval/route.tsM DW-Programming/ImportNewSkufromURL/app/api/vendor-brightdata/route.tsM DW-Programming/ImportNewSkufromURL/app/api/vendor-chat/route.tsM DW-Programming/ImportNewSkufromURL/app/api/vendor-proof/route.tsM DW-Programming/ImportNewSkufromURL/app/api/vendor-schema-manager/save-urls/route.tsM DW-Programming/ImportNewSkufromURL/auto-detect-all-vendors.tsM DW-Programming/ImportNewSkufromURL/auto-detect-batch.tsM DW-Programming/ImportNewSkufromURL/auto-detect-from-db-urls.tsM DW-Programming/ImportNewSkufromURL/auto-detect-remaining.tsM DW-Programming/ImportNewSkufromURL/auto-detect-selectors.tsM DW-Programming/ImportNewSkufromURL/autonomous-discovery-orchestrator.tsM DW-Programming/ImportNewSkufromURL/autonomous-product-discovery.tsM DW-Programming/ImportNewSkufromURL/brightdata-product-discovery.tsM DW-Programming/ImportNewSkufromURL/concurrent-brightdata-discovery.tsM DW-Programming/ImportNewSkufromURL/continue-discovery.tsM DW-Programming/ImportNewSkufromURL/continuous-db-saver.tsM DW-Programming/ImportNewSkufromURL/crawl-pending.tsM DW-Programming/ImportNewSkufromURL/crawl-shopify-vendors.tsM DW-Programming/ImportNewSkufromURL/critical-save-discovered-data.tsM DW-Programming/ImportNewSkufromURL/emergency-save-to-db.tsM DW-Programming/ImportNewSkufromURL/enhance-scrapers-with-schemas.tsM DW-Programming/ImportNewSkufromURL/enhanced-discovery-viewer.tsM DW-Programming/ImportNewSkufromURL/fixed-discovery-system.tsM DW-Programming/ImportNewSkufromURL/fixed-kravet-discovery.tsM DW-Programming/ImportNewSkufromURL/lib/color-variant-tracker.tsM DW-Programming/ImportNewSkufromURL/lib/database/postgres-client.tsM DW-Programming/ImportNewSkufromURL/lib/schema-helper.tsM DW-Programming/ImportNewSkufromURL/postgresql-discovery-restart.tsM DW-Programming/ImportNewSkufromURL/postgresql-viewer.tsM DW-Programming/ImportNewSkufromURL/real-product-discovery.tsM DW-Programming/ImportNewSkufromURL/real-products-viewer.tsM DW-Programming/ImportNewSkufromURL/restart-discovery.tsM DW-Programming/ImportNewSkufromURL/review-failed-vendors.tsM DW-Programming/ImportNewSkufromURL/save-discovery-data.tsM DW-Programming/ImportNewSkufromURL/scrape-lee-jofa.tsM DW-Programming/ImportNewSkufromURL/scripts/_disabled/update-kravet-images.tsM DW-Programming/ImportNewSkufromURL/scripts/aggressive-crawl.tsM DW-Programming/ImportNewSkufromURL/scripts/analyze-top30-json-data.tsM DW-Programming/ImportNewSkufromURL/scripts/batch-crawl-vendors.tsM DW-Programming/ImportNewSkufromURL/scripts/batch-crawl.tsM DW-Programming/ImportNewSkufromURL/scripts/batch-puppeteer-full-conversion.tsM DW-Programming/ImportNewSkufromURL/scripts/capture-10-per-vendor.tsM DW-Programming/ImportNewSkufromURL/scripts/capture-aesthetics-colors.tsM DW-Programming/ImportNewSkufromURL/scripts/capture-andrew-martin.tsM DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors-final.tsM DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors-v2.tsM DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors.tsM DW-Programming/ImportNewSkufromURL/scripts/consume-variant-queue.tsM DW-Programming/ImportNewSkufromURL/scripts/crawl-custhom.tsM DW-Programming/ImportNewSkufromURL/scripts/crawl-harlequin-glant.tsM DW-Programming/ImportNewSkufromURL/scripts/crawl-momentum.tsM DW-Programming/ImportNewSkufromURL/scripts/crawl-remaining.tsM DW-Programming/ImportNewSkufromURL/scripts/crawl-thibaut.tsM DW-Programming/ImportNewSkufromURL/scripts/crawl-wolfgordon.tsM DW-Programming/ImportNewSkufromURL/scripts/create-real-working-images.tsM DW-Programming/ImportNewSkufromURL/scripts/create-visible-test-images.tsM DW-Programming/ImportNewSkufromURL/scripts/dangerous-fix-all-vendors.tsM DW-Programming/ImportNewSkufromURL/scripts/extract-dedar-colorways.jsM DW-Programming/ImportNewSkufromURL/scripts/extract-full-product-details.tsM DW-Programming/ImportNewSkufromURL/scripts/extract-images.jsM DW-Programming/ImportNewSkufromURL/scripts/extract-innovations-colorways.tsM DW-Programming/ImportNewSkufromURL/scripts/extract-product-images-only.tsM DW-Programming/ImportNewSkufromURL/scripts/extract-product-images.tsM DW-Programming/ImportNewSkufromURL/scripts/extract-real-product-images.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-1838.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-aesthetics-wall.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-all-vendor-images.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-all-vendors.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-andrew-martin.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-arbor-wood.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-failed-vendors-dangerous.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-images-from-database-urls.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-missing-thumbnails.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-remaining-images.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-schumacher-images.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-vendors-fast.tsM DW-Programming/ImportNewSkufromURL/scripts/fix-vendors-smart.tsM DW-Programming/ImportNewSkufromURL/scripts/get-all-real-products.tsM DW-Programming/ImportNewSkufromURL/scripts/get-real-kravet-images.tsM DW-Programming/ImportNewSkufromURL/scripts/get-thibaut-direct-images.tsM DW-Programming/ImportNewSkufromURL/scripts/method1-screenshot-capture.tsM DW-Programming/ImportNewSkufromURL/scripts/method2-create-small-jpegs.tsM DW-Programming/ImportNewSkufromURL/scripts/overnight-crawl-all.tsM DW-Programming/ImportNewSkufromURL/scripts/overnight-crawl.tsM DW-Programming/ImportNewSkufromURL/scripts/populate-vendor-data.tsM DW-Programming/ImportNewSkufromURL/scripts/populate-vendor-products.tsM DW-Programming/ImportNewSkufromURL/scripts/prove-3-products-per-vendor.tsM DW-Programming/ImportNewSkufromURL/scripts/prove-via-agent-sku.tsM DW-Programming/ImportNewSkufromURL/scripts/quick-add-more-products.tsM DW-Programming/ImportNewSkufromURL/scripts/quick-crawl-remaining.tsM DW-Programming/ImportNewSkufromURL/scripts/quick-proof.tsM DW-Programming/ImportNewSkufromURL/scripts/ralph-wiggum-product-finder.tsM DW-Programming/ImportNewSkufromURL/scripts/run-all-vendor-scrapers.tsM DW-Programming/ImportNewSkufromURL/scripts/run-thibaut-crawl.tsM DW-Programming/ImportNewSkufromURL/scripts/rwltd-gemini-cron.jsM DW-Programming/ImportNewSkufromURL/scripts/scan-all-vendors.tsM DW-Programming/ImportNewSkufromURL/scripts/scan-variants-from-db.tsM DW-Programming/ImportNewSkufromURL/scripts/smart-crawl.tsM DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-images.tsM DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-save-results.tsM DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-yolo.tsM DW-Programming/ImportNewSkufromURL/scripts/test-color-detection-stable.tsM DW-Programming/ImportNewSkufromURL/scripts/test-color-variant-detection.tsM DW-Programming/ImportNewSkufromURL/scripts/test-elitis.tsM DW-Programming/ImportNewSkufromURL/scripts/test-scalamandre-direct.tsM DW-Programming/ImportNewSkufromURL/scripts/test-william-morris.tsM DW-Programming/ImportNewSkufromURL/scripts/test-working-vendors.tsM DW-Programming/ImportNewSkufromURL/scripts/test-york.tsM DW-Programming/ImportNewSkufromURL/scripts/yolo-fetch-real-images.tsM DW-Programming/ImportNewSkufromURL/scripts/yolo-fix-everything.tsM DW-Programming/ImportNewSkufromURL/scripts/yolo-image-fetcher.tsM DW-Programming/ImportNewSkufromURL/scripts/yolo-kravet-correct-urls.tsM DW-Programming/ImportNewSkufromURL/scripts/yolo-kravet-download-button.tsM DW-Programming/ImportNewSkufromURL/scripts/yolo-product-harvester.tsM DW-Programming/ImportNewSkufromURL/scripts/yolo-real-product-images.tsM DW-Programming/ImportNewSkufromURL/skip-brunschwig-continue.tsM DW-Programming/ImportNewSkufromURL/smart-continue-discovery.tsM DW-Programming/ImportNewSkufromURL/test-all-vendors-pipeline.tsM DW-Programming/ImportNewSkufromURL/test-random-vendor-selectors.tsM DW-Programming/ImportNewSkufromURL/test-vendor-batch.tsM DW-Programming/ImportNewSkufromURL/test-yolo-scrapers.tsM DW-Programming/ImportNewSkufromURL/vendor-inspector/inspector-server.tsM DW-Programming/ImportNewSkufromURL/yolo-overnight-runner.tsM DW-Programming/ImportNewSkufromURL/yolo-schema-discovery.tsM DW-Programming/ImportNewSkufromURL/yolo-scraper-generator.tsM DW-Programming/ShopifyCalendarNext/scripts/activate-first-two.tsM DW-Programming/ShopifyCalendarNext/scripts/rescan-scheduled-posts.tsM DW-Programming/ShopifyCalendarNext/src/app/api/analyze-product/route.tsM DW-Programming/ShopifyCalendarNext/src/app/api/bespoke-product/route.tsM DW-Programming/ShopifyCalendarNext/src/lib/db.tsM DW-Programming/activate-versace-drafts.jsM DW-Programming/activate-versace-vi.jsM DW-Programming/anna-french-ai-enrich.jsM DW-Programming/anna-french-room-settings.jsM DW-Programming/anna-french-shopify-push.jsM DW-Programming/archive-thibaut-discontinued.jsM DW-Programming/arte-crawl-all-urls.jsM DW-Programming/arte-image-backfill.jsM DW-Programming/arte-search-scrape-width.jsM DW-Programming/arte-width-from-shopify.jsM DW-Programming/as-creation-shopify-push.jsM DW-Programming/backfill-schumacher-images.jsM DW-Programming/china-seas-design-tagger.jsM DW-Programming/china-seas-hex-colors.jsM DW-Programming/china-seas-image-enrichment-2.jsM DW-Programming/china-seas-image-enrichment-3.jsM DW-Programming/china-seas-image-enrichment.jsM DW-Programming/command54-shopify-push.jsM DW-Programming/dwc-bulk-audit.jsM DW-Programming/dwc-legacy-audit.jsM DW-Programming/dwjs-phase2-scrape-specs.jsM DW-Programming/enrich-anna-french-pass2.jsM DW-Programming/enrich-anna-french-specs.jsM DW-Programming/enrich-anna-french.jsM DW-Programming/enrich-arte-width.jsM DW-Programming/enrich-ascreation-width.jsM DW-Programming/enrich-grahambrown-width.jsM DW-Programming/enrich-rl-width.jsM DW-Programming/fix-empty-body-html.jsM DW-Programming/fix-product-type-by-width.jsM DW-Programming/fix-product-type-tags.jsM DW-Programming/fix-sandberg-body.jsM DW-Programming/fix-single-variant-pricing.jsM DW-Programming/generate-maya-room-settings.jsM DW-Programming/generate-maya-spin-viewers.jsM DW-Programming/hex-color-blitz.jsM DW-Programming/hollywood-hex-and-tags.jsM DW-Programming/hollywood-hex-extract.jsM DW-Programming/hollywood-shopify-push.jsM DW-Programming/interior-design-ai-tagger.jsM DW-Programming/jd-room-batch.jsM DW-Programming/jd-room-test.jsM DW-Programming/justindavid-shopify-push.jsM DW-Programming/launch-versace-vi.jsM DW-Programming/maya-romanoff-updater/maya-romanoff-updater.jsM DW-Programming/maya-romanoff-updater/server.jsM DW-Programming/mdcwall-image-finder.jsM DW-Programming/migrate-dwkk-to-dwpr.jsM DW-Programming/nextjs-liquid-app/backfill-metafields.jsM DW-Programming/nextjs-liquid-app/db-proxy/server.jsM DW-Programming/nextjs-liquid-app/update-mckenzie-titles.jsM DW-Programming/phase3-ai-enrich-100.jsM DW-Programming/phase3-ai-enrich-batch.jsM DW-Programming/phase3-ai-enrich-run.jsM DW-Programming/phase3-ai-enrichment.jsM DW-Programming/pj-tearsheet-scraper.jsM DW-Programming/prl-ai-enrich.jsM DW-Programming/push-china-seas-metafields.jsM DW-Programming/push-color-hex-metafields.jsM DW-Programming/push-maya-romanoff-to-shopify.jsM DW-Programming/push-versa-specs-to-shopify.jsM DW-Programming/push-versace-vi.jsM DW-Programming/romo-group-enrichment-scraper.jsM DW-Programming/room-setting-app/scripts/batch-room-generator.jsM DW-Programming/scrape-versa-evo-pvcfree.jsM DW-Programming/scrape-versace-images.jsM DW-Programming/set-pattern-name-metafield.jsM DW-Programming/test-anna-5.jsM DW-Programming/twil-image-retail-scraper.jsM DW-Programming/twil-image-validator.jsM DW-Programming/twil-tag-needs-image.jsM DW-Programming/twil-verify-remaining.jsM DW-Programming/update-dwjs-specs-final.jsM DW-Programming/update-dwjs-specs-phase2.jsM DW-Programming/update-dwjs-specs-phase3.jsM DW-Programming/update-dwjs-specs-phase4.jsM DW-Programming/update-dwjs-specs.jsM DW-Programming/vendor-crawlers/arte-crawler/server.jsM DW-Programming/vendor-crawlers/bespoke-crawler/server.jsM DW-Programming/vendor-crawlers/brewster-crawler/server.jsM DW-Programming/vendor-crawlers/coleson-crawler/server.jsM DW-Programming/vendor-crawlers/cowtan-crawler/server.jsM DW-Programming/vendor-crawlers/elitis-crawler/scraper.jsM DW-Programming/vendor-crawlers/elitis-crawler/server.jsM DW-Programming/vendor-crawlers/enrich-nlxl.jsM DW-Programming/vendor-crawlers/innovations-crawler/server.jsM DW-Programming/vendor-crawlers/koroseal-crawler/server.jsM DW-Programming/vendor-crawlers/kravet-crawler/server.jsM DW-Programming/vendor-crawlers/lib/crawler-tracker.jsM DW-Programming/vendor-crawlers/lib/sku-registry.jsM DW-Programming/vendor-crawlers/maya-crawler/server.jsM DW-Programming/vendor-crawlers/pj-crawler/server.jsM DW-Programming/vendor-crawlers/rlf-crawler/server.jsM DW-Programming/vendor-crawlers/schumacher-crawler/server.jsM DW-Programming/vendor-crawlers/thibaut-crawler/full-fetch.jsM DW-Programming/vendor-crawlers/thibaut-crawler/import-from-spreadsheet.jsM DW-Programming/vendor-crawlers/thibaut-crawler/server.jsM DW-Programming/vendor-crawlers/thibaut-crawler/sync-shopify-to-catalog.jsM DW-Programming/vendor-crawlers/thibaut-crawler/sync-thibaut-skus.jsM DW-Programming/vendor-crawlers/york-crawler/server.jsM DW-Programming/verify-versace.jsM DW-Programming/versa-evo-enrich.jsM DW-Programming/versa-evo-pvcfree-scraper.jsM DW-Programming/versace-dry-run.jsM DW-Programming/versace-image-scraper.jsM DW-Programming/versace-image-uploader.jsM DW-Programming/width-blitz.jsM DW-Programming/zoffany-ai-enrich.jsM ai-enrich-arte-fix.jsM ai-enrich-gaps2.jsM arte-fill-tags.jsM enrich-arte-fix.jsM enrich-arte-gaps.jsM enrich-arte-puppeteer.jsM enrich-remaining-13.jsM gemini-classify-texture.jsM gemini-enrich-arte.jsM gemini-enrich-arte9.jsM gemini-enrich-gaps.jsM lib/processing-state.tsM scripts/add-review-tag-thibaut.jsM scripts/ai-enrich-arte-gaps.jsM scripts/ai-enrich-gaps.jsM scripts/brand-mckenzie-full-scrape.tsM scripts/change-logger.tsM scripts/enrich-remaining-13.jsM scripts/feed-room-queue.jsM scripts/fix-justindavid-images.jsM scripts/import-fmpro-to-postgres.jsM scripts/interior-design-tags.jsM scripts/jd-fix-image-urls.jsM scripts/justindavid-room-settings.jsM scripts/kill-wallpaper-word.jsM scripts/koroseal-website-scraper.tsM scripts/mfr-sku-bulk-update.jsM scripts/populate-dwtt-mfr-sku-active.jsM scripts/populate-dwtt-mfr-sku-from-catalog.jsM scripts/populate-dwtt-mfr-sku.jsM scripts/prl-ai-enrich.jsM scripts/push-mfr-to-shopify.jsM scripts/rw-drapery-room-settings.jsM scripts/rw-upload-room-settings.jsM scripts/supplier-mfr-bulk-push.jsM scripts/surface-stick-backfill.jsM scripts/swatch-spin-generator.jsM scripts/sync-shopify-to-postgres.jsM scripts/texture-repeat-classifier.jsM scripts/thibaut-master-products.jsM scripts/thibaut-scrape-missing.jsM scripts/thibaut-scrape-viewer.jsM scripts/vendor-monthly/shopify-sync.jsM shopify/scripts/apex-repeat-push.jsM shopify/scripts/arte-dashboard/arte-catalog-crawler.jsM shopify/scripts/arte-dashboard/bulk-title-updater.jsM shopify/scripts/arte-dashboard/crawl-all-arte.jsM shopify/scripts/arte-dashboard/enrich-width.jsM shopify/scripts/arte-dashboard/fast-fix.jsM shopify/scripts/arte-dashboard/fetch-arte-packshots.jsM shopify/scripts/arte-dashboard/fetch-missing-skus.jsM shopify/scripts/arte-dashboard/fetch-packshots-robust.jsM shopify/scripts/arte-dashboard/fix-all-arte-images.jsM shopify/scripts/arte-dashboard/fix-all-colorway-images.jsM shopify/scripts/arte-dashboard/fix-all-images.jsM shopify/scripts/arte-dashboard/fix-arte-images-v2.jsM shopify/scripts/arte-dashboard/fix-arte-images-v3.jsM shopify/scripts/arte-dashboard/fix-arte-images-v4.jsM shopify/scripts/arte-dashboard/fix-arte-images.jsM shopify/scripts/arte-dashboard/populate-mapping.jsM shopify/scripts/arte-dashboard/scrape-batouri-colors.jsM shopify/scripts/arte-dashboard/server.jsM shopify/scripts/arte-dashboard/test-arte-contract-crawl.jsM shopify/scripts/arte-dashboard/test-extraction.jsM shopify/scripts/arte-dashboard/update-all-packshots.jsM shopify/scripts/arte-dashboard/update-bayuda.jsM shopify/scripts/arte-dashboard/update-tatami.jsM shopify/scripts/arte-update-mfr-sku.jsM shopify/scripts/assign-elitis-dw-skus.jsM shopify/scripts/batch-room-settings/batch-room-generator.jsM shopify/scripts/bespoke-updater/server.jsM shopify/scripts/classify-texture-pattern.jsM shopify/scripts/gemini-catalog-tagger.jsM shopify/scripts/gemini-tag-engine/index.jsM shopify/scripts/hollywood-tag-enrichment.jsM shopify/scripts/interior-design-tagger.jsM shopify/scripts/koroseal-batch-cron.jsM shopify/scripts/la-walls-image-sync.jsM shopify/scripts/paul-montgomery-image-sync.jsM shopify/scripts/prl-ai-enrich.jsM shopify/scripts/push-color-metafields.jsM shopify/scripts/push-fire-rating-metafields.jsM shopify/scripts/push-pattern-repeat-metafields.jsM shopify/scripts/romo-drilldown.jsM shopify/scripts/schumacher-import.jsM shopify/scripts/schumacher-price-scraper.jsM shopify/scripts/set-texture-repeat-zero.jsM shopify/scripts/sync-shopify-products.jsM shopify/scripts/texture-repeat-fixer.jsM shopify/scripts/thibaut-repeat-scraper.jsM shopify/scripts/update-all-malibu-architectural.tsM shopify/scripts/wolf-gordon-shopify-push.jsM shopify/scripts/zoffany-ai-enrich-push.jsM shopify/scripts/zoffany-full-monty-20.jsM thibaut-repeat-run.js
Diff
commit f19be762ba7ef824cc91916b81d108eecf54dbaa
Author: Steve <steve@designerwallcoverings.com>
Date: Sat May 30 09:46:14 2026 -0700
security: strip hardcoded dw_admin DSN password -> env-first across DW. No rotation/deploy.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
DW-Agents/dw-agents/agent-slack/slack-agent.js | 2 +-
DW-Agents/dw-agents/agent-slack/slack-agent.ts | 2 +-
DW-Agents/dw-agents/agent-thibaut-updater/thibaut-updater-agent.ts | 2 +-
DW-Agents/dw-agents/architectural-update-agent.ts | 2 +-
DW-Agents/dw-agents/dw-blog-agent/server.js | 2 +-
DW-Agents/dw-agents/dw-instagram-agent/server.js | 2 +-
DW-Agents/dw-agents/shared-executive-core.ts | 2 +-
DW-Programming/150dpi/database/db-postgres.js | 2 +-
DW-Programming/ImportNewSkufromURL/api-vendor-fixer.ts | 2 +-
DW-Programming/ImportNewSkufromURL/app/api/auto-explore/route.ts | 2 +-
DW-Programming/ImportNewSkufromURL/app/api/crawl-last-50/route.ts | 2 +-
.../ImportNewSkufromURL/app/api/delete-vendor-samples/route.ts | 2 +-
DW-Programming/ImportNewSkufromURL/app/api/detect-colorways/route.ts | 2 +-
DW-Programming/ImportNewSkufromURL/app/api/detect-images/route.ts | 2 +-
DW-Programming/ImportNewSkufromURL/app/api/image-proxy/route.ts | 2 +-
.../ImportNewSkufromURL/app/api/ralph-wiggum-postgres/route.ts | 2 +-
DW-Programming/ImportNewSkufromURL/app/api/run-crawl/route.ts | 2 +-
DW-Programming/ImportNewSkufromURL/app/api/save-colorways/route.ts | 2 +-
.../ImportNewSkufromURL/app/api/save-crawled-products/route.ts | 2 +-
DW-Programming/ImportNewSkufromURL/app/api/save-tested-url/route.ts | 2 +-
.../ImportNewSkufromURL/app/api/update-product-thumbnail/route.ts | 2 +-
.../ImportNewSkufromURL/app/api/update-vendor-urls/route.ts | 2 +-
DW-Programming/ImportNewSkufromURL/app/api/vendor-approval/route.ts | 2 +-
DW-Programming/ImportNewSkufromURL/app/api/vendor-brightdata/route.ts | 2 +-
DW-Programming/ImportNewSkufromURL/app/api/vendor-chat/route.ts | 2 +-
DW-Programming/ImportNewSkufromURL/app/api/vendor-proof/route.ts | 2 +-
.../app/api/vendor-schema-manager/save-urls/route.ts | 2 +-
DW-Programming/ImportNewSkufromURL/auto-detect-all-vendors.ts | 2 +-
DW-Programming/ImportNewSkufromURL/auto-detect-batch.ts | 2 +-
DW-Programming/ImportNewSkufromURL/auto-detect-from-db-urls.ts | 2 +-
DW-Programming/ImportNewSkufromURL/auto-detect-remaining.ts | 2 +-
DW-Programming/ImportNewSkufromURL/auto-detect-selectors.ts | 2 +-
.../ImportNewSkufromURL/autonomous-discovery-orchestrator.ts | 2 +-
DW-Programming/ImportNewSkufromURL/autonomous-product-discovery.ts | 2 +-
DW-Programming/ImportNewSkufromURL/brightdata-product-discovery.ts | 2 +-
DW-Programming/ImportNewSkufromURL/concurrent-brightdata-discovery.ts | 2 +-
DW-Programming/ImportNewSkufromURL/continue-discovery.ts | 2 +-
DW-Programming/ImportNewSkufromURL/continuous-db-saver.ts | 2 +-
DW-Programming/ImportNewSkufromURL/crawl-pending.ts | 2 +-
DW-Programming/ImportNewSkufromURL/crawl-shopify-vendors.ts | 2 +-
DW-Programming/ImportNewSkufromURL/critical-save-discovered-data.ts | 2 +-
DW-Programming/ImportNewSkufromURL/emergency-save-to-db.ts | 2 +-
DW-Programming/ImportNewSkufromURL/enhance-scrapers-with-schemas.ts | 2 +-
DW-Programming/ImportNewSkufromURL/enhanced-discovery-viewer.ts | 2 +-
DW-Programming/ImportNewSkufromURL/fixed-discovery-system.ts | 2 +-
DW-Programming/ImportNewSkufromURL/fixed-kravet-discovery.ts | 2 +-
DW-Programming/ImportNewSkufromURL/lib/color-variant-tracker.ts | 2 +-
DW-Programming/ImportNewSkufromURL/lib/database/postgres-client.ts | 2 +-
DW-Programming/ImportNewSkufromURL/lib/schema-helper.ts | 2 +-
DW-Programming/ImportNewSkufromURL/postgresql-discovery-restart.ts | 2 +-
DW-Programming/ImportNewSkufromURL/postgresql-viewer.ts | 2 +-
DW-Programming/ImportNewSkufromURL/real-product-discovery.ts | 2 +-
DW-Programming/ImportNewSkufromURL/real-products-viewer.ts | 2 +-
DW-Programming/ImportNewSkufromURL/restart-discovery.ts | 2 +-
DW-Programming/ImportNewSkufromURL/review-failed-vendors.ts | 2 +-
DW-Programming/ImportNewSkufromURL/save-discovery-data.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scrape-lee-jofa.ts | 2 +-
.../ImportNewSkufromURL/scripts/_disabled/update-kravet-images.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/aggressive-crawl.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/analyze-top30-json-data.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/batch-crawl-vendors.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/batch-crawl.ts | 2 +-
.../ImportNewSkufromURL/scripts/batch-puppeteer-full-conversion.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/capture-10-per-vendor.ts | 2 +-
.../ImportNewSkufromURL/scripts/capture-aesthetics-colors.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/capture-andrew-martin.ts | 2 +-
.../ImportNewSkufromURL/scripts/check-vendor-selectors-final.ts | 2 +-
.../ImportNewSkufromURL/scripts/check-vendor-selectors-v2.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/consume-variant-queue.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/crawl-custhom.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/crawl-harlequin-glant.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/crawl-momentum.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/crawl-remaining.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/crawl-thibaut.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/crawl-wolfgordon.ts | 2 +-
.../ImportNewSkufromURL/scripts/create-real-working-images.ts | 2 +-
.../ImportNewSkufromURL/scripts/create-visible-test-images.ts | 2 +-
.../ImportNewSkufromURL/scripts/dangerous-fix-all-vendors.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/extract-dedar-colorways.js | 2 +-
.../ImportNewSkufromURL/scripts/extract-full-product-details.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/extract-images.js | 2 +-
.../ImportNewSkufromURL/scripts/extract-innovations-colorways.ts | 2 +-
.../ImportNewSkufromURL/scripts/extract-product-images-only.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/extract-product-images.ts | 2 +-
.../ImportNewSkufromURL/scripts/extract-real-product-images.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/fix-1838.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/fix-aesthetics-wall.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/fix-all-vendor-images.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/fix-all-vendors.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/fix-andrew-martin.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/fix-arbor-wood.ts | 2 +-
.../ImportNewSkufromURL/scripts/fix-failed-vendors-dangerous.ts | 2 +-
.../ImportNewSkufromURL/scripts/fix-images-from-database-urls.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/fix-missing-thumbnails.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/fix-remaining-images.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/fix-schumacher-images.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/fix-vendors-fast.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/fix-vendors-smart.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/get-all-real-products.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/get-real-kravet-images.ts | 2 +-
.../ImportNewSkufromURL/scripts/get-thibaut-direct-images.ts | 2 +-
.../ImportNewSkufromURL/scripts/method1-screenshot-capture.ts | 2 +-
.../ImportNewSkufromURL/scripts/method2-create-small-jpegs.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/overnight-crawl-all.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/overnight-crawl.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/populate-vendor-data.ts | 2 +-
.../ImportNewSkufromURL/scripts/populate-vendor-products.ts | 2 +-
.../ImportNewSkufromURL/scripts/prove-3-products-per-vendor.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/prove-via-agent-sku.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/quick-add-more-products.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/quick-crawl-remaining.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/quick-proof.ts | 4 ++--
.../ImportNewSkufromURL/scripts/ralph-wiggum-product-finder.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/run-all-vendor-scrapers.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/run-thibaut-crawl.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/rwltd-gemini-cron.js | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/scan-all-vendors.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/scan-variants-from-db.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/smart-crawl.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-images.ts | 2 +-
.../ImportNewSkufromURL/scripts/test-all-vendors-save-results.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-yolo.ts | 2 +-
.../ImportNewSkufromURL/scripts/test-color-detection-stable.ts | 2 +-
.../ImportNewSkufromURL/scripts/test-color-variant-detection.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/test-elitis.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/test-scalamandre-direct.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/test-william-morris.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/test-working-vendors.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/test-york.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/yolo-fetch-real-images.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/yolo-fix-everything.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/yolo-image-fetcher.ts | 2 +-
.../ImportNewSkufromURL/scripts/yolo-kravet-correct-urls.ts | 2 +-
.../ImportNewSkufromURL/scripts/yolo-kravet-download-button.ts | 2 +-
DW-Programming/ImportNewSkufromURL/scripts/yolo-product-harvester.ts | 2 +-
.../ImportNewSkufromURL/scripts/yolo-real-product-images.ts | 2 +-
DW-Programming/ImportNewSkufromURL/skip-brunschwig-continue.ts | 2 +-
DW-Programming/ImportNewSkufromURL/smart-continue-discovery.ts | 2 +-
DW-Programming/ImportNewSkufromURL/test-all-vendors-pipeline.ts | 2 +-
DW-Programming/ImportNewSkufromURL/test-random-vendor-selectors.ts | 2 +-
DW-Programming/ImportNewSkufromURL/test-vendor-batch.ts | 2 +-
DW-Programming/ImportNewSkufromURL/test-yolo-scrapers.ts | 2 +-
.../ImportNewSkufromURL/vendor-inspector/inspector-server.ts | 2 +-
DW-Programming/ImportNewSkufromURL/yolo-overnight-runner.ts | 2 +-
DW-Programming/ImportNewSkufromURL/yolo-schema-discovery.ts | 2 +-
DW-Programming/ImportNewSkufromURL/yolo-scraper-generator.ts | 2 +-
DW-Programming/ShopifyCalendarNext/scripts/activate-first-two.ts | 2 +-
DW-Programming/ShopifyCalendarNext/scripts/rescan-scheduled-posts.ts | 2 +-
.../ShopifyCalendarNext/src/app/api/analyze-product/route.ts | 2 +-
.../ShopifyCalendarNext/src/app/api/bespoke-product/route.ts | 2 +-
DW-Programming/ShopifyCalendarNext/src/lib/db.ts | 2 +-
DW-Programming/activate-versace-drafts.js | 2 +-
DW-Programming/activate-versace-vi.js | 2 +-
DW-Programming/anna-french-ai-enrich.js | 2 +-
DW-Programming/anna-french-room-settings.js | 2 +-
DW-Programming/anna-french-shopify-push.js | 2 +-
DW-Programming/archive-thibaut-discontinued.js | 2 +-
DW-Programming/arte-crawl-all-urls.js | 2 +-
DW-Programming/arte-image-backfill.js | 2 +-
DW-Programming/arte-search-scrape-width.js | 2 +-
DW-Programming/arte-width-from-shopify.js | 2 +-
DW-Programming/as-creation-shopify-push.js | 2 +-
DW-Programming/backfill-schumacher-images.js | 2 +-
DW-Programming/china-seas-design-tagger.js | 2 +-
DW-Programming/china-seas-hex-colors.js | 2 +-
DW-Programming/china-seas-image-enrichment-2.js | 2 +-
DW-Programming/china-seas-image-enrichment-3.js | 2 +-
DW-Programming/china-seas-image-enrichment.js | 2 +-
DW-Programming/command54-shopify-push.js | 2 +-
DW-Programming/dwc-bulk-audit.js | 2 +-
DW-Programming/dwc-legacy-audit.js | 2 +-
DW-Programming/dwjs-phase2-scrape-specs.js | 2 +-
DW-Programming/enrich-anna-french-pass2.js | 2 +-
DW-Programming/enrich-anna-french-specs.js | 2 +-
DW-Programming/enrich-anna-french.js | 2 +-
DW-Programming/enrich-arte-width.js | 2 +-
DW-Programming/enrich-ascreation-width.js | 2 +-
DW-Programming/enrich-grahambrown-width.js | 2 +-
DW-Programming/enrich-rl-width.js | 2 +-
DW-Programming/fix-empty-body-html.js | 2 +-
DW-Programming/fix-product-type-by-width.js | 2 +-
DW-Programming/fix-product-type-tags.js | 2 +-
DW-Programming/fix-sandberg-body.js | 2 +-
DW-Programming/fix-single-variant-pricing.js | 2 +-
DW-Programming/generate-maya-room-settings.js | 2 +-
DW-Programming/generate-maya-spin-viewers.js | 2 +-
DW-Programming/hex-color-blitz.js | 2 +-
DW-Programming/hollywood-hex-and-tags.js | 2 +-
DW-Programming/hollywood-hex-extract.js | 2 +-
DW-Programming/hollywood-shopify-push.js | 2 +-
DW-Programming/interior-design-ai-tagger.js | 2 +-
DW-Programming/jd-room-batch.js | 2 +-
DW-Programming/jd-room-test.js | 2 +-
DW-Programming/justindavid-shopify-push.js | 2 +-
DW-Programming/launch-versace-vi.js | 2 +-
DW-Programming/maya-romanoff-updater/maya-romanoff-updater.js | 2 +-
DW-Programming/maya-romanoff-updater/server.js | 2 +-
DW-Programming/mdcwall-image-finder.js | 2 +-
DW-Programming/migrate-dwkk-to-dwpr.js | 2 +-
DW-Programming/nextjs-liquid-app/backfill-metafields.js | 2 +-
DW-Programming/nextjs-liquid-app/db-proxy/server.js | 2 +-
DW-Programming/nextjs-liquid-app/update-mckenzie-titles.js | 2 +-
DW-Programming/phase3-ai-enrich-100.js | 2 +-
DW-Programming/phase3-ai-enrich-batch.js | 2 +-
DW-Programming/phase3-ai-enrich-run.js | 2 +-
DW-Programming/phase3-ai-enrichment.js | 2 +-
DW-Programming/pj-tearsheet-scraper.js | 2 +-
DW-Programming/prl-ai-enrich.js | 2 +-
DW-Programming/push-china-seas-metafields.js | 2 +-
DW-Programming/push-color-hex-metafields.js | 2 +-
DW-Programming/push-maya-romanoff-to-shopify.js | 2 +-
DW-Programming/push-versa-specs-to-shopify.js | 2 +-
DW-Programming/push-versace-vi.js | 2 +-
DW-Programming/romo-group-enrichment-scraper.js | 2 +-
DW-Programming/room-setting-app/scripts/batch-room-generator.js | 2 +-
DW-Programming/scrape-versa-evo-pvcfree.js | 2 +-
DW-Programming/scrape-versace-images.js | 2 +-
DW-Programming/set-pattern-name-metafield.js | 2 +-
DW-Programming/test-anna-5.js | 2 +-
DW-Programming/twil-image-retail-scraper.js | 2 +-
DW-Programming/twil-image-validator.js | 2 +-
DW-Programming/twil-tag-needs-image.js | 2 +-
DW-Programming/twil-verify-remaining.js | 2 +-
DW-Programming/update-dwjs-specs-final.js | 2 +-
DW-Programming/update-dwjs-specs-phase2.js | 2 +-
DW-Programming/update-dwjs-specs-phase3.js | 2 +-
DW-Programming/update-dwjs-specs-phase4.js | 2 +-
DW-Programming/update-dwjs-specs.js | 2 +-
DW-Programming/vendor-crawlers/arte-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/bespoke-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/brewster-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/coleson-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/cowtan-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/elitis-crawler/scraper.js | 2 +-
DW-Programming/vendor-crawlers/elitis-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/enrich-nlxl.js | 2 +-
DW-Programming/vendor-crawlers/innovations-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/koroseal-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/kravet-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/lib/crawler-tracker.js | 2 +-
DW-Programming/vendor-crawlers/lib/sku-registry.js | 2 +-
DW-Programming/vendor-crawlers/maya-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/pj-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/rlf-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/schumacher-crawler/server.js | 2 +-
DW-Programming/vendor-crawlers/thibaut-crawler/full-fetch.js | 2 +-
.../vendor-crawlers/thibaut-crawler/import-from-spreadsheet.js | 2 +-
DW-Programming/vendor-crawlers/thibaut-crawler/server.js | 2 +-
.../vendor-crawlers/thibaut-crawler/sync-shopify-to-catalog.js | 2 +-
DW-Programming/vendor-crawlers/thibaut-crawler/sync-thibaut-skus.js | 2 +-
DW-Programming/vendor-crawlers/york-crawler/server.js | 2 +-
DW-Programming/verify-versace.js | 2 +-
DW-Programming/versa-evo-enrich.js | 2 +-
DW-Programming/versa-evo-pvcfree-scraper.js | 2 +-
DW-Programming/versace-dry-run.js | 2 +-
DW-Programming/versace-image-scraper.js | 2 +-
DW-Programming/versace-image-uploader.js | 2 +-
DW-Programming/width-blitz.js | 2 +-
DW-Programming/zoffany-ai-enrich.js | 2 +-
ai-enrich-arte-fix.js | 2 +-
ai-enrich-gaps2.js | 2 +-
arte-fill-tags.js | 2 +-
enrich-arte-fix.js | 2 +-
enrich-arte-gaps.js | 2 +-
enrich-arte-puppeteer.js | 2 +-
enrich-remaining-13.js | 2 +-
gemini-classify-texture.js | 2 +-
gemini-enrich-arte.js | 2 +-
gemini-enrich-arte9.js | 2 +-
gemini-enrich-gaps.js | 2 +-
lib/processing-state.ts | 2 +-
scripts/add-review-tag-thibaut.js | 2 +-
scripts/ai-enrich-arte-gaps.js | 2 +-
scripts/ai-enrich-gaps.js | 2 +-
scripts/brand-mckenzie-full-scrape.ts | 2 +-
scripts/change-logger.ts | 2 +-
scripts/enrich-remaining-13.js | 2 +-
scripts/feed-room-queue.js | 2 +-
scripts/fix-justindavid-images.js | 2 +-
scripts/import-fmpro-to-postgres.js | 2 +-
scripts/interior-design-tags.js | 2 +-
scripts/jd-fix-image-urls.js | 2 +-
scripts/justindavid-room-settings.js | 2 +-
scripts/kill-wallpaper-word.js | 2 +-
scripts/koroseal-website-scraper.ts | 2 +-
scripts/mfr-sku-bulk-update.js | 2 +-
scripts/populate-dwtt-mfr-sku-active.js | 2 +-
scripts/populate-dwtt-mfr-sku-from-catalog.js | 2 +-
scripts/populate-dwtt-mfr-sku.js | 2 +-
scripts/prl-ai-enrich.js | 2 +-
scripts/push-mfr-to-shopify.js | 2 +-
scripts/rw-drapery-room-settings.js | 2 +-
scripts/rw-upload-room-settings.js | 2 +-
scripts/supplier-mfr-bulk-push.js | 2 +-
scripts/surface-stick-backfill.js | 2 +-
scripts/swatch-spin-generator.js | 2 +-
scripts/sync-shopify-to-postgres.js | 2 +-
scripts/texture-repeat-classifier.js | 2 +-
scripts/thibaut-master-products.js | 2 +-
scripts/thibaut-scrape-missing.js | 2 +-
scripts/thibaut-scrape-viewer.js | 2 +-
scripts/vendor-monthly/shopify-sync.js | 2 +-
shopify/scripts/apex-repeat-push.js | 2 +-
shopify/scripts/arte-dashboard/arte-catalog-crawler.js | 2 +-
shopify/scripts/arte-dashboard/bulk-title-updater.js | 2 +-
shopify/scripts/arte-dashboard/crawl-all-arte.js | 2 +-
shopify/scripts/arte-dashboard/enrich-width.js | 2 +-
shopify/scripts/arte-dashboard/fast-fix.js | 2 +-
shopify/scripts/arte-dashboard/fetch-arte-packshots.js | 2 +-
shopify/scripts/arte-dashboard/fetch-missing-skus.js | 2 +-
shopify/scripts/arte-dashboard/fetch-packshots-robust.js | 2 +-
shopify/scripts/arte-dashboard/fix-all-arte-images.js | 2 +-
shopify/scripts/arte-dashboard/fix-all-colorway-images.js | 2 +-
shopify/scripts/arte-dashboard/fix-all-images.js | 2 +-
shopify/scripts/arte-dashboard/fix-arte-images-v2.js | 2 +-
shopify/scripts/arte-dashboard/fix-arte-images-v3.js | 2 +-
shopify/scripts/arte-dashboard/fix-arte-images-v4.js | 2 +-
shopify/scripts/arte-dashboard/fix-arte-images.js | 2 +-
shopify/scripts/arte-dashboard/populate-mapping.js | 2 +-
shopify/scripts/arte-dashboard/scrape-batouri-colors.js | 2 +-
shopify/scripts/arte-dashboard/server.js | 2 +-
shopify/scripts/arte-dashboard/test-arte-contract-crawl.js | 2 +-
shopify/scripts/arte-dashboard/test-extraction.js | 2 +-
shopify/scripts/arte-dashboard/update-all-packshots.js | 2 +-
shopify/scripts/arte-dashboard/update-bayuda.js | 2 +-
shopify/scripts/arte-dashboard/update-tatami.js | 2 +-
shopify/scripts/arte-update-mfr-sku.js | 2 +-
shopify/scripts/assign-elitis-dw-skus.js | 2 +-
shopify/scripts/batch-room-settings/batch-room-generator.js | 2 +-
shopify/scripts/bespoke-updater/server.js | 2 +-
shopify/scripts/classify-texture-pattern.js | 2 +-
shopify/scripts/gemini-catalog-tagger.js | 2 +-
shopify/scripts/gemini-tag-engine/index.js | 2 +-
shopify/scripts/hollywood-tag-enrichment.js | 2 +-
shopify/scripts/interior-design-tagger.js | 2 +-
shopify/scripts/koroseal-batch-cron.js | 2 +-
shopify/scripts/la-walls-image-sync.js | 2 +-
shopify/scripts/paul-montgomery-image-sync.js | 2 +-
shopify/scripts/prl-ai-enrich.js | 2 +-
shopify/scripts/push-color-metafields.js | 2 +-
shopify/scripts/push-fire-rating-metafields.js | 2 +-
shopify/scripts/push-pattern-repeat-metafields.js | 2 +-
shopify/scripts/romo-drilldown.js | 2 +-
shopify/scripts/schumacher-import.js | 2 +-
shopify/scripts/schumacher-price-scraper.js | 2 +-
shopify/scripts/set-texture-repeat-zero.js | 2 +-
shopify/scripts/sync-shopify-products.js | 2 +-
shopify/scripts/texture-repeat-fixer.js | 2 +-
shopify/scripts/thibaut-repeat-scraper.js | 2 +-
shopify/scripts/update-all-malibu-architectural.ts | 2 +-
shopify/scripts/wolf-gordon-shopify-push.js | 2 +-
shopify/scripts/zoffany-ai-enrich-push.js | 2 +-
shopify/scripts/zoffany-full-monty-20.js | 2 +-
thibaut-repeat-run.js | 2 +-
355 files changed, 356 insertions(+), 356 deletions(-)
diff --git a/DW-Agents/dw-agents/agent-slack/slack-agent.js b/DW-Agents/dw-agents/agent-slack/slack-agent.js
index 69983287..55f25c11 100644
--- a/DW-Agents/dw-agents/agent-slack/slack-agent.js
+++ b/DW-Agents/dw-agents/agent-slack/slack-agent.js
@@ -14,7 +14,7 @@ const SLACK_SIGNING_SECRET = process.env.SLACK_SIGNING_SECRET || 'b1b92b95a31072
const SLACK_WEBHOOK = process.env.SLACK_WEBHOOK || '${SLACK_WEBHOOK_URL}';
const STEVE_USER_ID = 'U03TV3UC2V7';
const ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY || '';
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
// ─── Database ─────────────────────────────────────────────────
const pool = new Pool({ connectionString: DB_URL, max: 5 });
async function logMessage(msg) {
diff --git a/DW-Agents/dw-agents/agent-slack/slack-agent.ts b/DW-Agents/dw-agents/agent-slack/slack-agent.ts
index 2c989684..659fed51 100644
--- a/DW-Agents/dw-agents/agent-slack/slack-agent.ts
+++ b/DW-Agents/dw-agents/agent-slack/slack-agent.ts
@@ -16,7 +16,7 @@ const SLACK_SIGNING_SECRET = process.env.SLACK_SIGNING_SECRET || 'b1b92b95a31072
const SLACK_WEBHOOK = process.env.SLACK_WEBHOOK || '${SLACK_WEBHOOK_URL}';
const STEVE_USER_ID = 'U03TV3UC2V7';
const ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY || '';
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
// ─── Database ─────────────────────────────────────────────────
const pool = new Pool({ connectionString: DB_URL, max: 5 });
diff --git a/DW-Agents/dw-agents/agent-thibaut-updater/thibaut-updater-agent.ts b/DW-Agents/dw-agents/agent-thibaut-updater/thibaut-updater-agent.ts
index 9bdb4983..60c86aac 100644
--- a/DW-Agents/dw-agents/agent-thibaut-updater/thibaut-updater-agent.ts
+++ b/DW-Agents/dw-agents/agent-thibaut-updater/thibaut-updater-agent.ts
@@ -29,7 +29,7 @@ const { Pool } = pg;
// PostgreSQL connection for tracking updates
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Current batch ID for tracking
diff --git a/DW-Agents/dw-agents/architectural-update-agent.ts b/DW-Agents/dw-agents/architectural-update-agent.ts
index 358fa96c..2eeb5b0a 100644
--- a/DW-Agents/dw-agents/architectural-update-agent.ts
+++ b/DW-Agents/dw-agents/architectural-update-agent.ts
@@ -36,7 +36,7 @@ import crypto from 'crypto';
// PostgreSQL connection for tracking updates
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Current batch ID for tracking
diff --git a/DW-Agents/dw-agents/dw-blog-agent/server.js b/DW-Agents/dw-agents/dw-blog-agent/server.js
index 766dcee3..339c8c3a 100644
--- a/DW-Agents/dw-agents/dw-blog-agent/server.js
+++ b/DW-Agents/dw-agents/dw-blog-agent/server.js
@@ -13,7 +13,7 @@ const PORT = process.env.PORT || 9889;
// Database
// -------------------------------------------------------------------
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Initialize blog_posts table
diff --git a/DW-Agents/dw-agents/dw-instagram-agent/server.js b/DW-Agents/dw-agents/dw-instagram-agent/server.js
index efc66901..426ad036 100644
--- a/DW-Agents/dw-agents/dw-instagram-agent/server.js
+++ b/DW-Agents/dw-agents/dw-instagram-agent/server.js
@@ -14,7 +14,7 @@ const PORT = process.env.PORT || 9887;
// Database
// -------------------------------------------------------------------
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// -------------------------------------------------------------------
diff --git a/DW-Agents/dw-agents/shared-executive-core.ts b/DW-Agents/dw-agents/shared-executive-core.ts
index c00934bc..0740bc12 100644
--- a/DW-Agents/dw-agents/shared-executive-core.ts
+++ b/DW-Agents/dw-agents/shared-executive-core.ts
@@ -22,7 +22,7 @@ const execAsync = promisify(exec);
const { Pool } = pg;
// ─── Constants ───────────────────────────────────────────────────────────
-export const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+export const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
export const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
export const SHOPIFY_TOKEN = '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';
export const SHOPIFY_API_VERSION = '2024-07';
diff --git a/DW-Programming/150dpi/database/db-postgres.js b/DW-Programming/150dpi/database/db-postgres.js
index 076b3fb1..b6664589 100644
--- a/DW-Programming/150dpi/database/db-postgres.js
+++ b/DW-Programming/150dpi/database/db-postgres.js
@@ -11,7 +11,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
max: 10,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
diff --git a/DW-Programming/ImportNewSkufromURL/api-vendor-fixer.ts b/DW-Programming/ImportNewSkufromURL/api-vendor-fixer.ts
index 1d136777..49eb5b6a 100644
--- a/DW-Programming/ImportNewSkufromURL/api-vendor-fixer.ts
+++ b/DW-Programming/ImportNewSkufromURL/api-vendor-fixer.ts
@@ -21,7 +21,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass', // Fixed: removed ! from password
+ password: process.env.PG_PASSWORD || '', // Fixed: removed ! from password
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/auto-explore/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/auto-explore/route.ts
index 2e3d80fe..e38e7e19 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/auto-explore/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/auto-explore/route.ts
@@ -5,7 +5,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/crawl-last-50/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/crawl-last-50/route.ts
index cf910b1c..be95412e 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/crawl-last-50/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/crawl-last-50/route.ts
@@ -5,7 +5,7 @@ import puppeteer from 'puppeteer';
const pool = new Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified',
max: 5,
idleTimeoutMillis: 30000,
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/delete-vendor-samples/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/delete-vendor-samples/route.ts
index 1df24870..608a896b 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/delete-vendor-samples/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/delete-vendor-samples/route.ts
@@ -4,7 +4,7 @@ import { Pool } from 'pg';
const pool = new Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/detect-colorways/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/detect-colorways/route.ts
index 5974ea08..a195d6bb 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/detect-colorways/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/detect-colorways/route.ts
@@ -5,7 +5,7 @@ import { Pool } from 'pg';
const pool = new Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/detect-images/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/detect-images/route.ts
index 1793eabe..39c57305 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/detect-images/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/detect-images/route.ts
@@ -5,7 +5,7 @@ import { Pool } from 'pg';
const pool = new Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/image-proxy/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/image-proxy/route.ts
index f6f8c417..dff1b00a 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/image-proxy/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/image-proxy/route.ts
@@ -6,7 +6,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// METHOD 4: Serve images as actual image responses, not JSON
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/ralph-wiggum-postgres/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/ralph-wiggum-postgres/route.ts
index 4e606868..6e1bbae9 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/ralph-wiggum-postgres/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/ralph-wiggum-postgres/route.ts
@@ -7,7 +7,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
max: 5,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/run-crawl/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/run-crawl/route.ts
index 6798e957..a52fefcd 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/run-crawl/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/run-crawl/route.ts
@@ -8,7 +8,7 @@ import http from 'http';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/save-colorways/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/save-colorways/route.ts
index f89df1e9..2dfaf995 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/save-colorways/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/save-colorways/route.ts
@@ -4,7 +4,7 @@ import { Pool } from 'pg';
const pool = new Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/save-crawled-products/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/save-crawled-products/route.ts
index 1bd04354..5314848d 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/save-crawled-products/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/save-crawled-products/route.ts
@@ -4,7 +4,7 @@ import { Pool } from 'pg';
const pool = new Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified',
max: 5,
idleTimeoutMillis: 30000,
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/save-tested-url/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/save-tested-url/route.ts
index 8c197bc9..0b5ac6a6 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/save-tested-url/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/save-tested-url/route.ts
@@ -4,7 +4,7 @@ import { Pool } from 'pg';
const pool = new Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/update-product-thumbnail/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/update-product-thumbnail/route.ts
index 2de40345..b384a21d 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/update-product-thumbnail/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/update-product-thumbnail/route.ts
@@ -4,7 +4,7 @@ import { Pool } from 'pg';
const pool = new Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/update-vendor-urls/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/update-vendor-urls/route.ts
index 4235c025..a63fb0f7 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/update-vendor-urls/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/update-vendor-urls/route.ts
@@ -6,7 +6,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
max: 5,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/vendor-approval/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/vendor-approval/route.ts
index 0403cc89..f75046d2 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/vendor-approval/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/vendor-approval/route.ts
@@ -6,7 +6,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
max: 5,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/vendor-brightdata/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/vendor-brightdata/route.ts
index aeaffd92..ee33a051 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/vendor-brightdata/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/vendor-brightdata/route.ts
@@ -6,7 +6,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
max: 5,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/vendor-chat/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/vendor-chat/route.ts
index 4a97d9d8..6e8a9597 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/vendor-chat/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/vendor-chat/route.ts
@@ -6,7 +6,7 @@ import { chromium } from 'playwright';
const pool = new Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/vendor-proof/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/vendor-proof/route.ts
index 6dea20e0..6304bc18 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/vendor-proof/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/vendor-proof/route.ts
@@ -6,7 +6,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
max: 5,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
diff --git a/DW-Programming/ImportNewSkufromURL/app/api/vendor-schema-manager/save-urls/route.ts b/DW-Programming/ImportNewSkufromURL/app/api/vendor-schema-manager/save-urls/route.ts
index 32c93d87..5a5bcaa4 100644
--- a/DW-Programming/ImportNewSkufromURL/app/api/vendor-schema-manager/save-urls/route.ts
+++ b/DW-Programming/ImportNewSkufromURL/app/api/vendor-schema-manager/save-urls/route.ts
@@ -4,7 +4,7 @@ import { Pool } from 'pg';
const pool = new Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/auto-detect-all-vendors.ts b/DW-Programming/ImportNewSkufromURL/auto-detect-all-vendors.ts
index 691263ae..3505b570 100644
--- a/DW-Programming/ImportNewSkufromURL/auto-detect-all-vendors.ts
+++ b/DW-Programming/ImportNewSkufromURL/auto-detect-all-vendors.ts
@@ -17,7 +17,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/auto-detect-batch.ts b/DW-Programming/ImportNewSkufromURL/auto-detect-batch.ts
index 84d73878..db0c2516 100644
--- a/DW-Programming/ImportNewSkufromURL/auto-detect-batch.ts
+++ b/DW-Programming/ImportNewSkufromURL/auto-detect-batch.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/auto-detect-from-db-urls.ts b/DW-Programming/ImportNewSkufromURL/auto-detect-from-db-urls.ts
index f199e74c..51c5bd1d 100644
--- a/DW-Programming/ImportNewSkufromURL/auto-detect-from-db-urls.ts
+++ b/DW-Programming/ImportNewSkufromURL/auto-detect-from-db-urls.ts
@@ -13,7 +13,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/auto-detect-remaining.ts b/DW-Programming/ImportNewSkufromURL/auto-detect-remaining.ts
index 7a72cde0..6ee2eeda 100644
--- a/DW-Programming/ImportNewSkufromURL/auto-detect-remaining.ts
+++ b/DW-Programming/ImportNewSkufromURL/auto-detect-remaining.ts
@@ -11,7 +11,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/auto-detect-selectors.ts b/DW-Programming/ImportNewSkufromURL/auto-detect-selectors.ts
index eb8a6727..7680451c 100644
--- a/DW-Programming/ImportNewSkufromURL/auto-detect-selectors.ts
+++ b/DW-Programming/ImportNewSkufromURL/auto-detect-selectors.ts
@@ -11,7 +11,7 @@ dotenv.config({ path: path.join(process.cwd(), '.env.local') });
// Database connection
const pool = new Pool({
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
host: '127.0.0.1',
database: 'dw_unified',
port: 5432,
diff --git a/DW-Programming/ImportNewSkufromURL/autonomous-discovery-orchestrator.ts b/DW-Programming/ImportNewSkufromURL/autonomous-discovery-orchestrator.ts
index 56c3b985..76774d79 100644
--- a/DW-Programming/ImportNewSkufromURL/autonomous-discovery-orchestrator.ts
+++ b/DW-Programming/ImportNewSkufromURL/autonomous-discovery-orchestrator.ts
@@ -21,7 +21,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/autonomous-product-discovery.ts b/DW-Programming/ImportNewSkufromURL/autonomous-product-discovery.ts
index 8634957f..3b296ca6 100644
--- a/DW-Programming/ImportNewSkufromURL/autonomous-product-discovery.ts
+++ b/DW-Programming/ImportNewSkufromURL/autonomous-product-discovery.ts
@@ -16,7 +16,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/brightdata-product-discovery.ts b/DW-Programming/ImportNewSkufromURL/brightdata-product-discovery.ts
index 5f4c093c..0207e3a8 100644
--- a/DW-Programming/ImportNewSkufromURL/brightdata-product-discovery.ts
+++ b/DW-Programming/ImportNewSkufromURL/brightdata-product-discovery.ts
@@ -20,7 +20,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/concurrent-brightdata-discovery.ts b/DW-Programming/ImportNewSkufromURL/concurrent-brightdata-discovery.ts
index 8bac7081..31e70e75 100644
--- a/DW-Programming/ImportNewSkufromURL/concurrent-brightdata-discovery.ts
+++ b/DW-Programming/ImportNewSkufromURL/concurrent-brightdata-discovery.ts
@@ -18,7 +18,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/continue-discovery.ts b/DW-Programming/ImportNewSkufromURL/continue-discovery.ts
index e399e1d0..685def83 100644
--- a/DW-Programming/ImportNewSkufromURL/continue-discovery.ts
+++ b/DW-Programming/ImportNewSkufromURL/continue-discovery.ts
@@ -16,7 +16,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/continuous-db-saver.ts b/DW-Programming/ImportNewSkufromURL/continuous-db-saver.ts
index 21b10d46..f87f2f9b 100644
--- a/DW-Programming/ImportNewSkufromURL/continuous-db-saver.ts
+++ b/DW-Programming/ImportNewSkufromURL/continuous-db-saver.ts
@@ -13,7 +13,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/crawl-pending.ts b/DW-Programming/ImportNewSkufromURL/crawl-pending.ts
index 16154c01..329eb6e2 100644
--- a/DW-Programming/ImportNewSkufromURL/crawl-pending.ts
+++ b/DW-Programming/ImportNewSkufromURL/crawl-pending.ts
@@ -6,7 +6,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
const COLOR_WORDS = new Set([
diff --git a/DW-Programming/ImportNewSkufromURL/crawl-shopify-vendors.ts b/DW-Programming/ImportNewSkufromURL/crawl-shopify-vendors.ts
index 15765fd8..97fb57f1 100644
--- a/DW-Programming/ImportNewSkufromURL/crawl-shopify-vendors.ts
+++ b/DW-Programming/ImportNewSkufromURL/crawl-shopify-vendors.ts
@@ -6,7 +6,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
const COLOR_WORDS = new Set([
diff --git a/DW-Programming/ImportNewSkufromURL/critical-save-discovered-data.ts b/DW-Programming/ImportNewSkufromURL/critical-save-discovered-data.ts
index f4fdfc18..a1391b61 100644
--- a/DW-Programming/ImportNewSkufromURL/critical-save-discovered-data.ts
+++ b/DW-Programming/ImportNewSkufromURL/critical-save-discovered-data.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/emergency-save-to-db.ts b/DW-Programming/ImportNewSkufromURL/emergency-save-to-db.ts
index a986924d..1e9a844b 100644
--- a/DW-Programming/ImportNewSkufromURL/emergency-save-to-db.ts
+++ b/DW-Programming/ImportNewSkufromURL/emergency-save-to-db.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/enhance-scrapers-with-schemas.ts b/DW-Programming/ImportNewSkufromURL/enhance-scrapers-with-schemas.ts
index 5043654b..2dac0771 100644
--- a/DW-Programming/ImportNewSkufromURL/enhance-scrapers-with-schemas.ts
+++ b/DW-Programming/ImportNewSkufromURL/enhance-scrapers-with-schemas.ts
@@ -13,7 +13,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified',
max: 20
});
diff --git a/DW-Programming/ImportNewSkufromURL/enhanced-discovery-viewer.ts b/DW-Programming/ImportNewSkufromURL/enhanced-discovery-viewer.ts
index 826884fa..b8b042ab 100644
--- a/DW-Programming/ImportNewSkufromURL/enhanced-discovery-viewer.ts
+++ b/DW-Programming/ImportNewSkufromURL/enhanced-discovery-viewer.ts
@@ -16,7 +16,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/fixed-discovery-system.ts b/DW-Programming/ImportNewSkufromURL/fixed-discovery-system.ts
index 13befdb7..1299b74c 100644
--- a/DW-Programming/ImportNewSkufromURL/fixed-discovery-system.ts
+++ b/DW-Programming/ImportNewSkufromURL/fixed-discovery-system.ts
@@ -14,7 +14,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/fixed-kravet-discovery.ts b/DW-Programming/ImportNewSkufromURL/fixed-kravet-discovery.ts
index 2a77cf00..e126e3a1 100644
--- a/DW-Programming/ImportNewSkufromURL/fixed-kravet-discovery.ts
+++ b/DW-Programming/ImportNewSkufromURL/fixed-kravet-discovery.ts
@@ -13,7 +13,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/lib/color-variant-tracker.ts b/DW-Programming/ImportNewSkufromURL/lib/color-variant-tracker.ts
index afbcaf1c..2c24d9d1 100644
--- a/DW-Programming/ImportNewSkufromURL/lib/color-variant-tracker.ts
+++ b/DW-Programming/ImportNewSkufromURL/lib/color-variant-tracker.ts
@@ -11,7 +11,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
});
export interface TrackerEntry {
diff --git a/DW-Programming/ImportNewSkufromURL/lib/database/postgres-client.ts b/DW-Programming/ImportNewSkufromURL/lib/database/postgres-client.ts
index 69ec417e..1d3c5a10 100644
--- a/DW-Programming/ImportNewSkufromURL/lib/database/postgres-client.ts
+++ b/DW-Programming/ImportNewSkufromURL/lib/database/postgres-client.ts
@@ -14,7 +14,7 @@ const pool = new Pool({
host: process.env.POSTGRES_HOST || 'localhost',
port: parseInt(process.env.POSTGRES_PORT || '5432'),
user: process.env.POSTGRES_USER || 'dw_admin',
- password: process.env.POSTGRES_PASSWORD || 'DW2024SecurePass',
+ password: process.env.POSTGRES_PASSWORD,
database: process.env.POSTGRES_DB || 'dw_unified',
max: 20, // Maximum number of clients in the pool
idleTimeoutMillis: 30000,
diff --git a/DW-Programming/ImportNewSkufromURL/lib/schema-helper.ts b/DW-Programming/ImportNewSkufromURL/lib/schema-helper.ts
index 19c5ed50..1fd85d59 100644
--- a/DW-Programming/ImportNewSkufromURL/lib/schema-helper.ts
+++ b/DW-Programming/ImportNewSkufromURL/lib/schema-helper.ts
@@ -10,7 +10,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified',
max: 20
});
diff --git a/DW-Programming/ImportNewSkufromURL/postgresql-discovery-restart.ts b/DW-Programming/ImportNewSkufromURL/postgresql-discovery-restart.ts
index de031daf..a1e1f60b 100644
--- a/DW-Programming/ImportNewSkufromURL/postgresql-discovery-restart.ts
+++ b/DW-Programming/ImportNewSkufromURL/postgresql-discovery-restart.ts
@@ -14,7 +14,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified' // THE ONE AND ONLY DATABASE
});
diff --git a/DW-Programming/ImportNewSkufromURL/postgresql-viewer.ts b/DW-Programming/ImportNewSkufromURL/postgresql-viewer.ts
index 7130fb89..da4e3dce 100644
--- a/DW-Programming/ImportNewSkufromURL/postgresql-viewer.ts
+++ b/DW-Programming/ImportNewSkufromURL/postgresql-viewer.ts
@@ -16,7 +16,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/real-product-discovery.ts b/DW-Programming/ImportNewSkufromURL/real-product-discovery.ts
index 25fc1b32..4b557f35 100644
--- a/DW-Programming/ImportNewSkufromURL/real-product-discovery.ts
+++ b/DW-Programming/ImportNewSkufromURL/real-product-discovery.ts
@@ -13,7 +13,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/real-products-viewer.ts b/DW-Programming/ImportNewSkufromURL/real-products-viewer.ts
index 32eff906..5eed7558 100644
--- a/DW-Programming/ImportNewSkufromURL/real-products-viewer.ts
+++ b/DW-Programming/ImportNewSkufromURL/real-products-viewer.ts
@@ -15,7 +15,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/restart-discovery.ts b/DW-Programming/ImportNewSkufromURL/restart-discovery.ts
index 59c0e004..a5d85241 100644
--- a/DW-Programming/ImportNewSkufromURL/restart-discovery.ts
+++ b/DW-Programming/ImportNewSkufromURL/restart-discovery.ts
@@ -14,7 +14,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/review-failed-vendors.ts b/DW-Programming/ImportNewSkufromURL/review-failed-vendors.ts
index 4d240561..6c2cf822 100644
--- a/DW-Programming/ImportNewSkufromURL/review-failed-vendors.ts
+++ b/DW-Programming/ImportNewSkufromURL/review-failed-vendors.ts
@@ -13,7 +13,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/save-discovery-data.ts b/DW-Programming/ImportNewSkufromURL/save-discovery-data.ts
index c1067a5c..b57fadb2 100644
--- a/DW-Programming/ImportNewSkufromURL/save-discovery-data.ts
+++ b/DW-Programming/ImportNewSkufromURL/save-discovery-data.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scrape-lee-jofa.ts b/DW-Programming/ImportNewSkufromURL/scrape-lee-jofa.ts
index e2d836a3..b39941e5 100644
--- a/DW-Programming/ImportNewSkufromURL/scrape-lee-jofa.ts
+++ b/DW-Programming/ImportNewSkufromURL/scrape-lee-jofa.ts
@@ -17,7 +17,7 @@ config({ path: path.join(__dirname, '.env.local') });
const prisma = new PrismaClient({
datasources: {
db: {
- url: process.env.DATABASE_URL || 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified?schema=public'
+ url: process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified?schema=public'
}
}
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/_disabled/update-kravet-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/_disabled/update-kravet-images.ts
index 18bf5b46..c447156c 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/_disabled/update-kravet-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/_disabled/update-kravet-images.ts
@@ -7,7 +7,7 @@ import { Pool } from 'pg';
import 'dotenv/config';
const pool = new Pool({
- connectionString: process.env.DATABASE_URL || 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'
});
async function updateKravetImages() {
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/aggressive-crawl.ts b/DW-Programming/ImportNewSkufromURL/scripts/aggressive-crawl.ts
index ed4179e8..c3bdbb68 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/aggressive-crawl.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/aggressive-crawl.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/analyze-top30-json-data.ts b/DW-Programming/ImportNewSkufromURL/scripts/analyze-top30-json-data.ts
index b1246673..8d62f8f0 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/analyze-top30-json-data.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/analyze-top30-json-data.ts
@@ -11,7 +11,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
interface VendorData {
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/batch-crawl-vendors.ts b/DW-Programming/ImportNewSkufromURL/scripts/batch-crawl-vendors.ts
index 1d722e58..a55d5a51 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/batch-crawl-vendors.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/batch-crawl-vendors.ts
@@ -3,7 +3,7 @@ import { Pool } from 'pg';
const pool = new Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/batch-crawl.ts b/DW-Programming/ImportNewSkufromURL/scripts/batch-crawl.ts
index af2127cc..ce7def60 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/batch-crawl.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/batch-crawl.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/batch-puppeteer-full-conversion.ts b/DW-Programming/ImportNewSkufromURL/scripts/batch-puppeteer-full-conversion.ts
index f6aa47ba..bed05483 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/batch-puppeteer-full-conversion.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/batch-puppeteer-full-conversion.ts
@@ -20,7 +20,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Get vendor selector from database
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/capture-10-per-vendor.ts b/DW-Programming/ImportNewSkufromURL/scripts/capture-10-per-vendor.ts
index 6c7795ea..68a605ca 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/capture-10-per-vendor.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/capture-10-per-vendor.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/capture-aesthetics-colors.ts b/DW-Programming/ImportNewSkufromURL/scripts/capture-aesthetics-colors.ts
index 3e745bf4..50239210 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/capture-aesthetics-colors.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/capture-aesthetics-colors.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/capture-andrew-martin.ts b/DW-Programming/ImportNewSkufromURL/scripts/capture-andrew-martin.ts
index 9b584498..7dfd61b4 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/capture-andrew-martin.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/capture-andrew-martin.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors-final.ts b/DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors-final.ts
index 43eb2bd7..c5586d80 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors-final.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors-final.ts
@@ -9,7 +9,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
async function checkTopVendorSelectors() {
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors-v2.ts b/DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors-v2.ts
index 6b13c256..f81f8773 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors-v2.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors-v2.ts
@@ -9,7 +9,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
interface VendorWithSelectors {
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors.ts b/DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors.ts
index b93c6adf..8abfe94d 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/check-vendor-selectors.ts
@@ -9,7 +9,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
interface VendorSelector {
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/consume-variant-queue.ts b/DW-Programming/ImportNewSkufromURL/scripts/consume-variant-queue.ts
index 0a76de34..a0f7cc96 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/consume-variant-queue.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/consume-variant-queue.ts
@@ -18,7 +18,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
});
// Configuration
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/crawl-custhom.ts b/DW-Programming/ImportNewSkufromURL/scripts/crawl-custhom.ts
index 8518e309..4fdbbed8 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/crawl-custhom.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/crawl-custhom.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/crawl-harlequin-glant.ts b/DW-Programming/ImportNewSkufromURL/scripts/crawl-harlequin-glant.ts
index f1f9ec82..652d51bd 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/crawl-harlequin-glant.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/crawl-harlequin-glant.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/crawl-momentum.ts b/DW-Programming/ImportNewSkufromURL/scripts/crawl-momentum.ts
index 7e0693f3..b419eac3 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/crawl-momentum.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/crawl-momentum.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/crawl-remaining.ts b/DW-Programming/ImportNewSkufromURL/scripts/crawl-remaining.ts
index 58c2bf09..1d070518 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/crawl-remaining.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/crawl-remaining.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/crawl-thibaut.ts b/DW-Programming/ImportNewSkufromURL/scripts/crawl-thibaut.ts
index 3f2f0075..cfff69f9 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/crawl-thibaut.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/crawl-thibaut.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/crawl-wolfgordon.ts b/DW-Programming/ImportNewSkufromURL/scripts/crawl-wolfgordon.ts
index 3a5e474e..5540e722 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/crawl-wolfgordon.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/crawl-wolfgordon.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/create-real-working-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/create-real-working-images.ts
index 723ff25b..759c4914 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/create-real-working-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/create-real-working-images.ts
@@ -11,7 +11,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// REAL WORKING 1x1 pixel images in different colors
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/create-visible-test-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/create-visible-test-images.ts
index 31599ee1..2f5c58ab 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/create-visible-test-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/create-visible-test-images.ts
@@ -11,7 +11,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Simple colored square SVG that converts to base64
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/dangerous-fix-all-vendors.ts b/DW-Programming/ImportNewSkufromURL/scripts/dangerous-fix-all-vendors.ts
index ca1a98fb..43752ce3 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/dangerous-fix-all-vendors.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/dangerous-fix-all-vendors.ts
@@ -13,7 +13,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// ALL VENDORS WITH THEIR REAL PRODUCT URLs
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/extract-dedar-colorways.js b/DW-Programming/ImportNewSkufromURL/scripts/extract-dedar-colorways.js
index 3d355e06..00bd9877 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/extract-dedar-colorways.js
+++ b/DW-Programming/ImportNewSkufromURL/scripts/extract-dedar-colorways.js
@@ -4,7 +4,7 @@ const pg = require('pg');
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/extract-full-product-details.ts b/DW-Programming/ImportNewSkufromURL/scripts/extract-full-product-details.ts
index 06b8f004..9f29830a 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/extract-full-product-details.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/extract-full-product-details.ts
@@ -10,7 +10,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Load previous test results
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/extract-images.js b/DW-Programming/ImportNewSkufromURL/scripts/extract-images.js
index 6c9dde36..c243ac54 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/extract-images.js
+++ b/DW-Programming/ImportNewSkufromURL/scripts/extract-images.js
@@ -4,7 +4,7 @@ const pg = require('pg');
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/extract-innovations-colorways.ts b/DW-Programming/ImportNewSkufromURL/scripts/extract-innovations-colorways.ts
index 99e2c6c0..04269945 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/extract-innovations-colorways.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/extract-innovations-colorways.ts
@@ -3,7 +3,7 @@ import { Pool } from 'pg';
const pool = new Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/extract-product-images-only.ts b/DW-Programming/ImportNewSkufromURL/scripts/extract-product-images-only.ts
index d75f128d..718a029f 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/extract-product-images-only.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/extract-product-images-only.ts
@@ -14,7 +14,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Get all vendors from database - using products table to get vendor list
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/extract-product-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/extract-product-images.ts
index 1ed3c850..83985dbf 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/extract-product-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/extract-product-images.ts
@@ -23,7 +23,7 @@ const pool = new Pool({
port: 5432,
database: "dw_unified",
user: "dw_admin",
- password: "DW2024SecurePass",
+ password: process.env.PG_PASSWORD || '',
});
const BATCH_SIZE = 50;
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/extract-real-product-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/extract-real-product-images.ts
index 6a86b632..b5af8d30 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/extract-real-product-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/extract-real-product-images.ts
@@ -23,7 +23,7 @@ const pool = new Pool({
port: 5432,
database: "dw_unified",
user: "dw_admin",
- password: "DW2024SecurePass",
+ password: process.env.PG_PASSWORD || '',
});
const BATCH_SIZE = 50;
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-1838.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-1838.ts
index ce9d3a04..254343bc 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-1838.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-1838.ts
@@ -4,7 +4,7 @@ import pg from "pg";
const pool = new pg.Pool({
host: "localhost",
user: "dw_admin",
- password: "DW2024SecurePass",
+ password: process.env.PG_PASSWORD || '',
database: "dw_unified"
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-aesthetics-wall.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-aesthetics-wall.ts
index effa7293..35f9c7aa 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-aesthetics-wall.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-aesthetics-wall.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-all-vendor-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-all-vendor-images.ts
index 29c0e994..519d651c 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-all-vendor-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-all-vendor-images.ts
@@ -15,7 +15,7 @@ const pool = new Pool({
port: 5432,
database: "dw_unified",
user: "dw_admin",
- password: "DW2024SecurePass",
+ password: process.env.PG_PASSWORD || '',
});
const VENDORS = [
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-all-vendors.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-all-vendors.ts
index ca6abefa..0bedc72d 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-all-vendors.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-all-vendors.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-andrew-martin.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-andrew-martin.ts
index f1d0913e..b9fa4f02 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-andrew-martin.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-andrew-martin.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-arbor-wood.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-arbor-wood.ts
index ced13bfc..92b7224a 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-arbor-wood.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-arbor-wood.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-failed-vendors-dangerous.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-failed-vendors-dangerous.ts
index 501ac64b..d02bc00e 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-failed-vendors-dangerous.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-failed-vendors-dangerous.ts
@@ -10,7 +10,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Load previous results
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-images-from-database-urls.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-images-from-database-urls.ts
index 61b9f8f5..d719ea56 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-images-from-database-urls.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-images-from-database-urls.ts
@@ -14,7 +14,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Product image selectors - ONLY for actual product images
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-missing-thumbnails.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-missing-thumbnails.ts
index ffa5f917..929c8247 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-missing-thumbnails.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-missing-thumbnails.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-remaining-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-remaining-images.ts
index 1a82a6e8..fe2d0570 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-remaining-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-remaining-images.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: "dw_unified",
user: "dw_admin",
- password: "DW2024SecurePass",
+ password: process.env.PG_PASSWORD || '',
});
async function downloadImage(url: string, referer: string): Promise<string | null> {
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-schumacher-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-schumacher-images.ts
index 4b860523..9c4592e2 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-schumacher-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-schumacher-images.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Real Schumacher SKUs that need images
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-vendors-fast.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-vendors-fast.ts
index 710256ec..f6d347ce 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-vendors-fast.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-vendors-fast.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/fix-vendors-smart.ts b/DW-Programming/ImportNewSkufromURL/scripts/fix-vendors-smart.ts
index 4602b5ad..e3a0e8a9 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/fix-vendors-smart.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/fix-vendors-smart.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/get-all-real-products.ts b/DW-Programming/ImportNewSkufromURL/scripts/get-all-real-products.ts
index e67e54b1..2940a43d 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/get-all-real-products.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/get-all-real-products.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// REAL products from REAL vendors
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/get-real-kravet-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/get-real-kravet-images.ts
index 32ee52ca..2ebcd5cd 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/get-real-kravet-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/get-real-kravet-images.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// REAL Kravet product URLs with REAL SKUs
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/get-thibaut-direct-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/get-thibaut-direct-images.ts
index 79dbca02..50aaa7b2 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/get-thibaut-direct-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/get-thibaut-direct-images.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Real Thibaut products with multiple CDN patterns
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/method1-screenshot-capture.ts b/DW-Programming/ImportNewSkufromURL/scripts/method1-screenshot-capture.ts
index 42dd5cc9..31b59c9b 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/method1-screenshot-capture.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/method1-screenshot-capture.ts
@@ -13,7 +13,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
const VENDORS = [
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/method2-create-small-jpegs.ts b/DW-Programming/ImportNewSkufromURL/scripts/method2-create-small-jpegs.ts
index e9ab9e71..cdca7ac8 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/method2-create-small-jpegs.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/method2-create-small-jpegs.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Small red square JPEG in base64
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/overnight-crawl-all.ts b/DW-Programming/ImportNewSkufromURL/scripts/overnight-crawl-all.ts
index dd02d69c..5345d9f5 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/overnight-crawl-all.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/overnight-crawl-all.ts
@@ -10,7 +10,7 @@ import * as path from 'path';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/overnight-crawl.ts b/DW-Programming/ImportNewSkufromURL/scripts/overnight-crawl.ts
index 241b1846..a24290cf 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/overnight-crawl.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/overnight-crawl.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/populate-vendor-data.ts b/DW-Programming/ImportNewSkufromURL/scripts/populate-vendor-data.ts
index 1194aa81..23251ced 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/populate-vendor-data.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/populate-vendor-data.ts
@@ -6,7 +6,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
const vendors = [
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/populate-vendor-products.ts b/DW-Programming/ImportNewSkufromURL/scripts/populate-vendor-products.ts
index 2852f1d8..da50228f 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/populate-vendor-products.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/populate-vendor-products.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Real vendor products with ACTUAL URLs to their product pages
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/prove-3-products-per-vendor.ts b/DW-Programming/ImportNewSkufromURL/scripts/prove-3-products-per-vendor.ts
index ea1aa1ba..55367a2a 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/prove-3-products-per-vendor.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/prove-3-products-per-vendor.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/prove-via-agent-sku.ts b/DW-Programming/ImportNewSkufromURL/scripts/prove-via-agent-sku.ts
index 39b881bd..fc7f5afe 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/prove-via-agent-sku.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/prove-via-agent-sku.ts
@@ -9,7 +9,7 @@ import * as fs from 'fs';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/quick-add-more-products.ts b/DW-Programming/ImportNewSkufromURL/scripts/quick-add-more-products.ts
index e0fa27fb..fad7cb70 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/quick-add-more-products.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/quick-add-more-products.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Focus on vendors that work best
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/quick-crawl-remaining.ts b/DW-Programming/ImportNewSkufromURL/scripts/quick-crawl-remaining.ts
index dc0373d1..3dfd5327 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/quick-crawl-remaining.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/quick-crawl-remaining.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/quick-proof.ts b/DW-Programming/ImportNewSkufromURL/scripts/quick-proof.ts
index f26530b9..e3a1d274 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/quick-proof.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/quick-proof.ts
@@ -14,7 +14,7 @@ function updateStatus(vendorId: string, status: string) {
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
@@ -160,7 +160,7 @@ async function main() {
const pool2 = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/ralph-wiggum-product-finder.ts b/DW-Programming/ImportNewSkufromURL/scripts/ralph-wiggum-product-finder.ts
index 3a9ee231..2c81086b 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/ralph-wiggum-product-finder.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/ralph-wiggum-product-finder.ts
@@ -16,7 +16,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Vendor configurations with their actual websites
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/run-all-vendor-scrapers.ts b/DW-Programming/ImportNewSkufromURL/scripts/run-all-vendor-scrapers.ts
index 18c661ba..3afe0df7 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/run-all-vendor-scrapers.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/run-all-vendor-scrapers.ts
@@ -14,7 +14,7 @@ const pool = new Pool({
port: 5432,
database: "dw_unified",
user: "dw_admin",
- password: "DW2024SecurePass",
+ password: process.env.PG_PASSWORD || '',
});
// Top priority vendors to scan (most likely to work)
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/run-thibaut-crawl.ts b/DW-Programming/ImportNewSkufromURL/scripts/run-thibaut-crawl.ts
index 81b991df..d5baed8f 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/run-thibaut-crawl.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/run-thibaut-crawl.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/rwltd-gemini-cron.js b/DW-Programming/ImportNewSkufromURL/scripts/rwltd-gemini-cron.js
index 09865f8f..dc37f9c9 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/rwltd-gemini-cron.js
+++ b/DW-Programming/ImportNewSkufromURL/scripts/rwltd-gemini-cron.js
@@ -8,7 +8,7 @@
const { Pool } = require('pg');
const https = require('https');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
const GEMINI_KEY = '${GOOGLE_API_KEY}';
const SHOP = 'designer-laboratory-sandbox.myshopify.com';
const TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/scan-all-vendors.ts b/DW-Programming/ImportNewSkufromURL/scripts/scan-all-vendors.ts
index 2f7114fe..8758e36e 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/scan-all-vendors.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/scan-all-vendors.ts
@@ -18,7 +18,7 @@ const pool = new Pool({
port: 5432,
database: "dw_unified",
user: "dw_admin",
- password: "DW2024SecurePass",
+ password: process.env.PG_PASSWORD || '',
});
// Controlled rollout configuration via env vars
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/scan-variants-from-db.ts b/DW-Programming/ImportNewSkufromURL/scripts/scan-variants-from-db.ts
index e53cc96f..7efd3dc2 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/scan-variants-from-db.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/scan-variants-from-db.ts
@@ -23,7 +23,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
});
// Configuration from env vars
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/smart-crawl.ts b/DW-Programming/ImportNewSkufromURL/scripts/smart-crawl.ts
index dfb1c285..caa49d74 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/smart-crawl.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/smart-crawl.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-images.ts
index 856c9f99..b6c434ee 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-images.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Test products from multiple vendors
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-save-results.ts b/DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-save-results.ts
index 79d278eb..078b919c 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-save-results.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-save-results.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
interface TestResult {
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-yolo.ts b/DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-yolo.ts
index 67a9879b..7322bb15 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-yolo.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/test-all-vendors-yolo.ts
@@ -11,7 +11,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
interface VendorTestResult {
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/test-color-detection-stable.ts b/DW-Programming/ImportNewSkufromURL/scripts/test-color-detection-stable.ts
index 0400b493..57474e0f 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/test-color-detection-stable.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/test-color-detection-stable.ts
@@ -14,7 +14,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
});
// Get real PDP URLs from database
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/test-color-variant-detection.ts b/DW-Programming/ImportNewSkufromURL/scripts/test-color-variant-detection.ts
index 1453f7f6..2b0e3385 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/test-color-variant-detection.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/test-color-variant-detection.ts
@@ -217,7 +217,7 @@ async function testColorVariantDetection() {
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
});
const result = await pool.query(`
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/test-elitis.ts b/DW-Programming/ImportNewSkufromURL/scripts/test-elitis.ts
index 11130845..ad2cc8d3 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/test-elitis.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/test-elitis.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/test-scalamandre-direct.ts b/DW-Programming/ImportNewSkufromURL/scripts/test-scalamandre-direct.ts
index 853fe321..bab4153e 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/test-scalamandre-direct.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/test-scalamandre-direct.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Real Scalamandre products - testing different URL formats
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/test-william-morris.ts b/DW-Programming/ImportNewSkufromURL/scripts/test-william-morris.ts
index 38547b42..1107fcac 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/test-william-morris.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/test-william-morris.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/test-working-vendors.ts b/DW-Programming/ImportNewSkufromURL/scripts/test-working-vendors.ts
index 95780d70..675d2972 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/test-working-vendors.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/test-working-vendors.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Focus on vendors with working websites
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/test-york.ts b/DW-Programming/ImportNewSkufromURL/scripts/test-york.ts
index 64a5d5c7..08318612 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/test-york.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/test-york.ts
@@ -4,7 +4,7 @@ import pg from 'pg';
const pool = new pg.Pool({
host: 'localhost',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/yolo-fetch-real-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/yolo-fetch-real-images.ts
index e039f667..ca60d0ca 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/yolo-fetch-real-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/yolo-fetch-real-images.ts
@@ -14,7 +14,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
max: 10,
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/yolo-fix-everything.ts b/DW-Programming/ImportNewSkufromURL/scripts/yolo-fix-everything.ts
index 339889ef..75359fec 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/yolo-fix-everything.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/yolo-fix-everything.ts
@@ -13,7 +13,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
max: 10,
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/yolo-image-fetcher.ts b/DW-Programming/ImportNewSkufromURL/scripts/yolo-image-fetcher.ts
index bdade994..b74e3be1 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/yolo-image-fetcher.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/yolo-image-fetcher.ts
@@ -16,7 +16,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
max: 10,
idleTimeoutMillis: 30000,
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/yolo-kravet-correct-urls.ts b/DW-Programming/ImportNewSkufromURL/scripts/yolo-kravet-correct-urls.ts
index d6ec20c4..26cbe740 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/yolo-kravet-correct-urls.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/yolo-kravet-correct-urls.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// CORRECT KRAVET URL FORMAT
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/yolo-kravet-download-button.ts b/DW-Programming/ImportNewSkufromURL/scripts/yolo-kravet-download-button.ts
index 49184209..93aeeea0 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/yolo-kravet-download-button.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/yolo-kravet-download-button.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
const KRAVET_PRODUCTS = [
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/yolo-product-harvester.ts b/DW-Programming/ImportNewSkufromURL/scripts/yolo-product-harvester.ts
index 51a826af..2b0d2fc6 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/yolo-product-harvester.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/yolo-product-harvester.ts
@@ -14,7 +14,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
max: 10,
});
diff --git a/DW-Programming/ImportNewSkufromURL/scripts/yolo-real-product-images.ts b/DW-Programming/ImportNewSkufromURL/scripts/yolo-real-product-images.ts
index 16cf561b..cc1d45e3 100644
--- a/DW-Programming/ImportNewSkufromURL/scripts/yolo-real-product-images.ts
+++ b/DW-Programming/ImportNewSkufromURL/scripts/yolo-real-product-images.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// REAL PRODUCT URLS - NOT CATEGORY PAGES!
diff --git a/DW-Programming/ImportNewSkufromURL/skip-brunschwig-continue.ts b/DW-Programming/ImportNewSkufromURL/skip-brunschwig-continue.ts
index a89cfcb8..d65169b6 100644
--- a/DW-Programming/ImportNewSkufromURL/skip-brunschwig-continue.ts
+++ b/DW-Programming/ImportNewSkufromURL/skip-brunschwig-continue.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/smart-continue-discovery.ts b/DW-Programming/ImportNewSkufromURL/smart-continue-discovery.ts
index f34a1482..83ed5e2a 100644
--- a/DW-Programming/ImportNewSkufromURL/smart-continue-discovery.ts
+++ b/DW-Programming/ImportNewSkufromURL/smart-continue-discovery.ts
@@ -13,7 +13,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified'
});
diff --git a/DW-Programming/ImportNewSkufromURL/test-all-vendors-pipeline.ts b/DW-Programming/ImportNewSkufromURL/test-all-vendors-pipeline.ts
index c1caba71..efee5381 100644
--- a/DW-Programming/ImportNewSkufromURL/test-all-vendors-pipeline.ts
+++ b/DW-Programming/ImportNewSkufromURL/test-all-vendors-pipeline.ts
@@ -9,7 +9,7 @@ import * as fs from 'fs';
import * as path from 'path';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
interface VendorTestResult {
diff --git a/DW-Programming/ImportNewSkufromURL/test-random-vendor-selectors.ts b/DW-Programming/ImportNewSkufromURL/test-random-vendor-selectors.ts
index 4ecc1626..f47b1303 100644
--- a/DW-Programming/ImportNewSkufromURL/test-random-vendor-selectors.ts
+++ b/DW-Programming/ImportNewSkufromURL/test-random-vendor-selectors.ts
@@ -10,7 +10,7 @@ import * as fs from 'fs';
import * as path from 'path';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// BrightData proxy settings
diff --git a/DW-Programming/ImportNewSkufromURL/test-vendor-batch.ts b/DW-Programming/ImportNewSkufromURL/test-vendor-batch.ts
index 2ba2cd4b..dd56238a 100644
--- a/DW-Programming/ImportNewSkufromURL/test-vendor-batch.ts
+++ b/DW-Programming/ImportNewSkufromURL/test-vendor-batch.ts
@@ -25,7 +25,7 @@ const RALPH_QUOTES = [
// Database configuration
const pool = new Pool({
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
host: '127.0.0.1',
database: 'dw_unified',
port: 5432,
diff --git a/DW-Programming/ImportNewSkufromURL/test-yolo-scrapers.ts b/DW-Programming/ImportNewSkufromURL/test-yolo-scrapers.ts
index 35bce7b4..f51ddbe6 100755
--- a/DW-Programming/ImportNewSkufromURL/test-yolo-scrapers.ts
+++ b/DW-Programming/ImportNewSkufromURL/test-yolo-scrapers.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified',
max: 20
});
diff --git a/DW-Programming/ImportNewSkufromURL/vendor-inspector/inspector-server.ts b/DW-Programming/ImportNewSkufromURL/vendor-inspector/inspector-server.ts
index e179c0f2..65ec7200 100644
--- a/DW-Programming/ImportNewSkufromURL/vendor-inspector/inspector-server.ts
+++ b/DW-Programming/ImportNewSkufromURL/vendor-inspector/inspector-server.ts
@@ -15,7 +15,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified',
max: 20
});
diff --git a/DW-Programming/ImportNewSkufromURL/yolo-overnight-runner.ts b/DW-Programming/ImportNewSkufromURL/yolo-overnight-runner.ts
index 3e16a776..81a994cd 100644
--- a/DW-Programming/ImportNewSkufromURL/yolo-overnight-runner.ts
+++ b/DW-Programming/ImportNewSkufromURL/yolo-overnight-runner.ts
@@ -16,7 +16,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified',
max: 20
});
diff --git a/DW-Programming/ImportNewSkufromURL/yolo-schema-discovery.ts b/DW-Programming/ImportNewSkufromURL/yolo-schema-discovery.ts
index 84edcb0d..d700c5bb 100644
--- a/DW-Programming/ImportNewSkufromURL/yolo-schema-discovery.ts
+++ b/DW-Programming/ImportNewSkufromURL/yolo-schema-discovery.ts
@@ -14,7 +14,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified',
max: 20
});
diff --git a/DW-Programming/ImportNewSkufromURL/yolo-scraper-generator.ts b/DW-Programming/ImportNewSkufromURL/yolo-scraper-generator.ts
index 898862ef..af2cdd12 100644
--- a/DW-Programming/ImportNewSkufromURL/yolo-scraper-generator.ts
+++ b/DW-Programming/ImportNewSkufromURL/yolo-scraper-generator.ts
@@ -12,7 +12,7 @@ const pool = new Pool({
host: 'localhost',
port: 5432,
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
database: 'dw_unified',
max: 20
});
diff --git a/DW-Programming/ShopifyCalendarNext/scripts/activate-first-two.ts b/DW-Programming/ShopifyCalendarNext/scripts/activate-first-two.ts
index bccc7150..77621870 100644
--- a/DW-Programming/ShopifyCalendarNext/scripts/activate-first-two.ts
+++ b/DW-Programming/ShopifyCalendarNext/scripts/activate-first-two.ts
@@ -4,7 +4,7 @@ const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// All 14 sales channels
diff --git a/DW-Programming/ShopifyCalendarNext/scripts/rescan-scheduled-posts.ts b/DW-Programming/ShopifyCalendarNext/scripts/rescan-scheduled-posts.ts
index 0e91f39a..89952ce7 100644
--- a/DW-Programming/ShopifyCalendarNext/scripts/rescan-scheduled-posts.ts
+++ b/DW-Programming/ShopifyCalendarNext/scripts/rescan-scheduled-posts.ts
@@ -3,7 +3,7 @@ import { Pool } from 'pg';
const GEMINI_API_KEY = '${GOOGLE_API_KEY}';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
interface ScheduledLaunch {
diff --git a/DW-Programming/ShopifyCalendarNext/src/app/api/analyze-product/route.ts b/DW-Programming/ShopifyCalendarNext/src/app/api/analyze-product/route.ts
index bcefaada..55aafc05 100644
--- a/DW-Programming/ShopifyCalendarNext/src/app/api/analyze-product/route.ts
+++ b/DW-Programming/ShopifyCalendarNext/src/app/api/analyze-product/route.ts
@@ -6,7 +6,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/DW-Programming/ShopifyCalendarNext/src/app/api/bespoke-product/route.ts b/DW-Programming/ShopifyCalendarNext/src/app/api/bespoke-product/route.ts
index 0244fc5a..908ab52f 100644
--- a/DW-Programming/ShopifyCalendarNext/src/app/api/bespoke-product/route.ts
+++ b/DW-Programming/ShopifyCalendarNext/src/app/api/bespoke-product/route.ts
@@ -6,7 +6,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// GET - Fetch product data from bespoke_catalog
diff --git a/DW-Programming/ShopifyCalendarNext/src/lib/db.ts b/DW-Programming/ShopifyCalendarNext/src/lib/db.ts
index 28010caa..df3c9bc0 100644
--- a/DW-Programming/ShopifyCalendarNext/src/lib/db.ts
+++ b/DW-Programming/ShopifyCalendarNext/src/lib/db.ts
@@ -1,7 +1,7 @@
import { Pool } from 'pg';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
export async function initDatabase() {
diff --git a/DW-Programming/activate-versace-drafts.js b/DW-Programming/activate-versace-drafts.js
index 0600c42c..723012e1 100644
--- a/DW-Programming/activate-versace-drafts.js
+++ b/DW-Programming/activate-versace-drafts.js
@@ -12,7 +12,7 @@ const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const GEMINI_KEY = '${GOOGLE_API_KEY}';
const GEMINI_MODEL = 'gemini-2.0-flash';
const SILAS_URL = 'http://127.0.0.1:9674/api/validate-activation';
-const PG_CONN = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const PG_CONN = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const { Client } = require('pg');
diff --git a/DW-Programming/activate-versace-vi.js b/DW-Programming/activate-versace-vi.js
index a82876aa..c1d1074a 100644
--- a/DW-Programming/activate-versace-vi.js
+++ b/DW-Programming/activate-versace-vi.js
@@ -21,7 +21,7 @@ const GEMINI_API_KEY = '${GOOGLE_API_KEY}';
const GEMINI_MODEL = 'gemini-2.0-flash';
const SILAS_URL = 'http://127.0.0.1:9674/api/validate-activation';
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
-const PG_URI = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const PG_URI = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
// ── Stats ───────────────────────────────────────────────────────────────
const stats = {
diff --git a/DW-Programming/anna-french-ai-enrich.js b/DW-Programming/anna-french-ai-enrich.js
index 8e092817..6cc85eff 100644
--- a/DW-Programming/anna-french-ai-enrich.js
+++ b/DW-Programming/anna-french-ai-enrich.js
@@ -20,7 +20,7 @@ const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemi
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const DELAY_MS = 650; // ~90 RPM, safe for free tier (15 RPM limit → use 650ms for paid key)
diff --git a/DW-Programming/anna-french-room-settings.js b/DW-Programming/anna-french-room-settings.js
index 6cbd8a77..07af517e 100644
--- a/DW-Programming/anna-french-room-settings.js
+++ b/DW-Programming/anna-french-room-settings.js
@@ -25,7 +25,7 @@ const API_VERSION = '2024-10';
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const DELAY_MS = 2000; // Room generation is slow, 2s between calls to avoid overwhelming
diff --git a/DW-Programming/anna-french-shopify-push.js b/DW-Programming/anna-french-shopify-push.js
index 8433b70f..3572892a 100644
--- a/DW-Programming/anna-french-shopify-push.js
+++ b/DW-Programming/anna-french-shopify-push.js
@@ -23,7 +23,7 @@ const API_VERSION = '2024-10';
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const DELAY_MS = 650;
diff --git a/DW-Programming/archive-thibaut-discontinued.js b/DW-Programming/archive-thibaut-discontinued.js
index 1b968ca6..d0ad2b7b 100644
--- a/DW-Programming/archive-thibaut-discontinued.js
+++ b/DW-Programming/archive-thibaut-discontinued.js
@@ -14,7 +14,7 @@ const { Client } = require('pg');
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const API_VERSION = '2024-10';
-const PG_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const PG_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const LOG_FILE = '/root/DW-Agents/logs/thibaut-archive.log';
diff --git a/DW-Programming/arte-crawl-all-urls.js b/DW-Programming/arte-crawl-all-urls.js
index 6a73b496..bcb6f90b 100644
--- a/DW-Programming/arte-crawl-all-urls.js
+++ b/DW-Programming/arte-crawl-all-urls.js
@@ -16,7 +16,7 @@
const { chromium } = require('playwright');
const { Client } = require('pg');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
async function sleep(ms) { return new Promise(r => setTimeout(r, ms)); }
diff --git a/DW-Programming/arte-image-backfill.js b/DW-Programming/arte-image-backfill.js
index e44e6249..afacbebd 100644
--- a/DW-Programming/arte-image-backfill.js
+++ b/DW-Programming/arte-image-backfill.js
@@ -11,7 +11,7 @@ const BATCH_SIZE = 25; // 25 products per GraphQL query (keeps cost manageable)
const DELAY_MS = 600; // Rate limit safety
const db = new Client({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
function shopifyGraphQL(query) {
diff --git a/DW-Programming/arte-search-scrape-width.js b/DW-Programming/arte-search-scrape-width.js
index df0f93ba..6c31214d 100644
--- a/DW-Programming/arte-search-scrape-width.js
+++ b/DW-Programming/arte-search-scrape-width.js
@@ -14,7 +14,7 @@
const { chromium } = require('playwright');
const { Client } = require('pg');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
async function sleep(ms) { return new Promise(r => setTimeout(r, ms)); }
diff --git a/DW-Programming/arte-width-from-shopify.js b/DW-Programming/arte-width-from-shopify.js
index e1518ac8..ef242f5c 100644
--- a/DW-Programming/arte-width-from-shopify.js
+++ b/DW-Programming/arte-width-from-shopify.js
@@ -9,7 +9,7 @@
const https = require('https');
const { Client } = require('pg');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/DW-Programming/as-creation-shopify-push.js b/DW-Programming/as-creation-shopify-push.js
index b7eadf10..e3792889 100644
--- a/DW-Programming/as-creation-shopify-push.js
+++ b/DW-Programming/as-creation-shopify-push.js
@@ -27,7 +27,7 @@ const { Pool } = require('pg');
const https = require('https');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SOURCE_AGENT = 'as-creation-p8-push';
diff --git a/DW-Programming/backfill-schumacher-images.js b/DW-Programming/backfill-schumacher-images.js
index 71fa24f2..d9a326b8 100644
--- a/DW-Programming/backfill-schumacher-images.js
+++ b/DW-Programming/backfill-schumacher-images.js
@@ -11,7 +11,7 @@ const https = require('https');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified',
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'),
max: 3,
});
diff --git a/DW-Programming/china-seas-design-tagger.js b/DW-Programming/china-seas-design-tagger.js
index f42dbed9..92e8b4a9 100644
--- a/DW-Programming/china-seas-design-tagger.js
+++ b/DW-Programming/china-seas-design-tagger.js
@@ -18,7 +18,7 @@ const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const BATCH_SIZE = 100;
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// --- Color tag removal pattern (from skill) ---
diff --git a/DW-Programming/china-seas-hex-colors.js b/DW-Programming/china-seas-hex-colors.js
index d3f2d1fa..aa610bf1 100644
--- a/DW-Programming/china-seas-hex-colors.js
+++ b/DW-Programming/china-seas-hex-colors.js
@@ -10,7 +10,7 @@ const https = require('https');
const http = require('http');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const GEMINI_KEY = '${GOOGLE_API_KEY}';
diff --git a/DW-Programming/china-seas-image-enrichment-2.js b/DW-Programming/china-seas-image-enrichment-2.js
index f316266e..68c9d0cf 100644
--- a/DW-Programming/china-seas-image-enrichment-2.js
+++ b/DW-Programming/china-seas-image-enrichment-2.js
@@ -3,7 +3,7 @@
// Tries multiple matching strategies for products that didn't match in stage 2/3
const { Pool } = require('pg');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
function normalizeText(s) {
return s.toLowerCase().replace(/[_\-]/g, ' ').replace(/\s+/g, ' ').trim();
diff --git a/DW-Programming/china-seas-image-enrichment-3.js b/DW-Programming/china-seas-image-enrichment-3.js
index 6f1adc4c..98ce6e19 100644
--- a/DW-Programming/china-seas-image-enrichment-3.js
+++ b/DW-Programming/china-seas-image-enrichment-3.js
@@ -3,7 +3,7 @@
// Uses word overlap scoring with typo tolerance
const { Pool } = require('pg');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
function normalizeText(s) {
return s.toLowerCase().replace(/[_\-]/g, ' ').replace(/\s+/g, ' ').trim();
diff --git a/DW-Programming/china-seas-image-enrichment.js b/DW-Programming/china-seas-image-enrichment.js
index aab9abdb..49217c3d 100644
--- a/DW-Programming/china-seas-image-enrichment.js
+++ b/DW-Programming/china-seas-image-enrichment.js
@@ -3,7 +3,7 @@
// Matches "Screen Printed" products to wallcovering products by pattern + color keywords
const { Pool } = require('pg');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
async function run() {
// Get all products still missing images
diff --git a/DW-Programming/command54-shopify-push.js b/DW-Programming/command54-shopify-push.js
index 3c1f6b6f..b5022b5e 100644
--- a/DW-Programming/command54-shopify-push.js
+++ b/DW-Programming/command54-shopify-push.js
@@ -19,7 +19,7 @@ const { Pool } = require('pg');
const https = require('https');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SOURCE_AGENT = 'command54-p8-push';
diff --git a/DW-Programming/dwc-bulk-audit.js b/DW-Programming/dwc-bulk-audit.js
index 8aad59af..553f5fa5 100644
--- a/DW-Programming/dwc-bulk-audit.js
+++ b/DW-Programming/dwc-bulk-audit.js
@@ -10,7 +10,7 @@ const fs = require('fs');
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
-const PG_URI = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const PG_URI = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
function graphql(query) {
return new Promise((resolve, reject) => {
diff --git a/DW-Programming/dwc-legacy-audit.js b/DW-Programming/dwc-legacy-audit.js
index 4f0d709a..20df31ff 100644
--- a/DW-Programming/dwc-legacy-audit.js
+++ b/DW-Programming/dwc-legacy-audit.js
@@ -10,7 +10,7 @@ const { Client } = require('pg');
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
-const PG_URI = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const PG_URI = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
function graphql(query) {
return new Promise((resolve, reject) => {
diff --git a/DW-Programming/dwjs-phase2-scrape-specs.js b/DW-Programming/dwjs-phase2-scrape-specs.js
index 95b76074..d3231caf 100644
--- a/DW-Programming/dwjs-phase2-scrape-specs.js
+++ b/DW-Programming/dwjs-phase2-scrape-specs.js
@@ -19,7 +19,7 @@ const API_VERSION = '2024-10';
const LOG_FILE = '/tmp/dwjs-phase2-scrape.log';
const DB_CONFIG = {
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
};
function log(msg) {
diff --git a/DW-Programming/enrich-anna-french-pass2.js b/DW-Programming/enrich-anna-french-pass2.js
index ea6d576b..b155efb9 100644
--- a/DW-Programming/enrich-anna-french-pass2.js
+++ b/DW-Programming/enrich-anna-french-pass2.js
@@ -8,7 +8,7 @@
const https = require('https');
const { Client } = require('pg');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const DELAY_MS = 600;
const BATCH_SIZE = 50;
const MAX_RETRIES = 2;
diff --git a/DW-Programming/enrich-anna-french-specs.js b/DW-Programming/enrich-anna-french-specs.js
index faceea7a..1493be7f 100644
--- a/DW-Programming/enrich-anna-french-specs.js
+++ b/DW-Programming/enrich-anna-french-specs.js
@@ -18,7 +18,7 @@
const https = require('https');
const { Pool } = require('pg');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const pool = new Pool({ connectionString: DB_URL });
const CONCURRENCY = 5; // parallel HTTP requests
diff --git a/DW-Programming/enrich-anna-french.js b/DW-Programming/enrich-anna-french.js
index 5d3a1075..28a58949 100644
--- a/DW-Programming/enrich-anna-french.js
+++ b/DW-Programming/enrich-anna-french.js
@@ -16,7 +16,7 @@
const https = require('https');
const { Pool } = require('pg');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const BASE_DELAY_MS = 800;
const MAX_DELAY_MS = 12000;
diff --git a/DW-Programming/enrich-arte-width.js b/DW-Programming/enrich-arte-width.js
index cf15351f..585efdad 100644
--- a/DW-Programming/enrich-arte-width.js
+++ b/DW-Programming/enrich-arte-width.js
@@ -15,7 +15,7 @@
const { chromium } = require('playwright');
const { Client } = require('pg');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
// All known collection slugs from our DB + extras commonly seen on Arte
const COLLECTION_SLUGS = [
diff --git a/DW-Programming/enrich-ascreation-width.js b/DW-Programming/enrich-ascreation-width.js
index e10f649b..04b4ea7c 100644
--- a/DW-Programming/enrich-ascreation-width.js
+++ b/DW-Programming/enrich-ascreation-width.js
@@ -21,7 +21,7 @@ const https = require('https');
const http = require('http');
// ─── Config ────────────────────────────────────────────────────────────────
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const pool = new Pool({ connectionString: DB_URL });
const DRY_RUN = process.argv.includes('--dry-run');
diff --git a/DW-Programming/enrich-grahambrown-width.js b/DW-Programming/enrich-grahambrown-width.js
index cdb4526f..726d8c81 100644
--- a/DW-Programming/enrich-grahambrown-width.js
+++ b/DW-Programming/enrich-grahambrown-width.js
@@ -16,7 +16,7 @@ const https = require('https');
const { Pool } = require('pg');
// --- Config ---
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const DELAY_MS = 2000; // 2s between requests (polite rate limit)
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
diff --git a/DW-Programming/enrich-rl-width.js b/DW-Programming/enrich-rl-width.js
index f3632206..acd0d39e 100644
--- a/DW-Programming/enrich-rl-width.js
+++ b/DW-Programming/enrich-rl-width.js
@@ -9,7 +9,7 @@ const { Pool } = require('pg');
const https = require('https');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
function fetch(url) {
diff --git a/DW-Programming/fix-empty-body-html.js b/DW-Programming/fix-empty-body-html.js
index 42aaafe2..b0634e69 100644
--- a/DW-Programming/fix-empty-body-html.js
+++ b/DW-Programming/fix-empty-body-html.js
@@ -24,7 +24,7 @@ const SHOPIFY = {
apiVersion: '2024-10'
};
-const PG_URI = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const PG_URI = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const RATE_LIMIT_MS = 500; // 500ms between Shopify REST calls
const GQL_BATCH_SIZE = 25; // products per GraphQL page (with metafields)
diff --git a/DW-Programming/fix-product-type-by-width.js b/DW-Programming/fix-product-type-by-width.js
index 6600ccda..1f5a77e6 100644
--- a/DW-Programming/fix-product-type-by-width.js
+++ b/DW-Programming/fix-product-type-by-width.js
@@ -20,7 +20,7 @@
const https = require('https');
const { Client } = require('pg');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const API_VERSION = '2024-10';
diff --git a/DW-Programming/fix-product-type-tags.js b/DW-Programming/fix-product-type-tags.js
index 8f33f555..f6d57186 100644
--- a/DW-Programming/fix-product-type-tags.js
+++ b/DW-Programming/fix-product-type-tags.js
@@ -17,7 +17,7 @@ const DELAY_MS = 600;
const SLACK_WEBHOOK_PATH = '/services/T03U65C1G7J/B09RCFHS7PW/7Izxc7OGsDWKPdRALLOocO6O';
const db = new Client({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
function sleep(ms) { return new Promise(r => setTimeout(r, ms)); }
diff --git a/DW-Programming/fix-sandberg-body.js b/DW-Programming/fix-sandberg-body.js
index 8ed84ade..b4571bac 100644
--- a/DW-Programming/fix-sandberg-body.js
+++ b/DW-Programming/fix-sandberg-body.js
@@ -12,7 +12,7 @@ const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const API_VERSION = '2024-01';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
function shopifyGraphQL(query, variables = {}) {
diff --git a/DW-Programming/fix-single-variant-pricing.js b/DW-Programming/fix-single-variant-pricing.js
index b18fa0ee..76ceb445 100644
--- a/DW-Programming/fix-single-variant-pricing.js
+++ b/DW-Programming/fix-single-variant-pricing.js
@@ -12,7 +12,7 @@ const { Client } = require('pg');
const SHOP = 'designer-laboratory-sandbox.myshopify.com';
const TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
// Rate limiting
const SHOPIFY_DELAY = 150; // ms between requests (well under 20/s Plus limit)
diff --git a/DW-Programming/generate-maya-room-settings.js b/DW-Programming/generate-maya-room-settings.js
index 1acbaa3f..bf73506c 100644
--- a/DW-Programming/generate-maya-room-settings.js
+++ b/DW-Programming/generate-maya-room-settings.js
@@ -17,7 +17,7 @@ const http = require('http');
const fs = require('fs');
const path = require('path');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const ROOM_API = 'http://45.61.58.125:3075/api/generate-room';
const OUTPUT_DIR = '/root/DW-Agents/room-settings/maya-romanoff';
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
diff --git a/DW-Programming/generate-maya-spin-viewers.js b/DW-Programming/generate-maya-spin-viewers.js
index 55aeb6e0..2ba6e2d5 100644
--- a/DW-Programming/generate-maya-spin-viewers.js
+++ b/DW-Programming/generate-maya-spin-viewers.js
@@ -24,7 +24,7 @@ const http = require('http');
// ─── Configuration ───────────────────────────────────────────────────────────
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const OUTPUT_DIR = '/root/DW-Agents/spin-viewers/maya-romanoff';
const MANIFEST_PATH = path.join(OUTPUT_DIR, 'manifest.json');
diff --git a/DW-Programming/hex-color-blitz.js b/DW-Programming/hex-color-blitz.js
index c8cac4a3..4b5d5266 100644
--- a/DW-Programming/hex-color-blitz.js
+++ b/DW-Programming/hex-color-blitz.js
@@ -19,7 +19,7 @@ const http = require('http');
// ─── Config ─────────────────────────────────────────────────────────────────
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const GEMINI_KEY = '${GOOGLE_API_KEY}';
diff --git a/DW-Programming/hollywood-hex-and-tags.js b/DW-Programming/hollywood-hex-and-tags.js
index 1cbee732..91675546 100644
--- a/DW-Programming/hollywood-hex-and-tags.js
+++ b/DW-Programming/hollywood-hex-and-tags.js
@@ -11,7 +11,7 @@ const https = require('https');
const http = require('http');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const GEMINI_API_KEY = '${GOOGLE_API_KEY}';
diff --git a/DW-Programming/hollywood-hex-extract.js b/DW-Programming/hollywood-hex-extract.js
index 0900387c..175ac475 100644
--- a/DW-Programming/hollywood-hex-extract.js
+++ b/DW-Programming/hollywood-hex-extract.js
@@ -3,7 +3,7 @@ const { Client } = require('pg');
const GEMINI_KEY = '${GOOGLE_API_KEY}';
const GEMINI_MODEL = 'gemini-2.0-flash';
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
// Products to process (11 with images)
const products = [
diff --git a/DW-Programming/hollywood-shopify-push.js b/DW-Programming/hollywood-shopify-push.js
index 3eab3774..3b8079c6 100644
--- a/DW-Programming/hollywood-shopify-push.js
+++ b/DW-Programming/hollywood-shopify-push.js
@@ -26,7 +26,7 @@ const { Pool } = require('pg');
const https = require('https');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SOURCE_AGENT = 'hollywood-p8-push';
diff --git a/DW-Programming/interior-design-ai-tagger.js b/DW-Programming/interior-design-ai-tagger.js
index 99355fcc..6fa93960 100644
--- a/DW-Programming/interior-design-ai-tagger.js
+++ b/DW-Programming/interior-design-ai-tagger.js
@@ -33,7 +33,7 @@ const SHOPIFY_API_VERSION = '2024-10';
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Priority order from user spec
diff --git a/DW-Programming/jd-room-batch.js b/DW-Programming/jd-room-batch.js
index 0ea710cf..fea87e19 100644
--- a/DW-Programming/jd-room-batch.js
+++ b/DW-Programming/jd-room-batch.js
@@ -37,7 +37,7 @@ const ROOM_WALL_SIZES = {
};
const pool = new pg.Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified',
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'),
max: 5,
idleTimeoutMillis: 30000,
});
diff --git a/DW-Programming/jd-room-test.js b/DW-Programming/jd-room-test.js
index da6a24f8..3ab5520b 100644
--- a/DW-Programming/jd-room-test.js
+++ b/DW-Programming/jd-room-test.js
@@ -10,7 +10,7 @@ const ROOM_SETTING_APP = 'http://127.0.0.1:3075';
const OUTPUT_BASE = '/root/Projects/Designer-Wallcoverings/room-settings/justindavid';
const pool = new pg.Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified',
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'),
max: 3,
});
diff --git a/DW-Programming/justindavid-shopify-push.js b/DW-Programming/justindavid-shopify-push.js
index cf090ea7..6195a15e 100644
--- a/DW-Programming/justindavid-shopify-push.js
+++ b/DW-Programming/justindavid-shopify-push.js
@@ -22,7 +22,7 @@ const { Pool } = require('pg');
const https = require('https');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SOURCE_AGENT = 'jd-p8-push';
diff --git a/DW-Programming/launch-versace-vi.js b/DW-Programming/launch-versace-vi.js
index 8457740c..cd82e9bd 100644
--- a/DW-Programming/launch-versace-vi.js
+++ b/DW-Programming/launch-versace-vi.js
@@ -15,7 +15,7 @@ const { Client } = require('pg');
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const SILAS_URL = 'http://127.0.0.1:9674/api/validate-push';
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
// Rate limiting: Shopify standard = 4 req/s, Silas check + product create = 2 calls each
diff --git a/DW-Programming/maya-romanoff-updater/maya-romanoff-updater.js b/DW-Programming/maya-romanoff-updater/maya-romanoff-updater.js
index 3aa03c72..0d827ce6 100644
--- a/DW-Programming/maya-romanoff-updater/maya-romanoff-updater.js
+++ b/DW-Programming/maya-romanoff-updater/maya-romanoff-updater.js
@@ -25,7 +25,7 @@ const CONFIG = {
SPREADSHEET_CSV: 'https://docs.google.com/spreadsheets/d/1hPTMFkX762hftpEAxWTvEl9rNzhd4mBITnpkYuDgMLg/gviz/tq?tqx=out:csv',
MAYA_SEARCH_URL: 'https://www.mayaromanoff.com/search?q=',
MAYA_BASE_URL: 'https://www.mayaromanoff.com',
- POSTGRES_URL: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified',
+ POSTGRES_URL: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'),
SLACK_WEBHOOK: '${SLACK_WEBHOOK_URL}',
NEXT_SKU_START: 50000, // DWYA-50000+
WAIT_TIME: 6000 // 6 seconds wait for page load
diff --git a/DW-Programming/maya-romanoff-updater/server.js b/DW-Programming/maya-romanoff-updater/server.js
index d7e5300c..a0ce6b1d 100644
--- a/DW-Programming/maya-romanoff-updater/server.js
+++ b/DW-Programming/maya-romanoff-updater/server.js
@@ -29,7 +29,7 @@ const CONFIG = {
API_VERSION: '2024-01',
GEMINI_API_KEY: '${GOOGLE_API_KEY}',
MAYA_BASE_URL: 'https://www.mayaromanoff.com',
- POSTGRES_URL: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified',
+ POSTGRES_URL: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'),
SLACK_WEBHOOK: '${SLACK_WEBHOOK_URL}',
SPREADSHEET_CSV: 'https://docs.google.com/spreadsheets/d/1hPTMFkX762hftpEAxWTvEl9rNzhd4mBITnpkYuDgMLg/gviz/tq?tqx=out:csv',
SPREADSHEET_CSV_2: 'https://docs.google.com/spreadsheets/d/1mQ08UJZ5T_qVTHOW8o1s-zbz5l93AUN9c46meup6uO0/gviz/tq?tqx=out:csv'
diff --git a/DW-Programming/mdcwall-image-finder.js b/DW-Programming/mdcwall-image-finder.js
index e2494fba..f4d7395b 100644
--- a/DW-Programming/mdcwall-image-finder.js
+++ b/DW-Programming/mdcwall-image-finder.js
@@ -14,7 +14,7 @@ const https = require('https');
const http = require('http');
const { Client, Pool } = require('pg');
-const DB = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
// MDC collection pages to crawl
diff --git a/DW-Programming/migrate-dwkk-to-dwpr.js b/DW-Programming/migrate-dwkk-to-dwpr.js
index 011bf440..0b093d9d 100644
--- a/DW-Programming/migrate-dwkk-to-dwpr.js
+++ b/DW-Programming/migrate-dwkk-to-dwpr.js
@@ -22,7 +22,7 @@ const https = require('https');
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const API_VERSION = '2024-10';
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const RATE_LIMIT_MS = 2000; // 0.5 req/s
const NEW_PREFIX = 'DWPR';
diff --git a/DW-Programming/nextjs-liquid-app/backfill-metafields.js b/DW-Programming/nextjs-liquid-app/backfill-metafields.js
index 575cd0e9..bba22616 100644
--- a/DW-Programming/nextjs-liquid-app/backfill-metafields.js
+++ b/DW-Programming/nextjs-liquid-app/backfill-metafields.js
@@ -9,7 +9,7 @@ const { Pool } = require('pg');
const STORE = 'designer-laboratory-sandbox.myshopify.com';
const TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
// Rate limit: 2 req/sec with burst of 40
const DELAY_MS = 550;
diff --git a/DW-Programming/nextjs-liquid-app/db-proxy/server.js b/DW-Programming/nextjs-liquid-app/db-proxy/server.js
index 4decb2fa..7fb2a9af 100644
--- a/DW-Programming/nextjs-liquid-app/db-proxy/server.js
+++ b/DW-Programming/nextjs-liquid-app/db-proxy/server.js
@@ -2,7 +2,7 @@ const express = require('express');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified',
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'),
max: 20,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 5000,
diff --git a/DW-Programming/nextjs-liquid-app/update-mckenzie-titles.js b/DW-Programming/nextjs-liquid-app/update-mckenzie-titles.js
index 15097745..b2b6acbe 100644
--- a/DW-Programming/nextjs-liquid-app/update-mckenzie-titles.js
+++ b/DW-Programming/nextjs-liquid-app/update-mckenzie-titles.js
@@ -1,7 +1,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/DW-Programming/phase3-ai-enrich-100.js b/DW-Programming/phase3-ai-enrich-100.js
index 1ba459dd..bbda88d2 100644
--- a/DW-Programming/phase3-ai-enrich-100.js
+++ b/DW-Programming/phase3-ai-enrich-100.js
@@ -11,7 +11,7 @@ const http = require('http');
const { trackGeminiCall, getGeminiCosts } = require('/root/DW-Agents/shared/gemini-cost-tracker');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const GEMINI_KEY = '${GOOGLE_API_KEY}';
diff --git a/DW-Programming/phase3-ai-enrich-batch.js b/DW-Programming/phase3-ai-enrich-batch.js
index 9cd71068..5ad3f19b 100644
--- a/DW-Programming/phase3-ai-enrich-batch.js
+++ b/DW-Programming/phase3-ai-enrich-batch.js
@@ -10,7 +10,7 @@ const https = require('https');
const http = require('http');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const GEMINI_KEY = '${GOOGLE_API_KEY}';
diff --git a/DW-Programming/phase3-ai-enrich-run.js b/DW-Programming/phase3-ai-enrich-run.js
index 5b56ec87..46c1a8ed 100644
--- a/DW-Programming/phase3-ai-enrich-run.js
+++ b/DW-Programming/phase3-ai-enrich-run.js
@@ -12,7 +12,7 @@ const GEMINI_API_KEY = '${GOOGLE_API_KEY}';
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${GEMINI_API_KEY}`;
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Tables to enrich (pick a mix of smaller, high-value vendors)
diff --git a/DW-Programming/phase3-ai-enrichment.js b/DW-Programming/phase3-ai-enrichment.js
index b4a5e6ae..13a63e95 100644
--- a/DW-Programming/phase3-ai-enrichment.js
+++ b/DW-Programming/phase3-ai-enrichment.js
@@ -9,7 +9,7 @@ const https = require('https');
const http = require('http');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const GEMINI_KEY = '${GOOGLE_API_KEY}';
diff --git a/DW-Programming/pj-tearsheet-scraper.js b/DW-Programming/pj-tearsheet-scraper.js
index a4ed605e..273f1ea2 100644
--- a/DW-Programming/pj-tearsheet-scraper.js
+++ b/DW-Programming/pj-tearsheet-scraper.js
@@ -14,7 +14,7 @@ const https = require('https');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Rate limiting: 2s between products (each product = 2 requests)
diff --git a/DW-Programming/prl-ai-enrich.js b/DW-Programming/prl-ai-enrich.js
index 7391f55b..a6edb891 100644
--- a/DW-Programming/prl-ai-enrich.js
+++ b/DW-Programming/prl-ai-enrich.js
@@ -22,7 +22,7 @@ const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemi
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const DELAY_MS = 650;
diff --git a/DW-Programming/push-china-seas-metafields.js b/DW-Programming/push-china-seas-metafields.js
index 490abc64..df94dd9e 100644
--- a/DW-Programming/push-china-seas-metafields.js
+++ b/DW-Programming/push-china-seas-metafields.js
@@ -36,7 +36,7 @@ function extractNumericId(gid) {
}
async function main() {
- const client = new Client('postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified');
+ const client = new Client((process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'));
await client.connect();
const { rows } = await client.query(`
diff --git a/DW-Programming/push-color-hex-metafields.js b/DW-Programming/push-color-hex-metafields.js
index 100284e6..7f11dee4 100644
--- a/DW-Programming/push-color-hex-metafields.js
+++ b/DW-Programming/push-color-hex-metafields.js
@@ -15,7 +15,7 @@ const { Pool } = require('pg');
const https = require('https');
const fs = require('fs');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const API_VERSION = '2024-10';
diff --git a/DW-Programming/push-maya-romanoff-to-shopify.js b/DW-Programming/push-maya-romanoff-to-shopify.js
index 00b90ecc..f918f18f 100644
--- a/DW-Programming/push-maya-romanoff-to-shopify.js
+++ b/DW-Programming/push-maya-romanoff-to-shopify.js
@@ -17,7 +17,7 @@ const CONFIG = {
SHOPIFY_STORE: 'designer-laboratory-sandbox.myshopify.com',
SHOPIFY_TOKEN: process.env.SHOPIFY_ADMIN_TOKEN,
API_VERSION: '2024-10',
- POSTGRES_URL: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified',
+ POSTGRES_URL: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'),
SLACK_WEBHOOK: '${SLACK_WEBHOOK_URL}',
DELAY_MS: 650,
RETRY_DELAY_MS: 35000,
diff --git a/DW-Programming/push-versa-specs-to-shopify.js b/DW-Programming/push-versa-specs-to-shopify.js
index cd369b28..c4ac15c4 100644
--- a/DW-Programming/push-versa-specs-to-shopify.js
+++ b/DW-Programming/push-versa-specs-to-shopify.js
@@ -8,7 +8,7 @@
const { Client } = require('pg');
const https = require('https');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
const API_VERSION = '2024-10';
diff --git a/DW-Programming/push-versace-vi.js b/DW-Programming/push-versace-vi.js
index 94127ffb..77516e3d 100644
--- a/DW-Programming/push-versace-vi.js
+++ b/DW-Programming/push-versace-vi.js
@@ -13,7 +13,7 @@
const { Pool } = require('pg');
// Node 22 has native fetch — no require needed
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const SILAS_URL = 'http://127.0.0.1:9674';
diff --git a/DW-Programming/romo-group-enrichment-scraper.js b/DW-Programming/romo-group-enrichment-scraper.js
index 9a5ce1a5..5bbeed08 100644
--- a/DW-Programming/romo-group-enrichment-scraper.js
+++ b/DW-Programming/romo-group-enrichment-scraper.js
@@ -16,7 +16,7 @@ const puppeteer = require('puppeteer');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const BRAND_CONFIG = {
diff --git a/DW-Programming/room-setting-app/scripts/batch-room-generator.js b/DW-Programming/room-setting-app/scripts/batch-room-generator.js
index e4af29b8..d5308a3a 100644
--- a/DW-Programming/room-setting-app/scripts/batch-room-generator.js
+++ b/DW-Programming/room-setting-app/scripts/batch-room-generator.js
@@ -20,7 +20,7 @@ const fs = require('fs');
const path = require('path');
// ─── Config ───────────────────────────────────────────────────────────────────
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const ROOM_API = 'http://localhost:3075/api/generate-room';
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
diff --git a/DW-Programming/scrape-versa-evo-pvcfree.js b/DW-Programming/scrape-versa-evo-pvcfree.js
index f31de3cb..260d93e7 100644
--- a/DW-Programming/scrape-versa-evo-pvcfree.js
+++ b/DW-Programming/scrape-versa-evo-pvcfree.js
@@ -15,7 +15,7 @@ const BRAND = 'Versa Designed Surfaces';
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
function delay(ms) { return new Promise(r => setTimeout(r, ms)); }
diff --git a/DW-Programming/scrape-versace-images.js b/DW-Programming/scrape-versace-images.js
index ebd82d62..aae162ba 100644
--- a/DW-Programming/scrape-versace-images.js
+++ b/DW-Programming/scrape-versace-images.js
@@ -17,7 +17,7 @@ const https = require('https');
const http = require('http');
const cheerio = require('cheerio');
-const PG_CONN = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const PG_CONN = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const SILAS_URL = 'http://127.0.0.1:9674/api/validate-activation';
diff --git a/DW-Programming/set-pattern-name-metafield.js b/DW-Programming/set-pattern-name-metafield.js
index d410f8af..f689a9c6 100644
--- a/DW-Programming/set-pattern-name-metafield.js
+++ b/DW-Programming/set-pattern-name-metafield.js
@@ -19,7 +19,7 @@
const { Pool } = require('pg');
const ShopifyQueueClient = require('/root/DW-Agents/shared/shopify-queue-client.js');
-const DB = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const pool = new Pool({ connectionString: DB });
const queue = new ShopifyQueueClient('set-pattern-name');
diff --git a/DW-Programming/test-anna-5.js b/DW-Programming/test-anna-5.js
index 38676471..e94f9f29 100644
--- a/DW-Programming/test-anna-5.js
+++ b/DW-Programming/test-anna-5.js
@@ -2,7 +2,7 @@
const https = require('https');
const { Pool } = require('pg');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
function fetchUrl(url) {
return new Promise((resolve, reject) => {
diff --git a/DW-Programming/twil-image-retail-scraper.js b/DW-Programming/twil-image-retail-scraper.js
index f514c324..b37c9b44 100644
--- a/DW-Programming/twil-image-retail-scraper.js
+++ b/DW-Programming/twil-image-retail-scraper.js
@@ -14,7 +14,7 @@ const https = require('https');
const http = require('http');
const { Client } = require('pg');
-const DB = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
function log(msg) {
const pt = new Date().toLocaleString('en-US', { timeZone: 'America/Los_Angeles', hour: '2-digit', minute: '2-digit', second: '2-digit' });
diff --git a/DW-Programming/twil-image-validator.js b/DW-Programming/twil-image-validator.js
index 23e64d86..33d5703a 100644
--- a/DW-Programming/twil-image-validator.js
+++ b/DW-Programming/twil-image-validator.js
@@ -11,7 +11,7 @@ const https = require('https');
const http = require('http');
const { Client } = require('pg');
-const DB = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const CONCURRENCY = 10;
function checkUrl(url) {
diff --git a/DW-Programming/twil-tag-needs-image.js b/DW-Programming/twil-tag-needs-image.js
index ae2a9ca1..6d03187f 100644
--- a/DW-Programming/twil-tag-needs-image.js
+++ b/DW-Programming/twil-tag-needs-image.js
@@ -4,7 +4,7 @@
* Uses the shopify-queue-worker for rate-limited API calls.
*/
const { Pool } = require('pg');
-const DB = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const GOOD_SOURCES = [
'crownsurfacesolutions.com', 'winfieldthybony.com', 'wallpaperstogo.com',
diff --git a/DW-Programming/twil-verify-remaining.js b/DW-Programming/twil-verify-remaining.js
index 5877068f..a4132038 100644
--- a/DW-Programming/twil-verify-remaining.js
+++ b/DW-Programming/twil-verify-remaining.js
@@ -8,7 +8,7 @@ const https = require('https');
const http = require('http');
const { Client } = require('pg');
-const DB = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
function log(msg) {
const pt = new Date().toLocaleString('en-US', { timeZone: 'America/Los_Angeles', hour: '2-digit', minute: '2-digit', second: '2-digit' });
diff --git a/DW-Programming/update-dwjs-specs-final.js b/DW-Programming/update-dwjs-specs-final.js
index 7904b5df..b8c88b66 100644
--- a/DW-Programming/update-dwjs-specs-final.js
+++ b/DW-Programming/update-dwjs-specs-final.js
@@ -13,7 +13,7 @@ const API_VERSION = '2024-10';
const LOG_FILE = '/tmp/dwjs-specs-final.log';
const DB_CONFIG = {
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
};
function log(msg) {
diff --git a/DW-Programming/update-dwjs-specs-phase2.js b/DW-Programming/update-dwjs-specs-phase2.js
index 01286fff..0e66c745 100644
--- a/DW-Programming/update-dwjs-specs-phase2.js
+++ b/DW-Programming/update-dwjs-specs-phase2.js
@@ -21,7 +21,7 @@ const LOG_FILE = '/tmp/dwjs-specs-phase2.log';
const SLACK_WEBHOOK_PATH = '/services/T03U65C1G7J/B09RCFHS7PW/7Izxc7OGsDWKPdRALLOocO6O';
const DB_CONFIG = {
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
};
function log(msg) {
diff --git a/DW-Programming/update-dwjs-specs-phase3.js b/DW-Programming/update-dwjs-specs-phase3.js
index cb91f1bb..be6601d8 100644
--- a/DW-Programming/update-dwjs-specs-phase3.js
+++ b/DW-Programming/update-dwjs-specs-phase3.js
@@ -21,7 +21,7 @@ const LOG_FILE = '/tmp/dwjs-specs-phase3.log';
const SLACK_WEBHOOK_PATH = '/services/T03U65C1G7J/B09RCFHS7PW/7Izxc7OGsDWKPdRALLOocO6O';
const DB_CONFIG = {
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
};
function log(msg) {
diff --git a/DW-Programming/update-dwjs-specs-phase4.js b/DW-Programming/update-dwjs-specs-phase4.js
index dd4d1411..56d1f008 100644
--- a/DW-Programming/update-dwjs-specs-phase4.js
+++ b/DW-Programming/update-dwjs-specs-phase4.js
@@ -16,7 +16,7 @@ const LOG_FILE = '/tmp/dwjs-specs-phase4.log';
const SLACK_WEBHOOK_PATH = '/services/T03U65C1G7J/B09RCFHS7PW/7Izxc7OGsDWKPdRALLOocO6O';
const DB_CONFIG = {
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
};
function log(msg) {
diff --git a/DW-Programming/update-dwjs-specs.js b/DW-Programming/update-dwjs-specs.js
index d93196a7..5e9d67b6 100644
--- a/DW-Programming/update-dwjs-specs.js
+++ b/DW-Programming/update-dwjs-specs.js
@@ -15,7 +15,7 @@ const LOG_FILE = '/tmp/dwjs-specs-enrich.log';
const GQL_ENDPOINT = `https://${SHOPIFY_DOMAIN}/admin/api/${API_VERSION}/graphql.json`;
const DB_CONFIG = {
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
};
function log(msg) {
diff --git a/DW-Programming/vendor-crawlers/arte-crawler/server.js b/DW-Programming/vendor-crawlers/arte-crawler/server.js
index f21a1d50..3946c401 100644
--- a/DW-Programming/vendor-crawlers/arte-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/arte-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/bespoke-crawler/server.js b/DW-Programming/vendor-crawlers/bespoke-crawler/server.js
index 43f1e1a1..075a90c6 100644
--- a/DW-Programming/vendor-crawlers/bespoke-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/bespoke-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/brewster-crawler/server.js b/DW-Programming/vendor-crawlers/brewster-crawler/server.js
index bf3e59f8..0ccd1305 100644
--- a/DW-Programming/vendor-crawlers/brewster-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/brewster-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/coleson-crawler/server.js b/DW-Programming/vendor-crawlers/coleson-crawler/server.js
index 0fcc4987..65e86805 100644
--- a/DW-Programming/vendor-crawlers/coleson-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/coleson-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/cowtan-crawler/server.js b/DW-Programming/vendor-crawlers/cowtan-crawler/server.js
index 6901bcd4..ad878027 100644
--- a/DW-Programming/vendor-crawlers/cowtan-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/cowtan-crawler/server.js
@@ -29,7 +29,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/elitis-crawler/scraper.js b/DW-Programming/vendor-crawlers/elitis-crawler/scraper.js
index ff944510..73020cc1 100644
--- a/DW-Programming/vendor-crawlers/elitis-crawler/scraper.js
+++ b/DW-Programming/vendor-crawlers/elitis-crawler/scraper.js
@@ -9,7 +9,7 @@ const { Pool } = require('pg');
const { startRun, updateProgress, completeRun, failRun } = require('../lib/crawler-tracker');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
diff --git a/DW-Programming/vendor-crawlers/elitis-crawler/server.js b/DW-Programming/vendor-crawlers/elitis-crawler/server.js
index 1fab6a1c..f180dc3e 100644
--- a/DW-Programming/vendor-crawlers/elitis-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/elitis-crawler/server.js
@@ -29,7 +29,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/enrich-nlxl.js b/DW-Programming/vendor-crawlers/enrich-nlxl.js
index 23e72365..cf56008a 100644
--- a/DW-Programming/vendor-crawlers/enrich-nlxl.js
+++ b/DW-Programming/vendor-crawlers/enrich-nlxl.js
@@ -9,7 +9,7 @@ const { Pool } = require('pg');
const https = require('https');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const DELAY_MS = 1200; // polite rate limiting
diff --git a/DW-Programming/vendor-crawlers/innovations-crawler/server.js b/DW-Programming/vendor-crawlers/innovations-crawler/server.js
index 829d22f2..4e2e9079 100644
--- a/DW-Programming/vendor-crawlers/innovations-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/innovations-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/koroseal-crawler/server.js b/DW-Programming/vendor-crawlers/koroseal-crawler/server.js
index ed193762..87dd540a 100644
--- a/DW-Programming/vendor-crawlers/koroseal-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/koroseal-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/kravet-crawler/server.js b/DW-Programming/vendor-crawlers/kravet-crawler/server.js
index f86425d8..33b1043f 100644
--- a/DW-Programming/vendor-crawlers/kravet-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/kravet-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/lib/crawler-tracker.js b/DW-Programming/vendor-crawlers/lib/crawler-tracker.js
index 14d414d6..94410bc6 100644
--- a/DW-Programming/vendor-crawlers/lib/crawler-tracker.js
+++ b/DW-Programming/vendor-crawlers/lib/crawler-tracker.js
@@ -6,7 +6,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Slack webhook for #claude-to-steve channel
diff --git a/DW-Programming/vendor-crawlers/lib/sku-registry.js b/DW-Programming/vendor-crawlers/lib/sku-registry.js
index bebf42b6..954c252a 100644
--- a/DW-Programming/vendor-crawlers/lib/sku-registry.js
+++ b/DW-Programming/vendor-crawlers/lib/sku-registry.js
@@ -22,7 +22,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Vendor prefix starting ranges
diff --git a/DW-Programming/vendor-crawlers/maya-crawler/server.js b/DW-Programming/vendor-crawlers/maya-crawler/server.js
index 4927eea5..9664c08e 100644
--- a/DW-Programming/vendor-crawlers/maya-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/maya-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/pj-crawler/server.js b/DW-Programming/vendor-crawlers/pj-crawler/server.js
index 1b8165b5..8b406dea 100644
--- a/DW-Programming/vendor-crawlers/pj-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/pj-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/rlf-crawler/server.js b/DW-Programming/vendor-crawlers/rlf-crawler/server.js
index e70b5325..f30da286 100644
--- a/DW-Programming/vendor-crawlers/rlf-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/rlf-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/schumacher-crawler/server.js b/DW-Programming/vendor-crawlers/schumacher-crawler/server.js
index c7ca0c81..d86ae454 100644
--- a/DW-Programming/vendor-crawlers/schumacher-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/schumacher-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/thibaut-crawler/full-fetch.js b/DW-Programming/vendor-crawlers/thibaut-crawler/full-fetch.js
index 59230f91..52ae10fd 100644
--- a/DW-Programming/vendor-crawlers/thibaut-crawler/full-fetch.js
+++ b/DW-Programming/vendor-crawlers/thibaut-crawler/full-fetch.js
@@ -15,7 +15,7 @@ const BASE_URL = 'https://www.thibautdesign.com';
const CATEGORY_URL = 'https://www.thibautdesign.com/category/wallcoverings';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Progress tracking
diff --git a/DW-Programming/vendor-crawlers/thibaut-crawler/import-from-spreadsheet.js b/DW-Programming/vendor-crawlers/thibaut-crawler/import-from-spreadsheet.js
index 20e1feb7..9d4d5586 100644
--- a/DW-Programming/vendor-crawlers/thibaut-crawler/import-from-spreadsheet.js
+++ b/DW-Programming/vendor-crawlers/thibaut-crawler/import-from-spreadsheet.js
@@ -8,7 +8,7 @@ const { Pool } = require('pg');
const { parse } = require('csv-parse/sync');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const CSV_PATH = '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents/agent-thibaut-updater/data/thibaut-spreadsheet.csv';
diff --git a/DW-Programming/vendor-crawlers/thibaut-crawler/server.js b/DW-Programming/vendor-crawlers/thibaut-crawler/server.js
index 9df63e29..4127ebf6 100644
--- a/DW-Programming/vendor-crawlers/thibaut-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/thibaut-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/vendor-crawlers/thibaut-crawler/sync-shopify-to-catalog.js b/DW-Programming/vendor-crawlers/thibaut-crawler/sync-shopify-to-catalog.js
index 4b34f7d9..5b2ae20c 100644
--- a/DW-Programming/vendor-crawlers/thibaut-crawler/sync-shopify-to-catalog.js
+++ b/DW-Programming/vendor-crawlers/thibaut-crawler/sync-shopify-to-catalog.js
@@ -13,7 +13,7 @@ const { Pool } = require('pg');
const fetch = require('node-fetch');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/DW-Programming/vendor-crawlers/thibaut-crawler/sync-thibaut-skus.js b/DW-Programming/vendor-crawlers/thibaut-crawler/sync-thibaut-skus.js
index 46834949..c47e508a 100644
--- a/DW-Programming/vendor-crawlers/thibaut-crawler/sync-thibaut-skus.js
+++ b/DW-Programming/vendor-crawlers/thibaut-crawler/sync-thibaut-skus.js
@@ -6,7 +6,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/DW-Programming/vendor-crawlers/york-crawler/server.js b/DW-Programming/vendor-crawlers/york-crawler/server.js
index b97caa98..80a9c771 100644
--- a/DW-Programming/vendor-crawlers/york-crawler/server.js
+++ b/DW-Programming/vendor-crawlers/york-crawler/server.js
@@ -30,7 +30,7 @@ app.use(express.json());
app.use(basicAuth);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// GET /status - Crawler status
diff --git a/DW-Programming/verify-versace.js b/DW-Programming/verify-versace.js
index dc50b7da..8a61720c 100644
--- a/DW-Programming/verify-versace.js
+++ b/DW-Programming/verify-versace.js
@@ -1,7 +1,7 @@
const { Pool } = require('pg');
const https = require('https');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
const SHOP = 'designer-laboratory-sandbox.myshopify.com';
const TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
diff --git a/DW-Programming/versa-evo-enrich.js b/DW-Programming/versa-evo-enrich.js
index 9b65bb38..30c3cbcc 100644
--- a/DW-Programming/versa-evo-enrich.js
+++ b/DW-Programming/versa-evo-enrich.js
@@ -1,7 +1,7 @@
const { chromium } = require('playwright');
const { Client } = require('pg');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const BASE_URL = 'https://www.versadesignedsurfaces.com';
async function enrichProducts() {
diff --git a/DW-Programming/versa-evo-pvcfree-scraper.js b/DW-Programming/versa-evo-pvcfree-scraper.js
index 7d1c5272..386aa228 100644
--- a/DW-Programming/versa-evo-pvcfree-scraper.js
+++ b/DW-Programming/versa-evo-pvcfree-scraper.js
@@ -1,7 +1,7 @@
const { chromium } = require('playwright');
const { Client } = require('pg');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const BASE_URL = 'https://www.versadesignedsurfaces.com';
const COLLECTION_NAME = 'Versa 20 oz Evo PVC-free';
diff --git a/DW-Programming/versace-dry-run.js b/DW-Programming/versace-dry-run.js
index 92b17651..e2af7279 100644
--- a/DW-Programming/versace-dry-run.js
+++ b/DW-Programming/versace-dry-run.js
@@ -1,7 +1,7 @@
const { Pool } = require('pg');
const fetch = require('node-fetch');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
function toTitleCase(str) {
if (!str) return '';
diff --git a/DW-Programming/versace-image-scraper.js b/DW-Programming/versace-image-scraper.js
index 8a5fd6e8..5c007f6c 100644
--- a/DW-Programming/versace-image-scraper.js
+++ b/DW-Programming/versace-image-scraper.js
@@ -8,7 +8,7 @@
const { Client } = require('pg');
const fs = require('fs');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
diff --git a/DW-Programming/versace-image-uploader.js b/DW-Programming/versace-image-uploader.js
index 7d4a627d..571f7743 100644
--- a/DW-Programming/versace-image-uploader.js
+++ b/DW-Programming/versace-image-uploader.js
@@ -15,7 +15,7 @@ const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// === IMAGE MAPPINGS (scraped from products.as-creation.com) ===
diff --git a/DW-Programming/width-blitz.js b/DW-Programming/width-blitz.js
index a74dff55..414749a6 100644
--- a/DW-Programming/width-blitz.js
+++ b/DW-Programming/width-blitz.js
@@ -23,7 +23,7 @@ const https = require('https');
const http = require('http');
// ─── Config ────────────────────────────────────────────────────────────────
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const pool = new Pool({ connectionString: DB_URL });
const DRY_RUN = process.argv.includes('--dry-run');
diff --git a/DW-Programming/zoffany-ai-enrich.js b/DW-Programming/zoffany-ai-enrich.js
index c5a7a2e2..3a44465b 100644
--- a/DW-Programming/zoffany-ai-enrich.js
+++ b/DW-Programming/zoffany-ai-enrich.js
@@ -21,7 +21,7 @@ const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemi
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const DELAY_MS = 650;
diff --git a/ai-enrich-arte-fix.js b/ai-enrich-arte-fix.js
index 5a014743..680a3083 100644
--- a/ai-enrich-arte-fix.js
+++ b/ai-enrich-arte-fix.js
@@ -70,7 +70,7 @@ function callGemini(b64, name) {
}
async function main() {
- const db = new Client({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+ const db = new Client({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
await db.connect();
let ok = 0, fail = 0;
diff --git a/ai-enrich-gaps2.js b/ai-enrich-gaps2.js
index 1560e1ca..9ec54f9e 100644
--- a/ai-enrich-gaps2.js
+++ b/ai-enrich-gaps2.js
@@ -82,7 +82,7 @@ function callGemini(b64, productName) {
}
async function main() {
- const db = new Client({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+ const db = new Client({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
await db.connect();
let success = 0, fail = 0;
diff --git a/arte-fill-tags.js b/arte-fill-tags.js
index 94a23adb..27bb1266 100644
--- a/arte-fill-tags.js
+++ b/arte-fill-tags.js
@@ -4,7 +4,7 @@ const { Client } = require('pg');
const GEMINI_KEY = '${GOOGLE_API_KEY}';
const GEMINI_MODEL = 'gemini-2.0-flash';
-const DB = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
async function geminiAnalyze(imageUrl, patternName) {
const prompt = `You are an interior design wallcovering tagger. Analyze this wallcovering image.
diff --git a/enrich-arte-fix.js b/enrich-arte-fix.js
index 753d3afa..5d64ace1 100644
--- a/enrich-arte-fix.js
+++ b/enrich-arte-fix.js
@@ -3,7 +3,7 @@ const { Client } = require('pg');
const GEMINI_KEY = '${GOOGLE_API_KEY}';
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${GEMINI_KEY}`;
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const PRODUCTS = [
{ id: 123, sku: '19433', pattern: 'Horus', color: 'Desert Sun', img: 'https://edge.arte-international.com/media/4960d9f1-bc0a-4bcb-9a82-c09d9e5e7d98/conversions/EssentialsLuxor_Horus_19436_Roomshot_Web_LR-medium-two-thirds.jpg' },
diff --git a/enrich-arte-gaps.js b/enrich-arte-gaps.js
index 406ae261..4e736a7f 100644
--- a/enrich-arte-gaps.js
+++ b/enrich-arte-gaps.js
@@ -3,7 +3,7 @@ const { Client } = require('pg');
const GEMINI_KEY = '${GOOGLE_API_KEY}';
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${GEMINI_KEY}`;
-const pgClient = new Client('postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified');
+const pgClient = new Client((process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'));
const PROMPT = `You are an interior design wallcovering analyst. Analyze this wallcovering product image.
diff --git a/enrich-arte-puppeteer.js b/enrich-arte-puppeteer.js
index 5480b0e1..dcc87589 100644
--- a/enrich-arte-puppeteer.js
+++ b/enrich-arte-puppeteer.js
@@ -4,7 +4,7 @@ const { Client } = require('pg');
const GEMINI_KEY = '${GOOGLE_API_KEY}';
const GEMINI_MODEL = 'gemini-2.0-flash';
-const PG_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const PG_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const ARTE_PRODUCTS = [
{ vc_id: 123, sku: '19433', name: 'Horus Desert Sun', url: 'https://www.arte-international.com/en/collections/essentials-luxor/horus/19433' },
diff --git a/enrich-remaining-13.js b/enrich-remaining-13.js
index 355bc5c2..17e47e46 100644
--- a/enrich-remaining-13.js
+++ b/enrich-remaining-13.js
@@ -4,7 +4,7 @@ const { Client } = require('pg');
const GEMINI_KEY = '${GOOGLE_API_KEY}';
const GEMINI_MODEL = 'gemini-2.0-flash';
-const PG_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const PG_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const PRODUCTS = [
// Arte — use packshot_url from arte_catalog
diff --git a/gemini-classify-texture.js b/gemini-classify-texture.js
index ca1ee579..f3d31500 100644
--- a/gemini-classify-texture.js
+++ b/gemini-classify-texture.js
@@ -7,7 +7,7 @@ const GEMINI_KEY = '${GOOGLE_API_KEY}';
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${GEMINI_KEY}`;
const PROMPT = `Is this wallcovering image a repeating pattern or a non-repeating texture? If it's a texture (grasscloth, linen, plain, solid, stucco, metallic, stone, concrete, weave, etc.), respond 'TEXTURE'. If it has a visible repeating pattern (florals, stripes, damask, geometric, medallion, toile, scenic, mural, etc.), respond 'PATTERN'. Respond with only one word: TEXTURE or PATTERN.`;
-const db = new Client({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const db = new Client({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
const products = require('/tmp/thibaut_remaining.json');
const stats = { texture: 0, pattern: 0, error: 0, total: products.length };
diff --git a/gemini-enrich-arte.js b/gemini-enrich-arte.js
index 8888b233..9bdd8f0f 100644
--- a/gemini-enrich-arte.js
+++ b/gemini-enrich-arte.js
@@ -82,7 +82,7 @@ async function analyzeOne(product) {
}
async function main() {
- const client = new Client({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+ const client = new Client({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
await client.connect();
console.log('Processing 9 Arte products with base64 image download...\n');
diff --git a/gemini-enrich-arte9.js b/gemini-enrich-arte9.js
index 97ffed8e..fdf49062 100644
--- a/gemini-enrich-arte9.js
+++ b/gemini-enrich-arte9.js
@@ -4,7 +4,7 @@ const { Client } = require('pg');
const GEMINI_KEY = '${GOOGLE_API_KEY}';
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${GEMINI_KEY}`;
-const db = new Client({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const db = new Client({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
const PROMPT = `You are an interior design wallcovering analyst. Analyze this wallcovering product image (it may be a room setting showing the wallcovering installed on walls).
Focus on the WALLCOVERING itself, not furniture or decor.
diff --git a/gemini-enrich-gaps.js b/gemini-enrich-gaps.js
index b81c6c0b..a8732607 100644
--- a/gemini-enrich-gaps.js
+++ b/gemini-enrich-gaps.js
@@ -6,7 +6,7 @@ const GEMINI_KEY = '${GOOGLE_API_KEY}';
const GEMINI_MODEL = 'gemini-2.0-flash';
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/${GEMINI_MODEL}:generateContent?key=${GEMINI_KEY}`;
-const DB = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
// Products to process — using arte_catalog packshot images for Arte, vendor_catalog images for Black Edition
const products = [
diff --git a/lib/processing-state.ts b/lib/processing-state.ts
index 1653fd9d..53a8201a 100644
--- a/lib/processing-state.ts
+++ b/lib/processing-state.ts
@@ -49,7 +49,7 @@ export class ProcessingStateClient {
port: parseInt(process.env.DB_PORT || '5432'),
database: process.env.DB_NAME || 'dw_unified',
user: process.env.DB_USER || 'dw_admin',
- password: process.env.DB_PASSWORD || 'DW2024SecurePass'
+ password: process.env.DB_PASSWORD
});
}
diff --git a/scripts/add-review-tag-thibaut.js b/scripts/add-review-tag-thibaut.js
index 7302629b..c816f601 100644
--- a/scripts/add-review-tag-thibaut.js
+++ b/scripts/add-review-tag-thibaut.js
@@ -1,7 +1,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/scripts/ai-enrich-arte-gaps.js b/scripts/ai-enrich-arte-gaps.js
index 951faa97..4eaf9522 100644
--- a/scripts/ai-enrich-arte-gaps.js
+++ b/scripts/ai-enrich-arte-gaps.js
@@ -20,7 +20,7 @@ const PROMPT = `You are an interior design product analyst. Analyze this wallcov
Return ONLY valid JSON, no markdown fences.`;
-const db = new Client({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const db = new Client({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
const ARTE_SKUS = ['19433', '23401', '23412', '23413', '23421', '23422', '23431', '23433', '29221'];
diff --git a/scripts/ai-enrich-gaps.js b/scripts/ai-enrich-gaps.js
index 94a5303e..578ae911 100644
--- a/scripts/ai-enrich-gaps.js
+++ b/scripts/ai-enrich-gaps.js
@@ -22,7 +22,7 @@ const PROMPT = `You are an interior design product analyst. Analyze this wallcov
Return ONLY valid JSON, no markdown fences.`;
-const db = new Client({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const db = new Client({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
// Products to enrich
const ARTE_SKUS = ['19433', '23401', '23412', '23413', '23421', '23422', '23431', '23433', '29221'];
diff --git a/scripts/brand-mckenzie-full-scrape.ts b/scripts/brand-mckenzie-full-scrape.ts
index 47349a77..814ea0ee 100644
--- a/scripts/brand-mckenzie-full-scrape.ts
+++ b/scripts/brand-mckenzie-full-scrape.ts
@@ -13,7 +13,7 @@ const GEMINI_API_KEY = '${GOOGLE_API_KEY}';
// PostgreSQL connection
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const COLLECTIONS = ['tropical-daze', 'home-deco', 'creative-florals'];
diff --git a/scripts/change-logger.ts b/scripts/change-logger.ts
index 4902e751..7ebb88ac 100644
--- a/scripts/change-logger.ts
+++ b/scripts/change-logger.ts
@@ -11,7 +11,7 @@ const DB_CONFIG = {
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
};
// TypeScript types for change logging
diff --git a/scripts/enrich-remaining-13.js b/scripts/enrich-remaining-13.js
index c9720725..f8f4f238 100644
--- a/scripts/enrich-remaining-13.js
+++ b/scripts/enrich-remaining-13.js
@@ -10,7 +10,7 @@ const https = require('https');
const http = require('http');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const GEMINI_KEY = '${GOOGLE_API_KEY}';
diff --git a/scripts/feed-room-queue.js b/scripts/feed-room-queue.js
index aaac7100..adb420ed 100644
--- a/scripts/feed-room-queue.js
+++ b/scripts/feed-room-queue.js
@@ -14,7 +14,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified',
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'),
max: 5,
});
diff --git a/scripts/fix-justindavid-images.js b/scripts/fix-justindavid-images.js
index 3e2f257a..d6bde7c3 100644
--- a/scripts/fix-justindavid-images.js
+++ b/scripts/fix-justindavid-images.js
@@ -11,7 +11,7 @@ const cheerio = require('cheerio');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const DELAY_MS = 800; // polite delay between page fetches
diff --git a/scripts/import-fmpro-to-postgres.js b/scripts/import-fmpro-to-postgres.js
index 3c9f0106..52fd3491 100644
--- a/scripts/import-fmpro-to-postgres.js
+++ b/scripts/import-fmpro-to-postgres.js
@@ -8,7 +8,7 @@ const fs = require('fs');
const { execSync } = require('child_process');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const CSV_PATH = '/root/fmpro-master.csv';
diff --git a/scripts/interior-design-tags.js b/scripts/interior-design-tags.js
index 6901cd11..f43482da 100644
--- a/scripts/interior-design-tags.js
+++ b/scripts/interior-design-tags.js
@@ -35,7 +35,7 @@ const SHOPIFY_API_VERSION = '2024-10';
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified',
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'),
max: 5,
});
diff --git a/scripts/jd-fix-image-urls.js b/scripts/jd-fix-image-urls.js
index 2241c6b8..6de32817 100644
--- a/scripts/jd-fix-image-urls.js
+++ b/scripts/jd-fix-image-urls.js
@@ -22,7 +22,7 @@ const { Client } = require('pg');
const https = require('https');
const http = require('http');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
// Parse args
const args = process.argv.slice(2);
diff --git a/scripts/justindavid-room-settings.js b/scripts/justindavid-room-settings.js
index d7dc5fa0..7376fc37 100644
--- a/scripts/justindavid-room-settings.js
+++ b/scripts/justindavid-room-settings.js
@@ -17,7 +17,7 @@ const https = require("https");
const http = require("http");
const pool = new Pool({
- connectionString: "postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified",
+ connectionString: (process.env.DATABASE_URL || "postgresql://dw_admin@127.0.0.1:5432/dw_unified"),
});
const GEMINI_KEY = "${GOOGLE_API_KEY}";
diff --git a/scripts/kill-wallpaper-word.js b/scripts/kill-wallpaper-word.js
index 2b3fde3c..e38d611e 100644
--- a/scripts/kill-wallpaper-word.js
+++ b/scripts/kill-wallpaper-word.js
@@ -14,7 +14,7 @@ const { Client } = require('pg');
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
-const PG_URI = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const PG_URI = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const DELAY_MS = 350; // between GraphQL mutations
diff --git a/scripts/koroseal-website-scraper.ts b/scripts/koroseal-website-scraper.ts
index bddbac27..0ecf0292 100644
--- a/scripts/koroseal-website-scraper.ts
+++ b/scripts/koroseal-website-scraper.ts
@@ -7,7 +7,7 @@ import puppeteer, { Browser, Page } from 'puppeteer';
import { Pool } from 'pg';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const BASE_URL = 'https://koroseal.com';
diff --git a/scripts/mfr-sku-bulk-update.js b/scripts/mfr-sku-bulk-update.js
index 51e1eeb3..f64df687 100755
--- a/scripts/mfr-sku-bulk-update.js
+++ b/scripts/mfr-sku-bulk-update.js
@@ -6,7 +6,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/scripts/populate-dwtt-mfr-sku-active.js b/scripts/populate-dwtt-mfr-sku-active.js
index 2ac1a7bb..917e1ff6 100644
--- a/scripts/populate-dwtt-mfr-sku-active.js
+++ b/scripts/populate-dwtt-mfr-sku-active.js
@@ -1,7 +1,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/scripts/populate-dwtt-mfr-sku-from-catalog.js b/scripts/populate-dwtt-mfr-sku-from-catalog.js
index edefaa09..693bc9bf 100644
--- a/scripts/populate-dwtt-mfr-sku-from-catalog.js
+++ b/scripts/populate-dwtt-mfr-sku-from-catalog.js
@@ -1,7 +1,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/scripts/populate-dwtt-mfr-sku.js b/scripts/populate-dwtt-mfr-sku.js
index 3a86e3c2..26630f74 100644
--- a/scripts/populate-dwtt-mfr-sku.js
+++ b/scripts/populate-dwtt-mfr-sku.js
@@ -1,7 +1,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/scripts/prl-ai-enrich.js b/scripts/prl-ai-enrich.js
index 35f8023b..02c6b628 100644
--- a/scripts/prl-ai-enrich.js
+++ b/scripts/prl-ai-enrich.js
@@ -12,7 +12,7 @@ const GEMINI_MODEL = 'gemini-2.0-flash';
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/${GEMINI_MODEL}:generateContent?key=${GEMINI_KEY}`;
const BATCH_SIZE = 100;
const DELAY_MS = 500;
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const PROMPT = `You are an interior design expert analyzing a wallcovering product image.
Return ONLY valid JSON (no markdown, no backticks):
diff --git a/scripts/push-mfr-to-shopify.js b/scripts/push-mfr-to-shopify.js
index b34012b9..56228671 100644
--- a/scripts/push-mfr-to-shopify.js
+++ b/scripts/push-mfr-to-shopify.js
@@ -6,7 +6,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/scripts/rw-drapery-room-settings.js b/scripts/rw-drapery-room-settings.js
index db89ca24..f5bd3232 100644
--- a/scripts/rw-drapery-room-settings.js
+++ b/scripts/rw-drapery-room-settings.js
@@ -26,7 +26,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
max: 5,
});
diff --git a/scripts/rw-upload-room-settings.js b/scripts/rw-upload-room-settings.js
index b03a89e1..f515e820 100644
--- a/scripts/rw-upload-room-settings.js
+++ b/scripts/rw-upload-room-settings.js
@@ -24,7 +24,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass',
+ password: process.env.PG_PASSWORD || '',
max: 5,
});
diff --git a/scripts/supplier-mfr-bulk-push.js b/scripts/supplier-mfr-bulk-push.js
index f55949ad..0b075b96 100644
--- a/scripts/supplier-mfr-bulk-push.js
+++ b/scripts/supplier-mfr-bulk-push.js
@@ -6,7 +6,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/scripts/surface-stick-backfill.js b/scripts/surface-stick-backfill.js
index 55c7827e..e99ca5f2 100644
--- a/scripts/surface-stick-backfill.js
+++ b/scripts/surface-stick-backfill.js
@@ -11,7 +11,7 @@ const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const API_VERSION = '2024-10';
-const PG_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const PG_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
function shopifyGet(path) {
return new Promise((resolve, reject) => {
diff --git a/scripts/swatch-spin-generator.js b/scripts/swatch-spin-generator.js
index f3793b3f..5cd5e940 100644
--- a/scripts/swatch-spin-generator.js
+++ b/scripts/swatch-spin-generator.js
@@ -25,7 +25,7 @@ const http = require('http');
const { Client } = require('pg');
// ─── Configuration ───────────────────────────────────────────────────────────
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const OUTPUT_DIR = '/root/Projects/Designer-Wallcoverings/room-settings/justindavid/swatches';
const PUBLIC_URL_BASE = 'http://45.61.58.125/room-settings/justindavid/swatches';
diff --git a/scripts/sync-shopify-to-postgres.js b/scripts/sync-shopify-to-postgres.js
index 5e57be01..ee2765b2 100644
--- a/scripts/sync-shopify-to-postgres.js
+++ b/scripts/sync-shopify-to-postgres.js
@@ -12,7 +12,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_STORE = 'designer-laboratory-sandbox';
diff --git a/scripts/texture-repeat-classifier.js b/scripts/texture-repeat-classifier.js
index aacaee64..271daef7 100644
--- a/scripts/texture-repeat-classifier.js
+++ b/scripts/texture-repeat-classifier.js
@@ -9,7 +9,7 @@ const { Pool } = require('pg');
const https = require('https');
const http = require('http');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
const GEMINI_KEY = '${GOOGLE_API_KEY}';
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${GEMINI_KEY}`;
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
diff --git a/scripts/thibaut-master-products.js b/scripts/thibaut-master-products.js
index 0a9f7847..78fea18b 100644
--- a/scripts/thibaut-master-products.js
+++ b/scripts/thibaut-master-products.js
@@ -4,7 +4,7 @@ const app = express();
const PORT = 9660;
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Basic auth
diff --git a/scripts/thibaut-scrape-missing.js b/scripts/thibaut-scrape-missing.js
index ab856461..71bb0a52 100644
--- a/scripts/thibaut-scrape-missing.js
+++ b/scripts/thibaut-scrape-missing.js
@@ -14,7 +14,7 @@ const { Pool } = require('pg');
const fs = require('fs');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const BASE_URL = 'https://www.thibautdesign.com/products/wallcoverings';
diff --git a/scripts/thibaut-scrape-viewer.js b/scripts/thibaut-scrape-viewer.js
index faa0bc3e..936f70f9 100644
--- a/scripts/thibaut-scrape-viewer.js
+++ b/scripts/thibaut-scrape-viewer.js
@@ -5,7 +5,7 @@ const fs = require('fs');
const app = express();
const PORT = 9661;
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
app.get('/api/stats', async (req, res) => {
diff --git a/scripts/vendor-monthly/shopify-sync.js b/scripts/vendor-monthly/shopify-sync.js
index 8dbb4c7a..5859ab8f 100644
--- a/scripts/vendor-monthly/shopify-sync.js
+++ b/scripts/vendor-monthly/shopify-sync.js
@@ -17,7 +17,7 @@ const { Pool } = require('pg');
const fs = require('fs');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Shopify GraphQL configuration
diff --git a/shopify/scripts/apex-repeat-push.js b/shopify/scripts/apex-repeat-push.js
index 6c10bd6f..56654eb5 100644
--- a/shopify/scripts/apex-repeat-push.js
+++ b/shopify/scripts/apex-repeat-push.js
@@ -7,7 +7,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const MUTATION = `mutation metafieldsSet($metafields: [MetafieldsSetInput!]!) {
diff --git a/shopify/scripts/arte-dashboard/arte-catalog-crawler.js b/shopify/scripts/arte-dashboard/arte-catalog-crawler.js
index 9ae38cbd..4280d43b 100644
--- a/shopify/scripts/arte-dashboard/arte-catalog-crawler.js
+++ b/shopify/scripts/arte-dashboard/arte-catalog-crawler.js
@@ -19,7 +19,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Initialize database table
diff --git a/shopify/scripts/arte-dashboard/bulk-title-updater.js b/shopify/scripts/arte-dashboard/bulk-title-updater.js
index d2755ef5..2e7288c3 100755
--- a/shopify/scripts/arte-dashboard/bulk-title-updater.js
+++ b/shopify/scripts/arte-dashboard/bulk-title-updater.js
@@ -12,7 +12,7 @@ const { Pool } = require('pg');
const fetch = require('node-fetch');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const DASHBOARD_URL = 'http://45.61.58.125:9955';
diff --git a/shopify/scripts/arte-dashboard/crawl-all-arte.js b/shopify/scripts/arte-dashboard/crawl-all-arte.js
index 4f4fadbe..e615b34b 100644
--- a/shopify/scripts/arte-dashboard/crawl-all-arte.js
+++ b/shopify/scripts/arte-dashboard/crawl-all-arte.js
@@ -12,7 +12,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
let totalSaved = 0;
diff --git a/shopify/scripts/arte-dashboard/enrich-width.js b/shopify/scripts/arte-dashboard/enrich-width.js
index 55ee2deb..d3824975 100644
--- a/shopify/scripts/arte-dashboard/enrich-width.js
+++ b/shopify/scripts/arte-dashboard/enrich-width.js
@@ -15,7 +15,7 @@ const { Pool } = require('pg');
const fs = require('fs');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const args = process.argv.slice(2);
diff --git a/shopify/scripts/arte-dashboard/fast-fix.js b/shopify/scripts/arte-dashboard/fast-fix.js
index e7eaa320..0a32e8ea 100644
--- a/shopify/scripts/arte-dashboard/fast-fix.js
+++ b/shopify/scripts/arte-dashboard/fast-fix.js
@@ -1,7 +1,7 @@
const { chromium } = require('playwright');
const { Pool } = require('pg');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
(async () => {
console.log('=== Fast Arte Image Fix ===');
diff --git a/shopify/scripts/arte-dashboard/fetch-arte-packshots.js b/shopify/scripts/arte-dashboard/fetch-arte-packshots.js
index 4a149091..93542bff 100644
--- a/shopify/scripts/arte-dashboard/fetch-arte-packshots.js
+++ b/shopify/scripts/arte-dashboard/fetch-arte-packshots.js
@@ -13,7 +13,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Extract images from Arte colorway page
diff --git a/shopify/scripts/arte-dashboard/fetch-missing-skus.js b/shopify/scripts/arte-dashboard/fetch-missing-skus.js
index 2f0b44d9..dc107e8e 100644
--- a/shopify/scripts/arte-dashboard/fetch-missing-skus.js
+++ b/shopify/scripts/arte-dashboard/fetch-missing-skus.js
@@ -13,7 +13,7 @@ const { Pool } = require('pg');
const fs = require('fs');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Shopify API
diff --git a/shopify/scripts/arte-dashboard/fetch-packshots-robust.js b/shopify/scripts/arte-dashboard/fetch-packshots-robust.js
index 30043885..d4e2e24f 100644
--- a/shopify/scripts/arte-dashboard/fetch-packshots-robust.js
+++ b/shopify/scripts/arte-dashboard/fetch-packshots-robust.js
@@ -8,7 +8,7 @@ const { Pool } = require('pg');
const https = require('https');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
function fetch(url) {
diff --git a/shopify/scripts/arte-dashboard/fix-all-arte-images.js b/shopify/scripts/arte-dashboard/fix-all-arte-images.js
index 5d09d5b7..00a3bc06 100644
--- a/shopify/scripts/arte-dashboard/fix-all-arte-images.js
+++ b/shopify/scripts/arte-dashboard/fix-all-arte-images.js
@@ -2,7 +2,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
async function scrapePatternImages(page, patternName, skus) {
diff --git a/shopify/scripts/arte-dashboard/fix-all-colorway-images.js b/shopify/scripts/arte-dashboard/fix-all-colorway-images.js
index 918c7b4e..6c1cfab3 100644
--- a/shopify/scripts/arte-dashboard/fix-all-colorway-images.js
+++ b/shopify/scripts/arte-dashboard/fix-all-colorway-images.js
@@ -13,7 +13,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Fetch URL content
diff --git a/shopify/scripts/arte-dashboard/fix-all-images.js b/shopify/scripts/arte-dashboard/fix-all-images.js
index 700cac80..fcbbf271 100644
--- a/shopify/scripts/arte-dashboard/fix-all-images.js
+++ b/shopify/scripts/arte-dashboard/fix-all-images.js
@@ -1,7 +1,7 @@
const { chromium } = require('playwright');
const { Pool } = require('pg');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
(async () => {
console.log('=== Arte Image Fix - Packshot + Roomshot ===');
diff --git a/shopify/scripts/arte-dashboard/fix-arte-images-v2.js b/shopify/scripts/arte-dashboard/fix-arte-images-v2.js
index 2086a96e..40533c2f 100644
--- a/shopify/scripts/arte-dashboard/fix-arte-images-v2.js
+++ b/shopify/scripts/arte-dashboard/fix-arte-images-v2.js
@@ -2,7 +2,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
async function getImageForSku(page, sku) {
diff --git a/shopify/scripts/arte-dashboard/fix-arte-images-v3.js b/shopify/scripts/arte-dashboard/fix-arte-images-v3.js
index a6faf4d9..38b63bb6 100644
--- a/shopify/scripts/arte-dashboard/fix-arte-images-v3.js
+++ b/shopify/scripts/arte-dashboard/fix-arte-images-v3.js
@@ -2,7 +2,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
async function getImageForSku(page, sku, productUrl) {
diff --git a/shopify/scripts/arte-dashboard/fix-arte-images-v4.js b/shopify/scripts/arte-dashboard/fix-arte-images-v4.js
index cbf608d5..b7a284c2 100644
--- a/shopify/scripts/arte-dashboard/fix-arte-images-v4.js
+++ b/shopify/scripts/arte-dashboard/fix-arte-images-v4.js
@@ -2,7 +2,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
async function getImageForSku(page, sku, productUrl) {
diff --git a/shopify/scripts/arte-dashboard/fix-arte-images.js b/shopify/scripts/arte-dashboard/fix-arte-images.js
index 47e402a0..3c0edfa8 100644
--- a/shopify/scripts/arte-dashboard/fix-arte-images.js
+++ b/shopify/scripts/arte-dashboard/fix-arte-images.js
@@ -13,7 +13,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Extract packshot and roomshot URLs from a colorway page
diff --git a/shopify/scripts/arte-dashboard/populate-mapping.js b/shopify/scripts/arte-dashboard/populate-mapping.js
index adf65241..806832ce 100644
--- a/shopify/scripts/arte-dashboard/populate-mapping.js
+++ b/shopify/scripts/arte-dashboard/populate-mapping.js
@@ -6,7 +6,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/arte-dashboard/scrape-batouri-colors.js b/shopify/scripts/arte-dashboard/scrape-batouri-colors.js
index b53f72c4..1b697598 100644
--- a/shopify/scripts/arte-dashboard/scrape-batouri-colors.js
+++ b/shopify/scripts/arte-dashboard/scrape-batouri-colors.js
@@ -3,7 +3,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
async function sleep(ms) {
diff --git a/shopify/scripts/arte-dashboard/server.js b/shopify/scripts/arte-dashboard/server.js
index 364dcabd..0522c86a 100644
--- a/shopify/scripts/arte-dashboard/server.js
+++ b/shopify/scripts/arte-dashboard/server.js
@@ -28,7 +28,7 @@ const API_VERSION = '2024-01';
// PostgreSQL
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Extract MFR SKU from variant SKU (fallback)
diff --git a/shopify/scripts/arte-dashboard/test-arte-contract-crawl.js b/shopify/scripts/arte-dashboard/test-arte-contract-crawl.js
index 504f3081..c2005e83 100644
--- a/shopify/scripts/arte-dashboard/test-arte-contract-crawl.js
+++ b/shopify/scripts/arte-dashboard/test-arte-contract-crawl.js
@@ -7,7 +7,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
async function sleep(ms) {
diff --git a/shopify/scripts/arte-dashboard/test-extraction.js b/shopify/scripts/arte-dashboard/test-extraction.js
index 86ae0962..b01dba83 100644
--- a/shopify/scripts/arte-dashboard/test-extraction.js
+++ b/shopify/scripts/arte-dashboard/test-extraction.js
@@ -7,7 +7,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
async function testExtraction() {
diff --git a/shopify/scripts/arte-dashboard/update-all-packshots.js b/shopify/scripts/arte-dashboard/update-all-packshots.js
index e3185da0..1cb5c40b 100644
--- a/shopify/scripts/arte-dashboard/update-all-packshots.js
+++ b/shopify/scripts/arte-dashboard/update-all-packshots.js
@@ -10,7 +10,7 @@ const { Pool } = require('pg');
const https = require('https');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Fetch HTML content from URL
diff --git a/shopify/scripts/arte-dashboard/update-bayuda.js b/shopify/scripts/arte-dashboard/update-bayuda.js
index 3cb7d467..db8eb046 100644
--- a/shopify/scripts/arte-dashboard/update-bayuda.js
+++ b/shopify/scripts/arte-dashboard/update-bayuda.js
@@ -3,7 +3,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
async function updateBayuda() {
diff --git a/shopify/scripts/arte-dashboard/update-tatami.js b/shopify/scripts/arte-dashboard/update-tatami.js
index 21fafac2..0a1c672c 100644
--- a/shopify/scripts/arte-dashboard/update-tatami.js
+++ b/shopify/scripts/arte-dashboard/update-tatami.js
@@ -3,7 +3,7 @@ const { chromium } = require('playwright');
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
async function updateTatami() {
diff --git a/shopify/scripts/arte-update-mfr-sku.js b/shopify/scripts/arte-update-mfr-sku.js
index 500dd24a..5a8c99c9 100644
--- a/shopify/scripts/arte-update-mfr-sku.js
+++ b/shopify/scripts/arte-update-mfr-sku.js
@@ -19,7 +19,7 @@ const API_VERSION = '2024-01';
// PostgreSQL
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Initialize table
diff --git a/shopify/scripts/assign-elitis-dw-skus.js b/shopify/scripts/assign-elitis-dw-skus.js
index cceb1c11..c27a2e36 100644
--- a/shopify/scripts/assign-elitis-dw-skus.js
+++ b/shopify/scripts/assign-elitis-dw-skus.js
@@ -9,7 +9,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const VENDOR_PREFIX = 'DWEL';
diff --git a/shopify/scripts/batch-room-settings/batch-room-generator.js b/shopify/scripts/batch-room-settings/batch-room-generator.js
index c1795edb..53bf4ef6 100644
--- a/shopify/scripts/batch-room-settings/batch-room-generator.js
+++ b/shopify/scripts/batch-room-settings/batch-room-generator.js
@@ -37,7 +37,7 @@ const COMMERCIAL_PRODUCT_TYPES = new Set([
]);
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Parse CLI args
diff --git a/shopify/scripts/bespoke-updater/server.js b/shopify/scripts/bespoke-updater/server.js
index 8d487f5d..2dbe27ac 100644
--- a/shopify/scripts/bespoke-updater/server.js
+++ b/shopify/scripts/bespoke-updater/server.js
@@ -40,7 +40,7 @@ const pool = new Pool({
port: 5432,
database: 'dw_unified',
user: 'dw_admin',
- password: 'DW2024SecurePass'
+ password: process.env.PG_PASSWORD || ''
});
// Basic auth middleware
diff --git a/shopify/scripts/classify-texture-pattern.js b/shopify/scripts/classify-texture-pattern.js
index 83e2397c..b4f4bfcf 100644
--- a/shopify/scripts/classify-texture-pattern.js
+++ b/shopify/scripts/classify-texture-pattern.js
@@ -6,7 +6,7 @@
const { Pool } = require('pg');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
const GEMINI_KEY = '${GOOGLE_API_KEY}';
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${GEMINI_KEY}`;
diff --git a/shopify/scripts/gemini-catalog-tagger.js b/shopify/scripts/gemini-catalog-tagger.js
index ef355505..13eb0db7 100644
--- a/shopify/scripts/gemini-catalog-tagger.js
+++ b/shopify/scripts/gemini-catalog-tagger.js
@@ -23,7 +23,7 @@ const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemi
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified',
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'),
max: 3,
});
diff --git a/shopify/scripts/gemini-tag-engine/index.js b/shopify/scripts/gemini-tag-engine/index.js
index 6239f5f2..bb33d4a9 100644
--- a/shopify/scripts/gemini-tag-engine/index.js
+++ b/shopify/scripts/gemini-tag-engine/index.js
@@ -24,7 +24,7 @@ const SHOPIFY_API_VERSION = '2024-10';
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const RATE_LIMIT_MS = 1100; // 1.1 sec between requests (safe for 15 RPM)
const LOG_EVERY = 25; // Log progress every N products
diff --git a/shopify/scripts/hollywood-tag-enrichment.js b/shopify/scripts/hollywood-tag-enrichment.js
index 7e26dd86..11eb7812 100644
--- a/shopify/scripts/hollywood-tag-enrichment.js
+++ b/shopify/scripts/hollywood-tag-enrichment.js
@@ -15,7 +15,7 @@ const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const API_VERSION = '2024-01';
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
// Design style mapping from pattern names
const PATTERN_STYLE_MAP = {
diff --git a/shopify/scripts/interior-design-tagger.js b/shopify/scripts/interior-design-tagger.js
index 99decf3c..d734162e 100644
--- a/shopify/scripts/interior-design-tagger.js
+++ b/shopify/scripts/interior-design-tagger.js
@@ -27,7 +27,7 @@ const API_VERSION = '2024-10';
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const GEMINI_DELAY_MS = 1100; // ~1 req/sec
diff --git a/shopify/scripts/koroseal-batch-cron.js b/shopify/scripts/koroseal-batch-cron.js
index 24753bf4..4500c824 100644
--- a/shopify/scripts/koroseal-batch-cron.js
+++ b/shopify/scripts/koroseal-batch-cron.js
@@ -23,7 +23,7 @@ const CRON_LOG_MD = '/root/Projects/Designer-Wallcoverings/shopify/scripts/cron-
// PostgreSQL
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Initialize cron_job_logs table
diff --git a/shopify/scripts/la-walls-image-sync.js b/shopify/scripts/la-walls-image-sync.js
index b8b7017a..5bb49217 100644
--- a/shopify/scripts/la-walls-image-sync.js
+++ b/shopify/scripts/la-walls-image-sync.js
@@ -8,7 +8,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/paul-montgomery-image-sync.js b/shopify/scripts/paul-montgomery-image-sync.js
index fe78871e..fda0ad27 100644
--- a/shopify/scripts/paul-montgomery-image-sync.js
+++ b/shopify/scripts/paul-montgomery-image-sync.js
@@ -21,7 +21,7 @@ const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const GRAPHQL_URL = `https://${SHOPIFY_DOMAIN}/admin/api/2024-10/graphql.json`;
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const VENDORS = [
diff --git a/shopify/scripts/prl-ai-enrich.js b/shopify/scripts/prl-ai-enrich.js
index 935556f1..bf290fd5 100644
--- a/shopify/scripts/prl-ai-enrich.js
+++ b/shopify/scripts/prl-ai-enrich.js
@@ -11,7 +11,7 @@ const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/${GE
const BATCH_LIMIT = 100;
const DELAY_MS = 500;
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const PROMPT = `You are an interior design AI analyst for commercial wallcoverings.
Analyze this wallcovering product image and return ONLY valid JSON (no markdown, no backticks):
diff --git a/shopify/scripts/push-color-metafields.js b/shopify/scripts/push-color-metafields.js
index 27dbb520..c3b6df28 100644
--- a/shopify/scripts/push-color-metafields.js
+++ b/shopify/scripts/push-color-metafields.js
@@ -13,7 +13,7 @@
const { Pool } = require('pg');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified',
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'),
});
const BATCH_SIZE = 12; // Shopify metafieldsSet limit = 25 inputs; 12 products × 2 fields = 24
diff --git a/shopify/scripts/push-fire-rating-metafields.js b/shopify/scripts/push-fire-rating-metafields.js
index 6bf7bd91..b599427d 100644
--- a/shopify/scripts/push-fire-rating-metafields.js
+++ b/shopify/scripts/push-fire-rating-metafields.js
@@ -10,7 +10,7 @@ const { Pool } = require('pg');
const https = require('https');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/push-pattern-repeat-metafields.js b/shopify/scripts/push-pattern-repeat-metafields.js
index 3a6f50cf..9ba2c948 100644
--- a/shopify/scripts/push-pattern-repeat-metafields.js
+++ b/shopify/scripts/push-pattern-repeat-metafields.js
@@ -17,7 +17,7 @@ const fs = require('fs');
const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const API_VERSION = '2024-10';
-const PG_URI = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const PG_URI = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const BATCH_SIZE = 25;
const DELAY_MS = 500;
const EXCLUDED_VENDORS = ['phillip_jeffries', 'cowtan_tout', 'colefax_fowler'];
diff --git a/shopify/scripts/romo-drilldown.js b/shopify/scripts/romo-drilldown.js
index 0ec6296a..f562e865 100644
--- a/shopify/scripts/romo-drilldown.js
+++ b/shopify/scripts/romo-drilldown.js
@@ -3,7 +3,7 @@ const { chromium } = require(path.join('/root/Projects/Designer-Wallcoverings/DW
const { Pool } = require(path.join('/root/Projects/Designer-Wallcoverings/DW-Programming/ImportNewSkufromURL/node_modules/pg'));
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const BATCH_SIZE = 50;
diff --git a/shopify/scripts/schumacher-import.js b/shopify/scripts/schumacher-import.js
index fd5fe0ce..70df2620 100644
--- a/shopify/scripts/schumacher-import.js
+++ b/shopify/scripts/schumacher-import.js
@@ -2,7 +2,7 @@ const https = require('https');
const { Pool } = require(require('path').join('/root/Projects/Designer-Wallcoverings/DW-Programming/ImportNewSkufromURL/node_modules/pg'));
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const API_BASE = 'https://api.schumacher.com';
diff --git a/shopify/scripts/schumacher-price-scraper.js b/shopify/scripts/schumacher-price-scraper.js
index 63fef822..f704057f 100644
--- a/shopify/scripts/schumacher-price-scraper.js
+++ b/shopify/scripts/schumacher-price-scraper.js
@@ -33,7 +33,7 @@ const CONFIG = {
'https://schumacher.com/product/{sku}',
],
- DB_CONNECTION: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified',
+ DB_CONNECTION: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified'),
RATE_LIMIT_MS: 1500, // 1.5 seconds between requests
LOGIN_WAIT_MS: 5000, // Wait after login
diff --git a/shopify/scripts/set-texture-repeat-zero.js b/shopify/scripts/set-texture-repeat-zero.js
index b1d900d4..a3da44b7 100644
--- a/shopify/scripts/set-texture-repeat-zero.js
+++ b/shopify/scripts/set-texture-repeat-zero.js
@@ -14,7 +14,7 @@ const { Pool } = require('pg');
const https = require('https');
const { trackGeminiCall } = require('/root/DW-Agents/shared/gemini-cost-tracker');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
const GEMINI_API_KEY = '${GOOGLE_API_KEY}';
const GEMINI_MODEL = 'gemini-2.0-flash';
diff --git a/shopify/scripts/sync-shopify-products.js b/shopify/scripts/sync-shopify-products.js
index 77beee01..94d9dc09 100644
--- a/shopify/scripts/sync-shopify-products.js
+++ b/shopify/scripts/sync-shopify-products.js
@@ -17,7 +17,7 @@ const { Pool } = require('pg');
const fetch = require('node-fetch');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SHOPIFY_STORE = process.env.SHOPIFY_STORE_DOMAIN || 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/texture-repeat-fixer.js b/shopify/scripts/texture-repeat-fixer.js
index b43d846c..f3377cb5 100644
--- a/shopify/scripts/texture-repeat-fixer.js
+++ b/shopify/scripts/texture-repeat-fixer.js
@@ -15,7 +15,7 @@ const { Pool } = require('pg');
const https = require('https');
const http = require('http');
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const GEMINI_API_KEY = '${GOOGLE_API_KEY}';
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${GEMINI_API_KEY}`;
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
diff --git a/shopify/scripts/thibaut-repeat-scraper.js b/shopify/scripts/thibaut-repeat-scraper.js
index fca27ca7..ae3205be 100644
--- a/shopify/scripts/thibaut-repeat-scraper.js
+++ b/shopify/scripts/thibaut-repeat-scraper.js
@@ -11,7 +11,7 @@ const { Pool } = require('pg');
const https = require('https');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SLACK_WEBHOOK = '${SLACK_WEBHOOK_URL}';
diff --git a/shopify/scripts/update-all-malibu-architectural.ts b/shopify/scripts/update-all-malibu-architectural.ts
index 16348f47..3f8e717f 100644
--- a/shopify/scripts/update-all-malibu-architectural.ts
+++ b/shopify/scripts/update-all-malibu-architectural.ts
@@ -19,7 +19,7 @@ import { Pool } from 'pg';
// PostgreSQL connection for tracking
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Paper-related tags to remove from Type 2 Vinyl products
diff --git a/shopify/scripts/wolf-gordon-shopify-push.js b/shopify/scripts/wolf-gordon-shopify-push.js
index bf3d2f3d..64e2300d 100644
--- a/shopify/scripts/wolf-gordon-shopify-push.js
+++ b/shopify/scripts/wolf-gordon-shopify-push.js
@@ -28,7 +28,7 @@ const { Pool } = require('pg');
const https = require('https');
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
const SOURCE_AGENT = 'wolf-gordon-p8-push';
diff --git a/shopify/scripts/zoffany-ai-enrich-push.js b/shopify/scripts/zoffany-ai-enrich-push.js
index d225e9d4..8aa84c9b 100644
--- a/shopify/scripts/zoffany-ai-enrich-push.js
+++ b/shopify/scripts/zoffany-ai-enrich-push.js
@@ -16,7 +16,7 @@ const DELAY_MS = 800; // safe under 2/s REST limit with margin
const MAX_RETRIES = 3;
const pool = new Pool({
- connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified'
+ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
});
// Known color words to strip from existing tags
diff --git a/shopify/scripts/zoffany-full-monty-20.js b/shopify/scripts/zoffany-full-monty-20.js
index 1dd23afd..ce600b95 100644
--- a/shopify/scripts/zoffany-full-monty-20.js
+++ b/shopify/scripts/zoffany-full-monty-20.js
@@ -28,7 +28,7 @@ const path = require('path');
const { execFileSync } = require('child_process');
// ─── Configuration ──────────────────────────────────────────────────────────
-const DB_URL = 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified';
+const DB_URL = (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified');
const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
const API_VERSION = '2024-10';
diff --git a/thibaut-repeat-run.js b/thibaut-repeat-run.js
index 90946069..e0610db5 100644
--- a/thibaut-repeat-run.js
+++ b/thibaut-repeat-run.js
@@ -7,7 +7,7 @@
* Usage: node thibaut-repeat-run.js [--limit=N] [--dry-run]
*/
const { Pool } = require('pg');
-const pool = new Pool({ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/dw_unified' });
+const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
const BATCH = parseInt(process.argv.find(a => a.startsWith('--limit='))?.split('=')[1] || '500', 10);
const DRY = process.argv.includes('--dry-run');
const sleep = (ms) => new Promise(r => setTimeout(r, ms));
← 3b1cfa98 Update Claude model IDs to claude-opus-4-8 (Opus 4.8 upgrade
·
back to Designer Wallcoverings
·
security: strip hardcoded dw_admin DSN password -> env-first b3de17d1 →