Dokumentasi

Pengenalan API geoMDB-hub

Diperbarui 20 Juli 2026

Pengenalan API geoMDB-hub

geoMDB-hub menyediakan REST API dan OGC CSW endpoint untuk integrasi dengan sistem eksternal.

Base URL

https://geospasial.pertanian.go.id/api

Autentikasi

API menggunakan session-based authentication via cookie HTTP-only.

Login

POST /api/auth/login
Content-Type: application/json

{ "email": "[email protected]", "password": "kata_sandi" }

Response berhasil menyetel cookie session yang harus disertakan pada setiap request selanjutnya (browser melakukan ini otomatis).

Response error (401):

{ "error": "Email atau password tidak valid" }

OTP Login

Bila OTP aktif, setelah login berhasil, respons mengembalikan:

{ "requiresOtp": true }

Kemudian kirim kode OTP:

POST /api/auth/otp
Content-Type: application/json

{ "otp": "123456" }

Logout

POST /api/auth/logout

Format Response

Semua endpoint REST mengembalikan JSON dengan Content-Type: application/json.

Format error standar:

{ "error": "Pesan error dalam bahasa Indonesia" }

Format sukses (bervariasi per endpoint, contoh):

{ "ok": true }
{ "records": [...], "total": 100, "page": 1 }
{ "settings": { ... } }

Endpoint Publik (Tanpa Autentikasi)

MethodPathKeterangan
GET/api/public/metadataDaftar metadata yang dipublikasikan
GET/api/public/metadata/{id}Detail metadata
GET/api/public/metadata/{id}/xmlUnduh XML metadata
GET/api/standarDaftar standar yang dipublikasikan
GET/api/standar/{slug}Detail standar
GET/api/referensi/{jenis}Daftar kode referensi
GET/api/metadata/{id}/kualitasStatus kualitas metadata
GET/api/verify/{token}Verifikasi tanda tangan dokumen
GET/api/public/statsStatistik publik (total metadata, dll.)
GET/POST/cswOGC CSW 2.0.2 endpoint
GET/api/healthHealth check sistem

Endpoint Terautentikasi (Memerlukan Login)

AreaEndpointSiapa
Metadata/api/metadata/*Semua role
QC/QE/QA/api/metadata/{id}/qcqe/*Pemeriksa, Walidata, Admin
Review/api/walidata/*Walidata, Admin
Admin/api/admin/*Admin
Profil/api/user/profilSemua role

Rate Limiting

EndpointBatasWindowRespons bila Terlampaui
/api/verify/{token}20 req/IP60 detikHTTP 429
/api/walidata/konfirmasi10 req/IP60 detikRedirect ke halaman error

Bila terkena rate limit, tunggu hingga window berakhir sebelum coba lagi. Header Retry-After tidak dikembalikan — gunakan exponential backoff.

Validasi Token (Verifikasi)

Endpoint /api/verify/{token} memvalidasi format token sebelum query ke database:

  • Format yang valid: 43 karakter base64url ([A-Za-z0-9_-]{43})
  • Token dengan format tidak valid → HTTP 404 langsung (tanpa DB query)

Keamanan API

  • Semua endpoint terautentikasi memerlukan cookie session yang valid
  • CSRF dilindungi oleh same-site cookie policy
  • Input di-validasi dengan Zod schema sebelum diproses
  • SQL injection tidak mungkin karena menggunakan Prisma ORM dengan parameterized queries
  • HTML escaping diterapkan di semua output email dan notifikasi

Dokumentasi Interaktif

Spesifikasi OpenAPI dapat dieksplorasi via Swagger UI di:

https://geospasial.pertanian.go.id/admin/api-docs

(Memerlukan login sebagai Admin)