Files
BE_IBL/docs/merge-report-service-setup.md
2026-05-29 14:21:47 +07:00

2.5 KiB

Merge Report Service Setup

Dokumen ini untuk aktivasi integrasi:

  • FE -> one-api-lab -> ibl_merge_report_service
  • one-api-lab menjadi merge gateway
  • service Go hanya menerima POST /merge

1. Config DB

Isi kolom berikut di one_lab.conf_systems:

  • S_SystemsMergeReportServiceBaseUrl
  • S_SystemsMergeReportServiceSecret
  • S_SystemsMergeReportAdminGroupIDs

Contoh query:

UPDATE conf_systems
SET
    S_SystemsMergeReportServiceBaseUrl = 'http://127.0.0.1:8005',
    S_SystemsMergeReportServiceSecret = 'ganti-dengan-shared-secret',
    S_SystemsMergeReportAdminGroupIDs = '1'
WHERE S_SystemsID = 1;

Catatan:

  • S_SystemsMergeReportServiceBaseUrl jangan diakhiri slash.
  • S_SystemsMergeReportAdminGroupIDs diisi daftar M_UserGroupID dipisah koma.
  • S_SystemsMergeReportGateway tetap dipakai untuk membentuk absolute URL source PDF dan preview URL.

2. Kontrak Service Go

Endpoint minimal yang harus tersedia:

  • POST /merge

Request:

Headers:

  • Content-Type: application/json
  • X-Internal-Secret: <shared-secret>

Body:

{
  "name": "IBL12345-JOHN-DOE-merge-report.pdf",
  "urls": [
    "https://devone.aplikasi.web.id/birt/frameset?__report=report/onelab/lab/rpt_test_email.rptdesign&__format=pdf&username=admin&PID=123&ts=1716963662"
  ],
  "mergeRequestID": 1036,
  "T_OrderHeaderID": 123
}

Expected response:

  • sukses: 200 dengan body binary PDF dan Content-Type: application/pdf
  • gagal validasi/source: 400 atau 422
  • secret salah: 401 atau 403
  • source tidak ditemukan: 404
  • timeout/upstream: 408 atau 504

Perilaku yang wajib:

  • jika satu source gagal, seluruh merge gagal
  • tidak ada cache file/artifact dulu
  • fresh generate only

3. Endpoint one-api-lab

Operasional:

  • POST /mockup/fo/mergeemailv1/done/mergereport

Input minimal:

{
  "token": "<jwt>",
  "T_OrderHeaderLabNumber": "IBL12345"
}

Admin create snapshot:

  • POST /tools/ibl_merge_report_admin/create_request

Admin preview:

  • POST /tools/ibl_merge_report_admin/preview

Public preview/stream:

  • GET /report/{mergeRequestID}

4. Verifikasi

Checklist setelah service Go siap:

  1. mergereport insert row baru di merge_request.
  2. Row merge_request menyimpan mergeRequestT_OrderHeaderID.
  3. Row merge_request menyimpan mergeRequestCreatedUserID.
  4. /report/{id} mengembalikan PDF, bukan JSON payload lama.
  5. Error dari Go dipetakan ke pesan aman dari one-api-lab.
  6. Admin tool gagal jika M_UserGroupID tidak masuk whitelist config.