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-workspace-invitations

Workspace Invitations

Undangan bergabung ke workspace melalui email. Berguna ketika pengguna yang diundang belum memiliki akun Tulis.


Invite Member

Mengirim undangan email ke seseorang untuk bergabung ke workspace.

Endpoint

POST /api/workspaces/:id/invitations

Authentication

Bearer Token (JWT) + X-Workspace-ID header

Request Body

FieldTypeRequiredDescription
emailstringyaEmail penerima undangan.
rolestringyaRole yang akan diberikan setelah bergabung.
{
  "email": "citra@example.com",
  "role": "author"
}

Response

{
  "status": 201,
  "message": "Invitation sent successfully",
  "data": {
    "id": "e5f6a7b8-5555-6666-7777-888899990000",
    "email": "citra@example.com",
    "role": "author",
    "token": "inv_abc123...",
    "expires_at": "2026-01-22T09:00:00Z"
  }
}

View Invitation (Public)

Melihat detail undangan berdasarkan token. Tidak memerlukan autentikasi — endpoint publik.

Endpoint

GET /api/invitations/:token

Response

{
  "status": 200,
  "message": "Invitation details",
  "data": {
    "workspace_name": "Blog Pribadi",
    "role": "author",
    "email": "citra@example.com",
    "expires_at": "2026-01-22T09:00:00Z"
  }
}

Accept Invitation

Menerima undangan workspace. Pengguna harus sudah login.

Endpoint

POST /api/invitations/:token/accept

Authentication

Bearer Token (JWT)

Response

{
  "status": 200,
  "message": "Invitation accepted. You are now a member of Blog Pribadi.",
  "data": {
    "workspace_id": "a1b2c3d4-1111-2222-3333-444455556666",
    "role": "author"
  }
}

List Invitations

Melihat semua undangan yang masih aktif di workspace.

Endpoint

GET /api/workspaces/:id/invitations

Authentication

Bearer Token (JWT) + X-Workspace-ID header

Response

{
  "status": 200,
  "data": [
    {
      "id": "e5f6a7b8-5555-6666-7777-888899990000",
      "email": "citra@example.com",
      "role": "author",
      "expires_at": "2026-01-22T09:00:00Z"
    }
  ]
}

Revoke Invitation

Membatalkan undangan yang belum diterima.

Endpoint

DELETE /api/workspaces/:id/invitations/:inviteId

Authentication

Bearer Token (JWT) + X-Workspace-ID header

Response

{
  "status": 200,
  "message": "Invitation revoked"
}

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.