secrets_core/
lib.rs

1//! Core domain primitives shared across brokers, SDKs, and providers.
2
3pub mod api_keys;
4pub mod backend;
5pub mod broker;
6pub mod crypto;
7pub mod embedded;
8pub mod errors;
9pub mod http;
10#[cfg(feature = "imds")]
11pub mod imds;
12pub mod key_provider;
13pub mod policy;
14pub mod probe;
15pub mod provider;
16pub mod provider_secrets;
17pub mod resolver;
18pub mod rt;
19pub mod signing_keys;
20pub mod spec;
21pub mod spec_compat;
22pub mod spec_registry;
23pub mod spec_schema;
24pub mod spec_validate;
25pub mod types;
26pub mod uri;
27
28pub use crate::spec_registry::SecretSpecRegistry;
29pub use crate::spec_schema::specs_to_json_schema;
30pub use crate::spec_validate::SecretValidationResult;
31pub use api_keys::{
32    billing_api_key_uri, distributor_api_key_uri, get_billing_provider_api_key_ref,
33    get_distributor_api_key_ref, get_repo_api_key_ref, repo_api_key_uri,
34};
35#[cfg(feature = "aws")]
36pub use backend::aws::AwsSecretsManagerBackend;
37#[cfg(feature = "env")]
38pub use backend::env::EnvBackend;
39#[cfg(feature = "file")]
40pub use backend::file::FileBackend;
41#[cfg(feature = "k8s")]
42pub use backend::k8s::K8sBackend;
43pub use backend::{SecretVersion, SecretsBackend, VersionedSecret};
44pub use broker::{BrokerSecret, SecretsBroker};
45pub use crypto::dek_cache::DekCache;
46pub use crypto::envelope::EnvelopeService;
47pub use embedded::{
48    CoreBuilder, CoreConfig, MemoryBackend, MemoryKeyProvider, Policy, SecretsCore, SecretsError,
49};
50pub use errors::{DecryptError, DecryptResult, Error, Result};
51pub use key_provider::KeyProvider;
52pub use policy::{Authorizer, PolicyGuard, Principal};
53pub use provider::Provider;
54pub use provider_secrets::{
55    ProviderSecret, events_provider_secret_uri, get_events_provider_secret,
56    get_messaging_adapter_secret, messaging_adapter_secret_uri, ttl_duration, ttl_seconds,
57};
58pub use resolver::{DefaultResolver, ResolverConfig};
59pub use signing_keys::{SigningPurpose, get_signing_key_ref, signing_key_ref_uri};
60pub use spec::{SecretDescribable, SecretSpec};
61pub use types::{
62    ContentType, EncryptionAlgorithm, Envelope, Scope, SecretIdentifier, SecretListItem,
63    SecretMeta, SecretRecord, Visibility,
64};
65pub use uri::SecretUri;