Skip to main content

greentic_deploy_spec/
lib.rs

1//! Greentic deployment object-model schemas.
2//!
3//! See `plans/next-gen-deployment.md` ยง5 for the design rationale. This crate is
4//! the single owner of the [`Environment`], [`Revision`], [`TrafficSplit`],
5//! [`BundleDeployment`], [`Credentials`], [`PackConfig`], and [`RuntimeConfig`]
6//! types. Other crates depend on it; nothing in this crate depends on
7//! operational or runtime code.
8
9#![warn(missing_debug_implementations)]
10#![forbid(unsafe_code)]
11
12pub mod adapters;
13pub mod audit;
14pub mod bundle_deployment;
15pub mod capability_slot;
16pub mod credentials;
17pub mod environment;
18pub mod environment_runtime;
19pub mod error;
20pub mod ids;
21pub mod integrity;
22pub mod messaging_endpoint;
23pub mod pack_config;
24pub mod pack_list_lock;
25pub mod refs;
26pub mod remote;
27pub mod retention;
28pub mod revenue_policy;
29pub mod revision;
30pub mod runtime_config;
31pub mod traffic_split;
32pub mod version;
33
34#[cfg(feature = "schemars")]
35pub mod json_schema;
36
37pub use audit::{Actor, AuditDecision, AuditEvent, AuditResult, POLICY_LOCAL_ONLY};
38pub use bundle_deployment::{
39    BundleDeployment, BundleDeploymentStatus, RevenueShareEntry, RouteBinding, TenantSelector,
40    UsageMeter,
41};
42pub use capability_slot::{CapabilitySlot, PackDescriptor, PackDescriptorParseError};
43pub use credentials::{
44    Credentials, CredentialsBootstrap, CredentialsExpiry, CredentialsMode, CredentialsValidation,
45    CredentialsValidationResult,
46};
47pub use environment::{
48    DEFAULT_LISTEN_ADDR, EnvPackBinding, Environment, EnvironmentHostConfig, ExtensionBinding,
49    validate_public_base_url,
50};
51pub use environment_runtime::{EnvironmentRuntime, RuntimeDiscoveryValue};
52pub use error::SpecError;
53pub use ids::{
54    BundleId, CustomerId, DeploymentId, MessagingEndpointId, PackId, PartyId, RevisionId,
55};
56pub use integrity::{INTEGRITY_ALGORITHM_SHA256, IntegrityError, StateIntegrity, canonical_json};
57pub use messaging_endpoint::{MessagingEndpoint, WelcomeFlowRef};
58pub use pack_config::PackConfig;
59pub use pack_list_lock::{LockedPack, PackListLock};
60pub use refs::{
61    ExtensionRef, ExtensionRefParseError, RuntimeRef, RuntimeRefParseError, SecretRef,
62    SecretRefParseError,
63};
64pub use remote::{
65    BackupManifest, ConcurrencyConflict, IdempotencyKey, IdempotencyOutcome, IdempotencyRecord,
66    IdempotencyReplay, MutationResponse, Precondition, PreconditionError, RbacRequest,
67    RemoteContractError, RemoteStoreError, RestoreOutcome, RestoreRequest, StateEtag,
68};
69pub use retention::{HealthState, HealthStatus, RetentionPolicy, RevocationConfig};
70pub use revenue_policy::RevenuePolicyDocument;
71pub use revision::{PackListEntry, Revision, RevisionLifecycle, is_valid_transition};
72pub use runtime_config::{RevisionRuntimeBlock, RuntimeConfig};
73pub use traffic_split::{TrafficSplit, TrafficSplitEntry};
74pub use version::{SchemaVersion, SemVer};
75
76pub use greentic_types::EnvId;