Skip to main content

Initialization

Create a client with basic configuration:
import { createClient } from 'secton';

const client = createClient({
  apiKey: 'your-api-key',
  baseURL: 'https://api.secton.org/v1',
  timeout: 30000,
  retries: 3,
  debug: false,
});
Use environment variables for your API key to avoid committing secrets to version control.

Configuration Options

OptionTypeDefaultDescription
apiKeystringYour Secton API key
baseURLstring'https://api.secton.org/v1'API base URL override
timeoutnumber30000Request timeout in milliseconds
retriesnumber3Number of retry attempts
debugbooleanfalseEnable debug logging
userAgentstring'secton-sdk/1.0.0'Custom user agent string
logLevelobject{ error: true, warn: true, info: false, debug: false }Logging levels configuration

Config Builder

Use the fluent configBuilder for cleaner setup:
import { createClient, configBuilder } from 'secton';

const config = configBuilder()
  .apiKey('your-api-key')
  .baseURL('https://api.secton.org/v1')
  .timeout(30000)
  .retries(3)
  .debug(false)
  .userAgent('secton-sdk/1.0.0')
  .logLevel({ error: true, warn: true, info: false, debug: false })
  .build();

const client = createClient(config);
The fluent builder is especially useful when dynamically setting options from environment variables or user input.

Environment Variables

Configure the client via environment variables for flexibility across environments:
SECTON_API_KEY=your-api-key
SECTON_BASE_URL=https://api.secton.org/v1
SECTON_TIMEOUT=30000
SECTON_DEBUG=true
You can set these environment variables in your CI/CD pipelines to avoid hardcoding secrets. Example for GitHub Actions:
env:
  SECTON_API_KEY: ${{ secrets.SECTON_API_KEY }}
  SECTON_BASE_URL: ${{ secrets.SECTON_BASE_URL }}
Options can also be set programmatically at runtime based on environment or user input:
const client = createClient({
  apiKey: process.env.SECTION_API_KEY,
  timeout: process.env.NODE_ENV === 'production' ? 10000 : 30000
});
I