Project Token Configuration
The project token connects your application to the ByteHide cloud platform. With a token, logs are automatically sent to the cloud. Without it, logs are only stored locally.
Setting the Project Token
Configure your project token using the setProjectToken
method:
import { Log } from '@bytehide/logger';
// Set your project token
Log.setProjectToken('your-project-token-here');
Obtaining Your Project Token
To get your project token, you first need to create a Logs project in the ByteHide dashboard.
Create Logs Project
If you haven't created a Logs project yet, follow our step-by-step guide: Create a Logs project
Once your project is created:
- Navigate to your Logs project dashboard
- Copy your project token from the project settings
- Use the token in your application configuration
Environment-Based Configuration
Using Environment Variables
// Get token from environment variable
const projectToken = process.env.BYTEHIDE_PROJECT_TOKEN;
Log.setProjectToken(projectToken);
Package.json Scripts
{
"scripts": {
"start": "BYTEHIDE_PROJECT_TOKEN=your-token node app.js",
"start:prod": "BYTEHIDE_PROJECT_TOKEN=prod-token node app.js"
}
}
Node.js Configuration
import { Log } from '@bytehide/logger';
// Configure logger first
Log.configure({
minimumLevel: 'info',
consoleEnabled: true
});
// Set token from environment
Log.setProjectToken(process.env.BYTEHIDE_PROJECT_TOKEN);
Browser Configuration
// In browser applications, avoid hardcoding tokens
// Use environment variables during build process
Log.setProjectToken(import.meta.env.VITE_BYTEHIDE_PROJECT_TOKEN);
Token Behavior
Scenario | Behavior |
---|---|
Token Set | Logs sent to ByteHide cloud + local files (if enabled) |
No Token | Logs only stored locally (console/files) |
Invalid Token | Logs fallback to local storage only |
Security Best Practices
Token Security
Never hardcode tokens in your source code. For maximum security, consider using ByteHide Secrets to manage your project tokens and other sensitive configuration.
Option 1: ByteHide Secrets (Recommended)
Use ByteHide Secrets to securely manage your project tokens:
import { SecretsManager } from '@bytehide/secrets';
// Use ByteHide Secrets to retrieve your project token
const projectToken = await SecretsManager.get('BYTEHIDE_PROJECT_TOKEN');
Log.setProjectToken(projectToken);
ByteHide Secrets Integration
ByteHide Secrets provides enterprise-grade secret management. Learn more: ByteHide Secrets for JavaScript
Option 2: Environment Variables
// ❌ Don't do this
Log.setProjectToken('bh_1234567890abcdef');
// ✅ Do this instead
Log.setProjectToken(process.env.BYTEHIDE_PROJECT_TOKEN);
Framework Integration
Express.js
import express from 'express';
import { Log } from '@bytehide/logger';
const app = express();
Log.configure({
minimumLevel: 'info',
persist: true
});
Log.setProjectToken(process.env.BYTEHIDE_PROJECT_TOKEN);
app.listen(3000, () => {
Log.info('Server started', { metadata: { port: 3000 } });
});
React (Vite)
// vite.config.js
export default {
define: {
'process.env.BYTEHIDE_PROJECT_TOKEN': JSON.stringify(process.env.BYTEHIDE_PROJECT_TOKEN)
}
};
Next.js
// next.config.js
module.exports = {
env: {
BYTEHIDE_PROJECT_TOKEN: process.env.BYTEHIDE_PROJECT_TOKEN,
}
};
Validation
Check if your token is working:
Log.setProjectToken('your-token');
Log.info('Test log message');
// Check ByteHide dashboard to confirm logs are received