secrets_core/
lib.rs

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