mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
feat: Updates for Policy Framework (#405)
- Documentation - Regorus Engine is intended to be used from a single thread - Clone the engine after adding policies and data to use from another thread - Builtin errors strictness: - default to less strict for OPA compatibility - Provide API to change strictness - Expose GetAstAsJson to C#, This can allow writing policy validations in C#. - Use spectre mitigated msvc crt libs (binskim compliance) - Update dependencies fixes #404 Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
This commit is contained in:
committed by
GitHub
parent
b11007a1be
commit
130f9685fd
+21
-1
@@ -111,7 +111,12 @@ pub extern "C" fn regorus_result_drop(r: RegorusResult) {
|
||||
///
|
||||
/// See https://docs.rs/regorus/latest/regorus/struct.Engine.html
|
||||
pub extern "C" fn regorus_engine_new() -> *mut RegorusEngine {
|
||||
let engine = ::regorus::Engine::new();
|
||||
let mut engine = ::regorus::Engine::new();
|
||||
|
||||
// For more OPA compatibility out of the box, we ask builtins to return undefined
|
||||
// instead of raising errors in certain failure scenarios.
|
||||
engine.set_strict_builtin_errors(false);
|
||||
|
||||
Box::into_raw(Box::new(RegorusEngine { engine }))
|
||||
}
|
||||
|
||||
@@ -349,6 +354,21 @@ pub extern "C" fn regorus_engine_get_coverage_report(engine: *mut RegorusEngine)
|
||||
}
|
||||
}
|
||||
|
||||
/// Enable/disable strict builtin errors.
|
||||
///
|
||||
/// See https://docs.rs/regorus/latest/regorus/struct.Engine.html#method.set_strict_builtin_errors
|
||||
/// * `strict`: Whether to raise errors or return undefined on certain scenarios.
|
||||
#[no_mangle]
|
||||
pub extern "C" fn regorus_engine_set_strict_builtin_errors(
|
||||
engine: *mut RegorusEngine,
|
||||
strict: bool,
|
||||
) -> RegorusResult {
|
||||
to_regorus_result(|| -> Result<()> {
|
||||
to_ref(&engine)?.engine.set_strict_builtin_errors(strict);
|
||||
Ok(())
|
||||
}())
|
||||
}
|
||||
|
||||
/// Get pretty printed coverage report.
|
||||
///
|
||||
/// See https://docs.rs/regorus/latest/regorus/coverage/struct.Report.html#method.to_string_pretty
|
||||
|
||||
Reference in New Issue
Block a user