DORA Compliance Auditor for OpenAPI Specs
Project description
PanDoraSpec - DORA Compliance Audit Tool
The PanDoraSpec Tool is an automated audit system designed to verify compliance with DORA (Digital Operational Resilience Act) requirements for third-party ICT providers. It performs deep technical analysis of APIs to detect schema drift, resilience issues, and security vulnerabilities.
Project Structure
This is a monorepo containing both the backend and frontend components:
- backend/: Python/FastAPI/Celery application that runs the audit engine using Schemathesis.
- frontend/: Next.js application providing the user interface for submitting audits and viewing reports.
Getting Started
Prerequisites
- Docker Desktop installed and running.
Application Setup
The entire stack is containerized using Docker Compose.
-
Start the application:
docker-compose up --build
This will start the following services:
frontend: Available at http://localhost:3000api: Backend API at http://localhost:8000worker: Celery worker for processing audit tasksredis: Message broker and result backend
-
Access the Dashboard:
Open your browser to http://localhost:3000.
-
Run an Audit:
- Enter a Vendor Name.
- Provide the OpenAPI Schema URL OR Upload a local Schema File (JSON/YAML).
- (Optional) detailed API Key.
- Click "Run DORA Audit".
Audit Modules
Module A: The "Docs vs. Code" Drift Check (The Integrity Test)
Why: DORA requires you to monitor if the service effectively supports your critical functions. If the API behaves differently than documented, it's a risk.
Module B: The "Resilience" Stress Test (Art. 24 & 25)
Why: DORA Article 25 explicitly calls for "Digital operational resilience testing".
Module C: The Security Hygiene Check
Why: Basic ICT security requirements.
Module D: The Compliance Report (The Deliverable)
Output: A branded PDF titled "DORA ICT Third-Party Technical Risk Assessment".
CLI Usage (Open Core)
You can run the audit engine directly from the command line using the pandoraspec command.
# Run against a URL using Docker
docker exec -it checker-api-1 pandoraspec https://petstore.swagger.io/v2/swagger.json --vendor "PetStore"
# Run locally (if installed via pip install .)
pandoraspec https://petstore.swagger.io/v2/swagger.json
# Run against a local file
pandoraspec ./openapi.json
(Note: The CLI provides beautiful terminal output powered by Rich)
Deployment
This project is configured for Railway deployment out-of-the-box.
Production Notes
- Frontend: The
frontend/Dockerfileuses a multi-stage build (standaloneoutput) for optimized production performance. - Backend API: Runs via Uvicorn.
- Worker: Runs via Celery with Redis as the broker.
Documentation
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
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
File details
Details for the file pandoraspec-0.1.0.tar.gz.
File metadata
- Download URL: pandoraspec-0.1.0.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c15c4047e86cf1fcc44806d7c0a74a1c62f96531f010e0fa159f9c8eb5f5413d
|
|
| MD5 |
cfa17a4e75950c4f4ed795d81830acd6
|
|
| BLAKE2b-256 |
52f0ab2e8659c71aa3ac0bd6738b3771235c552d030ff4b6b4bc38aef879f8fc
|
File details
Details for the file pandoraspec-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pandoraspec-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34b19c9e8e3478b7d75be8f70857024b316a9f2e3338c5cc00370179e72461ba
|
|
| MD5 |
5bfa191e6c4f45b1d0faeccc67e94a4b
|
|
| BLAKE2b-256 |
0f24edce72bd4159a3d675ad1555a288b18e10139f2f8c97b11370be8876db3f
|