TypeScript SDK Configuration
Advanced configuration options for the Tenzro Platform TypeScript SDK.
Environment Variables
The SDK automatically reads from these environment variables:
| Variable | Description | Default |
|---|---|---|
TENZRO_API_KEY | API key for authentication | Required |
TENZRO_TENANT_ID | Tenant identifier | Required |
TENZRO_BASE_URL | API base URL | https://api.platform.tenzro.com |
TENZRO_TIMEOUT | Request timeout in ms | 30000 |
Automatic Configuration
import { TenzroPlatform } from '@tenzro/platform';
// Automatically uses environment variables
const platform = TenzroPlatform.fromEnv();Custom Fetch
You can provide a custom fetch implementation for environments without native fetch or for testing:
import { TenzroPlatform } from '@tenzro/platform';
import nodeFetch from 'node-fetch';
const platform = new TenzroPlatform({
apiKey: process.env.TENZRO_API_KEY!,
tenantId: process.env.TENZRO_TENANT_ID!,
fetch: nodeFetch as unknown as typeof fetch,
});Retry Configuration
Configure automatic retry behavior for transient failures:
const platform = new TenzroPlatform({
apiKey: process.env.TENZRO_API_KEY!,
tenantId: process.env.TENZRO_TENANT_ID!,
// Retry configuration
retries: 3, // Max retry attempts
retryDelay: 1000, // Base delay in ms (exponential backoff)
retryOn: [408, 429, 500, 502, 503, 504], // Status codes to retry
});Custom Headers
Add custom headers to all requests:
const platform = new TenzroPlatform({
apiKey: process.env.TENZRO_API_KEY!,
tenantId: process.env.TENZRO_TENANT_ID!,
headers: {
'X-Request-Source': 'my-app',
'X-Correlation-ID': correlationId,
},
});Request Interceptors
Intercept and modify requests before they are sent:
const platform = new TenzroPlatform({
apiKey: process.env.TENZRO_API_KEY!,
tenantId: process.env.TENZRO_TENANT_ID!,
onRequest: async (request) => {
// Add dynamic headers
request.headers.set('X-Timestamp', Date.now().toString());
// Log requests
console.log('Request:', request.method, request.url);
return request;
},
onResponse: async (response) => {
// Log responses
console.log('Response:', response.status);
return response;
},
});Logging
Enable debug logging for troubleshooting:
const platform = new TenzroPlatform({
apiKey: process.env.TENZRO_API_KEY!,
tenantId: process.env.TENZRO_TENANT_ID!,
debug: true, // Log all requests and responses
logger: {
debug: (msg) => console.debug('[Tenzro]', msg),
info: (msg) => console.info('[Tenzro]', msg),
warn: (msg) => console.warn('[Tenzro]', msg),
error: (msg) => console.error('[Tenzro]', msg),
},
});Multiple Tenants
Create separate clients for different tenants:
const tenant1 = new TenzroPlatform({
apiKey: process.env.TENZRO_API_KEY!,
tenantId: 'tenant-1',
});
const tenant2 = new TenzroPlatform({
apiKey: process.env.TENZRO_API_KEY!,
tenantId: 'tenant-2',
});
// Operations are isolated per tenant
await tenant1.wallet.create({ name: 'Wallet 1', type: 'eoa', chain: 'ethereum' });
await tenant2.wallet.create({ name: 'Wallet 2', type: 'eoa', chain: 'ethereum' });Service-Specific Configuration
Override configuration for specific services:
const platform = new TenzroPlatform({
apiKey: process.env.TENZRO_API_KEY!,
tenantId: process.env.TENZRO_TENANT_ID!,
services: {
ai: {
timeout: 120000, // Longer timeout for AI inference
},
bridge: {
retries: 5, // More retries for bridge operations
},
},
});