본문으로 건너뛰기
버전: v0.1.0

공유 및 권한

컬렉션과 하위 자산의 접근을 사용자·그룹 단위로 제어합니다. 관계 기반 권한 모델(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)
  • 기존 멤버 역할 변경 또는 제거

사용자·그룹 검색은 클라이언트 측 필터링을 우선 사용해 즉시 반응합니다.

소유자 호버 미리보기

목록·트리·상세 패널 어디에서나 소유자 아바타에 마우스를 올리면 소유자 미리보기 팝오버가 표시됩니다.

스크린샷 TODO

컬렉션 목록의 소유자 셀에서 아바타에 호버한 상태. 팝오버 안에 사용자/그룹 종류, 표시명, 이메일(또는 공용 주체 표시), 부여 경로(직접 / 그룹 경유)가 보여야 합니다.

  • 사용자 소유자: 표시명·이메일·아바타 이니셜과 함께 부여 경로(직접 / 그룹 경유)를 함께 보여줍니다.
  • 그룹 소유자: 그룹 이름과 멤버 수, 부여된 역할.
  • 공용(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) 기능으로 별도 관리합니다.

다음 단계