Policy as code. Granular access control, role-based and attribute-based, down to individual records and endpoints.
Tower determines what authenticated users can actually do within CASTLE. Role-based access with fine-grained permissions — down to individual data records, API endpoints, and model access levels.
Define roles with granular permission sets. Analyst, Engineer, Operator, Admin. Each role scoped to exact resources and actions.
Complex conditional logic for edge cases. Permission depends on time, IP, device, data classification, or custom attributes.
Per-API, per-endpoint, per-record control. User A sees records from region X. User B calls inference on specific models only.
Versioned, auditable, reviewable permission rules. YAML-based definitions. Git-tracked policies. Code review before deployment.
Permission changes take effect without system restart. Policy changes propagate to all nodes in milliseconds.
Assign users to roles. Each role grants a specific bundle of permissions across the CASTLE platform.
When RBAC isn't enough, use attributes. Time windows, IP ranges, device status, data sensitivity levels, and custom fields.
Agent requests inference on edge-1
Authenticate user + device
Check role + attributes
Allow or deny with reason
Every permission rule is code. Version controlled. Code reviewed. Reversible. Compliance-auditable.
policy:
name: analyst-inference
description: "Analysts can run read-only inference on 4B models"
effect: allow
subjects: [role:analyst]
resources: [echo:/v1/chat/completions]
conditions:
model: [edge-pro, edge-1]
max_tokens: 4096
metadata:
created_by: james@virul.co
approved_by: security@axe.observer
data_classification: unclassified
expires_at: 2027-04-08
---
policy:
name: engineer-full-access
effect: allow
subjects: [role:engineer]
resources: [echo:*, crown:*, atlas:*]
conditions:
ip_range: [*.*.*.*/16 (private ranges)]
time_window: "09:00-18:00 EST"
device_type: [laptop, desktop]
Tower is the gatekeeper. Every request to Echo, Crown, Atlas, Lens flows through Tower's permission engine.
Shield authenticates (who are you?). Tower authorizes (what can you do?). Two gates, both mandatory.
User can call inference, but only on models they're authorized for. Policy-driven model access.
Knowledge query results filtered by user permissions. Analyst sees only unclassified + their department's data.
Database queries enforced by policy. User can only SELECT rows they're authorized to see.
Browser automation only permitted on whitelisted domains per role. Policy controls which URLs agents can visit.
/ Contact · we read every inquiry
.Demos, partnerships, government RFPs, technical questions. A person reads every form. You hear from someone — not a queue.
AXE Concierge · live
Answered by a local model · Canadian iron · zero external API