@secr/sdk
v0.1.1
Published
Programmatic Node.js client for the secr secrets management API
Maintainers
Readme
@secr/sdk
Programmatic Node.js client for secr — secrets management for teams.
Install
npm install @secr/sdkQuick Start
import { SecrClient } from "@secr/sdk";
const client = new SecrClient({
token: process.env.SECR_TOKEN,
});
// Pull secrets
const { secrets } = await client.pullSecrets("my-org", "my-project", "production");
// Set a secret
await client.setSecret("my-org", "my-project", "production", "DATABASE_URL", "postgres://...");
// Bulk set
await client.bulkSetSecrets("my-org", "my-project", "production", [
{ key: "API_KEY", value: "sk_live_..." },
{ key: "REDIS_URL", value: "redis://..." },
]);
// Delete a secret
await client.deleteSecret("my-org", "my-project", "production", "OLD_KEY");API
new SecrClient(options)
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| token | string | required | API token |
| apiUrl | string | https://api.secr.dev | API base URL |
| timeout | number | 30000 | Request timeout (ms) |
Methods
| Method | Description |
|--------|-------------|
| pullSecrets(org, project, env, options?) | Pull decrypted secrets |
| listKeys(org, project, env, options?) | List secret keys (no values) |
| setSecret(org, project, env, key, value) | Set a single secret |
| bulkSetSecrets(org, project, env, secrets) | Set multiple secrets |
| deleteSecret(org, project, env, key) | Delete a secret |
| promoteSecrets(org, project, options) | Copy secrets between environments |
| listTemplates(org, project) | List required key templates |
| validateTemplate(org, project, env) | Validate environment against template |
Error Handling
import { SecrClient, SecrApiError } from "@secr/sdk";
try {
await client.pullSecrets("my-org", "my-project", "production");
} catch (err) {
if (err instanceof SecrApiError) {
console.error(err.message, err.status, err.code);
}
}Documentation
Full docs at secr.dev/docs.
License
MIT
