Validate risk registers. Analyse evidence. Map ISO/IEC 27001 controls. Detect gaps. Generate remediation actions.
Getting Started β’ Features β’ API β’ Architecture β’ Roadmap β’ Contributing
Preparing for an ISO/IEC 27001 audit is still heavily manual.
Security and GRC teams often spend days or weeks:
- chasing evidence across multiple systems;
- validating inconsistent spreadsheets;
- checking whether policies are approved and current;
- mapping documents to framework controls;
- identifying missing evidence;
- maintaining corrective-action trackers;
- producing readiness summaries for management.
AuditPilot brings these activities into one extensible, open-source workflow.
Risk Registers
β
Validation Engine
β
Evidence Upload
β
Document Intelligence
β
ISO/IEC 27001 Mapping
β
Coverage Analysis
β
Gap Detection
β
Compliance Scoring
β
CAPA Generation
β
Remediation Tracking
AuditPilot is designed to help organisations move from
βAre we compliant?β
to
βWe know exactly where we stand and what to fix next.β
Upload a CSV or XLSX risk register and detect:
- duplicate or missing Risk IDs;
- missing owners, titles and descriptions;
- missing treatment plans;
- invalid likelihood and impact values;
- missing, invalid or overdue review dates;
- duplicate and empty rows;
- missing required columns.
Upload:
- DOCX
- TXT
- CSV
- XLSX
AuditPilot parses the content, generates a SHA-256 checksum and stores structured evidence metadata.
AuditPilot can automatically:
- classify document types;
- extract metadata;
- detect drafts;
- detect missing approval information;
- detect missing version information;
- identify documents requiring human review;
- assess whether evidence appears sufficient.
Uploaded evidence can be mapped to controls using:
- control-specific keywords;
- matched-keyword tracking;
- deterministic confidence scores;
- a typed control library.
AuditPilot calculates:
- total controls;
- covered controls;
- uncovered controls;
- framework coverage percentage;
- covered and uncovered control IDs.
For uncovered controls, AuditPilot returns:
- control ID;
- control title;
- expected evidence;
- gap severity;
- remediation recommendation.
Detected compliance gaps can be converted into CAPA-style actions containing:
- control reference;
- remediation recommendation;
- expected evidence;
- priority;
- action status.
{
"filename": "information-security-policy.pdf",
"document_type": "Policy",
"evidence_status": "Sufficient",
"control_mappings": [
{
"control_id": "A.5.1",
"confidence": 1.0,
"matched_keywords": [
"information security policy",
"approved by",
"policy review",
"version"
]
}
]
}{
"total_controls": 2,
"covered_controls": 1,
"uncovered_controls": 1,
"coverage_percentage": 50.0,
"covered_control_ids": [
"A.5.1"
],
"uncovered_control_ids": [
"A.5.2"
]
}{
"control_id": "A.5.2",
"control_title": "Information security roles and responsibilities",
"expected_evidence": [
"Roles and responsibilities matrix",
"Job descriptions",
"RACI matrix"
],
"severity": "Medium",
"recommendation": "Provide evidence for A.5.2 (Information security roles and responsibilities)."
}{
"control_id": "A.5.2",
"control_title": "Information security roles and responsibilities",
"priority": "Medium",
"recommendation": "Provide evidence for A.5.2 (Information security roles and responsibilities).",
"expected_evidence": [
"Roles and responsibilities matrix",
"Job descriptions",
"RACI matrix"
],
"status": "Open"
}AuditPilot is under active development.
Phase 1 Backend Foundation β
Complete
Phase 2 Validation Engine β
Complete
Phase 3 Evidence Intelligence Pipeline β
Complete
Phase 4 Compliance Framework Engine β
Complete
Phase 5 CAPA and Remediation Engine π§ In progress
Phase 6 AI Compliance Copilot β³ Planned
Phase 7 Dashboard and Reporting β³ Planned
The current implementation is suitable for development, experimentation and open-source collaboration. It is not yet intended to replace professional legal, certification or audit advice.
| Capability | Status |
|---|---|
| FastAPI backend | β |
| Risk Register validation | β |
| Multi-format evidence upload | β |
| PDF and DOCX text extraction | β |
| Evidence repository | β |
| Automatic document classification | β |
| Metadata extraction | β |
| Evidence-quality analysis | β |
| ISO/IEC 27001 control library | β |
| Evidence-to-control mapping | β |
| Framework coverage analysis | β |
| Compliance gap detection | β |
| Compliance scoring | β |
| CAPA generation | β |
| Framework registry | β |
| Persistent database storage | π§ |
| React dashboard | β³ |
| AI Compliance Copilot | β³ |
AuditPilot
β
βββββββββββββββββββ΄ββββββββββββββββββ
β β
Register Validation Evidence Intelligence
β β
Validation Engine Document Parser
β β
Rule Registry Document Classifier
β β
Rule Runner Metadata Extractor
β β
Findings Evidence Status Engine
β β
βββββββββββββββββββ¬ββββββββββββββββββ
β
Framework Registry
β
ISO/IEC 27001 Controls
β
Control Mapping
β
Coverage Analysis
β
Gap Detection
β
Compliance Scoring
β
CAPA Generation
β
Remediation Workflow
β
AI Copilot and Dashboard
AuditPilot
β
βββ backend
β βββ app
β β βββ api
β β βββ core
β β β
β β βββ frameworks
β β β βββ models.py
β β β βββ registry.py
β β β βββ service.py
β β β βββ iso27001.py
β β β βββ mapping.py
β β β βββ mapper.py
β β β βββ coverage.py
β β β βββ coverage_service.py
β β β βββ gaps.py
β β β βββ gap_service.py
β β β βββ scoring.py
β β β βββ scoring_service.py
β β β
β β βββ remediation
β β β βββ models.py
β β β βββ service.py
β β β
β β βββ routes
β β β βββ upload.py
β β β βββ evidence.py
β β β βββ frameworks.py
β β β βββ remediation.py
β β β
β β βββ services
β β β βββ document_parser.py
β β β βββ document_classifier.py
β β β βββ metadata_extractor.py
β β β βββ evidence_models.py
β β β βββ evidence_repository.py
β β β βββ evidence_service.py
β β β βββ evidence_status_engine.py
β β β βββ evidence_summary.py
β β β
β β βββ validators
β β β βββ engine.py
β β β βββ registry.py
β β β βββ runner.py
β β β βββ severity.py
β β β βββ models.py
β β β βββ rules
β β β
β β βββ main.py
β β
β βββ tests
β βββ pyproject.toml
β βββ uv.lock
β
βββ docs
βββ examples
βββ frontend
βββ CONTRIBUTING.md
βββ SECURITY.md
βββ README.md
- Python 3.12+
uv
git clone https://github.com/anirudhnshandilya/auditpilot.git
cd auditpilot/backenduv syncuv run uvicorn app.main:app --reloadOpen the interactive Swagger documentation:
http://127.0.0.1:8000/docs
Alternative API documentation:
http://127.0.0.1:8000/redoc
| Method | Endpoint | Description |
|---|---|---|
GET |
/ |
Project health information |
GET |
/health |
Health check |
| Method | Endpoint | Description |
|---|---|---|
POST |
/upload/risk-register |
Upload and validate a CSV/XLSX risk register |
| Method | Endpoint | Description |
|---|---|---|
POST |
/evidence/upload |
Upload and process evidence |
GET |
/evidence |
List uploaded evidence |
GET |
/evidence/summary |
Return evidence-level insights |
GET |
/evidence/{document_id} |
Retrieve evidence metadata |
DELETE |
/evidence/{document_id} |
Delete evidence |
| Method | Endpoint | Description |
|---|---|---|
GET |
/frameworks/iso27001 |
List ISO/IEC 27001 controls |
GET |
/frameworks/iso27001/{control_id} |
Retrieve one control |
GET |
/frameworks/iso27001/coverage |
Calculate control coverage |
GET |
/frameworks/iso27001/gaps |
Detect compliance gaps |
GET |
/frameworks/iso27001/score |
Calculate compliance score |
| Method | Endpoint | Description |
|---|---|---|
GET |
/remediation/actions |
Generate remediation actions from current gaps |
AuditPilot currently classifies documents as:
- Policy
- Procedure
- Risk Register
- Asset Register
- Incident Register
- Audit Report
- Training Record
- Unknown
Extracted metadata includes:
- filename;
- MIME type;
- size;
- upload timestamp;
- SHA-256 checksum;
- page count;
- word count;
- character count;
- author;
- document creation date;
- document modification date.
Evidence-quality checks currently include:
- draft detection;
- approval detection;
- version detection;
- invalid-document detection;
- human-review recommendations;
- sufficient-evidence classification.
View implemented validation rules
- Duplicate Risk ID
- Empty Risk ID
- Duplicate rows
- Empty rows
- Missing required columns
- Missing owner
- Missing title
- Missing description
- Missing treatment plan
- Missing review date
- Invalid review date
- Past-due review date
- Invalid likelihood
- Invalid impact
AuditPilot is developed with automated quality gates.
β
82 automated tests passing
β
MyPy static type checking clean
β
Ruff linting clean
β
Typed domain models
β
Modular service architecture
β
Feature-branch workflow
β
Pull-request reviews
β
Conventional commit messages
Run the full test suite:
uv run pytestRun static type checking:
uv run mypy appRun linting:
uv run ruff check .Run the complete quality gate:
uv run pytest
uv run mypy app
uv run ruff check .- Python 3.12
- FastAPI
- Uvicorn
- Pandas
- OpenPyXL
- PyMuPDF
- python-docx
- Pytest
- MyPy
- Ruff
- pandas-stubs
- PostgreSQL
- SQLAlchemy
- Alembic
- Redis
- React
- TypeScript
- Docker
- GitHub Actions
- Background workers
- OpenAI-compatible LLM providers
- Local LLM support
- Vector search
- Retrieval-augmented generation
- FastAPI backend
- Health endpoints
- Swagger/OpenAPI
- Initial project structure
- Dependency management
- Automated testing foundation
- Risk Register upload
- CSV/XLSX parsing
- Validation rule interface
- Rule registry
- Rule runner
- Severity model
- Audit-readiness results
- Risk Register rule pack
- Multi-format evidence upload
- Document parsing
- Evidence repository
- UUID identifiers
- Automatic classification
- Metadata extraction
- Evidence status evaluation
- Evidence insights and summaries
- Typed control model
- ISO/IEC 27001 control library
- Framework registry
- Control retrieval API
- Evidence-to-control mapping
- Confidence scoring
- Coverage analysis
- Gap detection
- Compliance scoring
- Remediation action models
- CAPA generation from compliance gaps
- Priority assignment
- Required-evidence recommendations
- Remediation API
- Action ownership
- Due dates and SLA rules
- Action lifecycle management
- Remediation history
- Closure evidence
- Executive remediation summary
- Persistent action storage
- GitHub Issues integration
- Jira integration
- Azure DevOps integration
- ServiceNow integration
- Policy review
- Evidence analysis
- Control-mapping assistance
- Gap explanations
- CAPA recommendations
- Audit Q&A
- Executive summaries
- RAG-based evidence search
- Local and hosted LLM support
- Prompt-injection safeguards
- Human approval workflows
- React and TypeScript frontend
- Framework-readiness dashboard
- Evidence-coverage visualisation
- Findings by severity
- Risk heatmaps
- Open and overdue CAPAs
- Executive summaries
- PDF reports
- DOCX reports
- XLSX reports
- Authentication
- Role-based access control
- Multi-tenant support
- Continuous compliance monitoring
The framework registry is being designed to support:
- ISO/IEC 27001
- ISO/IEC 27002
- ISO/IEC 42001
- NIST Cybersecurity Framework
- CIS Controls
- SOC 2
- CSA CCM
- DORA
- NIS2
AuditPilot aims to become an open-source compliance operating system for:
- security compliance;
- governance, risk and compliance;
- evidence management;
- audit readiness;
- remediation tracking;
- AI governance;
- continuous compliance.
The target end-to-end workflow is:
Gap detected
β
Explain why it matters
β
Map to framework controls
β
Generate corrective action
β
Assign owner and due date
β
Create remediation ticket
β
Recommend closure evidence
β
Track until completion
β
Recalculate readiness
Most compliance tools stop after identifying a gap.
AuditPilot aims to support the entire remediation lifecycle.
| Name | Role | Focus |
|---|---|---|
| Anirudh N Shandilya | Project Co-Lead and Cybersecurity Engineer | Security, GRC, backend architecture and open-source project management |
| Suryakiran Suresh | Project Co-Lead and AI and Data Science Contributor | Machine learning, NLP, analytics and AI model development |
Contributions are welcome from:
- cybersecurity engineers;
- GRC professionals;
- auditors;
- FastAPI developers;
- React and TypeScript developers;
- AI and NLP engineers;
- DevOps engineers;
- technical writers;
- ISO/IEC 27001 and ISO/IEC 42001 specialists.
- Fork the repository.
- Create a feature branch.
git checkout -b feature/my-feature- Make and test your changes.
uv run pytest
uv run mypy app
uv run ruff check .- Commit using a conventional commit message.
git commit -m "feat: add new capability"- Push your branch.
git push origin feature/my-feature- Open a pull request.
Please review CONTRIBUTING.md before submitting changes.
You can help by:
- adding framework controls;
- improving evidence classification;
- proposing validation rules;
- improving documentation;
- writing tests;
- reviewing API design;
- creating dashboard components;
- designing integrations;
- reporting bugs;
- suggesting real-world GRC workflows.
Please report security vulnerabilities using the process described in SECURITY.md.
Do not disclose vulnerabilities through public GitHub issues.
AuditPilot is licensed under the Apache License 2.0.
AuditPilot is being built in the open.
If the project is useful or interesting to you:
- β Star the repository
- π Report bugs
- π‘ Suggest features
- π οΈ Submit pull requests
- π€ Share it with security and GRC teams
Every star, issue and contribution helps make security-compliance automation more accessible.