Qalá
A discrete, multipurpose, secure environment variables and secrets guard.

Features
- 🔐 Encrypted storage of sensitive data
- 🔑 JWT-based authentication
- 🔒 ECC-based secure communication
- 🚀 Multiple operation modes (standalone, integrated, or env)
- 🐳 Docker-ready and easy to deploy
Installation
npm install qala
Usage
Qala can be used in three different modes:
1. ENV Mode (Simplest)
Access your secrets directly via process.env with zero configuration:
const Qala = require('qala');
await Qala.init();
const apiKey = process.env.API_KEY;
const dbUrl = process.env.DATABASE_URL;
connectToDatabase(dbUrl);
authenticateWithApi(apiKey);
2. Standalone Mode (Server + Client)
Run a dedicated Qala server:
const Qala = require('qala');
const fs = require('fs');
const secrets = {
API_KEY: "your_api_key",
DATABASE_URL: "your_database_url",
};
fs.writeFileSync('./data.json', JSON.stringify(secrets, null, 2));
const server = Qala.guard({
mode: 'standalone',
port: 3000,
dataPath: './data.json',
accessSecret: 'your_shared_access_secret'
});
server.init();
Then use a client to access secrets from any application:
const Qala = require('qala');
const client = Qala.engage({
serverUrl: 'http://localhost:3000',
accessSecret: 'your_shared_access_secret'
});
async function main() {
await client.connect();
const apiKey = await client.get('API_KEY');
const dbUrl = await client.get('DATABASE_URL');
console.log(`Connected to database at ${dbUrl}`);
}
main();
3. Integrated Mode
Embed Qala directly into your Express, Koa or other similar application:
const express = require('express');
const Qala = require('qala');
const app = express();
app.get('/', (req, res) => {
res.send('Application is running!');
});
const qala = Qala.guard({
mode: 'integrated',
dataPath: './data.json',
accessSecret: 'your_shared_access_secret',
server: app
});
qala.init()
.then(() => {
app.listen(3000, () => {
console.log('Application running with Qala integrated mode');
});
});
Docker Deployment
Qala includes Docker support for easy deployment:
git clone https://github.com/Qala-Security/qala.js.git
cd qala
./deploy.sh standalone
Security
Qala employs multiple layers of security:
- ECC-based key exchange (secp256k1 curve)
- AES-256-GCM for encryption of all data
- JWT authentication with token expiration
- IP verification to prevent token theft
- Secure storage with encrypted backup files
API Reference
Server (Qala.guard)
| mode | string | 'standalone' | Operation mode ('standalone' or 'integrated') |
| port | number | 3000 | Server port (standalone mode only) |
| securityLevel | string | 'prod' | Security level ('dev' or 'prod') |
| dataPath | string | './data.json' | Path to data file |
| accessSecret | string | - | |