Skip to content

t83714/opa-compile-response-parser

Repository files navigation

opa-compile-response-parser

GitHub stars npm version unpkg npm bundle size (minified + gzip) Build Status

An Open Policy Agent Compile Response Parser

Open Policy Agent provides a compile API that allows you partially evaluate your policy.

This library can parse the compile JSON response and allow you to access the Rego AST (Abstract Syntax Tree) in the response body by Rego language structure.

Moreover, it further processes the AST to:

  • eliminate tautological rules
    • e.g. r { x; false } => false
  • replace rule reference with inline value
    • e.g. r1 { r2 } r2 { true } => r1 { true } => true

API document

https://t83714.github.io/opa-compile-response-parser/

Examples

import OpaCompileResponseParser from "opa-compile-response-parser";

const parser = new OpaCompileResponseParser();
parser.parse(jsonResponse);

const result = parser.evaluate();
/**
 returned evaluate result:
    interface CompleteRuleResult {
        fullName: string;
        name: string;
        value: RegoValue;
        isCompleteEvaluated: boolean;
        residualRules?: RegoRule[];
    }
*/

// --- Print residual rules as human readable string
console.log(parser.evaluateAsHumanReadableString());

More Examples

Todo

  • replace rule reference with inline rules

Compatibility

Tested with Open Policy Agent version 0.37.2