Generic compliance audit framework with plugin architecture
Project description
darnit
Generic compliance audit framework with plugin architecture.
Overview
darnit is the core framework that provides:
- Plugin System: Discover and load compliance implementations via Python entry points
- Configuration Management:
.project.yamlfor project metadata and file locations - Progressive Verification: "Sieve" model for efficient compliance checking
- Remediation Framework: Auto-fix infrastructure for compliance gaps
- MCP Server Tools: Ready-to-use tools for AI assistant integration
Installation
pip install darnit
Usage
Discover Implementations
from darnit.core.discovery import get_implementation
# Get a compliance implementation by name
impl = get_implementation("openssf-baseline")
if impl:
controls = impl.get_all_controls()
Configuration Management
from darnit.config.loader import load_project_config, save_project_config
from darnit.config.discovery import discover_files
# Discover existing documentation files
discovered = discover_files("/path/to/repo")
# Load project configuration
config = load_project_config("/path/to/repo")
Creating Implementations
To create a new compliance implementation:
- Create a package with entry point
darnit.implementations - Implement the
ComplianceImplementationprotocol - Register controls and checks
# pyproject.toml
[project.entry-points."darnit.implementations"]
my-standard = "my_package:register"
# my_package/__init__.py
def register():
from .implementation import MyImplementation
return MyImplementation()
See darnit-baseline for a complete example.
Package Structure
darnit/
├── core/ # Plugin system, models, discovery
├── config/ # Project configuration (.project.yaml)
├── sieve/ # Progressive verification pipeline
├── remediation/ # Auto-fix framework
├── server/ # MCP server tool implementations
└── tools/ # MCP tool helpers and utilities
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
darnit_core-0.1.0.tar.gz
(217.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
darnit_core-0.1.0-py3-none-any.whl
(260.0 kB
view details)
File details
Details for the file darnit_core-0.1.0.tar.gz.
File metadata
- Download URL: darnit_core-0.1.0.tar.gz
- Upload date:
- Size: 217.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d790e34ed422e7305717f15ded78ad93148fa265718c1d29438d01d36145106
|
|
| MD5 |
8b4dee33e8a249d7e1a0bd0301c51f6d
|
|
| BLAKE2b-256 |
63e1ed1973aea66197e1ad0e0b7e7b4852ee6353f313fc51d242421f4f456870
|
File details
Details for the file darnit_core-0.1.0-py3-none-any.whl.
File metadata
- Download URL: darnit_core-0.1.0-py3-none-any.whl
- Upload date:
- Size: 260.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
925594fb0d197004993a955a28d4fd4af3f988d3f8e3b78431fda75f27ace3a2
|
|
| MD5 |
1eafb53e47a119516625b40207c81d8b
|
|
| BLAKE2b-256 |
dfd39bcfa3f06a8f8748c531cba543f404b87c11c6624a189591ef34cb6aa979
|