soc2

package
v0.90.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 29, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package soc2 is the SOC 2 (TSC 2017) framework: the control catalog, the automated policy library expressed in the pass_when: DSL, and the manual-evidence policies. Every shipped policy is pass_when: or manual — Rules() returns nil (no rule: escape hatch is used today; the infrastructure remains available for a future check the DSL cannot express).

Policies are authored as Go values via the compact builders in this file. Most automated checks reduce to "every / no / some record in a slot satisfies a field condition" — exactly what the pass_when DSL expresses without a line of Go.

Every evidence type a shipped policy accepts has a registered emitter (enforced at build time by internal/sources/builtin/coverage_test.go), so there are no inert "deferred-source" policies in-tree. A new evidence type added ahead of its source must ship a source in the same change or the coverage test fails.

Index

Constants

View Source
const FrameworkID = "soc2"

FrameworkID is the registered identifier.

View Source
const FrameworkVersion = "soc2-2017@1.0.0"

FrameworkVersion stamps every PolicyRef returned by this framework.

Variables

This section is empty.

Functions

func Controls

func Controls() []core.Control

Controls returns the SOC 2 control catalog: the 2017 Trust Services Criteria (revised points of focus, 2022) that the policy library maps to. That is all 33 common criteria, the three Availability and two Confidentiality criteria, and only PI1.1 of Processing Integrity and P1.1, P3.1, P4.2 and P4.3 of Privacy. The other 4 PI and 14 P criteria are not modeled; docs/reference/frameworks.md says so.

func ManualCatalog

func ManualCatalog() map[string]manual.CatalogEntry

ManualCatalog returns one catalog entry per manual policy. The catalog ID equals each manual policy's CatalogEntry; cadence and grace period follow the policy's declared cadence.

func ManualCatalogExport added in v0.29.0

func ManualCatalogExport() manualcatalog.Catalog

ManualCatalogExport returns the descriptive, presentation-facing catalog for `sigcomply evidence catalog` (consumed by the Evidence SPA). Derived from the same manualSpecs() as the policy library, so the two cannot drift.

func Policies

func Policies() []core.Policy

Policies returns the full SOC 2 policy library: automated checks (all pass_when: — no shipped policy uses the rule: escape hatch) and manual-evidence policies.

func Register

func Register(set *registry.Set) error

Register populates the framework, rule, and policy registries. Errors surface as exit-3 configuration errors at startup.

func Rules

func Rules() []core.Rule

Rules returns the Go rule implementations referenced by RuleRef policies. Empty today — soc2 authors every policy with the pass_when DSL (see rules.go).

Types

type Framework

type Framework struct{}

Framework is the in-process SOC 2 framework.

func New

func New() *Framework

New returns a fresh Framework value.

func (*Framework) Controls

func (*Framework) Controls() []core.Control

Controls implements core.Framework.

func (*Framework) ID

func (*Framework) ID() string

ID implements core.Framework.

func (*Framework) Policies

func (*Framework) Policies() []core.PolicyRef

Policies implements core.Framework: the policy-ID references the planner walks.

func (*Framework) Version

func (*Framework) Version() string

Version implements core.Framework.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL