Skip to content

Davetler

Endpoint'ler

POST /api/v1/workspace/members/invite             gönder (auth, admin, gated, kota-uygulanır)
GET  /api/v1/workspace/invitations                bekleyenleri listele (auth, admin)
POST /api/v1/workspace/invitations/:id/revoke     iptal et (auth, admin)

GET  /api/v1/invitations/:token                   public lookup (auth yok — token gizlidir)
POST /api/v1/invitations/:token/accept            kabul et (auth)

Davet alanları

typescript
{
  workspace_id: ObjectId,
  email: string,                                  // küçük harf, indexed
  role: "owner" | "admin" | "editor" | "author" | "viewer",  // varsayılan "author"
  token: string,                                  // base64url-encoded 32-byte secret
  status: "pending" | "accepted" | "revoked" | "expired",
  invited_by: ObjectId,
  expires_at: Date,
  accepted_at: Date | null,
  accepted_by: ObjectId | null,
  revoked_at: Date | null,
}

Akış

  1. Admin POST /workspace/members/invite { email, role } gönderir. Sosyabot 32-byte bir token üretir ve bir kabul linki gönderir.
  2. Alıcı linke tıklar, /invitation-accept'e (frontend) iner; bu, davet detaylarını göstermek için GET /invitations/:token çağırır.
  3. Alıcı oturum açıksa (veya önce kayıt olursa), sayfa POST /invitations/:token/accept çağırır. Endpoint status'u accepted'a taşır, kullanıcıyı çalışma alanına katar ve accepted_by'yi ayarlar.

Token, public lookup için gereken tek auth'tur; bir secret olarak ele al. Bir daveti iptal etmek (/revoke) status'u revoked'a çevirir ve token çalışmayı bırakır.

İlgili