CKCariKostKitaDEVELOPER PORTAL
API PLATFORM / v0.2.0

Satu pintu untuk layanan CariKostKita.

Portal developer untuk memeriksa kontrak aktif, mencoba request, dan melihat kesiapan migrasi Android, dashboard admin, dan landing page.

QUICK START
# cek API aktif GET /health # profil memerlukan access token Supabase GET /api/v1/me Authorization: Bearer <access_token> # dokumentasi interaktif /docs
Memeriksa status API...· Liveness check
KONTRAK API

Endpoint yang bisa dipakai

Hanya route yang benar-benar terdaftar di OpenAPI ditandai aktif. Gunakan Swagger UI untuk skema request dan response.

GET/healthStatus layanan; tidak memerlukan autentikasi.PUBLIK GET/settingsNomor WhatsApp publik untuk Landing Page.PUBLIK GET/latest-releaseURL unduhan APK yang aktif.PUBLIK GET/api/v1/meValidasi access token dan kembalikan identitas terverifikasi.BEARER AUTH GET · PUT · PATCH/api/v1/me/profileBaca, provision, atau ubah profil; ID selalu berasal dari token.BEARER + RLS POST/api/v1/me/owner-verificationAjukan verifikasi; identitas dan status ditentukan server, permohonan tersimpan dengan RLS.BEARER + RPC AUTH/api/v1/auth/*Login, signup, refresh, Google OAuth/token, recovery, dan update password.SUPABASE AUTH POST/api/v1/analytics/eventsCatat event allowlist; user ID berasal dari token, guest mengikuti RLS anon.JWT / PUBLIK ADMIN/api/v1/admin/auth/*Login/sesi admin; role diputuskan dari profil database, bukan request.ROLE CHECK GET/api/v1/admin/kostsRute moderasi baca memakai ID hasil identity bridge dan JWT staf; migration/RLS serta akun nyata belum diverifikasi di production.PERLU DEPLOY PATCH/api/v1/admin/kosts/{kost_id}/statusDeveloper/staf berwenang mengubah status; perubahan dan audit sebelum/sesudah disimpan atomik lewat RPC.STAFF + RPC GET/api/v1/admin/usersRute direktori staf memakai role dari users dan ID hasil bridge; migration/RLS perlu diterapkan dan diuji di production.PERLU DEPLOY GET/api/v1/admin/reportsAntrean laporan staf dengan filter dan pagination berbasis RLS.STAFF + RLS GET/api/v1/admin/reports/pending-countHitung laporan BARU dan DITINJAU yang terlihat untuk staf ini; tidak mengambil row penuh.STAFF + RLS PATCH/api/v1/admin/reports/{report_id}Keputusan staf disimpan bersama riwayat tindakan melalui RPC; perlu migration.STAFF + RPC GET/api/v1/admin/analytics/crashesAgregat jumlah crash; tidak mengembalikan isi laporan atau stack trace.STAFF + RLS GET/api/v1/admin/analytics/funnelAgregat event allowlist yang terlihat lewat RLS staf.STAFF + RLS GET/api/v1/kostKatalog kost aktif dan disetujui dengan filter serta pagination.PUBLIK GET/api/v1/kost/{kost_id}Detail listing yang disetujui; pending tidak terekspos.PUBLIK GET · POST · DELETE/api/v1/favoritesEndpoint mengikat user lewat identity bridge; migration dan policy RLS tersedia lokal, belum diterapkan atau diuji di production.PERLU DEPLOY GET/api/v1/favorites/{kost_id}Cek favorit terikat pada pengguna dari token; validasi bridge dan policy production masih diperlukan.PERLU DEPLOY GET/api/v1/favorites/availabilityStatus tersedia hanya untuk kost favorit yang terlihat, disetujui, dan berstatus TERSEDIA.TOKEN + RLS GET/api/v1/me/owner-stats/favoritesJumlah favorit di listing milik sendiri; memakai RPC identity bridge dan memerlukan migration.OWNER + RPC GET/api/v1/chatsDaftar percakapan dipaginasi dan dibatasi sebagai peserta; migration bridge/RLS belum diuji pada akun production.PERLU DEPLOY GET/api/v1/chats/{chat_id}/messagesPesan hanya dibaca untuk percakapan milik peserta; validasi bridge dan RLS production masih diperlukan.PERLU DEPLOY GET/api/v1/me/unread-messagesRingkasan jumlah dan preview pesan masuk; identitas peserta berasal dari token dan akses mengikuti RLS.TOKEN + RLS POST/api/v1/me/owner-kosts/{kost_id}/resubmitAjukan ulang listing milik sendiri yang ditolak/perlu revisi; perlu migration identity bridge.OWNER + RPC PATCH/api/v1/me/owner-kosts/{kost_id}/statusUbah status TERSEDIA/PENUH pada listing sendiri; memerlukan migration RPC.OWNER + RPC
PETA MIGRASI

Cakupan tiga aplikasi

Status tiap integrasi berdasarkan endpoint yang sudah tersedia dan dipakai klien.

01 / Android

MIGRASI BERTAHAP

Source lokal memakai FastAPI untuk Auth/profil, favorit, chat REST, laporan, blokir, survei, ulasan, verifikasi pemilik, dan analytics. Identity/RLS migration belum diterapkan pada Supabase; katalog dan crash reporting masih tertahan audit schema. Build Android belum tervalidasi karena SDK tidak tersedia.

AUTHPROFILEANALYTICSCHAT RESTSURVEYSREVIEWS

02 / Admin-Gue

API PARSIAL

Login, profil/avatar, ubah password, revoke sesi lain, pencarian, ringkasan, direktori, dan antrean moderasi terpisah memakai FastAPI. Snapshot dashboard serta sebagian besar mutasi/pengaturan legacy masih memakai Laravel atau db.json.

ADMIN AUTHPROFILEMODERASIDIRECTORYSESSIONS

03 / Landing Page

API TERSEDIA

Landing Page mengambil nomor WhatsApp dan URL APK aktif dari endpoint publik FastAPI.

SETTINGSRELEASEPUBLIC
Catatan: Integrasi klien dan migration SQL di workspace belum berarti sudah diterapkan pada production. Android memerlukan identity bridge/RLS deployment dan SDK untuk build lokal; katalog menunggu pemetaan schema/harga yang tervalidasi. Fallback Admin/Android dipertahankan sampai parity teruji.