InfoGrab Docs

권한 정의

요약

각 권한에는 해당하는 정의 파일(「원시 권한」이라고도 함)이 있어야 합니다. bin/permission 명령을 사용하여 권한 정의 및 리소스 메타데이터 파일을 생성하십시오. 대화형 모드 — 권한 이름만 전달하면 명령이 각 필드를 안내하며, 이름을 사용하여 기본값을 제안합니다:

권한 정의 파일#

각 권한에는 해당하는 정의 파일(「원시 권한」이라고도 함)이 있어야 합니다. 이러한 파일들은 문서를 생성하고 권한 부여 로직을 중심으로 권한 우선 아키텍처를 활성화하는 데 사용됩니다.

bin/permission 명령을 사용하여 권한 정의 및 리소스 메타데이터 파일을 생성하십시오.

대화형 모드 — 권한 이름만 전달하면 명령이 각 필드를 안내하며, 이름을 사용하여 기본값을 제안합니다:

bin/permission <permission_name>

비대화형 모드-a(action)와 -r(resource)를 플래그로 전달하여 프롬프트를 건너뜁니다. 설명은 "Grants the ability to <action> <resource>"로 자동 기본 설정됩니다. -c를 추가하면 기능 범주 프롬프트도 건너뜁니다:

bin/permission <permission_name> -a <action> -r <resource> -c <feature_category>

작업이 두 단어 이상인 경우 작업 또는 리소스를 재정의하면 유용합니다. 예를 들어, force_delete_ai_catalog_item 권한을 고려해보십시오. 기본적으로 명령은 이름을 첫 번째 밑줄에서 분리하여 force를 작업으로, delete_ai_catalog_item을 리소스로 제안합니다. 이렇게 하면 정의 파일이 config/authz/permissions/delete_ai_catalog_item/force.yml에 작성되는데, 이는 올바르지 않습니다.

다음 명령은 올바른 작업과 리소스로 정의 파일을 생성하여 config/authz/permissions/ai_catalog_item/force_delete.yml에 작성합니다:

bin/permission force_delete_ai_catalog_item -a force_delete -r ai_catalog_item -c ai_catalog

임의의 필드는 플래그로 재정의할 수 있습니다(예: 사용자 지정 설명을 위한 -d). 사용 가능한 모든 옵션은 bin/permission --help를 실행하십시오.

다음 두 파일이 생성됩니다:

  1. config/authz/permissions/<resource>/<action>.yml에 권한 정의:

    ---
    name: read_job
    description: Grants the ability to read CI/CD jobs
    
  2. config/authz/permissions/<resource>/.metadata.yml에 리소스 메타데이터 파일(아직 없는 경우):

    ---
    feature_category: continuous_integration
    

권한 정의 필드#

필드 설명
name 권한 이름(작업과 리소스에서 자동 입력)
description 권한이 허용하는 내용에 대한 사람이 읽을 수 있는 설명

리소스 메타데이터 필드#

리소스 메타데이터 파일은 리소스 디렉토리당 한 번 생성됩니다. 동일한 리소스에 두 번째 권한을 추가하면 명령이 기존 메타데이터를 감지하고 모든 메타데이터 프롬프트(기능 범주, 표시 이름 및 설명)를 건너뜁니다.

필수 필드:

  • feature_category(필수) - config/feature_categories.yml의 유효한 항목이어야 합니다. 해당 리소스에 대한 API 파일의 기존 엔드포인트를 확인하여 올바른 기능 범주를 찾으십시오. 예를 들어, CI/CD 엔드포인트는 일반적으로 continuous_integration을 사용하고, 패키지 관련 엔드포인트는 package_registry를 사용합니다.

선택적 필드:

  • name - 표시를 위해 제목화된 리소스 이름을 재정의
  • description - 이 리소스 그룹의 권한이 부여하는 내용에 대한 컨텍스트 제공

권한 명명 및 유효성 검사#

유효성 검사 작업(bundle exec rake gitlab:permissions:validate)은 여러 제약 조건을 적용합니다:

권한 이름 형식:

권한 이름 지정 방법에 대한 지침은 권한 명명을 참조하십시오.

작업 단어:

허용되지 않는 작업 목록은 허용되지 않는 작업을 참조하십시오.

파일 구조:

  • 원시 권한은 정확히 config/authz/permissions/<resource>/<action>.yml에 있어야 합니다
  • 기본 경로와 최종 파일명 사이에 추가 디렉토리가 없어야 합니다

모든 위반은 git push를 실행할 때 Lefthook의 pre-push 훅에 의해 자동으로 발견됩니다. bundle exec rake gitlab:permissions:validate로 수동으로 유효성 검사를 실행할 수도 있습니다.

권한 정의

원문 보기
요약

각 권한에는 해당하는 정의 파일(「원시 권한」이라고도 함)이 있어야 합니다. bin/permission 명령을 사용하여 권한 정의 및 리소스 메타데이터 파일을 생성하십시오. 대화형 모드 — 권한 이름만 전달하면 명령이 각 필드를 안내하며, 이름을 사용하여 기본값을 제안합니다:

권한 정의 파일#

각 권한에는 해당하는 정의 파일(「원시 권한」이라고도 함)이 있어야 합니다. 이러한 파일들은 문서를 생성하고 권한 부여 로직을 중심으로 권한 우선 아키텍처를 활성화하는 데 사용됩니다.

bin/permission 명령을 사용하여 권한 정의 및 리소스 메타데이터 파일을 생성하십시오.

대화형 모드 — 권한 이름만 전달하면 명령이 각 필드를 안내하며, 이름을 사용하여 기본값을 제안합니다:

bin/permission <permission_name>

비대화형 모드-a(action)와 -r(resource)를 플래그로 전달하여 프롬프트를 건너뜁니다. 설명은 "Grants the ability to <action> <resource>"로 자동 기본 설정됩니다. -c를 추가하면 기능 범주 프롬프트도 건너뜁니다:

bin/permission <permission_name> -a <action> -r <resource> -c <feature_category>

작업이 두 단어 이상인 경우 작업 또는 리소스를 재정의하면 유용합니다. 예를 들어, force_delete_ai_catalog_item 권한을 고려해보십시오. 기본적으로 명령은 이름을 첫 번째 밑줄에서 분리하여 force를 작업으로, delete_ai_catalog_item을 리소스로 제안합니다. 이렇게 하면 정의 파일이 config/authz/permissions/delete_ai_catalog_item/force.yml에 작성되는데, 이는 올바르지 않습니다.

다음 명령은 올바른 작업과 리소스로 정의 파일을 생성하여 config/authz/permissions/ai_catalog_item/force_delete.yml에 작성합니다:

bin/permission force_delete_ai_catalog_item -a force_delete -r ai_catalog_item -c ai_catalog

임의의 필드는 플래그로 재정의할 수 있습니다(예: 사용자 지정 설명을 위한 -d). 사용 가능한 모든 옵션은 bin/permission --help를 실행하십시오.

다음 두 파일이 생성됩니다:

  1. config/authz/permissions/<resource>/<action>.yml에 권한 정의:

    ---
    name: read_job
    description: Grants the ability to read CI/CD jobs
    
  2. config/authz/permissions/<resource>/.metadata.yml에 리소스 메타데이터 파일(아직 없는 경우):

    ---
    feature_category: continuous_integration
    

권한 정의 필드#

필드 설명
name 권한 이름(작업과 리소스에서 자동 입력)
description 권한이 허용하는 내용에 대한 사람이 읽을 수 있는 설명

리소스 메타데이터 필드#

리소스 메타데이터 파일은 리소스 디렉토리당 한 번 생성됩니다. 동일한 리소스에 두 번째 권한을 추가하면 명령이 기존 메타데이터를 감지하고 모든 메타데이터 프롬프트(기능 범주, 표시 이름 및 설명)를 건너뜁니다.

필수 필드:

  • feature_category(필수) - config/feature_categories.yml의 유효한 항목이어야 합니다. 해당 리소스에 대한 API 파일의 기존 엔드포인트를 확인하여 올바른 기능 범주를 찾으십시오. 예를 들어, CI/CD 엔드포인트는 일반적으로 continuous_integration을 사용하고, 패키지 관련 엔드포인트는 package_registry를 사용합니다.

선택적 필드:

  • name - 표시를 위해 제목화된 리소스 이름을 재정의
  • description - 이 리소스 그룹의 권한이 부여하는 내용에 대한 컨텍스트 제공

권한 명명 및 유효성 검사#

유효성 검사 작업(bundle exec rake gitlab:permissions:validate)은 여러 제약 조건을 적용합니다:

권한 이름 형식:

권한 이름 지정 방법에 대한 지침은 권한 명명을 참조하십시오.

작업 단어:

허용되지 않는 작업 목록은 허용되지 않는 작업을 참조하십시오.

파일 구조:

  • 원시 권한은 정확히 config/authz/permissions/<resource>/<action>.yml에 있어야 합니다
  • 기본 경로와 최종 파일명 사이에 추가 디렉토리가 없어야 합니다

모든 위반은 git push를 실행할 때 Lefthook의 pre-push 훅에 의해 자동으로 발견됩니다. bundle exec rake gitlab:permissions:validate로 수동으로 유효성 검사를 실행할 수도 있습니다.