pub struct Secrets;
Expand description
§Shuttle Secrets
Plugin for getting secrets in your Shuttle service.
§Usage
Add a Secrets.toml
file to the root of your crate with the secrets you’d like to store.
Make sure to add Secrets*.toml
to .gitignore
to omit your secrets from version control.
Next, add #[shuttle_runtime::Secrets] secrets: SecretStore
as a parameter to your shuttle_service::main
function.
SecretStore::get
can now be called to retrieve your API keys and other secrets at runtime.
§Example
ⓘ
#[shuttle_runtime::main]
async fn main(
#[shuttle_runtime::Secrets] secrets: SecretStore
) -> ShuttleAxum {
// get secret defined in `Secrets.toml` file.
let secret = secrets.get("MY_API_KEY").unwrap();
let router = Router::new()
.route("/", || async move { format!("My secret is: {}", secret) });
Ok(router.into())
}
Trait Implementations§
Source§impl ResourceInputBuilder for Secrets
impl ResourceInputBuilder for Secrets
Source§type Input = ProvisionResourceRequest
type Input = ProvisionResourceRequest
The input for requesting this resource. Read more
Source§fn build<'life0, 'async_trait>(
self,
_factory: &'life0 ResourceFactory,
) -> Pin<Box<dyn Future<Output = Result<Self::Input, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn build<'life0, 'async_trait>(
self,
_factory: &'life0 ResourceFactory,
) -> Pin<Box<dyn Future<Output = Result<Self::Input, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Construct this resource config. The
ResourceFactory
provides access to secrets and metadata.Auto Trait Implementations§
impl Freeze for Secrets
impl RefUnwindSafe for Secrets
impl Send for Secrets
impl Sync for Secrets
impl Unpin for Secrets
impl UnwindSafe for Secrets
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request