공유 및 권한
컬렉션과 하위 자산의 접근을 사용자·그룹 단위로 제어합니다. 관계 기반 권한 모델(ReBAC, OpenFGA)과 Ceiling 모델을 사용해, 컬렉션 권한이 하위 자산의 상한선으로 작동합니다.
용어 정책
화면 위치에 따라 용어를 일관되게 구분합니다.
| 위치 | 사용 용어 |
|---|---|
| 진입점(컨텍스트 메뉴, 액션 버튼) | 공유 / Share |
| 모달 타이틀, 상세 페이지 탭 | 공유 및 권한 / Share & Permissions |
| 모달 내부 섹션, 기술 문서 | 권한 / Permissions |
역할(Role)
다음 3단계 역할이 있습니다.
| 역할 | 설명 | 주요 허용 |
|---|---|---|
| Owner (소유자) | 컬렉션/자산의 모든 권한 | 설정 변경, 권한 부여/철회, 삭제 |
| Writer (편집자) | 편집 가능 | 아이템 추가·수정·버전 생성 |
| Reader (뷰어) | 읽기 전용 | 조회, 쿼리(SELECT) |
Ceiling 모델
컬렉션에 부여된 권한은 하위 자산의 **상한선(Ceiling)**으로 작동합니다.
- 컬렉션에 Reader인 사용자는 하위 자산에서도 Reader를 초과할 수 없습니다.
- 컬렉션 권한이 Writer로 상향되면 하위 자산도 Writer까지 허용되지만, 자산 자체에 부여된 역할이 더 낮다면 그대로 유지됩니다.
- 컬렉션 권한이 낮아지거나 제거되면 Write-Time Cascade가 동작하여 하위 자산 권한도 즉시 다운그레이드되거나 제거됩니다.
이 방식은 읽기 시마다 권한을 2회 검증하는 대신, 쓰기 시점에 한 번만 동기화하여 조회 성능을 최적화하는 설계입니다.
공유 다이얼로그 열기
- 트리/테이블 우클릭 →
공유 - 상세 패널 상단 액션 버튼 →
공유 - 상세 페이지
공유 및 권한탭
공유 다이얼로그에서 다음을 수행할 수 있습니다.
- 사용자 검색(이름/이메일)으로 대상 추가
- 그룹 검색으로 대상 추가
- 역할 선택(Owner / Writer / Reader)
- 기존 멤버 역할 변경 또는 제거
사용자·그룹 검색은 클라이언트 측 필터링을 우선 사용해 즉시 반응합니다.
소유자 호버 미리보기
목록·트리·상세 패널 어디에서나 소유자 아바타에 마우스를 올리면 소유자 미리보기 팝오버가 표시됩니다.
컬렉션 목록의 소유자 셀에서 아바타에 호버한 상태. 팝오버 안에 사용자/그룹 종류, 표시명, 이메일(또는 공용 주체 표시), 부여 경로(직접 / 그룹 경유)가 보여야 합니다.
- 사용자 소유자: 표시명·이메일·아바타 이니셜과 함께 부여 경로(직접 / 그룹 경유)를 함께 보여줍니다.
- 그룹 소유자: 그룹 이름과 멤버 수, 부여된 역할.
- 공용(Public) 주체: "전체 사용자(Everyone)" 등의 식별과 의미를 함께 안내합니다.
목록 페이지의 Owner 컬럼은 별도 컴포넌트(OwnerCell)로 통일되어, 컬렉션·데이터셋·코드·파이프라인·지식·대시보드·에이전트·온톨로지 등 모든 자원에서 동일한 UX를 제공합니다.
상세 페이지 공유 및 권한 탭
컬렉션·자산 상세 페이지의 공유 및 권한 탭에서는 다음을 확인할 수 있습니다.
- 멤버 목록: 직접 부여된 역할, 그룹 경유로 부여된 역할
- Ceiling 경고: 컬렉션 권한이 낮을 때 자산 권한이 상한선에 의해 제한되고 있는지 시각적으로 표시
- Cascade 내역: 컬렉션 권한 변경 시 영향받을 하위 자산 목록을 사전 확인할 수 있는 경고 영역
Collection Ceiling 관리 UI
컬렉션 수준의 권한과 하위 자산 권한을 한 화면에서 관리하려면 상세 페이지의 공유 및 권한 탭에서 다음 뷰를 활용합니다.
- 멤버 뷰: 컬렉션에 부여된 사용자/그룹과 역할
- 하위 자원 뷰: 컬렉션 멤버가 하위 자산에 대해 가지는 effective permission을 일괄 확인
- Cascade 경고: 역할 변경이 미치는 영향을 사전 미리보기
컬렉션 경계를 넘는 이동
자산을 다른 컬렉션/폴더로 이동하면, 이동 대상 컬렉션의 권한 상한선이 새로 적용됩니다. 이동 전 다이얼로그에서 권한 상한 검증이 수행되며, 위반 시 이동은 차단됩니다.
스코프 분류 (my / shared / other)
Collection Tree에서 컬렉션이 어느 스코프에 들어갈지는 백엔드가 제공하는 my_share_scope 값으로 결정됩니다.
| 값 | 트리 스코프 | 의미 |
|---|---|---|
owner | 내 컬렉션 | 현재 사용자가 소유자(Owner) 권한을 직접 보유 |
grant | 공유받은 컬렉션 | Writer/Reader 등 명시적 부여로 접근 가능 |
admin | 기타 컬렉션 (관리자만 보임) | 관리자 권한으로 보이는 그 외 컬렉션 |
스코프 분류는 권한 자체를 바꾸지 않습니다 — 단지 어디서 발견되느냐의 차이입니다.
정책(Policies) 기반 세분화 접근 제어
역할 기반 공유 외에, 컬럼·행 수준의 조건을 포함한 정책(FGAC) 으로 접근을 더 세밀하게 제어할 수 있습니다. 자세한 내용은 정책 관리 문서를 참고하세요.
제한사항
- 컬렉션 간 자산 복사/Symlink는 지원하지 않습니다. 이동만 지원합니다.
- 폴더 자체의 컬렉션 간 이동은 아직 지원되지 않습니다.
- 데이터셋 내부의 행 단위 접근 제어는 정책(Policies) 기능으로 별도 관리합니다.