@icgio/clients-config
v1.0.368
Published
Centralized configuration management for ICG trading clients. Contains client trading configurations and protected secret files managed with git-secret.
Readme
Clients Config
Centralized configuration management for ICG trading clients. Contains client trading configurations and protected secret files managed with git-secret.
Features
- Client Configuration: Trading parameters, pairs, and settings for each client
- Secret Management: Sensitive data protected with git-secret
- Dynamic Loading: Safe require with fallback for missing modules
- Shared Configuration: Common settings shared across clients
Prerequisites
- Node.js >= 16.0.0
- git-secret installed
- GPG key-pair configured (version 1.4.x recommended for consistency)
Installation
Clone the repository:
git clone <repository-url> cd clients-configInstall dependencies:
npm installReveal secrets (requires GPG key access):
git secret reveal
Usage
const clients_config = require('@icgio/clients-config')
// Access client configuration
const config = clients_config.config
// Access secret data (requires revealed secrets)
const secret = clients_config.secretread
// Access shared secrets
const shared = clients_config.secretread_shared
// Access data source configuration
const data_source = clients_config['data-source']Project Structure
clients-config/
├── index.js # Main entry point with safe_require
├── config.js # Client configuration (public)
├── config.json # JSON configuration data
├── config-archive.json # Archived configurations
├── update-config-json.js # Configuration update script
├── data-source.js.secret # Data source config (encrypted)
├── secretread.js.secret # Secret reader (encrypted)
├── .gitsecret/
│ ├── keys/ # GPG public keys
│ └── paths/
│ └── mapping.cfg # Tracked secret files
└── package.jsonGit-Secret Setup
For New Team Members
Install git-secret:
# macOS brew install git-secret # Ubuntu/Debian apt-get install git-secretGenerate GPG key (use version 1.4.x for consistency):
gpg --gen-keyExport your public key:
gpg --export --armor [email protected] > public_key.ascSend the public key to an admin to be added to the repository
For Admins
Add a new user's key:
git secret tell [email protected]
git secret reveal
git secret hide
git commit -m "Add [email protected] to git-secret"
git pushConfiguration Structure
config.js
Contains client-specific trading configuration:
- Exchange credentials references
- Trading pairs and strategies
- Risk parameters
- Notification settings
secretread.js (encrypted)
Contains functions to read sensitive data:
- API keys
- Secret credentials
- Private configuration
Dependencies
| Package | Purpose |
| ---------- | --------------------------- |
| lodash | Utility functions |
| fs-extra | File system utilities (dev) |
| node-cmd | Command execution (dev) |
| prompt | Interactive prompts (dev) |
Security Notes
- Never commit
.secretfiles in decrypted form - Always run
git secret hidebefore committing - Keep GPG private keys secure
- Rotate credentials periodically
License
ISC License
