Rilis 2026.09.1.1
Catatan rilis dan panduan pembaruan versi 2026.09.1.1 untuk deployment on-premise AlurKerja. Rilis image tanpa perubahan skema baru, konfigurasi queue processor report-service, dan prasyarat migrasi 2026.08.4.2 & 2026.08.5.5.
Ringkasan
Rilis 2026.09.1.1 adalah pembaruan versi aplikasi yang tidak membawa perubahan skema database baru pada pipeline migrasi publik (public.sql). File migrasi rilis ini bersifat no-op (SELECT 1;) untuk menjaga kesinambungan riwayat rilis migration runner.
Meskipun tidak ada DDL baru di rilis 2026.09.1.1 itu sendiri, ada dua hal krusial yang wajib diperhatikan oleh operator infrastruktur:
- Konfigurasi Queue Processor pada
report-service: Terdapat lima environment variable baru yang perlu disetel secara eksplisit agar pemrosesan antrean laporan berjalan optimal dan terprediksi. - Prasyarat Migrasi 2026.08.4.2 dan 2026.08.5.5: Sebelum image 2026.09.1.1 dijalankan, database target wajib sudah menerapkan migrasi rilis 2026.08.4.2 dan 2026.08.5.5. Image baru membutuhkan kolom
queue_jobs.asynq_*sertabpmn_personalizations.cancellable. Terdapat potensi bloker berupa data duplikat yang harus dibersihkan sebelum indeks unik dibuat.
Bagi deployment yang melompati rilis (misalnya dari 2026.08.4.1 langsung ke 2026.09.1.1), pastikan migrasi database 2026.08.4.2 dan 2026.08.5.5 dieksekusi terlebih dahulu sebelum menaikkan container/pod aplikasi.
Detail yang berubah
1. Konfigurasi report-service
Mulai rilis ini, pemrosesan antrean laporan pada report-service memerlukan penetapan variabel konfigurasi secara eksplisit. Tambahkan atau pastikan lima variabel berikut disetel pada ConfigMap (Kubernetes) atau .env (Docker Compose):
| Variable | Nilai Rekomendasi | Keterangan |
|---|---|---|
ENABLE_QUEUE_PROCESSOR | true | Mengaktifkan pemrosesan antrean di report-service. |
ENBALE_QUEUE_PROCESSOR | true | Alias salah eja (typo) bawaan kode hulu. Variabel ini tetap dibaca oleh service. Wajib disetel sama persis dengan ENABLE_QUEUE_PROCESSOR (jangan dikoreksi ejaannya). |
QUEUE_POLLING_INTERVAL | 5s | Interval pengecekan antrean (default kode: 30s, rekomendasi on-premise: 5s). |
QUEUE_BATCH_SIZE | 200 | Jumlah maksimal job yang diambil dalam satu batch (default kode: 10, rekomendasi: 200). |
QUEUE_WORKER_COUNT | 3 | Jumlah worker concurrent yang memproses antrean. |
Untuk referensi arsitektur antrean berbasis Redis dan Asynq secara menyeluruh, baca dokumentasi Env Konsolidasi Antrean (asynq).
2. Skema Prasyarat (2026.08.4.2 & 2026.08.5.5)
Bila instalasi Anda belum menerapkan migrasi dari minggu-minggu sebelumnya, perubahan berikut harus sudah masuk ke database sebelum container image rilis 2026.09.1.1 dinyalakan:
Rilis 2026.08.4.2
- Tabel baru:
report_schedule_runs: Riwayat eksekusi jadwal ekspor laporan (status, percobaan, link file, log error).tenant_cancellation_policies: Pengaturan izin pembatalan task per tenant.tenant_cancellation_policy_audits: Log audit perubahan kebijakan pembatalan task.
- Kolom baru:
bpmn_personalizations.cancellable(boolean NOT NULL DEFAULT true): Menandai apakah task dalam proses dapat dibatalkan.queue_jobs.available_at(timestamptz): Penanda waktu kapan job siap dieksekusi.
Rilis 2026.08.5.5
- Kolom baru pada
public.queue_jobs:asynq_queue(text)asynq_task_id(text)relayed_at(timestamptz)skip_reason(text)
- Indeks baru:
idx_queue_jobs_pending_relayidx_queue_jobs_relayed_atqueue_jobs_pending_task_reminder_unique(UNIQUE INDEX)
Perhatian Bloker Unik: Rilis 2026.08.5.5 menambahkan indeks unik:
CREATE UNIQUE INDEX queue_jobs_pending_task_reminder_unique
ON public.queue_jobs (tenant_id, instance_id)
WHERE status = 'pending' AND topic = 'task.active.reminder';Bila di database Anda terdapat lebih dari satu baris pending dengan topic task.active.reminder untuk kombinasi (tenant_id, instance_id) yang sama, pembuatan indeks akan gagal dan transaksi migrasi dibatalkan. Data duplikat tersebut harus dibersihkan terlebih dahulu.
Langkah yang harus dilakukan
Prosedur update dilakukan dalam 4 tahap berurutan:
Tahap 1 — Pengecekan & Pembersihan Bloker Duplikat
Sebelum menjalankan migrasi database, periksa apakah ada duplikasi antrean pengingat task pada tabel public.queue_jobs.
1. Periksa duplikat:
SELECT tenant_id, instance_id, count(*) AS jumlah
FROM public.queue_jobs
WHERE status = 'pending' AND topic = 'task.active.reminder'
GROUP BY tenant_id, instance_id
HAVING count(*) > 1;- Jika kueri menghasilkan 0 baris: database bersih, langsung lanjut ke Tahap 2.
- Jika kueri menghasilkan satu atau lebih baris: lakukan pembersihan dengan menyisakan satu entri terbaru (
max(id)).
2. Bersihkan baris duplikat (jalankan dalam transaksi):
BEGIN;
-- Hapus duplikat antrean pengingat yang belum terproses
DELETE FROM public.queue_jobs q
WHERE q.status = 'pending' AND q.topic = 'task.active.reminder'
AND q.id NOT IN (
SELECT max(id)
FROM public.queue_jobs
WHERE status = 'pending' AND topic = 'task.active.reminder'
GROUP BY tenant_id, instance_id
);
COMMIT;Baris yang dihapus hanyalah entri antrean pengingat yang menumpuk. Tindakan ini tidak menghapus data proses atau tugas pengguna itu sendiri.
Tahap 2 — Terapkan Migrasi Skema Prasyarat
Jika database Anda belum berada di posisi 2026.08.5.5, terapkan file migrasi secara berurutan.
Jalankan migrasi lewat client psql yang terhubung ke PostgreSQL cluster:
# Terapkan migrasi 2026.08.4.2
psql -v ON_ERROR_STOP=1 -h <DB_HOST> -U <DB_USER> -d <DB_NAME> \
-f sql/migrations/2026.08.4.2/20260827090000_create_report_schedule_runs.up.sql
psql -v ON_ERROR_STOP=1 -h <DB_HOST> -U <DB_USER> -d <DB_NAME> \
-f sql/migrations/2026.08.4.2/20260827090100_create_tenant_tables.up.sql
psql -v ON_ERROR_STOP=1 -h <DB_HOST> -U <DB_USER> -d <DB_NAME> \
-f sql/migrations/2026.08.4.2/20260827090200_add_columns_to_bpmn_personalizations.up.sql
psql -v ON_ERROR_STOP=1 -h <DB_HOST> -U <DB_USER> -d <DB_NAME> \
-f sql/migrations/2026.08.4.2/20260827090300_add_columns_to_queue_jobs.up.sql
# Terapkan migrasi 2026.08.5.5
psql -v ON_ERROR_STOP=1 -h <DB_HOST> -U <DB_USER> -d <DB_NAME> \
-f sql/migrations/2026.08.5.5/20260902090000_add_columns_to_queue_jobs.up.sql
# Terapkan catatan 2026.09.1.1 (no-op)
psql -v ON_ERROR_STOP=1 -h <DB_HOST> -U <DB_USER> -d <DB_NAME> \
-f sql/migrations/2026.09.1.1/20260903090000_tanpa_perubahan_skema.up.sqlJalankan migrasi menggunakan container tools atau psql lokal:
docker compose exec alpine-tools psql -h postgres -U postgres -d alur_onprem \
-f /migrations/public/2026.08.4.2/20260827090200_add_columns_to_bpmn_personalizations.up.sql
docker compose exec alpine-tools psql -h postgres -U postgres -d alur_onprem \
-f /migrations/public/2026.08.5.5/20260902090000_add_columns_to_queue_jobs.up.sql
docker compose exec alpine-tools psql -h postgres -U postgres -d alur_onprem \
-f /migrations/public/2026.09.1.1/20260903090000_tanpa_perubahan_skema.up.sqlVerifikasi kolom baru sudah tercipta:
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'queue_jobs'
AND column_name IN ('asynq_queue', 'asynq_task_id', 'relayed_at', 'available_at');
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'bpmn_personalizations'
AND column_name = 'cancellable';Semua kolom di atas harus terdaftar.
Tahap 3 — Perbarui Konfigurasi Environment
Perbarui konfigurasi pada deployment Anda untuk menyertakan lima environment variable report-service.
Tambahkan ke ConfigMap yang dipasang pada Deployment report-service:
data:
ENABLE_QUEUE_PROCESSOR: "true"
ENBALE_QUEUE_PROCESSOR: "true"
QUEUE_POLLING_INTERVAL: "5s"
QUEUE_BATCH_SIZE: "200"
QUEUE_WORKER_COUNT: "3"Terapkan ConfigMap:
kubectl apply -f configmap-report.yamlTambahkan baris berikut ke file .env di direktori deployment Anda:
# Queue Processor Configuration (report-service)
ENABLE_QUEUE_PROCESSOR=true
ENBALE_QUEUE_PROCESSOR=true
QUEUE_POLLING_INTERVAL=5s
QUEUE_BATCH_SIZE=200
QUEUE_WORKER_COUNT=3Pastikan service onprem-report di docker-compose.yml membaca variabel tersebut melalui env_file: .env atau blok environment:.
Tahap 4 — Pull Image Baru & Restart Layanan
Tarik image rilis 2026.09.1.1 dari container registry dan lakukan rolling update.
Jika menggunakan tag :latest dengan imagePullPolicy: Always:
NS=alurkerja
# Restart bertahap atau per komponen
kubectl -n $NS rollout restart deploy/deployment-report-be
kubectl -n $NS rollout status deploy/deployment-report-be --timeout=300sAtau lakukan restart menyeluruh sesuai prosedur Runbook Upgrade Kubernetes.
docker compose pull onprem-report
docker compose up -d onprem-reportKalau gagal — rollback
Rollback Image
Jika pod/container versi 2026.09.1.1 mengalami kendala operasional (misalnya crash atau error startup):
- Kembalikan image tag/digest ke rilis sebelumnya (
2026.08.4.1atau2026.08.5.5). - Jalankan rollout restart pada deployment atau
docker compose up -d.
Penanganan Skema Database
Database TIDAK PERLU di-rollback. Perubahan skema dari 2026.08.4.2 dan 2026.08.5.5 bersifat aditif (hanya menambahkan tabel, kolom, dan indeks baru). Image lama tetap kompatibel dan dapat berjalan dengan normal di atas skema baru ini. Kolom baru hanya akan diabaikan oleh aplikasi versi lama.
Rollback Konfigurasi Queue Processor
Jika queue processor pada report-service membebani database:
- Ubah
ENABLE_QUEUE_PROCESSOR=falsedanENBALE_QUEUE_PROCESSOR=false. - Terapkan ulang ConfigMap atau simpan file
.env. - Restart
report-service.
Checklist ringkas
Pra-Migrasi & Database
- Backup database PostgreSQL sudah dibuat (
pg_dump). - Cek duplikat
queue_jobsdengan topictask.active.reminderberstatuspending(HAVING count(*) > 1). - Duplikat berhasil dibersihkan jika ditemukan.
- Migrasi DDL
2026.08.4.2dan2026.08.5.5terpasang tanpa error. - Kolom
queue_jobs.asynq_queuedanbpmn_personalizations.cancellableterverifikasi ada.
Konfigurasi Environment
-
ENABLE_QUEUE_PROCESSOR=truedisetel. -
ENBALE_QUEUE_PROCESSOR=true(alias typo) ikut disetel. -
QUEUE_POLLING_INTERVAL,QUEUE_BATCH_SIZE, danQUEUE_WORKER_COUNTsudah dikonfigurasi.
Deploy & Verifikasi
- Image baru
report-serviceberhasil ditarik (pull). - Service
report-serviceberhasil di-restart dan status pod/containerReady/Running. - Log
report-servicebersih dari error fatal koneksi antrean. - Fitur ekspor laporan atau pengingat task berfungsi normal.
Rilis 2026.09.2.1
Catatan rilis dan panduan pembaruan versi 2026.09.2.1 untuk deployment on-premise AlurKerja. Memuat 6 berkas migrasi database (5 tabel baru, CHECK normalisasi drive), layanan opsional microsite, dan prosedur upgrade.
Penggabungan Websocket Kolaborasi ke Notification Service
Mulai versi 2026.08.1.1, websocket kolaborasi BPMN (Yjs) digabung ke dalam service notifikasi. Halaman ini menjelaskan apa yang berubah dan langkah update yang perlu dilakukan pada deployment on-premise Anda.
