Veefore docs

Policy fields

All 61 fields a policy rule can test, with their types and operators.

Generated page. Built from the field descriptors in packages/policy/src/fields.ts. Edit the source, not this page.

A policy rule tests fields of the evaluation context. The list is closed: an unknown field is a validation error at authoring time, not a silent undefined at decision time. That is what makes evaluation total — every rule either matches or does not, and there is no third outcome.

Amounts are inputs

amount is in minor currency units and exists purely as a policy input and as recorded decision context. Veefore evaluates it and records it. It does not hold, authorise, capture or move anything.

The same list is served at GET /v1/policies/builder-schema, which is what the visual Policy Builder renders from.

#Agent

Field Type Operators Meaning
agent.id string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Immutable agent identifier.
agent.name string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Display name. Metadata only — never a security identity.
agent.status string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Lifecycle state.
agent.risk_level string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Standing risk rating of the agent.
agent.verification_status string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Identity verification state.
agent.protocols string[] contains not_contains contains_any contains_all eq neq exists not_exists Protocols the agent is registered for.
agent.capabilities string[] contains not_contains contains_any contains_all eq neq exists not_exists Capabilities currently granted to the agent.
agent.tags string[] contains not_contains contains_any contains_all eq neq exists not_exists Operator-assigned labels.

agent.status accepts: PROVISIONING, ACTIVE, PAUSED, SUSPENDED, REVOKED, EXPIRED, DECOMMISSIONED.

agent.risk_level accepts: LOW, MEDIUM, HIGH, CRITICAL.

agent.verification_status accepts: UNVERIFIED, PENDING, VERIFIED, FAILED.

agent.protocols accepts: HTTP, MCP, A2A.

#Tenancy

Field Type Operators Meaning
organization.id string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Organization identifier.
workspace.id string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Workspace identifier.
environment.id string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Environment identifier.
environment.type string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Deployment tier.
environment.name string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Environment display name.

environment.type accepts: DEVELOPMENT, STAGING, PRODUCTION.

#Principal

Field Type Operators Meaning
principal.type string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Who initiated the request.
principal.id string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Identifier of the initiating principal.

principal.type accepts: USER, AGENT, SYSTEM, API_KEY.

#Tool

Field Type Operators Meaning
tool.id string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Registered tool identifier.
tool.key string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Tool key, e.g. refund_customer.
tool.kind string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Execution kind.
tool.protocol string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Transport protocol.
tool.risk_level string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Risk rating assigned to the tool.
tool.dangerous boolean is_true is_false eq neq Tool is flagged as destructive or high impact.

tool.kind accepts: HTTP, MCP, A2A, DATABASE, WEBHOOK, SIMULATED, CLIENT.

tool.protocol accepts: HTTP, MCP, A2A.

tool.risk_level accepts: LOW, MEDIUM, HIGH, CRITICAL.

#Action

Field Type Operators Meaning
capability string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Capability required by the request, e.g. refund.create.
action string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Logical operation being performed.

#Resource

Field Type Operators Meaning
resource.key string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Target resource identifier.
resource.type string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Resource category, e.g. database.
resource.sensitivity string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Data classification.
resource.attributes.<path> object eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists eq neq gt gte lt lte between in not_in exists not_exists Arbitrary resource attribute by path.

resource.sensitivity accepts: PUBLIC, INTERNAL, CONFIDENTIAL, RESTRICTED.

#Request

Field Type Operators Meaning
amount amount eq neq gt gte lt lte between in not_in exists not_exists Requested amount converted to the organization base currency, in minor units (e.g. 1000000 = ₹10,000.00 when the base is INR). Thresholds written here are in the base currency. A request whose currency cannot be converted is held for approval before policy amounts are relied on. Veefore never moves money.
currency string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Original ISO 4217 currency of the request, e.g. USD. Not the base currency.
original_amount amount eq neq gt gte lt lte between in not_in exists not_exists Amount exactly as requested, in minor units of the original currency (no conversion). Combine with a currency condition when comparing it.
original_currency string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists ISO 4217 currency the request was made in (same as "Currency").
destination.host string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Outbound hostname the tool will contact.
destination.risk_level string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Risk rating of the destination.
parameters.<path> object eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists eq neq gt gte lt lte between in not_in exists not_exists is_true is_false eq neq Request parameter by dotted path.

destination.risk_level accepts: LOW, MEDIUM, HIGH, CRITICAL.

#Risk

Field Type Operators Meaning
risk.level string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Computed risk level for this request.
risk.score number eq neq gt gte lt lte between in not_in exists not_exists Weighted risk score, 0-100.
risk.signals string[] contains not_contains contains_any contains_all eq neq exists not_exists Signal types that fired for this request.

risk.level accepts: LOW, MEDIUM, HIGH, CRITICAL.

#Trust

Field Type Operators Meaning
trust.identity_verified boolean is_true is_false eq neq Valid identity verification evidence exists.
trust.organization_verified boolean is_true is_false eq neq Valid organization verification evidence exists.
trust.security_attestation_valid boolean is_true is_false eq neq Unexpired security attestation evidence exists.
trust.protocol_compliance_valid boolean is_true is_false eq neq Unexpired protocol compliance evidence exists.
trust.active_incidents number eq neq gt gte lt lte between in not_in exists not_exists Open incidents involving this agent.
trust.expired_evidence_count number eq neq gt gte lt lte between in not_in exists not_exists Trust evidence records that have expired.

#Authority

Field Type Operators Meaning
authority.max_amount amount eq neq gt gte lt lte between in not_in exists not_exists Maximum amount permitted by delegated authority, converted to the organization base currency (minor units).
authority.capabilities string[] contains not_contains contains_any contains_all eq neq exists not_exists Capabilities permitted by delegated authority.
authority.depth number eq neq gt gte lt lte between in not_in exists not_exists Delegation depth backing the authority.
delegation.depth number eq neq gt gte lt lte between in not_in exists not_exists Depth of the delegation used.
delegation.chain_length number eq neq gt gte lt lte between in not_in exists not_exists Number of delegations in the chain.
delegation.valid boolean is_true is_false eq neq Delegation chain resolved successfully.

#Context

Field Type Operators Meaning
time.hour_utc number eq neq gt gte lt lte between in not_in exists not_exists Hour of day, 0-23, in UTC.
time.day_of_week number eq neq gt gte lt lte between in not_in exists not_exists 0 = Sunday through 6 = Saturday, UTC.
time.iso string eq neq in not_in contains not_contains starts_with ends_with matches exists not_exists Request timestamp, ISO-8601 UTC.
velocity.actions_last_minute number eq neq gt gte lt lte between in not_in exists not_exists Agent action count in the trailing 60 seconds.
velocity.actions_last_hour number eq neq gt gte lt lte between in not_in exists not_exists Agent action count in the trailing hour.
velocity.actions_last_day number eq neq gt gte lt lte between in not_in exists not_exists Agent action count in the trailing 24 hours.
velocity.amount_last_day amount eq neq gt gte lt lte between in not_in exists not_exists Sum of amounts in the trailing 24 hours, in the organization base currency.
history.tool_used_before boolean is_true is_false eq neq Agent has previously used this tool.
history.destination_used_before boolean is_true is_false eq neq Agent has previously contacted this destination.
history.resource_used_before boolean is_true is_false eq neq Agent has previously touched this resource.

#Approval

Field Type Operators Meaning
approval.present boolean is_true is_false eq neq Request carries an approval reference.
approval.valid boolean is_true is_false eq neq Presented approval is granted and bound to this request.

Identity, authority, policy and enforcement for autonomous AI agents.