overmind-mcp 2.8.47 → 2.8.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/overmind_keygen2000.py +871 -0
- package/dist/bin/cli.js +66 -10
- package/dist/bin/cli.js.map +1 -1
- package/dist/bridge/BridgeHttpClient.d.ts +1 -0
- package/dist/bridge/BridgeHttpClient.d.ts.map +1 -1
- package/dist/bridge/BridgeHttpClient.js +29 -9
- package/dist/bridge/BridgeHttpClient.js.map +1 -1
- package/dist/bridge/OverBridgeServer.d.ts +5 -0
- package/dist/bridge/OverBridgeServer.d.ts.map +1 -1
- package/dist/bridge/OverBridgeServer.js +42 -7
- package/dist/bridge/OverBridgeServer.js.map +1 -1
- package/dist/bridge/SessionStore.d.ts.map +1 -1
- package/dist/bridge/SessionStore.js +15 -1
- package/dist/bridge/SessionStore.js.map +1 -1
- package/package.json +1 -1
package/dist/bin/cli.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import http from 'http';
|
|
5
|
+
import crypto from 'crypto';
|
|
5
6
|
import { fileURLToPath } from 'url';
|
|
6
7
|
import { PassThrough } from 'stream';
|
|
7
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -549,12 +550,26 @@ for (let i = 0; i < cliArgs.length; i++) {
|
|
|
549
550
|
i++;
|
|
550
551
|
}
|
|
551
552
|
}
|
|
553
|
+
// Auth token (env var OR CLI flag). Si présent, toutes les requêtes HTTP
|
|
554
|
+
// doivent inclure "Authorization: Bearer <token>". Protège les 14 tools MCP.
|
|
555
|
+
const mcpAuthToken = process.env.OVERMIND_AUTH_TOKEN || undefined;
|
|
556
|
+
// ─── SECURITÉ: refuser bind réseau non-localhost sans SSL ───────────────────
|
|
557
|
+
// Un serveur HTTP sans chiffrement sur 0.0.0.0 expose les 14 tools MCP
|
|
558
|
+
// (run_agent = exécution de code arbitraire) à n'importe qui sur le LAN.
|
|
559
|
+
if (transportType === 'httpStream' && !(sslCert && sslKey)) {
|
|
560
|
+
const isLoopback = httpHost === 'localhost' || httpHost === '127.0.0.1' || httpHost === '::1';
|
|
561
|
+
if (!isLoopback) {
|
|
562
|
+
rootLogger.error(`[SECURITÉ] Refus de démarrer en HTTP (sans SSL) sur ${httpHost}.` +
|
|
563
|
+
` Utilisez --ssl-cert / --ssl-key ou bind sur localhost.`);
|
|
564
|
+
process.exit(1);
|
|
565
|
+
}
|
|
566
|
+
rootLogger.warn(`[SECURITÉ] Serveur HTTP sans SSL sur ${httpHost}.` +
|
|
567
|
+
` Acceptable en local, MAIS ne pas exposer sur le réseau sans --ssl-cert/--ssl-key.`);
|
|
568
|
+
}
|
|
552
569
|
if (settingsPath || mcpPath) {
|
|
553
570
|
updateConfig(settingsPath, mcpPath);
|
|
554
571
|
// Do NOT log to stderr during MCP initialization as it can cause EOF errors in some clients
|
|
555
572
|
}
|
|
556
|
-
const server = createServer('OverMind-MCP', memoryOnly, memoryToolsOnly);
|
|
557
|
-
rootLogger.info(memoryOnly ? '[Overmind] [START] Démarrage du serveur mémoire...' : (memoryToolsOnly ? '[Overmind] [START] Démarrage serveur (memory tools only)...' : '[Overmind] [START] Démarrage du serveur...'));
|
|
558
573
|
// HTTP Singleton mode (OVERMIND_HTTP_MODE=true in .env)
|
|
559
574
|
// Les serveurs memory et postgresql tournent deja en singleton sur leurs ports,
|
|
560
575
|
// Overmind se configure en client HTTP pour aggreguer les outils
|
|
@@ -566,6 +581,8 @@ if (process.env.OVERMIND_HTTP_MODE === 'true') {
|
|
|
566
581
|
// Les agents se connectent directement aux endpoints HTTP des serveurs distants
|
|
567
582
|
process.exit(0);
|
|
568
583
|
}
|
|
584
|
+
const server = createServer('OverMind-MCP', memoryOnly, memoryToolsOnly);
|
|
585
|
+
rootLogger.info(memoryOnly ? '[Overmind] [START] Démarrage du serveur mémoire...' : (memoryToolsOnly ? '[Overmind] [START] Démarrage serveur (memory tools only)...' : '[Overmind] [START] Démarrage du serveur...'));
|
|
569
586
|
if (transportType === 'httpStream') {
|
|
570
587
|
const httpStreamConfig = {
|
|
571
588
|
port: httpPort,
|
|
@@ -580,23 +597,62 @@ if (transportType === 'httpStream') {
|
|
|
580
597
|
if (sslCa)
|
|
581
598
|
httpStreamConfig.sslCa = sslCa;
|
|
582
599
|
const protocol = sslCert && sslKey ? 'https' : 'http';
|
|
583
|
-
// PATCH: Monkey-patch http.createServer
|
|
584
|
-
//
|
|
600
|
+
// PATCH: Monkey-patch http.createServer pour désactiver le requestTimeout de 5 min.
|
|
601
|
+
// Sans ça, Node tue les SSE streams des agents long-running après 300s.
|
|
602
|
+
// SCOPE: on restore l'original après la PREMIÈRE création de serveur,
|
|
603
|
+
// pour ne pas affecter les autres serveurs HTTP du process (bridge, etc.).
|
|
604
|
+
//
|
|
605
|
+
// AUTH: si mcpAuthToken est défini, on wrap le requestListener pour
|
|
606
|
+
// exiger "Authorization: Bearer *** sur chaque requête. Timing-safe
|
|
607
|
+
// compare pour éviter les timing attacks.
|
|
585
608
|
const origCreateServer = http.createServer.bind(http);
|
|
586
609
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
587
610
|
http.createServer = function (requestListener) {
|
|
588
|
-
|
|
611
|
+
// Wrap avec auth middleware si token configuré
|
|
612
|
+
const wrappedListener = mcpAuthToken
|
|
613
|
+
? (req, res) => {
|
|
614
|
+
// Permettre les requêtes SSE (GET) et POST sans auth pour l'initialization
|
|
615
|
+
// FastMCP fait l'initialize handshake avant les tool calls. On exige le
|
|
616
|
+
// token sur TOUTES les requêtes — le client doit l'envoyer dès le début.
|
|
617
|
+
const auth = req.headers['authorization'] || '';
|
|
618
|
+
const expected = `Bearer ${mcpAuthToken}`;
|
|
619
|
+
// Timing-safe comparison
|
|
620
|
+
const a = Buffer.from(auth);
|
|
621
|
+
const b = Buffer.from(expected);
|
|
622
|
+
if (a.length !== b.length || !crypto.timingSafeEqual(a, b)) {
|
|
623
|
+
res.writeHead(401, { 'Content-Type': 'application/json' });
|
|
624
|
+
res.end(JSON.stringify({ error: 'Unauthorized', code: -32000 }));
|
|
625
|
+
return;
|
|
626
|
+
}
|
|
627
|
+
requestListener(req, res);
|
|
628
|
+
}
|
|
629
|
+
: requestListener;
|
|
630
|
+
const hServer = origCreateServer(wrappedListener);
|
|
589
631
|
hServer.requestTimeout = 0;
|
|
590
632
|
hServer.headersTimeout = 0;
|
|
591
633
|
hServer.keepAliveTimeout = 0;
|
|
592
|
-
//
|
|
634
|
+
// Restaurer immédiatement — seul le serveur FastMCP doit être patché.
|
|
635
|
+
http.createServer = origCreateServer;
|
|
593
636
|
return hServer;
|
|
594
637
|
};
|
|
595
|
-
|
|
596
|
-
|
|
638
|
+
try {
|
|
639
|
+
await server.start({ transportType: 'httpStream', httpStream: httpStreamConfig });
|
|
640
|
+
rootLogger.info(`[Overmind] [READY] Serveur HTTP${sslCert ? 'S' : ''} sur ${protocol}://${httpHost}:${httpPort}${httpEndpoint}`);
|
|
641
|
+
}
|
|
642
|
+
catch (err) {
|
|
643
|
+
rootLogger.error({ error: err instanceof Error ? err.message : String(err), port: httpPort, host: httpHost }, `[Overmind] [ERREUR] Échec du démarrage HTTP sur ${httpHost}:${httpPort}.` +
|
|
644
|
+
` Port déjà pris ? (EADDRINUSE)`);
|
|
645
|
+
process.exit(1);
|
|
646
|
+
}
|
|
597
647
|
}
|
|
598
648
|
else {
|
|
599
|
-
|
|
600
|
-
|
|
649
|
+
try {
|
|
650
|
+
await server.start({ transportType: 'stdio' });
|
|
651
|
+
rootLogger.info(memoryOnly ? '[Overmind] [READY] Serveur mémoire prêt sur STDIO.' : '[Overmind] [READY] Serveur prêt sur STDIO.');
|
|
652
|
+
}
|
|
653
|
+
catch (err) {
|
|
654
|
+
rootLogger.error({ error: err instanceof Error ? err.message : String(err) }, '[Overmind] [ERREUR] Échec du démarrage STDIO.');
|
|
655
|
+
process.exit(1);
|
|
656
|
+
}
|
|
601
657
|
}
|
|
602
658
|
//# sourceMappingURL=cli.js.map
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,7 @@ export declare class BridgeHttpClient {
|
|
|
42
42
|
get baseUrl(): string;
|
|
43
43
|
/**
|
|
44
44
|
* Appelle une méthode JSON-RPC et retourne le résultat (ou throw).
|
|
45
|
+
* Retry automatique sur erreurs transitoires (ECONNRESET, ETIMEDOUT, 5xx).
|
|
45
46
|
*/
|
|
46
47
|
call<T = unknown>(method: string, params?: Record<string, unknown>, timeoutMs?: number): Promise<T>;
|
|
47
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeHttpClient.d.ts","sourceRoot":"","sources":["../../src/bridge/BridgeHttpClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3D;AAED,MAAM,WAAW,sBAAsB;IACrC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CACqB;IAC5C,OAAO,CAAC,KAAK,CAAK;gBAEN,MAAM,EAAE,sBAAsB;IAQ1C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAID
|
|
1
|
+
{"version":3,"file":"BridgeHttpClient.d.ts","sourceRoot":"","sources":["../../src/bridge/BridgeHttpClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3D;AAED,MAAM,WAAW,sBAAsB;IACrC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CACqB;IAC5C,OAAO,CAAC,KAAK,CAAK;gBAEN,MAAM,EAAE,sBAAsB;IAQ1C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAID;;;OAGG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC;IAoCb;;OAEG;IACG,SAAS,CAAC,CAAC,GAAG,OAAO,EACzB,KAAK,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,GACjE,OAAO,CAAC,CAAC,EAAE,CAAC;IAqBf;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;YAOlB,KAAK;YAiDL,IAAI;CAoCnB"}
|
|
@@ -30,6 +30,7 @@ export class BridgeHttpClient {
|
|
|
30
30
|
// ─── JSON-RPC Calls ──────────────────────────────────────────────────────
|
|
31
31
|
/**
|
|
32
32
|
* Appelle une méthode JSON-RPC et retourne le résultat (ou throw).
|
|
33
|
+
* Retry automatique sur erreurs transitoires (ECONNRESET, ETIMEDOUT, 5xx).
|
|
33
34
|
*/
|
|
34
35
|
async call(method, params, timeoutMs) {
|
|
35
36
|
const req = {
|
|
@@ -38,16 +39,35 @@ export class BridgeHttpClient {
|
|
|
38
39
|
method,
|
|
39
40
|
params,
|
|
40
41
|
};
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
const maxRetries = 2;
|
|
43
|
+
let lastErr;
|
|
44
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
45
|
+
try {
|
|
46
|
+
const res = await this._post('/rpc', req, timeoutMs ?? this.config.timeoutMs);
|
|
47
|
+
if (Array.isArray(res)) {
|
|
48
|
+
throw new Error('Unexpected batch response to single call');
|
|
49
|
+
}
|
|
50
|
+
if (res.error) {
|
|
51
|
+
const err = new Error(`JSON-RPC error ${res.error.code}: ${res.error.message}`);
|
|
52
|
+
Object.assign(err, { code: res.error.code, data: res.error.data });
|
|
53
|
+
throw err;
|
|
54
|
+
}
|
|
55
|
+
return res.result;
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
lastErr = e;
|
|
59
|
+
// Ne pas retry sur les erreurs JSON-RPC (codes -32xxx) — ce sont des erreurs applicatives
|
|
60
|
+
const rpcErr = e;
|
|
61
|
+
if (rpcErr.code && rpcErr.code >= -32600 && rpcErr.code <= -32000)
|
|
62
|
+
throw e;
|
|
63
|
+
// Retry sur erreurs réseau ou 5xx HTTP
|
|
64
|
+
if (attempt < maxRetries) {
|
|
65
|
+
await new Promise((r) => setTimeout(r, 500 * (attempt + 1))); // backoff 500ms, 1s
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
49
69
|
}
|
|
50
|
-
|
|
70
|
+
throw lastErr;
|
|
51
71
|
}
|
|
52
72
|
/**
|
|
53
73
|
* Batch JSON-RPC (plusieurs calls en un round-trip).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeHttpClient.js","sourceRoot":"","sources":["../../src/bridge/BridgeHttpClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AA2B/B,8EAA8E;AAE9E,MAAM,OAAO,gBAAgB;IACV,MAAM,CACqB;IACpC,KAAK,GAAG,CAAC,CAAC;IAElB,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,yBAAyB;YACtE,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;SACtC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,4EAA4E;IAE5E
|
|
1
|
+
{"version":3,"file":"BridgeHttpClient.js","sourceRoot":"","sources":["../../src/bridge/BridgeHttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,10 @@ export interface OverBridgeServerConfig {
|
|
|
66
66
|
jsonBodyLimit?: string;
|
|
67
67
|
/** Active la sanitization JSON (Windows paths) */
|
|
68
68
|
sanitizeJson?: boolean;
|
|
69
|
+
/** Origins CORS autorisées (default: ['http://localhost:3000', 'http://localhost:5173']). Mettre ['*'] pour ouvert. */
|
|
70
|
+
allowedOrigins?: string[];
|
|
71
|
+
/** Rate limiting: max requêtes /rpc par IP par fenêtre de 60s (default: 100, 0 = illimité) */
|
|
72
|
+
rateLimitMax?: number;
|
|
69
73
|
}
|
|
70
74
|
export declare class OverBridgeServer {
|
|
71
75
|
private readonly service;
|
|
@@ -79,6 +83,7 @@ export declare class OverBridgeServer {
|
|
|
79
83
|
private server;
|
|
80
84
|
private startTime;
|
|
81
85
|
private pruneTimer;
|
|
86
|
+
private rateLimiter;
|
|
82
87
|
constructor(service: OverBridgeService, config: OverBridgeServerConfig, logger?: BridgeLogger);
|
|
83
88
|
/**
|
|
84
89
|
* Démarre le serveur HTTP et initialise les dépendances (MessageLog, SessionStore, OverBridgeService).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverBridgeServer.d.ts","sourceRoot":"","sources":["../../src/bridge/OverBridgeServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"OverBridgeServer.d.ts","sourceRoot":"","sources":["../../src/bridge/OverBridgeServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* ╚══════════════════════════════════════════════════════════════════════╝
|
|
20
20
|
*/
|
|
21
21
|
import http from 'node:http';
|
|
22
|
+
import crypto from 'node:crypto';
|
|
22
23
|
import { URL } from 'node:url';
|
|
23
24
|
import path from 'node:path';
|
|
24
25
|
import fs from 'node:fs';
|
|
@@ -103,6 +104,7 @@ export class OverBridgeServer {
|
|
|
103
104
|
server;
|
|
104
105
|
startTime = 0;
|
|
105
106
|
pruneTimer;
|
|
107
|
+
rateLimiter = new Map();
|
|
106
108
|
constructor(service, config, logger) {
|
|
107
109
|
this.service = service;
|
|
108
110
|
this.config = config;
|
|
@@ -222,13 +224,14 @@ export class OverBridgeServer {
|
|
|
222
224
|
// Set reqId header in response
|
|
223
225
|
res.setHeader('X-Request-Id', reqId);
|
|
224
226
|
// CORS preflight
|
|
227
|
+
const reqOrigin = req.headers.origin || undefined;
|
|
225
228
|
if (req.method === 'OPTIONS') {
|
|
226
|
-
this.writeCors(res);
|
|
229
|
+
this.writeCors(res, reqOrigin);
|
|
227
230
|
res.writeHead(204);
|
|
228
231
|
res.end();
|
|
229
232
|
return;
|
|
230
233
|
}
|
|
231
|
-
this.writeCors(res);
|
|
234
|
+
this.writeCors(res, reqOrigin);
|
|
232
235
|
try {
|
|
233
236
|
// Health check simple
|
|
234
237
|
if (req.method === 'GET' && url.pathname === '/health') {
|
|
@@ -237,6 +240,25 @@ export class OverBridgeServer {
|
|
|
237
240
|
}
|
|
238
241
|
// JSON-RPC endpoint
|
|
239
242
|
if (req.method === 'POST' && url.pathname === '/rpc') {
|
|
243
|
+
// Rate limiting (sliding window par IP)
|
|
244
|
+
const maxReqs = this.config.rateLimitMax ?? 100;
|
|
245
|
+
if (maxReqs > 0) {
|
|
246
|
+
const ip = (req.socket.remoteAddress || 'unknown').replace(/^::ffff:/, '');
|
|
247
|
+
const now = Date.now();
|
|
248
|
+
let entry = this.rateLimiter.get(ip);
|
|
249
|
+
if (!entry || now - entry.windowStart > 60_000) {
|
|
250
|
+
entry = { count: 0, windowStart: now };
|
|
251
|
+
this.rateLimiter.set(ip, entry);
|
|
252
|
+
}
|
|
253
|
+
entry.count++;
|
|
254
|
+
if (entry.count > maxReqs) {
|
|
255
|
+
this.writeJson(res, 429, {
|
|
256
|
+
jsonrpc: '2.0', id: null,
|
|
257
|
+
error: { code: -32000, message: 'Rate limit exceeded', data: { reqId, limit: maxReqs } },
|
|
258
|
+
});
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
240
262
|
await this.handleRpc(req, res, reqId);
|
|
241
263
|
return;
|
|
242
264
|
}
|
|
@@ -258,8 +280,18 @@ export class OverBridgeServer {
|
|
|
258
280
|
this.writeJson(res, 500, { error: 'Internal server error', reqId });
|
|
259
281
|
}
|
|
260
282
|
}
|
|
261
|
-
writeCors(res) {
|
|
262
|
-
|
|
283
|
+
writeCors(res, reqOrigin) {
|
|
284
|
+
const allowed = this.config.allowedOrigins ?? ['http://localhost:3000', 'http://localhost:5173'];
|
|
285
|
+
const origin = reqOrigin || '';
|
|
286
|
+
if (allowed.includes('*')) {
|
|
287
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
288
|
+
}
|
|
289
|
+
else if (allowed.includes(origin)) {
|
|
290
|
+
res.setHeader('Access-Control-Allow-Origin', origin);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
// Origin pas dans la allowlist — on ne set pas ACAO (navigateur bloquera)
|
|
294
|
+
}
|
|
263
295
|
res.setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS');
|
|
264
296
|
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
|
|
265
297
|
}
|
|
@@ -386,10 +418,13 @@ export class OverBridgeServer {
|
|
|
386
418
|
}
|
|
387
419
|
// ─── /rpc Endpoint (JSON-RPC 2.0 Dispatcher) ────────────────────────────
|
|
388
420
|
async handleRpc(req, res, reqId) {
|
|
389
|
-
// Auth check
|
|
421
|
+
// Auth check — timing-safe comparison pour éviter les timing attacks
|
|
390
422
|
if (this.config.authToken) {
|
|
391
|
-
const auth = req.headers.authorization;
|
|
392
|
-
|
|
423
|
+
const auth = req.headers.authorization || '';
|
|
424
|
+
const expected = `Bearer ${this.config.authToken}`;
|
|
425
|
+
const a = Buffer.from(auth);
|
|
426
|
+
const b = Buffer.from(expected);
|
|
427
|
+
if (a.length !== b.length || !crypto.timingSafeEqual(a, b)) {
|
|
393
428
|
this.writeJson(res, 401, {
|
|
394
429
|
jsonrpc: '2.0',
|
|
395
430
|
id: null,
|