Multi-source configuration manager and registry for Quatrain applications and autonomous agent tools.
Provides seamless, zero-dependency configuration management featuring:
Backend,
Storage, and Log.ConfigurationError when critical
parameters or API credentials are missing or blank.Memory >
Environment > Object / JSON).Config.scope('odoo').requireString('apiKey')).yarn add @quatrain/config
Register independent configurations for distinct third-party tools or external services without namespace collision:
import { Config } from '@quatrain/config'
// Register tool credentials
Config.addConfig('odoo', {
url: 'https://erp.example.com',
database: 'production',
apiKey: 'odoo-secret-key',
})
Config.addConfig('google-drive', {
clientId: 'gdrive-client-id',
clientSecret: 'gdrive-client-secret',
})
// Retrieve tool configurations safely
const odoo = Config.getConfig('odoo')
const odooUrl = odoo.requireString('url')
const apiKey = odoo.requireString('apiKey')
// Scoped access
const gdrive = Config.scope('google-drive')
const clientId = gdrive.requireString('clientId')
Use the global default container for application runtime variables:
import { Config } from '@quatrain/config'
// Sets or overrides values in the in-memory store
Config.set('server.port', 3000)
Config.set('server.host', '0.0.0.0')
// Strict fail-fast access (throws ConfigurationError if missing)
const port = Config.requireNumber('server.port')
const host = Config.requireString('server.host')
const secret = Config.requireString(
'JWT_SECRET',
'Set JWT_SECRET in your environment or .env file',
)
// Optional values with fallbacks
const logLevel = Config.getString('LOG_LEVEL', 'info')
ConfigContainer resolves parameters across registered sources by descending
priority:
database.host ->
DATABASE_HOST).import { Config, ObjectConfigSource, EnvConfigSource } from '@quatrain/config'
const container = Config.getConfig()
container.addSource(new ObjectConfigSource({ title: 'Default Title' }))
AGPL-3.0-only © Quatrain Développement SAS