Execution Context
Variables available during pipeline execution
- Always-available utilities
- Namespace datetime
- Namespace env
- Namespace server
- Namespace util
- Namespace vars
- Runtime namespaces
- Namespace aaa
- Namespace user
- Namespace acct
- Namespace auth
- Namespace tls
- Namespace cert
- Namespace radius
- Constants
- Namespace radiusproxy
- Namespace eap
- Namespace eap-ttls
- Namespace eap-teap
- Namespace parent
- Namespace tacacsplus
- Namespace http
- Constants
- Namespace yubikey
- Namespace root
- Namespace errors
- Constants
Execution context in Radiator Server defines the variables that are available during pipeline execution. Some utility variables are available in all pipeline contexts. Request and protocol variables are available only when the pipeline has an inbound request or when an action creates the relevant context.
Configuration-load expressions are separate from runtime execution context.
They support only a small subset of names in places where the parser accepts
simple expressions, such as env.* and server.*.
Always-available utilities
Below, '*' denotes any namespace, attribute name, or data type.
These variables are available in request pipelines and in non-request
pipelines, such as @init and timer pipelines.
| Variable | Type | Access | Description |
|---|---|---|---|
| datetime.* | timestamp | read | Current time |
| env.* | string | read | Process environment variables |
| id | number | read | Pipeline context identifier |
| server.* | string | read | Server process information |
| util.* | * | read | Utility values |
| vars.* | * | read/write | Pipeline-local variables |
id is a random 64-bit context identifier. Bare id evaluates to
the numeric value. In format strings and log context fields, it is rendered as
a 16-character lowercase hexadecimal string. Use it to correlate log entries
that come from the same request, timer tick, or init pipeline execution.
Namespace datetime
The datetime.* namespace returns the current time during pipeline execution.
Use it in logs, cache values, backend mappings, and other runtime expressions
that need a timestamp. For timestamp formats and comparisons, see
Timestamps.
| Variable | Type | Access | Description |
|---|---|---|---|
| datetime.timestamp | timestamp | read | Current time with the local offset in RFC3339 |
| datetime.timestamp.utc | timestamp | read | Current time in UTC in RFC3339 |
Examples:
2026-06-15T14:22:31.123456789+03:00
2026-06-15T11:22:31.123456789Z
To get the current day in YYYY-MM-DD format, use the
timestamp_format() filter. For more timestamp
handling examples, see Timestamps:
@init {
log "SYSTEM" {
json {
"current_day" datetime.timestamp | timestamp_format("[year]-[month]-[day]");
}
}
}
datetime.* is a runtime namespace. It is available in request pipelines and
non-request pipelines, such as @init and timer pipelines. It is not
available in configuration-load expressions, such as file names.
Namespace env
The env.* namespace reads process environment variables. Use it to set
deployment-specific values, such as file names and directories, outside
configuration files.
Use the default() filter when a variable may be
unset. In configuration-load expressions, this is useful for file paths:
logging {
application {
file {
filename "%{env.RADIATOR_LOG_DIR | default("/var/log/radiator")}/radiator-server.log";
}
}
}
For configuration-load expressions, env.* supports default(). Other filters
are available only in runtime pipeline expressions.
Namespace server
| Variable | Type | Access | Description |
|---|---|---|---|
| server.build_kind | string | read | Build kind |
| server.build_timestamp | string | read | Build timestamp in RFC3339 |
| server.cluster_id | string | read | Server's cluster ID |
| server.cpu_target | string | read | Build CPU target triple |
| server.git_branch | string | read | Git branch used for the build |
| server.git_commit | string | read | Git commit used for the build |
| server.hostname | string | read | Hostname of server, if available |
| server.instance_id | string | read | Server instance's ID |
| server.version | string | read | Software version information |
Namespace util
The util.* namespace provides read-only helper values.
| Variable | Type | Access | Description |
|---|---|---|---|
| util.rand | bytes | read | 16 random bytes |
| util.rand.N | bytes | read | N random bytes, where N is from 0 to 255 |
When used in a format string, random bytes are rendered as lowercase hexadecimal:
@init {
log "SYSTEM" {
json {
"trace_id" "%{util.rand.16}";
}
}
}
Namespace vars
The vars.* namespace stores custom pipeline-local variables. It starts empty
for each new pipeline context. Use actions such as modify to set values and
reuse them later in the same context.
@init {
modify {
vars.current_year = datetime.timestamp | timestamp_format("[year]");
}
log "SYSTEM" {
json {
"current_year" vars.current_year;
}
}
}
Variables in vars.* are not predefined. In non-request pipelines, each
@init block gets its own vars.* values, and each timer tick gets a fresh
context.
Runtime namespaces
Runtime namespaces are evaluated while a pipeline runs. Request pipelines get
request, user, session, and protocol namespaces. Non-request pipelines, such as
@init and timer, do not have request-scoped namespaces unless an action
creates them.
Namespace aaa
| Variable | Type | Access | Description |
|---|---|---|---|
| aaa.identity | string | read/write | Protocol-agnostic username/identity of the request |
| aaa.identity.name | string | read/write | Name part of current username/identity |
| aaa.identity.realm | string | read/write | Realm part of current username/identity |
| aaa.identity.realm.tld | string | read | TLD part of the realm |
| aaa.protocol | enum | read | Protocol of the request |
| aaa.type | string | read | Request type within the active protocol, when the protocol provides one |
| aaa.trace | boolean | read | Is tracing enabled for the request? |
| aaa.accounting | boolean | read | Is the request an accounting request? |
| aaa.policy | string | read | Name of AAA policy handling the request |
| aaa.handler | string | read | Name of AAA policy handler handling the request |
| aaa.method | enum | read | Authentication protocol/method |
| aaa.message | string | read/write | Reply message for Accept/Reject responses |
| aaa.challenge-message | string | read/write | Challenge prompt message for Challenge responses |
| aaa.result | enum | read | AAA result |
| aaa.stop_location | string | read | File and line of the last executed pipeline action |
| aaa.reason | string | read | Error or reason |
| aaa.errors | string array | read | All errors that occurred during request processing |
| aaa.caught_error | string | read/write | Most recent error caught by a try action |
| aaa.caught_error.code | string | read | Machine-readable error code of the most recent caught error (see errors namespace) |
| aaa.caught_errors | string array | read/write | All errors caught by try actions during request processing |
Namespace user
user.* represents the current user context used by the active AAA handler.
In most authentication flows, these values are populated from backend query
mappings (for example, mapping database fields into user.username and
user.password) and can then be updated by pipeline logic.
| Variable | Type | Access | Description |
|---|---|---|---|
| user.username | string | read/write | User entry's name |
| user.password | string | read/write | User's password (usually populated from backend query mappings). |
| user.group | string array | read/write | User's groups |
| user.role | string array | read/write | User's roles |
| user.radiatordb_role | string array | read/write | User's RadiatorDB roles |
| user.privilege | string | read/write | User's HTTP management privilege level |
| user.backend | string | read | Name of the backend currently associated with the user context |
Namespace acct
| Variable | Type | Access | Description |
|---|---|---|---|
| acct.status | enum | read | Accounting request status |
| acct.timestamp | timestamp | read | Accounting request timestamp |
| acct.duration | number | read | Accounting session duration in seconds |
| acct.input.packets | number | read | Accounting session packets in |
| acct.input.bytes | number | read | Accounting session bytes in |
| acct.output.packets | number | read | Accounting session packets out |
| acct.output.bytes | number | read | Accounting session bytes out |
Namespace auth
auth.* represents authentication exchange state for the current request.
These values are derived from the incoming protocol request and authentication
method parsing (PAP/CHAP/MS-CHAP/etc.) during request handling.
| Variable | Type | Access | Description |
|---|---|---|---|
| auth.protocol | enum | read/write | Active authentication protocol for this request. |
| auth.challenge | string | read/write | Authentication challenge value (protocol-specific). |
| auth.response | bytes | read | Authentication response bytes (protocol-specific). |
| auth.password | bytes | read | PAP password value (masked when rendered as string); otherwise none. |
| auth.result | string | read/write | Authentication outcome/state for the current request. |
Supported values for auth.protocol:
| Value | Meaning |
|---|---|
| (empty string) | No authentication protocol has been set for the current request. |
| pap | PAP authentication flow |
| chap | CHAP authentication flow |
| mschap | MS-CHAP authentication flow |
| mschapv2 | MS-CHAPv2 authentication flow |
| digest | Digest authentication flow |
| eap-aka | EAP-AKA authentication flow |
| eap-aka-prime | EAP-AKA' authentication flow |
auth.challenge and auth.response are protocol-dependent values. Use auth.password when you explicitly need a cleartext password input in PAP flows.
| Protocol state | auth.challenge | auth.response | auth.password |
|---|---|---|---|
pap | Usually empty/none | Presented password bytes | PAP password value (masked in string output) |
chap, mschap, mschapv2 | Challenge bytes | Response bytes | Empty/none |
| Other / unset | Empty/none | Protocol-specific or empty | Empty/none |
Namespace tls
| Variable | Type | Access | Description |
|---|---|---|---|
| tls.version | enum | read | Negotiated TLS protocol version |
| tls.cipher | enum | read | Negotiated TLS cipher |
Namespace cert
| Variable | Type | Access | Description |
|---|---|---|---|
| cert.valid | boolean | read | Did basic certificate validation succeed? |
| cert.error | string | read | Verification error |
| cert.server | string | read | In TLS client context, server's name or IP address |
| cert.issuer | string | read | Certificate's issuer's name |
| cert.subject | string | read | Certificate's subject's name |
| cert.serial | number | read | Certificate's serial number |
| cert.issued | timestamp | read | Certificate's issue timestamp |
| cert.expires | timestamp | read | Certificate's expiry timestamp |
| cert.policy | string array | read | Certificate's Policy OIDs |
| cert.sha256 | bytes | read | SHA256 hash of the certificate |
| cert.issuer.* | string array | read | Issuer name's individual components (dc, c, st, l, o, ou, cn, emailaddress) |
| cert.subject.* | string array | read | Subject name's individual components (dc, c, st, l, o, ou, cn, emailaddress) |
| cert.subject_alt.* | string array | read | Subject's alternative names (email, dns, dn, uri, ip, oid, upn, other) |
| cert.ca.* | * | read | Certificate's first CA certificate |
| cert.ca[N].* | * | read | Certificate's Nth CA certificate |
CA certificate has the same attributes as the cert.
Namespace radius
| Variable | Type | Access | Description |
|---|---|---|---|
| radius.client | string | read | Client's name from which the request was received |
| radius.client.ip | ip | read | IP address from which the request was received |
| radius.client.secret | string | read/write | Shared secret associated with the matched or dynamically assigned client |
| radius.connection.id | string | read | Identifier of the underlying connection when the protocol uses a connection-oriented transport |
| radius.connection.peer_addr | string | read | Remote peer address of the underlying connection |
| radius.connection.server_addr | string | read | Local server address of the underlying connection |
| radius.connection.server_name | string | read | Name of the server instance handling the underlying connection |
| radius.connection.transport_protocol | enum | read | Transport protocol used by the underlying connection |
| radius.server | string | read | Server's name which received the request |
| radius.server.tls | boolean | read | Was request received over TLS? |
| radius.request.code | unsigned | read/write | RADIUS request packet type code |
| radius.reply.code | unsigned | read/write | RADIUS reply packet type code. When set explicitly, overrides the default code from accept/reject/challenge results. |
| radius.request.identifier | unsigned | read/write | RADIUS request packet identifier (0-255) |
| radius.request.password | password | read | Decoded request password when the request contains a password-bearing attribute |
| radius.reply.identifier | unsigned | read | RADIUS reply packet identifier (0-255) |
| radius.request.attrs | json | read | All RADIUS request attributes as a JSON array |
| radius.request.attr.* | * | read | RADIUS request attributes |
| radius.reply.attr | json | read/write | All RADIUS reply attributes as a JSON array (read) or spread JSON object to reply attributes (write) |
| radius.reply.attr.* | * | read/write | RADIUS reply attributes |
Attribute's data type is defined by the RADIUS dictionary used. Examples:
| Example | Description |
|---|---|
| radius.request.attr.user-name | User-Name attribute |
| radius.request.attr.tunnel-type:1 | Tunnel-Type attribute with a tag value 1 |
| radius.request.attr.framed-route[0] | First Framed-Route attribute |
| radius.request.attr.framed-route[n] | Last Framed-Route attribute |
| radius.request.attr.framed-route[*] | All Framed-Route attributes |
| radius.request.attr.cisco.avpair | Cisco AV-pair attribute |
| radius.request.attrs | All request attributes as a JSON array |
| radius.reply.attrs | All reply attributes as a JSON array |
| radius.reply.attrs = vars.json_attrs | Spread JSON object keys as reply attribute names |
When radius.request.attr or radius.reply.attr is read without a specific
attribute name, it returns all dictionary attributes as a JSON array of objects
with name and value fields. Enum-typed attribute values are resolved to
their dictionary names. This is useful for logging all attributes in a single
field:
log "AUTHENTICATION" {
json {
"request_attrs" radius.request.attr;
"reply_attrs" radius.reply.attr;
}
}
The resulting JSON array looks like:
[
{ "name": "user-name", "value": "mikem" },
{ "name": "service-type", "value": "framed-user" }
]
Constants
The radius namespace provides named constants for RADIUS packet type codes.
Use these instead of magic numbers for clearer configuration.
Packet Type Codes:
| Constant | Value | Description |
|---|---|---|
| radius.ACCESS_REQUEST | 1 | Access-Request packet |
| radius.ACCESS_ACCEPT | 2 | Access-Accept packet |
| radius.ACCESS_REJECT | 3 | Access-Reject packet |
| radius.ACCOUNTING_REQUEST | 4 | Accounting-Request packet |
| radius.ACCOUNTING_RESPONSE | 5 | Accounting-Response packet |
| radius.ACCESS_CHALLENGE | 11 | Access-Challenge packet |
| radius.STATUS_SERVER | 12 | Status-Server packet |
| radius.DISCONNECT_REQUEST | 40 | Disconnect-Request packet |
| radius.DISCONNECT_ACK | 41 | Disconnect-ACK packet |
| radius.DISCONNECT_NAK | 42 | Disconnect-NAK packet |
| radius.COA_REQUEST | 43 | CoA-Request packet |
| radius.COA_ACK | 44 | CoA-ACK packet |
| radius.COA_NAK | 45 | CoA-NAK packet |
Attribute Enum Values:
For attribute enum values (like Acct-Status-Type or Service-Type), use the
radius.dict.<Attribute>.<Value> syntax to access dictionary-defined values:
# Acct-Status-Type values
radius.dict.Acct-Status-Type.Start # 1
radius.dict.Acct-Status-Type.Stop # 2
radius.dict.Acct-Status-Type.Alive # 3
# Service-Type values
radius.dict.Service-Type.Login-User # 1
radius.dict.Service-Type.Framed-User # 2
Example usage:
if all {
radius.request.code == radius.ACCESS_REQUEST;
} then {
# Handle Access-Request
}
if all {
radius.request.attr.acct-status-type == radius.dict.Acct-Status-Type.Start;
} then {
# Handle Accounting Start
}
Namespace radiusproxy
| Variable | Type | Access | Description |
|---|---|---|---|
| radiusproxy.server | string | read | Radius proxy server's name to which send the request |
| radiusproxy.server.tls | boolean | read | Is Radius proxy server using TLS connection? |
| radiusproxy.request.attrs | json | read | All proxy request attributes as a JSON array |
| radiusproxy.request.attr | json | write | Spread JSON object to proxy request attributes |
| radiusproxy.request.attr.* | * | read/write | Radius proxy request attributes |
| radiusproxy.reply.attrs | json | read | All proxy reply attributes as a JSON array |
| radiusproxy.reply.attr.* | * | read/write | Radius proxy reply attributes |
Attribute's data type is defined by the RADIUS dictionary used. Examples:
| Example | Description |
|---|---|
| radiusproxy.request.attr.user-name | User-Name attribute |
| radiusproxy.request.attr.operator-name | Operator-Name attribute |
| radiusproxy.request.attr.tunnel-type:1 | Tunnel-Type attribute with a tag value 1 |
| radiusproxy.request.attr.cisco.avpair[0] | First Cisco AV-pair attribute |
| radiusproxy.request.attr.cisco.avpair[n] | Last Cisco AV-pair attribute |
| radiusproxy.request.attr.cisco.avpair[*] | All Cisco AV-pair attributes |
| radiusproxy.request.attr = vars.json_attrs | Spread JSON object keys as proxy request attribute names |
Namespace eap
| Variable | Type | Access | Description |
|---|---|---|---|
| eap.identity | string | read | EAP identity |
| eap.method | enum | read | EAP method |
Namespace eap-ttls
| Variable | Type | Access | Description |
|---|---|---|---|
| eap-ttls.request.attr.* | * | read/write | EAP-TTLS request attributes |
| eap-ttls.reply.attr.* | * | read/write | EAP-TTLS request attributes |
Attribute's data type is defined by the RADIUS dictionary used. Examples:
| Example | Description |
|---|---|
| eap-ttls.request.attr.user-name | User-Name attribute |
| eap-ttls.request.attr.user-password | User-Password attribute |
| eap-ttls.request.attr.chap-password | CHAP-Password attribute |
| eap-ttls.request.attr.eap-message | EAP-Message attribute |
Namespace eap-teap
| Variable | Type | Access | Description |
|---|---|---|---|
| eap-teap.username | string | read | EAP-TEAP basic password authentication response username |
| eap-teap.identity-type | enum | read | EAP-TEAP Identity-Type TLV (user/machine) |
Namespace parent
Access the parent context from the child context.
Available for example in the inner @-pipelines of the eap action.
| Variable | Type | Access | Description |
|---|---|---|---|
| parent.* | * | read/write | Parent context namespace |
Examples:
| Example | Description |
|---|---|
| parent.aaa.identity | AAA identity from parent context |
| parent.radius.client | RADIUS client from parent context |
| parent.radius.attr.* | RADIUS attributes in the parent |
Namespace tacacsplus
| Variable | Type | Access | Description |
|---|---|---|---|
| tacacsplus.type | number | read | TACACS+ packet type |
| tacacsplus.version.major | number | read | TACACS+ major version |
| tacacsplus.version.minor | number | read | TACACS+ minor version |
| tacacsplus.authentication | boolean | read | Is the request an authentication request? |
| tacacsplus.authorization | boolean | read | Is the request an authorization request? |
| tacacsplus.accounting | boolean | read | Is the request an accounting request? |
| tacacsplus.unencrypted | boolean | read | Is the packet unencrypted? |
| tacacsplus.session | number | read | TACACS+ session ID |
| tacacsplus.request.action | number | read | Request action |
| tacacsplus.request.privilege | number | read | Request privilege level |
| tacacsplus.request.authentication.method | number | read | Authentication method |
| tacacsplus.request.authentication.type | number | read | Authentication type |
| tacacsplus.request.authentication.service | number | read | Authentication service |
| tacacsplus.request.user | string | read | Request username |
| tacacsplus.request.port | string | read | Request port |
| tacacsplus.request.address | string | read | Request remote address |
| tacacsplus.request.password | password | read | Request password |
| tacacsplus.request.data | bytes | read | Request data |
| tacacsplus.request.message | string | read | Request message |
| tacacsplus.request.arg[N] | string | read | Nth request argument |
| tacacsplus.request.args | string array | read | All request arguments |
| tacacsplus.reply.status | string | read/write | Reply status |
| tacacsplus.reply.noecho | boolean | read/write | Reply no-echo flag |
| tacacsplus.reply.message | string | read/write | Reply message |
| tacacsplus.reply.data | bytes | read/write | Reply data |
| tacacsplus.reply.arg[N] | string | write | Nth reply argument |
| tacacsplus.reply.args | string array | read/write | All reply arguments |
| tacacsplus.client | string | read | TACACS+ client name |
| tacacsplus.client.ip | ip | read | TACACS+ client IP address |
| tacacsplus.client.timeout | number | read | TACACS+ client timeout in milliseconds |
| tacacsplus.server | string | read | TACACS+ server name |
TACACS+ Constants:
Use root constants for packet type and supported wire version comparisons:
tacacsplus.AUTHENTICATION # 1
tacacsplus.AUTHORIZATION # 2
tacacsplus.ACCOUNTING # 3
tacacsplus.VERSION_MAJOR # 12
tacacsplus.VERSION_MINOR_DEFAULT # 0
tacacsplus.VERSION_MINOR_ONE # 1
RFC-style TACACS+ enum constants are also available directly under tacacsplus.*:
tacacsplus.AUTHENTICATION_ACTION_LOGIN
tacacsplus.AUTHENTICATION_ACTION_CHPASS
tacacsplus.AUTHENTICATION_ACTION_SENDAUTH
tacacsplus.AUTHENTICATION_TYPE_NOT_SET
tacacsplus.AUTHENTICATION_TYPE_ASCII
tacacsplus.AUTHENTICATION_TYPE_PAP
tacacsplus.AUTHENTICATION_TYPE_CHAP
tacacsplus.AUTHENTICATION_TYPE_MSCHAP
tacacsplus.AUTHENTICATION_TYPE_MSCHAPV2
tacacsplus.AUTHENTICATION_SERVICE_NONE
tacacsplus.AUTHENTICATION_SERVICE_LOGIN
tacacsplus.AUTHENTICATION_SERVICE_ENABLE
Use dictionary-style constants for TACACS+ authentication enums:
tacacsplus.dict.action.login
tacacsplus.dict.action.change-password
tacacsplus.dict.action.send-authentication
tacacsplus.dict.authentication.method.tacacsplus
tacacsplus.dict.authentication.type.not-set
tacacsplus.dict.authentication.type.ascii
tacacsplus.dict.authentication.service.enable
Example usage:
if all {
tacacsplus.type == tacacsplus.AUTHENTICATION;
tacacsplus.request.action == tacacsplus.AUTHENTICATION_ACTION_CHPASS;
} then {
# Handle TACACS+ ASCII change-password flow
}
if all {
tacacsplus.request.authentication.service == tacacsplus.AUTHENTICATION_SERVICE_ENABLE;
tacacsplus.version.minor == tacacsplus.VERSION_MINOR_DEFAULT;
} then {
# Handle TACACS+ enable request
}
if all {
tacacsplus.request.authentication.type == tacacsplus.AUTHENTICATION_TYPE_NOT_SET;
} then {
# Handle RFC-style authen_type = 0 requests
}
Namespace http
| Variable | Type | Access | Description |
|---|---|---|---|
| http.management | boolean | read | Is the request a management API request? |
| http.method | string | read | HTTP request method (GET, POST, etc.) |
| http.path | string | read | HTTP request path |
| http.path.N | string | read | Nth part of the HTTP path (0-based) |
| http.query | map | read | All HTTP query parameters |
| http.query.KEY | string | read | Specific HTTP query parameter value |
| http.body | bytes | read | HTTP request body |
| http.body.PATH | * | read | JSON path access to request body |
| http.header.NAME | string | read | HTTP request header value |
| http.headers.NAME | string | read | HTTP request header value (alias) |
| http.credentials.username | string | read | Username resolved by the active HTTP credentials source |
| http.response | bytes | read/write | Entire HTTP response body as one response value |
| http.response_header.NAME | string | read/write | Outgoing HTTP response header value |
| http.status | string | read/write | Actual HTTP response status code |
| http.json | boolean | read/write | Should response body be returned as JSON? |
| http.authorization.username | string | read | Username from Authorization header |
| http.authorization.password | string | read | Password from Authorization header |
| http.authorization.bearer | string | read | Bearer token from Authorization header |
| http.client | string | read | HTTP client name |
| http.client.ip | ip | read | HTTP client IP address |
| http.server | string | read | HTTP server name |
| http.server.ip | ip | read | HTTP server IP address |
| http.server.tls | boolean | read | Is the HTTP connection using TLS? |
For HTTP response behavior and examples, see docs/configuration/servers.http.md.
Constants
The http namespace provides named constants for standard HTTP status codes.
Use these instead of raw numbers for clearer configuration. Constants are
read-only and resolve to their numeric values at runtime.
1xx Informational:
| Constant | Value | Description |
|---|---|---|
| http.CONTINUE | 100 | Continue |
| http.SWITCHING_PROTOCOLS | 101 | Switching Protocols |
| http.PROCESSING | 102 | Processing |
2xx Success:
| Constant | Value | Description |
|---|---|---|
| http.OK | 200 | OK |
| http.CREATED | 201 | Created |
| http.ACCEPTED | 202 | Accepted |
| http.NON_AUTHORITATIVE_INFORMATION | 203 | Non-Authoritative Information |
| http.NO_CONTENT | 204 | No Content |
| http.RESET_CONTENT | 205 | Reset Content |
| http.PARTIAL_CONTENT | 206 | Partial Content |
| http.MULTI_STATUS | 207 | Multi-Status |
| http.ALREADY_REPORTED | 208 | Already Reported |
| http.IM_USED | 226 | IM Used |
3xx Redirection:
| Constant | Value | Description |
|---|---|---|
| http.MULTIPLE_CHOICES | 300 | Multiple Choices |
| http.MOVED_PERMANENTLY | 301 | Moved Permanently |
| http.FOUND | 302 | Found |
| http.SEE_OTHER | 303 | See Other |
| http.NOT_MODIFIED | 304 | Not Modified |
| http.USE_PROXY | 305 | Use Proxy |
| http.TEMPORARY_REDIRECT | 307 | Temporary Redirect |
| http.PERMANENT_REDIRECT | 308 | Permanent Redirect |
4xx Client Errors:
| Constant | Value | Description |
|---|---|---|
| http.BAD_REQUEST | 400 | Bad Request |
| http.UNAUTHORIZED | 401 | Unauthorized |
| http.PAYMENT_REQUIRED | 402 | Payment Required |
| http.FORBIDDEN | 403 | Forbidden |
| http.NOT_FOUND | 404 | Not Found |
| http.METHOD_NOT_ALLOWED | 405 | Method Not Allowed |
| http.NOT_ACCEPTABLE | 406 | Not Acceptable |
| http.PROXY_AUTHENTICATION_REQUIRED | 407 | Proxy Authentication Required |
| http.REQUEST_TIMEOUT | 408 | Request Timeout |
| http.CONFLICT | 409 | Conflict |
| http.GONE | 410 | Gone |
| http.LENGTH_REQUIRED | 411 | Length Required |
| http.PRECONDITION_FAILED | 412 | Precondition Failed |
| http.PAYLOAD_TOO_LARGE | 413 | Payload Too Large |
| http.URI_TOO_LONG | 414 | URI Too Long |
| http.UNSUPPORTED_MEDIA_TYPE | 415 | Unsupported Media Type |
| http.RANGE_NOT_SATISFIABLE | 416 | Range Not Satisfiable |
| http.EXPECTATION_FAILED | 417 | Expectation Failed |
| http.IM_A_TEAPOT | 418 | I'm a Teapot |
| http.MISDIRECTED_REQUEST | 421 | Misdirected Request |
| http.UNPROCESSABLE_ENTITY | 422 | Unprocessable Entity |
| http.LOCKED | 423 | Locked |
| http.FAILED_DEPENDENCY | 424 | Failed Dependency |
| http.TOO_EARLY | 425 | Too Early |
| http.UPGRADE_REQUIRED | 426 | Upgrade Required |
| http.PRECONDITION_REQUIRED | 428 | Precondition Required |
| http.TOO_MANY_REQUESTS | 429 | Too Many Requests |
| http.REQUEST_HEADER_FIELDS_TOO_LARGE | 431 | Request Header Fields Too Large |
| http.UNAVAILABLE_FOR_LEGAL_REASONS | 451 | Unavailable For Legal Reasons |
5xx Server Errors:
| Constant | Value | Description |
|---|---|---|
| http.INTERNAL_SERVER_ERROR | 500 | Internal Server Error |
| http.NOT_IMPLEMENTED | 501 | Not Implemented |
| http.BAD_GATEWAY | 502 | Bad Gateway |
| http.SERVICE_UNAVAILABLE | 503 | Service Unavailable |
| http.GATEWAY_TIMEOUT | 504 | Gateway Timeout |
| http.HTTP_VERSION_NOT_SUPPORTED | 505 | HTTP Version Not Supported |
| http.VARIANT_ALSO_NEGOTIATES | 506 | Variant Also Negotiates |
| http.INSUFFICIENT_STORAGE | 507 | Insufficient Storage |
| http.LOOP_DETECTED | 508 | Loop Detected |
| http.NOT_EXTENDED | 510 | Not Extended |
| http.NETWORK_AUTHENTICATION_REQUIRED | 511 | Network Authentication Required |
Example usage:
modify http.status = http.TOO_MANY_REQUESTS;
modify http.status = http.INTERNAL_SERVER_ERROR;
Namespace yubikey
Context variables for Yubico OTP offline authentication. See YubiKey Context Variables for the full variable reference.
Namespace root
| Variable | Type | Access | Description |
|---|---|---|---|
| root.* | * | read/write | Root context namespace |
Examples:
| Example | Description |
|---|---|
| root.aaa.identity | AAA identity from root context |
| root.radius.client | RADIUS client from root context |
Namespace errors
The errors namespace provides compile-time-validated constants for
machine-readable error codes. Use these constants when comparing against
aaa.caught_error.code to branch on specific error conditions caught by the
try action. The namespace is read-only.
Constants
| Constant | Description |
|---|---|
| errors.RADIUS_IDENTIFIERS_EXHAUSTED | All 256 RADIUS packet identifiers are in use |
See the try action documentation for usage examples.
- Always-available utilities
- Namespace datetime
- Namespace env
- Namespace server
- Namespace util
- Namespace vars
- Runtime namespaces
- Namespace aaa
- Namespace user
- Namespace acct
- Namespace auth
- Namespace tls
- Namespace cert
- Namespace radius
- Constants
- Namespace radiusproxy
- Namespace eap
- Namespace eap-ttls
- Namespace eap-teap
- Namespace parent
- Namespace tacacsplus
- Namespace http
- Constants
- Namespace yubikey
- Namespace root
- Namespace errors
- Constants
About Radiator software development security
Architecture Overview
Backend Load Balancing
Basic Installation
Built-in Environment Variables
Byte Size Units
Certificate Revocation Lists
Comparison Operators
Configuration Editor
Configuration Import and Export
Containers
Cron and interval timers
Data Types
Duration Units
Environment Variables
Execution Context
Execution Pipelines
Filters
Getting a Radiator License
Health check /live and /ready
High Availability and Load Balancing
High availability identifiers
HTTP Basic Authentication
Introduction
Linux systemd support
Local AAA Backends
Log storage and formatting
Management API privilege levels
Namespaces
Password Hashing
Password Rehashing During Login
Probabilistic Sampling
Prometheus scraping
PROXY Protocol Support
Radiator server health and boot up logic
Radiator sizing
Radiator software releases
RadiatorDB
RadiatorDB Backup
RadiatorDB CLI
RadiatorDB Installation
RadiatorDB REST API
Rate Limiting
Rate Limiting Algorithms
Reverse Dynamic Authorization
Service Level Objective
TACACS+ Authentication, Authorization, and Accounting
Template Rendering CLI
Timestamp Format
Timestamps
Tools radiator-client
TOTP/HOTP Authentication
What is Radiator?
YubiKey Authentication
YubiKey Context Variables
About Radiator software development security
Architecture Overview
Backend Load Balancing
Basic Installation
Built-in Environment Variables
Byte Size Units
Certificate Revocation Lists
Comparison Operators
Configuration Editor
Configuration Import and Export
Containers
Cron and interval timers
Data Types
Duration Units
Environment Variables
Execution Context
Execution Pipelines
Filters
Getting a Radiator License
Health check /live and /ready
High Availability and Load Balancing
High availability identifiers
HTTP Basic Authentication
Introduction
Linux systemd support
Local AAA Backends
Log storage and formatting
Management API privilege levels
Namespaces
Password Hashing
Password Rehashing During Login
Probabilistic Sampling
Prometheus scraping
PROXY Protocol Support
Radiator server health and boot up logic
Radiator sizing
Radiator software releases
RadiatorDB
RadiatorDB Backup
RadiatorDB CLI
RadiatorDB Installation
RadiatorDB REST API
Rate Limiting
Rate Limiting Algorithms
Reverse Dynamic Authorization
Service Level Objective
TACACS+ Authentication, Authorization, and Accounting
Template Rendering CLI
Timestamp Format
Timestamps
Tools radiator-client
TOTP/HOTP Authentication
What is Radiator?
YubiKey Authentication
YubiKey Context Variables