Release Notes/2026.09.2.1

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.


Ringkasan

Rilis 2026.09.2.1 menghadirkan pembaruan komponen inti AlurKerja serta penambahan skema database untuk mendukung manajemen versi form BPMN dinamis, pelacakan migrasi rilis, insight hasil simulasi berbasis AI, dan fitur favorit tenant.

Poin-poin utama pada rilis ini:

  1. 6 Berkas Migrasi Database (5 Tabel Baru & 1 CHECK Constraint): Menambahkan tabel bpm_bpmn_forms, bpm_deployed_bpmn_forms, migrations, simulation_result_insight, dan tenant_favorites.
  2. Potensi Bloker Data Lama pada Tabel drive: Terdapat penambahan constraint drive_file_type_normalized_chk yang memvalidasi format kolom file_type. Baris data lama yang berisi huruf kapital, spasi tepi, atau string kosong harus dinormalisasi sebelum migrasi dijalankan agar tidak membatalkan transaksi.
  3. Tanpa Environment Variable Baru Wajib: Rilis ini tidak menambahkan environment variable baru yang bersifat wajib pada core backend service.
  4. Service Baru Opsional: onprem-microsite: Arsitektur baru alurkerja-microsite-v2 (berbasis SPA React/Vite menggantikan Next.js) mulai tersedia bagi deployment on-premise yang mengaktifkan fitur microsite.

Seluruh perubahan skema pada rilis ini bersifat aditif (tidak ada tabel atau kolom yang dihapus). Image versi sebelumnya tetap kompatibel berjalan di atas skema database 2026.09.2.1.


Detail yang berubah

1. Perubahan Skema Database

Rilis 2026.09.2.1 menyertakan 6 berkas migrasi (5 berkas DDL aktif dan 1 berkas review_manual):

Berkas MigrasiObjek yang Dibuat / DiubahKeterangan
20260910090000_create_bpm_tablesbpm_bpmn_forms, bpm_deployed_bpmn_formsManajemen versi form BPMN dinamis per tenant/proses, checksum form, dan pemetaan deployment. Termasuk 2 sequence dan 5 indeks (3 unique).
20260910090100_create_migrationsmigrationsTabel pelacak migrasi bawaan framework (id, migration, batch).
20260910090200_create_simulation_result_insightsimulation_result_insightPenyimpanan insight AI untuk hasil simulasi proses (PK gabungan result_id dan lang).
20260910090300_create_tenant_favoritestenant_favoritesDaftar tenant yang ditandai favorit oleh user.
20260910090400_add_constraints_and_indexes_to_existing_tablesConstraint drive_file_type_normalized_chk pada tabel driveMenyentuh data lama. Memvalidasi agar nilai file_type hanya berupa lowercase bersih atau NULL.
20260910090500_review_manualCatatan selisih skema & satu DDL no-opBerisi catatan review manual serta satu perintah ALTER TABLE bpm_bpmn_forms ALTER COLUMN form_content TYPE text yang bersifat no-op (kolom sudah bertipe text).

2. Bloker Data Lama: CHECK drive_file_type_normalized_chk

Pada migrasi bagian 5/6, ditambahkan constraint berikut ke tabel public.drive:

ALTER TABLE public.drive ADD CONSTRAINT drive_file_type_normalized_chk
  CHECK (file_type IS NULL
         OR (file_type <> '' AND file_type = btrim(lower(file_type))));

PostgreSQL akan memvalidasi seluruh baris data yang sudah ada di tabel drive. Jika ditemukan baris dengan:

  • Huruf kapital (misalnya 'PDF', 'PNG')
  • Spasi di awal atau akhir (misalnya 'pdf ')
  • String kosong ('')

Maka eksekusi migrasi akan gagal dengan error:

ERROR: check constraint "drive_file_type_normalized_chk" of relation "drive" is violated by some row

Seluruh transaksi migrasi akan di-rollback. Oleh karena itu, langkah normalisasi data wajib dijalankan sebelum menerapkan DDL rilis ini.


3. Service Baru Opsional: onprem-microsite

Bagi instalasi on-premise yang menyediakan fitur portal publik atau microsite bagi tenant, rilis ini memperkenalkan service onprem-microsite berbasis image alurkerja-microsite-v2.

Service ini membaca dua environment variable opsional untuk verifikasi lisensi:

  • MICROSITE_LICENSE_CHECK_ENABLED: Mengaktifkan validasi lisensi microsite.
  • MICROSITE_LICENSE_SUPPORT_EMAIL: Email kontak dukungan jika lisensi memerlukan pembaruan.

Layanan ini opsional. Jika deployment Anda tidak menggunakan modul microsite, service ini tidak perlu didaftarkan ke docker-compose.yml atau manifest Kubernetes. Rincian integrasi mendalam dan panduan deployment microsite mandiri akan diterbitkan menyusul oleh tim platform AlurKerja.


Langkah yang harus dilakukan

Tahap 1 — Normalisasi Data drive.file_type (Pra-Migrasi)

Periksa apakah ada data pada tabel public.drive yang melanggar aturan constraint baru.

1. Pengecekan data:

SELECT id, tenant_id, name, file_type, NULLIF(btrim(lower(file_type)), '') AS menjadi
FROM public.drive
WHERE file_type IS NOT NULL
  AND (file_type = '' OR file_type <> btrim(lower(file_type)))
ORDER BY id;
  • Jika kueri menghasilkan 0 baris: tabel drive sudah bersih, lanjutkan ke Tahap 2.
  • Jika kueri menghasilkan baris: jalankan update normalisasi di bawah ini.

2. Jalankan normalisasi (di dalam transaksi):

BEGIN;

UPDATE public.drive
SET    file_type = NULLIF(btrim(lower(file_type)), '')
WHERE  file_type IS NOT NULL
  AND (file_type = '' OR file_type <> btrim(lower(file_type)));

COMMIT;

Tindakan ini hanya menyeragamkan string ekstensi berkas menjadi huruf kecil dan mengubah string kosong menjadi NULL, tanpa menghapus atau mengubah isi file.


Tahap 2 — Terapkan Migrasi Skema Database

Pilih metode penerapan migrasi sesuai dengan kondisi database Anda saat ini:

Jika database Anda sudah menerapkan rilis 2026.09.1.1, jalankan 6 file rilis 2026.09.2.1 dalam satu transaksi:

psql -v ON_ERROR_STOP=1 --single-transaction \
     -h <DB_HOST> -p <DB_PORT> -U <DB_USER> -d <DB_NAME> \
     -f sql/upgrade_2026.09.1.1_to_2026.09.2.1.sql

Jika database Anda melompati rilis dari 2026.08.4.1 langsung ke 2026.09.2.1, gunakan berkas kumulatif yang mencakup rilis 2026.08.4.2, 2026.08.5.5, 2026.09.1.1, dan 2026.09.2.1 (14 berkas termuat):

psql -v ON_ERROR_STOP=1 --single-transaction \
     -h <DB_HOST> -p <DB_PORT> -U <DB_USER> -d <DB_NAME> \
     -f sql/upgrade_2026.08.4.1_to_2026.09.2.1.sql

Eksekusi berkas migrasi satu per satu secara berurutan:

MIG_DIR="sql/migrations/2026.09.2.1"

psql -v ON_ERROR_STOP=1 -h <DB_HOST> -U <DB_USER> -d <DB_NAME> -f "$MIG_DIR/20260910090000_create_bpm_tables.up.sql"
psql -v ON_ERROR_STOP=1 -h <DB_HOST> -U <DB_USER> -d <DB_NAME> -f "$MIG_DIR/20260910090100_create_migrations.up.sql"
psql -v ON_ERROR_STOP=1 -h <DB_HOST> -U <DB_USER> -d <DB_NAME> -f "$MIG_DIR/20260910090200_create_simulation_result_insight.up.sql"
psql -v ON_ERROR_STOP=1 -h <DB_HOST> -U <DB_USER> -d <DB_NAME> -f "$MIG_DIR/20260910090300_create_tenant_favorites.up.sql"
psql -v ON_ERROR_STOP=1 -h <DB_HOST> -U <DB_USER> -d <DB_NAME> -f "$MIG_DIR/20260910090400_add_constraints_and_indexes_to_existing_tables.up.sql"
psql -v ON_ERROR_STOP=1 -h <DB_HOST> -U <DB_USER> -d <DB_NAME> -f "$MIG_DIR/20260910090500_review_manual.up.sql"

Tahap 3 — Rollout Image Komponen Baru

Lakukan pembaruan image komponen aplikasi ke rilis 2026.09.2.1.

Sangat disarankan melakukan rollout secara bertahap sesuai hierarki dependensi:

  1. Tahap 1 (Proxy): proxy
  2. Tahap 2 (Identitas & Tenant): auth, tenant
  3. Tahap 3 (Backend Services): bpm, integration, notification, report, compro-be, simulation-be
  4. Tahap 4 (Workflow Engine): camunda
  5. Tahap 5 (Frontend Apps): studio, compro, simulation, apps, microsite

Contoh perintah rollout:

NS=alurkerja

# Contoh restart tahap backend
kubectl -n $NS rollout restart deploy/deployment-bpm-be
kubectl -n $NS rollout restart deploy/deployment-report-be
kubectl -n $NS rollout status deploy/deployment-bpm-be --timeout=300s

Untuk prosedur orkestrasi otomatis K8s yang lengkap, ikuti panduan Runbook Upgrade Kubernetes.

# Tarik image terbaru untuk seluruh service
docker compose pull

# Naikkan container dengan image baru
docker compose up -d

Tahap 4 — Verifikasi Pasca-Upgrade

1. Verifikasi Objek Skema Database:

Pastikan tabel baru dan constraint berhasil dibuat:

SELECT table_name 
FROM information_schema.tables 
WHERE table_schema = 'public' 
  AND table_name IN (
    'bpm_bpmn_forms', 
    'bpm_deployed_bpmn_forms', 
    'migrations', 
    'simulation_result_insight', 
    'tenant_favorites'
  );

SELECT conname 
FROM pg_constraint 
WHERE conname = 'drive_file_type_normalized_chk';

Kueri harus mengembalikan kelima nama tabel dan nama constraint drive_file_type_normalized_chk.

2. Verifikasi Fungsional Singkat (Smoke Test):

  • Login ke aplikasi menggunakan akun administrator atau pengguna biasa.
  • Buat dan buka satu proses BPMN di Studio, lakukan perubahan, dan simpan.
  • Unggah file dokumen baru ke Drive dan pastikan file dapat diunduh kembali.
  • Tandai salah satu tenant sebagai favorit di halaman pemilih tenant (jika menggunakan multi-tenant switcher).

Kalau gagal — rollback

1. Rollback Image Aplikasi

Bila terjadi kegagalan fungsi aplikasi pada image 2026.09.2.1:

  • Kubernetes: Turunkan tag image deployment kembali ke tag atau digest rilis sebelumnya (2026.09.1.1 atau 2026.08.4.1). Catatan: jika menggunakan tag :latest, perintah kubectl rollout undo tidak akan bekerja efektif; Anda harus mengarahkan image ke sha256 digest versi sebelumnya.
  • Docker Compose: Tentukan tag rilis sebelumnya pada .env atau docker-compose.yml, lalu jalankan docker compose up -d.

2. Status Skema Database

Database tidak perlu di-rollback. Seluruh tabel baru (bpm_*, simulation_result_insight, tenant_favorites, migrations) tidak akan mengganggu container versi lama yang tidak mengaksesnya. Constraint pada drive juga aman dipertahankan karena data lama sudah dinormalisasi menjadi huruf kecil yang valid.

Jika tim database mengharuskan rollback skema penuh dalam kondisi darurat, gunakan berkas .down.sql yang tersedia pada folder sql/migrations/2026.09.2.1/ secara berurutan terbalik (mulai dari nomor 090500 hingga 090000) setelah membuat backup database terlebih dahulu.


Checklist ringkas

Persiapan & Pra-Migrasi

  • Backup full database PostgreSQL selesai dibuat.
  • Pengecekan data file_type pada tabel public.drive sudah dijalankan.
  • Normalisasi drive.file_type dijalankan jika ada huruf besar/spasi/string kosong.

Migrasi Database

  • 6 Berkas migrasi 2026.09.2.1 berhasil dijalankan tanpa error.
  • 5 Tabel baru terverifikasi ada: bpm_bpmn_forms, bpm_deployed_bpmn_forms, migrations, simulation_result_insight, tenant_favorites.
  • Constraint drive_file_type_normalized_chk terverifikasi aktif.

Rollout & Deployment

  • Image rilis 2026.09.2.1 berhasil ditarik (pull).
  • Rollout bertahap dijalankan (Proxy -> Auth/Tenant -> Backend -> Camunda -> Frontend).
  • Seluruh pod/container berstatus Running dan Ready.

Smoke Test Pasca-Upgrade

  • Login pengguna berhasil.
  • Buka dan simpan diagram/form proses di Studio.
  • Upload & download file pada modul Drive berjalan normal.