역할과 키 권한
조직 멤버 역할(소유자, 관리자, 개발자)과 API 키 권한(run, read)이 각각 무엇을 할 수 있는지 한 표로 정리합니다
XenoCI의 권한은 두 겹입니다, 사람은 조직 멤버 역할로 콘솔과 관리 API를 쓰고, API 키는 키 권한으로 잡을 실행합니다, 두 권한은 서로 넘어가지 않습니다, 소유자가 만든 키라도 키로는 결제나 멤버 관리를 할 수 없고, 개발자가 만든 키도 그 워크스페이스의 잡만 다룹니다
멤버 역할
| 할 수 있는 일 | 소유자 | 관리자 | 개발자 |
|---|---|---|---|
| 조직과 멤버 목록 보기 | 가능 | 가능 | 가능 |
| 조직 이름 바꾸기 | 가능 | 가능 | 불가 |
| 멤버 초대, 역할 변경, 내보내기 | 가능 | 가능 | 불가 |
| 소유자 역할 주기와 빼기 | 가능 | 불가 | 불가 |
| 워크스페이스 만들기, 수정, 보관, 멤버 배정 | 가능 | 가능 | 불가 |
| 워크스페이스 월 지출 한도 정하기 | 가능 | 가능 | 불가 |
| 워크스페이스 접근 | 전체 | 전체 | 배정된 것만 |
| API 키 발급 | 모든 워크스페이스 | 모든 워크스페이스 | 배정된 워크스페이스 |
| API 키 폐기, 이름 바꾸기 | 조직의 모든 키 | 조직의 모든 키 | 배정된 워크스페이스의 키 |
| 사용량과 비용 보기 | 조직 전체 | 조직 전체 | 배정된 워크스페이스 |
| 크레딧 충전, 환불, 충전 내역 | 가능 | 가능 | 불가 |
| 감사 기록 보기 | 가능 | 가능 | 불가 |
| 알림 메일 받기 | 받음 | 받음 | 받지 않음 |
역할이 모자란 요청은 403 insufficient_permission입니다, 개발자에게 배정되지 않은 워크스페이스는 없는 것처럼 404 not_found로 보입니다
API 키 권한
| 할 수 있는 일 | run (실행과 조회) | read (조회만) |
|---|---|---|
| 잡 제출, 취소, 소스 업로드 | 가능 | 403 insufficient_permission |
| 배치 만들기, 레시피 쓰기 | 가능 | 403 insufficient_permission |
| 잡, 로그, 결과물 조회 | 가능 | 가능 |
| 잔액, 사용량, 비용, 한도, 러너 목록 조회 | 가능 | 가능 |
| 결제, 충전, 환불 | 403 console_only | 403 console_only |
| 키 발급과 폐기 | 403 console_only | 403 console_only |
| 멤버, 워크스페이스, 조직 관리 | 403 console_only | 403 console_only |
- 키는 만들 때 고른 워크스페이스 하나에서만 동작합니다, 다른 워크스페이스의 잡을 조회하거나 만들려고 하면
403 insufficient_permission입니다 - 키로 실행한 잡과 사용량은 그 키와 그 워크스페이스로 기록됩니다
키와 멤버가 바뀔 때
| 일 | 그 뒤의 요청 | 실행 중인 잡 |
|---|---|---|
| 키 폐기 | 즉시 401 invalid_api_key | 다음 주기 점검 때 멈춥니다 |
| 키 만료 | 즉시 401 invalid_api_key | 다음 주기 점검 때 멈춥니다 |
| 워크스페이스 보관 | 그 워크스페이스의 키가 모두 폐기, 401 invalid_api_key | 다음 주기 점검 때 멈춥니다 |
| 멤버 내보내기 | 그 사람의 콘솔 접근이 끊김 | 그 사람이 만든 키는 워크스페이스 소속이라 그대로 동작합니다, 필요하면 키를 따로 폐기하세요 |
| 역할 낮추기 | 다음 요청부터 낮아진 역할로 판단 | 영향 없음 |
멈춘 잡은 멈춘 순간까지 실행한 초만 과금합니다, 자세한 동작은 API 키 관리에 있습니다
콘솔에서 확인하기
- 멤버와 역할: 관리 → 멤버
- 키와 권한, 워크스페이스, 마지막 사용: API 키
- 내 키의 권한: CLI
xenocast whoami또는GET /v1/me의api_key.permission