Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

프로젝트 생성과 조직 요구조건 API (V2)

Project는 관련 리소스를 묶고 협업 권한을 관리하는 경계입니다. 프로젝트의 역할과 조직 및 보안 표지 요구조건은 함께 적용됩니다. 기본적인 권한 모델은 프로젝트와 역할에 있습니다.

작업 선택

작업API
메타데이터 조회Get Project
이름과 권한을 지정하여 생성Create Project
템플릿으로 생성Create Project From Template
조직 요구조건 추가Add Organizations
조직 요구조건 제거Remove Organizations
직접 적용한 조직 조회List Organizations Of Project

일반 생성 API를 OAuth2 타사 애플리케이션에서 호출할 때는 애플리케이션을 Ontology SDK와 연결하지 않아야 합니다. 그 제한은 일반 생성 요청의 준비 조건에서 다룹니다.

Project 자료형

이름자료형필수 여부의미와 조건예시 값
ridstring필수프로젝트의 고유 식별자(RID)입니다.ri.compass.main.folder.01a79a9d-e293-48db-a585-9ffe221536e8
displayNamestring필수프로젝트 표시 이름입니다. 같은 공간 안에서 고유해야 하며 /를 포함할 수 없습니다.My Important Project
descriptionstring선택프로젝트에 연결된 설명입니다.project description
documentationstring선택프로젝트에 연결된 문서 내용입니다.project documentation
pathstring필수리소스 이름 자체를 포함한 전체 경로입니다./Empyrean Airlines/My Important Project
createdBystring필수리소스를 생성한 Foundry 사용자입니다.f05f8da4-b84c-4fca-9c77-8af0b13d11de
updatedBystring필수리소스를 마지막으로 갱신한 Foundry 사용자입니다.f05f8da4-b84c-4fca-9c77-8af0b13d11de
createdTimestring (date-time)필수리소스 생성 시각입니다.2024-09-25T17:29:35.974Z
updatedTimestring (date-time)필수리소스를 가장 최근에 갱신한 시각입니다.2024-09-25T17:29:35.974Z
trashStatusenum필수프로젝트의 휴지통 상태입니다. 허용값: DIRECTLY_TRASHED, ANCESTOR_TRASHED, NOT_TRASHED.NOT_TRASHED
spaceRidstring필수프로젝트가 속한 공간의 RID입니다.ri.compass.main.folder.a86ad5f5-3db5-48e4-9fdd-00aa3e5731ca
resourceLevelRoleGrantsAllowedboolean필수프로젝트 안의 개별 리소스에 직접 역할을 부여할 수 있는지 나타냅니다.true

기본 역할과 명시적 역할 부여

defaultRoles는 조직과 보안 표지 접근 요구조건을 충족한 사용자에게 자동 부여하는 기본 역할입니다. roleGrants는 역할 ID를 키로 하여 특정 사용자 또는 그룹 목록에 역할을 부여합니다. 기본 역할의 적용 대상이 넓다는 점을 고려하여 명시적인 관리 그룹의 역할과 각각 검토합니다.

프로젝트 생성 결과에는 소유자에 준하는 권한을 가진 주체가 있어야 합니다. 기준은 역할에 compass:edit-project 작업이 포함되는지이며, 기본 역할 집합에서는 일반적으로 compass:manage가 해당합니다. 역할 이름이나 예시 UUID만으로 이 조건을 충족한다고 판단하지 않습니다.

일반 생성 API의 resourceLevelRoleGrantsAllowed는 생략 시 true입니다. 이는 API 입력 생략의 기본값이며, 화면에서 제공하는 초기값이나 공간별 정책과 구분합니다. 프로젝트 수준에서만 역할을 관리하려면 실제 정책을 확인하여 생성 입력을 명시합니다.

조직과 공간의 관계

프로젝트에 적용할 조직은 상위 공간에도 적용되어 있어야 합니다. 조직이 적용된 공간 안에서는 프로젝트를 조직이 하나도 없는 상태로 만들 수 없습니다. 따라서 마지막 조직을 제거하는 작업도 이 조건을 충족해야 합니다.

조직 추가 및 제거는 프로젝트의 접근 요구조건을 바꿉니다. 사용자의 소속 조직이나 조직의 사용자 구성원을 변경하는 API와 구분합니다. 직접 적용한 조직 목록과 상속을 포함한 접근 요구조건도 별도로 확인합니다.

템플릿으로 생성할 때

프로젝트 템플릿은 역할과 그룹, 보안 표지 및 제약 조건을 구성합니다. 적용할 때 새 그룹이나 표지가 만들어질 수 있으므로 관련 생성 권한과 이름 충돌도 확인해야 합니다.

템플릿이 값을 고정한 필드와 사용자가 값을 제공해야 하는 필드를 구분합니다. 변수값, 설명, 조직과 기본 역할의 조건은 템플릿 생성 API에 있습니다.

프로젝트 예시

가상 항공사 프로젝트의 메타데이터입니다.

{
  "path": "/Empyrean Airlines/My Important Project",
  "updatedTime": "2024-09-25T17:29:35.974Z",
  "updatedBy": "f05f8da4-b84c-4fca-9c77-8af0b13d11de",
  "createdBy": "f05f8da4-b84c-4fca-9c77-8af0b13d11de",
  "displayName": "My Important Project",
  "documentation": "project documentation",
  "resourceLevelRoleGrantsAllowed": true,
  "description": "project description",
  "createdTime": "2024-09-25T17:29:35.974Z",
  "rid": "ri.compass.main.folder.01a79a9d-e293-48db-a585-9ffe221536e8",
  "spaceRid": "ri.compass.main.folder.a86ad5f5-3db5-48e4-9fdd-00aa3e5731ca",
  "trashStatus": "NOT_TRASHED"
}