Trust Center

How AuditFlow handles security, privacy, AI, and compliance — stated plainly, kept current.

What this page is: a plain-language summary of AuditFlow's actual current architecture and controls, based on an internal, code-level security review (self-assessed, last reviewed July 26, 2026) and an internal Azure deployment-readiness review. It is not a marketing claim of certification. AuditFlow has not undergone a third-party penetration test, SOC 2 audit, or ISO 27001 certification. Anything not yet built is labeled Planned rather than implied.

Security Overview

Authentication, access control, and application-security posture — what's built, what's next.

Privacy

What personal and audit data we collect, why, and how it's used.

Compliance

Framework alignment work done so far, and honest status on formal certifications.

AI Trust

How AI features work, which provider handles your data, and who reviews AI output before it's used.

Architecture

How AuditFlow is built and deployed today, and the roadmap toward a hosted cloud edition.

Encryption

What's encrypted today, what depends on your deployment, and what's on the roadmap.

Responsible Disclosure

How to report a security issue today, and what's planned for a formal program.

System Status

Why AuditFlow's self-hosted model means status is monitored differently than a typical SaaS app.

Data Protection

Access control, audit trails, and safeguards around the audit data you put into AuditFlow.

Data Retention

How long your data is kept, and what happens when an account is closed.

No Trust Center topics match that search.

Security Overview

This reflects an internal, code-level security review of the application (not a third-party penetration test). It found no SQL injection, no XSS via the template layer, no committed secrets, and no unsafe deserialization anywhere in the codebase. The controls below are the ones that matter most to a security reviewer.

Live
Password storagePBKDF2-HMAC-SHA256 password hashing (via Werkzeug), with automatic upgrade of any legacy hashes on next login. Login timing is masked for unknown usernames so it can't be used to enumerate accounts.
Live
Login rate limiting & lockoutServer-side, database-backed login throttling that can't be bypassed by clearing cookies or opening a new session.
Live
Session hygieneSessions are cleared on login (session-fixation prevention), cookies are marked HttpOnly and SameSite=Lax, and account-active status is re-checked periodically during a session.
Live
Role-based access controlA seven-tier role hierarchy governs what each user can see and do, including a fail-closed scoping rule for the Control Owner role — if scope data is missing, that role sees nothing rather than everything.
Live
Maker-checker approval workflowAudits, findings, and published reports move through Draft → In Review → Approved/Rejected, with approval restricted to manager-level roles and above.
Live
Security headers & CSPContent-Security-Policy, X-Content-Type-Options, X-Frame-Options, and Referrer-Policy are set on every response. The CSP currently allows inline styles/scripts as an interim step while a template cleanup is completed — see Encryption below for what that means in practice.
Live
Audit trail loggingLogins, permission changes, exports, and general application actions are recorded with actor, action, IP address, and timestamp.
Planned
CSRF protection everywhereCSRF token checks are currently enforced on the authentication and admin areas of the app; extending that same protection to every remaining route is the top item on our active security roadmap.
Planned
Multi-factor authenticationAuthentication is currently single-factor (username + password) for every role. TOTP-based MFA is planned, starting with manager-level roles and above.
Planned
General rate limitingBeyond login attempts and AI calls, there is no general per-route rate limiting yet. Adding it (exports, search, report generation) is on the near-term roadmap.
Back to top

Privacy

AuditFlow collects the account information needed to run the platform (username, email, full name, role, organization/site) and the audit data your team creates (documents, findings, action items, framework vault content) plus usage/audit-trail logs (logins, actions taken, features used). This data is used to run the platform, authenticate users, generate reports, and maintain the audit trail that gives your findings evidentiary value. It is not sold, and it is not used for purposes unrelated to operating AuditFlow.

This summary is not a substitute for the full policy. Read the complete Privacy Policy for the section-by-section detail, including data retention and third-party AI processing terms.

Back to top

Compliance

AuditFlow has not completed a SOC 2 audit, ISO/IEC 27001 certification, or an external penetration test. Any claim to the contrary is false — this section exists specifically to say so plainly. What has been done is an internal, code-level self-assessment against several major frameworks, used to prioritize the security roadmap above.

Self-assessed
SOC 2 (Trust Services Criteria)Internally scored against CC6.1, CC6.6, CC6.7, and CC7.2. Strong password hashing, RBAC, and session controls are in place; the gaps to close before a real Type I readiness assessment are the CSRF and MFA items listed under Security Overview.
Self-assessed
ISO/IEC 27001 (Annex A)Foundational access-control and cryptography practices exist; a formal ISMS and documented risk-treatment plan do not exist yet.
Self-assessed
NIST Cybersecurity Framework 2.0 & OWASP Top 10Reviewed internally as part of the same assessment. Identify/Protect controls (access control, secure coding, injection defense) are the strongest dimension; Detect/Respond maturity (monitoring, alerting) is the weakest.
Planned
External penetration test & formal certificationCommissioning an external penetration test, and pursuing SOC 2 Type I readiness, are planned once the Critical/High items on the security roadmap (see Security Overview) are closed.
Back to top

AI Trust

AuditFlow's AI features (finding generation, root-cause and corrective-action suggestions, evidence-review assistance, report drafting/polishing) support your team's work — they do not replace the maker-checker approval workflow. Every AI-assisted finding or report still goes through the same Draft → In Review → Approved review chain as manually written content before it's published.

Live
Local-processing option (Ollama)AuditFlow supports running AI features against a locally-hosted Ollama model. In this mode, audit content never leaves your own servers.
Live
Privacy-local-only setting defaults onThe application's privacy flag that blocks outbound AI calls entirely is set to "on" by default. Sending audit content to a third-party AI provider (OpenAI) requires a deliberate, explicit configuration change by your administrator — it is not the out-of-the-box behavior.
Live
Human review before publicationAI-drafted findings, root causes, and report language pass through the same manager/approver review as any other content — nothing AI-generated is published to a report automatically.
Deployment-dependent
If your organization enables the OpenAI providerRequests are sent to OpenAI's API under OpenAI's own API terms and data-handling policies — refer to OpenAI's published policies for how they treat API data. AuditFlow does not fine-tune or train any model on your audit data.
Planned
Published AI acceptable-use policyA formal, customer-facing document describing acceptable use of AI features and data-handling commitments beyond this summary is planned.
Back to top

Architecture

AuditFlow is a server-rendered Flask application backed by SQLite, deployed today as a self-hosted, single-instance application per organization — not a shared multi-tenant cloud service. That's a deliberate, currently-accurate description, not a limitation we're hiding: your data lives in your own deployment, on infrastructure you control.

Current
Self-hosted, single-instance deploymentFlask 3.1.3, server-rendered pages, a local SQLite database in WAL mode, and local file storage for evidence and reports. Each customer's deployment is fully separate infrastructure — sites within an organization are locations, not other customers sharing a database.
Self-assessed score
Azure Pilot deployment readiness: 6.5 / 10An internal readiness review scored a single-instance Azure App Service deployment at 6.5/10 — config-via-environment-variables, security headers, CSRF, and RBAC are already close to cloud-ready; the remaining gap is a small set of well-understood code changes (a production WSGI entrypoint, proxy-header handling, and secret-key handling).
Planned
Multi-instance / high-availability cloud edition: 3 / 10 todayThe same review scored full production/enterprise readiness (autoscale, zone redundancy, a networked database, SSO) at 3/10. This is honestly the larger piece of remaining work — migrating from SQLite to a networked database and from local disk to cloud object storage are the two dominant items, both already scoped on the roadmap.
Planned
Single sign-on (Entra ID / SAML / OIDC)Not implemented today. Scoped as part of the target Azure architecture for organizations that require it.
Back to top

Encryption

Encryption coverage today is a mix of what the application enforces directly and what depends on how a given deployment is configured. Both are stated below rather than blended into one claim.

Live
PasswordsNever stored in plaintext or reversibly encrypted — hashed with PBKDF2-HMAC-SHA256.
Live
Secrets managementThe application's secret key and API credentials are never hardcoded and are never committed to source control.
Deployment-dependent
Encryption in transit (HTTPS/TLS)The application enforces HTTPS-only session cookies when an administrator explicitly enables it for a deployment (typically behind a TLS-terminating reverse proxy). It is a required step in our production deployment guidance, but — today — it is a deployment-time setting, not a hardcoded default.
Planned
Encryption at restUploaded evidence files and the database are not encrypted at the application level today; confidentiality currently depends on host/disk-level protections you control. Full-disk/volume encryption on the host is our current hard recommendation, and application-level encryption of evidence content is planned.
Planned
Managed secret storage (Key Vault)Secrets are currently held in deployment-local configuration. Moving to a managed secret store (e.g. Azure Key Vault) with rotation is part of the cloud-deployment roadmap.
Back to top

Responsible Disclosure

There is no formal bug bounty program or dedicated security-disclosure inbox yet — that's planned. Today, if you believe you've found a security issue in AuditFlow, please report it through the Contact page with as much detail as you can provide (steps to reproduce, affected URL/route, and impact). We ask that you avoid accessing, modifying, or deleting data beyond what's needed to demonstrate the issue, and that you give us a reasonable opportunity to investigate and address a report before any public disclosure.

Available today
Report a vulnerabilityVia the Contact page — reports are reviewed by the team responsible for the affected component.
Planned
Dedicated security contact & formal policyA dedicated disclosure address, published response-time commitments, and (eventually) a bug bounty program are planned as the platform matures toward broader enterprise rollout.
Back to top

System Status

AuditFlow is deployed today as self-hosted, single-tenant software: each organization runs its own instance on its own infrastructure. Because of that, there is no shared, multi-tenant AuditFlow cloud status page today — uptime and incident response for a given deployment are owned by the organization operating it, the same way they'd own uptime for any other self-hosted application.

Live
Built-in health checkThe application exposes a health-check endpoint (database connectivity and core configuration status) and an in-app Launch Readiness dashboard, so your own operations team can monitor the deployment directly.
Planned
Hosted status page & published SLAA public status page and formal uptime SLA are planned alongside a future hosted/managed edition of AuditFlow.
Back to top

Data Protection

Protecting the audit data your team relies on combines access control, review workflow, and logging. Here's what's already enforced, and what's still on the roadmap.

Live
Role-based access controlSeven role tiers govern what each user can view and edit across audits, findings, risk data, and administration.
Live
Maker-checker reviewFindings and reports move through a review/approval chain before publication — no single person's draft becomes an official record unreviewed.
Live
Upload validationEvidence, vault, and attachment uploads are filtered by a file-extension allow-list and size limits.
Planned
Content-based upload scanningToday's upload check is extension-based only, not content/malware scanning. Magic-byte verification and optional antivirus scanning of uploads are planned.
Planned
Site/region-scoped accessAccess control today is role-based; the same fail-closed scoping already used for one role (Control Owner) is planned to extend to managers so they're limited to their own site/region, for organizations that require it.
Planned
Automated backupsAt today's single-file-database tier, backups are the deploying organization's responsibility (a documented manual/scripted step). Automated, managed backups are planned alongside the networked-database migration.
Back to top

Data Retention

This matches the retention terms in our full Privacy Policy.

Policy
Active accountsAudit data is retained for as long as your organization's account remains active.
Policy
Account deletionUpon account deletion, data is permanently removed within 30 days, unless a longer period is required by law.
Deployment-controlled
Where your data physically livesBecause AuditFlow is self-hosted per organization today, your audit data resides in your own deployment's database and file storage — your organization directly controls where it lives and how it's backed up.
Planned
Automated log retention/rotationAudit-trail, login, and export logs are retained in the operational database without an automated expiry policy today. A configurable log-retention/rotation policy is planned.
Back to top