Hanzo KMS PHP SDK
If you're working with PHP, the official Hanzo KMS PHP SDK package is the easiest way to fetch and work with secrets for your application.
Installation
composer require kms/php-sdkGetting Started
<?php
use Hanzo KMS\SDK\Hanzo KMSSDK;
$sdk = new Hanzo KMSSDK('https://app.kms.hanzo.ai');
// Authenticate with Hanzo KMS
$response = $sdk->auth()->universalAuth()->login(
"your-machine-identity-client-id",
"your-machine-identity-client-secret"
);
// List secrets
$params = new \Hanzo KMS\SDK\Models\ListSecretsParameters(
environment: "dev",
secretPath: "/",
projectId: "your-project-id"
);
$secrets = $sdk->secrets()->list($params);
echo "Fetched secrets: " . count($secrets) . "\n";Core Methods
The SDK methods are organized into the following high-level categories:
auth: Handles authentication methods.secrets: Manages CRUD operations for secrets.
Auth
The auth component provides methods for authentication:
Universal Auth
Authenticating
$response = $sdk->auth()->universal_auth()->login(
"your-machine-identity-client-id",
"your-machine-identity-client-secret"
);Parameters:
clientId(string): The client ID of your Machine Identity.clientSecret(string): The client secret of your Machine Identity.
We do not recommend hardcoding your Machine Identity Tokens. Setting them as environment variables would be best.
Secrets
This sub-class handles operations related to secrets:
List Secrets
use Hanzo KMS\SDK\Models\ListSecretsParameters;
$params = new ListSecretsParameters(
environment: "dev",
secretPath: "/",
projectId: "your-project-id",
tagSlugs: ["tag1", "tag2"], // Optional
recursive: true, // Optional
expandSecretReferences: true, // Optional
attachToProcessEnv: false, // Optional
skipUniqueValidation: false // Optional
);
$secrets = $sdk->secrets()->list($params);Parameters:
environment(string): The environment in which to list secrets (e.g., "dev").projectId(string): The ID of your project.secretPath(string, optional): The path to the secrets.tagSlugs(array, optional): Tags to filter secrets.recursive(bool, optional): Whether to list secrets recursively.expandSecretReferences(bool, optional): Whether to expand secret references.attachToProcessEnv(bool, optional): Whether to attach secrets to process environment variables.skipUniqueValidation(bool, optional): Whether to skip unique validation.
Returns:
Secret[]: An array of secret objects.
Create Secret
use Hanzo KMS\SDK\Models\CreateSecretParameters;
$params = new CreateSecretParameters(
secretKey: "SECRET_NAME",
secretValue: "SECRET_VALUE",
environment: "dev",
secretPath: "/",
projectId: "your-project-id"
);
$createdSecret = $sdk->secrets()->create($params);Parameters:
secretKey(string): The name of the secret to create.secretValue(string): The value of the secret.environment(string): The environment in which to create the secret.projectId(string): The ID of your project.secretPath(string, optional): The path to the secret.
Returns:
Secret: The created secret object.
Get Secret
use Hanzo KMS\SDK\Models\GetSecretParameters;
$params = new GetSecretParameters(
secretKey: "SECRET_NAME",
environment: "dev",
secretPath: "/",
projectId: "your-project-id"
);
$secret = $sdk->secrets()->get($params);Parameters:
secretKey(string): The name of the secret to retrieve.environment(string): The environment in which to retrieve the secret.projectId(string): The ID of your project.secretPath(string, optional): The path to the secret.
Returns:
Secret: The retrieved secret object.
Update Secret
use Hanzo KMS\SDK\Models\UpdateSecretParameters;
$params = new UpdateSecretParameters(
secretKey: "SECRET_NAME",
newSecretValue: "UPDATED_SECRET_VALUE",
environment: "dev",
secretPath: "/",
projectId: "your-project-id"
);
$updatedSecret = $sdk->secrets()->update($params);Parameters:
secretKey(string): The name of the secret to update.newSecretValue(string): The new value of the secret.environment(string): The environment in which to update the secret.projectId(string): The ID of your project.secretPath(string, optional): The path to the secret.
Returns:
Secret: The updated secret object.
Delete Secret
use Hanzo KMS\SDK\Models\DeleteSecretParameters;
$params = new DeleteSecretParameters(
secretKey: "SECRET_NAME",
environment: "dev",
secretPath: "/",
projectId: "your-project-id"
);
$deletedSecret = $sdk->secrets()->delete($params);Parameters:
secretKey(string): The name of the secret to delete.environment(string): The environment in which to delete the secret.projectId(string): The ID of your project.secretPath(string, optional): The path to the secret.
Returns:
Secret: The deleted secret object.
How is this guide?
Last updated on