InfoGrab Docs

역할 정의 YAML 파일

역할 정의 YAML 파일에 대해 설명합니다.

GitLab의 기본 역할은 config/authz/roles/ 의 YAML 파일을 사용하여 정의됩니다. 각 파일은 단일 역할, 해당 권한 및 상속 계층 구조를 정의합니다. Authz::Role 클래스는 런타임에 이 파일들을 로드하고, 상속된 권한을 확인하며, 할당 가능한 권한 그룹을 구성 원시 권한으로 확장합니다. YAML 스키마 # 각 역할 정의 파일은 다음 구조를 따릅니다: # config/authz/roles/<role_name>.yml --- name: developer description: Developer role inherits_from: - reporter raw_permissions: - push_code - create_pipeline permissions: - read_work_item 필드 필수 유형 설명 name 예 문자열 파일 이름과 일치하는 고유한 소문자 밑줄 이름. description 예 문자열 역할에 대한 사람이 읽을 수 있는 설명. inherits_from 예 배열 상위 역할 이름 목록. 상위 역할이 없는 역할에는 [] 를 사용. raw_permissions 아니요 배열 이 역할이 직접 부여하는 권한. config/authz/permissions/ 에 정의된 개별 권한 원자. permissions 아니요 배열 할당 가능한 권한 그룹 이름. 각 이름은 config/authz/permission_groups/assignable_permissions/ 에 정의된 그룹을 참조하며 로드 시 구성 원시 권한으로 확장됩니다. 권한이 확인되는 방법 # Authz::Role.get(:developer) 가 호출될 때: config/authz/roles/developer.yml 의 YAML 파일이 로드되고 캐시됩니다. inherits_from 목록이 재귀적으로 확인됩니다. 각 상위 역할에 대해 동일한 로드 및 확인 프로세스가 적용됩니다. permissions 에 나열된 할당 가능한 권한 그룹 이름은 Authz::PermissionGroups::Assignable 을 통해 확장됩니다. 각 그룹은 하나 이상의 원시 권한으로 매핑됩니다. 최종 권한 집합은 다음의 합집합입니다: 이 역할의 raw_permissions 이 역할의 확장된 permissions (할당 가능한 그룹) 상위 역할에서 상속된 모든 권한(재귀적으로) 확인 예시 # 다음 역할 정의가 주어진 경우: # guest.yml name: guest inherits_from: [] raw_permissions: - read_issue - create_issue # reporter.yml name: reporter inherits_from: - guest raw_permissions: - read_code - download_code # developer.yml name: developer inherits_from: - reporter raw_permissions: - push_code - create_pipeline Authz::Role.get(:develop