RATATOSKRATATOSK
로그인

Open Policy Agent (OPA)

v1.17.0Security
2026년 5월 29일

OPA 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` 내장 함수에서 패턴 검증 활성화.