Search by

calvery / sdk

RenzyArmstrong

Official PHP SDK for Calvery Vault secret manager

v0.3.0 2026-04-22 09:27 UTC

This package is auto-updated.

Last update: 2026-09-25 12:03:59 UTC


README

Official PHP SDK for Calvery Vault secret manager. Requires PHP 8.1+.

Install

composer require calvery/sdk

Quickstart

<?php
require 'vendor/autoload.php';

$client = new \Calvery\Client(getenv('CVSM_TOKEN'), 'acme-corp');

// Single secret
$dbUrl = $client->get('DATABASE_URL');

// All secrets as array
$all = $client->getAll();

// Inject into $_ENV + putenv()
$injected = $client->inject(overwrite: false);
echo "Injected " . count($injected) . " vars\n";

Config

$client = new \Calvery\Client(
    getenv('CVSM_TOKEN'),
    'acme-corp',
    [
        'base_url'    => 'https://vault.your-company.internal',
        'environment' => 'staging',
        'cache_ttl'   => 60,   // seconds, 0 to disable
        'max_retries' => 5,
        'timeout'     => 30,   // seconds
    ]
);

Error handling

use Calvery\Exception;

try {
    $val = $client->get('DATABASE_URL');
} catch (Exception\NotFound $e) {
    error_log("secret missing: " . $e->getMessage());
} catch (Exception\AuthError $e) {
    error_log("token invalid: " . $e->getMessage());
} catch (Exception\NetworkError $e) {
    error_log("network: " . $e->getMessage());
} catch (Exception\ServerError $e) {
    error_log("HTTP {$e->statusCode}: " . $e->getMessage());
}

Laravel

.env:

CVSM_TOKEN=cvsm_xxx
CVSM_TEAM=acme-corp

AppServiceProvider::register():

$this->app->singleton(\Calvery\Client::class, fn() =>
    new \Calvery\Client(config('services.calvery.token'), config('services.calvery.team'))
);

License

MIT — bug reports github.com/RenzyArmstrong/Calvery-Vault/issues, support support@calvery.xyz