**Motivations:** - Complete documentation for dashboard, domains, ports and environment configuration - Add new services (ClamAV API, Watermark API) to the infrastructure - Enhance dashboard with new pages and improved functionality - Improve deployment scripts and service configurations **Root causes:** - Missing comprehensive documentation for infrastructure setup - Need for antivirus scanning service integration - Need for watermark service integration - Dashboard required additional pages and features **Correctifs:** - Added comprehensive documentation in docs/ (DASHBOARD.md, DOMAINS_AND_PORTS.md, ENVIRONMENT.md) - Updated systemd service files with proper environment variables - Enhanced nginx proxy configuration script - Updated maintenance documentation **Evolutions:** - Added new ClamAV API service (api-clamav) for file scanning - Added new Watermark API service (api-filigrane) for document watermarking - Enhanced signet-dashboard with new learn.html page - Improved dashboard UI with better styles and navigation - Enhanced app.js with new functionality and better error handling - Updated API documentation page with complete endpoint descriptions - Added deployment scripts for watermark and nginx configuration - Updated hash and UTXO lists with latest data - Enhanced server.js with new routes and improved Bitcoin RPC integration **Pages affectées:** - docs/DASHBOARD.md: New comprehensive dashboard documentation - docs/DOMAINS_AND_PORTS.md: New infrastructure domains and ports documentation - docs/ENVIRONMENT.md: New environment variables documentation - docs/MAINTENANCE.md: Updated maintenance procedures - docs/README.md: Updated main documentation - signet-dashboard/public/app.js: Enhanced with new features - signet-dashboard/public/styles.css: Improved styling - signet-dashboard/public/index.html: Enhanced main page - signet-dashboard/public/learn.html: New educational page - signet-dashboard/public/api-docs.html: Enhanced API documentation - signet-dashboard/public/hash-list.html: Updated hash list page - signet-dashboard/public/utxo-list.html: Updated UTXO list page - signet-dashboard/public/join-signet.html: Updated join signet page - signet-dashboard/src/server.js: Enhanced server with new routes - signet-dashboard/start.sh: Updated startup script - signet-dashboard/signet-dashboard.service: Updated systemd service - api-anchorage/anchorage-api.service: Updated systemd service - api-faucet/faucet-api.service: Updated systemd service - configure-nginx-proxy.sh: Enhanced nginx configuration script - add-watermark-certificate.sh: New watermark certificate script - deploy-watermark-nginx.sh: New deployment script - api-clamav/: New ClamAV API service - api-filigrane/: New Watermark API service - hash_list.txt, utxo_list.txt: Updated with latest data - anchor_count.txt: Updated anchor count
99 lines
2.8 KiB
JavaScript
Executable File
99 lines
2.8 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
||
|
||
/**
|
||
* Client de test pour l'API filigrane
|
||
*/
|
||
|
||
import dotenv from 'dotenv';
|
||
import { fileURLToPath } from 'url';
|
||
import { dirname, join } from 'path';
|
||
|
||
const __filename = fileURLToPath(import.meta.url);
|
||
const __dirname = dirname(__filename);
|
||
|
||
dotenv.config({ path: join(__dirname, '../.env') });
|
||
|
||
const API_URL = process.env.WATERMARK_API_URL || 'http://localhost:3022';
|
||
const API_KEY = process.env.API_KEYS?.split(',')[0] || 'test-api-key';
|
||
|
||
async function testHealth() {
|
||
console.log('🔍 Test de santé...');
|
||
try {
|
||
const response = await fetch(`${API_URL}/health`);
|
||
const data = await response.json();
|
||
console.log('✅ Health check:', data);
|
||
return true;
|
||
} catch (error) {
|
||
console.error('❌ Erreur health check:', error.message);
|
||
return false;
|
||
}
|
||
}
|
||
|
||
async function testWatermarkWithText() {
|
||
console.log('\n🔍 Test filigrane avec texte...');
|
||
try {
|
||
const textContent = 'Ceci est un test de filigrane avec du texte.';
|
||
const watermarkOptions = {
|
||
enabled: true,
|
||
text: 'Test filigrane',
|
||
dateUTC: true,
|
||
dateLocal: true,
|
||
blockNumber: false,
|
||
blockHash: false,
|
||
documentHash: true,
|
||
};
|
||
|
||
const response = await fetch(`${API_URL}/api/watermark/document`, {
|
||
method: 'POST',
|
||
headers: {
|
||
'Content-Type': 'application/json',
|
||
'x-api-key': API_KEY,
|
||
},
|
||
body: JSON.stringify({
|
||
apiKey: API_KEY,
|
||
textContent,
|
||
watermarkOptions,
|
||
}),
|
||
});
|
||
|
||
const data = await response.json();
|
||
|
||
if (response.ok && data.success) {
|
||
console.log('✅ Filigrane avec texte réussi !');
|
||
console.log(' - Document original TXID:', data.original.txid);
|
||
console.log(' - Document filigrané TXID:', data.watermarked.txid);
|
||
console.log(' - Fichier original:', data.original.file.name);
|
||
console.log(' - Fichier filigrané:', data.watermarked.file.name);
|
||
return true;
|
||
} else {
|
||
console.error('❌ Erreur filigrane:', data);
|
||
return false;
|
||
}
|
||
} catch (error) {
|
||
console.error('❌ Erreur test filigrane:', error.message);
|
||
return false;
|
||
}
|
||
}
|
||
|
||
async function main() {
|
||
console.log('🚀 Tests de l\'API filigrane\n');
|
||
console.log(`API URL: ${API_URL}`);
|
||
console.log(`API Key: ${API_KEY.substring(0, 10)}...\n`);
|
||
|
||
const healthOk = await testHealth();
|
||
if (!healthOk) {
|
||
console.error('❌ Le service n\'est pas disponible');
|
||
process.exit(1);
|
||
}
|
||
|
||
// Note: Le test avec filigrane nécessite que l'API d'ancrage soit accessible
|
||
// et que la clé API soit valide
|
||
console.log('\n⚠️ Note: Le test de filigrane nécessite que l\'API d\'ancrage soit accessible');
|
||
console.log(' et que la clé API soit valide dans les deux APIs.\n');
|
||
|
||
// Test simple de santé seulement pour l'instant
|
||
console.log('✅ Tests de base réussis !');
|
||
}
|
||
|
||
main().catch(console.error);
|