워크스페이스 & 테넌시
CronBark의 테넌시 단위는 워크스페이스(Workspace) 입니다.
내부적으로는 Organization이라는 단일 엔티티가 결제·멤버·Cronjob·알림 채널·API 토큰의 소유자 역할을 모두 맡으며,
UI와 문서에서는 이를 워크스페이스라는 이름으로 노출합니다.
- 하나의 워크스페이스 = 하나의 결제/요금제 단위
- Cronjob · 알림 채널 · API 토큰은 모두 특정 워크스페이스에 귀속됨
- 한 사용자는 여러 워크스페이스에 동시 소속 가능 (각각 다른 역할로)
환경(prod/staging) 분리나 팀별 분리가 필요하면 워크스페이스를 여러 개 만들어 사용하세요.
역할 (Role)
각 멤버는 워크스페이스 내에서 아래 네 가지 역할 중 하나를 갖습니다:
| 역할 | 권한 요약 |
|---|---|
| Owner | 워크스페이스 소유자 (1명). 결제·요금제 변경·워크스페이스 삭제를 포함한 모든 권한. |
| Admin | 멤버 초대/역할 변경, 워크스페이스 설정, 모든 Cronjob/알림/토큰 관리. 결제/삭제는 Owner만. |
| Member | Cronjob · 알림 채널 · API 토큰의 생성·수정·삭제 (쓰기 권한). 멤버 관리는 불가. |
| Viewer | 대시보드 · Cronjob 목록 · 실행 이력 조회만 가능 (읽기 전용). |
역할 상세 매트릭스
| 동작 | Owner | Admin | Member | Viewer |
|---|---|---|---|---|
| 대시보드·실행 이력 보기 | ✅ | ✅ | ✅ | ✅ |
| Cronjob 생성/수정/삭제 | ✅ | ✅ | ✅ | ❌ |
| 알림 채널·규칙 관리 | ✅ | ✅ | ✅ | ❌ |
| API 토큰 발급·삭제 | ✅ | ✅ | ✅ | ❌ |
| 멤버 초대·역할 변경 | ✅ | ✅ | ❌ | ❌ |
| 워크스페이스 이름·설정 변경 | ✅ | ✅ | ❌ | ❌ |
| 결제·요금제 변경 | ✅ | ❌ | ❌ | ❌ |
| 워크스페이스 삭제 | ✅ | ❌ | ❌ | ❌ |
멤버 초대 흐름
팀원 합류는 이메일 초대 토큰 방식으로만 진행됩니다. 초대 대상 이메일은 도메인 제약이 없습니다 — Gmail, Naver, Daum, Kakao, 회사 이메일 등 어떤 이메일이든 초대할 수 있습니다.
- Owner 또는 Admin이 대시보드의
조직 설정 → 멤버섹션에서 초대할 팀원의 이메일 주소와 역할(Admin / Member / Viewer)을 입력합니다. - 팀원에게 초대 메일이 발송되고, 메일에 포함된 고유 링크(
/invite/{token})를 클릭하면 아래 두 방식 중 하나로 합류합니다.- Google 계정이 있는 경우: Google 로그인 후 자동 합류
- Google 계정이 없는 경우: 초대 페이지에서 비밀번호만 설정하면 바로 합류 (별도 가입 단계 불필요)
- 초대는 7일간 유효하며, 대기 중인 초대는 언제든 취소 또는 재발송할 수 있습니다.
초대받은 사용자가 아직 CronBark 계정이 없더라도 링크 클릭 → 비밀번호 설정(또는 Google 로그인) 한 번으로 계정이 자동 생성된 뒤 바로 워크스페이스 멤버가 됩니다. 초대 링크를 통한 합류는 이메일 소유 증명으로 간주되어 별도 이메일 인증 메일 없이 즉시 활성화됩니다.
⚠️ 초대받은 이메일과 동일한 계정으로 로그인하여 합류해주세요. 다른 계정으로는 합류할 수 없습니다. (이메일이 다를 경우 403 에러와 함께 재로그인 안내가 표시됩니다.)
대기 중인 초대 관리 (Owner/Admin)
조직 설정 페이지의 대기 중인 초대 섹션에서 아직 수락되지 않은 초대 목록을 한눈에 확인할 수 있습니다.
- 재발송: 네트워크/스팸 필터 문제로 메일을 받지 못한 경우 재발송하면 새 토큰이 발급되고 만료가 7일 뒤로 재설정됩니다. 기존 토큰은 즉시 무효화되어 재사용할 수 없습니다.
- 취소: 잘못된 주소로 보냈거나 채용이 철회된 경우 취소하면 해당 링크로는 더 이상 합류할 수 없습니다 (상태는
cancelled로 보존되어 감사 추적 가능). - 만료 임박 표시: 24시간 이내 만료 예정 초대는 빨간색 “오늘 만료” 배지로 강조됩니다 — 필요 시 재발송으로 연장하세요.
- 모든 조작은 감사 로그에
invite_resent/invite_cancelled액션으로 기록됩니다.
멤버 검색·필터
멤버 수가 늘어나면 멤버 섹션 상단의 검색창과 역할 필터를 활용하세요.
- 이메일/이름 부분 일치(대소문자 무시) 클라이언트 사이드 검색.
- 역할 드롭다운은
전체 역할 / Owner / Admin / Member / Viewer중 하나로 좁힙니다 — 검색어와 조합됩니다. - 결과가 없으면 “일치하는 멤버가 없어요” 안내가 표시됩니다.
조직 탈퇴
Admin / Member / Viewer 역할은 언제든 스스로 워크스페이스를 탈퇴할 수 있습니다.
- 위치:
조직 설정 → 위험 영역 → 조직 탈퇴 - 탈퇴 즉시 해당 워크스페이스의 모든 Cronjob, 알림, 감사 로그 조회 권한을 잃습니다.
- 재합류하려면 Owner의 초대가 다시 필요합니다.
- 탈퇴 이력은 감사 로그에
member_left액션으로 남습니다.
Owner는 탈퇴할 수 없습니다. 소유자를 변경하려면 먼저 다른 Admin에게 Owner 권한을 넘긴 뒤 탈퇴하거나, 워크스페이스 자체를 삭제해야 합니다.
조직 삭제 및 복구
Owner는 워크스페이스 전체를 삭제할 수 있습니다.
- 위치:
조직 설정 → 위험 영역 → 조직 삭제 - 안전 장치: 삭제 전 현재 워크스페이스 이름을 정확히 다시 입력해야 버튼이 활성화됩니다.
- 삭제 직후 대시보드, API, 헬스체크 엔드포인트 모두 해당 워크스페이스에 대해 즉시 접근 불가 상태가 됩니다.
- 내부적으로는 Soft Delete(30일 grace period)로 처리되므로, 실수로 삭제한 경우 30일 이내
cronbark.contact@gmail.com으로 연락하면 모든 Cronjob/알림 규칙/API 토큰/멤버 관계가 그대로 복구됩니다. - 30일이 지나면 하위 리소스까지 모두 자동으로 영구 삭제됩니다.
- 삭제 이벤트는 감사 로그에
workspace_deleted액션 + 삭제 시점의 멤버 수/플랜 메타와 함께 기록됩니다.
자세한 내용 준비 중
- 워크스페이스 전환 UI
- 요금제별 워크스페이스/멤버 제한
- Owner 권한 이전(transfer) UI