Skip to main content

Data Architecture & Security

How ASCEND stores, protects, and isolates your data

Overview

ASCEND is a governance and enforcement platform for AI agents and MCP servers. This page describes what data ASCEND stores, where it resides, how it is encrypted, and who can access it.

ASCEND governs what AI agents do—database writes, API calls, financial transactions—not just what they say. Every action flows through risk assessment, policy enforcement, and cryptographic verification before execution. Everything is logged for regulatory compliance.

Key Principle

ASCEND never stores your proprietary data, trade secrets, or the content of your AI agent's outputs. ASCEND stores only governance metadata: what action was requested, the risk assessment, the approval decision, and the audit trail.

Data Classification

Data CategoryWhat's StoredClassificationRetention
Organizational Data
Organization profileCompany name, slug, subscription tier, statusInternalAccount lifetime
User accountsEmail, role, permissions, organization associationConfidentialAccount lifetime + 90 days
API credentialsOrganization-scoped API keys, 32-char prefix, encrypted at restRestrictedUntil rotation
Agent Governance Data
Agent registryAgent IDs, display names, risk thresholds, operational modeInternalAccount lifetime
Action recordsEvery submitted action: type, tool, risk score, status, justification, contextConfidentialPer tier (30 days–7 years)
Approval decisionsApprover identity, timestamp, workflow stage, signed tokensConfidentialPer tier (30 days–7 years)
Policy rulesSmart rules configuration, workflow templatesInternalAccount lifetime
Audit & Compliance Data
Audit logsImmutable record of all events: actions, approvals, denials, kill-switch, config changesConfidentialPer tier (30 days–7 years)
Compliance mappingsNIST SP 800-53 control references, MITRE ATT&CK tactic/technique per actionInternalWith parent record
BYOK key metadataCustomer KMS key ARNs, health status, rotation history—never key materialRestrictedAccount lifetime

Storage Infrastructure

ComponentPurposeEncryptionAvailability
PostgreSQL RDSAll application data (organizations, users, agents, actions, workflows, audit logs)AES-256 at rest, TLS 1.3 in transit, BYOK envelope encryption availableMulti-AZ with automated failover
AWS CognitoUser authentication, password management, session tokens, MFAAWS-managed encryption, no passwords in application databaseRegional redundancy (AWS-managed)
AWS Secrets ManagerPlatform credentials, database connection strings, API signing keysAES-256 with automatic rotationRegional redundancy, least-privilege IAM
AWS SNS / SQSKill-switch messaging, agent control commands, notification dispatchServer-side encryption, per-organization queue isolationRegional redundancy, sub-second latency
AWS SESOutbound email for critical alerts, daily digestsTLS in transitRegional (us-east-2)
ECS FargateStateless compute—no persistent data stored on containersN/A (stateless)Auto-scaling, multi-AZ task placement
note

All infrastructure runs in AWS us-east-2 (Ohio). Total messaging infrastructure costs approximately $5/month using AWS-native services.

Tenant Isolation (4-Layer Architecture)

ASCEND enforces tenant isolation at four independent layers (SEC-TENANT-001). Each layer operates independently—a failure at any single layer cannot expose cross-tenant data.

┌──────────────────────────────────────────────────────────────────────────┐
│ TENANT ISOLATION LAYERS │
├──────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Layer 1: Frontend Routing │ │
│ │ Organization-scoped URL paths (/org/{slug}/) │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Layer 2: Backend Middleware │ │
│ │ Every API request validated against authenticated organization_id │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Layer 3: Application Logic │ │
│ │ All queries include organization_id; API keys are org-scoped │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Layer 4: Database RLS │ │
│ │ PostgreSQL Row-Level Security enforces boundaries at engine level │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────┘
LayerComponentMechanismFailure Mode
1Frontend RoutingOrganization-scoped URL paths (/org/{slug}/)Incorrect slug → 404, no data leakage
2Backend MiddlewareEvery API request validated against authenticated user's organization_idMismatch → 403 Forbidden
3Application LogicAll queries include organization_id; API keys are org-scopedMissing filter → empty result set
4Database RLSPostgreSQL Row-Level Security enforces boundaries at engine levelRLS policy denies → zero rows returned
Defense in Depth

Even if application code contains a bug that omits a tenant filter, the RLS policy at the database layer prevents cross-tenant data access. All 393 protected endpoints are validated against this model.

Access Control

Authentication Methods

MethodUsed ByMechanismSecurity Controls
Cognito JWTHuman users (dashboard)OAuth 2.0 / OIDC with tenant-specific user poolsMFA, forced password change, HttpOnly cookies
API KeyAgent SDKs, gateways32-char prefix + encrypted secret, org-scopedRLS enforcement, rotation support

Roles

RolePermissionsScope
Super AdminFull access: agents, users, policies, approvals, BYOK, settingsOwn organization only
AdminManage agents, approve actions, configure policies, view audit logsOwn organization only
ApproverReview and approve/deny pending actions in assigned workflowsAssigned workflows only
ViewerRead-only: dashboards, audit logs, agent statusOwn organization only

Platform Administration

Platform-admin access is restricted to OW-KAI operational personnel with credentials stored in AWS Secrets Manager under least-privilege IAM policies with mandatory rotation. BYOK customers retain independent encryption key control—even platform-level access cannot decrypt BYOK-protected data without the customer's CMK.

Encryption Architecture

At Rest

ComponentMethodKey Management
PostgreSQL RDSAES-256 via AWS RDS encryptionAWS KMS or customer CMK (BYOK)
Secrets ManagerAES-256 with auto-rotationAWS KMS default
SNS / SQSServer-side encryption (SSE)AWS-managed
API KeysEncrypted storage, 32-char prefix for lookup without decryptionApplication-level

In Transit

All external communications use TLS 1.3 minimum via Application Load Balancer with AWS Certificate Manager. Internal service-to-service communication within VPC uses encrypted channels.

BYOK (Bring Your Own Key)

Enterprise customers supply their own AWS KMS CMK for envelope encryption. ASCEND encrypts data encryption keys (DEKs) with the customer's CMK. Customers retain full control—revoking the CMK immediately renders data unreadable.

CapabilityDetails
Key RegistrationPOST /api/v1/byok/keys — register CMK ARN
Health MonitoringAutomated 15-minute checks with proactive notifications
Manual RotationPOST /api/v1/byok/keys/rotate — trigger re-encryption
Auto-Rotation DetectionDetects CMK version changes, auto-re-wraps DEKs
Key RevocationCustomer disables CMK → data immediately unreadable
warning

BYOK is designed to fail-secure. If ASCEND cannot reach the customer's CMK, all encryption and decryption operations fail rather than falling back to platform-managed keys. See BYOK Encryption for full setup and troubleshooting.

End-to-End Data Flow

Every agent action follows this 10-step path from submission to audit trail:

┌─────────────┐     ┌───────────────┐     ┌──────────────┐
│ 1. Agent │────▶│ 2. TLS 1.3 │────▶│ 3. Auth │
│ SDK │ │ Transport │ │ Layer │
└─────────────┘ └───────────────┘ └──────┬───────┘

┌───────────────┐ ┌───────▼──────┐
│ 5. Policy │◀────│ 4. Risk │
│ Engine │ │ Engine │
└───────┬───────┘ └──────────────┘

┌────────────▼────────────┐
│ 6. Action Record │
│ (written to database) │
└────────────┬────────────┘

┌─────────────────┼─────────────────┐
│ │ │
┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐
│ 7. Notify │ │ 8. Approval │ │ 9. Execution│
│ (Slack, │ │ (Human-in- │ │ (Signed │
│ Webhook) │ │ the-Loop) │ │ token) │
└─────────────┘ └─────────────┘ └──────┬──────┘

┌──────▼──────┐
│ 10. Audit │
│ Trail │
└─────────────┘
StepComponentWhat Happens
1Agent SDKAgent invokes SDK before sensitive action
2TLS TransportHTTPS/TLS 1.3 to pilot.owkai.app
3Auth LayerAPI key validated, RLS session variable set
4Risk EngineCVSS v3.1 + NIST 800-30 + MITRE ATT&CK scoring (0–100)
5Policy EngineSmart rules evaluated, routing determined
6Action RecordFull record written to agent_actions table
7NotificationDashboard, Slack, webhook dispatched per config
8ApprovalHuman reviews in Authorization Center
9ExecutionSigned token generated, agent proceeds or blocks
10Audit TrailImmutable record of complete lifecycle

Kill-Switch Architecture

The kill-switch provides immediate, organization-wide agent shutdown capability:

AttributeSpecification
Latency< 1 second (100–500ms typical)
PathDashboard → SNS → SQS (per-org) → SDK → Agent STOPS
NotificationsSimultaneous: Dashboard, Slack, Webhook, Email, SMS
Fail ModeFail-closed: unreachable ASCEND = blocked actions
┌──────────┐     ┌──────────┐     ┌──────────────┐     ┌──────────┐
│ Dashboard │────▶│ SNS │────▶│ SQS (per-org)│────▶│ SDK Poll │
│ (Admin) │ │ Topic │ │ Queue │ │ → STOP │
└──────────┘ └──────────┘ └──────────────┘ └──────────┘

┌────────────┼────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Slack │ │ Webhook │ │ Email │
└─────────┘ └─────────┘ └─────────┘
Fail-Closed Design

If an agent SDK cannot reach ASCEND, all governed actions are blocked by default. This prevents agents from operating outside governance during network interruptions or outages.

Compliance Alignment

FrameworkCapabilitiesKey Controls
SOC 2 Type IIAudit trails, RBAC, encryption, change managementCC6.1, CC6.3, CC7.2, CC8.1
PCI-DSSData protection, access logging, key managementReq 3, 7, 8, 10
HIPAAPHI access controls, audit logging, BYOK§164.312(a)(b)(c)(e)
FedRAMPAWS GovCloud compatible, NIST 800-53 mappingsAC, AU, IA, SC families
NIST AI RMFAI risk assessment, governance, HITL enforcementGovern, Map, Measure, Manage

For detailed compliance control mappings, see Compliance.

Data Retention by Tier

Data TypeDeveloperBusinessEnterprise
Audit Logs30 days1 year7 years
Action Records30 days1 year7 years
Agent RegistryAccount lifetimeAccount lifetimeAccount lifetime
BYOK Key MetadataN/AAvailableAvailable

Security Validation

472 automated tests at 100% pass rate across 12 security layers. Every deployment runs the full security test suite before reaching production.

Security LayerTestsStatus
Rate Limiting28Verified
Prompt Security62Verified
Code Analysis54Verified
Action Governance48Verified
JWT Authentication41Verified
API Key Validation37Verified
RBAC Authorization56Verified
BYOK Encryption44Verified
Audit Logging38Verified
Input Validation32Verified
Secrets Management18Verified
Security Headers14Verified
Total472All Verified

Next Steps