Setup dan Operasi
Semua perintah pada halaman ini dijalankan dari root external/datacore-extension.
Prasyarat
- Node.js 22 untuk menyamai image Docker; manifest root menggunakan pnpm 8.14.0.
- PostgreSQL yang memiliki
kv_cache_table,directus_collections, dan tabel sumber. - Redis jika sinkronisasi cache akan diaktifkan.
- NATS dengan JetStream jika pembaruan realtime dan event keluar akan diaktifkan.
- Producer CDC yang mengirim event ke
pgcdc.public.>untuk pembaruan realtime.
Environment variables
Worker membaca ../../.env, lalu .env relatif terhadap working directory proses.
| Variable | Wajib | Default | Fungsi |
|---|---|---|---|
DB_HOST | Ya | - | Host PostgreSQL. |
DB_PORT | Ya | - | Port PostgreSQL. |
DB_USER | Ya | - | User PostgreSQL. |
DB_PASSWORD | Ya | - | Password PostgreSQL. |
DB_DATABASE | Ya | - | Database PostgreSQL. |
REDIS_ENABLED | Tidak | nonaktif | Harus true untuk mengaktifkan Redis dan bootstrap cache. |
REDIS_HOST | Jika Redis aktif | 127.0.0.1 | Host Redis. |
REDIS_PORT | Jika Redis aktif | 6379 | Port Redis. |
REDIS_USER | Tidak | - | Username Redis. |
REDIS_PASSWORD | Tidak | - | Password Redis. |
REDIS_DB | Tidak | 0 | Nomor database Redis. |
CACHE_PREFIX | Tidak | kosong | Prefix key config.*, misalnya dev. |
NATS_ENABLED | Tidak | nonaktif | Mengaktifkan koneksi NATS dan alur realtime. |
NATS_URL | Jika NATS aktif | - | URL server NATS. |
NATS_KV_CACHE_PURGE_ON_STARTUP | Tidak | nonaktif | Menghapus bucket NATS KV saat startup; bucket ini berbeda dari Redis KV Cache yang dijelaskan di sini. |
Jangan menyalin nilai credential dari .env.example ke environment produksi.
Menjalankan lokal
corepack enable
pnpm install --frozen-lockfile
pnpm --filter worker-common dev
Build dan start
pnpm --filter worker-common build
pnpm --filter worker-common start
Docker
pnpm --filter worker-common docker:build
pnpm --filter worker-common docker:push
Image build menjalankan aplikasi dengan node dist/apps/worker-common/src/main.js.
Verifikasi minimum
- Pastikan log memuat
KV bootstrap sync completeddanStartup barrier opened. - Periksa Redis set
config.<cache_name>.indexdan salah satu keyconfig.<cache_name>.<id>; tambahkanCACHE_PREFIX:bila diaktifkan. - Pastikan log subscription muncul untuk
pgcdc.public.kv_cache_tabledan tabel yang didaftarkan. - Ubah satu row sumber dan pastikan cache row berubah serta event
config.sync.changedditerbitkan.