FastAPI REST server + bundled React web UI for Evidentia
Project description
evidentia-api
FastAPI REST server and bundled React web UI for Evidentia, the open-source GRC tool.
This package is not typically installed directly. The preferred way is via the [gui] extra on the meta-package:
uv tool install "evidentia[gui]"
# or
pip install "evidentia[gui]"
Then run:
evidentia serve
# -> FastAPI + React UI at http://127.0.0.1:8000
What's inside
- FastAPI app (
evidentia_api.app:app) — REST endpoints mirroring every CLI capability. - SPA — React/Vite/shadcn/ui frontend, bundled as static assets inside the wheel under
evidentia_api/static/. - SSE streaming — long-running LLM calls (
risk generate,explain) stream progress to the browser without blocking.
REST surface
Every endpoint is typed with Pydantic models reused from evidentia-core. All endpoints bind to 127.0.0.1 by default; --host 0.0.0.0 emits a security warning.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/health |
Health probe |
| GET | /api/version |
Evidentia version info |
| GET | /api/doctor |
Diagnostic summary |
| POST | /api/doctor/check-air-gap |
Air-gap validator |
| GET | /api/config |
Read evidentia.yaml |
| PUT | /api/config |
Write evidentia.yaml |
| GET | /api/frameworks |
List all 82 bundled catalogs |
| GET | /api/frameworks/{id} |
Framework detail |
| GET | /api/frameworks/{id}/controls/{control_id} |
Single control |
| POST | /api/gap/analyze |
Run GapAnalyzer, save to gap store |
| GET | /api/gap/reports |
List saved reports |
| GET | /api/gap/reports/{key} |
Load a saved report |
| POST | /api/gap/diff |
Compute diff between two reports |
| POST | /api/risk/generate |
SSE: per-gap risk statement generation |
| POST | /api/explain/{framework}/{control_id} |
Plain-English control explanation |
| POST | /api/init/wizard |
Generate starter YAML files |
| GET | /api/llm-status |
LLM provider configuration state |
Air-gapped mode
Running evidentia serve --offline wires the air-gap guard into every /api/* call. LLM features gracefully degrade with a pointer to Ollama. See docs/air-gapped.md.
Development
# From the repo root:
uv sync --all-packages
cd packages/evidentia-ui && npm install && npm run dev # Vite dev server at :5173
# In another terminal:
evidentia serve --dev # FastAPI at :8000 proxies /api/* to itself, / to Vite :5173
License
Apache-2.0 — see LICENSE.
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 evidentia_api-0.7.7.tar.gz.
File metadata
- Download URL: evidentia_api-0.7.7.tar.gz
- Upload date:
- Size: 454.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ba0644d012a52ed2e4efe7e54a1f2889ea1bff766c3bdf3cc3dedd36b5d58ef
|
|
| MD5 |
8249f8f1a2491fda1aa47a15795b3b97
|
|
| BLAKE2b-256 |
6ec70811e5e0e425f754af70460062b3678cd56b0c41c05f30a60658a4f9f551
|
Provenance
The following attestation bundles were made for evidentia_api-0.7.7.tar.gz:
Publisher:
release.yml on allenfbyrd/evidentia
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
evidentia_api-0.7.7.tar.gz -
Subject digest:
6ba0644d012a52ed2e4efe7e54a1f2889ea1bff766c3bdf3cc3dedd36b5d58ef - Sigstore transparency entry: 1426718422
- Sigstore integration time:
-
Permalink:
allenfbyrd/evidentia@4c017098130e293e46bcafcc54e07cac941bf857 -
Branch / Tag:
refs/tags/v0.7.7 - Owner: https://github.com/allenfbyrd
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4c017098130e293e46bcafcc54e07cac941bf857 -
Trigger Event:
push
-
Statement type:
File details
Details for the file evidentia_api-0.7.7-py3-none-any.whl.
File metadata
- Download URL: evidentia_api-0.7.7-py3-none-any.whl
- Upload date:
- Size: 465.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
351a944f13fa888d29393a7770fb86f40c2290e2b5ed6d8917b5a51deffddcdb
|
|
| MD5 |
2b2dd57847ff86c7e95661dcf0604228
|
|
| BLAKE2b-256 |
2e5e6bb63d070a4c913dcaa1c949214413e4eb10601033b1c07cd5e63663348e
|
Provenance
The following attestation bundles were made for evidentia_api-0.7.7-py3-none-any.whl:
Publisher:
release.yml on allenfbyrd/evidentia
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
evidentia_api-0.7.7-py3-none-any.whl -
Subject digest:
351a944f13fa888d29393a7770fb86f40c2290e2b5ed6d8917b5a51deffddcdb - Sigstore transparency entry: 1426718962
- Sigstore integration time:
-
Permalink:
allenfbyrd/evidentia@4c017098130e293e46bcafcc54e07cac941bf857 -
Branch / Tag:
refs/tags/v0.7.7 - Owner: https://github.com/allenfbyrd
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4c017098130e293e46bcafcc54e07cac941bf857 -
Trigger Event:
push
-
Statement type: