---
type: JS Module
title: main.mjs
resource: npm/rules/rego/opa_check/main.mjs
docgen:
  crc: e2f54bd8
  model: omlx/gemma-4-e4b-it-OptiQ-4bit
  score: 100
  issues: judge:inaccurate:0.96
  judgeModel: openai-codex/gpt-5.4-mini
---

## Огляд

Поверхня лінтингу Rego (`rego/opa_check`) виконує читання конфігурацій політик OPA за допомогою `opa check --strict`. Для детекції політик працює у read-only режимі, не вносячи змін до файлової системи чи баз даних. При прийомі конфігурації приймає конкретний перелік `.rego` файлів через `ctx.files`, або, за відсутності цього, аналізує весь кореневий каталог `npm/rules`. Функція `lint` забезпечує перевірку синтаксично та стилістично незалежної від сусідніх файлів політики.

## Поведінка

1. Викликає функцію `lint`, яка перевіряє на відповідність специфікаціям Rego/OPA.
2. Якщо контекст не вказує конкретних файлів, перевіряється весь каталог політик, якщо він існує.
3. Якщо контекст вказує конкретні файли, перевіряються лише файли з розширенням `.rego`.
4. Запускається зовнішній інструмент `opa` з аргументами `check --strict` для вибраних файлів або каталогу політик.
5. Якщо `opa` завершується з кодом, що не дорівнює нулю, реєструється помилка, пов'язана з `opa check --strict`, включаючи вивід інструменту.
6. У всіх випадках повертається результат перевірки.

## Публічний API

lint — Виявляє порушення у коді на основі правил rego/opa_check (тільки для читання).

## Гарантії поведінки

- Read-only: не виконує операцій запису (ФС/БД).
