Open, self-hosted GRC for cloud and AI.
Quick start · How it works · Frameworks & CCF · Explore · Develop & verify
TrustOps collects security evidence, evaluates controls, tracks follow-up work, and exports assessments for review.
- Customer-owned evidence lake. Evidence stays in storage you run; deploy TrustOps in your environment. Data access and egress depend on the connectors, sinks, and model integrations you configure.
- Deterministic rules decide pass or fail. Every result traces to evidence and the evaluated catalog; models may summarize or propose, never decide.
- Headless by design. Use the console for investigation and review, or the API, CLI, MCP server, and CI gates for automation.
Quick start
Try the console with fixture data. Use Python 3.11+, uv, and Node 22+:
git clone https://github.com/msaad00/trustops-security-data-lake.git
cd trustops-security-data-lake
uv sync --frozen --extra dev --extra server
make demo-local
Open localhost:8787/console/dashboard/. The command builds the console, loads the golden fixture, migrates the local database, and starts the server. This local demo disables authentication; use authenticated deployment for a shared environment.
Other setup paths — pip, CLI-only, and deployment
For a source install without uv:
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,server]"
make web-install web-build
security-lakehouse fixtures load --company golden --out build/lakehouse --rebase-times
security-lakehouse db upgrade --lake build/lakehouse
security-lakehouse serve --lake build/lakehouse --server --allow-insecure-no-auth --port 8787
For the CLI and local lake only:
pip install trustops-security-data-lake
security-lakehouse fixtures load --company golden --out ./lake --rebase-times
security-lakehouse assessment status --lake ./lake
To give an agent the same lake over MCP (stdio):
pip install 'trustops-security-data-lake[mcp]'
TRUSTOPS_LAKE=./lake trustops-mcp
See headless GRC for remote-server mode and the MCP trust boundary.
Docker, Helm, and production configuration · Server authentication
How it works
| Step | What you do | What you get |
|---|---|---|
| Collect | Connect a source with read-only access. | Evidence with source, freshness, and provenance. |
| Evaluate | Apply deterministic control rules. | Results tied to evidence and the evaluated catalog. |
| Resolve | Assign findings, track fixes, and review exceptions. | Ownership and a record of follow-up decisions. |
| Export | Freeze an assessment and share reports. | Evidence and assessment history for reviewers. |
The Common Control Framework reuses safeguards across framework mappings. A mapping does not itself establish compliance. Models may summarize or propose actions; deterministic rules decide control results.
Frameworks and common controls
16 framework packs · 44 reusable safeguards · 21 control families · 2,021 catalogued requirements.
813 requirements have safeguard mappings; 350 have reviewed mappings. Catalog coverage and evaluated customer posture are separate measures.
Control families: Identity and access · Data protection · Detection · Audit logging · Change management · Configuration management · Secure development · Secure architecture · Vulnerability management · Third-party risk · Risk management · Availability and recovery · Incident response · Governance · People security · Physical security · Network security · System maintenance · Processing integrity · Privacy · AI governance.
SOC 2 |
ISO 27001 · 27017 · 42001 |
NIST CSF 2.0 |
NIST AI RMF |
CIS Controls · CIS AWS |
CMMC 2.0 |
EU AI Act · GDPR |
NIST 800-53 · NIST RMF FedRAMP · HIPAA · PCI DSS |
Framework identities show catalog scope. A pack may be a limited mapping; see the coverage matrix for the exact boundary. NIST RMF (SP 800-37 Rev. 2) is catalogued but not yet mapped to safeguards, and the PCI DSS v4.0.1 pack covers its 12 principal requirements, not every sub-requirement. SOC 1 and ISO 27701 are planned, with no catalogued controls yet.
| CCF layer | What it represents |
|---|---|
| Control families | Risk domains that organize reusable safeguards. |
| Safeguards | Evidence requirements, ownership, review frequency, and executable evaluation rules. |
| Framework mappings | Links from safeguards to individual framework requirements, with proposed and reviewed status kept separate. |
| Assessment results | Pass, fail, stale, or not-evaluated outcomes from the collected evidence. |
Evaluation details and further reading
One safeguard can serve several frameworks. Every required mapped safeguard must pass for a requirement to pass; an unmapped requirement remains unmapped. A reviewed mapping is not certification or proof that a customer's controls pass.
| Area | Read more |
|---|---|
| Safeguards and executable rules | Common Control Framework · Executable catalog |
| Framework mappings and coverage | Framework coverage |
| Findings, reviews, exceptions, and audit preparation | Product walkthrough · Audit readiness |
| Implemented, partial, and planned capabilities | Product status · Roadmap |
Inspect the current safeguard catalog from the CLI:
security-lakehouse frameworks safeguards --format table
Explore
01 · Product tour — posture, evidence, frameworks, and triage
The images show the bundled demo fixture, not live customer evidence. The inline images follow your GitHub theme.
Overview — assessment score, control pass rate, open findings, and evidence to refresh, with framework posture and the highest-risk findings below.
Frameworks — catalogued, mapped, and reviewed requirements are counted separately, then broken down per framework.
Evidence — each normalized record shows its source, mapped control, freshness against the source's SLA, and where the original lives.
Graph — focus one evidence type and see the controls it proves and the assets it came from.
Triage — a finding with its asset and owner, suggested remediation steps, and state, assignee, and due date recorded in triage history.
Full walkthrough · Connections · Findings · Remediation · Audit room · Workflows · Trust center
02 · Connect sources — cloud, identity, code, and existing lakes
In the console, open Connectors → choose a source → Discover → Test → Enable → Sync. No pre-existing data lake is required. For automation, use the headless setup playbook.
Sources include AWS, Azure, GCP, GitHub, GitLab, Okta, Microsoft Intune, BambooHR, Rippling, Workday, Snowflake, Databricks (preview), and ClickHouse. Check the connector catalog for each integration's scope and status. A connector can also ship as a separately installed Python package that registers its sync builder and catalog row through entry points; see Shipping a connector as a package.
Cloud connectors use short-lived or workload identity credentials: AWS STS sessions, Azure managed or federated identity, and GCP Application Default Credentials (workload identity or the metadata server; a service-account key file also works). GitHub reads a GitHub App installation token, which expires within an hour; you mint and rotate it. Other SaaS connectors (Okta, GitLab, Jira, BambooHR, Rippling, Workday) use scoped API tokens or an integration-user login. Connector settings keep a credential reference (an environment variable name or mounted secret file), not the secret itself.
- 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 planned. See the cloud setup guide.
- Azure supports a customer-owned Entra application, managed identity, or federated workload identity with Reader scope.
- Snowflake uses a read-only service identity with a key-pair or OAuth token reference. TrustOps stores identifiers, not passwords or private-key contents. Snowflake is the existing security-data-lake path.
03 · Deployment and interoperability — local, cloud, and evidence storage
Source → Raw evidence → Normalized facts → Control evaluation → Assessment
↓ ↓
Owned findings Review / export
| Layer | Current boundary |
|---|---|
| Evidence and evaluation | Local JSONL, deterministic rules, and verified assessment generations. |
| Local analytics | SQLite mart; DuckDB is optional. |
| Operational state | Application database and local state for jobs, assignments, and reviews. |
| External storage | Snowflake, ClickHouse, and Databricks (preview) integrations; verify the configured deployment. |
| Portable evidence | Optional Parquet export of one verified generation; independently tested with DuckDB. |
| Open table catalogs | Optional Iceberg REST publication; local Polaris and DuckDB snapshot reads tested. |
Run locally with Python or Docker, or deploy the Helm chart in your own cloud. The current assessment writer needs durable local POSIX storage and one writer per lake. Snowflake, ClickHouse, and Databricks integrations are evidence backends; they do not host the TrustOps application. Snowflake Native App packaging is planned; the Databricks evidence reader is in preview (live-workspace verification pending). See the deployment guide.
Architecture guide · Architecture diagram · Assessment publication and failure contracts
04 · API, agents, and CI — use the same assessment engine headlessly
| Surface | Purpose |
|---|---|
| Console | Browse posture, evidence, findings, and reviews. |
| API | Versioned /api/v1 access for integrations. |
| CLI | Collect, evaluate, verify, export, and run the local server. |
| MCP | Read assessments and propose actions through governed tools. |
| CI | Apply posture and control-test thresholds to delivery workflows. |
| OSCAL export | NIST OSCAL component-definition and assessment-results JSON. |
TrustOps operator skill · Specialist skills · Agent workflow catalog · Webhooks · AI bill of materials
Develop and verify
Checks, repository layout, and documentation
make smoke # backend, contracts, docs, brand, pipeline, API
make web-ci # install, typecheck, production build
make security # dependency audits and pre-commit checks
Regenerate fixture screenshots with make demo-screenshots-full.
| Directory | Contents |
|---|---|
src/security_lakehouse/ |
Assessment engine, API, auth, connectors, and MCP. |
app/web/ |
Next.js console. |
controls/, frameworks/, mappings/ |
Rules, framework catalogs, and mappings. |
deploy/ |
Deployment and infrastructure examples. |
docs/ |
Product, architecture, operations, and API guides. |
Validation and benchmark plan · Deployment · Roadmap · Third-party assets
Metadata
Release files for trustops-security-data-lake 0.2.17
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.17.tar.gz | 2.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| trustops_security_data_lake-0.2.17-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 5.5 MB
Release files / trustops_security_data_lake-0.2.17.tar.gz
| Download URL | trustops_security_data_lake-0.2.17.tar.gz |
|---|---|
| Size | 2.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4b84e145170831d3ab7ee476f3d4a83f9007be9d329093d0709151ebe826168a
|
|
BLAKE2b-256 checksum How to use checksums |
2a8e3be1e470e9c3a46f4e9c0f38c69b9e9f7d50bb243620dd4d176a7ce4f870
|
| 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 27, 2026.
Transparency logRelease files / trustops_security_data_lake-0.2.17-py3-none-any.whl
| Download URL | trustops_security_data_lake-0.2.17-py3-none-any.whl |
|---|---|
| Size | 2.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c6f3f65d210b7d9fe1fc287705ffe8834479673b0358b70bdac795fc3f697322
|
|
BLAKE2b-256 checksum How to use checksums |
8a2d291029543b191dcc11f6623f9f29a2ac7cbb9408f40a2e8d6cb775b1f57c
|
| 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 27, 2026.
Transparency log