Associate a policy with an action
Linking a policy to an approval action
Next, let's link the newly created policy to the approval action so that when a policy is evaluated against an approval action, each condition is checked.
To do this, you'll need to send a POST request to associate the policy with the action.
In the request, you'll need to send through:
- the approval action ID as a path parameter (e.g.,
98765
). - the policy ID in the request body (e.g.,
12345
).
Example request
curl -L 'https://api.nullplatform.com/approval/action/98765/policy' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"policy_id": 12345
}'
A successful response (200 OK) confirms the association.
How policy evaluation works
How policy evaluation works Once you've linked your policy to an approval action, nullplatform evaluates it against relevant entity data. Each condition in the policy is checked against real-time metadata to determine whether the approval should proceed.
Below is an example of how this evaluation process works in practice.
{
"id": 12345,
"name": "Enforce coverage, security, and scaling for deployments",
"conditions": {
"build.metadata.coverage": { "$gte": 80 },
"build.metadata.security.issues": { "$lte": 4 },
"scope.capabilities.auto_scaling": true,
"$or": [
{ "scope.dimensions.environment": "dev" },
{ "scope.dimensions.environment": "qa" }
]
},
"evaluations": [
{
"criteria": {
"build.metadata.coverage": { "$gte": 80 }
},
"result": "met"
},
{
"criteria": {
"build.metadata.security.issues": { "$lte": 4 }
},
"result": "not_met"
},
{
"criteria": {
"scope.capabilities.auto_scaling": true
},
"result": "met"
},
{
"criteria": {
"$or": [
{ "scope.dimensions.environment": "dev" },
{ "scope.dimensions.environment": "qa" }
]
},
"result": "met"
}
],
"passed": false
}
What's evaluated here:
- Coverage (≥ 80%) →
"met"
→ The condition was satisfied. - Security issues (≤ 4) →
"not_met"
→ The condition was not met (perhaps there were more than 4 security issues). - Auto-scaling enabled →
"met"
→ The resource supports auto-scaling. - Environment (dev or qa) →
"met"
→ The deployment was in"dev"
or"qa"
.
Since at least one condition was not met, the overall policy evaluation failed ("passed": false
).