Copilot/setup sentry nextjs (#58)
* Revise portfolio: warm brown theme, elegant typography, optimized analytics tracking (#55) * Initial plan * Update color theme to warm brown and off-white, add elegant fonts, fix analytics tracking Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> * Fix 404 page integration with warm theme, update admin console colors, fix font loading Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> * Address code review feedback: fix navigation, add utils, improve tracking Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> * Fix accessibility and memory leak issues from code review Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> * chore: Code cleanup, add Sentry.io monitoring, and documentation (#56) * Initial plan * Remove unused code and clean up console statements Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> * Remove unused components and fix type issues Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> * Wrap console.warn in development check Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> * Integrate Sentry.io monitoring and add text editing documentation Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> * Initial plan * feat: Add Sentry configuration files and example pages - Add sentry.server.config.ts and sentry.edge.config.ts - Update instrumentation.ts with onRequestError export - Update instrumentation-client.ts with onRouterTransitionStart export - Update global-error.tsx to capture exceptions with Sentry - Create Sentry example page at app/sentry-example-page/page.tsx - Create Sentry example API route at app/api/sentry-example-api/route.ts Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> * feat: Update middleware to allow Sentry example page and fix deprecated API - Update middleware to exclude /sentry-example-page from locale routing - Remove deprecated startTransaction API from Sentry example page - Use consistent DSN configuration with fallback values Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> * refactor: Improve Sentry configuration with environment-based sampling - Add comments explaining DSN fallback values - Use environment-based tracesSampleRate (10% in production, 100% in dev) - Address code review feedback for production-safe configuration Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com> --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -44,10 +44,12 @@ export async function POST(request: NextRequest) {
|
||||
// Ensure URL doesn't have trailing slash before adding /webhook/chat
|
||||
const baseUrl = n8nWebhookUrl.replace(/\/$/, '');
|
||||
const webhookUrl = `${baseUrl}/webhook/chat`;
|
||||
console.log(`Sending to n8n: ${webhookUrl}`, {
|
||||
hasSecretToken: !!process.env.N8N_SECRET_TOKEN,
|
||||
hasApiKey: !!process.env.N8N_API_KEY,
|
||||
});
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
console.log(`Sending to n8n: ${webhookUrl}`, {
|
||||
hasSecretToken: !!process.env.N8N_SECRET_TOKEN,
|
||||
hasApiKey: !!process.env.N8N_API_KEY,
|
||||
});
|
||||
}
|
||||
|
||||
// Add timeout to prevent hanging requests
|
||||
const controller = new AbortController();
|
||||
@@ -76,20 +78,24 @@ export async function POST(request: NextRequest) {
|
||||
|
||||
if (!response.ok) {
|
||||
const errorText = await response.text().catch(() => 'Unknown error');
|
||||
console.error(`n8n webhook failed with status: ${response.status}`, {
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
error: errorText,
|
||||
webhookUrl: webhookUrl.replace(/\/\/[^:]+:[^@]+@/, '//***:***@'), // Hide credentials in logs
|
||||
});
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
console.error(`n8n webhook failed with status: ${response.status}`, {
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
error: errorText,
|
||||
webhookUrl: webhookUrl.replace(/\/\/[^:]+:[^@]+@/, '//***:***@'), // Hide credentials in logs
|
||||
});
|
||||
}
|
||||
throw new Error(`n8n webhook failed: ${response.status} - ${errorText.substring(0, 200)}`);
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
console.log("n8n response data (full):", JSON.stringify(data, null, 2));
|
||||
console.log("n8n response data type:", typeof data);
|
||||
console.log("n8n response is array:", Array.isArray(data));
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
console.log("n8n response data (full):", JSON.stringify(data, null, 2));
|
||||
console.log("n8n response data type:", typeof data);
|
||||
console.log("n8n response is array:", Array.isArray(data));
|
||||
}
|
||||
|
||||
// Try multiple ways to extract the reply
|
||||
let reply: string | undefined = undefined;
|
||||
|
||||
Reference in New Issue
Block a user