Skip to content

권한

YouViCo API의 권한은 한 번에 하나의 값으로 결정되지 않아요. 먼저 사용자가 API를 호출할 수 있는 상태인지 확인하고, 워크스페이스가 필요한 API라면 워크스페이스 역할을 확인해요. 프로젝트가 필요한 API는 프로젝트에 접근할 수 있는지 먼저 판단한 뒤, 프로젝트 역할과 프로젝트 접근 방식을 추가로 검사해요.

엔드포인트 문서의 접근 가능한 사용자는 로그인 여부를 나타내고, 접근 권한은 필요한 역할과 접근 방식을 보여줘요. 권한 줄이 여러 개 함께 표시되면 보통 조건을 함께 만족해야 해요. 예를 들어 프로젝트 소유자 로컬 조건이 함께 있으면, 로컬 방식으로 참여한 프로젝트 소유자만 접근할 수 있어요.

워크스페이스 권한

워크스페이스 역할은 워크스페이스 자체 기능을 사용할 때 먼저 확인돼요. 프로젝트 API에서도 워크스페이스 역할은 프로젝트 접근 예외를 판단하는 데 사용돼요.

역할설명
워크스페이스 소유자워크스페이스를 소유하고 있는 멤버예요.
워크스페이스 관리자워크스페이스를 관리할 수 있는 멤버예요. 소유자 전용 작업은 할 수 없어요.
워크스페이스 멤버일반적으로 허용된 작업을 할 수 있는 멤버예요.
워크스페이스 제한된 멤버명시적으로 허용된 작업만 할 수 있는 멤버예요.

워크스페이스 초대와 일반 멤버 수정 API로는 소유자 역할을 부여할 수 없어요. 소유자 변경은 별도의 소유권 이전 API로 처리해요.

프로젝트 접근

프로젝트 API는 먼저 사용자가 프로젝트에 접근할 수 있는지 확인해요. 이 단계는 프로젝트 역할을 검사하기 전 단계예요. 접근 자체가 허용되어도, 엔드포인트가 프로젝트 역할을 추가로 요구하면 실제 프로젝트 참여자 역할이 없어서 실패할 수 있어요.

프로젝트 참여자는 프로젝트 액세스 범위와 관계없이 프로젝트에 접근할 수 있어요. 프로젝트에 참여하지 않은 워크스페이스 멤버는 프로젝트 액세스 범위에 따라 접근 여부가 달라져요.

ONLY_PROJECT_MEMBER

프로젝트 참여자만 접근할 수 있어요. 예외적으로 워크스페이스 소유자 워크스페이스 관리자 역할은 프로젝트 접근 자체가 허용돼요.

ALLOW_WORKSPACE_MEMBER

프로젝트 참여자가 아니어도 워크스페이스 소유자 워크스페이스 관리자 워크스페이스 멤버 역할이 접근할 수 있어요.

워크스페이스 제한된 멤버 역할은 프로젝트 멤버로 참여 중인 프로젝트에만 접근할 수 있어요.

프로젝트 참여

프로젝트에 참여하면 프로젝트 역할과 프로젝트 접근 방식이 함께 정해져요. 프로젝트 역할은 프로젝트 안에서 무엇을 할 수 있는지를 나타내고, 프로젝트 접근 방식은 어떤 경로로 프로젝트에 참여했는지를 나타내요.

프로젝트 접근 방식

접근 방식설명
로컬워크스페이스의 멤버로 참여한 멤버예요.
외부 연결외부 워크스페이스와 연결로 참여한 멤버예요.
게스트액세스 링크를 통해 외부에서 참여한 게스트예요. 어떤 워크스페이스에도 속하지 않아요.

워크스페이스 멤버가 프로젝트에 직접 참여하면 로컬 방식으로 등록돼요. 이때 워크스페이스 역할에 따라 프로젝트 역할이 정해져요.

워크스페이스 역할조건참여 결과
워크스페이스 소유자 워크스페이스 관리자프로젝트 소유자 없음프로젝트 소유자
워크스페이스 소유자 워크스페이스 관리자프로젝트 소유자 있음프로젝트 관리자
워크스페이스 멤버항상프로젝트 제한된 리뷰어
워크스페이스 제한된 멤버항상참여 불가

워크스페이스 멤버가 아닌 사용자는 프로젝트 > 참여게스트 참여를 할 수 있어요. 게스트 역할은 액세스 링크에 설정된 역할을 따라가요.

프로젝트 액세스 키

프로젝트 액세스 키는 프로젝트 액세스 링크에 포함된 accessKey 값이에요. 워크스페이스 멤버가 아닌 사용자가 프로젝트를 조회하거나 게스트로 참여할 때 Query에 함께 보내요.

액세스 키가 유효하면 프로젝트 접근 자체는 허용될 수 있어요. 하지만 프로젝트 역할이 필요한 API는 액세스 키만으로 통과할 수 없어요. 프로젝트 > 참여로 먼저 참여하면 게스트 방식으로 등록되고, 이후에는 액세스 링크에 설정된 게스트 역할을 기준으로 권한이 판단돼요.

액세스 키로 참여할 때 부여되는 역할은 프로젝트 > 액세스 링크 > 생성 또는 프로젝트 > 액세스 링크 > 수정에서 설정해요.

프로젝트 역할

프로젝트 역할은 프로젝트 내부 작업을 제어해요. 같은 프로젝트 역할이어도 프로젝트 접근 방식에 따라 사용할 수 있는 API가 달라질 수 있어요.

역할설명
프로젝트 소유자프로젝트를 소유하고 있는 멤버예요.
프로젝트 관리자프로젝트를 관리할 수 있는 멤버예요. 소유자 전용 작업은 할 수 없어요.
프로젝트 멤버일반적으로 프로젝트에 참여하여 작업할 수 있는 멤버예요.
프로젝트 리뷰어프로젝트 내 모든 파일을 보고 피드백할 수 있는 멤버예요.
프로젝트 제한된 리뷰어제한 공개가 허용된 파일만 보고 피드백할 수 있는 멤버예요.

일부 API는 프로젝트 역할뿐 아니라 프로젝트 접근 방식까지 제한해요. 즐겨찾기 등록은 로컬 외부 연결 참여자에게만 허용되고, 프로젝트 완전 삭제와 소유권 이전은 로컬 프로젝트 소유자 조건에서만 허용돼요.

제한 공개 파일

파일에는 제한 공개 대상 사용자에게도 공개할지 결정하는 allowRestricted 설정이 있어요.

allowRestrictedboolean
제한 공개 여부예요. 파일을 제한 공개 대상 사용자에게도 공개할지 결정해요.

기본적으로 프로젝트 소유자 프로젝트 관리자 프로젝트 멤버 프로젝트 리뷰어 역할은 모든 파일에 접근할 수 있어요.

만약 제한 공개가 허용된 경우 프로젝트 제한된 리뷰어 역할과 프로젝트 역할이 없는 사용자도 해당 파일을 볼 수 있어요.

API 키 권한

공개 API 키는 워크스페이스 소유자 워크스페이스 관리자 워크스페이스 멤버 역할만 사용할 수 있어요.

워크스페이스 제한된 멤버 역할은 API 키를 사용할 수 없고, API 키로 호출되는 API도 키가 속한 워크스페이스와 사용자 권한을 기준으로 판정돼요.