Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .eslintignore

This file was deleted.

10 changes: 0 additions & 10 deletions .eslintrc.js

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
title: Amazon SQS
sidebar_order: 3
description: >-
Learn about Sentry's Amazon SQS data forwarder, which enables creating custom data pipelines with Sentry errors through AWS.
Learn about Sentry's Amazon SQS data forwarder, which enables creating custom
data pipelines with Sentry errors through AWS.
og_image: /og-images/organization-integrations-data-forwarding-amazon-sqs.png
---

<Alert>
Expand Down Expand Up @@ -47,4 +49,4 @@ If you wish to modify your forwarder configuration per project, you can do so by
- Unlike the other data forwarders, Sentry does not rate limit its sending of events to Amazon SQS. This is separate from the rate limit Amazon SQS enforces. Keep that in mind if you are noticing inconsistencies in your data, or missing events.
- Double check that your specified region is correct, both when monitoring the queue/bucket in AWS, and configuring the forwarder in Sentry. Sentry expects the region in the format of `us-east-1`, `us-west-1`, etc.
- If your Sentry event payloads are greater than 256KB and you have not provided an S3 Bucket, the event will _not_ be forwarded to your SQS queue. You'll need to setup an S3 Bucket for these events to be forwarded.
- If you are using an S3 Bucket, ensure it is in the same AWS region as the SQS queue otherwise you may experience issues with forwarding events.
- If you are using an S3 Bucket, ensure it is in the same AWS region as the SQS queue otherwise you may experience issues with forwarding events.
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
---
title: Grafana
sidebar_order: 4
description: "Learn about Sentry's Grafana integration, which allows you to query and visualize Sentry data within Grafana."
description: >-
Learn about Sentry's Grafana integration, which allows you to query and
visualize Sentry data within Grafana.
og_image: /og-images/organization-integrations-data-forwarding-grafana.png
---

<Alert level="warning">
Expand Down
5 changes: 3 additions & 2 deletions docs/organization/integrations/data-forwarding/index.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
title: "Data Forwarding"
title: Data Forwarding
sidebar_order: 60
description: "Learn about forwarding processed events to third-party providers."
description: Learn about forwarding processed events to third-party providers.
og_image: /og-images/organization-integrations-data-forwarding.png
---

<Alert>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
title: Segment
sidebar_order: 2
description: >-
Learn about Sentry's Segment data forwarder, which enables tracking Sentry errors as Segment events.
Learn about Sentry's Segment data forwarder, which enables tracking Sentry
errors as Segment events.
og_image: /og-images/organization-integrations-data-forwarding-segment.png
---

<Alert>
Expand Down Expand Up @@ -61,4 +63,4 @@ If you wish to modify your forwarder configuration per project, you can do so by
},
"timestamp": "2017-05-20T15:29:06Z"
}
```
```
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
title: Splunk
sidebar_order: 1
description: >-
Learn about Sentry's Splunk data forwarder, which enables collecting Sentry Errors in your Splunk Cloud instance through an HTTP Event Collector.
Learn about Sentry's Splunk data forwarder, which enables collecting Sentry
Errors in your Splunk Cloud instance through an HTTP Event Collector.
og_image: /og-images/organization-integrations-data-forwarding-splunk.png
---
<Alert>
Data Forwarding is currently in a limited preview, and may not be accessible to all organizations.
Expand Down Expand Up @@ -105,4 +107,4 @@ If you wish to modify your forwarder configuration per project, you can do so by

## Troubleshooting

- Sentry rate limits its sending of events to Splunk at approximately 1000 requests per second per _unique token_. This is separate from the rate limit Splunk enforces. Keep that in mind if you are noticing inconsistencies in your data, or missing events.
- Sentry rate limits its sending of events to Splunk at approximately 1000 requests per second per _unique token_. This is separate from the rate limit Splunk enforces. Keep that in mind if you are noticing inconsistencies in your data, or missing events.
6 changes: 2 additions & 4 deletions docs/product/ai-in-sentry/seer/ai-code-review/index.mdx
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
---
title: AI Code Review
sidebar_order: 30
description: >-
Get error predictions and code reviews for better code and
coverage.
og_image: /og-images/product-ai-in-sentry-ai-code-review.png
description: Get error predictions and code reviews for better code and coverage.
og_image: /og-images/product-ai-in-sentry-seer-ai-code-review.png
---

AI Code Review helps you reviews your code changes, predicting errors and offering suggestions for improvement before merging pull requests.
Expand Down
6 changes: 3 additions & 3 deletions docs/product/ai-in-sentry/seer/root-cause-analysis/index.mdx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: Root Cause Analysis
description: >-
Use Seer's Root Cause Analysis to automatically find the root cause of issues and
generate code fixes.
Use Seer's Root Cause Analysis to automatically find the root cause of issues
and generate code fixes.
sidebar_order: 20
og_image: /og-images/product-ai-in-sentry-seer-issue-fix.png
og_image: /og-images/product-ai-in-sentry-seer-root-cause-analysis.png
---

**Root Cause Analysis** is Seer's collaborative workflow to find the root cause of, and solution to, issues. It uses Sentry's context (issue details, tracing data, logs, and profiles), your codebases (integrated through GitHub), and its interactions with you to identify and reason through problems in your code.
Expand Down
2 changes: 1 addition & 1 deletion docs/product/new-monitors-and-alerts/alerts/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Alerts
description: Create custom Alerts to pair with Issues.
sidebar_order: 60
og_image: /og-images/product-alerts.png
og_image: /og-images/product-new-monitors-and-alerts-alerts.png
---

<Alert>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sidebar_order: 40
description: >-
Learn about the types of notifications that Sentry sends you, and how to
manage them.
og_image: /og-images/product-alerts-notifications.png
og_image: /og-images/product-new-monitors-and-alerts-alerts-notifications.png
---

Sentry sends you notifications regarding workflow activities, [release deploys](/product/releases/), and [quota usage](/pricing/quotas/), as well as weekly reports. These notifications let you know about:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
title: Personal Notification Settings
sidebar_order: null
description: Learn how to manage your personal notifications settings.
og_image: /og-images/product-alerts-notifications-notification-settings.png
og_image: >-
/og-images/product-new-monitors-and-alerts-alerts-notifications-notification-settings.png
---

You can update your personal notification settings for things like [workflow](/product/new-monitors-and-alerts/alerts/notifications/), deploy, issue alert, and [spike protection](/pricing/quotas/spike-protection/) by turning them on or off, specifying how you'd like to be notified (via email, Slack, or both), and more. Users who **aren't** on an [Enterprise](https://sentry.io/pricing/) plan can also configure their quota notifications.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ title: Cron Monitoring Updates for Developers
noindex: true
draft: true
sidebar_hidden: true
og_image: /og-images/product-crons-alerts-backend-insights-migration.png
og_image: >-
/og-images/product-new-monitors-and-alerts-monitors-crons-alerts-backend-insights-migration.png
---

The **Cron Monitoring** feature has been relocated and restructured to improve accessibility and functionality. Previously, it was found in the sidebar under **"Crons"**, but it has now been split into two different locations:
Expand Down
7 changes: 5 additions & 2 deletions docs/product/new-monitors-and-alerts/monitors/index.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
---
title: Monitors
description: Generate issues and trigger alerts by creating custom monitors to track errors, performance, and metrics.
description: >-
Generate issues and trigger alerts by creating custom monitors to track
errors, performance, and metrics.
sidebar_order: 70
og_image: /og-images/product-new-monitors-and-alerts-monitors.png
---

<Alert>
Expand Down Expand Up @@ -105,4 +108,4 @@ Monitors are a Project-level feature, but the permission set is organization-lev

By clicking on a Monitor, you can view the details, edit the Monitor, or disable it.

The details page will show a high level chart of the Monitor's performance, the configuration, created issue, and connected automations.
The details page will show a high level chart of the Monitor's performance, the configuration, created issue, and connected automations.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sidebar_order: 50
description: >-
Learn how to help maintain uptime for your web services by monitoring relevant
URLs with Sentry's Uptime Monitoring.
og_image: /og-images/product-uptime-monitoring.png
og_image: /og-images/product-new-monitors-and-alerts-monitors-uptime-monitoring.png
---

Sentry's Uptime Monitoring lets you monitor the availability and reliability of your web services effortlessly. Once enabled, it continuously tracks configured URLs, delivering instant alerts and insights to quickly identify downtime and troubleshoot issues.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
title: Distributed Tracing with Uptime
sidebar_order: 52
description: Learn how to use distributed tracing to troubleshoot downtime.
og_image: /og-images/product-uptime-monitoring-uptime-tracing.png
og_image: >-
/og-images/product-new-monitors-and-alerts-monitors-uptime-monitoring-uptime-tracing.png
---

Sentry's Uptime Monitoring uses [distributed tracing](/product/tracing/#whats-distributed-tracing) to track the flow and timing of requests and operations during uptime checks. This helps you quickly find the root cause of downtime by connecting related errors and performance data.
Expand Down
31 changes: 31 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import {dirname} from 'path';
import {fileURLToPath} from 'url';

import {FlatCompat} from '@eslint/eslintrc';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const compat = new FlatCompat({
baseDirectory: __dirname,
});

const config = [
{
ignores: ['.babelrc.js'],
},
...compat.extends('sentry-docs', 'plugin:@next/next/recommended'),
{
languageOptions: {
globals: {
Atomics: 'readonly',
SharedArrayBuffer: 'readonly',
},
},
rules: {
'import/no-nodejs-modules': 'off',
},
},
];

export default config;
1 change: 1 addition & 0 deletions next-env.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
/// <reference types="next/navigation-types/compat/navigation" />
import "./.next/types/routes.d.ts";

// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
32 changes: 31 additions & 1 deletion next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,23 @@ const sharedExcludes = [
'node_modules/remark-mdx-images/**/*',
'node_modules/unified/**/*',
'node_modules/rollup/**/*',
// ESLint/TypeScript - build-time only
'node_modules/eslint/**/*',
'node_modules/eslint-*/**/*',
'node_modules/@eslint/**/*',
'node_modules/@typescript-eslint/**/*',
'node_modules/typescript/**/*',
// Mermaid dependencies (build-time diagram generation)
'node_modules/cytoscape/**/*',
'node_modules/cytoscape-*/**/*',
// Development/test tools
'node_modules/vitest/**/*',
'node_modules/vite/**/*',
'node_modules/@vitest/**/*',
// Platform-specific SWC binaries (Vercel uses linux-x64)
'node_modules/@next/swc-darwin-*/**/*',
'node_modules/@next/swc-win32-*/**/*',
'node_modules/@next/swc-linux-arm*/**/*',
];

const outputFileTracingExcludes = process.env.NEXT_PUBLIC_DEVELOPER_DOCS
Expand All @@ -50,6 +67,12 @@ const outputFileTracingExcludes = process.env.NEXT_PUBLIC_DEVELOPER_DOCS
'node_modules/prettier/plugins',
'node_modules/rollup/dist',
'public/og-images/**/*',
// Exclude static assets that don't need to be in the serverless function
'public/mdx-images/**/*',
'public/md-exports/**/*',
'public/pdfs/**/*',
'**/*.gif',
'**/*.pdf',
],
'sitemap.xml': [
'public/mdx-images/**/*',
Expand Down Expand Up @@ -118,6 +141,13 @@ const nextConfig = {
images: {
contentDispositionType: 'inline', // "open image in new tab" instead of downloading
remotePatterns: REMOTE_IMAGE_PATTERNS,
// Next.js 16 requires localPatterns for images with query strings
// Omitting 'search' allows any query string (used for cache busting)
localPatterns: [
{
pathname: '/**',
},
],
},
webpack: (config, options) => {
config.plugins.push(
Expand All @@ -132,7 +162,7 @@ const nextConfig = {
return config;
},
env: {
// This is used on middleware
// This is used on proxy
DEVELOPER_DOCS_: process.env.NEXT_PUBLIC_DEVELOPER_DOCS,
},
redirects,
Expand Down
18 changes: 10 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,18 @@
},
"private": true,
"scripts": {
"dev:minimal": "yarn enforce-redirects && concurrently \"node ./src/hotReloadWatcher.mjs\" \"next dev\"",
"dev": "yarn enforce-redirects && concurrently \"yarn sidecar\" \"node ./src/hotReloadWatcher.mjs\" \"next dev\"",
"dev:minimal": "yarn enforce-redirects && concurrently \"node ./src/hotReloadWatcher.mjs\" \"next dev --webpack\"",
"dev": "yarn enforce-redirects && concurrently \"yarn sidecar\" \"node ./src/hotReloadWatcher.mjs\" \"next dev --webpack\"",
"dev:developer-docs": "yarn enforce-redirects && NEXT_PUBLIC_DEVELOPER_DOCS=1 yarn dev",
"build:developer-docs": "yarn enforce-redirects && git submodule init && git submodule update && NEXT_PUBLIC_DEVELOPER_DOCS=1 yarn build",
"build": "yarn enforce-redirects && yarn generate-og-images && yarn generate-doctree && next build && yarn generate-md-exports",
"build": "yarn enforce-redirects && yarn generate-og-images && yarn generate-doctree && next build --webpack && yarn generate-md-exports",
"generate-md-exports": "node scripts/generate-md-exports.mjs",
"generate-og-images": "ts-node scripts/add-og-images.ts",
"generate-doctree": "esbuild scripts/generate-doctree.ts --bundle --platform=node --packages=external --outfile=.next/generate-doctree.mjs --format=esm && node .next/generate-doctree.mjs",
"vercel:build:developer-docs": "yarn enforce-redirects && git submodule init && git submodule update && NEXT_PUBLIC_DEVELOPER_DOCS=1 yarn build",
"start:dev": "NODE_ENV=development yarn build && yarn start",
"start": "next start",
"lint": "next lint",
"lint": "eslint \"{src,app,scripts}/**/*.{ts,tsx,js,jsx}\"",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lint commands exclude new pages/ directory

Medium Severity

The PR description says pages were moved to root pages/ directory for Next.js 16 compatibility, but the lint commands were changed from next lint (which auto-discovers directories) to explicit eslint "{src,app,scripts}/**/*" patterns. This means pages/_error.jsx and any future files in pages/ are now excluded from ESLint and Prettier checks.

Additional Locations (1)

Fix in Cursor Fix in Web

"lint:ts": "tsc --skipLibCheck",
"lint:eslint": "eslint \"{src,app,scripts}/**/*.{ts,tsx,js,jsx}\"",
"lint:eslint:fix": "eslint --fix \"{src,app,scripts}/**/*.{ts,tsx,js,jsx}\"",
Expand Down Expand Up @@ -76,7 +76,7 @@
"mdx-bundler": "^10.0.1",
"mermaid": "^11.11.0",
"micromark": "^4.0.0",
"next": "15.1.12",
"next": "^16.1.6",
"next-mdx-remote": "^4.4.1",
"next-plausible": "^3.12.4",
"next-themes": "^0.3.0",
Expand Down Expand Up @@ -130,7 +130,8 @@
"concurrently": "^9.1.0",
"dotenv-cli": "^7.4.1",
"eslint": "^8",
"eslint-config-next": "15.0.3",
"@eslint/eslintrc": "^3.2.0",
"eslint-config-next": "^15.0.0",
"eslint-config-sentry-docs": "^2.10.0",
"jest": "^29.5.0",
"jest-dom": "^4.0.0",
Expand All @@ -147,10 +148,11 @@
"resolutions": {
"dompurify": "3.2.4",
"@types/dompurify": "3.0.5",
"@types/node": "^22"
"@types/node": "^22",
"es-iterator-helpers": "1.2.1"
},
"volta": {
"node": "22.16.0",
"yarn": "1.22.22"
}
}
}
File renamed without changes.
File renamed without changes
2 changes: 1 addition & 1 deletion scripts/no-vercel-json-redirects.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ const vercelConfig = JSON.parse(readFileSync('./vercel.json', 'utf8'));

if (vercelConfig.redirects && vercelConfig.redirects.length > 0) {
throw new Error(
'🔴 ERROR: vercel.json redirects are not recommended.\n 👉 Please add dynamic redirects to redirects.js and static redirects to ./src/middleware.ts'
'🔴 ERROR: vercel.json redirects are not recommended.\n 👉 Please add dynamic redirects to redirects.js and static redirects to ./src/proxy.ts'
);
}
6 changes: 5 additions & 1 deletion src/components/codeTabs.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,11 @@ export function CodeTabs({children}: CodeTabProps) {
// The title is what we use for sorting and also for remembering the
// selection. If there is no title fall back to the title cased language name
// (or override from `LANGUAGES`).
const possibleChoices = codeBlocks.map<string>(({props: {title, language}}) => {
const possibleChoices = codeBlocks.map<string>(child => {
const props = child?.props;
const title = props?.title;
const language = props?.language;

if (title) {
return title;
}
Expand Down
4 changes: 2 additions & 2 deletions src/components/imageLightbox/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ export function ImageLightbox({
};

// Filter out props that are incompatible with Next.js Image component
// Next.js Image has stricter typing for certain props like 'placeholder'
const {placeholder: _placeholder, ...imageCompatibleProps} = props;
// Next.js Image has stricter typing for certain props like 'placeholder' and 'preload'
const {placeholder: _placeholder, preload: _preload, ...imageCompatibleProps} = props;

const renderImage = (isInline: boolean = true) => {
const renderedSrc = getImageUrl(src, imgPath);
Expand Down
3 changes: 1 addition & 2 deletions src/components/onboarding/index.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
'use client';

// eslint-disable-next-line no-restricted-imports -- Required for JSX in test environment
import React, {ReactNode, useContext, useEffect, useReducer, useState} from 'react';
import {type ReactNode, useContext, useEffect, useReducer, useState} from 'react';
import {QuestionMarkCircledIcon} from '@radix-ui/react-icons';
import * as Tooltip from '@radix-ui/react-tooltip';
import {Button, Checkbox, Theme} from '@radix-ui/themes';
Expand Down
2 changes: 1 addition & 1 deletion src/middleware.ts → src/proxy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export const config = {
};

// This function can be marked `async` if using `await` inside
export function middleware(request: NextRequest) {
export function proxy(request: NextRequest) {
// First, handle canonical URL redirects for deprecated paths
const canonicalRedirect = handleRedirects(request);
if (canonicalRedirect) {
Expand Down
Loading
Loading