Skip to main content

cellos_core/
lib.rs

1//! CellOS core: execution cell model and **ports** (traits). No network, filesystem, or host syscalls here.
2//!
3//! **cellos-lite:** keep this crate free of local LLM / on-device inference dependencies; see `deny.toml` and [CONTRIBUTING.md](../../../CONTRIBUTING.md).
4//!
5//! See [EXTENSIBILITY.md](../../../EXTENSIBILITY.md) in the repo root.
6
7pub mod authority;
8pub mod canonical;
9pub mod cgroup_id;
10pub mod cross_host_chain;
11pub mod crypto;
12pub mod error;
13pub mod events;
14pub mod host_baseline;
15pub mod hostname_allowlist;
16pub mod noop_broker;
17pub mod observability;
18pub mod policy;
19pub mod ports;
20pub mod principal;
21pub mod redaction;
22/// S34/C13: PKCS#11 hardware-signer custody — only compiled under `--features pkcs11`.
23#[cfg(feature = "pkcs11")]
24pub mod signer_pkcs11;
25pub mod spec_validation;
26pub mod state_projection;
27pub mod trust_keys;
28pub mod types;
29
30pub use canonical::{canonical_json_bytes, canonical_payload, CANONICAL_PAYLOAD_VERSION};
31pub use cgroup_id::sanitize_cgroup_leaf_segment;
32pub use cross_host_chain::{
33    build_chain_entry, entry_digest, verify_cross_host_chains, VerifiedCrossHostChains,
34    CROSS_HOST_ENTRY_TYPE, GENESIS_PREV_DIGEST,
35};
36pub use crypto::{
37    provider, provider_identity, CryptoError, CryptoProvider, ProviderIdentity,
38    TrustAnchorPublicKey,
39};
40pub use error::CellosError;
41pub use events::{
42    admission_decision_data_v1, audit_reconciled_data_v1, authz_rejected_data_v1, cell_subject_urn,
43    cloud_event_v1_cortex_dispatched, cloud_event_v1_dns_authority_dnssec_failed,
44    cloud_event_v1_dns_authority_drift, cloud_event_v1_dns_authority_rebind_rejected,
45    cloud_event_v1_dns_authority_rebind_threshold, cloud_event_v1_dns_query,
46    cloud_event_v1_dns_query_permitted, cloud_event_v1_dns_query_refused,
47    cloud_event_v1_firecracker_pool_checkout, cloud_event_v1_keyset_verification_failed,
48    cloud_event_v1_keyset_verified, cloud_event_v1_network_flow_decision,
49    command_completed_data_v1, compliance_summary_data_v1, cortex_dispatched_data_v1,
50    dns_authority_dnssec_failed_data_v1, dns_authority_drift_data_v1,
51    dns_authority_rebind_rejected_data_v1, dns_authority_rebind_threshold_data_v1,
52    dns_query_data_v1, dns_query_permitted_data_v1, dns_query_refused_data_v1,
53    evidence_bundle_emitted_data_v1, export_completed_data_v1, export_completed_data_v2,
54    export_failed_data_v2, firecracker_pool_event_data_v1, homeostasis_signal_data_v1,
55    homeostasis_violation_data_v1, identity_failed_data_v1, identity_materialized_data_v1,
56    identity_materialized_data_v1_provisioned, identity_revoked_data_v1,
57    keyset_verification_failed_data_v1, keyset_verified_data_v1, lifecycle_destroyed_data_v1,
58    lifecycle_destroyed_data_v1_typed, lifecycle_started_data_v1, manifest_failed_data_v1,
59    network_flow_decision_data_v1, observability_container_security_data_v1,
60    observability_dns_resolution_data_v1, observability_dns_target_set_data_v1,
61    observability_fs_touch_export_data_v1, observability_l7_egress_decision_data_v1,
62    observability_network_enforcement_data_v1, observability_network_policy_data_v1,
63    observability_network_scope_data_v1, observability_process_spawned_data_v1,
64    policy_rejected_data_v1, AdmissionDecisionReason, EnforcementBinding, EvidenceBundleRefs,
65    IdentityFailureOperation, LifecycleDestroyOutcome, LifecycleReason, LifecycleResidueClass,
66    LifecycleTerminalState, Provenance, ProvisioningWitness, ResidueClass, SubjectUrn,
67    SubjectUrnError, ADMISSION_ALLOWED_TYPE, ADMISSION_REJECTED_TYPE, AUDIT_RECONCILED_TYPE,
68    LIFECYCLE_MANIFEST_FAILED_TYPE, TRUST_PLANE_AGGREGATE_EGRESS_FQDN,
69    TRUST_PLANE_BUILTIN_KEYSET_ID, TRUST_PLANE_BUILTIN_L7_KID, TRUST_PLANE_BUILTIN_RESOLVER_KID,
70};
71pub use host_baseline::{
72    host_baseline_event, probe_host_baseline, probe_host_baseline_with_forced,
73    sign_host_baseline_attestation, verify_host_baseline_attestation, BaselineControl,
74    HostBaselineAttestationV1, HOST_BASELINE_ATTESTATION_TYPE,
75};
76pub use noop_broker::NoopSecretBroker;
77pub use policy::{
78    check_policy_pack_version_compatibility, spec_matches_placement_scope,
79    validate_authorization_policy, validate_policy_pack_document, validate_spec_against_policy,
80    AuthorizationPolicy, AuthorizationPolicyDocument, PolicyPackDocument, PolicyPackSpec,
81    PolicyRules, PolicyViolation, MIN_SUPPORTED_POLICY_PACK_VERSION, POLICY_ALLOW_DOWNGRADE_ENV,
82};
83pub use ports::{NoopExportSink, NoopInferenceBroker, RuntimeSecretLeaseRequest};
84pub use principal::{
85    AuthorityScope, AuthorityScopeViolation, Capability, DelegateId, ExternalId, OperatorId,
86    PlatformId, Principal, PrincipalParseError, TrustRoot,
87};
88pub use redaction::{redact_url_credentials_for_logs, redact_url_if_echoed_in_text};
89#[cfg(feature = "pkcs11")]
90pub use signer_pkcs11::Pkcs11Signer;
91pub use spec_validation::{
92    enforce_derivation_scope_policy, validate_execution_cell_document,
93    validate_tenant_id_for_subject_token, verify_authority_derivation,
94    verify_signed_trust_keyset_chain, verify_signed_trust_keyset_envelope,
95};
96pub use state_projection::{
97    CellStateProjection, CellStateSnapshot, ExportProjectionRecord, ProjectionCurrentState,
98    ProjectionExportStage, ProjectionIdentityStage, ProjectionLifecycleStage,
99};
100pub use trust_keys::{
101    canonical_event_signing_payload, load_revocation_list_file, load_trust_verify_keys_file,
102    parse_trust_verify_keys, sign_event_ed25519, sign_event_hmac_sha256, sign_event_with,
103    verify_and_parse_revocation_envelope, verify_signed_event_envelope,
104    verify_signed_event_envelope_with_revocations, SignedEventEnvelopeV1, Signer, SoftwareSigner,
105};
106pub use types::{
107    canonical_spec_hash, qtype_to_dns_query_type, AuthorityBundle, AuthorityCapability,
108    AuthorityComponent, AuthorityDerivationToken, AuthorityNarrowing, AuthoritySignature,
109    CdnAuthority, CdnProvider, CexAttributes, CloudEventV1, Correlation, DnsAuthority,
110    DnsAuthorityDnssecFailed, DnsAuthorityDnssecFailureReason, DnsAuthorityDrift,
111    DnsAuthorityRebindRejected, DnsAuthorityRebindThreshold, DnsQueryDecision, DnsQueryEvent,
112    DnsQueryReasonCode, DnsQueryType, DnsRebindingPolicy, DnsRefreshPolicy, DnsRefreshStrategy,
113    DnsResolver, DnsResolverDnssecPolicy, DnsResolverProtocol, EgressRule, EnvironmentSpec,
114    ExecutionCellDocument, ExecutionCellSpec, ExportArtifact, ExportArtifactMetadata,
115    ExportChannels, ExportReceipt, ExportReceiptTargetKind, ExportTarget, GitIngress,
116    HomeostasisSignal, HttpExportTarget, InferenceMessage, InferenceRequest, InferenceResponse,
117    InferenceRole, Ingress, Lifetime, NetworkFlowDecision, NetworkFlowDecisionOutcome,
118    NetworkFlowDirection, OciImageIngress, PlacementSpec, PolicyRef, RoleId, RunCpuMax, RunLimits,
119    RunSpec, S3ExportTarget, SecretDeliveryMode, SecretView, SignedTrustKeysetEnvelope,
120    TelemetryChannel, TelemetrySpec, TrustKeysetSignature, WorkloadIdentity, WorkloadIdentityKind,
121};