Skip to content
This repository was archived by the owner on Oct 29, 2025. It is now read-only.

Commit 10daabc

Browse files
committed
chore: add ARXIGNIS_API_URL to configuration, remove test-buffer.js, and enhance error handling in logging and metrics functions
1 parent 4439587 commit 10daabc

File tree

5 files changed

+33
-51
lines changed

5 files changed

+33
-51
lines changed

original_wrangler.jsonc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
}
4545
],
4646
"vars": {
47+
"ARXIGNIS_API_URL": "https://api.arxignis.com/v1",
4748
"ARXIGNIS_API_KEY": "<ARXIGNIS_API_KEY>",
4849
"TURNSTILE_SITE_KEY": "<TURNSTILE_SITE_KEY>",
4950
"TURNSTILE_SECRET_KEY": "<TURNSTILE_SECRET_KEY>",

src/index.ts

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,20 +56,38 @@ const handler = {
5656

5757
switch (decision) {
5858
case 'block':
59+
try {
60+
metrics(request, env, {
61+
decision,
62+
cached: decisionCached || false,
63+
ruleId: remediationResult.ruleId || '',
64+
});
5965
if (env.MODE != 'block') {
6066
return fetch(request);
6167
}
62-
metrics(request, env, { decision, cached: decisionCached || false, score: remediationResult.score || 0 });
6368
console.log(JSON.stringify({ ipAddress: clientIP, remediation: decision, remediationCached: decisionCached || false }));
64-
const assetResponse = await env.ASSETS.fetch(new URL('block.html', request.url));
65-
return assetResponse;
69+
const assetResponse = await env.ASSETS.fetch(new URL('block.html', request.url));
70+
return assetResponse;
71+
} catch (error) {
72+
console.warn('Something went wrong with the block:', error);
73+
return fetch(request);
74+
}
6675
case 'captcha':
76+
try {
77+
metrics(request, env, {
78+
decision,
79+
cached: decisionCached || false,
80+
ruleId: remediationResult.ruleId || '',
81+
});
6782
if (env.MODE != 'block') {
6883
return fetch(request);
6984
}
70-
metrics(request, env, { decision, cached: decisionCached || false, score: remediationResult.score || 0 });
7185
console.log(JSON.stringify({ ipAddress: clientIP, remediation: decision, remediationCached: decisionCached || false }));
7286
return captcha(request, env);
87+
} catch (error) {
88+
console.warn('Something went wrong with the captcha:', error);
89+
return fetch(request);
90+
}
7391
default:
7492
log(request, env);
7593
console.log(JSON.stringify({ ipAddress: clientIP, remediation: decision, remediationCached: decisionCached || false }));
@@ -89,7 +107,7 @@ export const config: ResolveConfigFn = (env: Env, _trigger) => {
89107

90108
try {
91109
// More explicit check for enabled metrics
92-
if (env.PERFORMANCE_METRICS === 'true' && env.PROMETHEUS_URL) {
110+
if (env.PERFORMANCE_METRICS && env.PROMETHEUS_URL) {
93111
console.log('Enabling OpenTelemetry export to:', env.PROMETHEUS_URL);
94112
return {
95113
exporter: {

src/lib/log.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { LogTemplate } from "./types";
33
import version from "./version";
44

55
export function log(request: Request, env: Env) {
6+
try {
67
// Extract request body if present
78
let requestBody: object | string | null = null;
89
if (request.body) {
@@ -46,6 +47,9 @@ export function log(request: Request, env: Env) {
4647

4748
// Add to Durable Object buffer instead of immediate API call
4849
addToLogBuffer(env, logTemplate);
50+
} catch (error) {
51+
console.warn('Failed to send log:', error);
52+
}
4953
}
5054

5155

src/lib/metrics.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@ import { addToMetricsBuffer } from "./durable-buffer";
22
import { RemediationResult, MetricsTemplate } from "./types";
33

44
export function metrics(request: Request, env: Env, result: RemediationResult): void {
5+
try {
56
const metricsTemplate: MetricsTemplate = {
67
timestamp: new Date().toISOString(),
78
clientIp: request.headers.get('CF-Connecting-IP') || 'unknown',
89
hostName: new URL(request.url).hostname,
910
remediation: result.decision,
1011
cached: result.cached,
11-
score: result.score,
12+
ruleId: result.ruleId,
1213
};
1314

1415
addToMetricsBuffer(env, metricsTemplate);
16+
} catch (error) {
17+
console.warn('Failed to send metrics:', error);
18+
}
1519
}

test-buffer.js

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)