Dokumentasi Resmi
|tulis.org

Arsitektur Dokumentasi

Peta jalan panduan, SDK integration, dan API reference lengkap yang disiapkan secara terstruktur.

TULIS CMS/DEVELOPER HUB
/api-reference-collab-locking

Collaboration Locking

Mencegah konflik edit saat beberapa pengguna mengedit post yang sama secara bersamaan. Tulis CMS menyediakan mekanisme content locking sederhana.


Acquire Lock

Mengunci post untuk diedit. Hanya satu pengguna yang bisa memegang lock pada satu waktu.

Endpoint

POST /api/collab/lock/:id

Authentication

Bearer Token (JWT) + X-Workspace-ID header · Role: author+

:id adalah UUID post.

Response — Sukses

{
  "status": 200,
  "message": "Lock acquired",
  "data": {
    "post_id": "3f1a2b9c-7e4d-4c8a-9b21-0c5d6e7f8a90",
    "locked_by": {
      "id": "c3d4e5f6-3333-4444-5555-666677778888",
      "name": "Ahmad Fulan"
    },
    "locked_at": "2026-01-17T10:00:00Z",
    "expires_at": "2026-01-17T10:15:00Z"
  }
}

Response — Sudah Dikunci

{
  "status": 423,
  "message": "Post is currently being edited by Budi Santoso",
  "data": {
    "locked_by": {
      "id": "d4e5f6a7-4444-5555-6666-777788889999",
      "name": "Budi Santoso"
    },
    "locked_at": "2026-01-17T09:58:00Z"
  }
}

Release Lock

Melepaskan kunci dari post.

Endpoint

POST /api/collab/unlock/:id

Authentication

Bearer Token (JWT) + X-Workspace-ID header · Role: author+

Response

{
  "status": 200,
  "message": "Lock released"
}

Get Lock Status

Melihat status kunci sebuah post.

Endpoint

GET /api/collab/lock/:id

Authentication

Bearer Token (JWT) + X-Workspace-ID header · Role: author+

Response — Ada Kunci

{
  "status": 200,
  "data": {
    "locked": true,
    "locked_by": {
      "id": "c3d4e5f6-3333-4444-5555-666677778888",
      "name": "Ahmad Fulan"
    },
    "locked_at": "2026-01-17T10:00:00Z",
    "expires_at": "2026-01-17T10:15:00Z"
  }
}

Response — Tidak Ada Kunci

{
  "status": 200,
  "data": {
    "locked": false
  }
}

Catatan

  • Lock otomatis kadaluarsa setelah 15 menit jika tidak diperpanjang.
  • Pengguna yang memegang lock bisa me-release-nya kapan saja.
  • Admin workspace bisa mendelete lock manual via database jika diperlukan.

Lini Masa Peluncuran Fitur

Fase 1: Setup Awal & KonfigurasiSELESAI

Docker Compose, pengaturan file environment, dan panduan setup lokal telah lengkap dibuat.

Fase 2: Referensi RESTful APISELESAI

Dokumentasi route endpoint publik, otentikasi JWT, dan kontrol hak akses telah selesai disusun.

Fase 3: Integrasi Frontend & Fitur LanjutSEDANG BERJALAN

Mempersiapkan boilerplate untuk Next.js client, manajemen revisi konten, dan optimasi query.