Open Policy Agent (OPA)
v1.17.0SecurityOPA v1.17.0은 부정 처리의 의미론적 버그를 수정하고 결정 로그 레이블 보고를 개선합니다. 대부분 향상 사항이지만 하나의 의존성 제거는 특정 환경에서 수동 GOMAXPROCS 구성이 필요할 수 있습니다.
enhancement복합식 부정 의미론 수정을 위해 future.keywords.not 임포트하기
OPA v1.17.0은 복합식 부정(`not f(g(input.x))`)에서 중간값이 정의되지 않으면 규칙이 조용히 실패하던 오래된 버그를 고칩니다. `future.keywords.not` 임포트를 추가하면 정의되지 않은 중간값이 더 이상 규칙 실패를 일으키지 않고 부정이 올바르게 성공합니다. 입력이나 함수 결과가 정의되지 않을 수 있는 복잡한 식의 부정에 의존하는 정책이 있다면 `future.keywords.not`을 임포트하세요. 정책 평가 동작이 바뀌지만 올바른 방향입니다.
enhancement결정 로그 파싱을 새로운 rule_labels 배열 형식에 맞게 업데이트하기
결정 로그에 새로운 최상위 `rule_labels` 배열이 추가되어 성공적으로 평가된 모든 규칙의 레이블을 하나의 항목에 모읍니다(규칙 > 문서 > 패키지 > 서브패키지 순서로 우선순위 결정). 이전에는 레이블을 기여한 각 범위마다 로그 항목이 하나씩 있었습니다. 결정 로그를 규칙 레이블로 파싱하거나 쿼리한다면 개별 범위 레벨 항목 대신 `rule_labels`를 통합된 레이블 맵의 배열로 읽도록 로그 파싱 로직을 업데이트하세요. 이 변경으로 레이블 집계가 단순해지며 런타임과 Go SDK에서 기본으로 처리됩니다.
breakingautomaxprocs 및 x/net 의존성 제거됨; 필요시 GOMAXPROCS 수동 구성
OPA v1.17.0은 automaxprocs와 x/net 의존성을 제거하여 런타임 크기를 줄이고 이 라이브러리를 관리하는 애플리케이션과의 충돌을 제거합니다. automaxprocs 동작(CPU 자동 감지 및 GOMAXPROCS 튜닝)을 명시적으로 의존하지 않으면 조치가 필요 없습니다. 그 동작에 의존한다면 환경이나 배포에서 GOMAXPROCS를 수동으로 구성해야 할 수 있습니다. 대부분의 사용자는 영향을 받지 않습니다.
주요 변경 (5)
- 정의되지 않은 중간값을 포함한 복합식 부정 시 직관적이지 않은 실패를 수정하는 `future.keywords.not` 임포트 추가.
- 결정 로그에 성공적으로 평가된 모든 규칙의 통합된 레이블을 담은 `rule_labels` 배열 추가.
- 번들 매니페스트 및 IR 계획 JSON 스키마가 검증과 도구 통합을 위해 공개됨.
- 런타임 크기 감소를 위해 automaxprocs와 x/net 의존성 제거.
- `json.verify_schema` 및 `json.match_schema` 내장 함수에서 패턴 검증 활성화.