Configuration
Complete guide to configure the moncreneau API in your application.
Environment Variables
API URL
The API is accessible at: https://mc-prd.duckdns.org/api/v1
For local backend development: http://localhost:8080/api/v1
Recommended Configuration
Always use environment variables to store the API URL:
Node.js / Express
.env
MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
MONCRENEAU_API_KEY=your_api_key
config.js
module.exports = {
apiUrl: process.env.MONCRENEAU_API_URL,
apiKey: process.env.MONCRENEAU_API_KEY,
};
React / Vite
.env
VITE_MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
VITE_MONCRENEAU_API_KEY=your_api_key
src/config.ts
export const config = {
apiUrl: import.meta.env.VITE_MONCRENEAU_API_URL,
apiKey: import.meta.env.VITE_MONCRENEAU_API_KEY,
};
Spring Boot
src/main/resources/application.properties
moncreneau.api.url=https://mc-prd.duckdns.org/api/v1
moncreneau.api.key=${MONCRENEAU_API_KEY}
MoncreneauConfig.java
@Configuration
public class MoncreneauConfig {
@Value("${moncreneau.api.url}")
private String apiUrl;
@Value("${moncreneau.api.key}")
private String apiKey;
@Bean
public Moncreneau moncreneauClient() {
return new Moncreneau(apiKey, apiUrl, 30);
}
}
Java SDK not published yet
See Java SDK — source code available, not yet on Maven Central.
Laravel
.env
MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
MONCRENEAU_API_KEY=your_api_key
config/moncreneau.php
<?php
return [
'api_url' => env('MONCRENEAU_API_URL'),
'api_key' => env('MONCRENEAU_API_KEY'),
];
Django
settings.py
# moncreneau API Configuration
MONCRENEAU_API_URL = os.getenv('MONCRENEAU_API_URL')
MONCRENEAU_API_KEY = os.getenv('MONCRENEAU_API_KEY')
.env
MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
MONCRENEAU_API_KEY=your_api_key
SDK Configuration
JavaScript / TypeScript
import Moncreneau from '@moncreneau/api';
const client = new Moncreneau(
process.env.MONCRENEAU_API_KEY,
{
baseUrl: process.env.MONCRENEAU_API_URL,
timeout: 30000, // 30 seconds
maxRetries: 3,
}
);
Java
Not published yet — see Java SDK
import com.moncreneau.Moncreneau;
Moncreneau client = new Moncreneau(
System.getenv("MONCRENEAU_API_KEY"),
System.getenv("MONCRENEAU_API_URL"),
30 // timeout in seconds
);
PHP
Not published yet — see PHP SDK
use Moncreneau\Moncreneau;
$client = new Moncreneau(
$_ENV['MONCRENEAU_API_KEY'],
[
'baseUrl' => $_ENV['MONCRENEAU_API_URL'],
'timeout' => 30,
]
);
Python
from moncreneau import Moncreneau
import os
client = Moncreneau(
api_key=os.getenv('MONCRENEAU_API_KEY'),
base_url=os.getenv('MONCRENEAU_API_URL'),
timeout=30
)
Advanced Configuration
The Node.js SDK accepts 3 real configuration options: baseUrl, timeout (milliseconds), and maxRetries (number of automatic retries on network error):
const client = new Moncreneau(apiKey, {
baseUrl: '{{API_BASE_URL}}',
timeout: 30000, // 30s
maxRetries: 3,
});
There is currently no option for per-request-type timeouts, a custom retry policy by HTTP code, or custom headers — if you need those, call the API directly over HTTP instead of through the SDK.
Best Practices
✅ Do
- Use environment variables for all sensitive configs
- Validate variables at application startup
- Log configuration errors without exposing secrets
- Document required variables in your README
❌ Don't
- Never hardcode API keys in code
- Never commit
.envfiles with real keys - Don't expose API keys client-side (browser)
Validation Examples
Node.js
validateConfig.js
function validateConfig() {
const required = ['MONCRENEAU_API_URL', 'MONCRENEAU_API_KEY'];
const missing = required.filter(key => !process.env[key]);
if (missing.length > 0) {
throw new Error(
`Missing environment variables: ${missing.join(', ')}\n` +
`See .env.example for configuration`
);
}
// Verify URL is valid
try {
new URL(process.env.MONCRENEAU_API_URL);
} catch (error) {
throw new Error(`Invalid MONCRENEAU_API_URL: ${error.message}`);
}
// Check API key format
const apiKey = process.env.MONCRENEAU_API_KEY;
if (!apiKey.startsWith('mk_')) {
throw new Error('MONCRENEAU_API_KEY must start with mk_');
}
console.log('✓ moncreneau configuration validated');
}
// Call at app startup
validateConfig();
Spring Boot
@Component
public class MoncreneauConfigValidator implements InitializingBean {
@Value("${moncreneau.api.url}")
private String apiUrl;
@Value("${moncreneau.api.key}")
private String apiKey;
@Override
public void afterPropertiesSet() throws Exception {
Assert.hasText(apiUrl, "moncreneau.api.url is required");
Assert.hasText(apiKey, "moncreneau.api.key is required");
Assert.isTrue(
apiKey.startsWith("mk_"),
"moncreneau.api.key must start with mk_"
);
logger.info("moncreneau configuration validated");
}
}
Deployment
Vercel
# Via CLI
vercel env add MONCRENEAU_API_URL
vercel env add MONCRENEAU_API_KEY
# Or in Vercel dashboard: Settings → Environment Variables
Heroku
heroku config:set MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
heroku config:set MONCRENEAU_API_KEY=your_api_key
Docker
Dockerfile
ENV MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
# docker-compose.yml
services:
app:
environment:
- MONCRENEAU_API_URL=${MONCRENEAU_API_URL}
- MONCRENEAU_API_KEY=${MONCRENEAU_API_KEY}