FEVER Client SDKs
Official clients in 8 languages, generated from the appliance's OpenAPI spec.
Installation
- Every release on GitHub Releases carries all 8 clients plus checksums and an SBOM.
- Package registry listings (PyPI, npm, Maven Central, RubyGems, crates.io, Packagist, NuGet) will come later - for now, install straight from the release.
pip install https://github.com/Lowdown-Labs/fever-clients/releases/download/v0.4.0/fever_client-0.4.0-py3-none-any.whlnpm install https://github.com/Lowdown-Labs/fever-clients/releases/download/v0.4.0/fever-client-0.4.0.tgzgo get github.com/Lowdown-Labs/fever-clients/clients/go@v0.4.0gem install https://github.com/Lowdown-Labs/fever-clients/releases/download/v0.4.0/fever_client-0.4.0.gemcurl -LO https://github.com/Lowdown-Labs/fever-clients/releases/download/v0.4.0/fever-client-0.4.0.jarcurl -LO https://github.com/Lowdown-Labs/fever-clients/releases/download/v0.4.0/fever-clients-rust-0.4.0.tar.gz
tar xzf fever-clients-rust-0.4.0.tar.gz
cargo add --path ./rustcurl -LO https://github.com/Lowdown-Labs/fever-clients/releases/download/v0.4.0/fever-clients-php-0.4.0.tar.gz
tar xzf fever-clients-php-0.4.0.tar.gz
composer config repositories.fever path ./php
composer require lowdownlabs/fever-clientcurl -LO https://github.com/Lowdown-Labs/fever-clients/releases/download/v0.4.0/LowdownLabs.Fever.0.4.0.nupkg
dotnet add package LowdownLabs.Fever --source .Configuration
- Clients only need 2 values:
hostยทaccess_token. hostis your appliance base URL. Every CloudFormation deployment yields its own appliance.access_tokenis a tenant API key from the admin console.
import asyncio
import fever_client
async def main():
config = fever_client.Configuration(
host="https://your-appliance",
access_token="YOUR_API_KEY",
)
async with fever_client.ApiClient(config) as client:
auth = fever_client.AuthApi(client)
print(await auth.whoami())
asyncio.run(main())import { AuthApi, Configuration } from "fever-client";
const auth = new AuthApi(
new Configuration({
basePath: "https://your-appliance",
accessToken: "YOUR_API_KEY",
})
);
console.log(await auth.whoami());package main
import (
"context"
"fmt"
fever "github.com/Lowdown-Labs/fever-clients/clients/go"
)
func main() {
cfg := fever.NewConfiguration()
cfg.Servers = fever.ServerConfigurations{{URL: "https://your-appliance"}}
ctx := context.WithValue(context.Background(), fever.ContextAccessToken, "YOUR_API_KEY")
client := fever.NewAPIClient(cfg)
me, _, err := client.AuthAPI.Whoami(ctx).Execute()
if err != nil {
panic(err)
}
fmt.Println(me)
}require "fever_client"
FeverClient.configure do |config|
config.scheme = "https"
config.host = "your-appliance"
config.access_token = "YOUR_API_KEY"
end
puts FeverClient::AuthApi.new.whoami.inspectimport com.lowdownlabs.fever.ApiClient;
import com.lowdownlabs.fever.Configuration;
import com.lowdownlabs.fever.api.AuthApi;
public class Quickstart {
public static void main(String[] args) throws Exception {
ApiClient client = Configuration.getDefaultApiClient();
client.setBasePath("https://your-appliance");
client.setRequestInterceptor(builder ->
builder.header("Authorization", "Bearer YOUR_API_KEY"));
AuthApi auth = new AuthApi(client);
System.out.println(auth.whoami());
}
}use fever_client::apis::{auth_api, configuration::Configuration};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Configuration {
base_path: "https://your-appliance".to_owned(),
bearer_access_token: Some("YOUR_API_KEY".to_owned()),
..Default::default()
};
let me = auth_api::whoami(&config).await?;
println!("{me:?}");
Ok(())
}<?php
require_once __DIR__ . '/vendor/autoload.php';
use LowdownLabs\Fever\Api\AuthApi;
use LowdownLabs\Fever\Configuration;
$config = (new Configuration())
->setHost('https://your-appliance')
->setAccessToken('YOUR_API_KEY');
$auth = new AuthApi(null, $config);
print_r($auth->whoami());using LowdownLabs.Fever.Api;
using LowdownLabs.Fever.Client;
var config = new Configuration
{
BasePath = "https://your-appliance",
AccessToken = "YOUR_API_KEY"
};
var auth = new AuthApi(config);
Console.WriteLine(await auth.WhoamiAsync());Safety and Security
- Scoped keys pin to a single
customer_id. These are for convenience and trial purposes. We recommend implementing robust access control behind your own policies and backend layer. - Clients are regenerated and released automatically when the API contract changes: validated, scanned (gitleaks, Trivy, dependency audits), smoke tested, then cut as a release.
- Pin the release version in your lockfiles, upgrade deliberately.