unipo-ui 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/index.mjs +53 -4
- package/dist/admisi-YCOE3DMH.cjs +20 -0
- package/dist/admisi-YXCTBECZ.js +11 -0
- package/dist/akademik-PJGL6MSP.cjs +20 -0
- package/dist/akademik-TPDFEZGF.js +11 -0
- package/dist/akses-AUPQD6YN.cjs +20 -0
- package/dist/akses-V5XIMBWT.js +11 -0
- package/dist/arsip-2T7IEION.cjs +20 -0
- package/dist/arsip-LDRV7FYX.js +11 -0
- package/dist/cbt-4N6COVIN.js +11 -0
- package/dist/cbt-GMQSR7TP.cjs +20 -0
- package/dist/chunk-34OKV63Q.js +122 -0
- package/dist/chunk-34OKV63Q.js.map +1 -0
- package/dist/chunk-3O5ELKBH.cjs +18 -0
- package/dist/chunk-3O5ELKBH.cjs.map +1 -0
- package/dist/chunk-4BQOABRV.js +462 -0
- package/dist/chunk-4BQOABRV.js.map +1 -0
- package/dist/{chunk-DEF5CA7C.cjs → chunk-5VNCBW4R.cjs} +282 -1165
- package/dist/chunk-5VNCBW4R.cjs.map +1 -0
- package/dist/{chunk-SJ4DJOMZ.js → chunk-7AJ4LW5H.js} +163 -1019
- package/dist/chunk-7AJ4LW5H.js.map +1 -0
- package/dist/chunk-JASW45YF.cjs +510 -0
- package/dist/chunk-JASW45YF.cjs.map +1 -0
- package/dist/chunk-JSUHAYQ4.js +15 -0
- package/dist/chunk-JSUHAYQ4.js.map +1 -0
- package/dist/chunk-LN6HZMPI.js +1006 -0
- package/dist/chunk-LN6HZMPI.js.map +1 -0
- package/dist/chunk-LNJTDEQR.cjs +1937 -0
- package/dist/chunk-LNJTDEQR.cjs.map +1 -0
- package/dist/chunk-MKQEH7QS.cjs +1058 -0
- package/dist/chunk-MKQEH7QS.cjs.map +1 -0
- package/dist/chunk-TAKLMRU7.cjs +150 -0
- package/dist/chunk-TAKLMRU7.cjs.map +1 -0
- package/dist/chunk-TYCRRYCQ.js +1843 -0
- package/dist/chunk-TYCRRYCQ.js.map +1 -0
- package/dist/crm-C4XGSG6O.js +11 -0
- package/dist/crm-LTVCDNMK.cjs +20 -0
- package/dist/dasbor-OJLMSFTF.cjs +20 -0
- package/dist/dasbor-Y3UPFYFE.js +11 -0
- package/dist/edom-3GZUUB7H.cjs +20 -0
- package/dist/edom-K4Y2NV4K.js +11 -0
- package/dist/fakultas-DJRUVJBV.js +11 -0
- package/dist/fakultas-VVAQOPUX.cjs +20 -0
- package/dist/filter-D54KALbB.d.cts +436 -0
- package/dist/filter-D54KALbB.d.ts +436 -0
- package/dist/helpdesk-AWVC7BPE.cjs +20 -0
- package/dist/helpdesk-BAOXAU6G.js +11 -0
- package/dist/humas-7BMMJ3WF.js +11 -0
- package/dist/humas-H56JFUW6.cjs +20 -0
- package/dist/ikon.cjs +125 -0
- package/dist/ikon.cjs.map +1 -0
- package/dist/ikon.d.cts +140 -0
- package/dist/ikon.d.ts +140 -0
- package/dist/ikon.js +6 -0
- package/dist/ikon.js.map +1 -0
- package/dist/iku-7JLF2NIH.js +11 -0
- package/dist/iku-F47ZLMYJ.cjs +20 -0
- package/dist/index.cjs +544 -257
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +192 -2
- package/dist/index.d.ts +192 -2
- package/dist/index.js +126 -4
- package/dist/index.js.map +1 -1
- package/dist/induk-BGTGKRLL.js +11 -0
- package/dist/induk-DLYDMZAM.cjs +20 -0
- package/dist/integrasi-4VXNGA3V.cjs +20 -0
- package/dist/integrasi-IP3WWDO7.js +11 -0
- package/dist/kalender-DGQDGJCL.cjs +20 -0
- package/dist/kalender-FGGUBYKZ.js +11 -0
- package/dist/karier-H3HBFCQQ.js +11 -0
- package/dist/karier-QTU2P5YD.cjs +20 -0
- package/dist/katalog.cjs +1709 -0
- package/dist/katalog.cjs.map +1 -0
- package/dist/katalog.d.cts +645 -0
- package/dist/katalog.d.ts +645 -0
- package/dist/katalog.js +1626 -0
- package/dist/katalog.js.map +1 -0
- package/dist/kelulusan-BHFQM5N4.cjs +20 -0
- package/dist/kelulusan-ZR7CM6I5.js +11 -0
- package/dist/kemahasiswaan-EINWXAY7.cjs +20 -0
- package/dist/kemahasiswaan-NH2LEDH7.js +11 -0
- package/dist/kerjasama-FAOHZCML.js +11 -0
- package/dist/kerjasama-TXWJOU4Y.cjs +20 -0
- package/dist/keu-4TXF4FEP.cjs +20 -0
- package/dist/keu-SD7UOCDB.js +11 -0
- package/dist/kurikulum-SRO7TJYI.cjs +20 -0
- package/dist/kurikulum-XT7PZJOK.js +11 -0
- package/dist/layanan-RQ2AWCQ5.cjs +20 -0
- package/dist/layanan-Y6WUCSD2.js +11 -0
- package/dist/lms-5JYOSLBI.cjs +20 -0
- package/dist/lms-NTXMSHG2.js +11 -0
- package/dist/lppm-7DH7PRF3.cjs +20 -0
- package/dist/lppm-UXYGIOIF.js +11 -0
- package/dist/master-GKTTAKLF.cjs +20 -0
- package/dist/master-ZG4SPPDU.js +11 -0
- package/dist/mbkm-OGR72BTB.js +11 -0
- package/dist/mbkm-URKJHUIQ.cjs +20 -0
- package/dist/notifikasi-FMA26M4I.js +11 -0
- package/dist/notifikasi-QDCYIX7G.cjs +20 -0
- package/dist/pddikti-RJVYY2J4.cjs +20 -0
- package/dist/pddikti-VF2PXDKA.js +11 -0
- package/dist/{content-DaJPx5LX.d.cts → pemeliharaan-D5S-1lqW.d.ts} +38 -434
- package/dist/{content-DaJPx5LX.d.ts → pemeliharaan-Dr0HSxvZ.d.cts} +38 -434
- package/dist/perpustakaan-5RL33XG2.js +11 -0
- package/dist/perpustakaan-JXZW43MJ.cjs +20 -0
- package/dist/pilih-BEes_D3n.d.cts +205 -0
- package/dist/pilih-CEKqXMUS.d.ts +205 -0
- package/dist/pmb-EGTWW2ZH.cjs +20 -0
- package/dist/pmb-G7EAFJ3R.js +11 -0
- package/dist/portal-EI7TXN7H.cjs +20 -0
- package/dist/portal-MMUYX3RA.js +11 -0
- package/dist/portal-api-BJLO6AGI.js +11 -0
- package/dist/portal-api-Q6B3X6ZV.cjs +20 -0
- package/dist/profil-46FV46VH.cjs +20 -0
- package/dist/profil-4BIXIM6D.js +11 -0
- package/dist/referensi-HNYOJGNX.js +11 -0
- package/dist/referensi-VOT5BRCL.cjs +20 -0
- package/dist/registry.json +606 -4
- package/dist/repositori-2MJ43NXM.js +11 -0
- package/dist/repositori-KFXVJB7B.cjs +20 -0
- package/dist/rpl-2ZXHNSPF.js +11 -0
- package/dist/rpl-YF5MV2YA.cjs +20 -0
- package/dist/sarpras-CQ7QKVUN.js +11 -0
- package/dist/sarpras-XGPHHFCG.cjs +20 -0
- package/dist/scss/components/_animasi.scss +280 -0
- package/dist/scss/components/_ikon.scss +249 -0
- package/dist/scss/components/_katalog.scss +662 -0
- package/dist/scss/components/_platform.scss +364 -0
- package/dist/scss/index.scss +4 -0
- package/dist/sdm-N6LE66PP.cjs +20 -0
- package/dist/sdm-QKBXH3JF.js +11 -0
- package/dist/siakad.cjs +1389 -2915
- package/dist/siakad.cjs.map +1 -1
- package/dist/siakad.d.cts +31 -196
- package/dist/siakad.d.ts +31 -196
- package/dist/siakad.js +446 -2194
- package/dist/siakad.js.map +1 -1
- package/dist/spmi-J37NEYIU.js +11 -0
- package/dist/spmi-N6EU7KNC.cjs +20 -0
- package/dist/tracer-G6DDXVXC.cjs +20 -0
- package/dist/tracer-M3FTNWBG.js +11 -0
- package/dist/ui-unipo.css +1650 -0
- package/dist/ui-unipo.min.css +1 -1
- package/package.json +25 -3
- package/src/components/animasi.tsx +186 -0
- package/src/components/modal.tsx +113 -0
- package/src/components/overlays.tsx +6 -1
- package/src/components/pemeliharaan.tsx +152 -0
- package/src/components/platform.tsx +94 -0
- package/src/ikon/ilustrasi.tsx +283 -0
- package/src/ikon/index.ts +7 -0
- package/src/ikon/kotak.tsx +30 -0
- package/src/ikon/unipo.tsx +326 -0
- package/src/index.ts +8 -0
- package/src/katalog/aturan.ts +488 -0
- package/src/katalog/data/id.ts +749 -0
- package/src/katalog/data/indeks.json +1 -0
- package/src/katalog/data/muat.ts +47 -0
- package/src/katalog/ikon.tsx +11 -0
- package/src/katalog/index.ts +13 -0
- package/src/katalog/isian.tsx +372 -0
- package/src/katalog/katalog.tsx +138 -0
- package/src/katalog/kelola.tsx +620 -0
- package/src/katalog/modul.tsx +336 -0
- package/src/katalog/tampil.tsx +147 -0
- package/src/katalog/tipe.ts +141 -0
- package/src/katalog/wizard.tsx +155 -0
- package/src/lib/platform.ts +91 -0
- package/src/siakad/index.ts +1 -0
- package/src/siakad/pemeliharaan.tsx +118 -0
- package/src/siakad/provider.tsx +2 -0
- package/dist/chunk-DEF5CA7C.cjs.map +0 -1
- package/dist/chunk-SJ4DJOMZ.js.map +0 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
// src/katalog/data/modul/spmi.json
|
|
3
|
+
var key = "spmi";
|
|
4
|
+
var resources = [{ id: "/v1/spmi/akreditasi", tag: "SPMI: Akreditasi", title: "Status akreditasi", base: "/v1/spmi/akreditasi", item: "/v1/spmi/akreditasi/{id}", key: "id", list: "getSpmiAkreditasi", create: "postSpmiAkreditasi", get: "getSpmiAkreditasiById", update: "putSpmiAkreditasiById", del: "deleteSpmiAkreditasiById", actions: [], children: ["/v1/spmi/akreditasi/{id}/riwayat"] }, { id: "/v1/spmi/akreditasi-butir", tag: "SPMI: Akreditasi", title: "Butir persiapan akreditasi", base: "/v1/spmi/akreditasi-butir", item: "/v1/spmi/akreditasi-butir/{id}", key: "id", list: "getSpmiAkreditasiButir", create: "postSpmiAkreditasiButir", get: "getSpmiAkreditasiButirById", update: "putSpmiAkreditasiButirById", del: "deleteSpmiAkreditasiButirById", actions: [], children: ["/v1/spmi/akreditasi-butir/{id}/riwayat"] }, { id: "/v1/spmi/akreditasi-butir/{id}/riwayat", tag: "SPMI: Akreditasi", title: "Butir persiapan akreditasi: riwayat perubahan", base: "/v1/spmi/akreditasi-butir/{id}/riwayat", list: "getSpmiAkreditasiButirByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/akreditasi-butir" }, { id: "/v1/spmi/akreditasi-instrumen", tag: "SPMI: Akreditasi", title: "Instrumen akreditasi", base: "/v1/spmi/akreditasi-instrumen", item: "/v1/spmi/akreditasi-instrumen/{id}", key: "id", list: "getSpmiAkreditasiInstrumen", create: "postSpmiAkreditasiInstrumen", get: "getSpmiAkreditasiInstrumenById", update: "putSpmiAkreditasiInstrumenById", del: "deleteSpmiAkreditasiInstrumenById", actions: [], children: ["/v1/spmi/akreditasi-instrumen/{id}/riwayat"] }, { id: "/v1/spmi/akreditasi-instrumen/{id}/riwayat", tag: "SPMI: Akreditasi", title: "Instrumen akreditasi: riwayat perubahan", base: "/v1/spmi/akreditasi-instrumen/{id}/riwayat", list: "getSpmiAkreditasiInstrumenByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/akreditasi-instrumen" }, { id: "/v1/spmi/akreditasi-kriteria", tag: "SPMI: Akreditasi", title: "Kriteria instrumen", base: "/v1/spmi/akreditasi-kriteria", item: "/v1/spmi/akreditasi-kriteria/{id}", key: "id", list: "getSpmiAkreditasiKriteria", create: "postSpmiAkreditasiKriteria", get: "getSpmiAkreditasiKriteriaById", update: "putSpmiAkreditasiKriteriaById", del: "deleteSpmiAkreditasiKriteriaById", actions: [], children: ["/v1/spmi/akreditasi-kriteria/{id}/riwayat"] }, { id: "/v1/spmi/akreditasi-kriteria/{id}/riwayat", tag: "SPMI: Akreditasi", title: "Kriteria instrumen: riwayat perubahan", base: "/v1/spmi/akreditasi-kriteria/{id}/riwayat", list: "getSpmiAkreditasiKriteriaByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/akreditasi-kriteria" }, { id: "/v1/spmi/akreditasi-persiapan", tag: "SPMI: Akreditasi", title: "Persiapan akreditasi", base: "/v1/spmi/akreditasi-persiapan", item: "/v1/spmi/akreditasi-persiapan/{id}", key: "id", list: "getSpmiAkreditasiPersiapan", create: "postSpmiAkreditasiPersiapan", get: "getSpmiAkreditasiPersiapanById", update: "putSpmiAkreditasiPersiapanById", del: "deleteSpmiAkreditasiPersiapanById", actions: ["postSpmiAkreditasiPersiapanByIdBuatButir", "getSpmiAkreditasiPersiapanByIdProgres", "getSpmiAkreditasiPersiapanByIdLed", "getSpmiAkreditasiPersiapanByIdSimulasi"], children: ["/v1/spmi/akreditasi-persiapan/{id}/riwayat"] }, { id: "/v1/spmi/akreditasi-persiapan/{id}/riwayat", tag: "SPMI: Akreditasi", title: "Persiapan akreditasi: riwayat perubahan", base: "/v1/spmi/akreditasi-persiapan/{id}/riwayat", list: "getSpmiAkreditasiPersiapanByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/akreditasi-persiapan" }, { id: "/v1/spmi/akreditasi/{id}/riwayat", tag: "SPMI: Akreditasi", title: "Status akreditasi: riwayat perubahan", base: "/v1/spmi/akreditasi/{id}/riwayat", list: "getSpmiAkreditasiByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/akreditasi" }, { id: "/v1/spmi/audit", tag: "SPMI: AMI", title: "Audit mutu internal", base: "/v1/spmi/audit", item: "/v1/spmi/audit/{id}", key: "id", list: "getSpmiAudit", create: "postSpmiAudit", get: "getSpmiAuditById", update: "putSpmiAuditById", del: "deleteSpmiAuditById", actions: ["getSpmiAuditByIdLengkap", "putSpmiAuditByIdStandar"], children: ["/v1/spmi/audit/{id}/auditee", "/v1/spmi/audit/{id}/riwayat"] }, { id: "/v1/spmi/audit/tugas-saya", tag: "SPMI: AMI", title: "Penugasan audit saya", base: "/v1/spmi/audit/tugas-saya", list: "getSpmiAuditTugasSaya", actions: [], children: [] }, { id: "/v1/spmi/audit/{id}/auditee", tag: "SPMI: AMI", title: "AMI", base: "/v1/spmi/audit/{id}/auditee", item: "/v1/spmi/audit/{id}/auditee/{auditee}", key: "auditee", create: "postSpmiAuditByIdAuditee", update: "putSpmiAuditByIdAuditeeByAuditee", del: "deleteSpmiAuditByIdAuditeeByAuditee", actions: [], children: [], parent: "/v1/spmi/audit" }, { id: "/v1/spmi/audit/{id}/riwayat", tag: "SPMI: AMI", title: "Audit mutu internal: riwayat perubahan", base: "/v1/spmi/audit/{id}/riwayat", list: "getSpmiAuditByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/audit" }, { id: "/v1/spmi/auditee", tag: "SPMI: AMI", title: "AMI", base: "/v1/spmi/auditee", item: "/v1/spmi/auditee/{id}", key: "id", get: "getSpmiAuditeeById", actions: ["postSpmiAuditeeByIdStatus", "postSpmiAuditeeByIdTemuanDariTilik", "getSpmiAuditeeByIdLaporan", "putSpmiAuditeeByIdLaporan", "postSpmiAuditeeByIdSetujui", "postSpmiAuditeeByIdSahkan"], children: ["/v1/spmi/auditee/{id}/tilik", "/v1/spmi/auditee/{id}/tim"] }, { id: "/v1/spmi/auditee/{id}/tilik", tag: "SPMI: AMI", title: "Tilik auditee", base: "/v1/spmi/auditee/{id}/tilik", list: "getSpmiAuditeeByIdTilik", create: "postSpmiAuditeeByIdTilik", actions: [], children: [], parent: "/v1/spmi/auditee" }, { id: "/v1/spmi/auditee/{id}/tim", tag: "SPMI: AMI", title: "AMI", base: "/v1/spmi/auditee/{id}/tim", item: "/v1/spmi/auditee/{id}/tim/{auditor}", key: "auditor", create: "postSpmiAuditeeByIdTim", del: "deleteSpmiAuditeeByIdTimByAuditor", actions: [], children: [], parent: "/v1/spmi/auditee" }, { id: "/v1/spmi/auditor", tag: "SPMI: Organisasi", title: "Auditor", base: "/v1/spmi/auditor", item: "/v1/spmi/auditor/{id}", key: "id", list: "getSpmiAuditor", create: "postSpmiAuditor", get: "getSpmiAuditorById", update: "putSpmiAuditorById", del: "deleteSpmiAuditorById", actions: [], children: ["/v1/spmi/auditor/{id}/riwayat"] }, { id: "/v1/spmi/auditor/{id}/riwayat", tag: "SPMI: Organisasi", title: "Auditor: riwayat perubahan", base: "/v1/spmi/auditor/{id}/riwayat", list: "getSpmiAuditorByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/auditor" }, { id: "/v1/spmi/capaian", tag: "SPMI: Pelaksanaan", title: "Capaian indikator", base: "/v1/spmi/capaian", item: "/v1/spmi/capaian/{id}", key: "id", list: "getSpmiCapaian", get: "getSpmiCapaianById", update: "putSpmiCapaianById", actions: ["postSpmiCapaianByIdHitung", "postSpmiCapaianByIdAjukan", "postSpmiCapaianByIdVerifikasi"], children: [] }, { id: "/v1/spmi/dokumen", tag: "SPMI: Penetapan", title: "Dokumen mutu", base: "/v1/spmi/dokumen", item: "/v1/spmi/dokumen/{id}", key: "id", list: "getSpmiDokumen", create: "postSpmiDokumen", get: "getSpmiDokumenById", update: "putSpmiDokumenById", del: "deleteSpmiDokumenById", actions: [], children: ["/v1/spmi/dokumen/{id}/riwayat"] }, { id: "/v1/spmi/dokumen/{id}/riwayat", tag: "SPMI: Penetapan", title: "Dokumen mutu: riwayat perubahan", base: "/v1/spmi/dokumen/{id}/riwayat", list: "getSpmiDokumenByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/dokumen" }, { id: "/v1/spmi/file", tag: "SPMI: File", title: "File", base: "/v1/spmi/file", item: "/v1/spmi/file/{uuid}", key: "uuid", del: "deleteSpmiFileByUuid", actions: ["getSpmiFileByUuidUnduh"], children: ["/v1/spmi/file/{entitas}/{id}"] }, { id: "/v1/spmi/file/{entitas}", tag: "SPMI: File", title: "File", base: "/v1/spmi/file/{entitas}", item: "/v1/spmi/file/{entitas}/{id}", key: "id", get: "getSpmiFileByEntitasById", actions: [], children: [] }, { id: "/v1/spmi/file/{entitas}/{id}", tag: "SPMI: File", title: "File data SPMI", base: "/v1/spmi/file/{entitas}/{id}", list: "getSpmiFileByEntitasById", create: "postSpmiFileByEntitasById", actions: [], children: [], parent: "/v1/spmi/file" }, { id: "/v1/spmi/indikator", tag: "SPMI: Penetapan", title: "Indikator", base: "/v1/spmi/indikator", item: "/v1/spmi/indikator/{id}", key: "id", list: "getSpmiIndikator", create: "postSpmiIndikator", get: "getSpmiIndikatorById", update: "putSpmiIndikatorById", del: "deleteSpmiIndikatorById", actions: [], children: ["/v1/spmi/indikator/{id}/riwayat"] }, { id: "/v1/spmi/indikator/{id}/riwayat", tag: "SPMI: Penetapan", title: "Indikator: riwayat perubahan", base: "/v1/spmi/indikator/{id}/riwayat", list: "getSpmiIndikatorByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/indikator" }, { id: "/v1/spmi/kegiatan", tag: "SPMI: Pelaksanaan", title: "Kegiatan PPEPP", base: "/v1/spmi/kegiatan", item: "/v1/spmi/kegiatan/{id}", key: "id", list: "getSpmiKegiatan", create: "postSpmiKegiatan", get: "getSpmiKegiatanById", update: "putSpmiKegiatanById", del: "deleteSpmiKegiatanById", actions: [], children: ["/v1/spmi/kegiatan/{id}/riwayat"] }, { id: "/v1/spmi/kegiatan/{id}/riwayat", tag: "SPMI: Pelaksanaan", title: "Kegiatan PPEPP: riwayat perubahan", base: "/v1/spmi/kegiatan/{id}/riwayat", list: "getSpmiKegiatanByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/kegiatan" }, { id: "/v1/spmi/lkps", tag: "SPMI: Akreditasi", title: "Tabel LKPS", base: "/v1/spmi/lkps", item: "/v1/spmi/lkps/{kode_prodi}", key: "kode_prodi", list: "getSpmiLkps", get: "getSpmiLkpsByKodeProdi", actions: [], children: [] }, { id: "/v1/spmi/notifikasi", tag: "SPMI: Umum", title: "Notifikasi saya", base: "/v1/spmi/notifikasi", list: "getSpmiNotifikasi", actions: [], children: [] }, { id: "/v1/spmi/pelaporan", tag: "SPMI: Pelaporan", title: "Pelaporan", base: "/v1/spmi/pelaporan", item: "/v1/spmi/pelaporan/{periode}", key: "periode", get: "getSpmiPelaporanByPeriode", actions: ["postSpmiPelaporanByPeriodeSiapkan"], children: [] }, { id: "/v1/spmi/pelaporan-butir", tag: "SPMI: Pelaporan", title: "Pelaporan", base: "/v1/spmi/pelaporan-butir", item: "/v1/spmi/pelaporan-butir/{id}", key: "id", update: "putSpmiPelaporanButirById", actions: [], children: [] }, { id: "/v1/spmi/periode", tag: "SPMI: Penetapan", title: "Periode", base: "/v1/spmi/periode", item: "/v1/spmi/periode/{id}", key: "id", list: "getSpmiPeriode", create: "postSpmiPeriode", get: "getSpmiPeriodeById", update: "putSpmiPeriodeById", del: "deleteSpmiPeriodeById", actions: [], children: ["/v1/spmi/periode/{id}/riwayat"] }, { id: "/v1/spmi/periode/{id}/riwayat", tag: "SPMI: Penetapan", title: "Periode: riwayat perubahan", base: "/v1/spmi/periode/{id}/riwayat", list: "getSpmiPeriodeByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/periode" }, { id: "/v1/spmi/personel", tag: "SPMI: Organisasi", title: "Personel mutu", base: "/v1/spmi/personel", item: "/v1/spmi/personel/{id}", key: "id", list: "getSpmiPersonel", create: "postSpmiPersonel", get: "getSpmiPersonelById", update: "putSpmiPersonelById", del: "deleteSpmiPersonelById", actions: [], children: ["/v1/spmi/personel/{id}/riwayat"] }, { id: "/v1/spmi/personel/{id}/riwayat", tag: "SPMI: Organisasi", title: "Personel mutu: riwayat perubahan", base: "/v1/spmi/personel/{id}/riwayat", list: "getSpmiPersonelByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/personel" }, { id: "/v1/spmi/publik/akreditasi", tag: "SPMI: Publik", title: "Status akreditasi terkini", base: "/v1/spmi/publik/akreditasi", list: "getSpmiPublikAkreditasi", actions: [], children: [] }, { id: "/v1/spmi/publik/dokumen", tag: "SPMI: Publik", title: "Dokumen mutu publik", base: "/v1/spmi/publik/dokumen", list: "getSpmiPublikDokumen", actions: [], children: [] }, { id: "/v1/spmi/publik/survei", tag: "SPMI: Publik", title: "Publik", base: "/v1/spmi/publik/survei", item: "/v1/spmi/publik/survei/{token}", key: "token", get: "getSpmiPublikSurveiByToken", actions: ["postSpmiPublikSurveiByToken"], children: [] }, { id: "/v1/spmi/risiko", tag: "SPMI: Pengendalian", title: "Risiko", base: "/v1/spmi/risiko", item: "/v1/spmi/risiko/{id}", key: "id", list: "getSpmiRisiko", create: "postSpmiRisiko", get: "getSpmiRisikoById", update: "putSpmiRisikoById", del: "deleteSpmiRisikoById", actions: [], children: ["/v1/spmi/risiko/{id}/riwayat"] }, { id: "/v1/spmi/risiko/{id}/riwayat", tag: "SPMI: Pengendalian", title: "Risiko: riwayat perubahan", base: "/v1/spmi/risiko/{id}/riwayat", list: "getSpmiRisikoByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/risiko" }, { id: "/v1/spmi/rtm", tag: "SPMI: Peningkatan", title: "Rapat tinjauan manajemen", base: "/v1/spmi/rtm", item: "/v1/spmi/rtm/{id}", key: "id", list: "getSpmiRtm", create: "postSpmiRtm", get: "getSpmiRtmById", update: "putSpmiRtmById", del: "deleteSpmiRtmById", actions: ["postSpmiRtmByIdSiapkanMasukan", "postSpmiRtmByIdSahkan", "getSpmiRtmByIdLengkap"], children: ["/v1/spmi/rtm/{id}/riwayat"] }, { id: "/v1/spmi/rtm-keputusan", tag: "SPMI: Peningkatan", title: "Keputusan RTM", base: "/v1/spmi/rtm-keputusan", item: "/v1/spmi/rtm-keputusan/{id}", key: "id", list: "getSpmiRtmKeputusan", create: "postSpmiRtmKeputusan", get: "getSpmiRtmKeputusanById", update: "putSpmiRtmKeputusanById", del: "deleteSpmiRtmKeputusanById", actions: ["postSpmiRtmKeputusanByIdTingkatkanStandar"], children: ["/v1/spmi/rtm-keputusan/{id}/riwayat"] }, { id: "/v1/spmi/rtm-keputusan/{id}/riwayat", tag: "SPMI: Peningkatan", title: "Keputusan RTM: riwayat perubahan", base: "/v1/spmi/rtm-keputusan/{id}/riwayat", list: "getSpmiRtmKeputusanByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/rtm-keputusan" }, { id: "/v1/spmi/rtm/{id}/riwayat", tag: "SPMI: Peningkatan", title: "Rapat tinjauan manajemen: riwayat perubahan", base: "/v1/spmi/rtm/{id}/riwayat", list: "getSpmiRtmByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/rtm" }, { id: "/v1/spmi/standar", tag: "SPMI: Penetapan", title: "Standar", base: "/v1/spmi/standar", item: "/v1/spmi/standar/{id}", key: "id", list: "getSpmiStandar", create: "postSpmiStandar", get: "getSpmiStandarById", update: "putSpmiStandarById", del: "deleteSpmiStandarById", actions: ["postSpmiStandarByIdBerlakukan"], children: ["/v1/spmi/standar/{id}/riwayat"] }, { id: "/v1/spmi/standar/{id}/riwayat", tag: "SPMI: Penetapan", title: "Standar: riwayat perubahan", base: "/v1/spmi/standar/{id}/riwayat", list: "getSpmiStandarByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/standar" }, { id: "/v1/spmi/survei", tag: "SPMI: Survei", title: "Survei kepuasan", base: "/v1/spmi/survei", item: "/v1/spmi/survei/{id}", key: "id", list: "getSpmiSurvei", create: "postSpmiSurvei", get: "getSpmiSurveiById", update: "putSpmiSurveiById", del: "deleteSpmiSurveiById", actions: ["getSpmiSurveiByIdFormulir", "postSpmiSurveiByIdIsi", "postSpmiSurveiByIdTerbit", "postSpmiSurveiByIdTutup", "getSpmiSurveiByIdRekap"], children: ["/v1/spmi/survei/{id}/riwayat"] }, { id: "/v1/spmi/survei-pertanyaan", tag: "SPMI: Survei", title: "Butir survei", base: "/v1/spmi/survei-pertanyaan", item: "/v1/spmi/survei-pertanyaan/{id}", key: "id", list: "getSpmiSurveiPertanyaan", create: "postSpmiSurveiPertanyaan", get: "getSpmiSurveiPertanyaanById", update: "putSpmiSurveiPertanyaanById", del: "deleteSpmiSurveiPertanyaanById", actions: [], children: ["/v1/spmi/survei-pertanyaan/{id}/riwayat"] }, { id: "/v1/spmi/survei-pertanyaan/{id}/riwayat", tag: "SPMI: Survei", title: "Butir survei: riwayat perubahan", base: "/v1/spmi/survei-pertanyaan/{id}/riwayat", list: "getSpmiSurveiPertanyaanByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/survei-pertanyaan" }, { id: "/v1/spmi/survei/saya", tag: "SPMI: Survei", title: "Survei untuk saya", base: "/v1/spmi/survei/saya", list: "getSpmiSurveiSaya", actions: [], children: [] }, { id: "/v1/spmi/survei/{id}/riwayat", tag: "SPMI: Survei", title: "Survei kepuasan: riwayat perubahan", base: "/v1/spmi/survei/{id}/riwayat", list: "getSpmiSurveiByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/survei" }, { id: "/v1/spmi/target", tag: "SPMI: Penetapan", title: "Target", base: "/v1/spmi/target", item: "/v1/spmi/target/{id}", key: "id", list: "getSpmiTarget", create: "postSpmiTarget", get: "getSpmiTargetById", update: "putSpmiTargetById", del: "deleteSpmiTargetById", actions: [], children: ["/v1/spmi/target/{id}/riwayat"] }, { id: "/v1/spmi/target/{id}/riwayat", tag: "SPMI: Penetapan", title: "Target: riwayat perubahan", base: "/v1/spmi/target/{id}/riwayat", list: "getSpmiTargetByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/target" }, { id: "/v1/spmi/temuan", tag: "SPMI: Pengendalian", title: "Temuan", base: "/v1/spmi/temuan", item: "/v1/spmi/temuan/{id}", key: "id", list: "getSpmiTemuan", create: "postSpmiTemuan", get: "getSpmiTemuanById", update: "putSpmiTemuanById", actions: ["postSpmiTemuanByIdBatal", "postSpmiTemuanByIdTutup"], children: ["/v1/spmi/temuan/{id}/tindak-lanjut"] }, { id: "/v1/spmi/temuan/{id}/tindak-lanjut", tag: "SPMI: Pengendalian", title: "Pengendalian", base: "/v1/spmi/temuan/{id}/tindak-lanjut", item: "/v1/spmi/temuan/{id}/tindak-lanjut/{tl}", key: "tl", create: "postSpmiTemuanByIdTindakLanjut", update: "putSpmiTemuanByIdTindakLanjutByTl", del: "deleteSpmiTemuanByIdTindakLanjutByTl", actions: ["postSpmiTemuanByIdTindakLanjutByTlVerifikasi"], children: [], parent: "/v1/spmi/temuan" }, { id: "/v1/spmi/tilik", tag: "SPMI: AMI", title: "AMI", base: "/v1/spmi/tilik", item: "/v1/spmi/tilik/{id}", key: "id", update: "putSpmiTilikById", del: "deleteSpmiTilikById", actions: [], children: [] }, { id: "/v1/spmi/unit", tag: "SPMI: Organisasi", title: "Unit", base: "/v1/spmi/unit", item: "/v1/spmi/unit/{id}", key: "id", list: "getSpmiUnit", create: "postSpmiUnit", get: "getSpmiUnitById", update: "putSpmiUnitById", del: "deleteSpmiUnitById", actions: [], children: ["/v1/spmi/unit/{id}/riwayat"] }, { id: "/v1/spmi/unit/{id}/riwayat", tag: "SPMI: Organisasi", title: "Unit: riwayat perubahan", base: "/v1/spmi/unit/{id}/riwayat", list: "getSpmiUnitByIdRiwayat", actions: [], children: [], parent: "/v1/spmi/unit" }];
|
|
5
|
+
var ops = { getSpmiPublikDokumen: { id: "getSpmiPublikDokumen", m: "GET", path: "/v1/spmi/publik/dokumen", tag: "SPMI: Publik", sum: "Dokumen mutu publik", ds: "Tanpa token. Kebijakan, manual, standar, dan dokumen mutu lain yang disahkan dan ditandai publik (untuk situs kampus dan tautan pelaporan SPMI).", pub: 1, pa: [{ nm: "jenis", in: "query", s: { t: "string" }, ds: "Jenis dokumen (lihat /referensi jenis_dokumen)" }], r: "list", it: "Objek" }, getSpmiPublikAkreditasi: { id: "getSpmiPublikAkreditasi", m: "GET", path: "/v1/spmi/publik/akreditasi", tag: "SPMI: Publik", sum: "Status akreditasi terkini", ds: "Tanpa token. Status akreditasi institusi dan prodi yang sedang berlaku.", pub: 1, r: "list", it: "Objek" }, getSpmiPublikSurveiByToken: { id: "getSpmiPublikSurveiByToken", m: "GET", path: "/v1/spmi/publik/survei/{token}", tag: "SPMI: Publik", sum: "Formulir survei responden luar", ds: "Tanpa token. Untuk survei bersasaran mitra, orang tua, atau umum; token ada di survei (token_publik) setelah terbit.", pub: 1, pa: [{ nm: "token", in: "path", s: { t: "string" }, rq: 1, ds: "token_publik survei" }], r: "object", it: "Objek" }, postSpmiPublikSurveiByToken: { id: "postSpmiPublikSurveiByToken", m: "POST", path: "/v1/spmi/publik/survei/{token}", tag: "SPMI: Publik", sum: "Kirim jawaban survei responden luar", ds: "Tanpa token. Body: jawaban (daftar {pertanyaan_id, nilai | teks | pilihan}), nama dan instansi opsional (tidak disimpan bila survei anonim).", pub: 1, pa: [{ nm: "token", in: "path", s: { t: "string" }, rq: 1, ds: "token_publik survei" }], b: { ct: "application/json", ref: "SpmiJawabanSurvei", s: { t: "object", pr: { jawaban: { t: "array", i: { t: "object", pr: { pertanyaan_id: { t: "integer" }, nilai: { t: "number", ds: "likert (1..skala) atau angka" }, teks: { t: "string", ds: "tipe teks" }, pilihan: { t: "array", ds: "tipe pilihan / pilihan_ganda", i: { t: "object" } } }, rq: ["pertanyaan_id"] } }, nama: { t: "string", n: 1, ds: "Hanya survei publik non-anonim" }, instansi: { t: "string", n: 1, ds: "Hanya survei publik" } }, rq: ["jawaban"] }, rq: 1 }, r: "object", it: "Objek" }, getSpmiReferensi: { id: "getSpmiReferensi", m: "GET", path: "/v1/spmi/referensi", tag: "SPMI: Umum", sum: "Pilihan nilai dan dasar regulasi", ds: "Tahap PPEPP, peran, jenis dokumen, bidang/kelompok standar, kategori temuan, status akreditasi Pasal 73, lembaga akreditasi, katalog metrik otomatis dari SIAKAD, dll.", sc: ["spmi:read"], r: "object", it: "Objek" }, getSpmiSaya: { id: "getSpmiSaya", m: "GET", path: "/v1/spmi/saya", tag: "SPMI: Umum", sum: "Peran SPMI saya", ds: "Peran per unit, status admin SPMI, ID auditor, dan unit yang datanya bisa dilihat.", sc: ["spmi:read"], r: "object", it: "Objek" }, getSpmiDasbor: { id: "getSpmiDasbor", m: "GET", path: "/v1/spmi/dasbor", tag: "SPMI: Umum", sum: "Dasbor siklus PPEPP", ds: "Ringkasan periode: status tiap tahap PPEPP, capaian standar, AMI, temuan (terlambat), RTM, survei, risiko tinggi, peringatan akreditasi, kelengkapan pelaporan. Tanpa periode_id = periode berjalan/terbaru.", sc: ["spmi:read"], pa: [{ nm: "periode_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, ds: "Periode" }, { nm: "unit_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Unit (beserta turunannya)" }], r: "object", it: "Objek" }, getSpmiTugasSaya: { id: "getSpmiTugasSaya", m: "GET", path: "/v1/spmi/tugas-saya", tag: "SPMI: Umum", sum: "Tugas SPMI saya", ds: "Capaian belum diajukan, temuan yang perlu ditindaklanjuti, penugasan audit, tindak lanjut yang perlu diverifikasi, survei yang belum diisi, butir akreditasi dan keputusan RTM yang menjadi PIC saya.", sc: ["spmi:read"], r: "object", it: "Objek" }, getSpmiNotifikasi: { id: "getSpmiNotifikasi", m: "GET", path: "/v1/spmi/notifikasi", tag: "SPMI: Umum", sum: "Notifikasi saya", sc: ["spmi:read"], pa: [{ nm: "belum_dibaca", in: "query", s: { t: "string" }, ds: "1 = hanya yang belum dibaca" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }], r: "list", it: "Objek" }, postSpmiNotifikasiBaca: { id: "postSpmiNotifikasiBaca", m: "POST", path: "/v1/spmi/notifikasi/baca", tag: "SPMI: Umum", sum: "Tandai semua notifikasi dibaca", sc: ["spmi:read"], r: "object", it: "Objek" }, postSpmiNotifikasiByIdBaca: { id: "postSpmiNotifikasiByIdBaca", m: "POST", path: "/v1/spmi/notifikasi/{id}/baca", tag: "SPMI: Umum", sum: "Tandai satu notifikasi dibaca", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID notifikasi" }], r: "object", it: "Objek" }, postSpmiUnitSinkronSiakad: { id: "postSpmiUnitSinkronSiakad", m: "POST", path: "/v1/spmi/unit/sinkron-siakad", tag: "SPMI: Organisasi", sum: "Buat unit dari data SIAKAD", ds: "Admin SPMI. Membuat unit universitas, LPM, fakultas (m_fakultas), dan prodi (m_program_studi) yang belum ada; dekan dan kaprodi yang punya akun menjadi personel peran pimpinan. Aman diulang.", sc: ["spmi:write"], r: "object", it: "Objek" }, getSpmiMetrikByKodeUji: { id: "getSpmiMetrikByKodeUji", m: "GET", path: "/v1/spmi/metrik/{kode}/uji", tag: "SPMI: Penetapan", sum: "Uji metrik otomatis", ds: "Hitung metrik dari data SIAKAD untuk unit dan periode tanpa menyimpan (lihat katalog di /referensi metrik).", sc: ["spmi:read"], pa: [{ nm: "kode", in: "path", s: { t: "string" }, rq: 1, ds: "Kode metrik" }, { nm: "periode_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, rq: 1, ds: "Periode" }, { nm: "unit_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, rq: 1, ds: "Unit" }, { nm: "indikator_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } }, ds: "Untuk metrik survei_kepuasan" }], r: "object", it: "Objek" }, postSpmiStandarByIdBerlakukan: { id: "postSpmiStandarByIdBerlakukan", m: "POST", path: "/v1/spmi/standar/{id}/berlakukan", tag: "SPMI: Penetapan", sum: "Berlakukan standar", ds: "Admin SPMI. Draf \u2192 berlaku (wajib punya indikator aktif). Versi yang digantikan (menggantikan_id) otomatis dicabut. Body opsional: berlaku_mulai.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, rq: 1, ds: "ID standar" }], r: "object", it: "SpmiStandar" }, getSpmiCapaian: { id: "getSpmiCapaian", m: "GET", path: "/v1/spmi/capaian", tag: "SPMI: Pelaksanaan", sum: "Daftar capaian indikator", ds: "Capaian indikator per unit per periode beserta target, nilai, nilai otomatis dari SIAKAD, pemenuhan, dan status verifikasi. Hanya unit yang terlihat oleh Anda.", sc: ["spmi:read"], pa: [{ nm: "periode_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, ds: "Periode" }, { nm: "unit_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Unit" }, { nm: "standar_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, ds: "Standar" }, { nm: "indikator_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } }, ds: "Indikator" }, { nm: "bidang", in: "query", s: { t: "string" }, ds: "Bidang standar" }, { nm: "status", in: "query", s: { t: "string" }, ds: "draf | diajukan | diverifikasi | dikembalikan" }, { nm: "pemenuhan", in: "query", s: { t: "string" }, ds: "belum | tercapai | melampaui | tidak_tercapai" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }], r: "list", it: "SpmiCapaian" }, getSpmiCapaianRekap: { id: "getSpmiCapaianRekap", m: "GET", path: "/v1/spmi/capaian/rekap", tag: "SPMI: Pelaksanaan", sum: "Rekap pemenuhan standar", ds: "Persentase indikator terpenuhi dan terisi: total, per bidang, per standar, per unit.", sc: ["spmi:read"], pa: [{ nm: "periode_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, rq: 1, ds: "Periode" }, { nm: "unit_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Unit" }, { nm: "bidang", in: "query", s: { t: "string" }, ds: "Bidang" }], r: "object", it: "Objek" }, postSpmiCapaianSiapkan: { id: "postSpmiCapaianSiapkan", m: "POST", path: "/v1/spmi/capaian/siapkan", tag: "SPMI: Pelaksanaan", sum: "Siapkan baris capaian", ds: "Buat baris capaian untuk indikator aktif dari standar berlaku yang lingkupnya cocok dengan unit. Body: periode_id, unit_id (kosong = semua unit, admin SPMI). Target diambil dari /target.", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiPeriodeUnit", s: { t: "object", pr: { periode_id: { t: "integer", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "Kosong = semua unit (untuk siapkan/hitung)", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } } }, rq: ["periode_id"] }, rq: 1 }, r: "object", it: "Objek" }, postSpmiCapaianHitung: { id: "postSpmiCapaianHitung", m: "POST", path: "/v1/spmi/capaian/hitung", tag: "SPMI: Pelaksanaan", sum: "Hitung capaian otomatis dari SIAKAD", ds: "Isi nilai_otomatis untuk indikator bermetrik. Nilai dan pemenuhan ikut terisi bila capaian belum diisi manual. Body: periode_id, unit_id (kosong = semua, admin SPMI).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiPeriodeUnit", s: { t: "object", pr: { periode_id: { t: "integer", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "Kosong = semua unit (untuk siapkan/hitung)", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } } }, rq: ["periode_id"] }, rq: 1 }, r: "object", it: "Objek" }, postSpmiCapaianAjukan: { id: "postSpmiCapaianAjukan", m: "POST", path: "/v1/spmi/capaian/ajukan", tag: "SPMI: Pelaksanaan", sum: "Ajukan semua capaian unit", ds: "Semua capaian unit pada periode yang sudah berisi nilai diajukan untuk verifikasi.", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiPeriodeUnit", s: { t: "object", pr: { periode_id: { t: "integer", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "Kosong = semua unit (untuk siapkan/hitung)", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } } }, rq: ["periode_id"] }, rq: 1 }, r: "object", it: "Objek" }, getSpmiCapaianById: { id: "getSpmiCapaianById", m: "GET", path: "/v1/spmi/capaian/{id}", tag: "SPMI: Pelaksanaan", sum: "Detail capaian", ds: "Termasuk rincian hitungan metrik dan riwayat.", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/capaian", k: "id", d: "/v1/spmi/capaian/{id}" } }, rq: 1, ds: "ID capaian" }], r: "object", it: "SpmiCapaian" }, putSpmiCapaianById: { id: "putSpmiCapaianById", m: "PUT", path: "/v1/spmi/capaian/{id}", tag: "SPMI: Pelaksanaan", sum: "Isi capaian", ds: "Oleh pengelola/pimpinan/pic unit selama draf/dikembalikan. Pemenuhan dihitung dari nilai dan target (melampaui = lebih baik >= 10%); untuk indikator teks/ya_tidak boleh diisi.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/capaian", k: "id", d: "/v1/spmi/capaian/{id}" } }, rq: 1, ds: "ID capaian" }], b: { ct: "application/json", ref: "SpmiCapaianIsi", s: { t: "object", pr: { nilai: { t: "number", n: 1, ds: "Untuk indikator angka/persen/rasio; pemenuhan dihitung dari target" }, nilai_teks: { t: "string", n: 1, max: 255 }, pemenuhan: { t: "string", e: ["belum", "tercapai", "melampaui", "tidak_tercapai"], ds: "Hanya untuk indikator teks/ya_tidak atau tanpa target" }, analisis: { t: "string", n: 1 }, kendala: { t: "string", n: 1 }, rencana_perbaikan: { t: "string", n: 1 }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 } } }, rq: 1 }, r: "object", it: "SpmiCapaian" }, postSpmiCapaianByIdHitung: { id: "postSpmiCapaianByIdHitung", m: "POST", path: "/v1/spmi/capaian/{id}/hitung", tag: "SPMI: Pelaksanaan", sum: "Hitung ulang satu capaian otomatis", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/capaian", k: "id", d: "/v1/spmi/capaian/{id}" } }, rq: 1, ds: "ID capaian" }], r: "object", it: "SpmiCapaian" }, postSpmiCapaianByIdAjukan: { id: "postSpmiCapaianByIdAjukan", m: "POST", path: "/v1/spmi/capaian/{id}/ajukan", tag: "SPMI: Pelaksanaan", sum: "Ajukan capaian", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/capaian", k: "id", d: "/v1/spmi/capaian/{id}" } }, rq: 1, ds: "ID capaian" }], r: "object", it: "SpmiCapaian" }, postSpmiCapaianByIdVerifikasi: { id: "postSpmiCapaianByIdVerifikasi", m: "POST", path: "/v1/spmi/capaian/{id}/verifikasi", tag: "SPMI: Pelaksanaan", sum: "Verifikasi capaian", ds: "Oleh LPM, pimpinan unit, atau pengelola/pimpinan unit induk. Body: setuju (bool), catatan (wajib bila dikembalikan).", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/capaian", k: "id", d: "/v1/spmi/capaian/{id}" } }, rq: 1, ds: "ID capaian" }], b: { ct: "application/json", ref: "SpmiVerifikasi", s: { t: "object", pr: { setuju: { t: "boolean" }, catatan: { t: "string", n: 1, ds: "Wajib bila dikembalikan" } }, rq: ["setuju"] }, rq: 1 }, r: "object", it: "SpmiCapaian" }, getSpmiAuditByIdLengkap: { id: "getSpmiAuditByIdLengkap", m: "GET", path: "/v1/spmi/audit/{id}/lengkap", tag: "SPMI: AMI", sum: "Detail audit lengkap", ds: "Audit beserta standar yang diaudit, auditee, tim auditor, dan progres.", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/audit", k: "id", d: "/v1/spmi/audit/{id}" } }, rq: 1, ds: "ID audit" }], r: "object", it: "Objek" }, getSpmiAuditTugasSaya: { id: "getSpmiAuditTugasSaya", m: "GET", path: "/v1/spmi/audit/tugas-saya", tag: "SPMI: AMI", sum: "Penugasan audit saya", ds: "Auditee tempat saya menjadi ketua/anggota tim auditor.", sc: ["spmi:read"], r: "list", it: "Objek" }, putSpmiAuditByIdStandar: { id: "putSpmiAuditByIdStandar", m: "PUT", path: "/v1/spmi/audit/{id}/standar", tag: "SPMI: AMI", sum: "Atur lingkup standar audit", ds: "Admin SPMI. Body: standar_id (daftar ID). Menggantikan lingkup sebelumnya.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/audit", k: "id", d: "/v1/spmi/audit/{id}" } }, rq: 1, ds: "ID audit" }], b: { ct: "application/json", ref: "Objek", s: { t: "object", ds: "Baris data dengan nama kolom huruf kecil sesuai tabel SIAKAD." }, rq: 1 }, r: "object", it: "Objek" }, postSpmiAuditByIdAuditee: { id: "postSpmiAuditByIdAuditee", m: "POST", path: "/v1/spmi/audit/{id}/auditee", tag: "SPMI: AMI", sum: "Tambah auditee", ds: "Admin SPMI. Body: unit_id, jadwal_desk, jadwal_visitasi, tempat. Pengelola dan pimpinan unit diberi notifikasi.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/audit", k: "id", d: "/v1/spmi/audit/{id}" } }, rq: 1, ds: "ID audit" }], b: { ct: "application/json", ref: "SpmiAuditeeInput", s: { t: "object", pr: { unit_id: { t: "integer", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, jadwal_desk: { t: "string", n: 1, f: "date" }, jadwal_visitasi: { t: "string", n: 1, ds: "YYYY-MM-DD HH:MM:SS" }, tempat: { t: "string", n: 1, max: 255 } }, rq: ["unit_id"] }, rq: 1 }, r: "object", it: "SpmiAuditee" }, putSpmiAuditByIdAuditeeByAuditee: { id: "putSpmiAuditByIdAuditeeByAuditee", m: "PUT", path: "/v1/spmi/audit/{id}/auditee/{auditee}", tag: "SPMI: AMI", sum: "Ubah jadwal auditee", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/audit", k: "id", d: "/v1/spmi/audit/{id}" } }, rq: 1, ds: "ID audit" }, { nm: "auditee", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }], b: { ct: "application/json", ref: "SpmiAuditeeInput", s: { t: "object", pr: { unit_id: { t: "integer", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, jadwal_desk: { t: "string", n: 1, f: "date" }, jadwal_visitasi: { t: "string", n: 1, ds: "YYYY-MM-DD HH:MM:SS" }, tempat: { t: "string", n: 1, max: 255 } }, rq: ["unit_id"] }, rq: 1 }, r: "object", it: "SpmiAuditee" }, deleteSpmiAuditByIdAuditeeByAuditee: { id: "deleteSpmiAuditByIdAuditeeByAuditee", m: "DELETE", path: "/v1/spmi/audit/{id}/auditee/{auditee}", tag: "SPMI: AMI", sum: "Hapus auditee", ds: "Ditolak bila sudah dinilai/punya temuan.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/audit", k: "id", d: "/v1/spmi/audit/{id}" } }, rq: 1, ds: "ID audit" }, { nm: "auditee", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }], r: "none" }, getSpmiAuditeeById: { id: "getSpmiAuditeeById", m: "GET", path: "/v1/spmi/auditee/{id}", tag: "SPMI: AMI", sum: "Detail auditee", ds: "Termasuk tim auditor, peran saya, dan progres daftar tilik.", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }], r: "object", it: "SpmiAuditee" }, postSpmiAuditeeByIdStatus: { id: "postSpmiAuditeeByIdStatus", m: "POST", path: "/v1/spmi/auditee/{id}/status", tag: "SPMI: AMI", sum: "Ubah tahap audit auditee", ds: "Admin atau ketua tim: dijadwalkan \u2192 evaluasi_diri \u2192 desk \u2192 visitasi \u2192 pelaporan. Body: status.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }], b: { ct: "application/json", ref: "Objek", s: { t: "object", ds: "Baris data dengan nama kolom huruf kecil sesuai tabel SIAKAD." }, rq: 1 }, r: "object", it: "SpmiAuditee" }, postSpmiAuditeeByIdTim: { id: "postSpmiAuditeeByIdTim", m: "POST", path: "/v1/spmi/auditee/{id}/tim", tag: "SPMI: AMI", sum: "Tugaskan auditor", ds: "Admin SPMI. Body: auditor_id, peran (ketua|anggota). Ditolak bila auditor berasal dari unit yang diaudit/induk/turunannya atau menjadi personel mutunya (independensi).", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }], b: { ct: "application/json", ref: "Objek", s: { t: "object", ds: "Baris data dengan nama kolom huruf kecil sesuai tabel SIAKAD." }, rq: 1 }, r: "object", it: "SpmiAuditee" }, deleteSpmiAuditeeByIdTimByAuditor: { id: "deleteSpmiAuditeeByIdTimByAuditor", m: "DELETE", path: "/v1/spmi/auditee/{id}/tim/{auditor}", tag: "SPMI: AMI", sum: "Lepas auditor", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }, { nm: "auditor", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditor" }], r: "none" }, getSpmiAuditeeByIdTilik: { id: "getSpmiAuditeeByIdTilik", m: "GET", path: "/v1/spmi/auditee/{id}/tilik", tag: "SPMI: AMI", sum: "Daftar tilik auditee", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }], r: "list", it: "SpmiTilik" }, postSpmiAuditeeByIdTilik: { id: "postSpmiAuditeeByIdTilik", m: "POST", path: "/v1/spmi/auditee/{id}/tilik", tag: "SPMI: AMI", sum: "Tambah butir tilik", ds: "Auditor tim. Body: pertanyaan, standar_id, indikator_id, urut.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }], b: { ct: "application/json", ref: "Objek", s: { t: "object", ds: "Baris data dengan nama kolom huruf kecil sesuai tabel SIAKAD." }, rq: 1 }, r: "object", it: "SpmiTilik" }, postSpmiAuditeeByIdTilikSiapkan: { id: "postSpmiAuditeeByIdTilikSiapkan", m: "POST", path: "/v1/spmi/auditee/{id}/tilik/siapkan", tag: "SPMI: AMI", sum: "Buat daftar tilik dari standar", ds: "Admin/ketua tim. Satu butir per indikator aktif standar lingkup audit yang cocok dengan jenis unit, beserta capaian unit pada periode audit.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }], r: "object", it: "Objek" }, postSpmiAuditeeByIdTemuanDariTilik: { id: "postSpmiAuditeeByIdTemuanDariTilik", m: "POST", path: "/v1/spmi/auditee/{id}/temuan-dari-tilik", tag: "SPMI: AMI", sum: "Buat temuan dari daftar tilik", ds: 'Auditor tim. Butir ber-hasil kts_mayor/kts_minor/observasi menjadi temuan (batas waktu 30/60 hari). praktik_baik=true juga membuat temuan praktik baik dari butir "melampaui".', sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }, { nm: "praktik_baik", in: "query", s: { t: "string" }, ds: "1 = sertakan praktik baik" }], r: "object", it: "Objek" }, getSpmiAuditeeByIdLaporan: { id: "getSpmiAuditeeByIdLaporan", m: "GET", path: "/v1/spmi/auditee/{id}/laporan", tag: "SPMI: AMI", sum: "Laporan AMI auditee", ds: "Auditee, audit, rekap hasil tilik, daftar tilik, temuan.", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }], r: "object", it: "Objek" }, putSpmiAuditeeByIdLaporan: { id: "putSpmiAuditeeByIdLaporan", m: "PUT", path: "/v1/spmi/auditee/{id}/laporan", tag: "SPMI: AMI", sum: "Isi ringkasan laporan", ds: "Ketua tim. Body: kekuatan, peluang_peningkatan, kesimpulan.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }], b: { ct: "application/json", ref: "Objek", s: { t: "object", ds: "Baris data dengan nama kolom huruf kecil sesuai tabel SIAKAD." }, rq: 1 }, r: "object", it: "SpmiAuditee" }, postSpmiAuditeeByIdSetujui: { id: "postSpmiAuditeeByIdSetujui", m: "POST", path: "/v1/spmi/auditee/{id}/setujui", tag: "SPMI: AMI", sum: "Auditee menyetujui laporan", ds: "Pimpinan/pengelola unit. Body: tanggapan.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }], b: { ct: "application/json", ref: "Objek", s: { t: "object", ds: "Baris data dengan nama kolom huruf kecil sesuai tabel SIAKAD." }, rq: 1 }, r: "object", it: "SpmiAuditee" }, postSpmiAuditeeByIdSahkan: { id: "postSpmiAuditeeByIdSahkan", m: "POST", path: "/v1/spmi/auditee/{id}/sahkan", tag: "SPMI: AMI", sum: "LPM mengesahkan laporan", ds: "Status selesai; audit selesai bila semua auditee selesai.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID auditee" }], r: "object", it: "SpmiAuditee" }, putSpmiTilikById: { id: "putSpmiTilikById", m: "PUT", path: "/v1/spmi/tilik/{id}", tag: "SPMI: AMI", sum: "Isi butir tilik", ds: "Unit yang diaudit: jawaban_auditee, tautan_bukti, capaian. Auditor tim: skor (0-4), hasil, catatan_auditor, pertanyaan. Terkunci setelah laporan disetujui.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID butir tilik" }], b: { ct: "application/json", ref: "SpmiTilikIsi", s: { t: "object", ds: "Kolom auditee diisi unit yang diaudit, kolom auditor diisi tim auditor yang ditugaskan.", pr: { jawaban_auditee: { t: "string", n: 1, ds: "Unit yang diaudit" }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 }, capaian: { t: "number", n: 1, ds: "Unit yang diaudit" }, skor: { t: "integer", min: 0, mx: 4, ds: "Auditor" }, hasil: { t: "string", e: ["belum", "melampaui", "sesuai", "observasi", "kts_minor", "kts_mayor"], ds: "Auditor" }, catatan_auditor: { t: "string", n: 1, ds: "Auditor" }, pertanyaan: { t: "string", n: 1, ds: "Auditor" } } }, rq: 1 }, r: "object", it: "SpmiTilik" }, deleteSpmiTilikById: { id: "deleteSpmiTilikById", m: "DELETE", path: "/v1/spmi/tilik/{id}", tag: "SPMI: AMI", sum: "Hapus butir tilik", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID butir tilik" }], r: "none" }, getSpmiTemuan: { id: "getSpmiTemuan", m: "GET", path: "/v1/spmi/temuan", tag: "SPMI: Pengendalian", sum: "Daftar temuan", ds: "Temuan unit yang terlihat, temuan auditee yang saya audit, dan temuan dengan PIC saya.", sc: ["spmi:read"], pa: [{ nm: "periode_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, ds: "Periode" }, { nm: "unit_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Unit" }, { nm: "kategori", in: "query", s: { t: "string" }, ds: "kts_mayor | kts_minor | observasi | peluang_peningkatan | praktik_baik" }, { nm: "status", in: "query", s: { t: "string" }, ds: "terbuka | rencana | proses | verifikasi | ditutup | dibatalkan" }, { nm: "sumber", in: "query", s: { t: "string" }, ds: "ami | pemantauan | survei | rtm | eksternal | lainnya" }, { nm: "audit_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/audit", k: "id", d: "/v1/spmi/audit/{id}" } }, ds: "Audit" }, { nm: "auditee_id", in: "query", s: { t: "integer" }, ds: "Auditee" }, { nm: "standar_id", in: "query", s: { t: "integer", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, ds: "Standar" }, { nm: "terlambat", in: "query", s: { t: "string" }, ds: "1 = lewat batas waktu" }, { nm: "saya", in: "query", s: { t: "string" }, ds: "1 = PIC saya" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }], r: "list", it: "SpmiTemuan" }, postSpmiTemuan: { id: "postSpmiTemuan", m: "POST", path: "/v1/spmi/temuan", tag: "SPMI: Pengendalian", sum: "Catat temuan", ds: "AMI: auditor tim (auditee_id). Sumber lain: LPM atau pengelola mutu unit. Kode otomatis TM-<tahun>-<urut>. PIC dan pengelola unit diberi notifikasi.", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiTemuanInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { periode_id: { t: "integer", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, sumber: { t: "string", e: ["ami", "pemantauan", "survei", "rtm", "eksternal", "lainnya"] }, auditee_id: { t: "integer", n: 1 }, daftar_tilik_id: { t: "integer", n: 1 }, standar_id: { t: "integer", n: 1, rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, indikator_id: { t: "integer", n: 1, rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } }, kategori: { t: "string", e: ["kts_mayor", "kts_minor", "observasi", "peluang_peningkatan", "praktik_baik"] }, uraian: { t: "string" }, kriteria: { t: "string", n: 1 }, akar_masalah: { t: "string", n: 1 }, akibat: { t: "string", n: 1 }, rekomendasi: { t: "string", n: 1 }, pic_username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, batas_waktu: { t: "string", n: 1, f: "date" } }, rq: ["periode_id", "unit_id", "kategori", "uraian"] }, rq: 1 }, r: "object", it: "SpmiTemuan" }, getSpmiTemuanById: { id: "getSpmiTemuanById", m: "GET", path: "/v1/spmi/temuan/{id}", tag: "SPMI: Pengendalian", sum: "Detail temuan", ds: "Termasuk tindak lanjut dan riwayat.", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/temuan", k: "id", d: "/v1/spmi/temuan/{id}" } }, rq: 1, ds: "ID temuan" }], r: "object", it: "SpmiTemuan" }, putSpmiTemuanById: { id: "putSpmiTemuanById", m: "PUT", path: "/v1/spmi/temuan/{id}", tag: "SPMI: Pengendalian", sum: "Ubah temuan", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/temuan", k: "id", d: "/v1/spmi/temuan/{id}" } }, rq: 1, ds: "ID temuan" }], b: { ct: "application/json", ref: "SpmiTemuanInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { periode_id: { t: "integer", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, sumber: { t: "string", e: ["ami", "pemantauan", "survei", "rtm", "eksternal", "lainnya"] }, auditee_id: { t: "integer", n: 1 }, daftar_tilik_id: { t: "integer", n: 1 }, standar_id: { t: "integer", n: 1, rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, indikator_id: { t: "integer", n: 1, rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } }, kategori: { t: "string", e: ["kts_mayor", "kts_minor", "observasi", "peluang_peningkatan", "praktik_baik"] }, uraian: { t: "string" }, kriteria: { t: "string", n: 1 }, akar_masalah: { t: "string", n: 1 }, akibat: { t: "string", n: 1 }, rekomendasi: { t: "string", n: 1 }, pic_username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, batas_waktu: { t: "string", n: 1, f: "date" } }, rq: ["periode_id", "unit_id", "kategori", "uraian"] }, rq: 1 }, r: "object", it: "SpmiTemuan" }, postSpmiTemuanByIdBatal: { id: "postSpmiTemuanByIdBatal", m: "POST", path: "/v1/spmi/temuan/{id}/batal", tag: "SPMI: Pengendalian", sum: "Batalkan temuan", ds: "Admin SPMI. Body: alasan.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/temuan", k: "id", d: "/v1/spmi/temuan/{id}" } }, rq: 1, ds: "ID temuan" }], b: { ct: "application/json", ref: "Objek", s: { t: "object", ds: "Baris data dengan nama kolom huruf kecil sesuai tabel SIAKAD." }, rq: 1 }, r: "object", it: "SpmiTemuan" }, postSpmiTemuanByIdTutup: { id: "postSpmiTemuanByIdTutup", m: "POST", path: "/v1/spmi/temuan/{id}/tutup", tag: "SPMI: Pengendalian", sum: "Tutup temuan", ds: "Auditor auditee atau LPM. KTS hanya bisa ditutup setelah semua tindak lanjut diterima (otomatis tertutup saat TL terakhir diterima). Body: catatan.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/temuan", k: "id", d: "/v1/spmi/temuan/{id}" } }, rq: 1, ds: "ID temuan" }], b: { ct: "application/json", ref: "Objek", s: { t: "object", ds: "Baris data dengan nama kolom huruf kecil sesuai tabel SIAKAD." }, rq: 1 }, r: "object", it: "SpmiTemuan" }, postSpmiTemuanByIdTindakLanjut: { id: "postSpmiTemuanByIdTindakLanjut", m: "POST", path: "/v1/spmi/temuan/{id}/tindak-lanjut", tag: "SPMI: Pengendalian", sum: "Tambah tindak lanjut (PTK)", ds: "Pengelola/pic unit atau PIC temuan. Body: jenis (koreksi|korektif|pencegahan|peningkatan), rencana, penanggung_jawab, target_tanggal.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/temuan", k: "id", d: "/v1/spmi/temuan/{id}" } }, rq: 1, ds: "ID temuan" }], b: { ct: "application/json", ref: "SpmiTindakLanjutInput", s: { t: "object", pr: { jenis: { t: "string", e: ["koreksi", "korektif", "pencegahan", "peningkatan"] }, rencana: { t: "string" }, penanggung_jawab: { t: "string", n: 1 }, target_tanggal: { t: "string", n: 1, f: "date" }, realisasi: { t: "string", n: 1 }, tanggal_realisasi: { t: "string", n: 1, f: "date" }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 }, status: { t: "string", e: ["rencana", "proses", "selesai"], ds: "diterima/ditolak hanya lewat verifikasi auditor" } }, rq: ["rencana"] }, rq: 1 }, r: "object", it: "SpmiTemuan" }, putSpmiTemuanByIdTindakLanjutByTl: { id: "putSpmiTemuanByIdTindakLanjutByTl", m: "PUT", path: "/v1/spmi/temuan/{id}/tindak-lanjut/{tl}", tag: "SPMI: Pengendalian", sum: "Perbarui tindak lanjut", ds: "Isi realisasi, tanggal_realisasi, tautan_bukti, status (rencana|proses|selesai). Status selesai mengirim notifikasi ke auditor untuk verifikasi.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/temuan", k: "id", d: "/v1/spmi/temuan/{id}" } }, rq: 1, ds: "ID temuan" }, { nm: "tl", in: "path", s: { t: "string" }, rq: 1, ds: "ID tindak lanjut" }], b: { ct: "application/json", ref: "SpmiTindakLanjutInput", s: { t: "object", pr: { jenis: { t: "string", e: ["koreksi", "korektif", "pencegahan", "peningkatan"] }, rencana: { t: "string" }, penanggung_jawab: { t: "string", n: 1 }, target_tanggal: { t: "string", n: 1, f: "date" }, realisasi: { t: "string", n: 1 }, tanggal_realisasi: { t: "string", n: 1, f: "date" }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 }, status: { t: "string", e: ["rencana", "proses", "selesai"], ds: "diterima/ditolak hanya lewat verifikasi auditor" } }, rq: ["rencana"] }, rq: 1 }, r: "object", it: "SpmiTemuan" }, deleteSpmiTemuanByIdTindakLanjutByTl: { id: "deleteSpmiTemuanByIdTindakLanjutByTl", m: "DELETE", path: "/v1/spmi/temuan/{id}/tindak-lanjut/{tl}", tag: "SPMI: Pengendalian", sum: "Hapus tindak lanjut", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/temuan", k: "id", d: "/v1/spmi/temuan/{id}" } }, rq: 1, ds: "ID temuan" }, { nm: "tl", in: "path", s: { t: "string" }, rq: 1, ds: "ID tindak lanjut" }], r: "none" }, postSpmiTemuanByIdTindakLanjutByTlVerifikasi: { id: "postSpmiTemuanByIdTindakLanjutByTlVerifikasi", m: "POST", path: "/v1/spmi/temuan/{id}/tindak-lanjut/{tl}/verifikasi", tag: "SPMI: Pengendalian", sum: "Verifikasi tindak lanjut", ds: "Auditor auditee atau LPM. Body: terima (bool), catatan (wajib bila ditolak).", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/temuan", k: "id", d: "/v1/spmi/temuan/{id}" } }, rq: 1, ds: "ID temuan" }, { nm: "tl", in: "path", s: { t: "string" }, rq: 1, ds: "ID tindak lanjut" }], b: { ct: "application/json", ref: "Objek", s: { t: "object", ds: "Baris data dengan nama kolom huruf kecil sesuai tabel SIAKAD." }, rq: 1 }, r: "object", it: "SpmiTemuan" }, postSpmiRtmByIdSiapkanMasukan: { id: "postSpmiRtmByIdSiapkanMasukan", m: "POST", path: "/v1/spmi/rtm/{id}/siapkan-masukan", tag: "SPMI: Peningkatan", sum: "Siapkan bahan RTM", ds: "Rangkum capaian standar, hasil AMI, temuan, tindak lanjut, survei kepuasan, risiko utama, dan keputusan RTM lalu yang belum selesai ke kolom masukan.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/rtm", k: "id", d: "/v1/spmi/rtm/{id}" } }, rq: 1, ds: "ID RTM" }], r: "object", it: "Objek" }, postSpmiRtmByIdSahkan: { id: "postSpmiRtmByIdSahkan", m: "POST", path: "/v1/spmi/rtm/{id}/sahkan", tag: "SPMI: Peningkatan", sum: "Sahkan RTM", ds: "Pimpinan unit atau LPM; status harus terlaksana. PIC keputusan diberi notifikasi.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/rtm", k: "id", d: "/v1/spmi/rtm/{id}" } }, rq: 1, ds: "ID RTM" }], r: "object", it: "Objek" }, getSpmiRtmByIdLengkap: { id: "getSpmiRtmByIdLengkap", m: "GET", path: "/v1/spmi/rtm/{id}/lengkap", tag: "SPMI: Peningkatan", sum: "RTM beserta keputusan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/rtm", k: "id", d: "/v1/spmi/rtm/{id}" } }, rq: 1, ds: "ID RTM" }], r: "object", it: "Objek" }, postSpmiRtmKeputusanByIdTingkatkanStandar: { id: "postSpmiRtmKeputusanByIdTingkatkanStandar", m: "POST", path: "/v1/spmi/rtm-keputusan/{id}/tingkatkan-standar", tag: "SPMI: Peningkatan", sum: "Buat standar versi baru dari keputusan RTM", ds: "Admin SPMI. Menyalin standar (dan indikatornya) pada keputusan menjadi versi baru berstatus draf. Body: versi (wajib) dan kolom standar yang diubah. Berlakukan lewat POST /standar/{id}/berlakukan.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/rtm-keputusan", k: "id", d: "/v1/spmi/rtm-keputusan/{id}" } }, rq: 1, ds: "ID keputusan RTM" }], b: { ct: "application/json", ref: "Objek", s: { t: "object", ds: "Baris data dengan nama kolom huruf kecil sesuai tabel SIAKAD." }, rq: 1 }, r: "object", it: "SpmiStandar" }, getSpmiSurveiSaya: { id: "getSpmiSurveiSaya", m: "GET", path: "/v1/spmi/survei/saya", tag: "SPMI: Survei", sum: "Survei untuk saya", ds: "Survei terbit yang sedang dibuka sesuai jenis saya (mahasiswa, dosen, tendik) dan prodi, dengan tanda sudah_mengisi.", sc: ["spmi:respond"], r: "list", it: "Objek" }, getSpmiSurveiEdom: { id: "getSpmiSurveiEdom", m: "GET", path: "/v1/spmi/survei/edom", tag: "SPMI: Survei", sum: "Rekap kuisioner layanan dosen lama", ds: "Hanya baca m_kuisioner + m_jawab_kuisioner per semester (A=5 ... E=1).", sc: ["spmi:read"], pa: [{ nm: "tahun_id", in: "query", s: { t: "string", rf: { l: "/v1/referensi/tahun-akademik", k: "tahun_id", q: 0 } }, rq: 1, ds: "Semester, mis. 20251" }, { nm: "kode_prodi", in: "query", s: { t: "string", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, ds: "Prodi" }], r: "object", it: "Objek" }, getSpmiSurveiByIdFormulir: { id: "getSpmiSurveiByIdFormulir", m: "GET", path: "/v1/spmi/survei/{id}/formulir", tag: "SPMI: Survei", sum: "Formulir survei", ds: "Butir survei dan jawaban saya sebelumnya.", sc: ["spmi:respond"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei", k: "id", d: "/v1/spmi/survei/{id}" } }, rq: 1, ds: "ID survei" }], r: "object", it: "Objek" }, postSpmiSurveiByIdIsi: { id: "postSpmiSurveiByIdIsi", m: "POST", path: "/v1/spmi/survei/{id}/isi", tag: "SPMI: Survei", sum: "Kirim jawaban survei", ds: "Satu respons per pengguna; mengirim ulang selama survei dibuka mengganti jawaban. Survei anonim tidak menyimpan username.", sc: ["spmi:respond"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei", k: "id", d: "/v1/spmi/survei/{id}" } }, rq: 1, ds: "ID survei" }], b: { ct: "application/json", ref: "SpmiJawabanSurvei", s: { t: "object", pr: { jawaban: { t: "array", i: { t: "object", pr: { pertanyaan_id: { t: "integer" }, nilai: { t: "number", ds: "likert (1..skala) atau angka" }, teks: { t: "string", ds: "tipe teks" }, pilihan: { t: "array", ds: "tipe pilihan / pilihan_ganda", i: { t: "object" } } }, rq: ["pertanyaan_id"] } }, nama: { t: "string", n: 1, ds: "Hanya survei publik non-anonim" }, instansi: { t: "string", n: 1, ds: "Hanya survei publik" } }, rq: ["jawaban"] }, rq: 1 }, r: "object", it: "Objek" }, postSpmiSurveiByIdTerbit: { id: "postSpmiSurveiByIdTerbit", m: "POST", path: "/v1/spmi/survei/{id}/terbit", tag: "SPMI: Survei", sum: "Terbitkan survei", ds: "Pengelola unit survei / LPM. Sasaran luar mendapat token_publik.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei", k: "id", d: "/v1/spmi/survei/{id}" } }, rq: 1, ds: "ID survei" }], r: "object", it: "SpmiSurvei" }, postSpmiSurveiByIdTutup: { id: "postSpmiSurveiByIdTutup", m: "POST", path: "/v1/spmi/survei/{id}/tutup", tag: "SPMI: Survei", sum: "Tutup survei", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei", k: "id", d: "/v1/spmi/survei/{id}" } }, rq: 1, ds: "ID survei" }], r: "object", it: "SpmiSurvei" }, getSpmiSurveiByIdRekap: { id: "getSpmiSurveiByIdRekap", m: "GET", path: "/v1/spmi/survei/{id}/rekap", tag: "SPMI: Survei", sum: "Rekap survei", ds: "Responden, indeks kepuasan, persen puas, per dimensi (SERVQUAL), per prodi, per butir, jawaban teks.", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei", k: "id", d: "/v1/spmi/survei/{id}" } }, rq: 1, ds: "ID survei" }, { nm: "kode_prodi", in: "query", s: { t: "string", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, ds: "Filter prodi responden" }], r: "object", it: "Objek" }, getSpmiAkreditasiPantau: { id: "getSpmiAkreditasiPantau", m: "GET", path: "/v1/spmi/akreditasi/pantau", tag: "SPMI: Akreditasi", sum: "Pantau masa berlaku akreditasi", ds: "Status terkini institusi dan setiap prodi: kedaluwarsa, segera_ajukan (<= hari), belum_ada_data, aman; serta persiapan yang sedang berjalan.", sc: ["spmi:read"], pa: [{ nm: "hari", in: "query", s: { t: "integer" }, ds: "Batas peringatan (hari), bawaan 365" }], r: "object", it: "Objek" }, postSpmiAkreditasiSinkronSiakad: { id: "postSpmiAkreditasiSinkronSiakad", m: "POST", path: "/v1/spmi/akreditasi/sinkron-siakad", tag: "SPMI: Akreditasi", sum: "Impor status akreditasi dari SIAKAD", ds: "Admin SPMI. Membaca kode_akreditasi/no_sk_ban/tgl_sk_ban di m_program_studi dan m_perguruan_tinggi (tidak diubah) sebagai riwayat sumber=siakad.", sc: ["spmi:write"], r: "object", it: "Objek" }, postSpmiAkreditasiPersiapanByIdBuatButir: { id: "postSpmiAkreditasiPersiapanByIdBuatButir", m: "POST", path: "/v1/spmi/akreditasi-persiapan/{id}/buat-butir", tag: "SPMI: Akreditasi", sum: "Isi butir persiapan dari instrumen", ds: "Menyalin kriteria instrumen menjadi butir persiapan (narasi, skor simulasi, PIC, bukti).", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-persiapan", k: "id", d: "/v1/spmi/akreditasi-persiapan/{id}" } }, rq: 1, ds: "ID persiapan" }], r: "object", it: "Objek" }, getSpmiAkreditasiPersiapanByIdProgres: { id: "getSpmiAkreditasiPersiapanByIdProgres", m: "GET", path: "/v1/spmi/akreditasi-persiapan/{id}/progres", tag: "SPMI: Akreditasi", sum: "Progres persiapan akreditasi", ds: "Persen butir selesai dan skor simulasi tertimbang.", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-persiapan", k: "id", d: "/v1/spmi/akreditasi-persiapan/{id}" } }, rq: 1, ds: "ID persiapan" }], r: "object", it: "Objek" }, getSpmiLkps: { id: "getSpmiLkps", m: "GET", path: "/v1/spmi/lkps", tag: "SPMI: Akreditasi", sum: "Daftar tabel LKPS", ds: "Tabel LKPS (IAPS 4.0) yang disusun otomatis dari data SIAKAD.", sc: ["spmi:read"], r: "list", it: "Objek" }, getSpmiLkpsByKodeProdi: { id: "getSpmiLkpsByKodeProdi", m: "GET", path: "/v1/spmi/lkps/{kode_prodi}", tag: "SPMI: Akreditasi", sum: "LKPS program studi", ds: "Disusun otomatis dari data SIAKAD (hanya dibaca): kerja sama, seleksi mahasiswa baru, dosen tetap, penelitian/PkM, kurikulum, IPK, prestasi, masa studi, waktu tunggu, kesesuaian bidang; ditambah indikator kuantitatif dan perkiraan skor rumus IAPS. format=csv&tabel=<kode> untuk satu tabel. Pengguna yang boleh melihat unit SPMI prodi itu.", sc: ["spmi:read"], pa: [{ nm: "kode_prodi", in: "path", s: { t: "string", rf: { l: "/v1/spmi/lkps", k: "kode_prodi", d: "/v1/spmi/lkps/{kode_prodi}" } }, rq: 1, ds: "Kode prodi" }, { nm: "ts", in: "query", s: { t: "integer" }, ds: "Tahun TS (mis. 2025 = 2025/2026), bawaan tahun akademik berjalan" }, { nm: "tabel", in: "query", s: { t: "string" }, ds: "Kode tabel dipisah koma (1, 2a, 3a1, 3b, 5a, 8a, 8b, 8c, 8d, 8e)" }, { nm: "format", in: "query", s: { t: "string" }, ds: "json | csv" }], r: "object", it: "Objek" }, getSpmiAkreditasiPersiapanByIdLed: { id: "getSpmiAkreditasiPersiapanByIdLed", m: "GET", path: "/v1/spmi/akreditasi-persiapan/{id}/led", tag: "SPMI: Akreditasi", sum: "Laporan Evaluasi Diri (LED)", ds: "Narasi butir persiapan disusun per kriteria instrumen, dengan kelengkapan (narasi kosong). format=html untuk berkas siap cetak/simpan PDF.", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-persiapan", k: "id", d: "/v1/spmi/akreditasi-persiapan/{id}" } }, rq: 1, ds: "ID persiapan" }, { nm: "format", in: "query", s: { t: "string" }, ds: "json | html" }], r: "object", it: "Objek" }, getSpmiAkreditasiPersiapanByIdSimulasi: { id: "getSpmiAkreditasiPersiapanByIdSimulasi", m: "GET", path: "/v1/spmi/akreditasi-persiapan/{id}/simulasi", tag: "SPMI: Akreditasi", sum: "Simulasi akreditasi", ds: "Skor butir per kriteria (tertimbang bobot), indikator kuantitatif LKPS bila unit prodi (dosen, rasio, S3, jabatan, serdos, kerja sama, IPK, tepat waktu, waktu tunggu, kesesuaian), perkiraan nilai 0-400 dan peringkat (Unggul/Baik Sekali/Baik), serta butir terlemah. Perkiraan internal, bukan penilaian resmi.", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-persiapan", k: "id", d: "/v1/spmi/akreditasi-persiapan/{id}" } }, rq: 1, ds: "ID persiapan" }, { nm: "ts", in: "query", s: { t: "integer" }, ds: "Tahun TS" }], r: "object", it: "Objek" }, getSpmiPelaporanByPeriode: { id: "getSpmiPelaporanByPeriode", m: "GET", path: "/v1/spmi/pelaporan/{periode}", tag: "SPMI: Pelaporan", sum: "Isian pelaporan SPMI periode", ds: "Butir pelaporan untuk spmi.kemdiktisaintek.go.id dengan cek kelengkapan (tautan kosong, dokumen tidak publik, tanggal penetapan).", sc: ["spmi:read"], pa: [{ nm: "periode", in: "path", s: { t: "string" }, rq: 1, ds: "ID periode" }], r: "object", it: "Objek" }, postSpmiPelaporanByPeriodeSiapkan: { id: "postSpmiPelaporanByPeriodeSiapkan", m: "POST", path: "/v1/spmi/pelaporan/{periode}/siapkan", tag: "SPMI: Pelaporan", sum: "Siapkan isian pelaporan", ds: "Admin SPMI. Membuat butir dan mengisi otomatis dari dokumen mutu disahkan (tingkat universitas) dan bukti kegiatan PPEPP selesai. pakai_ulang (bawaan true): butir periode lalu yang sudah valid dipakai ulang. timpa=true mengisi ulang butir yang sudah terisi (kecuali yang dilaporkan).", sc: ["spmi:write"], pa: [{ nm: "periode", in: "path", s: { t: "string" }, rq: 1, ds: "ID periode" }, { nm: "pakai_ulang", in: "query", s: { t: "string" }, ds: "1 | 0" }, { nm: "timpa", in: "query", s: { t: "string" }, ds: "1 | 0" }], r: "object", it: "Objek" }, putSpmiPelaporanButirById: { id: "putSpmiPelaporanButirById", m: "PUT", path: "/v1/spmi/pelaporan-butir/{id}", tag: "SPMI: Pelaporan", sum: "Isi butir pelaporan", ds: "Admin SPMI. ada, dokumen_id, tautan, tanggal_penetapan, catatan, status (draf|siap|dilaporkan), dan hasil verifikasi LLDikti: status_verifikasi, status_valid, catatan_verifikator.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID butir pelaporan" }], b: { ct: "application/json", ref: "SpmiPelaporanIsi", s: { t: "object", pr: { ada: { t: "boolean" }, dokumen_id: { t: "integer", n: 1, ds: "spmi_dokumen", rf: { l: "/v1/spmi/dokumen", k: "id", d: "/v1/spmi/dokumen/{id}" } }, tautan: { t: "string", n: 1, f: "uri", max: 500 }, tanggal_penetapan: { t: "string", n: 1, f: "date" }, catatan: { t: "string", n: 1, ds: "Deskripsi bukti yang disalin ke situs kementerian" }, status: { t: "string", e: ["draf", "siap", "dilaporkan"] }, status_verifikasi: { t: "string", e: ["belum", "diverifikasi"] }, status_valid: { t: "string", e: ["belum", "valid", "tidak_valid"] }, catatan_verifikator: { t: "string", n: 1 } } }, rq: 1 }, r: "object", it: "Objek" }, getSpmiFileByUuidUnduh: { id: "getSpmiFileByUuidUnduh", m: "GET", path: "/v1/spmi/file/{uuid}/unduh", tag: "SPMI: File", sum: "Unduh file bukti", ds: "inline=1 untuk ditampilkan di peramban.", sc: ["spmi:read"], pa: [{ nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "ID file" }, { nm: "inline", in: "query", s: { t: "string" }, ds: "1 | 0" }], r: "object" }, deleteSpmiFileByUuid: { id: "deleteSpmiFileByUuid", m: "DELETE", path: "/v1/spmi/file/{uuid}", tag: "SPMI: File", sum: "Hapus file bukti", sc: ["spmi:write"], pa: [{ nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "ID file" }], r: "none" }, getSpmiFileByEntitasById: { id: "getSpmiFileByEntitasById", m: "GET", path: "/v1/spmi/file/{entitas}/{id}", tag: "SPMI: File", sum: "Daftar file data SPMI", sc: ["spmi:read"], pa: [{ nm: "entitas", in: "path", s: { t: "string" }, rq: 1, ds: "dokumen | capaian | kegiatan | tilik | auditee | temuan | tindak_lanjut | rtm | akreditasi | butir | pelaporan | risiko" }, { nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID data" }], r: "list", it: "SpmiFile" }, postSpmiFileByEntitasById: { id: "postSpmiFileByEntitasById", m: "POST", path: "/v1/spmi/file/{entitas}/{id}", tag: "SPMI: File", sum: "Unggah file bukti", ds: "multipart/form-data field `berkas`, atau JSON `berkas_base64` + `nama_file`. Opsional: keterangan. Jenis file dicek dari isinya. Untuk pelaporan SPMI tetap isi tautan publik.", sc: ["spmi:write"], pa: [{ nm: "entitas", in: "path", s: { t: "string" }, rq: 1, ds: "dokumen | capaian | kegiatan | tilik | auditee | temuan | tindak_lanjut | rtm | akreditasi | butir | pelaporan | risiko" }, { nm: "id", in: "path", s: { t: "string" }, rq: 1, ds: "ID data" }], b: { ct: "multipart/form-data", ref: "SpmiFileUpload", s: { t: "object", pr: { berkas: { t: "string", f: "binary", ds: "multipart/form-data" }, berkas_base64: { t: "string", ds: "Alternatif JSON: isi file base64" }, nama_file: { t: "string", ds: "Wajib bersama berkas_base64" }, keterangan: { t: "string", max: 255 } } }, rq: 1 }, r: "object", it: "SpmiFile" }, getSpmiUnit: { id: "getSpmiUnit", m: "GET", path: "/v1/spmi/unit", tag: "SPMI: Organisasi", sum: "Unit: daftar", ds: "Terlihat oleh semua pemilik spmi:read. Filter: jenis, induk_id, aktif, kode_fakultas, kode_prodi, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: kode, nama, singkatan" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "jenis", in: "query", s: { t: "string" }, ds: "Filter jenis (null = kosong)" }, { nm: "induk_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Filter induk_id (null = kosong)" }, { nm: "aktif", in: "query", s: { t: "string" }, ds: "Filter aktif (null = kosong)" }, { nm: "kode_fakultas", in: "query", s: { t: "string", rf: { l: "/v1/master/fakultas", k: "kode_fakultas", q: 0 } }, ds: "Filter kode_fakultas (null = kosong)" }, { nm: "kode_prodi", in: "query", s: { t: "string", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, ds: "Filter kode_prodi (null = kosong)" }], r: "list", it: "SpmiUnit" }, postSpmiUnit: { id: "postSpmiUnit", m: "POST", path: "/v1/spmi/unit", tag: "SPMI: Organisasi", sum: "Unit: tambah", ds: "Dikelola admin SPMI (LPM/ADMIN).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiUnitInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, jenis: { t: "string", e: ["universitas", "fakultas", "prodi", "lembaga", "unit"] }, induk_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, kode_fakultas: { t: "string", n: 1, ds: "Kode fakultas SIAKAD (m_fakultas)", rf: { l: "/v1/master/fakultas", k: "kode_fakultas", q: 0 } }, kode_prodi: { t: "string", n: 1, ds: "Kode prodi SIAKAD (m_program_studi)", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, nama: { t: "string", n: 1, max: 150 }, singkatan: { t: "string", n: 1, max: 30 }, email: { t: "string", n: 1, f: "email" }, aktif: { t: "boolean" }, urut: { t: "integer", min: 0, mx: 65535 } }, rq: ["kode", "jenis", "nama"] }, rq: 1 }, r: "object", it: "SpmiUnit" }, getSpmiUnitByIdRiwayat: { id: "getSpmiUnitByIdRiwayat", m: "GET", path: "/v1/spmi/unit/{id}/riwayat", tag: "SPMI: Organisasi", sum: "Unit: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiUnitById: { id: "getSpmiUnitById", m: "GET", path: "/v1/spmi/unit/{id}", tag: "SPMI: Organisasi", sum: "Unit: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiUnit" }, putSpmiUnitById: { id: "putSpmiUnitById", m: "PUT", path: "/v1/spmi/unit/{id}", tag: "SPMI: Organisasi", sum: "Unit: ubah", ds: "Dikelola admin SPMI (LPM/ADMIN). Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiUnitInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, jenis: { t: "string", e: ["universitas", "fakultas", "prodi", "lembaga", "unit"] }, induk_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, kode_fakultas: { t: "string", n: 1, ds: "Kode fakultas SIAKAD (m_fakultas)", rf: { l: "/v1/master/fakultas", k: "kode_fakultas", q: 0 } }, kode_prodi: { t: "string", n: 1, ds: "Kode prodi SIAKAD (m_program_studi)", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, nama: { t: "string", n: 1, max: 150 }, singkatan: { t: "string", n: 1, max: 30 }, email: { t: "string", n: 1, f: "email" }, aktif: { t: "boolean" }, urut: { t: "integer", min: 0, mx: 65535 } }, rq: ["kode", "jenis", "nama"] }, rq: 1 }, r: "object", it: "SpmiUnit" }, deleteSpmiUnitById: { id: "deleteSpmiUnitById", m: "DELETE", path: "/v1/spmi/unit/{id}", tag: "SPMI: Organisasi", sum: "Unit: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiPersonel: { id: "getSpmiPersonel", m: "GET", path: "/v1/spmi/personel", tag: "SPMI: Organisasi", sum: "Personel mutu: daftar", ds: "Terlihat oleh LPM dan personel unit (serta pengawas unit induk). Filter: unit_id, username, peran, aktif, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: username, jabatan" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "unit_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Filter unit_id (null = kosong)" }, { nm: "username", in: "query", s: { t: "string", rf: { l: "pengguna", k: "username" } }, ds: "Filter username (null = kosong)" }, { nm: "peran", in: "query", s: { t: "string" }, ds: "Filter peran (null = kosong)" }, { nm: "aktif", in: "query", s: { t: "string" }, ds: "Filter aktif (null = kosong)" }], r: "list", it: "SpmiPersonel" }, postSpmiPersonel: { id: "postSpmiPersonel", m: "POST", path: "/v1/spmi/personel", tag: "SPMI: Organisasi", sum: "Personel mutu: tambah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM.", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiPersonelInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, peran: { t: "string", e: ["admin", "pengelola", "pimpinan", "pic", "anggota"] }, jabatan: { t: "string", n: 1, max: 150 }, nomor_sk: { t: "string", n: 1, max: 100 }, mulai: { t: "string", n: 1, f: "date" }, selesai: { t: "string", n: 1, f: "date" }, aktif: { t: "boolean" } }, rq: ["unit_id", "username", "peran"] }, rq: 1 }, r: "object", it: "SpmiPersonel" }, getSpmiPersonelByIdRiwayat: { id: "getSpmiPersonelByIdRiwayat", m: "GET", path: "/v1/spmi/personel/{id}/riwayat", tag: "SPMI: Organisasi", sum: "Personel mutu: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/personel", k: "id", d: "/v1/spmi/personel/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiPersonelById: { id: "getSpmiPersonelById", m: "GET", path: "/v1/spmi/personel/{id}", tag: "SPMI: Organisasi", sum: "Personel mutu: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/personel", k: "id", d: "/v1/spmi/personel/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiPersonel" }, putSpmiPersonelById: { id: "putSpmiPersonelById", m: "PUT", path: "/v1/spmi/personel/{id}", tag: "SPMI: Organisasi", sum: "Personel mutu: ubah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM. Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/personel", k: "id", d: "/v1/spmi/personel/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiPersonelInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, peran: { t: "string", e: ["admin", "pengelola", "pimpinan", "pic", "anggota"] }, jabatan: { t: "string", n: 1, max: 150 }, nomor_sk: { t: "string", n: 1, max: 100 }, mulai: { t: "string", n: 1, f: "date" }, selesai: { t: "string", n: 1, f: "date" }, aktif: { t: "boolean" } }, rq: ["unit_id", "username", "peran"] }, rq: 1 }, r: "object", it: "SpmiPersonel" }, deleteSpmiPersonelById: { id: "deleteSpmiPersonelById", m: "DELETE", path: "/v1/spmi/personel/{id}", tag: "SPMI: Organisasi", sum: "Personel mutu: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/personel", k: "id", d: "/v1/spmi/personel/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiAuditor: { id: "getSpmiAuditor", m: "GET", path: "/v1/spmi/auditor", tag: "SPMI: Organisasi", sum: "Auditor: daftar", ds: "Terlihat oleh semua pemilik spmi:read. Filter: aktif, unit_asal_id, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: username, nama, bidang_keahlian, nomor_sertifikat" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "aktif", in: "query", s: { t: "string" }, ds: "Filter aktif (null = kosong)" }, { nm: "unit_asal_id", in: "query", s: { t: "string" }, ds: "Filter unit_asal_id (null = kosong)" }], r: "list", it: "SpmiAuditor" }, postSpmiAuditor: { id: "postSpmiAuditor", m: "POST", path: "/v1/spmi/auditor", tag: "SPMI: Organisasi", sum: "Auditor: tambah", ds: "Dikelola admin SPMI (LPM/ADMIN).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiAuditorInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, nidn: { t: "string", n: 1, max: 50, rf: { l: "/v1/dosen", k: "nidn", d: "/v1/dosen/{nidn}" } }, nama: { t: "string", n: 1, max: 150 }, unit_asal_id: { t: "integer", n: 1, ds: "ID unit" }, bidang_keahlian: { t: "string", n: 1, max: 255 }, nomor_sertifikat: { t: "string", n: 1, max: 100 }, penyelenggara_pelatihan: { t: "string", n: 1, max: 150 }, tanggal_sertifikat: { t: "string", n: 1, f: "date" }, berlaku_sampai: { t: "string", n: 1, f: "date" }, tautan_sertifikat: { t: "string", n: 1, f: "uri", max: 500 }, aktif: { t: "boolean" }, catatan: { t: "string", n: 1 } }, rq: ["username", "nama"] }, rq: 1 }, r: "object", it: "SpmiAuditor" }, getSpmiAuditorByIdRiwayat: { id: "getSpmiAuditorByIdRiwayat", m: "GET", path: "/v1/spmi/auditor/{id}/riwayat", tag: "SPMI: Organisasi", sum: "Auditor: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/auditor", k: "id", d: "/v1/spmi/auditor/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiAuditorById: { id: "getSpmiAuditorById", m: "GET", path: "/v1/spmi/auditor/{id}", tag: "SPMI: Organisasi", sum: "Auditor: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/auditor", k: "id", d: "/v1/spmi/auditor/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiAuditor" }, putSpmiAuditorById: { id: "putSpmiAuditorById", m: "PUT", path: "/v1/spmi/auditor/{id}", tag: "SPMI: Organisasi", sum: "Auditor: ubah", ds: "Dikelola admin SPMI (LPM/ADMIN). Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/auditor", k: "id", d: "/v1/spmi/auditor/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiAuditorInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, nidn: { t: "string", n: 1, max: 50, rf: { l: "/v1/dosen", k: "nidn", d: "/v1/dosen/{nidn}" } }, nama: { t: "string", n: 1, max: 150 }, unit_asal_id: { t: "integer", n: 1, ds: "ID unit" }, bidang_keahlian: { t: "string", n: 1, max: 255 }, nomor_sertifikat: { t: "string", n: 1, max: 100 }, penyelenggara_pelatihan: { t: "string", n: 1, max: 150 }, tanggal_sertifikat: { t: "string", n: 1, f: "date" }, berlaku_sampai: { t: "string", n: 1, f: "date" }, tautan_sertifikat: { t: "string", n: 1, f: "uri", max: 500 }, aktif: { t: "boolean" }, catatan: { t: "string", n: 1 } }, rq: ["username", "nama"] }, rq: 1 }, r: "object", it: "SpmiAuditor" }, deleteSpmiAuditorById: { id: "deleteSpmiAuditorById", m: "DELETE", path: "/v1/spmi/auditor/{id}", tag: "SPMI: Organisasi", sum: "Auditor: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/auditor", k: "id", d: "/v1/spmi/auditor/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiPeriode: { id: "getSpmiPeriode", m: "GET", path: "/v1/spmi/periode", tag: "SPMI: Penetapan", sum: "Periode: daftar", ds: "Terlihat oleh semua pemilik spmi:read. Filter: status, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: nama" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "status", in: "query", s: { t: "string" }, ds: "Filter status (null = kosong)" }], r: "list", it: "SpmiPeriode" }, postSpmiPeriode: { id: "postSpmiPeriode", m: "POST", path: "/v1/spmi/periode", tag: "SPMI: Penetapan", sum: "Periode: tambah", ds: "Dikelola admin SPMI (LPM/ADMIN).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiPeriodeInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { tahun: { t: "integer", min: 2e3, mx: 2100 }, nama: { t: "string", n: 1, max: 100 }, tahun_id_mulai: { t: "string", n: 1, ds: "Tahun akademik SIAKAD, mis. 20251" }, tahun_id_selesai: { t: "string", n: 1, ds: "Tahun akademik SIAKAD, mis. 20251" }, mulai: { t: "string", n: 1, f: "date" }, selesai: { t: "string", n: 1, f: "date" }, status: { t: "string", e: ["perencanaan", "berjalan", "evaluasi", "selesai"] }, catatan: { t: "string", n: 1 } }, rq: ["tahun", "nama"] }, rq: 1 }, r: "object", it: "SpmiPeriode" }, getSpmiPeriodeByIdRiwayat: { id: "getSpmiPeriodeByIdRiwayat", m: "GET", path: "/v1/spmi/periode/{id}/riwayat", tag: "SPMI: Penetapan", sum: "Periode: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiPeriodeById: { id: "getSpmiPeriodeById", m: "GET", path: "/v1/spmi/periode/{id}", tag: "SPMI: Penetapan", sum: "Periode: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiPeriode" }, putSpmiPeriodeById: { id: "putSpmiPeriodeById", m: "PUT", path: "/v1/spmi/periode/{id}", tag: "SPMI: Penetapan", sum: "Periode: ubah", ds: "Dikelola admin SPMI (LPM/ADMIN). Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiPeriodeInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { tahun: { t: "integer", min: 2e3, mx: 2100 }, nama: { t: "string", n: 1, max: 100 }, tahun_id_mulai: { t: "string", n: 1, ds: "Tahun akademik SIAKAD, mis. 20251" }, tahun_id_selesai: { t: "string", n: 1, ds: "Tahun akademik SIAKAD, mis. 20251" }, mulai: { t: "string", n: 1, f: "date" }, selesai: { t: "string", n: 1, f: "date" }, status: { t: "string", e: ["perencanaan", "berjalan", "evaluasi", "selesai"] }, catatan: { t: "string", n: 1 } }, rq: ["tahun", "nama"] }, rq: 1 }, r: "object", it: "SpmiPeriode" }, deleteSpmiPeriodeById: { id: "deleteSpmiPeriodeById", m: "DELETE", path: "/v1/spmi/periode/{id}", tag: "SPMI: Penetapan", sum: "Periode: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiDokumen: { id: "getSpmiDokumen", m: "GET", path: "/v1/spmi/dokumen", tag: "SPMI: Penetapan", sum: "Dokumen mutu: daftar", ds: "Yang berstatus disahkan terlihat oleh semua; lainnya oleh personel terkait. Filter: unit_id, jenis, tahap, status, publik, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: nomor, judul, ringkasan" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "unit_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Filter unit_id (null = kosong)" }, { nm: "jenis", in: "query", s: { t: "string" }, ds: "Filter jenis (null = kosong)" }, { nm: "tahap", in: "query", s: { t: "string" }, ds: "Filter tahap (null = kosong)" }, { nm: "status", in: "query", s: { t: "string" }, ds: "Filter status (null = kosong)" }, { nm: "publik", in: "query", s: { t: "string" }, ds: "Filter publik (null = kosong)" }], r: "list", it: "SpmiDokumen" }, postSpmiDokumen: { id: "postSpmiDokumen", m: "POST", path: "/v1/spmi/dokumen", tag: "SPMI: Penetapan", sum: "Dokumen mutu: tambah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM.", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiDokumenInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, jenis: { t: "string", e: ["kebijakan", "manual", "standar", "formulir", "pedoman", "sop", "instruksi_kerja", "renstra", "renop", "sk", "organisasi", "laporan", "lainnya"] }, tahap: { t: "string", e: ["penetapan", "pelaksanaan", "evaluasi", "pengendalian", "peningkatan"] }, nomor: { t: "string", n: 1, max: 100 }, judul: { t: "string", n: 1, max: 255 }, versi: { t: "string", n: 1, max: 20 }, ringkasan: { t: "string", n: 1 }, status: { t: "string", e: ["draf", "ditinjau", "disahkan", "kedaluwarsa", "dicabut"] }, tanggal_penetapan: { t: "string", n: 1, f: "date" }, berlaku_mulai: { t: "string", n: 1, f: "date" }, tinjau_berikutnya: { t: "string", n: 1, f: "date" }, ditetapkan_oleh: { t: "string", n: 1, max: 150 }, nomor_penetapan: { t: "string", n: 1, max: 100 }, tautan: { t: "string", n: 1, f: "uri", max: 500 }, publik: { t: "boolean" }, menggantikan_id: { t: "integer", n: 1, ds: "ID dokumen" } }, rq: ["jenis", "judul"] }, rq: 1 }, r: "object", it: "SpmiDokumen" }, getSpmiDokumenByIdRiwayat: { id: "getSpmiDokumenByIdRiwayat", m: "GET", path: "/v1/spmi/dokumen/{id}/riwayat", tag: "SPMI: Penetapan", sum: "Dokumen mutu: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/dokumen", k: "id", d: "/v1/spmi/dokumen/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiDokumenById: { id: "getSpmiDokumenById", m: "GET", path: "/v1/spmi/dokumen/{id}", tag: "SPMI: Penetapan", sum: "Dokumen mutu: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/dokumen", k: "id", d: "/v1/spmi/dokumen/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiDokumen" }, putSpmiDokumenById: { id: "putSpmiDokumenById", m: "PUT", path: "/v1/spmi/dokumen/{id}", tag: "SPMI: Penetapan", sum: "Dokumen mutu: ubah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM. Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/dokumen", k: "id", d: "/v1/spmi/dokumen/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiDokumenInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, jenis: { t: "string", e: ["kebijakan", "manual", "standar", "formulir", "pedoman", "sop", "instruksi_kerja", "renstra", "renop", "sk", "organisasi", "laporan", "lainnya"] }, tahap: { t: "string", e: ["penetapan", "pelaksanaan", "evaluasi", "pengendalian", "peningkatan"] }, nomor: { t: "string", n: 1, max: 100 }, judul: { t: "string", n: 1, max: 255 }, versi: { t: "string", n: 1, max: 20 }, ringkasan: { t: "string", n: 1 }, status: { t: "string", e: ["draf", "ditinjau", "disahkan", "kedaluwarsa", "dicabut"] }, tanggal_penetapan: { t: "string", n: 1, f: "date" }, berlaku_mulai: { t: "string", n: 1, f: "date" }, tinjau_berikutnya: { t: "string", n: 1, f: "date" }, ditetapkan_oleh: { t: "string", n: 1, max: 150 }, nomor_penetapan: { t: "string", n: 1, max: 100 }, tautan: { t: "string", n: 1, f: "uri", max: 500 }, publik: { t: "boolean" }, menggantikan_id: { t: "integer", n: 1, ds: "ID dokumen" } }, rq: ["jenis", "judul"] }, rq: 1 }, r: "object", it: "SpmiDokumen" }, deleteSpmiDokumenById: { id: "deleteSpmiDokumenById", m: "DELETE", path: "/v1/spmi/dokumen/{id}", tag: "SPMI: Penetapan", sum: "Dokumen mutu: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/dokumen", k: "id", d: "/v1/spmi/dokumen/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiStandar: { id: "getSpmiStandar", m: "GET", path: "/v1/spmi/standar", tag: "SPMI: Penetapan", sum: "Standar: daftar", ds: "Yang berstatus berlaku terlihat oleh semua; lainnya oleh personel terkait. Filter: bidang, kelompok, sumber, status, induk_id, dokumen_id, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: kode, nama, pernyataan" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "bidang", in: "query", s: { t: "string" }, ds: "Filter bidang (null = kosong)" }, { nm: "kelompok", in: "query", s: { t: "string" }, ds: "Filter kelompok (null = kosong)" }, { nm: "sumber", in: "query", s: { t: "string" }, ds: "Filter sumber (null = kosong)" }, { nm: "status", in: "query", s: { t: "string" }, ds: "Filter status (null = kosong)" }, { nm: "induk_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, ds: "Filter induk_id (null = kosong)" }, { nm: "dokumen_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/dokumen", k: "id", d: "/v1/spmi/dokumen/{id}" } }, ds: "Filter dokumen_id (null = kosong)" }], r: "list", it: "SpmiStandar" }, postSpmiStandar: { id: "postSpmiStandar", m: "POST", path: "/v1/spmi/standar", tag: "SPMI: Penetapan", sum: "Standar: tambah", ds: "Dikelola admin SPMI (LPM/ADMIN).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiStandarInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { induk_id: { t: "integer", n: 1, ds: "ID standar", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, bidang: { t: "string", e: ["pendidikan", "penelitian", "pkm", "tata_kelola", "kemahasiswaan", "sdm", "sarpras", "kerja_sama", "keuangan", "kesejahteraan", "lainnya"] }, kelompok: { t: "string", e: ["luaran", "proses", "masukan", "lainnya"] }, sumber: { t: "string", e: ["sn_dikti", "pt"] }, rasional: { t: "string", n: 1 }, pernyataan: { t: "string", n: 1 }, strategi: { t: "string", n: 1 }, pihak_terkait: { t: "string", n: 1 }, definisi_istilah: { t: "string", n: 1 }, referensi: { t: "string", n: 1 }, dokumen_id: { t: "integer", n: 1, ds: "ID dokumen", rf: { l: "/v1/spmi/dokumen", k: "id", d: "/v1/spmi/dokumen/{id}" } }, versi: { t: "string", n: 1, max: 20 }, status: { t: "string", e: ["draf", "berlaku", "dicabut"] }, berlaku_mulai: { t: "string", n: 1, f: "date" }, urut: { t: "integer", min: 0, mx: 65535 } }, rq: ["kode", "nama", "bidang"] }, rq: 1 }, r: "object", it: "SpmiStandar" }, getSpmiStandarByIdRiwayat: { id: "getSpmiStandarByIdRiwayat", m: "GET", path: "/v1/spmi/standar/{id}/riwayat", tag: "SPMI: Penetapan", sum: "Standar: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiStandarById: { id: "getSpmiStandarById", m: "GET", path: "/v1/spmi/standar/{id}", tag: "SPMI: Penetapan", sum: "Standar: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiStandar" }, putSpmiStandarById: { id: "putSpmiStandarById", m: "PUT", path: "/v1/spmi/standar/{id}", tag: "SPMI: Penetapan", sum: "Standar: ubah", ds: "Dikelola admin SPMI (LPM/ADMIN). Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiStandarInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { induk_id: { t: "integer", n: 1, ds: "ID standar", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, bidang: { t: "string", e: ["pendidikan", "penelitian", "pkm", "tata_kelola", "kemahasiswaan", "sdm", "sarpras", "kerja_sama", "keuangan", "kesejahteraan", "lainnya"] }, kelompok: { t: "string", e: ["luaran", "proses", "masukan", "lainnya"] }, sumber: { t: "string", e: ["sn_dikti", "pt"] }, rasional: { t: "string", n: 1 }, pernyataan: { t: "string", n: 1 }, strategi: { t: "string", n: 1 }, pihak_terkait: { t: "string", n: 1 }, definisi_istilah: { t: "string", n: 1 }, referensi: { t: "string", n: 1 }, dokumen_id: { t: "integer", n: 1, ds: "ID dokumen", rf: { l: "/v1/spmi/dokumen", k: "id", d: "/v1/spmi/dokumen/{id}" } }, versi: { t: "string", n: 1, max: 20 }, status: { t: "string", e: ["draf", "berlaku", "dicabut"] }, berlaku_mulai: { t: "string", n: 1, f: "date" }, urut: { t: "integer", min: 0, mx: 65535 } }, rq: ["kode", "nama", "bidang"] }, rq: 1 }, r: "object", it: "SpmiStandar" }, deleteSpmiStandarById: { id: "deleteSpmiStandarById", m: "DELETE", path: "/v1/spmi/standar/{id}", tag: "SPMI: Penetapan", sum: "Standar: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiIndikator: { id: "getSpmiIndikator", m: "GET", path: "/v1/spmi/indikator", tag: "SPMI: Penetapan", sum: "Indikator: daftar", ds: "Terlihat oleh semua pemilik spmi:read. Filter: standar_id, tipe, lingkup, metrik, aktif, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: kode, pernyataan" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "standar_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, ds: "Filter standar_id (null = kosong)" }, { nm: "tipe", in: "query", s: { t: "string" }, ds: "Filter tipe (null = kosong)" }, { nm: "lingkup", in: "query", s: { t: "string" }, ds: "Filter lingkup (null = kosong)" }, { nm: "metrik", in: "query", s: { t: "string" }, ds: "Filter metrik (null = kosong)" }, { nm: "aktif", in: "query", s: { t: "string" }, ds: "Filter aktif (null = kosong)" }], r: "list", it: "SpmiIndikator" }, postSpmiIndikator: { id: "postSpmiIndikator", m: "POST", path: "/v1/spmi/indikator", tag: "SPMI: Penetapan", sum: "Indikator: tambah", ds: "Dikelola admin SPMI (LPM/ADMIN).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiIndikatorInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { standar_id: { t: "integer", n: 1, ds: "ID standar", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, pernyataan: { t: "string", n: 1 }, tipe: { t: "string", e: ["angka", "persen", "rasio", "ya_tidak", "teks"] }, satuan: { t: "string", n: 1, max: 50 }, arah: { t: "string", e: ["naik", "turun", "tepat"] }, baseline: { t: "number", n: 1 }, minimum_sn_dikti: { t: "number", n: 1 }, metrik: { t: "string", e: ["mahasiswa_aktif", "rasio_mahasiswa_dosen", "jumlah_lulusan", "ipk_rata_lulusan", "persen_lulusan_ipk_3", "persen_lulus_tepat_waktu", "rata_masa_studi", "persen_putus_studi", "persen_dosen_s3", "persen_dosen_s2_keatas", "persen_dosen_jabfung", "persen_dosen_lk_gb", "indeks_edom", "tracer_iku1", "tracer_waktu_tunggu", "tracer_respons", "survei_kepuasan"], ds: "Metrik otomatis dari data SIAKAD (GET /v1/spmi/referensi)" }, lingkup: { t: "string", e: ["universitas", "fakultas", "prodi", "unit", "semua"] }, frekuensi: { t: "string", e: ["semester", "tahunan"] }, cara_ukur: { t: "string", n: 1 }, sumber_data: { t: "string", n: 1, max: 255 }, aktif: { t: "boolean" }, urut: { t: "integer", min: 0, mx: 65535 } }, rq: ["standar_id", "kode", "pernyataan"] }, rq: 1 }, r: "object", it: "SpmiIndikator" }, getSpmiIndikatorByIdRiwayat: { id: "getSpmiIndikatorByIdRiwayat", m: "GET", path: "/v1/spmi/indikator/{id}/riwayat", tag: "SPMI: Penetapan", sum: "Indikator: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiIndikatorById: { id: "getSpmiIndikatorById", m: "GET", path: "/v1/spmi/indikator/{id}", tag: "SPMI: Penetapan", sum: "Indikator: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiIndikator" }, putSpmiIndikatorById: { id: "putSpmiIndikatorById", m: "PUT", path: "/v1/spmi/indikator/{id}", tag: "SPMI: Penetapan", sum: "Indikator: ubah", ds: "Dikelola admin SPMI (LPM/ADMIN). Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiIndikatorInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { standar_id: { t: "integer", n: 1, ds: "ID standar", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, pernyataan: { t: "string", n: 1 }, tipe: { t: "string", e: ["angka", "persen", "rasio", "ya_tidak", "teks"] }, satuan: { t: "string", n: 1, max: 50 }, arah: { t: "string", e: ["naik", "turun", "tepat"] }, baseline: { t: "number", n: 1 }, minimum_sn_dikti: { t: "number", n: 1 }, metrik: { t: "string", e: ["mahasiswa_aktif", "rasio_mahasiswa_dosen", "jumlah_lulusan", "ipk_rata_lulusan", "persen_lulusan_ipk_3", "persen_lulus_tepat_waktu", "rata_masa_studi", "persen_putus_studi", "persen_dosen_s3", "persen_dosen_s2_keatas", "persen_dosen_jabfung", "persen_dosen_lk_gb", "indeks_edom", "tracer_iku1", "tracer_waktu_tunggu", "tracer_respons", "survei_kepuasan"], ds: "Metrik otomatis dari data SIAKAD (GET /v1/spmi/referensi)" }, lingkup: { t: "string", e: ["universitas", "fakultas", "prodi", "unit", "semua"] }, frekuensi: { t: "string", e: ["semester", "tahunan"] }, cara_ukur: { t: "string", n: 1 }, sumber_data: { t: "string", n: 1, max: 255 }, aktif: { t: "boolean" }, urut: { t: "integer", min: 0, mx: 65535 } }, rq: ["standar_id", "kode", "pernyataan"] }, rq: 1 }, r: "object", it: "SpmiIndikator" }, deleteSpmiIndikatorById: { id: "deleteSpmiIndikatorById", m: "DELETE", path: "/v1/spmi/indikator/{id}", tag: "SPMI: Penetapan", sum: "Indikator: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiTarget: { id: "getSpmiTarget", m: "GET", path: "/v1/spmi/target", tag: "SPMI: Penetapan", sum: "Target: daftar", ds: "Terlihat oleh semua pemilik spmi:read. Filter: indikator_id, periode_id, unit_id, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: " }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "indikator_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } }, ds: "Filter indikator_id (null = kosong)" }, { nm: "periode_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, ds: "Filter periode_id (null = kosong)" }, { nm: "unit_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Filter unit_id (null = kosong)" }], r: "list", it: "SpmiTarget" }, postSpmiTarget: { id: "postSpmiTarget", m: "POST", path: "/v1/spmi/target", tag: "SPMI: Penetapan", sum: "Target: tambah", ds: "Dikelola admin SPMI (LPM/ADMIN).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiTargetInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { indikator_id: { t: "integer", n: 1, ds: "ID indikator", rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } }, periode_id: { t: "integer", n: 1, ds: "ID periode", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, target: { t: "number", n: 1 }, target_teks: { t: "string", n: 1, max: 255 }, keterangan: { t: "string", n: 1, max: 255 } }, rq: ["indikator_id", "periode_id"] }, rq: 1 }, r: "object", it: "SpmiTarget" }, getSpmiTargetByIdRiwayat: { id: "getSpmiTargetByIdRiwayat", m: "GET", path: "/v1/spmi/target/{id}/riwayat", tag: "SPMI: Penetapan", sum: "Target: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/target", k: "id", d: "/v1/spmi/target/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiTargetById: { id: "getSpmiTargetById", m: "GET", path: "/v1/spmi/target/{id}", tag: "SPMI: Penetapan", sum: "Target: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/target", k: "id", d: "/v1/spmi/target/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiTarget" }, putSpmiTargetById: { id: "putSpmiTargetById", m: "PUT", path: "/v1/spmi/target/{id}", tag: "SPMI: Penetapan", sum: "Target: ubah", ds: "Dikelola admin SPMI (LPM/ADMIN). Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/target", k: "id", d: "/v1/spmi/target/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiTargetInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { indikator_id: { t: "integer", n: 1, ds: "ID indikator", rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } }, periode_id: { t: "integer", n: 1, ds: "ID periode", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, target: { t: "number", n: 1 }, target_teks: { t: "string", n: 1, max: 255 }, keterangan: { t: "string", n: 1, max: 255 } }, rq: ["indikator_id", "periode_id"] }, rq: 1 }, r: "object", it: "SpmiTarget" }, deleteSpmiTargetById: { id: "deleteSpmiTargetById", m: "DELETE", path: "/v1/spmi/target/{id}", tag: "SPMI: Penetapan", sum: "Target: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/target", k: "id", d: "/v1/spmi/target/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiKegiatan: { id: "getSpmiKegiatan", m: "GET", path: "/v1/spmi/kegiatan", tag: "SPMI: Pelaksanaan", sum: "Kegiatan PPEPP: daftar", ds: "Terlihat oleh semua pemilik spmi:read. Filter: periode_id, unit_id, tahap, jenis, status, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: nama, tempat, hasil" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "periode_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, ds: "Filter periode_id (null = kosong)" }, { nm: "unit_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Filter unit_id (null = kosong)" }, { nm: "tahap", in: "query", s: { t: "string" }, ds: "Filter tahap (null = kosong)" }, { nm: "jenis", in: "query", s: { t: "string" }, ds: "Filter jenis (null = kosong)" }, { nm: "status", in: "query", s: { t: "string" }, ds: "Filter status (null = kosong)" }], r: "list", it: "SpmiKegiatan" }, postSpmiKegiatan: { id: "postSpmiKegiatan", m: "POST", path: "/v1/spmi/kegiatan", tag: "SPMI: Pelaksanaan", sum: "Kegiatan PPEPP: tambah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM.", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiKegiatanInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { periode_id: { t: "integer", n: 1, ds: "ID periode", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, tahap: { t: "string", e: ["penetapan", "pelaksanaan", "evaluasi", "pengendalian", "peningkatan"] }, jenis: { t: "string", e: ["pemantauan", "evaluasi_diri", "audit", "asesmen", "rtm", "sosialisasi", "pelatihan", "penyusunan_dokumen", "survei", "lainnya"] }, nama: { t: "string", n: 1, max: 255 }, mulai: { t: "string", n: 1, f: "date" }, selesai: { t: "string", n: 1, f: "date" }, tempat: { t: "string", n: 1, max: 255 }, pelaksana: { t: "string", n: 1 }, metode: { t: "string", n: 1 }, hasil: { t: "string", n: 1 }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 }, status: { t: "string", e: ["rencana", "berjalan", "selesai", "batal"] } }, rq: ["periode_id", "tahap", "jenis", "nama"] }, rq: 1 }, r: "object", it: "SpmiKegiatan" }, getSpmiKegiatanByIdRiwayat: { id: "getSpmiKegiatanByIdRiwayat", m: "GET", path: "/v1/spmi/kegiatan/{id}/riwayat", tag: "SPMI: Pelaksanaan", sum: "Kegiatan PPEPP: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/kegiatan", k: "id", d: "/v1/spmi/kegiatan/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiKegiatanById: { id: "getSpmiKegiatanById", m: "GET", path: "/v1/spmi/kegiatan/{id}", tag: "SPMI: Pelaksanaan", sum: "Kegiatan PPEPP: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/kegiatan", k: "id", d: "/v1/spmi/kegiatan/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiKegiatan" }, putSpmiKegiatanById: { id: "putSpmiKegiatanById", m: "PUT", path: "/v1/spmi/kegiatan/{id}", tag: "SPMI: Pelaksanaan", sum: "Kegiatan PPEPP: ubah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM. Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/kegiatan", k: "id", d: "/v1/spmi/kegiatan/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiKegiatanInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { periode_id: { t: "integer", n: 1, ds: "ID periode", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, tahap: { t: "string", e: ["penetapan", "pelaksanaan", "evaluasi", "pengendalian", "peningkatan"] }, jenis: { t: "string", e: ["pemantauan", "evaluasi_diri", "audit", "asesmen", "rtm", "sosialisasi", "pelatihan", "penyusunan_dokumen", "survei", "lainnya"] }, nama: { t: "string", n: 1, max: 255 }, mulai: { t: "string", n: 1, f: "date" }, selesai: { t: "string", n: 1, f: "date" }, tempat: { t: "string", n: 1, max: 255 }, pelaksana: { t: "string", n: 1 }, metode: { t: "string", n: 1 }, hasil: { t: "string", n: 1 }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 }, status: { t: "string", e: ["rencana", "berjalan", "selesai", "batal"] } }, rq: ["periode_id", "tahap", "jenis", "nama"] }, rq: 1 }, r: "object", it: "SpmiKegiatan" }, deleteSpmiKegiatanById: { id: "deleteSpmiKegiatanById", m: "DELETE", path: "/v1/spmi/kegiatan/{id}", tag: "SPMI: Pelaksanaan", sum: "Kegiatan PPEPP: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/kegiatan", k: "id", d: "/v1/spmi/kegiatan/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiAudit: { id: "getSpmiAudit", m: "GET", path: "/v1/spmi/audit", tag: "SPMI: AMI", sum: "Audit mutu internal: daftar", ds: "Terlihat oleh semua pemilik spmi:read. Filter: periode_id, jenis, status, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: kode, nama" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "periode_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, ds: "Filter periode_id (null = kosong)" }, { nm: "jenis", in: "query", s: { t: "string" }, ds: "Filter jenis (null = kosong)" }, { nm: "status", in: "query", s: { t: "string" }, ds: "Filter status (null = kosong)" }], r: "list", it: "SpmiAudit" }, postSpmiAudit: { id: "postSpmiAudit", m: "POST", path: "/v1/spmi/audit", tag: "SPMI: AMI", sum: "Audit mutu internal: tambah", ds: "Dikelola admin SPMI (LPM/ADMIN).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiAuditInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { periode_id: { t: "integer", n: 1, ds: "ID periode", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, jenis: { t: "string", e: ["reguler", "khusus", "tindak_lanjut"] }, tujuan: { t: "string", n: 1 }, lingkup: { t: "string", n: 1 }, acuan: { t: "string", n: 1 }, mulai: { t: "string", n: 1, f: "date" }, selesai: { t: "string", n: 1, f: "date" }, status: { t: "string", e: ["rencana", "persiapan", "pelaksanaan", "pelaporan", "selesai", "batal"] }, ringkasan: { t: "string", n: 1 } }, rq: ["periode_id", "kode", "nama"] }, rq: 1 }, r: "object", it: "SpmiAudit" }, getSpmiAuditByIdRiwayat: { id: "getSpmiAuditByIdRiwayat", m: "GET", path: "/v1/spmi/audit/{id}/riwayat", tag: "SPMI: AMI", sum: "Audit mutu internal: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/audit", k: "id", d: "/v1/spmi/audit/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiAuditById: { id: "getSpmiAuditById", m: "GET", path: "/v1/spmi/audit/{id}", tag: "SPMI: AMI", sum: "Audit mutu internal: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/audit", k: "id", d: "/v1/spmi/audit/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiAudit" }, putSpmiAuditById: { id: "putSpmiAuditById", m: "PUT", path: "/v1/spmi/audit/{id}", tag: "SPMI: AMI", sum: "Audit mutu internal: ubah", ds: "Dikelola admin SPMI (LPM/ADMIN). Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/audit", k: "id", d: "/v1/spmi/audit/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiAuditInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { periode_id: { t: "integer", n: 1, ds: "ID periode", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, jenis: { t: "string", e: ["reguler", "khusus", "tindak_lanjut"] }, tujuan: { t: "string", n: 1 }, lingkup: { t: "string", n: 1 }, acuan: { t: "string", n: 1 }, mulai: { t: "string", n: 1, f: "date" }, selesai: { t: "string", n: 1, f: "date" }, status: { t: "string", e: ["rencana", "persiapan", "pelaksanaan", "pelaporan", "selesai", "batal"] }, ringkasan: { t: "string", n: 1 } }, rq: ["periode_id", "kode", "nama"] }, rq: 1 }, r: "object", it: "SpmiAudit" }, deleteSpmiAuditById: { id: "deleteSpmiAuditById", m: "DELETE", path: "/v1/spmi/audit/{id}", tag: "SPMI: AMI", sum: "Audit mutu internal: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/audit", k: "id", d: "/v1/spmi/audit/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiRtm: { id: "getSpmiRtm", m: "GET", path: "/v1/spmi/rtm", tag: "SPMI: Peningkatan", sum: "Rapat tinjauan manajemen: daftar", ds: "Terlihat oleh LPM dan personel unit (serta pengawas unit induk). Filter: periode_id, unit_id, status, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: judul, kesimpulan" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "periode_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, ds: "Filter periode_id (null = kosong)" }, { nm: "unit_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Filter unit_id (null = kosong)" }, { nm: "status", in: "query", s: { t: "string" }, ds: "Filter status (null = kosong)" }], r: "list", it: "SpmiRtm" }, postSpmiRtm: { id: "postSpmiRtm", m: "POST", path: "/v1/spmi/rtm", tag: "SPMI: Peningkatan", sum: "Rapat tinjauan manajemen: tambah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM.", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiRtmInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { periode_id: { t: "integer", n: 1, ds: "ID periode", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, judul: { t: "string", n: 1, max: 255 }, tanggal: { t: "string", n: 1, ds: "YYYY-MM-DD HH:MM:SS" }, tempat: { t: "string", n: 1, max: 255 }, pimpinan_rapat: { t: "string", n: 1, max: 150 }, notulis: { t: "string", n: 1, max: 150 }, peserta: { t: "string", n: 1 }, agenda: { t: "string", n: 1 }, masukan: { ds: "Objek/daftar JSON" }, notulen: { t: "string", n: 1 }, kesimpulan: { t: "string", n: 1 }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 }, status: { t: "string", e: ["rencana", "terlaksana", "disahkan"] } }, rq: ["periode_id", "unit_id", "judul"] }, rq: 1 }, r: "object", it: "SpmiRtm" }, getSpmiRtmByIdRiwayat: { id: "getSpmiRtmByIdRiwayat", m: "GET", path: "/v1/spmi/rtm/{id}/riwayat", tag: "SPMI: Peningkatan", sum: "Rapat tinjauan manajemen: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/rtm", k: "id", d: "/v1/spmi/rtm/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiRtmById: { id: "getSpmiRtmById", m: "GET", path: "/v1/spmi/rtm/{id}", tag: "SPMI: Peningkatan", sum: "Rapat tinjauan manajemen: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/rtm", k: "id", d: "/v1/spmi/rtm/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiRtm" }, putSpmiRtmById: { id: "putSpmiRtmById", m: "PUT", path: "/v1/spmi/rtm/{id}", tag: "SPMI: Peningkatan", sum: "Rapat tinjauan manajemen: ubah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM. Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/rtm", k: "id", d: "/v1/spmi/rtm/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiRtmInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { periode_id: { t: "integer", n: 1, ds: "ID periode", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, judul: { t: "string", n: 1, max: 255 }, tanggal: { t: "string", n: 1, ds: "YYYY-MM-DD HH:MM:SS" }, tempat: { t: "string", n: 1, max: 255 }, pimpinan_rapat: { t: "string", n: 1, max: 150 }, notulis: { t: "string", n: 1, max: 150 }, peserta: { t: "string", n: 1 }, agenda: { t: "string", n: 1 }, masukan: { ds: "Objek/daftar JSON" }, notulen: { t: "string", n: 1 }, kesimpulan: { t: "string", n: 1 }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 }, status: { t: "string", e: ["rencana", "terlaksana", "disahkan"] } }, rq: ["periode_id", "unit_id", "judul"] }, rq: 1 }, r: "object", it: "SpmiRtm" }, deleteSpmiRtmById: { id: "deleteSpmiRtmById", m: "DELETE", path: "/v1/spmi/rtm/{id}", tag: "SPMI: Peningkatan", sum: "Rapat tinjauan manajemen: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/rtm", k: "id", d: "/v1/spmi/rtm/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiRtmKeputusan: { id: "getSpmiRtmKeputusan", m: "GET", path: "/v1/spmi/rtm-keputusan", tag: "SPMI: Peningkatan", sum: "Keputusan RTM: daftar", ds: "Terlihat oleh LPM dan personel unit (serta pengawas unit induk). Filter: rtm_id, jenis, status, temuan_id, standar_id, pic_username, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: uraian, hasil" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "rtm_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/rtm", k: "id", d: "/v1/spmi/rtm/{id}" } }, ds: "Filter rtm_id (null = kosong)" }, { nm: "jenis", in: "query", s: { t: "string" }, ds: "Filter jenis (null = kosong)" }, { nm: "status", in: "query", s: { t: "string" }, ds: "Filter status (null = kosong)" }, { nm: "temuan_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/temuan", k: "id", d: "/v1/spmi/temuan/{id}" } }, ds: "Filter temuan_id (null = kosong)" }, { nm: "standar_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, ds: "Filter standar_id (null = kosong)" }, { nm: "pic_username", in: "query", s: { t: "string", rf: { l: "pengguna", k: "username" } }, ds: "Filter pic_username (null = kosong)" }], r: "list", it: "SpmiKeputusan" }, postSpmiRtmKeputusan: { id: "postSpmiRtmKeputusan", m: "POST", path: "/v1/spmi/rtm-keputusan", tag: "SPMI: Peningkatan", sum: "Keputusan RTM: tambah", ds: "Mengikuti hak data induk (rtm).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiKeputusanInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { rtm_id: { t: "integer", n: 1, ds: "ID rtm", rf: { l: "/v1/spmi/rtm", k: "id", d: "/v1/spmi/rtm/{id}" } }, uraian: { t: "string", n: 1 }, jenis: { t: "string", e: ["perbaikan", "peningkatan_standar", "sumber_daya", "kebijakan", "lainnya"] }, temuan_id: { t: "integer", n: 1, ds: "ID temuan", rf: { l: "/v1/spmi/temuan", k: "id", d: "/v1/spmi/temuan/{id}" } }, standar_id: { t: "integer", n: 1, ds: "ID standar", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, pic_username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, penanggung_jawab: { t: "string", n: 1, max: 150 }, batas_waktu: { t: "string", n: 1, f: "date" }, status: { t: "string", e: ["terbuka", "proses", "selesai", "batal"] }, hasil: { t: "string", n: 1 } }, rq: ["rtm_id", "uraian"] }, rq: 1 }, r: "object", it: "SpmiKeputusan" }, getSpmiRtmKeputusanByIdRiwayat: { id: "getSpmiRtmKeputusanByIdRiwayat", m: "GET", path: "/v1/spmi/rtm-keputusan/{id}/riwayat", tag: "SPMI: Peningkatan", sum: "Keputusan RTM: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/rtm-keputusan", k: "id", d: "/v1/spmi/rtm-keputusan/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiRtmKeputusanById: { id: "getSpmiRtmKeputusanById", m: "GET", path: "/v1/spmi/rtm-keputusan/{id}", tag: "SPMI: Peningkatan", sum: "Keputusan RTM: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/rtm-keputusan", k: "id", d: "/v1/spmi/rtm-keputusan/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiKeputusan" }, putSpmiRtmKeputusanById: { id: "putSpmiRtmKeputusanById", m: "PUT", path: "/v1/spmi/rtm-keputusan/{id}", tag: "SPMI: Peningkatan", sum: "Keputusan RTM: ubah", ds: "Mengikuti hak data induk (rtm). Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/rtm-keputusan", k: "id", d: "/v1/spmi/rtm-keputusan/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiKeputusanInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { rtm_id: { t: "integer", n: 1, ds: "ID rtm", rf: { l: "/v1/spmi/rtm", k: "id", d: "/v1/spmi/rtm/{id}" } }, uraian: { t: "string", n: 1 }, jenis: { t: "string", e: ["perbaikan", "peningkatan_standar", "sumber_daya", "kebijakan", "lainnya"] }, temuan_id: { t: "integer", n: 1, ds: "ID temuan", rf: { l: "/v1/spmi/temuan", k: "id", d: "/v1/spmi/temuan/{id}" } }, standar_id: { t: "integer", n: 1, ds: "ID standar", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, pic_username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, penanggung_jawab: { t: "string", n: 1, max: 150 }, batas_waktu: { t: "string", n: 1, f: "date" }, status: { t: "string", e: ["terbuka", "proses", "selesai", "batal"] }, hasil: { t: "string", n: 1 } }, rq: ["rtm_id", "uraian"] }, rq: 1 }, r: "object", it: "SpmiKeputusan" }, deleteSpmiRtmKeputusanById: { id: "deleteSpmiRtmKeputusanById", m: "DELETE", path: "/v1/spmi/rtm-keputusan/{id}", tag: "SPMI: Peningkatan", sum: "Keputusan RTM: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/rtm-keputusan", k: "id", d: "/v1/spmi/rtm-keputusan/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiRisiko: { id: "getSpmiRisiko", m: "GET", path: "/v1/spmi/risiko", tag: "SPMI: Pengendalian", sum: "Risiko: daftar", ds: "Terlihat oleh LPM dan personel unit (serta pengawas unit induk). Filter: periode_id, unit_id, standar_id, status, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: kode, uraian, mitigasi" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "periode_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, ds: "Filter periode_id (null = kosong)" }, { nm: "unit_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Filter unit_id (null = kosong)" }, { nm: "standar_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, ds: "Filter standar_id (null = kosong)" }, { nm: "status", in: "query", s: { t: "string" }, ds: "Filter status (null = kosong)" }], r: "list", it: "SpmiRisiko" }, postSpmiRisiko: { id: "postSpmiRisiko", m: "POST", path: "/v1/spmi/risiko", tag: "SPMI: Pengendalian", sum: "Risiko: tambah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM.", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiRisikoInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { periode_id: { t: "integer", n: 1, ds: "ID periode", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, standar_id: { t: "integer", n: 1, ds: "ID standar", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, kode: { t: "string", n: 1, max: 40 }, uraian: { t: "string", n: 1 }, penyebab: { t: "string", n: 1 }, dampak_uraian: { t: "string", n: 1 }, kemungkinan: { t: "integer", min: 1, mx: 5 }, dampak: { t: "integer", min: 1, mx: 5 }, pengendalian_ada: { t: "string", n: 1 }, mitigasi: { t: "string", n: 1 }, pic_username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, batas_waktu: { t: "string", n: 1, f: "date" }, kemungkinan_sisa: { t: "integer", min: 1, mx: 5 }, dampak_sisa: { t: "integer", min: 1, mx: 5 }, status: { t: "string", e: ["terbuka", "dimitigasi", "ditutup"] } }, rq: ["periode_id", "unit_id", "uraian", "kemungkinan", "dampak"] }, rq: 1 }, r: "object", it: "SpmiRisiko" }, getSpmiRisikoByIdRiwayat: { id: "getSpmiRisikoByIdRiwayat", m: "GET", path: "/v1/spmi/risiko/{id}/riwayat", tag: "SPMI: Pengendalian", sum: "Risiko: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/risiko", k: "id", d: "/v1/spmi/risiko/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiRisikoById: { id: "getSpmiRisikoById", m: "GET", path: "/v1/spmi/risiko/{id}", tag: "SPMI: Pengendalian", sum: "Risiko: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/risiko", k: "id", d: "/v1/spmi/risiko/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiRisiko" }, putSpmiRisikoById: { id: "putSpmiRisikoById", m: "PUT", path: "/v1/spmi/risiko/{id}", tag: "SPMI: Pengendalian", sum: "Risiko: ubah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM. Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/risiko", k: "id", d: "/v1/spmi/risiko/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiRisikoInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { periode_id: { t: "integer", n: 1, ds: "ID periode", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, standar_id: { t: "integer", n: 1, ds: "ID standar", rf: { l: "/v1/spmi/standar", k: "id", d: "/v1/spmi/standar/{id}" } }, kode: { t: "string", n: 1, max: 40 }, uraian: { t: "string", n: 1 }, penyebab: { t: "string", n: 1 }, dampak_uraian: { t: "string", n: 1 }, kemungkinan: { t: "integer", min: 1, mx: 5 }, dampak: { t: "integer", min: 1, mx: 5 }, pengendalian_ada: { t: "string", n: 1 }, mitigasi: { t: "string", n: 1 }, pic_username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, batas_waktu: { t: "string", n: 1, f: "date" }, kemungkinan_sisa: { t: "integer", min: 1, mx: 5 }, dampak_sisa: { t: "integer", min: 1, mx: 5 }, status: { t: "string", e: ["terbuka", "dimitigasi", "ditutup"] } }, rq: ["periode_id", "unit_id", "uraian", "kemungkinan", "dampak"] }, rq: 1 }, r: "object", it: "SpmiRisiko" }, deleteSpmiRisikoById: { id: "deleteSpmiRisikoById", m: "DELETE", path: "/v1/spmi/risiko/{id}", tag: "SPMI: Pengendalian", sum: "Risiko: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/risiko", k: "id", d: "/v1/spmi/risiko/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiSurvei: { id: "getSpmiSurvei", m: "GET", path: "/v1/spmi/survei", tag: "SPMI: Survei", sum: "Survei kepuasan: daftar", ds: "Terlihat oleh LPM dan personel unit (serta pengawas unit induk). Filter: periode_id, unit_id, sasaran, status, indikator_id, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: kode, judul" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "periode_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, ds: "Filter periode_id (null = kosong)" }, { nm: "unit_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Filter unit_id (null = kosong)" }, { nm: "sasaran", in: "query", s: { t: "string" }, ds: "Filter sasaran (null = kosong)" }, { nm: "status", in: "query", s: { t: "string" }, ds: "Filter status (null = kosong)" }, { nm: "indikator_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } }, ds: "Filter indikator_id (null = kosong)" }], r: "list", it: "SpmiSurvei" }, postSpmiSurvei: { id: "postSpmiSurvei", m: "POST", path: "/v1/spmi/survei", tag: "SPMI: Survei", sum: "Survei kepuasan: tambah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM.", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiSurveiInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { periode_id: { t: "integer", n: 1, ds: "ID periode", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, kode: { t: "string", max: 40, p: "^[A-Za-z0-9._\\-]+$" }, judul: { t: "string", n: 1, max: 255 }, pengantar: { t: "string", n: 1 }, sasaran: { t: "string", e: ["mahasiswa", "dosen", "tendik", "mitra", "orang_tua", "umum"] }, kode_prodi: { t: "string", n: 1, ds: "Kode prodi SIAKAD (m_program_studi)", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, tahun_id: { t: "string", n: 1, ds: "Tahun akademik SIAKAD, mis. 20251", rf: { l: "/v1/referensi/tahun-akademik", k: "tahun_id", q: 0 } }, skala: { t: "integer", min: 4, mx: 5 }, anonim: { t: "boolean" }, mulai: { t: "string", n: 1, ds: "YYYY-MM-DD HH:MM:SS" }, selesai: { t: "string", n: 1, ds: "YYYY-MM-DD HH:MM:SS" }, indikator_id: { t: "integer", n: 1, ds: "ID indikator", rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } } }, rq: ["periode_id", "kode", "judul", "sasaran"] }, rq: 1 }, r: "object", it: "SpmiSurvei" }, getSpmiSurveiByIdRiwayat: { id: "getSpmiSurveiByIdRiwayat", m: "GET", path: "/v1/spmi/survei/{id}/riwayat", tag: "SPMI: Survei", sum: "Survei kepuasan: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei", k: "id", d: "/v1/spmi/survei/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiSurveiById: { id: "getSpmiSurveiById", m: "GET", path: "/v1/spmi/survei/{id}", tag: "SPMI: Survei", sum: "Survei kepuasan: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei", k: "id", d: "/v1/spmi/survei/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiSurvei" }, putSpmiSurveiById: { id: "putSpmiSurveiById", m: "PUT", path: "/v1/spmi/survei/{id}", tag: "SPMI: Survei", sum: "Survei kepuasan: ubah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM. Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei", k: "id", d: "/v1/spmi/survei/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiSurveiInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { periode_id: { t: "integer", n: 1, ds: "ID periode", rf: { l: "/v1/spmi/periode", k: "id", d: "/v1/spmi/periode/{id}" } }, unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, kode: { t: "string", max: 40, p: "^[A-Za-z0-9._\\-]+$" }, judul: { t: "string", n: 1, max: 255 }, pengantar: { t: "string", n: 1 }, sasaran: { t: "string", e: ["mahasiswa", "dosen", "tendik", "mitra", "orang_tua", "umum"] }, kode_prodi: { t: "string", n: 1, ds: "Kode prodi SIAKAD (m_program_studi)", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, tahun_id: { t: "string", n: 1, ds: "Tahun akademik SIAKAD, mis. 20251", rf: { l: "/v1/referensi/tahun-akademik", k: "tahun_id", q: 0 } }, skala: { t: "integer", min: 4, mx: 5 }, anonim: { t: "boolean" }, mulai: { t: "string", n: 1, ds: "YYYY-MM-DD HH:MM:SS" }, selesai: { t: "string", n: 1, ds: "YYYY-MM-DD HH:MM:SS" }, indikator_id: { t: "integer", n: 1, ds: "ID indikator", rf: { l: "/v1/spmi/indikator", k: "id", d: "/v1/spmi/indikator/{id}" } } }, rq: ["periode_id", "kode", "judul", "sasaran"] }, rq: 1 }, r: "object", it: "SpmiSurvei" }, deleteSpmiSurveiById: { id: "deleteSpmiSurveiById", m: "DELETE", path: "/v1/spmi/survei/{id}", tag: "SPMI: Survei", sum: "Survei kepuasan: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei", k: "id", d: "/v1/spmi/survei/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiSurveiPertanyaan: { id: "getSpmiSurveiPertanyaan", m: "GET", path: "/v1/spmi/survei-pertanyaan", tag: "SPMI: Survei", sum: "Butir survei: daftar", ds: "Terlihat oleh LPM dan personel unit (serta pengawas unit induk). Filter: survei_id, dimensi, tipe, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: teks, bagian" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "survei_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/survei", k: "id", d: "/v1/spmi/survei/{id}" } }, ds: "Filter survei_id (null = kosong)" }, { nm: "dimensi", in: "query", s: { t: "string" }, ds: "Filter dimensi (null = kosong)" }, { nm: "tipe", in: "query", s: { t: "string" }, ds: "Filter tipe (null = kosong)" }], r: "list", it: "SpmiPertanyaan" }, postSpmiSurveiPertanyaan: { id: "postSpmiSurveiPertanyaan", m: "POST", path: "/v1/spmi/survei-pertanyaan", tag: "SPMI: Survei", sum: "Butir survei: tambah", ds: "Mengikuti hak data induk (survei).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiPertanyaanInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { survei_id: { t: "integer", n: 1, ds: "ID survei", rf: { l: "/v1/spmi/survei", k: "id", d: "/v1/spmi/survei/{id}" } }, urut: { t: "integer", min: 0, mx: 65535 }, bagian: { t: "string", n: 1, max: 150 }, dimensi: { t: "string", e: ["tangible", "reliability", "responsiveness", "assurance", "empathy", "lainnya"] }, tipe: { t: "string", e: ["likert", "pilihan", "pilihan_ganda", "teks", "angka"] }, teks: { t: "string", n: 1 }, pilihan: { ds: "Objek/daftar JSON" }, wajib: { t: "boolean" } }, rq: ["survei_id", "teks"] }, rq: 1 }, r: "object", it: "SpmiPertanyaan" }, getSpmiSurveiPertanyaanByIdRiwayat: { id: "getSpmiSurveiPertanyaanByIdRiwayat", m: "GET", path: "/v1/spmi/survei-pertanyaan/{id}/riwayat", tag: "SPMI: Survei", sum: "Butir survei: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei-pertanyaan", k: "id", d: "/v1/spmi/survei-pertanyaan/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiSurveiPertanyaanById: { id: "getSpmiSurveiPertanyaanById", m: "GET", path: "/v1/spmi/survei-pertanyaan/{id}", tag: "SPMI: Survei", sum: "Butir survei: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei-pertanyaan", k: "id", d: "/v1/spmi/survei-pertanyaan/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiPertanyaan" }, putSpmiSurveiPertanyaanById: { id: "putSpmiSurveiPertanyaanById", m: "PUT", path: "/v1/spmi/survei-pertanyaan/{id}", tag: "SPMI: Survei", sum: "Butir survei: ubah", ds: "Mengikuti hak data induk (survei). Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei-pertanyaan", k: "id", d: "/v1/spmi/survei-pertanyaan/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiPertanyaanInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { survei_id: { t: "integer", n: 1, ds: "ID survei", rf: { l: "/v1/spmi/survei", k: "id", d: "/v1/spmi/survei/{id}" } }, urut: { t: "integer", min: 0, mx: 65535 }, bagian: { t: "string", n: 1, max: 150 }, dimensi: { t: "string", e: ["tangible", "reliability", "responsiveness", "assurance", "empathy", "lainnya"] }, tipe: { t: "string", e: ["likert", "pilihan", "pilihan_ganda", "teks", "angka"] }, teks: { t: "string", n: 1 }, pilihan: { ds: "Objek/daftar JSON" }, wajib: { t: "boolean" } }, rq: ["survei_id", "teks"] }, rq: 1 }, r: "object", it: "SpmiPertanyaan" }, deleteSpmiSurveiPertanyaanById: { id: "deleteSpmiSurveiPertanyaanById", m: "DELETE", path: "/v1/spmi/survei-pertanyaan/{id}", tag: "SPMI: Survei", sum: "Butir survei: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/survei-pertanyaan", k: "id", d: "/v1/spmi/survei-pertanyaan/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiAkreditasi: { id: "getSpmiAkreditasi", m: "GET", path: "/v1/spmi/akreditasi", tag: "SPMI: Akreditasi", sum: "Status akreditasi: daftar", ds: "Terlihat oleh semua pemilik spmi:read. Filter: unit_id, lingkup, lembaga, status, terkini, sumber, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: nomor_sk, peringkat, instrumen" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "unit_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Filter unit_id (null = kosong)" }, { nm: "lingkup", in: "query", s: { t: "string" }, ds: "Filter lingkup (null = kosong)" }, { nm: "lembaga", in: "query", s: { t: "string" }, ds: "Filter lembaga (null = kosong)" }, { nm: "status", in: "query", s: { t: "string" }, ds: "Filter status (null = kosong)" }, { nm: "terkini", in: "query", s: { t: "string" }, ds: "Filter terkini (null = kosong)" }, { nm: "sumber", in: "query", s: { t: "string" }, ds: "Filter sumber (null = kosong)" }], r: "list", it: "SpmiAkreditasi" }, postSpmiAkreditasi: { id: "postSpmiAkreditasi", m: "POST", path: "/v1/spmi/akreditasi", tag: "SPMI: Akreditasi", sum: "Status akreditasi: tambah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM.", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiAkreditasiInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, lingkup: { t: "string", e: ["institusi", "prodi"] }, lembaga: { t: "string", e: ["ban_pt", "lamemba", "lamdik", "lam_ptkes", "lam_infokom", "lam_teknik", "lamsama", "lamspak", "lam_hukum", "internasional", "lainnya"] }, status: { t: "string", e: ["terakreditasi_unggul", "terakreditasi", "terakreditasi_pertama", "tidak_terakreditasi", "dalam_proses"] }, peringkat: { t: "string", n: 1, max: 30 }, instrumen: { t: "string", n: 1, max: 100 }, nilai: { t: "number", n: 1 }, nomor_sk: { t: "string", n: 1, max: 150 }, tanggal_sk: { t: "string", n: 1, f: "date" }, berlaku_mulai: { t: "string", n: 1, f: "date" }, berlaku_sampai: { t: "string", n: 1, f: "date" }, tautan_sk: { t: "string", n: 1, f: "uri", max: 500 }, terkini: { t: "boolean" }, catatan: { t: "string", n: 1 } }, rq: ["unit_id", "lingkup", "lembaga", "status"] }, rq: 1 }, r: "object", it: "SpmiAkreditasi" }, getSpmiAkreditasiByIdRiwayat: { id: "getSpmiAkreditasiByIdRiwayat", m: "GET", path: "/v1/spmi/akreditasi/{id}/riwayat", tag: "SPMI: Akreditasi", sum: "Status akreditasi: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi", k: "id", d: "/v1/spmi/akreditasi/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiAkreditasiById: { id: "getSpmiAkreditasiById", m: "GET", path: "/v1/spmi/akreditasi/{id}", tag: "SPMI: Akreditasi", sum: "Status akreditasi: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi", k: "id", d: "/v1/spmi/akreditasi/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiAkreditasi" }, putSpmiAkreditasiById: { id: "putSpmiAkreditasiById", m: "PUT", path: "/v1/spmi/akreditasi/{id}", tag: "SPMI: Akreditasi", sum: "Status akreditasi: ubah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM. Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi", k: "id", d: "/v1/spmi/akreditasi/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiAkreditasiInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, lingkup: { t: "string", e: ["institusi", "prodi"] }, lembaga: { t: "string", e: ["ban_pt", "lamemba", "lamdik", "lam_ptkes", "lam_infokom", "lam_teknik", "lamsama", "lamspak", "lam_hukum", "internasional", "lainnya"] }, status: { t: "string", e: ["terakreditasi_unggul", "terakreditasi", "terakreditasi_pertama", "tidak_terakreditasi", "dalam_proses"] }, peringkat: { t: "string", n: 1, max: 30 }, instrumen: { t: "string", n: 1, max: 100 }, nilai: { t: "number", n: 1 }, nomor_sk: { t: "string", n: 1, max: 150 }, tanggal_sk: { t: "string", n: 1, f: "date" }, berlaku_mulai: { t: "string", n: 1, f: "date" }, berlaku_sampai: { t: "string", n: 1, f: "date" }, tautan_sk: { t: "string", n: 1, f: "uri", max: 500 }, terkini: { t: "boolean" }, catatan: { t: "string", n: 1 } }, rq: ["unit_id", "lingkup", "lembaga", "status"] }, rq: 1 }, r: "object", it: "SpmiAkreditasi" }, deleteSpmiAkreditasiById: { id: "deleteSpmiAkreditasiById", m: "DELETE", path: "/v1/spmi/akreditasi/{id}", tag: "SPMI: Akreditasi", sum: "Status akreditasi: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi", k: "id", d: "/v1/spmi/akreditasi/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiAkreditasiInstrumen: { id: "getSpmiAkreditasiInstrumen", m: "GET", path: "/v1/spmi/akreditasi-instrumen", tag: "SPMI: Akreditasi", sum: "Instrumen akreditasi: daftar", ds: "Terlihat oleh semua pemilik spmi:read. Filter: lembaga, lingkup, aktif, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: kode, nama" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "lembaga", in: "query", s: { t: "string" }, ds: "Filter lembaga (null = kosong)" }, { nm: "lingkup", in: "query", s: { t: "string" }, ds: "Filter lingkup (null = kosong)" }, { nm: "aktif", in: "query", s: { t: "string" }, ds: "Filter aktif (null = kosong)" }], r: "list", it: "SpmiInstrumen" }, postSpmiAkreditasiInstrumen: { id: "postSpmiAkreditasiInstrumen", m: "POST", path: "/v1/spmi/akreditasi-instrumen", tag: "SPMI: Akreditasi", sum: "Instrumen akreditasi: tambah", ds: "Dikelola admin SPMI (LPM/ADMIN).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiInstrumenInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { kode: { t: "string", max: 40, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, lembaga: { t: "string", e: ["ban_pt", "lamemba", "lamdik", "lam_ptkes", "lam_infokom", "lam_teknik", "lamsama", "lamspak", "lam_hukum", "internasional", "lainnya"] }, lingkup: { t: "string", e: ["institusi", "prodi"] }, dasar: { t: "string", n: 1, max: 255 }, aktif: { t: "boolean" }, catatan: { t: "string", n: 1 } }, rq: ["kode", "nama", "lembaga", "lingkup"] }, rq: 1 }, r: "object", it: "SpmiInstrumen" }, getSpmiAkreditasiInstrumenByIdRiwayat: { id: "getSpmiAkreditasiInstrumenByIdRiwayat", m: "GET", path: "/v1/spmi/akreditasi-instrumen/{id}/riwayat", tag: "SPMI: Akreditasi", sum: "Instrumen akreditasi: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-instrumen", k: "id", d: "/v1/spmi/akreditasi-instrumen/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiAkreditasiInstrumenById: { id: "getSpmiAkreditasiInstrumenById", m: "GET", path: "/v1/spmi/akreditasi-instrumen/{id}", tag: "SPMI: Akreditasi", sum: "Instrumen akreditasi: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-instrumen", k: "id", d: "/v1/spmi/akreditasi-instrumen/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiInstrumen" }, putSpmiAkreditasiInstrumenById: { id: "putSpmiAkreditasiInstrumenById", m: "PUT", path: "/v1/spmi/akreditasi-instrumen/{id}", tag: "SPMI: Akreditasi", sum: "Instrumen akreditasi: ubah", ds: "Dikelola admin SPMI (LPM/ADMIN). Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-instrumen", k: "id", d: "/v1/spmi/akreditasi-instrumen/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiInstrumenInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { kode: { t: "string", max: 40, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, lembaga: { t: "string", e: ["ban_pt", "lamemba", "lamdik", "lam_ptkes", "lam_infokom", "lam_teknik", "lamsama", "lamspak", "lam_hukum", "internasional", "lainnya"] }, lingkup: { t: "string", e: ["institusi", "prodi"] }, dasar: { t: "string", n: 1, max: 255 }, aktif: { t: "boolean" }, catatan: { t: "string", n: 1 } }, rq: ["kode", "nama", "lembaga", "lingkup"] }, rq: 1 }, r: "object", it: "SpmiInstrumen" }, deleteSpmiAkreditasiInstrumenById: { id: "deleteSpmiAkreditasiInstrumenById", m: "DELETE", path: "/v1/spmi/akreditasi-instrumen/{id}", tag: "SPMI: Akreditasi", sum: "Instrumen akreditasi: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-instrumen", k: "id", d: "/v1/spmi/akreditasi-instrumen/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiAkreditasiKriteria: { id: "getSpmiAkreditasiKriteria", m: "GET", path: "/v1/spmi/akreditasi-kriteria", tag: "SPMI: Akreditasi", sum: "Kriteria instrumen: daftar", ds: "Terlihat oleh semua pemilik spmi:read. Filter: instrumen_id, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: kode, nama" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "instrumen_id", in: "query", s: { t: "string" }, ds: "Filter instrumen_id (null = kosong)" }], r: "list", it: "SpmiKriteria" }, postSpmiAkreditasiKriteria: { id: "postSpmiAkreditasiKriteria", m: "POST", path: "/v1/spmi/akreditasi-kriteria", tag: "SPMI: Akreditasi", sum: "Kriteria instrumen: tambah", ds: "Dikelola admin SPMI (LPM/ADMIN).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiKriteriaInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { instrumen_id: { t: "integer", n: 1, ds: "ID instrumen" }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, deskripsi: { t: "string", n: 1 }, bobot: { t: "number", n: 1 }, urut: { t: "integer", min: 0, mx: 65535 } }, rq: ["instrumen_id", "kode", "nama"] }, rq: 1 }, r: "object", it: "SpmiKriteria" }, getSpmiAkreditasiKriteriaByIdRiwayat: { id: "getSpmiAkreditasiKriteriaByIdRiwayat", m: "GET", path: "/v1/spmi/akreditasi-kriteria/{id}/riwayat", tag: "SPMI: Akreditasi", sum: "Kriteria instrumen: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-kriteria", k: "id", d: "/v1/spmi/akreditasi-kriteria/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiAkreditasiKriteriaById: { id: "getSpmiAkreditasiKriteriaById", m: "GET", path: "/v1/spmi/akreditasi-kriteria/{id}", tag: "SPMI: Akreditasi", sum: "Kriteria instrumen: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-kriteria", k: "id", d: "/v1/spmi/akreditasi-kriteria/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiKriteria" }, putSpmiAkreditasiKriteriaById: { id: "putSpmiAkreditasiKriteriaById", m: "PUT", path: "/v1/spmi/akreditasi-kriteria/{id}", tag: "SPMI: Akreditasi", sum: "Kriteria instrumen: ubah", ds: "Dikelola admin SPMI (LPM/ADMIN). Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-kriteria", k: "id", d: "/v1/spmi/akreditasi-kriteria/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiKriteriaInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { instrumen_id: { t: "integer", n: 1, ds: "ID instrumen" }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, deskripsi: { t: "string", n: 1 }, bobot: { t: "number", n: 1 }, urut: { t: "integer", min: 0, mx: 65535 } }, rq: ["instrumen_id", "kode", "nama"] }, rq: 1 }, r: "object", it: "SpmiKriteria" }, deleteSpmiAkreditasiKriteriaById: { id: "deleteSpmiAkreditasiKriteriaById", m: "DELETE", path: "/v1/spmi/akreditasi-kriteria/{id}", tag: "SPMI: Akreditasi", sum: "Kriteria instrumen: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-kriteria", k: "id", d: "/v1/spmi/akreditasi-kriteria/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiAkreditasiPersiapan: { id: "getSpmiAkreditasiPersiapan", m: "GET", path: "/v1/spmi/akreditasi-persiapan", tag: "SPMI: Akreditasi", sum: "Persiapan akreditasi: daftar", ds: "Terlihat oleh LPM dan personel unit (serta pengawas unit induk). Filter: unit_id, instrumen_id, jenis, status, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: catatan, tim" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "unit_id", in: "query", s: { t: "string", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, ds: "Filter unit_id (null = kosong)" }, { nm: "instrumen_id", in: "query", s: { t: "string" }, ds: "Filter instrumen_id (null = kosong)" }, { nm: "jenis", in: "query", s: { t: "string" }, ds: "Filter jenis (null = kosong)" }, { nm: "status", in: "query", s: { t: "string" }, ds: "Filter status (null = kosong)" }], r: "list", it: "SpmiPersiapan" }, postSpmiAkreditasiPersiapan: { id: "postSpmiAkreditasiPersiapan", m: "POST", path: "/v1/spmi/akreditasi-persiapan", tag: "SPMI: Akreditasi", sum: "Persiapan akreditasi: tambah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM.", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiPersiapanInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, instrumen_id: { t: "integer", n: 1, ds: "ID instrumen" }, jenis: { t: "string", e: ["baru", "reakreditasi", "peningkatan", "perpanjangan"] }, target_status: { t: "string", e: ["terakreditasi_unggul", "terakreditasi", "terakreditasi_pertama", "tidak_terakreditasi", "dalam_proses"] }, target_pengajuan: { t: "string", n: 1, f: "date" }, tanggal_pengajuan: { t: "string", n: 1, f: "date" }, ketua_username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, tim: { t: "string", n: 1 }, status: { t: "string", e: ["persiapan", "penyusunan", "diajukan", "asesmen_kecukupan", "asesmen_lapangan", "keputusan", "selesai", "batal"] }, akreditasi_id: { t: "integer", n: 1, ds: "ID akreditasi", rf: { l: "/v1/spmi/akreditasi", k: "id", d: "/v1/spmi/akreditasi/{id}" } }, catatan: { t: "string", n: 1 } }, rq: ["unit_id"] }, rq: 1 }, r: "object", it: "SpmiPersiapan" }, getSpmiAkreditasiPersiapanByIdRiwayat: { id: "getSpmiAkreditasiPersiapanByIdRiwayat", m: "GET", path: "/v1/spmi/akreditasi-persiapan/{id}/riwayat", tag: "SPMI: Akreditasi", sum: "Persiapan akreditasi: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-persiapan", k: "id", d: "/v1/spmi/akreditasi-persiapan/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiAkreditasiPersiapanById: { id: "getSpmiAkreditasiPersiapanById", m: "GET", path: "/v1/spmi/akreditasi-persiapan/{id}", tag: "SPMI: Akreditasi", sum: "Persiapan akreditasi: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-persiapan", k: "id", d: "/v1/spmi/akreditasi-persiapan/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiPersiapan" }, putSpmiAkreditasiPersiapanById: { id: "putSpmiAkreditasiPersiapanById", m: "PUT", path: "/v1/spmi/akreditasi-persiapan/{id}", tag: "SPMI: Akreditasi", sum: "Persiapan akreditasi: ubah", ds: "Dikelola LPM atau pengelola mutu unit (unit_id); unit_id kosong = LPM. Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-persiapan", k: "id", d: "/v1/spmi/akreditasi-persiapan/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiPersiapanInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { unit_id: { t: "integer", n: 1, ds: "ID unit", rf: { l: "/v1/spmi/unit", k: "id", d: "/v1/spmi/unit/{id}" } }, instrumen_id: { t: "integer", n: 1, ds: "ID instrumen" }, jenis: { t: "string", e: ["baru", "reakreditasi", "peningkatan", "perpanjangan"] }, target_status: { t: "string", e: ["terakreditasi_unggul", "terakreditasi", "terakreditasi_pertama", "tidak_terakreditasi", "dalam_proses"] }, target_pengajuan: { t: "string", n: 1, f: "date" }, tanggal_pengajuan: { t: "string", n: 1, f: "date" }, ketua_username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, tim: { t: "string", n: 1 }, status: { t: "string", e: ["persiapan", "penyusunan", "diajukan", "asesmen_kecukupan", "asesmen_lapangan", "keputusan", "selesai", "batal"] }, akreditasi_id: { t: "integer", n: 1, ds: "ID akreditasi", rf: { l: "/v1/spmi/akreditasi", k: "id", d: "/v1/spmi/akreditasi/{id}" } }, catatan: { t: "string", n: 1 } }, rq: ["unit_id"] }, rq: 1 }, r: "object", it: "SpmiPersiapan" }, deleteSpmiAkreditasiPersiapanById: { id: "deleteSpmiAkreditasiPersiapanById", m: "DELETE", path: "/v1/spmi/akreditasi-persiapan/{id}", tag: "SPMI: Akreditasi", sum: "Persiapan akreditasi: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-persiapan", k: "id", d: "/v1/spmi/akreditasi-persiapan/{id}" } }, rq: 1, ds: "ID" }], r: "none" }, getSpmiAkreditasiButir: { id: "getSpmiAkreditasiButir", m: "GET", path: "/v1/spmi/akreditasi-butir", tag: "SPMI: Akreditasi", sum: "Butir persiapan akreditasi: daftar", ds: "Terlihat oleh LPM dan personel unit (serta pengawas unit induk). Filter: persiapan_id, status, pic_username, q (cari).", sc: ["spmi:read"], pa: [{ nm: "q", in: "query", s: { t: "string" }, ds: "Cari: kode, nama, narasi" }, { nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "persiapan_id", in: "query", s: { t: "string" }, ds: "Filter persiapan_id (null = kosong)" }, { nm: "status", in: "query", s: { t: "string" }, ds: "Filter status (null = kosong)" }, { nm: "pic_username", in: "query", s: { t: "string", rf: { l: "pengguna", k: "username" } }, ds: "Filter pic_username (null = kosong)" }], r: "list", it: "SpmiButir" }, postSpmiAkreditasiButir: { id: "postSpmiAkreditasiButir", m: "POST", path: "/v1/spmi/akreditasi-butir", tag: "SPMI: Akreditasi", sum: "Butir persiapan akreditasi: tambah", ds: "Mengikuti hak data induk (persiapan).", sc: ["spmi:write"], b: { ct: "application/json", ref: "SpmiButirInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { persiapan_id: { t: "integer", n: 1, ds: "ID persiapan" }, kriteria_id: { t: "integer", n: 1, ds: "ID kriteria" }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, narasi: { t: "string", n: 1 }, skor_simulasi: { t: "number", n: 1 }, bobot: { t: "number", n: 1 }, pic_username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 }, status: { t: "string", e: ["belum", "proses", "selesai", "ditinjau"] }, catatan: { t: "string", n: 1 }, urut: { t: "integer", min: 0, mx: 65535 } }, rq: ["persiapan_id", "kode", "nama"] }, rq: 1 }, r: "object", it: "SpmiButir" }, getSpmiAkreditasiButirByIdRiwayat: { id: "getSpmiAkreditasiButirByIdRiwayat", m: "GET", path: "/v1/spmi/akreditasi-butir/{id}/riwayat", tag: "SPMI: Akreditasi", sum: "Butir persiapan akreditasi: riwayat perubahan", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-butir", k: "id", d: "/v1/spmi/akreditasi-butir/{id}" } }, rq: 1, ds: "ID" }], r: "list", it: "Objek" }, getSpmiAkreditasiButirById: { id: "getSpmiAkreditasiButirById", m: "GET", path: "/v1/spmi/akreditasi-butir/{id}", tag: "SPMI: Akreditasi", sum: "Butir persiapan akreditasi: detail", sc: ["spmi:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-butir", k: "id", d: "/v1/spmi/akreditasi-butir/{id}" } }, rq: 1, ds: "ID" }], r: "object", it: "SpmiButir" }, putSpmiAkreditasiButirById: { id: "putSpmiAkreditasiButirById", m: "PUT", path: "/v1/spmi/akreditasi-butir/{id}", tag: "SPMI: Akreditasi", sum: "Butir persiapan akreditasi: ubah", ds: "Mengikuti hak data induk (persiapan). Kirim hanya kolom yang berubah.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-butir", k: "id", d: "/v1/spmi/akreditasi-butir/{id}" } }, rq: 1, ds: "ID" }], b: { ct: "application/json", ref: "SpmiButirInput", s: { t: "object", ds: "Saat ubah (PUT), kirim hanya kolom yang berubah.", pr: { persiapan_id: { t: "integer", n: 1, ds: "ID persiapan" }, kriteria_id: { t: "integer", n: 1, ds: "ID kriteria" }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, narasi: { t: "string", n: 1 }, skor_simulasi: { t: "number", n: 1 }, bobot: { t: "number", n: 1 }, pic_username: { t: "string", n: 1, ds: "username SIAKAD", rf: { l: "pengguna", k: "username" } }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 }, status: { t: "string", e: ["belum", "proses", "selesai", "ditinjau"] }, catatan: { t: "string", n: 1 }, urut: { t: "integer", min: 0, mx: 65535 } }, rq: ["persiapan_id", "kode", "nama"] }, rq: 1 }, r: "object", it: "SpmiButir" }, deleteSpmiAkreditasiButirById: { id: "deleteSpmiAkreditasiButirById", m: "DELETE", path: "/v1/spmi/akreditasi-butir/{id}", tag: "SPMI: Akreditasi", sum: "Butir persiapan akreditasi: hapus", ds: "Ditolak bila masih dipakai data lain.", sc: ["spmi:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/spmi/akreditasi-butir", k: "id", d: "/v1/spmi/akreditasi-butir/{id}" } }, rq: 1, ds: "ID" }], r: "none" } };
|
|
6
|
+
var mandiri = ["getSpmiReferensi", "getSpmiSaya", "getSpmiDasbor", "getSpmiTugasSaya", "postSpmiNotifikasiBaca", "postSpmiNotifikasiByIdBaca", "postSpmiUnitSinkronSiakad", "getSpmiMetrikByKodeUji", "getSpmiCapaianRekap", "postSpmiCapaianSiapkan", "postSpmiCapaianHitung", "postSpmiCapaianAjukan", "postSpmiAuditeeByIdTilikSiapkan", "getSpmiSurveiEdom", "getSpmiAkreditasiPantau", "postSpmiAkreditasiSinkronSiakad"];
|
|
7
|
+
var skema = { Objek: { t: "object", ds: "Baris data dengan nama kolom huruf kecil sesuai tabel SIAKAD." }, SpmiStandar: { t: "object", pr: { id: { t: "integer" }, induk_id: { t: "integer", n: 1, ds: "ID standar" }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, bidang: { t: "string", e: ["pendidikan", "penelitian", "pkm", "tata_kelola", "kemahasiswaan", "sdm", "sarpras", "kerja_sama", "keuangan", "kesejahteraan", "lainnya"] }, kelompok: { t: "string", e: ["luaran", "proses", "masukan", "lainnya"] }, sumber: { t: "string", e: ["sn_dikti", "pt"] }, rasional: { t: "string", n: 1 }, pernyataan: { t: "string", n: 1 }, strategi: { t: "string", n: 1 }, pihak_terkait: { t: "string", n: 1 }, definisi_istilah: { t: "string", n: 1 }, referensi: { t: "string", n: 1 }, dokumen_id: { t: "integer", n: 1, ds: "ID dokumen" }, versi: { t: "string", n: 1, max: 20 }, status: { t: "string", e: ["draf", "berlaku", "dicabut"] }, berlaku_mulai: { t: "string", n: 1, f: "date" }, urut: { t: "integer", min: 0, mx: 65535 }, dibuat_oleh: { t: "string", n: 1 }, diubah_oleh: { t: "string", n: 1 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiCapaian: { t: "object", pr: { id: { t: "integer" }, indikator_id: { t: "integer" }, periode_id: { t: "integer" }, unit_id: { t: "integer" }, target: { t: "number", n: 1 }, nilai: { t: "number", n: 1 }, nilai_teks: { t: "string", n: 1 }, nilai_otomatis: { t: "number", n: 1, ds: "Hasil metrik SIAKAD" }, rincian_otomatis: { ds: "Rincian hitungan metrik (JSON)" }, dihitung_pada: { t: "string", n: 1 }, pemenuhan: { t: "string", e: ["belum", "tercapai", "melampaui", "tidak_tercapai"] }, analisis: { t: "string", n: 1 }, kendala: { t: "string", n: 1 }, rencana_perbaikan: { t: "string", n: 1 }, tautan_bukti: { t: "string", n: 1 }, status: { t: "string", e: ["draf", "diajukan", "diverifikasi", "dikembalikan"] }, diajukan_pada: { t: "string", n: 1 }, diverifikasi_pada: { t: "string", n: 1 }, catatan_verifikasi: { t: "string", n: 1 }, standar_kode: { t: "string", n: 1 }, indikator_kode: { t: "string", n: 1 }, pernyataan: { t: "string", n: 1 }, satuan: { t: "string", n: 1 }, metrik: { t: "string", n: 1 }, unit: { t: "string", n: 1 } } }, SpmiAuditee: { t: "object", pr: { id: { t: "integer" }, audit_id: { t: "integer" }, unit_id: { t: "integer" }, unit: { t: "string", n: 1 }, jadwal_desk: { t: "string", n: 1, f: "date" }, jadwal_visitasi: { t: "string", n: 1, ds: "YYYY-MM-DD HH:MM:SS" }, tempat: { t: "string", n: 1 }, status: { t: "string", e: ["dijadwalkan", "evaluasi_diri", "desk", "visitasi", "pelaporan", "disetujui", "selesai"] }, kekuatan: { t: "string", n: 1 }, peluang_peningkatan: { t: "string", n: 1 }, kesimpulan: { t: "string", n: 1 }, skor: { t: "number", n: 1, ds: "Rata-rata skor daftar tilik 0-4" }, disetujui_auditee_pada: { t: "string", n: 1 }, tanggapan_auditee: { t: "string", n: 1 }, disahkan_pada: { t: "string", n: 1 }, tim: { t: "array", i: { t: "object" } }, peran_saya: { t: "string", n: 1, ds: "ketua | anggota | auditee | admin | null" } } }, SpmiTilik: { t: "object", pr: { id: { t: "integer" }, auditee_id: { t: "integer" }, standar_id: { t: "integer", n: 1 }, indikator_id: { t: "integer", n: 1 }, urut: { t: "integer" }, pertanyaan: { t: "string" }, jawaban_auditee: { t: "string", n: 1 }, tautan_bukti: { t: "string", n: 1 }, capaian: { t: "number", n: 1 }, skor: { t: "integer", n: 1, ds: "0-4" }, hasil: { t: "string", e: ["belum", "melampaui", "sesuai", "observasi", "kts_minor", "kts_mayor"] }, catatan_auditor: { t: "string", n: 1 } } }, SpmiTemuan: { t: "object", pr: { id: { t: "integer" }, kode: { t: "string", ds: "TM-<tahun>-<urut>" }, periode_id: { t: "integer" }, unit_id: { t: "integer" }, sumber: { t: "string", e: ["ami", "pemantauan", "survei", "rtm", "eksternal", "lainnya"] }, auditee_id: { t: "integer", n: 1 }, daftar_tilik_id: { t: "integer", n: 1 }, standar_id: { t: "integer", n: 1 }, indikator_id: { t: "integer", n: 1 }, kategori: { t: "string", e: ["kts_mayor", "kts_minor", "observasi", "peluang_peningkatan", "praktik_baik"] }, uraian: { t: "string" }, kriteria: { t: "string", n: 1 }, akar_masalah: { t: "string", n: 1 }, akibat: { t: "string", n: 1 }, rekomendasi: { t: "string", n: 1 }, pic_username: { t: "string", n: 1 }, batas_waktu: { t: "string", n: 1, f: "date" }, status: { t: "string", e: ["terbuka", "rencana", "proses", "verifikasi", "ditutup", "dibatalkan"] }, ditutup_pada: { t: "string", n: 1 }, catatan_penutupan: { t: "string", n: 1 }, terlambat: { t: "boolean" }, tindak_lanjut: { t: "array", i: { t: "object" } } } }, SpmiSurvei: { t: "object", pr: { id: { t: "integer" }, periode_id: { t: "integer", n: 1, ds: "ID periode" }, unit_id: { t: "integer", n: 1, ds: "ID unit" }, kode: { t: "string", max: 40, p: "^[A-Za-z0-9._\\-]+$" }, judul: { t: "string", n: 1, max: 255 }, pengantar: { t: "string", n: 1 }, sasaran: { t: "string", e: ["mahasiswa", "dosen", "tendik", "mitra", "orang_tua", "umum"] }, kode_prodi: { t: "string", n: 1, ds: "Kode prodi SIAKAD (m_program_studi)" }, tahun_id: { t: "string", n: 1, ds: "Tahun akademik SIAKAD, mis. 20251" }, skala: { t: "integer", min: 4, mx: 5 }, anonim: { t: "boolean" }, mulai: { t: "string", n: 1, ds: "YYYY-MM-DD HH:MM:SS" }, selesai: { t: "string", n: 1, ds: "YYYY-MM-DD HH:MM:SS" }, indikator_id: { t: "integer", n: 1, ds: "ID indikator" }, dibuat_oleh: { t: "string", n: 1 }, diubah_oleh: { t: "string", n: 1 }, status: { t: "string", e: ["draf", "terbit", "ditutup"] }, token_publik: { t: "string", n: 1, ds: "Hanya untuk pengelola; sasaran luar mengisi lewat /publik/survei/{token}" }, jumlah_pertanyaan: { t: "integer" }, jumlah_respon: { t: "integer" }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiFile: { t: "object", pr: { id: { t: "string", f: "uuid" }, entitas: { t: "string", e: ["dokumen", "capaian", "kegiatan", "tilik", "auditee", "temuan", "tindak_lanjut", "rtm", "akreditasi", "butir", "pelaporan", "risiko"] }, entitas_id: { t: "integer" }, nama: { t: "string" }, mime: { t: "string" }, ukuran: { t: "integer" }, sha256: { t: "string", n: 1 }, keterangan: { t: "string", n: 1 }, diunggah_oleh: { t: "string", n: 1 }, diunggah_pada: { t: "string", n: 1 }, unduh: { t: "string", ds: "Path unduh (GET, dengan token)" } } }, SpmiUnit: { t: "object", pr: { id: { t: "integer" }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, jenis: { t: "string", e: ["universitas", "fakultas", "prodi", "lembaga", "unit"] }, induk_id: { t: "integer", n: 1, ds: "ID unit" }, kode_fakultas: { t: "string", n: 1, ds: "Kode fakultas SIAKAD (m_fakultas)" }, kode_prodi: { t: "string", n: 1, ds: "Kode prodi SIAKAD (m_program_studi)" }, nama: { t: "string", n: 1, max: 150 }, singkatan: { t: "string", n: 1, max: 30 }, email: { t: "string", n: 1, f: "email" }, aktif: { t: "boolean" }, urut: { t: "integer", min: 0, mx: 65535 }, peran_saya: { t: "array", ds: "Peran pemilik token di unit ini (termasuk warisan unit induk)", i: { t: "string", e: ["Pengelola SPMI universitas (LPM/BPM): kelola semua data SPMI", "Pengelola mutu unit (GKM fakultas, UJM prodi): kelola data SPMI unit dan turunannya", "Pimpinan unit (rektor, dekan, kaprodi, kepala): kelola data SPMI unit dan turunannya, verifikasi capaian, setujui laporan AMI, pimpin RTM", "Penanggung jawab: isi capaian dan tindak lanjut unit", "Anggota: lihat data SPMI unit"] } }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiPersonel: { t: "object", pr: { id: { t: "integer" }, unit_id: { t: "integer", n: 1, ds: "ID unit" }, username: { t: "string", n: 1, ds: "username SIAKAD" }, peran: { t: "string", e: ["admin", "pengelola", "pimpinan", "pic", "anggota"] }, jabatan: { t: "string", n: 1, max: 150 }, nomor_sk: { t: "string", n: 1, max: 100 }, mulai: { t: "string", n: 1, f: "date" }, selesai: { t: "string", n: 1, f: "date" }, aktif: { t: "boolean" }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiAuditor: { t: "object", pr: { id: { t: "integer" }, username: { t: "string", n: 1, ds: "username SIAKAD" }, nidn: { t: "string", n: 1, max: 50 }, nama: { t: "string", n: 1, max: 150 }, unit_asal_id: { t: "integer", n: 1, ds: "ID unit" }, bidang_keahlian: { t: "string", n: 1, max: 255 }, nomor_sertifikat: { t: "string", n: 1, max: 100 }, penyelenggara_pelatihan: { t: "string", n: 1, max: 150 }, tanggal_sertifikat: { t: "string", n: 1, f: "date" }, berlaku_sampai: { t: "string", n: 1, f: "date" }, tautan_sertifikat: { t: "string", n: 1, f: "uri", max: 500 }, aktif: { t: "boolean" }, catatan: { t: "string", n: 1 }, sertifikat_berlaku: { t: "boolean" }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiPeriode: { t: "object", pr: { id: { t: "integer" }, tahun: { t: "integer", min: 2e3, mx: 2100 }, nama: { t: "string", n: 1, max: 100 }, tahun_id_mulai: { t: "string", n: 1, ds: "Tahun akademik SIAKAD, mis. 20251" }, tahun_id_selesai: { t: "string", n: 1, ds: "Tahun akademik SIAKAD, mis. 20251" }, mulai: { t: "string", n: 1, f: "date" }, selesai: { t: "string", n: 1, f: "date" }, status: { t: "string", e: ["perencanaan", "berjalan", "evaluasi", "selesai"] }, catatan: { t: "string", n: 1 }, dibuat_oleh: { t: "string", n: 1 }, diubah_oleh: { t: "string", n: 1 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiDokumen: { t: "object", pr: { id: { t: "integer" }, unit_id: { t: "integer", n: 1, ds: "ID unit" }, jenis: { t: "string", e: ["kebijakan", "manual", "standar", "formulir", "pedoman", "sop", "instruksi_kerja", "renstra", "renop", "sk", "organisasi", "laporan", "lainnya"] }, tahap: { t: "string", e: ["penetapan", "pelaksanaan", "evaluasi", "pengendalian", "peningkatan"] }, nomor: { t: "string", n: 1, max: 100 }, judul: { t: "string", n: 1, max: 255 }, versi: { t: "string", n: 1, max: 20 }, ringkasan: { t: "string", n: 1 }, status: { t: "string", e: ["draf", "ditinjau", "disahkan", "kedaluwarsa", "dicabut"] }, tanggal_penetapan: { t: "string", n: 1, f: "date" }, berlaku_mulai: { t: "string", n: 1, f: "date" }, tinjau_berikutnya: { t: "string", n: 1, f: "date" }, ditetapkan_oleh: { t: "string", n: 1, max: 150 }, nomor_penetapan: { t: "string", n: 1, max: 100 }, tautan: { t: "string", n: 1, f: "uri", max: 500 }, publik: { t: "boolean" }, menggantikan_id: { t: "integer", n: 1, ds: "ID dokumen" }, dibuat_oleh: { t: "string", n: 1 }, diubah_oleh: { t: "string", n: 1 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiIndikator: { t: "object", pr: { id: { t: "integer" }, standar_id: { t: "integer", n: 1, ds: "ID standar" }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, pernyataan: { t: "string", n: 1 }, tipe: { t: "string", e: ["angka", "persen", "rasio", "ya_tidak", "teks"] }, satuan: { t: "string", n: 1, max: 50 }, arah: { t: "string", e: ["naik", "turun", "tepat"] }, baseline: { t: "number", n: 1 }, minimum_sn_dikti: { t: "number", n: 1 }, metrik: { t: "string", e: ["mahasiswa_aktif", "rasio_mahasiswa_dosen", "jumlah_lulusan", "ipk_rata_lulusan", "persen_lulusan_ipk_3", "persen_lulus_tepat_waktu", "rata_masa_studi", "persen_putus_studi", "persen_dosen_s3", "persen_dosen_s2_keatas", "persen_dosen_jabfung", "persen_dosen_lk_gb", "indeks_edom", "tracer_iku1", "tracer_waktu_tunggu", "tracer_respons", "survei_kepuasan"], ds: "Metrik otomatis dari data SIAKAD (GET /v1/spmi/referensi)" }, lingkup: { t: "string", e: ["universitas", "fakultas", "prodi", "unit", "semua"] }, frekuensi: { t: "string", e: ["semester", "tahunan"] }, cara_ukur: { t: "string", n: 1 }, sumber_data: { t: "string", n: 1, max: 255 }, aktif: { t: "boolean" }, urut: { t: "integer", min: 0, mx: 65535 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiTarget: { t: "object", pr: { id: { t: "integer" }, indikator_id: { t: "integer", n: 1, ds: "ID indikator" }, periode_id: { t: "integer", n: 1, ds: "ID periode" }, unit_id: { t: "integer", n: 1, ds: "ID unit" }, target: { t: "number", n: 1 }, target_teks: { t: "string", n: 1, max: 255 }, keterangan: { t: "string", n: 1, max: 255 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiKegiatan: { t: "object", pr: { id: { t: "integer" }, periode_id: { t: "integer", n: 1, ds: "ID periode" }, unit_id: { t: "integer", n: 1, ds: "ID unit" }, tahap: { t: "string", e: ["penetapan", "pelaksanaan", "evaluasi", "pengendalian", "peningkatan"] }, jenis: { t: "string", e: ["pemantauan", "evaluasi_diri", "audit", "asesmen", "rtm", "sosialisasi", "pelatihan", "penyusunan_dokumen", "survei", "lainnya"] }, nama: { t: "string", n: 1, max: 255 }, mulai: { t: "string", n: 1, f: "date" }, selesai: { t: "string", n: 1, f: "date" }, tempat: { t: "string", n: 1, max: 255 }, pelaksana: { t: "string", n: 1 }, metode: { t: "string", n: 1 }, hasil: { t: "string", n: 1 }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 }, status: { t: "string", e: ["rencana", "berjalan", "selesai", "batal"] }, dibuat_oleh: { t: "string", n: 1 }, diubah_oleh: { t: "string", n: 1 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiAudit: { t: "object", pr: { id: { t: "integer" }, periode_id: { t: "integer", n: 1, ds: "ID periode" }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, jenis: { t: "string", e: ["reguler", "khusus", "tindak_lanjut"] }, tujuan: { t: "string", n: 1 }, lingkup: { t: "string", n: 1 }, acuan: { t: "string", n: 1 }, mulai: { t: "string", n: 1, f: "date" }, selesai: { t: "string", n: 1, f: "date" }, status: { t: "string", e: ["rencana", "persiapan", "pelaksanaan", "pelaporan", "selesai", "batal"] }, ringkasan: { t: "string", n: 1 }, dibuat_oleh: { t: "string", n: 1 }, diubah_oleh: { t: "string", n: 1 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiRtm: { t: "object", pr: { id: { t: "integer" }, periode_id: { t: "integer", n: 1, ds: "ID periode" }, unit_id: { t: "integer", n: 1, ds: "ID unit" }, judul: { t: "string", n: 1, max: 255 }, tanggal: { t: "string", n: 1, ds: "YYYY-MM-DD HH:MM:SS" }, tempat: { t: "string", n: 1, max: 255 }, pimpinan_rapat: { t: "string", n: 1, max: 150 }, notulis: { t: "string", n: 1, max: 150 }, peserta: { t: "string", n: 1 }, agenda: { t: "string", n: 1 }, masukan: { ds: "Objek/daftar JSON" }, notulen: { t: "string", n: 1 }, kesimpulan: { t: "string", n: 1 }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 }, status: { t: "string", e: ["rencana", "terlaksana", "disahkan"] }, dibuat_oleh: { t: "string", n: 1 }, diubah_oleh: { t: "string", n: 1 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiKeputusan: { t: "object", pr: { id: { t: "integer" }, rtm_id: { t: "integer", n: 1, ds: "ID rtm" }, uraian: { t: "string", n: 1 }, jenis: { t: "string", e: ["perbaikan", "peningkatan_standar", "sumber_daya", "kebijakan", "lainnya"] }, temuan_id: { t: "integer", n: 1, ds: "ID temuan" }, standar_id: { t: "integer", n: 1, ds: "ID standar" }, pic_username: { t: "string", n: 1, ds: "username SIAKAD" }, penanggung_jawab: { t: "string", n: 1, max: 150 }, batas_waktu: { t: "string", n: 1, f: "date" }, status: { t: "string", e: ["terbuka", "proses", "selesai", "batal"] }, hasil: { t: "string", n: 1 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiRisiko: { t: "object", pr: { id: { t: "integer" }, periode_id: { t: "integer", n: 1, ds: "ID periode" }, unit_id: { t: "integer", n: 1, ds: "ID unit" }, standar_id: { t: "integer", n: 1, ds: "ID standar" }, kode: { t: "string", n: 1, max: 40 }, uraian: { t: "string", n: 1 }, penyebab: { t: "string", n: 1 }, dampak_uraian: { t: "string", n: 1 }, kemungkinan: { t: "integer", min: 1, mx: 5 }, dampak: { t: "integer", min: 1, mx: 5 }, pengendalian_ada: { t: "string", n: 1 }, mitigasi: { t: "string", n: 1 }, pic_username: { t: "string", n: 1, ds: "username SIAKAD" }, batas_waktu: { t: "string", n: 1, f: "date" }, kemungkinan_sisa: { t: "integer", min: 1, mx: 5 }, dampak_sisa: { t: "integer", min: 1, mx: 5 }, status: { t: "string", e: ["terbuka", "dimitigasi", "ditutup"] }, dibuat_oleh: { t: "string", n: 1 }, diubah_oleh: { t: "string", n: 1 }, skor: { t: "integer", ds: "kemungkinan \xD7 dampak" }, level: { t: "string", e: ["rendah", "sedang", "tinggi", "sangat_tinggi"] }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiPertanyaan: { t: "object", pr: { id: { t: "integer" }, survei_id: { t: "integer", n: 1, ds: "ID survei" }, urut: { t: "integer", min: 0, mx: 65535 }, bagian: { t: "string", n: 1, max: 150 }, dimensi: { t: "string", e: ["tangible", "reliability", "responsiveness", "assurance", "empathy", "lainnya"] }, tipe: { t: "string", e: ["likert", "pilihan", "pilihan_ganda", "teks", "angka"] }, teks: { t: "string", n: 1 }, pilihan: { ds: "Objek/daftar JSON" }, wajib: { t: "boolean" }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiAkreditasi: { t: "object", pr: { id: { t: "integer" }, unit_id: { t: "integer", n: 1, ds: "ID unit" }, lingkup: { t: "string", e: ["institusi", "prodi"] }, lembaga: { t: "string", e: ["ban_pt", "lamemba", "lamdik", "lam_ptkes", "lam_infokom", "lam_teknik", "lamsama", "lamspak", "lam_hukum", "internasional", "lainnya"] }, status: { t: "string", e: ["terakreditasi_unggul", "terakreditasi", "terakreditasi_pertama", "tidak_terakreditasi", "dalam_proses"] }, peringkat: { t: "string", n: 1, max: 30 }, instrumen: { t: "string", n: 1, max: 100 }, nilai: { t: "number", n: 1 }, nomor_sk: { t: "string", n: 1, max: 150 }, tanggal_sk: { t: "string", n: 1, f: "date" }, berlaku_mulai: { t: "string", n: 1, f: "date" }, berlaku_sampai: { t: "string", n: 1, f: "date" }, tautan_sk: { t: "string", n: 1, f: "uri", max: 500 }, terkini: { t: "boolean" }, catatan: { t: "string", n: 1 }, dibuat_oleh: { t: "string", n: 1 }, diubah_oleh: { t: "string", n: 1 }, sisa_hari: { t: "integer", n: 1, ds: "Hari sampai berlaku_sampai" }, peringatan: { t: "string", n: 1, ds: "kedaluwarsa | segera_berakhir | null" }, sumber: { t: "string", n: 1, ds: "siakad | manual" }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiInstrumen: { t: "object", pr: { id: { t: "integer" }, kode: { t: "string", max: 40, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, lembaga: { t: "string", e: ["ban_pt", "lamemba", "lamdik", "lam_ptkes", "lam_infokom", "lam_teknik", "lamsama", "lamspak", "lam_hukum", "internasional", "lainnya"] }, lingkup: { t: "string", e: ["institusi", "prodi"] }, dasar: { t: "string", n: 1, max: 255 }, aktif: { t: "boolean" }, catatan: { t: "string", n: 1 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiKriteria: { t: "object", pr: { id: { t: "integer" }, instrumen_id: { t: "integer", n: 1, ds: "ID instrumen" }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, deskripsi: { t: "string", n: 1 }, bobot: { t: "number", n: 1 }, urut: { t: "integer", min: 0, mx: 65535 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiPersiapan: { t: "object", pr: { id: { t: "integer" }, unit_id: { t: "integer", n: 1, ds: "ID unit" }, instrumen_id: { t: "integer", n: 1, ds: "ID instrumen" }, jenis: { t: "string", e: ["baru", "reakreditasi", "peningkatan", "perpanjangan"] }, target_status: { t: "string", e: ["terakreditasi_unggul", "terakreditasi", "terakreditasi_pertama", "tidak_terakreditasi", "dalam_proses"] }, target_pengajuan: { t: "string", n: 1, f: "date" }, tanggal_pengajuan: { t: "string", n: 1, f: "date" }, ketua_username: { t: "string", n: 1, ds: "username SIAKAD" }, tim: { t: "string", n: 1 }, status: { t: "string", e: ["persiapan", "penyusunan", "diajukan", "asesmen_kecukupan", "asesmen_lapangan", "keputusan", "selesai", "batal"] }, akreditasi_id: { t: "integer", n: 1, ds: "ID akreditasi" }, catatan: { t: "string", n: 1 }, dibuat_oleh: { t: "string", n: 1 }, diubah_oleh: { t: "string", n: 1 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } }, SpmiButir: { t: "object", pr: { id: { t: "integer" }, persiapan_id: { t: "integer", n: 1, ds: "ID persiapan" }, kriteria_id: { t: "integer", n: 1, ds: "ID kriteria" }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-]+$" }, nama: { t: "string", n: 1, max: 255 }, narasi: { t: "string", n: 1 }, skor_simulasi: { t: "number", n: 1 }, bobot: { t: "number", n: 1 }, pic_username: { t: "string", n: 1, ds: "username SIAKAD" }, tautan_bukti: { t: "string", n: 1, f: "uri", max: 500 }, status: { t: "string", e: ["belum", "proses", "selesai", "ditinjau"] }, catatan: { t: "string", n: 1 }, urut: { t: "integer", min: 0, mx: 65535 }, created_at: { t: "string", n: 1 }, updated_at: { t: "string", n: 1 } } } };
|
|
8
|
+
var spmi_default = { key, resources, ops, mandiri, skema };
|
|
9
|
+
|
|
10
|
+
export { spmi_default as default, key, mandiri, ops, resources, skema };
|
|
11
|
+
//# sourceMappingURL=spmi-J37NEYIU.js.map
|