ai-chatbot/scripts/local-video-canvas

Local video-canvas test environment

This environment uses an isolated PGlite database and a fixed local test account/project. It must never point POSTGRES_URL at a non-loopback host.

Start the local database

pnpm db:local:video-canvas

The database listens on 127.0.0.1:15432. Keep the process running while the application and synchronization commands are in use.

Synchronize server configuration

Create an SSH tunnel from local port 15433 to the server PostgreSQL port, then run the initial exact copy:

pnpm db:sync:video-canvas

This copies AI providers, AI models, the video-canvas-related system settings, tool configuration, storage configuration, and site settings. It also creates the fixed local administrator account and an empty video-canvas project. The script refuses a non-loopback destination and verifies every copied table by a canonical SHA-256 digest.

After local competitor-matching settings have been saved, use the preservation mode for later server model/configuration refreshes:

pnpm db:sync:video-canvas -- --preserve-video-canvas-config

This still refreshes providers, models, storage, site settings, and the other selected server settings, but preserves the local video_canvas_function_config row. The test user is updated in place so administrator audit references do not break repeated synchronization.

Fixed test records

  • User ID: 00000000-0000-4000-8000-000000000101
  • Project ID: 00000000-0000-4000-8000-000000000201
  • Project URL: /canvas/00000000-0000-4000-8000-000000000201

Do not add server credentials, storage keys, or test-account passwords to this document.

Verification snapshot

On 2026-07-16, preservation-mode synchronization verified:

  • 35 AI providers
  • 30 AI models
  • 4 storage configurations
  • 20 selected system settings
  • 1 site-settings row
  • an authenticated administrator session and HTTP 200 video-canvas config

The local video_canvas_function_config digest was unchanged before and after the refresh, and the fixed project was recreated with zero nodes and edges.