ProofedMesh/policies/sinks/expense_db_app_test.rego

63 lines
1.4 KiB
Rego
Raw Normal View History

package proofedmesh.sinks.expense_db_app_test
import data.proofedmesh.sinks.expense_db_app as sink
import rego.v1
good_payload := {
"schema": {"name": "sink.db.expense", "version": "1.0.0"},
"workflow_id": "WF-2026-0001",
}
good_approval := {"allowed_sinks": ["sink:expense-db-app"]}
test_allow_posting if {
sink.allow with input as {
"sink_id": "sink:expense-db-app",
"agent_id": "agent-sink-posting",
"action": "expense.post",
"payload": good_payload,
"approval": good_approval,
}
}
test_deny_wrong_agent if {
not sink.allow with input as {
"sink_id": "sink:expense-db-app",
"agent_id": "agent-travel",
"action": "expense.post",
"payload": good_payload,
"approval": good_approval,
}
}
test_deny_wrong_action if {
not sink.allow with input as {
"sink_id": "sink:expense-db-app",
"agent_id": "agent-sink-posting",
"action": "expense.update",
"payload": good_payload,
"approval": good_approval,
}
}
test_deny_wrong_schema if {
bad := {"schema": {"name": "sink.sap.expense", "version": "1.0.0"}}
not sink.allow with input as {
"sink_id": "sink:expense-db-app",
"agent_id": "agent-sink-posting",
"action": "expense.post",
"payload": bad,
"approval": good_approval,
}
}
test_deny_sink_not_in_approval if {
not sink.allow with input as {
"sink_id": "sink:expense-db-app",
"agent_id": "agent-sink-posting",
"action": "expense.post",
"payload": good_payload,
"approval": {"allowed_sinks": ["sink:sap-s4hana-prod"]},
}
}