2.5 KiB
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_SystemsMergeReportServiceBaseUrlS_SystemsMergeReportServiceSecretS_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_SystemsMergeReportServiceBaseUrljangan diakhiri slash.S_SystemsMergeReportAdminGroupIDsdiisi daftarM_UserGroupIDdipisah koma.S_SystemsMergeReportGatewaytetap 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/jsonX-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:
200dengan body binary PDF danContent-Type: application/pdf - gagal validasi/source:
400atau422 - secret salah:
401atau403 - source tidak ditemukan:
404 - timeout/upstream:
408atau504
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:
mergereportinsert row baru dimerge_request.- Row
merge_requestmenyimpanmergeRequestT_OrderHeaderID. - Row
merge_requestmenyimpanmergeRequestCreatedUserID. /report/{id}mengembalikan PDF, bukan JSON payload lama.- Error dari Go dipetakan ke pesan aman dari one-api-lab.
- Admin tool gagal jika
M_UserGroupIDtidak masuk whitelist config.