Crate helvetia_client

Source
Expand description

§Helvetia Client

This library contains an HTTP client for the Helvetia API. It follows the v0 API spec.

§Example

There are three main operations that this client supports: create a secret, get its data/metadata, delete a secret. Here’s an example of all three:

use url;
use helvetia_client::{Data,Meta,HelvetiaClient};

let owner_token = "owner_token";
let meta_token = "meta_token";
let secret_name = "secret";
let data = "The cake is a lie";
let meta = "Aperture";

// Create a client.
let server_url = url::Url::parse("https://helvetia.example.com")?;
let client = HelvetiaClient::from_url(server_url)?;

// Create a secret.
let data_req = Data::new(owner_token, data);
let meta_req = Meta::new(meta_token, meta);
let res = client.create_secret(secret_name, data_req, Some(meta_req)).await?;
assert_eq!(res, ());

// Get the data of a secret.
let res = client.get_secret_data(secret_name, owner_token).await?;
assert_eq!(&res, data);

// Get the metadata of a secret.
let res = client.get_secret_meta(secret_name, meta_token).await?;
assert_eq!(&res, meta);

// Delete a secret.
let res = client.delete_secret(secret_name, owner_token).await?;
assert_eq!(res, ());

Structs§

Data
The required data for creating a Helvetia secret.
HelvetiaClient
The HTTP client for the Helvetia API.
Meta
The optional metadata for a Helvetia secret.

Enums§

Error
Errors for every problem that the Helvetia client may encounter.

Type Aliases§

Res
Alias for a Helvetia client result.