Skip to main content

starfield_datastore/
lib.rs

1//! Pull-through artifact cache and ephemeris server for the OrbitalCommons
2//! data stack.
3//!
4//! A request resolves down a chain — local disk, then the organisation's
5//! mirror, then (only when explicitly allowed) the upstream archive —
6//! populating the local cache. Only the server and its batch commands write
7//! the mirror. Validation failures are never cached. Tailnet clients need no
8//! archive credentials; an upstream-enabled client uses its own providers.
9//!
10//! The full design is in `docs/spec.md`. This crate never depends on
11//! `starfield`; `starfield` depends on it.
12
13mod artifact;
14mod check;
15mod config;
16mod credential;
17mod credential_config;
18mod error;
19mod fetch;
20mod manifest;
21mod mirror;
22#[cfg(feature = "mirror-s3")]
23mod s3;
24#[cfg(feature = "server")]
25pub mod server;
26mod store;
27
28pub use artifact::{Artifact, ArtifactKey, Freshness, Provenance, Source};
29pub use check::{CheckFailure, ContentCheck};
30pub use config::{DatastoreConfig, ServiceCachePolicy, ServiceConfig};
31#[cfg(feature = "onepassword")]
32pub use credential::OnePasswordProvider;
33pub use credential::{
34    ChainProvider, Credential, CredentialProvider, EnvProvider, NetrcProvider, Secret,
35    StaticProvider,
36};
37pub use credential_config::{
38    configured_provider, validate_entries, CredentialConfig, CredentialSource, SkippedCredential,
39};
40pub use error::{DatastoreError, Result};
41pub use manifest::Manifest;
42pub use mirror::Mirror;
43#[cfg(feature = "mirror-s3")]
44pub use s3::{MirrorObject, PutOutcome, S3Mirror};
45pub use store::{
46    Datastore, DatastoreBuilder, IndexEntry, Layer, ProgressFn, ResolveOutcome, VerifyFailure,
47};