Skip to main content

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

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​

  1. Use environment variables for all sensitive configs
  2. Validate variables at application startup
  3. Log configuration errors without exposing secrets
  4. Document required variables in your README

❌ Don't​

  1. Never hardcode API keys in code
  2. Never commit .env files with real keys
  3. 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}

Next Steps​