A compliance platform with no ceiling
Getting to SOC 2 is solved, and programs still outgrow their tools. In Calethia, the checks, the frameworks, and the connectors are code you own, so none of them forces a migration.
See Calethia in action

Review compliance status, trend, and framework coverage from one view.
Product screens shown with sample data.
The three extension points
A check is a Python function in your repository. A check can do anything Python can do.
- Python policy definitions with the @policy decorator
- Type hints and IDE autocomplete over typed resources
- Runs continuously, same as every built-in check
- Reviewed in pull requests like any other code
Policies map onto a framework-neutral common control spine. Adding a framework is mapping work rather than re-tagging every policy you own.
- Frameworks ship today, mapped to one control set
- One CCF tag carries a policy to every framework it satisfies
- See coverage against a framework before committing to the audit
- Define a framework of your own and see coverage immediately
Multiple providers ship with the platform. For everything else, a plugin interface means you write the connector yourself, so a gap in our coverage does not leave a gap in yours.
- First-party providers available today
- Unblock yourself instead of filing a feature request
- Scoped, read-only access rather than god-mode credentials
- Reach internal and homegrown systems no vendor supports
A control is a Python function
The function lives in your repository, goes through pull request review, and is versioned with every change. You do not learn a rule builder.
Tag the frameworks you care about
Name the specific controls a check satisfies
from calethia import ResourceTypes, Result, Severity, fail, pass_, policy, result
from calethia.aws import sns
from calethia.frameworks import SOC2
@policy(
id="aws.sns.topic_encryption",
name="SNS Topics Must Have Encryption Enabled",
severity=Severity.MEDIUM,
resource_types=[ResourceTypes.AWS.SNS_TOPIC],
frameworks=[SOC2("CC6.1"), SOC2("CC6.7")],
)
def check_topic_encryption() -> Result:
"""Ensure SNS topics are encrypted at rest with KMS."""
for topic in sns.list_topics():
if topic.encryption_enabled and topic.kms_master_key_id:
pass_(topic.to_resource(), "Encrypted with KMS")
else:
fail(topic.to_resource(), "No encryption enabled")
return result()Or tag the control once
One CCF tag reaches every framework that control satisfies
from calethia import ResourceTypes, Result, Severity, fail, pass_, policy, result
from calethia.ccf import CCF
from calethia.github import organization
@policy(
id="github.org.admin_mfa_required",
name="Organization Admins Have MFA Enabled",
severity=Severity.CRITICAL,
resource_types=[ResourceTypes.GitHub.ORGS_MEMBER],
frameworks=[CCF("access-mfa")],
)
def check_admin_mfa() -> Result:
"""Verify every org admin has 2FA enabled."""
for member in organization.list_members():
if not member.is_admin:
continue
if member.two_factor_enabled:
pass_(member.to_resource(), "MFA enabled")
else:
fail(member.to_resource(), "No MFA")
return result()That single CCF("access-mfa") tag carries the policy to SOC 2 CC6.1 and CC6.6, CIS AWS 1.5, 1.6 and 1.10, CIS Google 1.1 through 1.4, PCI DSS 8.3.1, 8.3.2 and 8.5.1, NIST CSF PR.AC-7, ISO 27001 A.8.5, and HIPAA 164.312(d), including frameworks you have not selected yet. Adding a framework means mapping, with no rewrite of your policy library.
Baseline features
Every platform in this category offers these features. Calethia adds the three extension points above.
Checks run on a schedule, so you know your status today instead of at the end of the audit window.
- Real-time compliance status
- Automated test execution
- Drift detection
- Scheduled compliance runs
Evidence is signed and timestamped, so an auditor can confirm an artifact is genuine without trusting the vendor that produced it.
- Cryptographic signing (RSA-SHA256)
- RFC 3161 trusted timestamps
- Tamper-evident audit trails
- Export-ready reports
The written policies a framework asks for, kept where your team already reads them. Generate a starter set, or link the documents you already maintain, and Calethia reconciles them against live control results.
- Generate SOC 2 policy documents, pre-mapped to the controls they cover
- Link the Google Docs and Confluence pages your team already keeps
- Drift flags where the document and live control results disagree
- Approval is bound to the exact content that was approved
Integrations
Multiple providers ship with the platform today, with more on the way. The connector SDK lets you write your own for anything else.
Cloud
- AWS
- AWS Organizations
- Google Cloud
- Cloudflare
- Pulumi
Identity & Access
- Okta
- Google Workspace
DevOps & Code
- GitHub
- GitLab
Data & Content
- Snowflake
- Confluence
- Bloomfire
- Google Drive
- Gmail
- Resend
How we handle access
Calethia operates with read-only credentials when possible to follow least-privilege best practices.
We'll pursue our own SOC 2 Type II when the time is right. See Security for our current status.
Read the code before you buy
A demo here is a screen share of the policy library and the SDK. Ask us to open any check and walk through what it asserts.