Package com.tnsai.annotations
Annotation Interface Security
Configures security policies for actions and roles.
This annotation provides declarative security configuration including approval requirements, audit logging, data sensitivity, and access control.
Usage on Method
@ActionSpec(type = ActionType.LOCAL, description = "Delete user account")
@Security(
approvalRequired = true,
approvalReason = "Permanent data deletion",
audit = AuditLevel.DETAILED,
sensitive = true
)
public void deleteUser(String userId) { ... }
Usage on Type
@Security(
audit = AuditLevel.BASIC,
allowedCallers = {"admin-agent", "supervisor-agent"}
)
public class AdminRole extends Role { ... }
- Author:
- TnsAI Team
- See Also:
-
Nested Class Summary
Nested Classes -
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionString[]Agent IDs allowed to call this action/role.String[]Roles allowed to call this action.Reason for requiring approval.booleanWhether human approval is required before execution.Audit logging level.booleanWhether to encrypt action parameters in transit.booleanWhether to encrypt action result in transit.booleanWhether action can be replayed (idempotent).String[]Fields to mask in logs (for sensitive data).String[]Required permissions for this action.intMaximum execution time before automatic abort (security timeout).booleanWhether action handles sensitive data.
-
Element Details
-
approvalRequired
boolean approvalRequiredWhether human approval is required before execution.- Returns:
- true if approval required
- Default:
false
-
approvalReason
String approvalReasonReason for requiring approval.Displayed to the approver.
- Returns:
- approval reason
- Default:
""
-
audit
Security.AuditLevel auditAudit logging level.- Returns:
- audit level
- Default:
NONE
-
sensitive
boolean sensitiveWhether action handles sensitive data.Sensitive data is masked in logs and traces.
- Returns:
- true if sensitive
- Default:
false
-
maskFields
String[] maskFieldsFields to mask in logs (for sensitive data).- Returns:
- field names to mask
- Default:
{}
-
allowedCallers
String[] allowedCallersAgent IDs allowed to call this action/role.Empty means all agents allowed.
- Returns:
- allowed caller IDs
- Default:
{}
-
allowedRoles
String[] allowedRolesRoles allowed to call this action.Empty means all roles allowed.
- Returns:
- allowed role names
- Default:
{}
-
requiredPermissions
String[] requiredPermissionsRequired permissions for this action.- Returns:
- required permission names
- Default:
{}
-
encryptParams
boolean encryptParamsWhether to encrypt action parameters in transit.- Returns:
- true to encrypt
- Default:
false
-
encryptResult
boolean encryptResultWhether to encrypt action result in transit.- Returns:
- true to encrypt
- Default:
false
-
securityTimeout
int securityTimeoutMaximum execution time before automatic abort (security timeout).0 means no security timeout.
- Returns:
- timeout in milliseconds
- Default:
0
-
idempotent
boolean idempotentWhether action can be replayed (idempotent).Non-idempotent actions get replay protection.
- Returns:
- true if idempotent
- Default:
false
-