Open source · self-hosted · customer-owned evidence
TrustOps
Read-only evidence. Deterministic controls. Audit-ready proof.
One self-hosted platform for operators, agents, and auditors — backed by the same verifiable JSON.
Quick start · Product tour · Connectors · Architecture · API & MCP · Deploy
One operating loop
Collect evidence read-only, evaluate controls with deterministic rules, operate the findings, and prove posture with immutable snapshots.
Regulatory requirements are consolidated into a
Common Control Framework: you operate one
safeguard, and it satisfies every requirement mapped to it across frameworks.
The catalog holds 942 requirements across 13 frameworks; run
security-lakehouse frameworks safeguards for current coverage.
Evidence stays in your environment. Models may summarize and prioritize; they do not silently change evidence or decide pass/fail.
The open-source, self-hosted alternative to managed GRC SaaS — interoperable, secure, and built to scale in your environment.
| TrustOps | Managed GRC SaaS | |
|---|---|---|
| Evidence location | Your VPC or laptop — data never leaves | Vendor servers |
| Control evaluation | Deterministic rules, no model drift | Varies by vendor |
| API surface | Native /api/v1 + MCP stdio for agents |
Web-first, limited API |
| Interoperability | CCF maps one safeguard to 13 frameworks | Proprietary control sets |
| Cost model | Open source (Apache 2.0) | Per-seat subscription |
| Self-hosted | Full stack on your infra or CI | Cloud-only options |
Where to start
| I am… | Start here |
|---|---|
| DevSecOps / security engineer | Quick start → Connectors → CI gate |
| Compliance / GRC lead | Product tour → Framework coverage |
| AI / agent builder | Agent API → MCP server → AIBOM |
| Auditor / assessor | Audit room → Snapshot integrity |
| Operator deploying | deploy/README.md → Server auth |
Quick start
Requires Python 3.11+ and Node 22+ (the console is built from source; it is not
committed to the repository). For the fastest path, use make demo-local which
runs the whole sequence in one step.
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,server]"
make web-install web-build # builds the console into src/security_lakehouse/web/dist
security-lakehouse fixtures load --company golden --out build/lakehouse
security-lakehouse db upgrade --lake build/lakehouse
security-lakehouse serve \
--lake build/lakehouse \
--server \
--allow-insecure-no-auth \
--port 8787
Open http://127.0.0.1:8787/console/dashboard/.
Note: Skipping
make web-install web-buildleaves/console/as a 404. The server mounts the console only when a built dist is present.--allow-insecure-no-authis for local development only.
Other install paths:
# Evaluator: container (no build required)
docker run -p 8787:8787 ghcr.io/msaad00/trustops:latest
# Kubernetes
helm install trustops deploy/helm/trustops
# CLI / local lake only (zero dependencies)
pip install trustops-security-data-lake
security-lakehouse fixtures load --company golden --out ./lake
See deploy/README.md for production configuration and authentication setup.
Surfaces — console, API, CLI, MCP, CI
| Surface | Purpose |
|---|---|
| Console | Posture, controls, evidence, findings, workflows, and audit room |
| API | Versioned /api/v1 contract |
| CLI | Local pipelines, validation, snapshots, and server operations |
| MCP & agents | Read posture and propose governed actions with approval boundaries |
| CI | Block releases when posture or control-test thresholds regress |
Connectors — least-privilege, read-only
AWS · Azure · GCP · GitHub · GitLab · Okta · Snowflake · ClickHouse, plus the
scanner, ticketing, and AI-platform entries in
connectors/catalog.json.
Product preview
| Trust Home | Audit room |
|---|---|
| Evidence | Connectors |
|---|---|
More views: frameworks · insights · workflows · trust center
Connect a live source
The default path is agentless and read-only; no pre-existing data lake is required.
- Console: open Connectors, choose a source, then run Discover → Test → Enable → Sync.
- Headless: follow the connector setup playbook for API, CLI, and MCP flows.
- Existing lake: connect Snowflake or ClickHouse when evidence already lives there.
Cloud connectors use short-lived provider credentials or workload identity. No connector requires pasted long-lived cloud keys. TrustOps stores non-secret identifiers, redacted fingerprints, sync history, and evidence hashes.
Connector security contracts:
- AWS uses STS AssumeRole, one External ID per deployed role, short-lived session credentials, and read-only IAM posture APIs. Temporary credentials expire after each session; TrustOps stores no long-lived access keys. Scale rollout with CloudFormation StackSets or Terraform workspaces; Bulk account import is the next operator surface.
- Azure uses a customer-owned Entra application, managed identity, or federated workload identity with Reader scope. Tokens are short-lived, and no Azure password or raw client secret is stored.
- Snowflake supports browser SSO for human proof or a read-only service identity with a key-pair or OAuth token reference held by the runtime secret manager. TrustOps stores account, role, and view identifiers — not passwords or private-key contents. Snowflake is the existing security-data-lake path.
Architecture
read-only source → raw observation → normalized fact → deterministic evaluation
→ finding/current posture → immutable snapshot → governed action
The console, CLI, MCP server, agents, and CI gate share the same API and assessment engine. This keeps browser output and headless automation consistent.
What ships
| Area | Included |
|---|---|
| Compliance | SOC 2, NIST AI RMF, FedRAMP, ISO, CIS AWS, HIPAA, PCI DSS, GDPR, and EU AI Act packs |
| Evidence | Freshness SLAs, provenance, SHA-256 verification, tags, and saved views |
| GRC workflows | Remediation, policies, attestations, vendor risk, access reviews, and approvals |
| Identity | OIDC, SAML, API keys, RBAC, tenant boundaries, and SCIM scaffolding |
| Deployment | Local, Docker, Helm, EKS reference IaC, Snowflake, and ClickHouse |
| Exports | Snapshots, executive PDF, trust shares, OpenAPI, MCP, and GitHub posture gate |
See the product shape for shipped, partial, and planned capability status.
Verify
make smoke # backend, contracts, docs, brand, pipeline, API
make web-ci # install, typecheck, production build
make security # dependency audits and pre-commit checks
Regenerate documentation screenshots with make demo-screenshots-full.
Repository map
src/security_lakehouse/ assessment engine, API, auth, connectors, MCP
app/web/ Next.js console
controls/ frameworks/ control catalogs, packs, and mappings
deploy/ Docker, Helm, cloud, warehouse, and IaC examples
docs/ product, architecture, operations, and API guides
Documentation
- Product walkthrough
- Architecture
- Connector catalog
- Continuous ingestion
- Audit readiness
- Agent API
- Deployment
- Roadmap
Apache-2.0 licensed. Third-party visual assets and usage terms are documented in THIRD_PARTY_ASSETS.md.
Release files for trustops-security-data-lake 0.2.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| trustops_security_data_lake-0.2.7.tar.gz | 2.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| trustops_security_data_lake-0.2.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.7 MB
Release files / trustops_security_data_lake-0.2.7.tar.gz
| Download URL | trustops_security_data_lake-0.2.7.tar.gz |
|---|---|
| Size | 2.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ac67929681467a1fc7447330f5b37998e0ad155ea062b05ccd3a75cc2f99850
|
|
BLAKE2b-256 checksum How to use checksums |
3342fe7d3490bea2b62510465df05aee456d61467e43e1b67113332a307a871a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.
Transparency logRelease files / trustops_security_data_lake-0.2.7-py3-none-any.whl
| Download URL | trustops_security_data_lake-0.2.7-py3-none-any.whl |
|---|---|
| Size | 2.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c61e843451352822c7d53f230d38cde8482338e731c6a1759d7b55615f69de8f
|
|
BLAKE2b-256 checksum How to use checksums |
7ef5b28a740fa9b7f5d37055237c15d43fd17dddb1830b4c9f2e2e4022010857
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.
Transparency log