Panther Analysis Tool 명령
PAT를 사용하여 Panther 콘텐츠를 관리
개요
Panther 디택션 콘텐츠를 Panther Analysis Tool (PAT)을 사용하여 관리할 수 있습니다. PAT를 사용하면 업로드, test, 그리고 삭제 자산 등을 비롯한 작업을 수행할 수 있습니다.
각 PAT 명령은 특정 옵션을. 예를 들어 다음을 사용할 수 있습니다: --filter 를 여러 명령과 함께 사용하여 작업 범위를 좁힐 수 있습니다.
PAT 명령
다음 코드 블록에서 사용 가능한 PAT 명령의 전체 목록을 확인하세요. 그 아래에서 몇몇 명령에 대한 추가 정보를 확인할 수 있습니다.
PAT 명령은 다음을 사용하여 실행할 수 있습니다: panther_analysis_tool 또는 pat. 이 별칭에 대해 자세히 알아보려면 여기를 확인하세요.
각 PAT 명령을 실행하는 데 필요한 Panther 권한을 확인하려면 다음을 참조하세요: 명령별로 필요한 권한.
$ pat --help
사용법: pat [OPTIONS] COMMAND [ARGS]...
Panther Analysis Tool: Panther 정책과 룰을 관리하는 명령줄 도구입니다.
╭─ 옵션 ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --version 버전을 표시하고 종료 │
│ --debug 디버그 모드를 활성화합니다 │
│ --skip-version-check Panther 버전 확인을 건너뜁니다 │
│ --install-completion 현재 셸에 대한 completion을 설치합니다. │
│ --show-completion 현재 셸의 completion을 표시하여 복사하거나 설치를 사용자 지정할 수 있습니다. │
│ --help 이 메시지를 표시하고 종료합니다. │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ 명령 ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ release Panther 디택션을 포함하는 저장소의 릴리스 자산을 생성합니다. 다음 이름의 파일을 생성합니다: │
│ panther-analysis-all.zip 및 선택적으로 panther-analysis-all.sig를 생성합니다 │
│ test analysis 사양을 검증하고 정책 및 룰 테스트를 실행합니다. │
│ debug 디버그 환경에서 단일 룰 테스트를 실행합니다. 이를 통해 print 문을 보고 │
│ 중단점을 사용할 수 있습니다. │
│ publish 새 릴리스를 게시하고, 릴리스 자산을 생성한 뒤 업로드합니다. 다음 이름의 파일을 생성합니다: │
│ panther-analysis-all.zip 및 선택적으로 panther-analysis-all.sig를 생성합니다 │
│ upload 지정된 정책과 룰을 Panther 배포에 업로드합니다. │
│ delete Panther 배포에서 정책, 룰 또는 저장된 쿼리를 삭제합니다. │
│ update-custom-schemas Panther 배포에서 사용자 지정 스키마를 업데이트하거나 생성합니다. │
│ test-lookup-table Lookup Table 사양 파일을 검증합니다. │
│ validate Panther 인스턴스에 대해 대량 업로드를 검증합니다. │
│ zip Panther에 업로드하기 위해 로컬 정책과 룰을 압축 파일로 생성합니다. │
│ check-connection Panther API 연결을 확인합니다 │
│ benchmark 하나의 룰을 해당 로그 유형 중 하나에 대해 성능 테스트합니다. 해당 룰은 작업 │
│ 디렉터리 또는 --path, --ignore-files, --filter로 지정된 항목만 포함해야 합니다. 이 기능은 Data Replay의 확장 기능이며 │
│ 동일한 제한 사항이 적용됩니다. │
│ enrich-test-data Panther API의 추가 enrichment로 테스트 데이터를 보강합니다. │
│ check-packs 팩에 누락된 디택션이 없는지 확인합니다. │
│ init 새 Panther 프로젝트를 초기화합니다 │
│ update Panther Analysis의 최신 콘텐츠를 자신의 콘텐츠와 업데이트하고 병합합니다. 콘텐츠를 │
│ 업데이트하려 할 때마다 다시 실행하세요. Panther Analysis Item과 같은 ID를 가지며 BaseVersion 필드가 있는 항목은 │
│ 최신 Panther Analysis Item과 병합됩니다. 병합 충돌이 있는 항목은 건너뛰고 │
│ 수동으로 `merge` 명령으로 해결해야 합니다. 모든 병합 충돌을 │
│ 건너뛰지 않고 각 파일에 기록하려면 --write-merge-conflicts 플래그를 사용하세요. │
│ install Panther Analysis의 analysis item을 로컬 저장소에 설치하고 활성화합니다. │
│ explore 최신 Panther Analysis 콘텐츠를 살펴봅니다 │
│ merge analysis item을 최신 Panther Analysis 콘텐츠와 병합합니다 │
│ migrate BaseVersion 필드를 추가하고 최신 상태로 맞춰 Panther Analysis 콘텐츠를 기반으로 한 모든 analysis item을 마이그레이션합니다. │
│ 최신 상태로 맞춰 Panther Analysis 콘텐츠를 기반으로 한 모든 analysis item을 마이그레이션합니다. │
│ fmt 현재 디렉터리의 코드를 서식 지정하고 표준화하여 다른 │
│ 명령에서 변경 사항을 줄이는 데 도움을 줍니다. │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯init: Panther 디렉터리를 준비하는 중
이 명령은 Panther 디렉터리를 처음 설정할 때 한 번만 실행해야 합니다.
작업은 다음과 같습니다:
다음을 생성합니다:
.gitignore필요한 경우 파일을 만들고 그 안에 추가합니다:활성화합니다:
git rerere다음을 생성합니다:
.cache디렉터리. 이 디렉터리는 다음의 콘텐츠를 로컬에 저장합니다:panther-analysis빠르게 로드하기 위해다음에서 최신 콘텐츠를 가져옵니다:
panther-analysis
migrate: 기존 관리 흐름에서 콘텐츠를 전환하는 중
migrate PAT가 기존 analysis item을 향후 업데이트를 위해 추적하기 시작하도록 합니다.
실행하면 pat migrate PAT가 저장소를 확인하고 다음을 수행합니다:
ID가 다음의 ID와 일치하는 각 analysis item에 대해
panther-analysis:다음을 추가합니다:
BaseVersionYAML 파일에 필드를 추가합니다.항목을 다음의 최신 버전과 병합합니다:
panther-analysis.병합 충돌이 있으면 PAT는 해당 항목을 병합하지 않은 상태로 둡니다. 충돌을 해결하려면 다음을 실행하세요:
pat migrate <ID>.선택적으로 다음을 사용할 수 있습니다:
--auto-accept플래그를 사용하면 병합 충돌을 완전히 피할 수 있습니다.
ID가 다음의 ID와 일치하지 않는 각 analysis item에 대해
panther-analysis일치하지 않으면 사용자 지정으로 간주되므로 해당 항목에는 변경이 없습니다.
이 명령의 출력은 다음에 저장됩니다: ./migration_status.md.
update: 최신 panther-analysis 콘텐츠를 가져와 병합하는 중
콘텐츠를 업데이트하려 할 때마다 다시 실행하세요.
이 명령은 최신 panther-analysis 콘텐츠를 가져와 자신의 콘텐츠에 병합합니다. PAT는 analysis item의 ID가 다음의 항목 ID와 같고 panther-analysis 그리고 다음이 BaseVersion 이 panther-analysis가 다음의 항목 최신 버전보다 낮은지 확인하여 항목을 업데이트해야 하는지 판단합니다. 항목이 다음의 항목과 같은 ID를 가지지만 panther-analysis 없다면 BaseVersion 필드가 있으면 업데이트를 받지 않습니다. 마찬가지로 항목에 다음에서 일치하는 ID가 없고 panther-analysis 하지만 BaseVersion 필드가 있으면 업데이트를 받지 않습니다.
병합 충돌이 있는 항목은 다음의 일부로 업데이트되지 않습니다: pat update이며, 다음을 사용해 수동으로 해결해야 합니다: merge 명령. 병합 충돌이 있었던 모든 항목의 목록은 다음 명령의 출력에 표시됩니다: update 명령.
다음 --write-merge-conflicts 플래그를 사용하면 모든 병합 충돌을 건너뛰지 않고 각 해당 파일에 기록합니다(충돌 해결에 AI를 사용하는 경우 유용할 수 있습니다). 다음을 사용하세요: --auto-accept panthers 또는 --auto-accept yours 를 사용하면 병합 충돌을 자동으로 해결합니다(충돌을 해결한 뒤에도 항목에 문제가 있거나 테스트가 실패할 수 있으므로, 각 항목은 해결 후 검토해야 합니다).
다음 --preview 플래그를 사용하면 업데이트를 드라이런으로 실행합니다. 이 플래그는 어떤 파일도 업데이트하지 않고, 업데이트될 항목과 병합 충돌이 있는 항목의 ID를 출력합니다.
explore: 사용 가능한 panther-analysis 콘텐츠 보기
다음을 실행하세요: pat explore 다음의 panther-analysis 콘텐츠를 .cache 디렉터리에서 확인합니다. (이 명령은 p-a 콘텐츠가 최신 p-a 릴리스보다 오래되었으면 새 p-a 콘텐츠를 가져옵니다.) 콘텐츠 ID, 유형 또는 설명으로 검색할 수 있습니다.
다음에 액세스할 수 있습니다: Analysis Content 트리를 다음을 사용하여 탭. 다음을 누르세요: enter 를 아무 analysis type에서나 눌러 해당 유형으로 필터링하세요. 다음을 누르세요: enter 를 단일 analysis ID에서 눌러 해당 ID로 필터링하세요.

검색창은 표의 항목을 필터링하는 데 사용할 수 있습니다. 일반 텍스트로 검색하면 YAML 또는 python 파일에 해당 텍스트가 포함된 항목이 대소문자를 구분하여 필터링됩니다. 명령줄에서 사용할 수 있는 필터를 사용해 검색할 수도 있습니다. 예를 들어 다음 검색은 data "prod env" AnalysisType=룰 Severity=Critical,High 다음이 포함된 모든 항목을 대소문자를 구분하여 검색합니다: data YAML 또는 python에 prod env 가 YAML 또는 python에 있고, analysis type이 룰이며, 심각도가 치명적 또는 높음. 검색에서 단어를 함께 묶으려면 작은따옴표나 큰따옴표를 사용할 수 있습니다. 검색을 적용하려면 모든 따옴표에 대응하는 닫는 따옴표가 있어야 합니다. 큰따옴표는 백슬래시 (\\). 작은따옴표는 이스케이프할 수 없습니다.
다음을 누르면 enter 특정 항목에서 누르면 해당 소스 코드를 엽니다. YAML 및 Python 파일이 있는 analysis type의 경우 두 파일이 나란히 표시됩니다.

explorer GUI를 다음으로 종료할 수 있습니다: ctrl+q 또는 ctrl+c.
install: 다음의 항목을 복사하고 활성화합니다: panther-analysis item
다음을 실행하세요: pat install 다음에서 항목을 복사합니다: panther-analysis 자신의 저장소로. (무엇을 설치할지 이해하려면 다음을 실행하는 것이 좋습니다: pat explore.)
종속성(예: 글로벌 헬퍼 또는 데이터 모델)이 있는 analysis item을 설치하면 해당 종속성도 함께 설치(자신의 저장소에 복제)됩니다.
fmt: 코드를 서식 지정하고 표준화합니다
현재 디렉터리의 코드를 서식 지정하고 표준화하려면 실행하세요. PAT를 사용하는 데 필요한 서식 변경 사항이 있습니다. 이 명령을 사용하면 도구가 만드는 다른 모든 변경 사항과 별도로 서식 변경 사항을 쉽게 적용할 수 있습니다. PAT를 사용할 때 논리 변경과 서식 변경을 서로 독립적으로 유지하려면 이 명령을 사용하세요.
YAML 파일에 적용되는 변경 사항은 다음과 같습니다:
모든 불리언 대소문자를 정규화합니다(예:
True->true)모든 들여쓰기를 2칸으로 표준화합니다
명시적인 null을
null빈 값으로 바꿉니다(예:필드: null->필드:)모든 인라인 스타일 필드를 블록 스타일로, JSON을 블록 스타일로 바꿉니다
명시적인 여러 줄 표시가 없는 문자열 내부의 줄바꿈을 모두 제거합니다(예:
|및>)
merge: analysis item을 해당 항목의 최신 Panther Analysis 버전과 병합합니다
다음을 실행한 후 pat update, analysis item이 깔끔하게 업데이트되지 않도록 하는 병합 충돌이 발생할 수 있습니다. 항목을 Panther Analysis의 최신 버전과 병합하고 병합 충돌을 해결하려면 다음을 실행하세요: pat merge <ID>, 다음과 같이: ID 는 병합 충돌을 해결하려는 analysis item의 ID입니다.
YAML 병합 충돌은 사용자 지정 YAML 병합 충돌 해결 도구 안에서 해결됩니다. 이를 통해 필드별로 내용을 빠르게 비교하고, 충돌을 해결하기 위해 사용자 버전 또는 Panther 버전을 선택할 수 있습니다. 이 도구는 줄 단위가 아니라 필드별로 변경 사항을 비교하므로, 서식 변경으로 인해 발생하는 병합 충돌을 피할 수 있습니다. YAML의 최상위 필드만 비교합니다.
YAML 충돌을 해결한 뒤에는 이 명령이 Python 병합 충돌을 해결하도록 합니다. 기본적으로 이는 다음에서 수행됩니다: vi. 다음을 제공하여 사용할 다른 편집기를 지정할 수 있습니다: --editor 플래그를 사용하거나 다음을 설정하여 EDITOR 환경 변수를 설정하세요. 편집기는 사용하려면 CLI 명령으로 사용할 수 있어야 합니다. 일부 편집기는 기본적으로 CLI 명령이 설치되지 않으므로, 선호하는 편집기를 CLI에서 사용할 수 있는지 확인하세요.
병합 충돌을 성공적으로 해결한 후, 이 명령은 다음을 업데이트합니다: BaseVersion YAML의 필드를 자동으로.
병합 충돌을 다른 방식으로 해결하려면 다음 플래그를 사용할 수 있습니다:
--auto-accept: 다른 명령과 동일하게 작동합니다. 다음 값을 허용합니다:yours또는panthers를 값으로 허용합니다. 병합의 한쪽을 자동으로 선택해 병합 충돌을 피합니다.--write-merge-conflicts: 해결되지 않은 모든 병합 충돌을 해당 파일에 기록합니다. 이렇게 해도 어떤 충돌도 해결되지 않으며 공백 YAML 충돌도 피할 수 없습니다.BaseVersion가 업데이트됩니다.
test: 단위 테스트 실행 중
정의된 사양 파일을 로드하고 로컬에서 단위 테스트를 평가하려면 PAT를 사용하세요:
특정 속성에 따라 규칙 또는 정책을 필터링하려면:
디버그: print 문과 중단점을 사용하여 테스트 디버깅
사용 디버그 디버그 모드에서 특정 단위 테스트를 실행하려면:
print 문을 확인하세요:
트레이스백 정보와 함께 오류를 확인하세요:
벤치마크: 룰 성능 평가
사용할 수 있습니다 벤치마크 하나의 로그 유형에 대해 기존 룰 또는 초안 룰의 성능을 한 시간 분량의 데이터로 테스트합니다. 시간이 초과되는 룰을 개선해 나갈 때 특히 유용할 수 있습니다. 이는 정기적인 CI/CD 워크플로에서는 사용하지 않고, 필요에 따라 수동으로 사용하도록 նախատեսված된 장기 실행 명령입니다.
이 명령과 함께 사용하는 API 토큰에는 "개요 보기"(다른 이름으로는 요약읽기) 및 "룰 관리"(다른 이름으로는 룰수정) 권한. 왜냐하면 벤치마크 의 확장입니다 Data Replay, 동일한 적용을 받습니다 제한 사항.
하나의 룰을 제공해야 합니다 벤치마크, 작업 디렉터리에 룰이 하나만 있거나(./ 또는 --path), 또는 사용을 통해 --ignore-files 또는 --filter.
특정 데이터 시간을 지정하지 않으면 시스템이 데이터 양이 가장 많은 과거 시간을 선택합니다. 실행할 특정 시간을 지정하려면 --hour. (가장 일반적인 시간 형식이 지원됩니다. 예를 들어, 2023-07-31T09:00:00-7:00—분, 초 등은 잘립니다). 예를 들면:
여러 로그 유형이 있는 룰의 경우, 다음을 사용하여 하나를 지정해야 합니다 --log-type. 예를 들면:
의 출력은 벤치마크 stdout와, 다음이 지정한 디렉터리에도 기록됩니다 --out 옵션.
enrich-test-data: Enrichment 콘텐츠로 테스트 데이터 보강
사용 enrich-test-data 연결된 풍부화 제공자 및 사용자 지정 Lookup Tables. 이를 통해 풍부화 콘텐츠에 의존하는 디택션을 위한 더 정교한 테스트 사례를 만들 수 있습니다.
enrich-test-data 사용은 간단하지만, 분석 YAML 파일에 상당한 변경을 초래할 수 있습니다. 이 명령은 다음 기준에 따라 파일을 수정합니다:
룰 또는 예약 룰에 테스트 사례가 없으면 YAML 파일은 수정되지 않습니다.
로그 유형이 풍부화를 지원하지 않으면 YAML 파일은 수정되지 않습니다.
로그 유형이 풍부화를 지원하고 테스트 사례가 있으면:
인라인 JSON 콘텐츠로 표시된 테스트 사례는 YAML로 다시 형식이 지정됩니다.
YAML 파일은 일반적인 YAML 규칙에 따라 들여쓰기에 두 개의 공백을 사용하여 형식이 지정됩니다.
다른 명령과 마찬가지로, enrich-test-data 현재 디렉터리에서 재귀적으로 동작합니다. 여러분의 panther-analysis 복사본의 루트 디렉터리에서 명령을 실행하면 모든 룰 및 예약 룰의 풍부화를 시도합니다. 단일 디렉터리의 콘텐츠를 풍부화하려면 명령을 실행하기 전에 해당 디렉터리로 이동하세요.
다음을 실행할 수 있습니다: enrich-test-data 다음 명령을 사용하여 PAT 버전 0.26 이상에서
명령의 출력은 표준 출력(stdout)에 기록되며, 풍부화된 룰 또는 예약 룰의 목록을 포함합니다.
검증: 디택션 콘텐츠가 업로드될 준비가 되었는지 확인
해당 검증 명령은 업로드 과정에서 수행되는 것과 동일한 검사를 실행하여 여러분의 디택션 콘텐츠가 Panther 인스턴스에 업로드될 준비가 되었는지 확인합니다. 이러한 검사 중 일부는 Panther 인스턴스의 구성 정보를 필요로 하므로, 검증 API 호출을 수행합니다.
PAT를 사용하여 여러분의 Panther 인스턴스에 대해 디택션을 검증하려면:
아직 하지 않았다면, Panther Console에서 API 토큰을 생성하세요.
다음 명령을 실행하세요:
{% code fullWidth="false" %}
{% endcode %}
다음을 생략할 수 있습니다:
--api-token및--api-host옵션은 구성 값을 설정하는 다른 방식으로, 즉 환경 변수나 구성 파일을 사용하는 경우.
압축: Panther Console에 업로드할 패키지 생성
Panther Console에 수동으로 업로드할 패키지를 만들려면 다음 명령을 실행하세요:
Panther Console에서 콘텐츠 업로드하기
Panther Console의 왼쪽에서 다음을 클릭하세요: 디택션.
다음 업로드 오른쪽 상단 모서리의 버튼.
페이지에 .zip 파일을 끌어다 놓거나 다음을 클릭하세요: 파일 선택.

업로드: 패키지를 Panther에 직접 업로드
업로드 명령은 디택션 콘텐츠를 Panther 인스턴스로 업로드합니다.
사용하려면 업로드:
아직 하지 않았다면, Panther Console에서 API 토큰을 생성하세요.
다음을 실행하세요:
panther_analysis_tool test단위 테스트가 통과하는지 확인하려면.다음 명령을 실행하세요:
panther_analysis_tool upload --path <path-to-your-detections> --api-token <your-api-token> --api-host https://api.<your-panther-instance-name>.runpanther.net/public/graphql다음을 생략할 수 있습니다:
--api-token및--api-host옵션은 구성 값을 설정하는 다른 방식으로, 즉 환경 변수나 구성 파일을 사용하는 경우.
를 사용할 때 업로드를 사용하면 기존 ID가 있는 디택션과 Lookup Table이 덮어써집니다. 로컬에서 삭제된 디택션은 업로드 시 Panther 인스턴스에서 자동으로 삭제되지 않습니다. 해당 항목은 다음 명령으로 제거해야 합니다. 삭제 명령(또는 Panther Console에서 수동으로 삭제). CLI 워크플로를 사용할 때는 디택션의 사용 속성을 다음으로 false설정하는 것이 좋습니다.
엔티티의 ID(즉, 다음 값)를 업데이트하는 경우 RuleId 또는 PolicyId를 사용하고 업로드—하지만 다음도 사용하지 않고 삭제 이전 엔티티를 수동으로 제거하면, Panther 인스턴스에 두 버전이 모두 존재하게 됩니다. 중복 디택션을 만들지 않고 ID를 업데이트하려면 다음을 사용하세요. 삭제 이전 ID와 함께.
해당 작성자 디택션 필드
기본적으로 CLI 워크플로에서 업로드된 디택션(즉, 다음을 사용한 경우 PAT 또는 다음 REST API을 통해) 는 다음에 표시됩니다. 디택션 Panther Console의 목록 페이지에 Panther가 생성한 것으로 표시됩니다:

다음을 사용자 지정하고 싶다면 작성자 값을 사용자 지정하려면 다음을 추가할 수 있습니다. 작성자 키를 디택션의 YAML 파일에 추가할 수 있습니다. 다음 값은 작성자 다음 중 하나일 수 있습니다:
Panther 사용자의 이메일 주소: Console에서 Created By 필드에 연결된 사용자가 표시됩니다.
Panther 사용자의 고유 ID: Console에서 Created By 필드에 연결된 사용자가 표시됩니다.
이 값은 다음을 사용해 조회할 수 있습니다. list users REST API 엔드포인트.
임의의 텍스트 값: Panther Console에서는 제공된 값이 다음과 함께 표시됩니다. (External) 가 추가됩니다.

해당 작성자 키는 Python 룰, 예약된 룰, 상관 룰, 단순 디택션, 그리고 정책 정의에 사용할 수 있습니다.
Panther Console에서 디택션을 다운로드하면:
Panther Console에서 생성된 경우, 다음은 포함되지 않습니다.
작성자.CLI 워크플로에서 업로드된 경우:
다음을 사용하면
작성자에는 다음이 포함됩니다.작성자.다음이 없으면
작성자에는 다음이 포함되지 않습니다.작성자.
삭제: 룰, 정책, 또는 저장된 쿼리 삭제
동안 panther_analysis_tool upload --path <directory> 에서 모든 항목을 업로드합니다. <directory>에서 로컬 파일을 단순히 제거한다고 해서 Panther 인스턴스의 어떤 것도 삭제되지 않습니다. <directory>. 대신 다음을 사용할 수 있습니다. panther_analysis_tool delete 명령을 사용하여 Panther 인스턴스에서 디택션을 명시적으로 삭제할 수 있습니다.
특정 디택션을 삭제하려면 다음 명령을 실행하세요:
이 명령은 디택션을 삭제하기 전에 대화형으로 확인을 요청합니다. 확인 없이 삭제하려면 다음 명령을 사용할 수 있습니다:
PAT를 사용하면 한 번에 최대 1000개의 디택션을 삭제할 수 있습니다.
update-custom-schemas: 사용자 지정 스키마 생성 또는 업데이트
사용 update-custom-schemas 사용자 지정 스키마를 생성하거나 업데이트하려면.
이 명령으로 스키마를 만든 후, 다음을 사용하기 전에 최소 15분 기다리세요. 업로드 새 스키마를 참조하는 디택션을 업로드합니다.
명령별로 필요한 권한
다음은 각 명령에 필요한 권한 매핑입니다. 다음을 참조하세요. Console과 API의 권한 이름 에서 자세한 정보를 확인하세요.
check-connection
GeneralSettingsRead
test (다음을 사용하는 디택션을 테스트할 때 인라인 필터)
BulkUpload OR BulkUploadValidate OR ViewRules
벤치마크
요약읽기, RuleRead, 룰수정
검증
BulkUpload OR BulkUploadValidate (추가로 ManageScheduledPrompts, 그리고 AIRunAsModify 교차 ID run-as의 경우, 콘텐츠에 다음이 포함되면 예약된 프롬프트)
업로드
BulkUpload (추가로 ManageScheduledPrompts, 그리고 AIRunAsModify 교차 ID run-as의 경우, 콘텐츠에 다음이 포함되면 예약된 프롬프트)
삭제
PolicyModify, 룰수정, DataAnalyticsModify
update-custom-schemas
LogSourceRead, LogSourceModify
enrich-test-data
PolicyModify, 룰수정
압축
RuleRead, BulkUpload, BulkUploadValidate
디버그
RuleRead, BulkUpload, BulkUploadValidate
PAT 명령 옵션
각 PAT 명령에는 옵션(플래그라고도 함)이 있으며, 다음을 실행하면 확인할 수 있습니다. $ pat <command> -h.
옵션이 여러 인수를 받는 경우, 각 값을 옵션과 함께 개별적으로 전달해야 합니다. 예를 들어, 다음에 두 인수를 전달하려면 --valid-table-names:
올바름:
--valid-table-names table1 --valid-table-names table2잘못됨:
--valid-table-names table1 table2
다중 인수 옵션이 다음 형식의 값을 허용하는 경우 KEY=VALUE1,VALUE2 (예: --filter), 각 값은 플래그에 별도로 전달해야 합니다(단, 인수 값은 여전히 쉼표로 구분된 배열로 나타낼 수 있습니다). 예를 들면:
올바름:
--filter AnalysisType=policy,룰 --filter Severity=High잘못됨:
--filter AnalysisType=policy,룰 Severity=High
--filter: PAT 명령 필터링
해당 test, 압축, 업로드, 그리고 릴리스 명령은 모두 필터링을 지원합니다. 필터링은 다음을 전달하여 작동합니다. --filter 형식으로 지정된 필터 목록과 함께 플래그를 사용합니다 KEY=VALUE1,VALUE2. 키는 policy 또는 룰의 유효한 필드라면 무엇이든 될 수 있습니다. 필터를 사용할 때는 지정된 각 필터와 일치하는 분석 유형만 고려됩니다.
예를 들어, 다음 명령은 다음을 가진 항목만 테스트합니다. 분석 유형 policy와 다음을 모두 심각도 High인 항목:
다음 명령은 다음을 가진 항목을 테스트합니다. 분석 유형 policy 또는 룰, 그리고 다음을 심각도 High인 항목:
다음에 참조하는 policy나 룰을 작성할 때 global 분석 유형을 필터에 반드시 포함하세요. 필터 값으로 빈 문자열을 넣을 수도 있으며, 이 경우 필드가 존재할 때만 필터가 적용된다는 뜻입니다.
문제의 policy는 global을 가져오지만 그 global에는 severity가 없으므로 필터에서 제외되어, 다음 명령은 오류를 반환합니다:
이 쿼리가 예상대로 작동하려면 severity 필드가 없을 수 있도록 허용해야 합니다:
필터는 다음에도 적용됩니다 압축, 업로드, 그리고 릴리스 명령에서도 동일하게 작동합니다. test 명령.
--minimum-tests: 특정 수의 단위 테스트 요구
다음을 사용해 단위 테스트의 최소 개수를 설정할 수 있습니다. --minimum-tests 플래그를 사용합니다. 최소 테스트 수를 충족하지 못한 디택션은 실패로 간주됩니다. 만약 --minimum-tests 가 다음으로 설정되어 있으면 2 또는 그 이상이면, 최소한 하나의 테스트가 다음을 반환해야 한다는 것도 강제합니다 True 그리고 하나는 다음을 반환해야 합니다 False.
아래 예시에서는 각 룰 테스트가 통과했더라도, 올바른 테스트 커버리지가 없기 때문에 여전히 실패로 간주됩니다:
자주 묻는 질문
마지막 업데이트
도움이 되었나요?


