Files
logseq/deps/db-sync
2026-02-03 13:40:34 +08:00
..
2026-01-26 20:00:31 +08:00
2026-02-03 13:40:34 +08:00
2026-02-03 13:40:34 +08:00
2026-02-02 17:36:58 +08:00
2026-02-02 13:18:11 +08:00
2026-02-03 09:49:57 +08:00
2026-02-02 12:48:17 +08:00
2026-01-31 00:51:35 +08:00
2026-02-02 13:18:11 +08:00

Logseq DB Sync (deps/db-sync)

This package contains the DB sync server code and tests used by Logseq. It includes the Cloudflare Worker implementation and a Node.js adapter for self-hosting.

Requirements

  • Node.js (see repo root for required version)
  • Clojure (for shadow-cljs builds)

Build and Test

Cloudflare Worker

cd deps/db-sync
yarn watch

# open another terminal
cd deps/db-sync/worker
wrangler dev

D1 Schema (Worker)

The worker no longer initializes schema at request time. Apply the D1 schema via migrations during deployment/CI.

cd deps/db-sync/worker
wrangler d1 migrations apply logseq-sync-graph-meta-staging --env staging
wrangler d1 migrations apply logseq-sync-graphs-prod --env prod

Node.js Adapter (self-hosted)

Build the adapter:

cd deps/db-sync
npm run build:node-adapter

Run the adapter with Cognito auth:

./start.sh

Run the adapter with a static token (local dev):

export DB_SYNC_AUTH_DRIVER=static
export DB_SYNC_AUTH_TOKEN=dev-token
export DB_SYNC_STATIC_USER_ID=user-1
export DB_SYNC_PORT=8787
node worker/dist/node-adapter.js

Tests

Run db-sync tests (includes Node adapter tests):

cd deps/db-sync
npm run test:node-adapter

Local Sandbox Agent (for agent sessions)

Use the local sandbox-agent repo at ~/Codes/projects/sandbox-agent:

cd deps/db-sync
./scripts/start-local-sandbox-agent.sh

Then run db-sync worker with:

SANDBOX_AGENT_URL=http://127.0.0.1:2468

If sandbox-agent runs with token auth, also set:

SANDBOX_AGENT_TOKEN=...

Smoke test a Codex-backed session:

cd deps/db-sync
BASE_URL=http://127.0.0.1:8787 ./scripts/start-weather-session.sh

The control plane forwards each task message through sandbox-agent /v1/sessions/{id}/messages/stream and relays runtime events to /sessions/{id}/stream.

Runtime Provider

Agent runtime is selected by AGENT_RUNTIME_PROVIDER:

  • sprites (default): provisions a Sprite and runs sandbox-agent inside it.
  • local-dev: uses SANDBOX_AGENT_URL directly.
  • cloudflare: provisions a sandbox first, then connects to the sandbox-hosted sandbox-agent.

For cloudflare, bind and export Sandbox in the Worker and configure the container image in worker/wrangler.toml ([[containers]] class_name = "Sandbox").

Environment Variables

Variable Purpose
DB_SYNC_PORT HTTP server port
DB_SYNC_BASE_URL External base URL for asset links
DB_SYNC_DATA_DIR Data directory for sqlite + assets
DB_SYNC_STORAGE_DRIVER Storage backend selection (sqlite)
DB_SYNC_ASSETS_DRIVER Assets backend selection (filesystem)
DB_SYNC_AUTH_DRIVER Auth driver (cognito, static, none)
DB_SYNC_AUTH_TOKEN Static token for local dev
DB_SYNC_STATIC_USER_ID Static user id for local dev
DB_SYNC_STATIC_EMAIL Static user email for local dev
DB_SYNC_STATIC_USERNAME Static username for local dev
AGENT_RUNTIME_PROVIDER Runtime backend (sprites, local-dev, cloudflare)
COGNITO_ISSUER Cognito issuer URL
COGNITO_CLIENT_ID Cognito client id
COGNITO_JWKS_URL Cognito JWKS URL
SANDBOX_AGENT_URL sandbox-agent base URL for agent sessions
SANDBOX_AGENT_TOKEN Optional bearer token for sandbox-agent
OPENAI_API_KEY OpenAI API key for Codex inside sandbox-agent
CODEX_API_KEY Codex/OpenAI API key alias for sandbox-agent
CODEX_AUTH_TOKEN Codex OAuth access token (mapped to OpenAI/Codex envs in Sprites)
SPRITES_CODEX_AUTH_JSON Base64-encoded ~/.codex/auth.json written inside Sprites before starting sandbox-agent
SPRITE_TOKEN Sprites API token (default runtime auth)
SPRITES_TOKEN Alias for SPRITE_TOKEN
SPRITES_API_URL Sprites API base URL override
SPRITES_TIMEOUT_MS Sprites API request timeout
SPRITES_NAME_PREFIX Prefix used when creating sprite names
SPRITES_RAM_MB Optional sprite RAM override
SPRITES_CPUS Optional sprite CPU override
SPRITES_REGION Optional sprite region
SPRITES_STORAGE_GB Optional sprite storage override
SPRITES_BOOTSTRAP_COMMAND Command to start sandbox-agent inside sprite
SPRITES_SANDBOX_AGENT_PORT sandbox-agent port inside sprite (default 2468)
SPRITES_HEALTH_RETRIES Sprite health check retry count
SPRITES_HEALTH_INTERVAL_MS Sprite health check retry interval (ms)

Notes

  • Protocol definitions live in docs/agent-guide/db-sync/protocol.md.
  • DB sync implementation guide is in docs/agent-guide/db-sync/db-sync-guide.md.