← Back to Methodology

Testify — Complete Feature Inventory

Version: 1.8.1 | Date: February 16, 2026 | Status: Production (AWS EKS)


Platform Overview

Testify is a multi-tenant GRC (Governance, Risk, and Compliance) platform purpose-built for private equity firms managing cybersecurity posture across portfolio companies. It replaces point-in-time assessment snapshots with a continuously updated security posture that reflects assessments, incidents, remediations, and manual overrides in real time.


1. Multi-Tenant Architecture

CapabilityDetail
Tenant hierarchyParent-child relationships (PE firm → portfolio companies → subsidiaries)
Role-based access4-tier RBAC: Portfolio Principal, Admin, Analyst, Viewer
Division scopingOrganize companies into logical groups (sector, region, fund); scope visibility per division
Division-aware filteringAll portfolio views, analytics, and bulk actions respect the active division selector
JWT authenticationAccess + refresh token flow with automatic refresh and session management
Two-factor authenticationTOTP-based 2FA with setup wizard, QR code provisioning, and recovery codes
Password resetEmail-based forgot-password flow via Google Workspace SMTP
Inactivity timeoutConfigurable session expiry with toast notification and redirect

2. Compliance & Assessment Engine

CapabilityDetail
CIS Controls v8Full 153-safeguard library with IG1/IG2/IG3 classification
NIST CSF supportMulti-framework architecture — CIS and NIST with crosswalk mapping
Custom controlsOrganization-specific controls with categories and supplemental questions
Assessment workspaceCSAT-methodology workspace with per-safeguard maturity scoring (P/I/A/R dimensions, 0-5 scale)
Evidence attachmentsPer-safeguard file uploads with evidence tracking
Bulk assessment saveAuto-save and bulk submission for efficient assessment completion
Assessment validationCompleteness checks before submission with missing-item summary
AI document importOllama-powered extraction from security documents (pen test reports, EDR coverage, Purple Knight AD assessments, IR reports)
Spreadsheet importBulk import from Excel/CSV with field mapping

3. Live Control State

CapabilityDetail
Real-time state registerTenantControlState per company per control — always current, not point-in-time
Four input sourcesAssessments, incidents, remediations, and manual overrides all update state
Immutable audit trailEvery state change produces a StateChangeEvent with source, user, timestamp, justification
Manual overridesAnalysts can adjust state with required justification — fully audited
State timelineVisual history of all changes per control with source attribution
Portfolio summaryAggregate view of control state across all companies

4. Health Review Campaigns

CapabilityDetail
8-step campaign wizardName, framework, control scope, scoring config, documents, attestations, assignments, review
Quick campaign creationSingle-click campaign from treemap or gap analysis — skip the wizard for targeted reviews
Control scope flexibilityIG1/IG2/IG3 baselines + individual control additions/exclusions
Multi-framework supportCIS Controls and NIST CSF with framework-specific control selection
Document requirementsConfigurable document types with expiration policies and upload instructions
Supplemental questionsPE-defined scoring questions (text, multiple choice, boolean) with categories and weights
Policy attestationsCompliance attestation requirements with optional evidence upload
Campaign directivesAdmin instructions displayed prominently to assigned companies (vendor recommendations, policy mandates)
Auto-activationCreate campaigns in draft or immediately activate with webhook notifications
Portco self-serviceCompanies see assigned campaigns, complete assessments, upload documents, and submit
Review workflowPE admin review with approve/reject per submission, gated on completeness

Campaign Scoring Engine

CapabilityDetail
4-category composite scoringControls (live state), supplemental questions, documents, attestations
Configurable weightsDefault 50/20/15/15 — adjustable per campaign
Maturity thresholdConfigurable minimum score for a control to count as meeting requirements
Campaign scores dashboardCross-portfolio view of all company scores with per-category breakdowns
Per-assignment scoringIndividual company score detail with requirement-level progress

5. Incident Response

CapabilityDetail
Incident lifecycleCreate, investigate, remediate, close — with status tracking and assignment
MITRE ATT&CK mappingTactic and technique mapping per incident with auto-suggest
Attack chain builderInteractive step-by-step attack reconstruction with MITRE technique linking
Evidence managementFile upload with SHA-256 hashing, chain of custody tracking, and download logging
IR investigations5-phase NIST SP 800-61 / SANS PICERL workflow with 53 questions and conditional follow-ups
Root cause analysisControl failure correlation with at-incident vs. current state comparison
Control degradationIncident creation automatically degrades affected controls via MITRE-to-CIS mapping
Portfolio control failuresCross-company view of which controls fail most often, ranked by frequency and financial impact
Bulk importImport incident records from third-party IR reports

6. Remediation Management

CapabilityDetail
Remediation trackingOpen → In Progress → Resolved → Verified lifecycle with priority and assignment
Control gap creationCreate remediations directly from gap analysis, treemap, or assessment results
Bulk remediationCreate remediations for all delinquent companies on a control in a single API call
DeduplicationAutomatically skips companies with existing open/in-progress remediations
Technology-based bulkCreate remediations for all companies using a specific vulnerable technology
State integrationCompleted remediations automatically upgrade control state in live register

7. Portfolio Analytics & Intelligence

CapabilityDetail
Analytics hubCentral dashboard with compliance trends, incident stats, and remediation status
Asset exposure treemapD3.js treemap sized by gap severity, colored by remediation coverage, with per-control detail panel
Risk constellationD3.js force-directed graph visualizing risk clusters and control relationships
Dimension radarP/I/A/R maturity comparison across companies with radar chart visualization
Gap cascade (Sankey)Flow visualization showing how control gaps cascade across the portfolio
Maturity heatmapGrid view of control maturity by company with color-coded cells
Maturity trendsHistorical trend analysis of maturity scores over time
Control gap analysisRanked list of weakest controls across portfolio with company breakdown
Technology inventoryCross-portfolio technology deployment tracking with vendor coverage analysis
Technology effectivenessCorrelation between technology deployments and control maturity outcomes
Company archetypesAutomated detection of company security posture patterns

8. Bulk Actions System (v1.8.1)

CapabilityDetail
Reusable architectureuseBulkActions.js composable + 2 backend endpoints — any view can invoke
Bulk remediation from controlSingle API call creates remediations for N companies with dedup
Quick campaign creationFocused campaign scoped to specific controls + tenants, bypassing wizard
Campaign directivesActionable instructions (vendor recommendations, mandates) displayed to portcos
Treemap integrationRemediate All + Launch Campaign buttons in detail panel
Control gap integrationSame actions available from Control Gap Analysis view
Division scopingAll bulk actions respect active division filter

9. Theming & Accessibility

CapabilityDetail
Theme systemLight + Midnight, with Auto preference following OS; persisted in localStorage
Theme toggleSidebar footer three-state segmented control (Light / Midnight / Auto)
Theme coverageSidebar + login persistent dark zones; first-slice routes use theme tokens; long-tail routes audited progressively (see frontend/STYLE.md)
Responsive designAdaptive layouts for desktop, tablet, and mobile viewports

10. Platform Administration

CapabilityDetail
Organization managementAdd companies, set parent-subsidiary hierarchy, create divisions
User managementCRUD for users with role assignment and tenant scoping
Custom controls libraryOrganization-specific control definitions with categories
Document type managementConfigure document types, expiration policies, upload permissions
Integration settingsWebhook configuration for external notifications
Portco upload settingsControl which companies can upload assessments
Feature tourInteractive onboarding walkthrough for new users
Admin guideIn-app documentation with role-specific guidance

11. Infrastructure & DevOps

CapabilityDetail
Docker ComposeLocal development with hot-reload (backend + frontend + PostgreSQL + Redis)
Kubernetes + HelmProduction deployment with Helm charts and values overlays
AWS EKSCurrent production cluster (testify-production)
ECR container registryAutomated image tagging and push
Cross-architecture builds--platform linux/amd64 for M-series Mac → Intel EKS nodes
Database migrationsDjango migration framework with zero-downtime patterns
Celery task queueRedis-backed async task processing
Health check endpointUnauthenticated /api/v1/health/ for load balancer probes

12. API Surface

AreaEndpoint CountAuth
Authentication9 endpointsMixed (login/reset public, others authenticated)
Assessments12+ endpointsRole-based
Campaigns15+ endpointsPE admin for management, authenticated for portco
Incidents10+ endpointsRole-based
Remediations5+ endpointsRole-based
Analytics8+ endpointsPE admin
Control State5 endpointsRole-based
Bulk Operations4 endpointsPE admin
Frameworks3 endpointsAuthenticated
Admin6+ endpointsAdmin/Superuser

13. AI Hygiene Assessment

CapabilityDetail
Feature nameAI Hygiene Review
Module / appbackend/apps/assessments + backend/apps/frameworks
Framework anchoredAI SAFE² v1.0 (Cyber Strategy Institute, MIT + CC-BY-SA)
CrosswalksNIST AI RMF 1.0, ISO/IEC 42001 AIMS, EU AI Act High-Risk Obligations, OWASP LLM Top 10 (2025)
Assessment scopeAI in product (customer-facing AI features) — internal tooling and dev assistants are Q0 out-of-scope
Three exit pathsQ0 scope-out (no AI in product, signed attestation); Q1 third-party override (upload existing ISO 42001 cert / NIST AI RMF audit / HITRUST AI / Big4 audit / red-team report); full 30-question questionnaire
Question bank (Phase 1)30 questions across 5 SAFE² pillars: Audit & Inventory (8), Sanitize & Isolate (6), Fail-Safe & Recovery (5), Engage & Monitor (6), Evolve & Educate (5)
Response valuesYes / Partial / No / N/A — defined in QUESTION_RESPONSE_VALUES (frontend/src/types/ai_hygiene.js:154)
Score computationPer-pillar mean (Yes=1.0, Partial=0.5, No=0.0, N/A excluded); weighted overall via AI_HYGIENE_DEFAULT_WEIGHTS (audit 0.25 / san 0.20 / fai 0.15 / eng 0.20 / evo 0.20); all-N/A pillars excluded and remaining weights renormalized
Q1 accepted scoreFixed 100; provenance label Audited externally — accepted
Evidence chain of custodySHA-256 hash on every upload; re-verified on every download; download-logged
AI Hygiene OfficerNamed via CampaignPolicyAttestation.policy_type='ai_hygiene_officer' + AttestationResponse.attested_by — identity and attestation text travel with submission
New assignment statesnot_applicable_attested, submitted_via_third_party_pending, submitted_via_third_party_accepted, submitted_via_third_party_rejected (added in migration 0039)
New model fieldsDocumentUpload.ai_evidence_type, third_party_assessment_type, validator_status; CampaignPolicyAttestation.policy_type; AttestationResponse.attestation_text (all in migration 0039)
Permission gateIsSubsidiaryOverseerOrPortfolioAdmin throughout — subsidiary overseers have first-class access
Parent-side surfacesSortable rollup list (AIHygieneList.vue) with score / status / provenance / evidence-backed columns; third-party review queue (ThirdPartyAssessmentReviewQueue.vue)
Tenant-side surfaceCampaign assignment entry in existing assessments dashboard; Q0 → Q1 → questionnaire flow (AIHygieneAssessment.vue)
Phase1 (self-attestation + third-party override + scoring + rollup)
RoadmapPhase 2: full 128-control SAFE² set, schema-validated AI BoM / Model Card evidence, crosswalk-based auto-credit, scheduled re-assessment cadence, cross-tenant heatmap. Phase 3: apps/ai_governance/ module, per-tenant AI inventory, EU AI Act exposure scoring, AI sub-score in Exit Readiness, opt-in Cranium connector.
Specdocs/superpowers/specs/2026-04-30-enterprise-ai-assessment-design.md

Technology Stack

LayerTechnologyPurpose
BackendDjango 5.0 + DRFREST API, ORM, migrations
FrontendVue 3 (Composition API)SPA with reactive UI
State ManagementPiniaFrontend stores (auth, theme, UI)
StylingTailwind CSSUtility-first CSS framework
VisualizationD3.jsTreemap, constellation, radar, Sankey, heatmap
DatabasePostgreSQL 15Primary data store
Cache/QueueRedis 7Session cache + Celery broker
Task QueueCeleryAsync processing
AI/LLMOllama (local)Document parsing and extraction
AuthSimpleJWT + pyotpJWT tokens + TOTP 2FA
ContainerDockerDevelopment and production
OrchestrationKubernetes + HelmProduction deployment
CloudAWS (EKS, ECR)Current production environment
EmailGoogle Workspace SMTPTransactional email (password reset, notifications)

This document is maintained as the authoritative feature reference for Testify. Last updated: v1.8.1, February 16, 2026.