securenow 5.11.0 → 5.11.2
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/nextjs.js +25 -5
- package/package.json +1 -1
package/nextjs.js
CHANGED
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
* SECURENOW_INSTANCE=http://your-otlp-backend:4318
|
|
38
38
|
*/
|
|
39
39
|
|
|
40
|
-
const {
|
|
40
|
+
const { randomUUID } = require('crypto');
|
|
41
41
|
|
|
42
42
|
const env = k => process.env[k] ?? process.env[k.toUpperCase()] ?? process.env[k.toLowerCase()];
|
|
43
43
|
|
|
@@ -157,9 +157,9 @@ function registerSecureNow(options = {}) {
|
|
|
157
157
|
// service.name
|
|
158
158
|
let serviceName;
|
|
159
159
|
if (baseName) {
|
|
160
|
-
serviceName = noUuid ? baseName : `${baseName}-${
|
|
160
|
+
serviceName = noUuid ? baseName : `${baseName}-${randomUUID()}`;
|
|
161
161
|
} else {
|
|
162
|
-
serviceName = `nextjs-app-${
|
|
162
|
+
serviceName = `nextjs-app-${randomUUID()}`;
|
|
163
163
|
console.warn('[securenow] ⚠️ No SECURENOW_APPID or OTEL_SERVICE_NAME provided. Using fallback: %s', serviceName);
|
|
164
164
|
console.warn('[securenow] 💡 Set SECURENOW_APPID=your-app-name in .env.local for better tracking');
|
|
165
165
|
}
|
|
@@ -521,8 +521,8 @@ function registerSecureNow(options = {}) {
|
|
|
521
521
|
} catch (_) {}
|
|
522
522
|
|
|
523
523
|
// Graceful shutdown for logs
|
|
524
|
-
process.on('SIGTERM', async () => { try { await loggerProvider.shutdown(); } catch (_) {} });
|
|
525
|
-
process.on('SIGINT', async () => { try { await loggerProvider.shutdown(); } catch (_) {} });
|
|
524
|
+
process.on('SIGTERM', async () => { try { await loggerProvider.shutdown(); } catch (_) {} try { require('./firewall').shutdown(); } catch (_) {} });
|
|
525
|
+
process.on('SIGINT', async () => { try { await loggerProvider.shutdown(); } catch (_) {} try { require('./firewall').shutdown(); } catch (_) {} });
|
|
526
526
|
} catch (e) {
|
|
527
527
|
console.warn('[securenow] ⚠️ Logging setup failed (missing @opentelemetry/exporter-logs-otlp-http or @opentelemetry/sdk-logs):', e.message);
|
|
528
528
|
}
|
|
@@ -541,6 +541,26 @@ function registerSecureNow(options = {}) {
|
|
|
541
541
|
}
|
|
542
542
|
} catch (_) {}
|
|
543
543
|
|
|
544
|
+
// Firewall — auto-activates when SECURENOW_API_KEY is set
|
|
545
|
+
const firewallApiKey = env('SECURENOW_API_KEY');
|
|
546
|
+
if (firewallApiKey && env('SECURENOW_FIREWALL_ENABLED') !== '0') {
|
|
547
|
+
try {
|
|
548
|
+
require('./firewall').init({
|
|
549
|
+
apiKey: firewallApiKey,
|
|
550
|
+
apiUrl: env('SECURENOW_API_URL') || 'https://api.securenow.ai',
|
|
551
|
+
syncInterval: parseInt(env('SECURENOW_FIREWALL_SYNC_INTERVAL'), 10) || 60,
|
|
552
|
+
failMode: env('SECURENOW_FIREWALL_FAIL_MODE') || 'open',
|
|
553
|
+
statusCode: parseInt(env('SECURENOW_FIREWALL_STATUS_CODE'), 10) || 403,
|
|
554
|
+
log: env('SECURENOW_FIREWALL_LOG') !== '0',
|
|
555
|
+
tcp: env('SECURENOW_FIREWALL_TCP') === '1',
|
|
556
|
+
iptables: env('SECURENOW_FIREWALL_IPTABLES') === '1',
|
|
557
|
+
cloud: env('SECURENOW_FIREWALL_CLOUD') || null,
|
|
558
|
+
});
|
|
559
|
+
} catch (e) {
|
|
560
|
+
console.warn('[securenow] Firewall init failed:', e.message);
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
|
|
544
564
|
console.log('[securenow] ✅ OpenTelemetry started for Next.js → %s', tracesUrl);
|
|
545
565
|
console.log('[securenow] 📊 Auto-capturing comprehensive request metadata:');
|
|
546
566
|
console.log('[securenow] • IP addresses (x-forwarded-for, x-real-ip, socket)');
|
package/package.json
CHANGED