diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fcf3fd0ab47c5..f4ffd2552a9cc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: Lint, and Test +name: CI on: push: @@ -11,7 +11,7 @@ jobs: name: Lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v5 - name: Internal github app token id: token @@ -62,11 +62,19 @@ jobs: with: github-token: ${{ steps.token.outputs.token }} + job_typos: + name: Check Typos + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - name: Check spelling with typos + uses: crate-ci/typos@master + job_test: name: Test runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v5 - name: Set up Node uses: actions/setup-node@v4 with: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d6f50a70afce2..b378cd172d02e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -22,7 +22,7 @@ repos: - id: debug-statements - id: flake8 - id: fix-encoding-pragma - args: ["--remove"] + args: ['--remove'] - repo: https://github.com/getsentry/pre-commit-hooks rev: f3237d2d65af81d435c49dee3593dc8f03d23c2d hooks: @@ -30,3 +30,7 @@ repos: entry: node_modules/.bin/prettier - id: eslint entry: node_modules/.bin/eslint + - repo: https://github.com/crate-ci/typos + rev: v1.39.0 + hooks: + - id: typos diff --git a/_typos.toml b/_typos.toml new file mode 100644 index 0000000000000..eb9004d3b26e7 --- /dev/null +++ b/_typos.toml @@ -0,0 +1,75 @@ +[default] +# Regex patterns to ignore +extend-ignore-re = [ + "\\bUE\\b", # Unreal Engine abbreviation + "\\bUE_LOG\\b", # Unreal Engine logging macro + "\\bue4\\b", # Unreal Engine 4 + "\\bue5\\b", # Unreal Engine 5 + "\\bue\\d+\\b", # Any UE version (ue5, ue6, etc.) +] + +[files] +# Files and patterns to exclude from spell checking +extend-exclude = [ + # Design and binary files + "*.excalidraw", # Diagram files contain random IDs + "*.png", + "*.jpg", + "*.jpeg", + "*.gif", + "*.svg", + "*.webp", + + # Data and configuration files + "*.json", # JSON files have many false positives + "*.lock", # Package lock files + "yarn.lock", # Yarn lock file + "package-lock.json", # NPM lock file + + # Documentation assets + "public/_platforms/*.json", # Platform metadata + "public/pdfs/*.pdf", # PDFs can't be edited programmatically + + # Build artifacts and dependencies + ".next/**", # Next.js build output + "node_modules/**", # Dependencies + "dist/**", # Distribution builds + "build/**", # Build output +] + +[default.extend-words] +# Technical terms and product names that are spelled correctly +# .NET ecosystem +Paket = "Paket" # .NET package manager (legitimate tool) +paket = "paket" # .NET package manager CLI command + +# Platform-specific terms +ITMS = "ITMS" # Apple error code prefix (legitimate) +SEH = "SEH" # Structured Exception Handling (Windows API) +EDE = "EDE" # Cipher name component (3DES_EDE_CBC_SHA) +UE = "UE" # Unreal Engine abbreviation +UE4 = "UE4" # Unreal Engine 4 +UE5 = "UE5" # Unreal Engine 5 + +# Cloud/Infrastructure +nodejs_als = "nodejs_als" # Cloudflare compatibility flag (correct spelling) +als = "als" # Part of nodejs_als flag + +# Common abbreviations in tech docs +DSN = "DSN" # Data Source Name (Sentry) +DSNs = "DSNs" # Plural +SDK = "SDK" # Software Development Kit +SDKs = "SDKs" # Plural +API = "API" # Application Programming Interface +APIs = "APIs" # Plural +MCP = "MCP" # Model Context Protocol +NPM = "NPM" # Node Package Manager + +# Code identifiers that are intentionally "misspelled" or match external systems +# Note: These should ONLY include cases where the spelling is intentional +# (e.g., matching an external API/constant name we don't control) +childs = "childs" # Intentional variable name in mdx-deflist.ts +aso = "aso" # Intentional variable name in utils.ts (short for "a sidebar order") +MIGRATED_GETTING_STARTD_DOCS = "MIGRATED_GETTING_STARTD_DOCS" # Matches actual constant in Sentry backend (external) +STARTD = "STARTD" # Part of MIGRATED_GETTING_STARTD_DOCS - needed because typos parses words in markdown text +ERRO = "ERRO" # Special case - Part of "ERRORs" in legacy-sdk/integrations.mdx (logging level context) diff --git a/app/[[...path]]/page.tsx b/app/[[...path]]/page.tsx index 578d8ef997e5a..c5722c4bf67b6 100644 --- a/app/[[...path]]/page.tsx +++ b/app/[[...path]]/page.tsx @@ -234,7 +234,7 @@ export async function generateMetadata(props: MetadataProps): Promise const domain = isDeveloperDocs ? 'https://develop.sentry.dev' : 'https://docs.sentry.io'; - // enable og iamge preview on preview deployments + // enable og image preview on preview deployments const previewDomain = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : domain; diff --git a/develop-docs/application-architecture/multi-region-deployment/cross-region-rpc.mdx b/develop-docs/application-architecture/multi-region-deployment/cross-region-rpc.mdx index b2cb2a3e46de7..e9562f987d5ff 100644 --- a/develop-docs/application-architecture/multi-region-deployment/cross-region-rpc.mdx +++ b/develop-docs/application-architecture/multi-region-deployment/cross-region-rpc.mdx @@ -59,7 +59,7 @@ Service classes act as stubs that define the interface a service will have. In t - `local_mode` defines which silo mode this service uses it’s ‘local implementation’. Services can have local implementations in either silo mode. - `get_local_implementation` is used by the RPC machinery to find the implementation service when the silo mode matches or is `MONOLITH`. -RPC methods like `get_org_by_slug` must be defined as `abstractmethod` and must have either `rpc_method` or `regional_rpc_method` applied. If a method has `local_mode = REGION` it should use `regional_rpc_method` with a resolve ‘resolver’. There are several resolvers that accomodate a variety of method call signatures: +RPC methods like `get_org_by_slug` must be defined as `abstractmethod` and must have either `rpc_method` or `regional_rpc_method` applied. If a method has `local_mode = REGION` it should use `regional_rpc_method` with a resolve ‘resolver’. There are several resolvers that accommodate a variety of method call signatures: - `ByOrganizationSlug` will extract the `organization_slug` parameter and use it to locate the region using `sentry_organizationmapping`. - `ByOrganizationId` will extract the `organization_id` parameter and use it to locate the organization’s region using `sentry_organizationmapping` diff --git a/develop-docs/application-architecture/overview.mdx b/develop-docs/application-architecture/overview.mdx index 0c0d2a293d63e..0923d704fe32a 100644 --- a/develop-docs/application-architecture/overview.mdx +++ b/develop-docs/application-architecture/overview.mdx @@ -40,7 +40,7 @@ This graph is extremely simplified mostly due to layout constraints. Missing fro * How Relay fetches project configs. Answer: from sentry-web * How Relay caches project configs. Answer: In memory, and in Redis * How Relay counts events and keeps track of quotas. Answer: more Redis -* Symbolicator as auxilliary service to symbolicate-event +* Symbolicator as auxiliary service to symbolicate-event * How alerting is triggered. Answer: postprocess-event, a Celery task which is responsible for alerting (spawned by a Kafka consumer in Sentry reading from eventstream) * Possibly more diff --git a/develop-docs/backend/api/design.mdx b/develop-docs/backend/api/design.mdx index a349ca5d47707..58d1f7193672e 100644 --- a/develop-docs/backend/api/design.mdx +++ b/develop-docs/backend/api/design.mdx @@ -3,7 +3,7 @@ title: Design Principles sidebar_order: 2 --- -This document contains a set of design principles and requirements whish should be applied to all Sentry APIs. These are _requirements_ when designing public APIs (such as Sentry's Web API), but internal APIs (such as an an internal service that Sentry communicates with) should attempt to adhere to these principles as well where it makes sense. +This document contains a set of design principles and requirements which should be applied to all Sentry APIs. These are _requirements_ when designing public APIs (such as Sentry's Web API), but internal APIs (such as an an internal service that Sentry communicates with) should attempt to adhere to these principles as well where it makes sense. In the Sentry monolith, we use [Django REST framework](https://www.django-rest-framework.org/) (DRF). diff --git a/develop-docs/backend/api/serializers.mdx b/develop-docs/backend/api/serializers.mdx index e200064d84306..9f7252cfa21d5 100644 --- a/develop-docs/backend/api/serializers.mdx +++ b/develop-docs/backend/api/serializers.mdx @@ -163,7 +163,7 @@ class ModelSerializer(Serializer): **get_attrs Method** -Why do this when Django Rest Framework has similar functionality? The `get_attrs` method is the reason. It allows you to do a bulk query versus multiple queries. In our example, instead of calling `ExampleTypes.objects.get(...)` multiple items, I can filter for the ones I want and assign them to the item in question using python. In the case of `attr` dictionary, the `key` is the item iteself. and the `value` is a dictionary with the name of the attribute you want to add and it's values. +Why do this when Django Rest Framework has similar functionality? The `get_attrs` method is the reason. It allows you to do a bulk query versus multiple queries. In our example, instead of calling `ExampleTypes.objects.get(...)` multiple items, I can filter for the ones I want and assign them to the item in question using python. In the case of `attr` dictionary, the `key` is the item itself. and the `value` is a dictionary with the name of the attribute you want to add and it's values. ```python attrs[item] = {'attribute_name': attribute} diff --git a/develop-docs/backend/application-domains/feature-flags/flagpole.mdx b/develop-docs/backend/application-domains/feature-flags/flagpole.mdx index 1da9afd277bd5..658b97ca9999e 100644 --- a/develop-docs/backend/application-domains/feature-flags/flagpole.mdx +++ b/develop-docs/backend/application-domains/feature-flags/flagpole.mdx @@ -84,11 +84,11 @@ Flagpole currently supports the following `operator` types: `contains` -: Given a single int, string, float, or boolean value, evalutes to `True` if the context property value is a list containing the provided value. +: Given a single int, string, float, or boolean value, evaluates to `True` if the context property value is a list containing the provided value. `not_contains` -: The inverse of `contains`, evalutes to `True` if the context property value is a list which does not contain the provided value. +: The inverse of `contains`, evaluates to `True` if the context property value is a list which does not contain the provided value. `equals` @@ -114,7 +114,7 @@ Here are some common properties we surface via our Sentry and GetSentry context `sentry_region` [str] -: The sentry region or single-tenant the flag check is being perfomed in. +: The sentry region or single-tenant the flag check is being performed in. `sentry_singletenant` [bool] diff --git a/develop-docs/backend/application-domains/grouping.mdx b/develop-docs/backend/application-domains/grouping.mdx index c7024ee09af14..81cd7dfe67222 100644 --- a/develop-docs/backend/application-domains/grouping.mdx +++ b/develop-docs/backend/application-domains/grouping.mdx @@ -8,7 +8,7 @@ which can be customized [on the client](https://docs.sentry.io/platforms/python/ and on the server via [fingerprint rules](https://docs.sentry.io/product/data-management-settings/event-grouping/fingerprint-rules/) and [stack trace rules](https://docs.sentry.io/product/data-management-settings/event-grouping/stack-trace-rules/). -This documentation attemps to explain how the system currently functions and what limitations exist presently with it. +This documentation attempts to explain how the system currently functions and what limitations exist presently with it. # Basics @@ -192,8 +192,8 @@ The following general paths forward are current envisioned: The consequences of making too many groups today are alert spam and the inability to work with multiple issues at once. If Sentry were to no longer be alerting on all new groups and tools existed to work -across multiple groups more opportunies arise. In particular the grouping algorithm could continue to -just fingerprint the stack trace but a secondary process could come in peridically and sweep up related +across multiple groups more opportunities arise. In particular the grouping algorithm could continue to +just fingerprint the stack trace but a secondary process could come in periodically and sweep up related fingerprints into a larger group. If we take the `get_current_user` example the creation of 50 independent groups is not much of an issue if no alerts are fired. If after 5 minute the system detected that they are in fact all very related (eg: the bug is "in `get_current_user`") it could leave the 50 generated groups diff --git a/develop-docs/backend/application-domains/nodestore.mdx b/develop-docs/backend/application-domains/nodestore.mdx index 44e234432fafb..d5f0f3c5028df 100644 --- a/develop-docs/backend/application-domains/nodestore.mdx +++ b/develop-docs/backend/application-domains/nodestore.mdx @@ -26,4 +26,4 @@ If you have a favorite data storage solution, it only has to operate under a few - get key - delete key -For more information on implementating your own backend, take a look at `sentry.nodestore.base.NodeStorage`. +For more information on implementing your own backend, take a look at `sentry.nodestore.base.NodeStorage`. diff --git a/develop-docs/backend/application-domains/pii/selectors.mdx b/develop-docs/backend/application-domains/pii/selectors.mdx index 1fc1348b26b7d..732605c506e0c 100644 --- a/develop-docs/backend/application-domains/pii/selectors.mdx +++ b/develop-docs/backend/application-domains/pii/selectors.mdx @@ -102,7 +102,7 @@ Select known parts of the schema using the following: [Remove] [Anything] from [$frame.vars] ``` -### Escaping Specal Characters +### Escaping Special Characters If the object key you want to match contains whitespace or special characters, you can use quotes to escape it: diff --git a/develop-docs/development-infrastructure/analytics.mdx b/develop-docs/development-infrastructure/analytics.mdx index 5a3a9512c6f64..cfaf31587a7ca 100644 --- a/develop-docs/development-infrastructure/analytics.mdx +++ b/develop-docs/development-infrastructure/analytics.mdx @@ -308,11 +308,11 @@ If your analytics aren't showing up after you added it, you can't find an event - Check Amplitude for blocked events: In Amplitude, go to the "Data" section in the sidebar. From there, navigate to "Events" and search for your event name. It will show up with status "Blocked" if blocked, which means events won't show up. Some events may be blocked in favor of automatic route or button analytics. - For route analytics, confirm that the analytic event isn't being blocked with `useDisableRouteAnalytics`. Some components already had an analytic event so the route analytics were disabled. - Check the types of the data you are sending. Arrays aren't recommended data types to send (they can be hard to query and produce some unexpected behavior). Try to remove those if you are using them. -- Remember there will always be some discrepency. Ad-blockers, for example, can block events from being sent. This could be a cause of why some numbers aren't adding up. +- Remember there will always be some discrepancy. Ad-blockers, for example, can block events from being sent. This could be a cause of why some numbers aren't adding up. ## Metrics -Track aggregrate stats with [Metrics](/backend/metrics/). For example, this can be used to track aggregate response codes for an endpoint. +Track aggregate stats with [Metrics](/backend/metrics/). For example, this can be used to track aggregate response codes for an endpoint. Import the metrics library and use the `metrics.inc` function. The key needs to be unique. diff --git a/develop-docs/development-infrastructure/environment/index.mdx b/develop-docs/development-infrastructure/environment/index.mdx index 7420a37b6923f..ac63dd4c4b80f 100644 --- a/develop-docs/development-infrastructure/environment/index.mdx +++ b/develop-docs/development-infrastructure/environment/index.mdx @@ -116,7 +116,7 @@ To run tasks, you will also need to start taskbroker: # start just taskbroker devservices up --mode=taskbroker -# start taskbroker and a backgrond worker +# start taskbroker and a background worker devservices up --mode=taskworker ``` @@ -226,7 +226,7 @@ Then, either end the process or kill it if you need to. --- -**Problem:** You see `Error occured while trying to proxy to: dev.getsentry.net:8000/` +**Problem:** You see `Error occurred while trying to proxy to: dev.getsentry.net:8000/` **Solution:** You likely need to upgrade your Python dependencies. Go to the git root directory and run `make install-py-dev`. diff --git a/develop-docs/engineering-practices/documentation.mdx b/develop-docs/engineering-practices/documentation.mdx index 662a35a213c30..5e25f2e2adccc 100644 --- a/develop-docs/engineering-practices/documentation.mdx +++ b/develop-docs/engineering-practices/documentation.mdx @@ -6,7 +6,7 @@ sidebar_order: 30 Because documentation is a big part of what makes Sentry work we’ve outlined some guidelines about how this documentation is structured and how to extend it. -This page primarily focuses on writing **developer-facing documentation**, although some concepts may also apply to user-facing documentation. We have separate [contribution guidelines](https://docs.sentry.io/contributing/) specifically for user-facing documenation. +This page primarily focuses on writing **developer-facing documentation**, although some concepts may also apply to user-facing documentation. We have separate [contribution guidelines](https://docs.sentry.io/contributing/) specifically for user-facing documentation. ## Repository diff --git a/develop-docs/frontend/using-rtl.mdx b/develop-docs/frontend/using-rtl.mdx index 32f86d139f1c1..ed64d61a141f6 100644 --- a/develop-docs/frontend/using-rtl.mdx +++ b/develop-docs/frontend/using-rtl.mdx @@ -20,7 +20,7 @@ As a part of this goal, we avoid testing implementation details so refactors (ch We are generally in favor of Use Case Coverage over Code Coverage. ## Use our built-in contexts -By default, `render()` has some default contexts setup for you. The organization context is set to `OrganizationFixture()` and the router context has some default params like orgId and projectId. These can be overriden by passing a property to the 2nd argument of the `render()` function. +By default, `render()` has some default contexts setup for you. The organization context is set to `OrganizationFixture()` and the router context has some default params like orgId and projectId. These can be overridden by passing a property to the 2nd argument of the `render()` function. Example of overriding the default organization features and access: ```tsx @@ -50,7 +50,7 @@ expect(screen.getByText(/example/i)).toBeInTheDocument(); ## Testing route changes -When using `render()`, an in-memory router is used, which will react to navigations with `useNavigate()` or interations with `Link` components. If your component relies on the URL, you can define the initial state in `initialRouterConfig`. You can access the current router state by referencing the returned `router` class, as well as navigate programmatically with `router.navigate()`. +When using `render()`, an in-memory router is used, which will react to navigations with `useNavigate()` or interactions with `Link` components. If your component relies on the URL, you can define the initial state in `initialRouterConfig`. You can access the current router state by referencing the returned `router` class, as well as navigate programmatically with `router.navigate()`. ```tsx const {router} = render(, { @@ -134,7 +134,7 @@ Suppose routes.tsx defines some nested routes like: } ``` -We can configure the in-memory router to know about just the route tree that you need. Remember to render the wrapper component itself, and the router + route child components will render themsevles. +We can configure the in-memory router to know about just the route tree that you need. Remember to render the wrapper component itself, and the router + route child components will render themselves. ```tsx // settingsWrapper.tsx interface OutletContext { @@ -208,7 +208,7 @@ expect(screen.getByText('Settings > Default > Project: 123')).toBeInTheDocument( To ensure that the tests resemble how users interact with our code we recommend the following priority for querying: 1. `getByRole` - This should be the go-to selector for almost everything. As a nice bonus with this selector, we make sure that our app is accessible. It will most likely be used together with the name option `getByRole('button', {name: /save/i})`. The name is usually the label of a form element or the text content of a button, or the value of the aria-label attribute. If unsure, use the [logRoles](https://testing-library.com/docs/dom-testing-library/api-accessibility/#logroles) feature or consult the [list of available roles](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques#roles). -2. `getByLabelText`/`getByPlaceholderText` - Users find form elements using label text, therefore this option is prefered when testing forms. +2. `getByLabelText`/`getByPlaceholderText` - Users find form elements using label text, therefore this option is preferred when testing forms. 3. `getByText` - Outside of forms, text content is the main way users find elements. This method can be used to find non-interactive elements (like divs, spans, and paragraphs). 4. `getByTestId` - As this does not reflect how users interact with the app, it is only recommended for cases where you can't use any other selector diff --git a/develop-docs/ingestion/relay/creating-a-datacategory.mdx b/develop-docs/ingestion/relay/creating-a-datacategory.mdx index 7bc78950c81d7..319a86aa6cbd1 100644 --- a/develop-docs/ingestion/relay/creating-a-datacategory.mdx +++ b/develop-docs/ingestion/relay/creating-a-datacategory.mdx @@ -36,7 +36,7 @@ New data categories are always released as a new patch version, for example if t would trigger the workflow with version `0.7.13`. -Double and tripple check the version before triggering the workflow. +Double and triple check the version before triggering the workflow. diff --git a/develop-docs/ingestion/symbolicator/index.mdx b/develop-docs/ingestion/symbolicator/index.mdx index 9e60e43efea0b..26d5e313c204d 100644 --- a/develop-docs/ingestion/symbolicator/index.mdx +++ b/develop-docs/ingestion/symbolicator/index.mdx @@ -38,7 +38,7 @@ These endpoints all differ in the schema of requests that they expect. In all ca Using the request ID, it is possible to check the status of the request using the `/requests` endpoint. Possible return values for the response are (in JSON) - `{ "status": "pending", "request_id": , "retry_after": 30}` if the request is running -- `{ “status": "completed", }` if symbolication was succesful +- `{ “status": "completed", }` if symbolication was successful - `{ "status": "failed", "message": }` if symbolication failed - `{ "status": "timeout" }` if symbolication timed out (after 15min) - `{ "status": "internal_error" }` if the sender was dropped, i.e. something went very badly wrong diff --git a/develop-docs/integrations/jira/index.mdx b/develop-docs/integrations/jira/index.mdx index 71dc572a633fa..125a1a53ae30c 100644 --- a/develop-docs/integrations/jira/index.mdx +++ b/develop-docs/integrations/jira/index.mdx @@ -10,7 +10,7 @@ og_image: /og-images/integrations-jira.png ### Permissions for Certain Features -To enable issue-sync between Jira and a locally hosted Sentry Jira integration, you must set your email address permission to "Anyone". This setting can be found in the [Profile and visiblity](https://id.atlassian.com/manage-profile/profile-and-visibility) page under "Contact". +To enable issue-sync between Jira and a locally hosted Sentry Jira integration, you must set your email address permission to "Anyone". This setting can be found in the [Profile and visibility](https://id.atlassian.com/manage-profile/profile-and-visibility) page under "Contact". ## Set Up ngrok diff --git a/develop-docs/sdk/data-model/envelopes.mdx b/develop-docs/sdk/data-model/envelopes.mdx index eb1c36488d5d5..316877e3a8df5 100644 --- a/develop-docs/sdk/data-model/envelopes.mdx +++ b/develop-docs/sdk/data-model/envelopes.mdx @@ -139,7 +139,7 @@ Envelopes can have a number of headers which are valid in all situations: It is recommend to *always* send the `sent_at` envelope header. Do not try to determine whether it should be sent or not, as that determination can be made on the receiving side. -The timestamp should be generated as close as possible to the transmision of the event, +The timestamp should be generated as close as possible to the transmission of the event, so that the delay between sending the envelope and receiving it on the server-side is minimized. This is usually accomplished in serialization of the envelope header. diff --git a/develop-docs/sdk/data-model/event-payloads/exception.mdx b/develop-docs/sdk/data-model/event-payloads/exception.mdx index 6ac4aeab12781..1c628ba63dbc9 100644 --- a/develop-docs/sdk/data-model/event-payloads/exception.mdx +++ b/develop-docs/sdk/data-model/event-payloads/exception.mdx @@ -120,12 +120,12 @@ function captureException(error, context) { -Historically, there was no requirement for the `type` attribute naming scheme. -Consequently, different SDKs took diffferent approaches as to how they set the `type` attribute. -In some cases, the `type` attribute was/is not set at all. -Chosing [Trace Origin](/sdk/performance/trace-origin/) as the naming scheme for the `type` attribute means that we're using an already established and accepted naming scheme. -The scheme works well enough for the exception mechanism `type` attribute. -Slight deviations to accomodate for the applicability to exceptions are allowed and to be expected. +Historically, there was no requirement for the `type` attribute naming scheme. +Consequently, different SDKs took different approaches as to how they set the `type` attribute. +In some cases, the `type` attribute was/is not set at all. +Choosing [Trace Origin](/sdk/performance/trace-origin/) as the naming scheme for the `type` attribute means that we're using an already established and accepted naming scheme. +The scheme works well enough for the exception mechanism `type` attribute. +Slight deviations to accommodate for the applicability to exceptions are allowed and to be expected. SDK maintainers are free to migrate to the new naming scheme for existing capturing mechanisms or use it when adding new mechanisms. diff --git a/develop-docs/sdk/data-model/event-payloads/index.mdx b/develop-docs/sdk/data-model/event-payloads/index.mdx index 581b2de4892a4..e33d68cf29327 100644 --- a/develop-docs/sdk/data-model/event-payloads/index.mdx +++ b/develop-docs/sdk/data-model/event-payloads/index.mdx @@ -284,7 +284,7 @@ Fingerprints](https://docs.sentry.io/data-management/event-grouping/). ## Size Limits Event ingestion imposes limits on the size of events. -See [Envelope Size Limits](/sdk/data-model/envelopes/#size-limits) for futher details. +See [Envelope Size Limits](/sdk/data-model/envelopes/#size-limits) for further details. ## Core Interfaces diff --git a/develop-docs/sdk/data-model/event-payloads/sdk.mdx b/develop-docs/sdk/data-model/event-payloads/sdk.mdx index c9b1de4333f74..2a9f4c6d82a04 100644 --- a/develop-docs/sdk/data-model/event-payloads/sdk.mdx +++ b/develop-docs/sdk/data-model/event-payloads/sdk.mdx @@ -72,7 +72,7 @@ reference (branch, tag or SHA). `settings` : _Optional_. A collection of settings that are used to control behaviour. -- `infer_ip`: Controls the behaviour of IP address inferrence based on request information. Following values are allowed: +- `infer_ip`: Controls the behaviour of IP address inference based on request information. Following values are allowed: - `auto`: infer the IP address based on available request information. This is equal to [setting the IP address to `{{auto}}`](https://develop.sentry.dev/sdk/data-model/event-payloads/user/#automatic-ip-addresses). - `never`: Do not infer the IP address from the request. This is the default if an invalid value for `infer_ip` was sent. - `legacy`: Infer the IP address only if the value is `{{auto}}`. For Javascript and Cocoa it will also infer if `ip_address` is empty. This is the default if no value was sent. diff --git a/develop-docs/sdk/expected-features/data-handling.mdx b/develop-docs/sdk/expected-features/data-handling.mdx index 990661c57baf8..1baa2c467d275 100644 --- a/develop-docs/sdk/expected-features/data-handling.mdx +++ b/develop-docs/sdk/expected-features/data-handling.mdx @@ -50,7 +50,7 @@ Some examples of auto instrumentation that could attach sensitive data: ## Structuring Data -For better data scrubbing on the server side, SDKs should save data in a strucutured way, when possible. Starting point of the discussion was [RFC-0038](https://github.com/getsentry/rfcs/blob/main/text/0038-scrubbing-sensitive-data.md) +For better data scrubbing on the server side, SDKs should save data in a structured way, when possible. Starting point of the discussion was [RFC-0038](https://github.com/getsentry/rfcs/blob/main/text/0038-scrubbing-sensitive-data.md) ### Spans @@ -73,7 +73,7 @@ This helps Relay to know what kind of data it receives and this helps with scrub span.set_data("http.query", query) ``` - Additionally all semantic conventions of OpenTelementry for http spans should be set in the `span.data` if applicable: + Additionally all semantic conventions of OpenTelemetry for http spans should be set in the `span.data` if applicable: https://opentelemetry.io/docs/reference/specification/trace/semantic_conventions/http/ - `db` spans containing database queries: (sql, graphql, elasticsearch, mongodb, ...) @@ -81,7 +81,7 @@ This helps Relay to know what kind of data it receives and this helps with scrub The description of spans with `op` set to `db` must not include any query parameters. Instead, use placeholders like `SELECT FROM 'users' WHERE id = ?` -Additionally all semantic conventions of OpenTelementry for database spans should be set in the `span.data` if applicable: +Additionally all semantic conventions of OpenTelemetry for database spans should be set in the `span.data` if applicable: https://opentelemetry.io/docs/reference/specification/trace/semantic_conventions/database/ ### Breadcrumbs @@ -102,7 +102,7 @@ Sentry.addBreadcrumb({ }); ``` -Additionally all semantic conventions of OpenTelementry for database spans should be set in the `data` if applicable: +Additionally all semantic conventions of OpenTelemetry for database spans should be set in the `data` if applicable: https://opentelemetry.io/docs/reference/specification/trace/semantic_conventions/database/ ## Variable Size diff --git a/develop-docs/sdk/expected-features/index.mdx b/develop-docs/sdk/expected-features/index.mdx index c0d6f50e38a82..2e6372a2b8a14 100644 --- a/develop-docs/sdk/expected-features/index.mdx +++ b/develop-docs/sdk/expected-features/index.mdx @@ -58,7 +58,7 @@ if random() < sample_rate: transport.capture_event(event) ``` -To further simplfiy ignoring certain events from being sent to sentry, it is also suggested to provide `ignoreTransactions` and `ignoreErrors` (or exception, choose terminology which is best for the platform). The array for `ignoreTransactions` specifically should contain an array of transaction names, as is stored in the transcation event schema (ie `GET /info`). These options should provide a simple way to allow users to discard events (ignore) from before they are sent to sentry. Prevents sending data which is is undesired and may consume quota or resources on the Sentry server. +To further simplfiy ignoring certain events from being sent to sentry, it is also suggested to provide `ignoreTransactions` and `ignoreErrors` (or exception, choose terminology which is best for the platform). The array for `ignoreTransactions` specifically should contain an array of transaction names, as is stored in the transaction event schema (ie `GET /info`). These options should provide a simple way to allow users to discard events (ignore) from before they are sent to sentry. Prevents sending data which is is undesired and may consume quota or resources on the Sentry server. ```python ignore_transactions = ['GET /api/health','/api/v1/*'] @@ -499,7 +499,7 @@ Spring GraphQL has its own [observation package](https://github.com/spring-proje GraphQL Java has its own [instrumentation package](https://github.com/graphql-java/graphql-java/tree/master/src/main/java/graphql/execution/instrumentation). -Apollo GraphQL has its own [tracing extensions](https://github.com/apollographql/apollo-tracing#response-format), in this case it'd even be possible to create synthethic transactions and spans out of the tracing extension. +Apollo GraphQL has its own [tracing extensions](https://github.com/apollographql/apollo-tracing#response-format), in this case it'd even be possible to create synthetic transactions and spans out of the tracing extension. Changes in the product may be necessary, e.g. if `request.api_target` is set to `graphql`, the `request.data` and `contexts.response.data` should do syntax highlighting. diff --git a/develop-docs/sdk/expected-features/rate-limiting.mdx b/develop-docs/sdk/expected-features/rate-limiting.mdx index bcf9a7eb48c58..10726f8d2871c 100644 --- a/develop-docs/sdk/expected-features/rate-limiting.mdx +++ b/develop-docs/sdk/expected-features/rate-limiting.mdx @@ -80,7 +80,7 @@ Guidelines for how SDKs should determine the current rate limits: ## Definitions -As stated earlier, SDKs can ignore the `scope` dimension. These definitions are here as a suplement to explain what the `X-Sentry-Rate-Limits` header is made of. +As stated earlier, SDKs can ignore the `scope` dimension. These definitions are here as a supplement to explain what the `X-Sentry-Rate-Limits` header is made of. - **Category:** Classifies the type of data that is being counted. Arbitrary categories can be added as long as they can be inferred from the event or data being ingested. While these [data categories](https://github.com/getsentry/relay/blob/master/relay-base-schema/src/data_category.rs#L91) might look similar to the [envelope item types](/sdk/data-model/envelope-items/), they are not identical, and have slight differences. diff --git a/develop-docs/sdk/expected-features/setup-wizards/index.mdx b/develop-docs/sdk/expected-features/setup-wizards/index.mdx index 5c5e3baae7c65..5282f0d2db628 100644 --- a/develop-docs/sdk/expected-features/setup-wizards/index.mdx +++ b/develop-docs/sdk/expected-features/setup-wizards/index.mdx @@ -131,7 +131,7 @@ The implementation of such an example depends on the framework and is optional. ## Building Blocks and Helper Functions When creating a new wizard, it's recommended to reuse existing building blocks and helper functions from our newer wizards. -Many of the common challenges have already been solved and extracted to reusable funcitons. +Many of the common challenges have already been solved and extracted to reusable functions. For example, you can take the [NextJS](https://github.com/getsentry/sentry-wizard/tree/master/src/nextjs) wizard as a reference. If you come across logic that's not yet reusable but might be applicable in other wizards, feel free to extract it. @@ -242,7 +242,7 @@ This helps us understand how our users use the wizard, which actions they take a ### Getting Started -It's easiest to use the `withTelemetery` wrapper function that's available in the `@sentry/wizard` package: +It's easiest to use the `withTelemetry` wrapper function that's available in the `@sentry/wizard` package: ```typescript export async function runSourcemapsWizard( @@ -283,7 +283,7 @@ While error monitoring is great, we need to be _very_ careful with what we captu This is a program that directly runs on our users' machines and we cannot capture any sensitive data. For example, we can't collect stack traces, as the stack frames' file names might contain absolute paths. -If you use the `withTelemetery` helper, it will automatically filter out stack traces for you. +If you use the `withTelemetry` helper, it will automatically filter out stack traces for you. ### What to collect diff --git a/develop-docs/sdk/miscellaneous/hub_and_scope_refactoring.mdx b/develop-docs/sdk/miscellaneous/hub_and_scope_refactoring.mdx index 320c4fe86769d..4f71ceb16b806 100644 --- a/develop-docs/sdk/miscellaneous/hub_and_scope_refactoring.mdx +++ b/develop-docs/sdk/miscellaneous/hub_and_scope_refactoring.mdx @@ -219,7 +219,7 @@ Here's how the new APIs roughly map to the old-style APIs. In case of `configure - If insertion order matters for data we now need some way of sorting when merging data, e.g. to send out an event. For breadcrumbs, we want to send them in insertion order which means we somehow have to keep track of when a breadcrumb was added. When merging data we then sort them and afterwards apply the breadcrumb limit again. A similar problem exists for event processors on scope as well which should also be executed in insertion order. - It feels like there should be some easy to use API for forking isolation scope, starting/continuing a trace (and transaction) from incoming headers/metadata which currently doesn't exist. - We decided to not deprecate/remove configureScope for Java SDK as it makes it harder for customers to hold a reference to a scope (which they shouldn't). It now has an overload that allows passing in a scope type (global, isolation, current, combined). We have a default scope we write to for the old overload. We do not want to default to combined/merged scope since that would mean you can manipulate a scope you wouldn't expect, e.g. when using `withScope`. -- For Java SDK we also keep `pushScope` around and added `pushIsolationScope`. We deprecated `popScope` as users should now call `close` on a lifecycle token we hand back in the push methods. The token can also be used as an automaitcally closed resource in a `try` block. +- For Java SDK we also keep `pushScope` around and added `pushIsolationScope`. We deprecated `popScope` as users should now call `close` on a lifecycle token we hand back in the push methods. The token can also be used as an automatically closed resource in a `try` block. --- @@ -298,7 +298,7 @@ We can use `Propagator.extract` to fork isolation scope. We try to read the `Sco #### Tracing Without Performance Untested: -In `Propagator.extract` we can create `PropagationContext` from incoming headers (or similar metadata) or fall back to creating a new `PropagationContext` with random IDs. We then store this `PropagationContet` on the isolation scope. In `Propagator.inject` and when sending events to Sentry, we can use that `PropagationContext` from isolation scope and generate headers (or similar). +In `Propagator.extract` we can create `PropagationContext` from incoming headers (or similar metadata) or fall back to creating a new `PropagationContext` with random IDs. We then store this `PropagationContext` on the isolation scope. In `Propagator.inject` and when sending events to Sentry, we can use that `PropagationContext` from isolation scope and generate headers (or similar). - tbd: how does freezing DSC/baggage work? Can we simply freeze whenever the first request (or similar) goes out? - tbd: should Sentry.continueTrace write to isolation scope? Would it then also need to always fork an isolation scope at the same time? Should it create a new span (in case performance is enabled)? diff --git a/develop-docs/sdk/miscellaneous/unified-api/index.mdx b/develop-docs/sdk/miscellaneous/unified-api/index.mdx index 1bd3806dc40aa..dc17d72d8f279 100644 --- a/develop-docs/sdk/miscellaneous/unified-api/index.mdx +++ b/develop-docs/sdk/miscellaneous/unified-api/index.mdx @@ -5,7 +5,7 @@ og_image: /og-images/sdk-miscellaneous-unified-api.png --- -The unified API is deprecated. It served us well over the years, but we are in the process of simplifying the API by removing the Hub and also move some of our instrumentation to OpenTelementry. +The unified API is deprecated. It served us well over the years, but we are in the process of simplifying the API by removing the Hub and also move some of our instrumentation to OpenTelemetry. diff --git a/develop-docs/sdk/processes/basics.mdx b/develop-docs/sdk/processes/basics.mdx index fdb3ceb38242a..11a94af4aeea5 100644 --- a/develop-docs/sdk/processes/basics.mdx +++ b/develop-docs/sdk/processes/basics.mdx @@ -29,7 +29,7 @@ relay run ``` When sending events just substitute `orgXXX.ingest.sentry.io` with `localhost:3000` or -whichever port you ended up chosing. Also note that a local relay will out of the box +whichever port you ended up choosing. Also note that a local relay will out of the box be available via HTTP only so don't try to send HTTPS requests there. ## Consult Existing SDKs diff --git a/develop-docs/sdk/research/performance/index.mdx b/develop-docs/sdk/research/performance/index.mdx index d3b48fd26c0bc..d2311d9b9bc82 100644 --- a/develop-docs/sdk/research/performance/index.mdx +++ b/develop-docs/sdk/research/performance/index.mdx @@ -46,7 +46,7 @@ A similar situation appears on Mobile SDKs. There is a user expectation that con In both cases, everything was relatively fine when the SDK had to deal with reporting errors. With the added responsibility to track transactions and spans, the `scope` became a poor fit to store the current `span`, because it limits the existence of concurrent spans. -For Browser JavaScript, a possible solution is the use of [Zone.js](https://github.com/angular/angular/blob/master/packages/zone.js/README.md), part of the Angular framework. The main challenge is that it increases bundle size and may inadvertendly impact end user apps as it monkey-patches key parts of the JavaScript runtime engine. +For Browser JavaScript, a possible solution is the use of [Zone.js](https://github.com/angular/angular/blob/master/packages/zone.js/README.md), part of the Angular framework. The main challenge is that it increases bundle size and may inadvertently impact end user apps as it monkey-patches key parts of the JavaScript runtime engine. The scope propagation problem became especially apparent when we tried to create a simpler API for manual instrumentation. The idea was to expose a `Sentry.trace` function that would implicitly propagate tracing and scope data, and support deep nesting with sync and async code. @@ -238,7 +238,7 @@ The issues that follow in the next few sections have been identified in the curr In OpenTelemetry's model, all [spans follow the same logical format](https://github.com/open-telemetry/opentelemetry-proto/blob/ebef7c999f4dea62b5b033e92a221411c49c0966/opentelemetry/proto/trace/v1/trace.proto#L56-L235). Users and instrumentation libraries can provide more meaning to any span by attaching key-value attributes to it. The wire protocol uses lists of spans to send data from one system to another. -Sentry's model, unlike OpenTelemetry's, makes a hard distinction between two types of span: transaction spans (often refered to as "transactions") and regular spans. +Sentry's model, unlike OpenTelemetry's, makes a hard distinction between two types of span: transaction spans (often referred to as "transactions") and regular spans. In memory, transaction spans and regular spans have one distinction: transaction spans have one extra attribute, the transaction `name`. diff --git a/develop-docs/sdk/telemetry/logs.mdx b/develop-docs/sdk/telemetry/logs.mdx index e46c6dec72361..320790bb9c0e3 100644 --- a/develop-docs/sdk/telemetry/logs.mdx +++ b/develop-docs/sdk/telemetry/logs.mdx @@ -396,7 +396,7 @@ A new data category for logs has been added to Relay, `log_item`. Both the `log` ### Buffering -Logs should be buffered before being sent. SDKs should keep a buffer of logs on the client (so you can have logs from multiple traces in the buffer) that flushes out based on some kind of condition. We recommend to use follow the [batch processor specification outlined](/sdk/telemetry/spans/batch-processor/) in the develop docs, but you should choose the approach that works best for your platform. When starting intial development on the SDK you can choose a simple approach to buffer like flushing logs if the buffer length exceeds 100 items, or if 5 seconds have passed. +Logs should be buffered before being sent. SDKs should keep a buffer of logs on the client (so you can have logs from multiple traces in the buffer) that flushes out based on some kind of condition. We recommend to use follow the [batch processor specification outlined](/sdk/telemetry/spans/batch-processor/) in the develop docs, but you should choose the approach that works best for your platform. When starting initial development on the SDK you can choose a simple approach to buffer like flushing logs if the buffer length exceeds 100 items, or if 5 seconds have passed. SDKS should NOT release logging capabilities to users if a buffering implementation has not been added to their SDK when adding logging APIs. diff --git a/develop-docs/sdk/telemetry/sessions/index.mdx b/develop-docs/sdk/telemetry/sessions/index.mdx index 243e692db6e76..0754022146bfa 100644 --- a/develop-docs/sdk/telemetry/sessions/index.mdx +++ b/develop-docs/sdk/telemetry/sessions/index.mdx @@ -498,7 +498,7 @@ Single session is the general case, and is a good fit for (relatively short-live - user interacting with a mobile app - user loading a web site with their favorite browser -Session aggregates are used when sending individual sessions would be undesirable or unpractical. To constrain resource usage (namely memory and network), SDKs keep track of summary information about a batch of sessions that occured in the recent past, never actually having to deal with session objects representing the individual sessions that make up the aggregate. This mode is the choice for applications that run for an arbitrarily long time and handle larger throughputs for potentially multiple users, such as web servers, background job workers, etc. Note that for those types of application, a better definition of session matches the execution of a single HTTP request or task, instead of a single execution of the whole application process. +Session aggregates are used when sending individual sessions would be undesirable or unpractical. To constrain resource usage (namely memory and network), SDKs keep track of summary information about a batch of sessions that occurred in the recent past, never actually having to deal with session objects representing the individual sessions that make up the aggregate. This mode is the choice for applications that run for an arbitrarily long time and handle larger throughputs for potentially multiple users, such as web servers, background job workers, etc. Note that for those types of application, a better definition of session matches the execution of a single HTTP request or task, instead of a single execution of the whole application process. In either case, SDKs should create and report sessions by default, choosing to report them individually or as aggregates depending on the type of application. @@ -526,7 +526,7 @@ The program terminates with an unhandled promise rejection. Care must be taken to never attempt to send new session payloads to Sentry for a session that is already ended. For example, if the user manually ends the session with Hub.endSession(), there should not be any new updates to the session when the program terminates. -#### Session Atrributes and Mutability +#### Session Attributes and Mutability #### Sending Session to Sentry diff --git a/develop-docs/sdk/telemetry/traces/index.mdx b/develop-docs/sdk/telemetry/traces/index.mdx index b937c00c30a09..0575c8e44e935 100644 --- a/develop-docs/sdk/telemetry/traces/index.mdx +++ b/develop-docs/sdk/telemetry/traces/index.mdx @@ -282,7 +282,7 @@ There are multiple ways a transaction can end up with a sampling decision: If more than one option could apply, the following rules determine which takes precedence: -1. If a sampling decision is passed to `startTransaction` (`startTransaction({name: "my transaction", sampled: true})`), that decision will be used, regardlesss of anything else +1. If a sampling decision is passed to `startTransaction` (`startTransaction({name: "my transaction", sampled: true})`), that decision will be used, regardless of anything else 2. If `tracesSampler` is defined, its decision will be used. It can choose to keep or ignore any parent sampling decision, or use the sampling context data to make its own decision or choose a sample rate for the transaction. 3. If `tracesSampler` is not defined, but there's a parent sampling decision, the parent sampling decision will be used. 4. If `tracesSampler` is not defined and there's no parent sampling decision, `tracesSampleRate` will be used. diff --git a/develop-docs/sdk/telemetry/traces/modules/web-vitals.mdx b/develop-docs/sdk/telemetry/traces/modules/web-vitals.mdx index 106067ebe40cf..492c1a416bf9c 100644 --- a/develop-docs/sdk/telemetry/traces/modules/web-vitals.mdx +++ b/develop-docs/sdk/telemetry/traces/modules/web-vitals.mdx @@ -43,8 +43,8 @@ Web Vital metrics should be captured as measurements on the pageload transaction | Attribute | Description | |:--|:--| -| `transaction` | A low cardinality string of the page route that the INP event occured on. Can be a route template if applicable to the frontend platform. e.g., `"/settings/{project}/"` | -| `description` | If applicable, the selector string that identifies the element which the interaction occured on. e.g. `"Sidebar > span.user > a"` | +| `transaction` | A low cardinality string of the page route that the INP event occurred on. Can be a route template if applicable to the frontend platform. e.g., `"/settings/{project}/"` | +| `description` | If applicable, the selector string that identifies the element which the interaction occurred on. e.g. `"Sidebar > span.user > a"` | | `op` | `ui.interaction.click`, `ui.interaction.press`, `ui.interaction.hover`, or `ui.interaction.drag` | ### Measurements diff --git a/develop-docs/sdk/telemetry/traces/opentelemetry.mdx b/develop-docs/sdk/telemetry/traces/opentelemetry.mdx index 52d7994fa6a4e..622ef9ceb9191 100644 --- a/develop-docs/sdk/telemetry/traces/opentelemetry.mdx +++ b/develop-docs/sdk/telemetry/traces/opentelemetry.mdx @@ -39,7 +39,7 @@ This relies on a couple key assumptions. 1. Hub/Scope propagation works properly in your platform. This means that the hub used in `onStart` is the same hub used in `onEnd` and it means that hubs fork properly in async contexts. 2. The SDK is initialized before the OpenTelemetry SDK is initialized. -3. There will only be a single transaction occuring at the same time. This is a limitation of the current SDK design. +3. There will only be a single transaction occurring at the same time. This is a limitation of the current SDK design. ```ts import { SpanProcessor } from '@opentelemetry/sdk-trace-base'; diff --git a/develop-docs/sdk/telemetry/traces/span-data-conventions.mdx b/develop-docs/sdk/telemetry/traces/span-data-conventions.mdx index 55d89176bdfaa..b8f2e096e7804 100644 --- a/develop-docs/sdk/telemetry/traces/span-data-conventions.mdx +++ b/develop-docs/sdk/telemetry/traces/span-data-conventions.mdx @@ -6,7 +6,7 @@ The Span Interface specifies a series of _timed_ application events that have a The `data` field on the span is expected to follow [OpenTelemetry's semantic conventions for attributes](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/general/trace.md) as much as possible. -Keys on the `data` field should be lower-case and use underscores instead of camel-case. There are some exceptions to this, but these exist because of backwards compatability. +Keys on the `data` field should be lower-case and use underscores instead of camel-case. There are some exceptions to this, but these exist because of backwards compatibility. Below describes the conventions for the Span interface for the `data` field on the span that are currently used by the product or are important to bring up. diff --git a/develop-docs/sdk/telemetry/traces/span-operations.mdx b/develop-docs/sdk/telemetry/traces/span-operations.mdx index bd401be6a0237..a16b386bb1235 100644 --- a/develop-docs/sdk/telemetry/traces/span-operations.mdx +++ b/develop-docs/sdk/telemetry/traces/span-operations.mdx @@ -31,7 +31,7 @@ If a span operation is not provided, the value of `default` is set by Relay. The | ---------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | pageload | | A full page load of a web application. | | navigation | | Client-side browser history change in a web application. | -| resource | | Resource as per [Performance Resource Timing](https://w3c.github.io/resource-timing/#sec-performanceresourcetiming). Defaults to `resource.other` if resource cannot be indentified. | +| resource | | Resource as per [Performance Resource Timing](https://w3c.github.io/resource-timing/#sec-performanceresourcetiming). Defaults to `resource.other` if resource cannot be identified. | | | resource.script | | | | resource.link | | | | resource.css | | diff --git a/develop-docs/self-hosted/data-flow.mdx b/develop-docs/self-hosted/data-flow.mdx index ad727c2052273..856b3e7f444b6 100644 --- a/develop-docs/self-hosted/data-flow.mdx +++ b/develop-docs/self-hosted/data-flow.mdx @@ -89,7 +89,7 @@ graph LR ### Event Processing Pipeline 1. The `snuba-consumer` service consumes events from `events` topic and processes them. After the events are written to clickhouse, snuba publishes error & transaction events to `post-process-forwarder`. -2. The Sentry `post-process-forwarder` consumer consumes messages and spawns a `post_process_group` task for each processed error & issue occurance. +2. The Sentry `post-process-forwarder` consumer consumes messages and spawns a `post_process_group` task for each processed error & issue occurrence. ### Web User Interface diff --git a/develop-docs/self-hosted/experimental/reverse-proxy.mdx b/develop-docs/self-hosted/experimental/reverse-proxy.mdx index c60dc962f9091..b2995157515d9 100644 --- a/develop-docs/self-hosted/experimental/reverse-proxy.mdx +++ b/develop-docs/self-hosted/experimental/reverse-proxy.mdx @@ -75,7 +75,7 @@ server { # You can also only expose the ingest endpoints only, # by removing the other `location` directive. # - # It is recomended to put a rate limiter on the ingest endpoints. + # It is recommended to put a rate limiter on the ingest endpoints. location ~ ^/api/[0-9]+/(envelope|minidump|security|store|unreal)/ { add_header Access-Control-Allow-Origin * always; add_header Access-Control-Allow-Credentials false always; @@ -126,7 +126,7 @@ sentry.yourcompany.com { # You can also only expose the ingest endpoints only, # by removing the other `handle` directive. # - # It is recomended to put a rate limiter on the ingest endpoints. + # It is recommended to put a rate limiter on the ingest endpoints. @ingest_endpoint path_regexp ^/api/[0-9]+/(envelope|minidump|security|store|unreal)/ handle @ingest_endpoint { @@ -180,7 +180,7 @@ For detailed documentation on Caddyfile configuration, see [Caddy documentation] ### Traefik -[Traefik](https://doc.traefik.io/traefik/) is another reverse proxy that provides a lot of plugin and integrations out of the box. It automatically handles TLS certificate management via ACME, too. After you [install Traefik](https://doc.traefik.io/traefik/getting-started/install-traefik/), add a configuration to Traefik as follows (this example is using the YAML file provider, convert to your prefered configuration provider as needed). +[Traefik](https://doc.traefik.io/traefik/) is another reverse proxy that provides a lot of plugin and integrations out of the box. It automatically handles TLS certificate management via ACME, too. After you [install Traefik](https://doc.traefik.io/traefik/getting-started/install-traefik/), add a configuration to Traefik as follows (this example is using the YAML file provider, convert to your preferred configuration provider as needed). The configuration below is intended for Traefik v3 with a File Provider. @@ -191,7 +191,7 @@ http: # You can also only expose the ingest endpoints only, # by removing the other `handle` directive. # - # It is recomended to put a rate limiter on the ingest endpoints. + # It is recommended to put a rate limiter on the ingest endpoints. sentry-ingest: entryPoints: - web # Assuming this your HTTP entrypoint @@ -306,7 +306,7 @@ frontend https_bind # You can also only expose the ingest endpoints only, # by removing the other `handle` directive. # - # It is recomended to put a rate limiter on the ingest endpoints. + # It is recommended to put a rate limiter on the ingest endpoints. use_backend sentry_ingest if sentry_domain ingest_endpoint use_backend sentry if sentry_domain diff --git a/develop-docs/self-hosted/sso.mdx b/develop-docs/self-hosted/sso.mdx index 5720330af603e..36cf42a2ad2d4 100644 --- a/develop-docs/self-hosted/sso.mdx +++ b/develop-docs/self-hosted/sso.mdx @@ -66,7 +66,7 @@ If the form above does not work for you, you need the following settings for you | Webhook secret | "my-super-secret-example-secret" | - Don't forget to replace all occurances of {'${urlPrefix}'} with your own url prefix. + Don't forget to replace all occurrences of {'${urlPrefix}'} with your own url prefix. When prompted for permissions, choose the following: diff --git a/develop-docs/services/chartcuterie.mdx b/develop-docs/services/chartcuterie.mdx index ff174d090bd09..fc00b71d2d4a9 100644 --- a/develop-docs/services/chartcuterie.mdx +++ b/develop-docs/services/chartcuterie.mdx @@ -43,7 +43,7 @@ chart_url = generate_chart(ChartType.MY_CHART_TYPE, data) ## Configuring charts for rendering -Chartcuterie loads an external JavaScirpt module from sentry.io which +Chartcuterie loads an external JavaScript module from sentry.io which determines how it renders charts. This module directly configures EChart's [`options`](https://echarts.apache.org/en/option.html) object, including transformations on the series data provided to Chartcuterie upon a `POST /render` @@ -56,7 +56,7 @@ This module lives as part of getsentry/sentry, and can be found in It is possible to configure an optional initialization function `init` that runs when the service starts. This function has access to Chartcuterie's global -echarts object and can be used register utilites to it ([`registerMaps`](https://echarts.apache.org/en/api.html#echarts.registerMap), +echarts object and can be used register utilities to it ([`registerMaps`](https://echarts.apache.org/en/api.html#echarts.registerMap), for example). ### Adding / removing chart types diff --git a/develop-docs/services/filestore.mdx b/develop-docs/services/filestore.mdx index 8aa9954f902fb..4745b23cab444 100644 --- a/develop-docs/services/filestore.mdx +++ b/develop-docs/services/filestore.mdx @@ -26,7 +26,7 @@ filestore.options: ## Amazon S3 Backend -The S3 storage backend supports authentication either by using an access key or by IAM instance roles. When using the latter, omit `access_key` and `secret_key`. By default, S3 objects are created with the `public-read` ACL which means that the account/role used must have the `PutObjectAcl` permission in addition to `PutObject`, along with `GetObject` and `DeleteObject`. If you don't want your uploaded files to be publically-accessible you can set `default_acl` to `private`. +The S3 storage backend supports authentication either by using an access key or by IAM instance roles. When using the latter, omit `access_key` and `secret_key`. By default, S3 objects are created with the `public-read` ACL which means that the account/role used must have the `PutObjectAcl` permission in addition to `PutObject`, along with `GetObject` and `DeleteObject`. If you don't want your uploaded files to be publicly-accessible you can set `default_acl` to `private`. ```yaml filestore.backend: "s3" diff --git a/docs/cli/crons.mdx b/docs/cli/crons.mdx index 49c74c38cdd4e..eba6b12d8c246 100644 --- a/docs/cli/crons.mdx +++ b/docs/cli/crons.mdx @@ -60,7 +60,7 @@ sentry-cli monitors run my-monitor-slug -- node path/to/file.js You can also use the Sentry CLI to create or update your cron monitor when you run your job. This way, you can avoid having to first set up the monitor through the Sentry web interface. -Configure the cron monitor by providing the cron schdule in crontab format using the `--schedule` or the equivalent `-s` argument when executing the `sentry cli monitors run` command. Please make sure to enclose the schedule in quotes, so that your shell parses the argument correctly, like so: +Configure the cron monitor by providing the cron schedule in crontab format using the `--schedule` or the equivalent `-s` argument when executing the `sentry cli monitors run` command. Please make sure to enclose the schedule in quotes, so that your shell parses the argument correctly, like so: ```bash sentry-cli monitors run --schedule "" -- diff --git a/docs/concepts/data-management/event-grouping/fingerprint-rules.mdx b/docs/concepts/data-management/event-grouping/fingerprint-rules.mdx index 3ba1b1790b09a..caba4f2d3bdd8 100644 --- a/docs/concepts/data-management/event-grouping/fingerprint-rules.mdx +++ b/docs/concepts/data-management/event-grouping/fingerprint-rules.mdx @@ -140,7 +140,7 @@ Matches on the value of the tag `tag_name`. This can be useful to filter down ce tags.server_name:"canary-*.mycompany.internal" -> canary-events ``` -Additionally, the folowing utility matchers are available: +Additionally, the following utility matchers are available: ### `app` diff --git a/docs/concepts/data-management/size-limits.mdx b/docs/concepts/data-management/size-limits.mdx index 9a63c30a76768..b1b846a9bfd10 100644 --- a/docs/concepts/data-management/size-limits.mdx +++ b/docs/concepts/data-management/size-limits.mdx @@ -13,7 +13,7 @@ The following describes how Sentry treats size limits: - Events, attachments, and requests exceeding payload size limits are immediately dropped with a `413 Payload Too Large` error. - Sentry allows compressed content encoding, and applies separate limits before and after decompression. - Events that exceed 200KB compressed or 1MB decompressed will be rejected. -- Minidump uploads that exceeed 20MB compressed or 100MB decompressed (for all files combined) will also be rejected. +- Minidump uploads that exceed 20MB compressed or 100MB decompressed (for all files combined) will also be rejected. - Event fields exceeding the individual size limits are trimmed and truncated afterwards. - The number of events rejected due to size limits is counted towards the _Dropped_ category in [usage stats](/product/stats/#usage-stats). diff --git a/docs/concepts/key-terms/tracing/index.mdx b/docs/concepts/key-terms/tracing/index.mdx index fcf4399afdf5e..075211d5ab1c4 100644 --- a/docs/concepts/key-terms/tracing/index.mdx +++ b/docs/concepts/key-terms/tracing/index.mdx @@ -47,7 +47,7 @@ You can view all the traces in your organization by going to the [Traces](https: If you want more information, click on any trace ID. This will take you to the [Trace View](/concepts/key-terms/tracing/trace-view/) page, which provides a more detailed view of the trace and its spans. Here, you'll see a waterfall view of the spans in the trace, which will show you how much time each service and operation took to complete, and may give you an indicator of where a problem may originate. -![A detailed view of the Senty Traces page showing an expaned trace and spans](./img/Trace-view-page.png) +![A detailed view of the Sentry Traces page showing an expanded trace and spans](./img/Trace-view-page.png) Alternatively, you can use the search bar to look for spans by name, project, or other criteria. You can also use the tags section to filter spans by specific tags. Learn more about the Sentry [Trace Explorer](/product/explore/traces/). diff --git a/docs/concepts/search/searchable-properties/index.mdx b/docs/concepts/search/searchable-properties/index.mdx index 2038a98ecd9cf..bd1cef020d9fe 100644 --- a/docs/concepts/search/searchable-properties/index.mdx +++ b/docs/concepts/search/searchable-properties/index.mdx @@ -4,7 +4,7 @@ description: "Learn more about searchable properties." sidebar_order: 10 --- -Sentry's search provides you with reserved keywords, like `is`, `user`, `server`, and `browser`, that you can use to search on the properties of issues, events and replays (as well as the special case of releases). You can also create [custom tags](#custom-tags) on which to search. This page provides guidance for how to use these properties and links you to the respective seachable property lists. +Sentry's search provides you with reserved keywords, like `is`, `user`, `server`, and `browser`, that you can use to search on the properties of issues, events and replays (as well as the special case of releases). You can also create [custom tags](#custom-tags) on which to search. This page provides guidance for how to use these properties and links you to the respective searchable property lists. ## Search Properties diff --git a/docs/concepts/search/searchable-properties/issues.mdx b/docs/concepts/search/searchable-properties/issues.mdx index 814df4dc662ea..99499380f3e6f 100644 --- a/docs/concepts/search/searchable-properties/issues.mdx +++ b/docs/concepts/search/searchable-properties/issues.mdx @@ -18,7 +18,7 @@ You'll only need to use query syntax for **datetime** and **relative time** sear ### `age` -Returns issues created since the time defined by the value. The syntax is similar to the Unix find command. Supported suffixes: `m - minutes`, `h - hours`, `d - days`, `w - weeks`. For example, `age:-24h` returns isssues that are new in the last 24 hours, while `age:+12h` returns ones that are older than 12 hours. Entering `age:+12h age:-24h` would return issues created between 12 and 24 hours ago. +Returns issues created since the time defined by the value. The syntax is similar to the Unix find command. Supported suffixes: `m - minutes`, `h - hours`, `d - days`, `w - weeks`. For example, `age:-24h` returns issues that are new in the last 24 hours, while `age:+12h` returns ones that are older than 12 hours. Entering `age:+12h age:-24h` would return issues created between 12 and 24 hours ago. - **Type:** relative time diff --git a/docs/contributing/environment.mdx b/docs/contributing/environment.mdx index 736c71999740b..2d8a85bedef8b 100644 --- a/docs/contributing/environment.mdx +++ b/docs/contributing/environment.mdx @@ -54,3 +54,26 @@ Additionally we use prettier to format our code and markdown. Run prettier if yo ```bash yarn lint:prettier:fix ``` + +### Running typos locally + +We use [typos](https://github.com/crate-ci/typos) to check for spelling errors. + +**Option 1: Via pre-commit** + +```bash +make develop # Sets up pre-commit hooks +pre-commit run typos --all-files +``` + +**Option 2: Direct command** + +First, install typos: +- macOS/Linux: `brew install typos-cli` +- Cross-platform: `cargo install typos-cli` (requires Rust) +- Or download from [GitHub releases](https://github.com/crate-ci/typos/releases) + +Then run: +```bash +yarn lint:typos +``` diff --git a/docs/contributing/pages/variables.mdx b/docs/contributing/pages/variables.mdx index aeaf8648bdab3..f86daf11c4908 100644 --- a/docs/contributing/pages/variables.mdx +++ b/docs/contributing/pages/variables.mdx @@ -9,7 +9,7 @@ The variables available are globally scoped and configured within `remark-variab For example: -```markdown {tabTitle:Replacment} +```markdown {tabTitle:Replacement} JavaScript SDK: {{@inject packages.version("sentry.javascript.browser") }} ``` diff --git a/docs/organization/authentication/sso/ping-sso.mdx b/docs/organization/authentication/sso/ping-sso.mdx index a8913c1d6b3f0..54b1c4bdc0908 100644 --- a/docs/organization/authentication/sso/ping-sso.mdx +++ b/docs/organization/authentication/sso/ping-sso.mdx @@ -15,7 +15,7 @@ If you change your organization slug, you'll need to make the same update in the 1. Log in to [Ping Identity](https://www.pingidentity.com/en/account/sign-on.html). -1. Go to the "Adminstrators" environment for your organization. +1. Go to the "Administrators" environment for your organization. 1. If you don't require a permission group for Sentry, skip to step 5. diff --git a/docs/organization/dynamic-sampling/index.mdx b/docs/organization/dynamic-sampling/index.mdx index 436c9ab67916d..1ceff9a55fcc7 100644 --- a/docs/organization/dynamic-sampling/index.mdx +++ b/docs/organization/dynamic-sampling/index.mdx @@ -110,7 +110,7 @@ Because [distributed traces](/product/tracing/#whats-distributed-tracing) can or For example, if a trace starts in your frontend application, the sample rate you've set there will apply to a connected backend application that's part of the same trace. The same rule applies if the trace starts in a backend application. -If you navigate to the [project preview](https://sentry.io/orgredirect/organizations/:orgslug/settings/dynamic-sampling/) table, you'll see the number of sent spans next to the origin project where the trace started. This includes any spans from propogated traces in other projects that are connected to the origin project. This gives you a direct view of how many spans will be affected by the sample rates you configure. To see the span counts broken down by the project they belong to, click the expand icon to the left of each project in the preview. +If you navigate to the [project preview](https://sentry.io/orgredirect/organizations/:orgslug/settings/dynamic-sampling/) table, you'll see the number of sent spans next to the origin project where the trace started. This includes any spans from propagated traces in other projects that are connected to the origin project. This gives you a direct view of how many spans will be affected by the sample rates you configure. To see the span counts broken down by the project they belong to, click the expand icon to the left of each project in the preview. ![Diagram showing the effect of dynamic sampling on distriubuted traces](./img/client-to-backend-accumulated-sampling-effect.png) diff --git a/docs/organization/integrations/cloud-monitoring/aws-lambda/index.mdx b/docs/organization/integrations/cloud-monitoring/aws-lambda/index.mdx index 09b4e14eebd08..c2aaa4e90c22a 100644 --- a/docs/organization/integrations/cloud-monitoring/aws-lambda/index.mdx +++ b/docs/organization/integrations/cloud-monitoring/aws-lambda/index.mdx @@ -60,7 +60,7 @@ Wait a few minutes as the Lambda functions are enabled. If any functions failed ### Troubleshooting -If you need help solving issues with your Sentry AWS Lamba integration, you can read the edge cases documented here. If you need additional help, you can [ask on GitHub](https://github.com/getsentry/sentry-javascript/issues/new/choose). Customers on a paid plan may also contact support. +If you need help solving issues with your Sentry AWS Lambda integration, you can read the edge cases documented here. If you need additional help, you can [ask on GitHub](https://github.com/getsentry/sentry-javascript/issues/new/choose). Customers on a paid plan may also contact support. - #### Error `SentryRole already exists` diff --git a/docs/organization/integrations/data-visualization/grafana.mdx b/docs/organization/integrations/data-visualization/grafana.mdx index 03eb386237731..b5617df34238b 100644 --- a/docs/organization/integrations/data-visualization/grafana.mdx +++ b/docs/organization/integrations/data-visualization/grafana.mdx @@ -1,7 +1,7 @@ --- title: Grafana sidebar_order: 1 -description: "Learn about Sentry's Grafana integration, which alows 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." --- diff --git a/docs/organization/integrations/deployment/vercel/index.mdx b/docs/organization/integrations/deployment/vercel/index.mdx index f160d5c67001f..4308de4d75ac2 100644 --- a/docs/organization/integrations/deployment/vercel/index.mdx +++ b/docs/organization/integrations/deployment/vercel/index.mdx @@ -43,7 +43,7 @@ Sentry owner, manager, or admin permissions are required to install this integra ### Configure -Use Vercel to [link projects](#project-linking) for uploading source maps and notifiying Sentry of release deployment. +Use Vercel to [link projects](#project-linking) for uploading source maps and notifying Sentry of release deployment. #### Project Linking diff --git a/docs/organization/integrations/integration-platform/webhooks/issues.mdx b/docs/organization/integrations/integration-platform/webhooks/issues.mdx index 97e6dc6811487..5201321a3c237 100644 --- a/docs/organization/integrations/integration-platform/webhooks/issues.mdx +++ b/docs/organization/integrations/integration-platform/webhooks/issues.mdx @@ -52,11 +52,11 @@ A status can mean multiple things, so substatus gives more details about the sta * `inRelease`: The release that the resolution is in (for example, `latest`) * `inNextRelease`: `True` if the resolution will be in the next release * `inCommit`: Includes information about the resolution commit (such as `repository` and `commit`) -* `ignoreCount`: Maximum number of occurences in for an archived issue before it gets escalated -* `ignoreWindow`: Used with `ignoreCount` indicating the number of minutes that `ignoreCount` occurences will be ignored -* `ignoreUserCount`: Maximun number of users who are affected by an archived issue before it gets escalated +* `ignoreCount`: Maximum number of occurrences in for an archived issue before it gets escalated +* `ignoreWindow`: Used with `ignoreCount` indicating the number of minutes that `ignoreCount` occurrences will be ignored +* `ignoreUserCount`: Maximum number of users who are affected by an archived issue before it gets escalated * `ignoreUserWindow`: Used with `ignoreUserCount` indicating the number of minutes that `ignoreUserCount` affected users will be ignored -* `ignoreDuration`: The duration (in minutes) that an archived issue should be ignored before it gets escalated. Increase in the number of users affected or the number of occurences will not escalate before this duration has passed unless there is a spike. To learn more about how this works, see [Escalating Issues Algorithm](/product/issues/states-triage/escalating-issues/). +* `ignoreDuration`: The duration (in minutes) that an archived issue should be ignored before it gets escalated. Increase in the number of users affected or the number of occurrences will not escalate before this duration has passed unless there is a spike. To learn more about how this works, see [Escalating Issues Algorithm](/product/issues/states-triage/escalating-issues/). ```json { diff --git a/docs/platforms/android/migration/index.mdx b/docs/platforms/android/migration/index.mdx index 1d8ead2b09b8b..696c69cf0fd9a 100644 --- a/docs/platforms/android/migration/index.mdx +++ b/docs/platforms/android/migration/index.mdx @@ -78,7 +78,7 @@ You may also use `LifecycleHelper.close(token)`, e.g. in case you need to pass t - `Sentry.popScope` has been deprecated, please call `.close()` on the token returned by `Sentry.pushScope` instead or use it in a way described in more detail in "Migration Guide". - We have chosen a default scope that is used for `Sentry.configureScope()` as well as for APIs like `Sentry.setTag()` - For Android the type defaults to `CURRENT` scope - - For Backend and other JVM applicatons it defaults to `ISOLATION` scope + - For Backend and other JVM applications it defaults to `ISOLATION` scope - Event processors on `Scope` can now be ordered by overriding the `getOrder` method on implementations of `EventProcessor`. NOTE: This order only applies to event processors on `Scope` but not `SentryOptions` at the moment. Feel free to request this if you need it. - `Hub` is deprecated in favor of `Scopes`, alongside some `Hub` relevant APIs. More details can be found in the "Migration Guide" section. - (Android) The JNI layer for sentry-native has now been moved from sentry-java to sentry-native ([#3189](https://github.com/getsentry/sentry-java/pull/3189)) diff --git a/docs/platforms/apple/common/troubleshooting/index.mdx b/docs/platforms/apple/common/troubleshooting/index.mdx index 1ca3bc9ad0b96..0767c2611c03d 100644 --- a/docs/platforms/apple/common/troubleshooting/index.mdx +++ b/docs/platforms/apple/common/troubleshooting/index.mdx @@ -84,7 +84,7 @@ class RoomPlanWrapper { ``` You can fix this by excluding the above class from swizzling by using `swizzleClassNameExcludes`, -which is availabe with Sentry Cocoa SDK version `8.23.0` and above: +which is available with Sentry Cocoa SDK version `8.23.0` and above: ```swift SentrySDK.start { options in diff --git a/docs/platforms/apple/common/usage/in-app-frames/index.mdx b/docs/platforms/apple/common/usage/in-app-frames/index.mdx index c5230995beefe..0f2a4b94c42f4 100644 --- a/docs/platforms/apple/common/usage/in-app-frames/index.mdx +++ b/docs/platforms/apple/common/usage/in-app-frames/index.mdx @@ -6,7 +6,7 @@ sidebar_order: 40 The main executable and frameworks inside the application bundle will be marked as `inApp`, while well known and public frameworks such as UIKitCore, CoreFoundation, GraphicsServices, and so forth will be marked as `not inApp`. -To fine-tune this behaviour, define [Stack Trace Rules](/concepts/data-management/event-grouping/stack-trace-rules/#stack-trace-rules) for your project. This will alow you to mark specific frameworks as `inApp` or `not inApp`, depending on whether you consider them part of your business logic, or third party dependencies. For reference, you can read up on the [default stack trace rules](https://github.com/getsentry/sentry/blob/20b05fc91a4ad6783bff1875327f4570bcfb5d00/src/sentry/grouping/enhancer/enhancement-configs/newstyle%402023-01-11.txt#L4). +To fine-tune this behaviour, define [Stack Trace Rules](/concepts/data-management/event-grouping/stack-trace-rules/#stack-trace-rules) for your project. This will allow you to mark specific frameworks as `inApp` or `not inApp`, depending on whether you consider them part of your business logic, or third party dependencies. For reference, you can read up on the [default stack trace rules](https://github.com/getsentry/sentry/blob/20b05fc91a4ad6783bff1875327f4570bcfb5d00/src/sentry/grouping/enhancer/enhancement-configs/newstyle%402023-01-11.txt#L4). {/* diff --git a/docs/platforms/apple/common/user-feedback/configuration/index.mdx b/docs/platforms/apple/common/user-feedback/configuration/index.mdx index 56ee0c9eef5c2..74288df193892 100644 --- a/docs/platforms/apple/common/user-feedback/configuration/index.mdx +++ b/docs/platforms/apple/common/user-feedback/configuration/index.mdx @@ -151,7 +151,7 @@ SentrySDK.start { options in ### Accessibility -The Feedback widget is designed to be accessible, with a set of default accessibility labels that can be overriden. The following attributes are set to ensure the widget is accessible: +The Feedback widget is designed to be accessible, with a set of default accessibility labels that can be overridden. The following attributes are set to ensure the widget is accessible: #### `SentryUserFeedbackWidgetConfiguration` diff --git a/docs/platforms/dart/common/migration/index.mdx b/docs/platforms/dart/common/migration/index.mdx index d4c68281c4916..acdd2f587495d 100644 --- a/docs/platforms/dart/common/migration/index.mdx +++ b/docs/platforms/dart/common/migration/index.mdx @@ -8,7 +8,7 @@ description: "Migrate between versions of Sentry's SDK for Dart." #### Dart version -The required minimium Dart version is now `3.5.0`. +The required minimum Dart version is now `3.5.0`. This change allows us to use safer APIs and better support for features such as WASM compilation. #### API Removals and Renames @@ -67,7 +67,7 @@ API changes: - `isolate` replaced with `SentryThread#name`. - The following fields have been removed from the `Scope` class and replaced: - `user(SentryUser? user)` replaced with `setUser(SentryUser? user)`. - - `attachements` replaced with `attachments`. + - `attachments` replaced with `attachments`. - Classes or methods that used to take the below optional parameters, have been moved to the `SentryOptions` class and replaced: - `captureFailedRequests` replaced with `SentryOptions#captureFailedRequests`. - `sendDefaultPii` replaced with `SentryOptions#sendDefaultPii`. @@ -103,7 +103,7 @@ Future main() async { - The `Scope.user` setter was deprecated in favor of `Scope.setUser`, and it will be removed in a future update. -- The `Scope.attachements` getter was deprecated in favor of `attachments`, and it will be removed in a future update. +- The `Scope.attachments` getter was deprecated in favor of `attachments`, and it will be removed in a future update. - The following `Scope` methods now return `Future` instead of `void`: - `setContexts` diff --git a/docs/platforms/dart/guides/flutter/user-feedback/index.mdx b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx index 5b221df6ac2ab..ef658ff067957 100644 --- a/docs/platforms/dart/guides/flutter/user-feedback/index.mdx +++ b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx @@ -102,7 +102,7 @@ The following table lists all the options you can customize to change behavior o | showBranding | Bool | true | Displays the Sentry logo inside the form. | | showCaptureScreenshot | Bool | true | Displays the capture screenshot button on the feedback form. | -You can also provide differnt labels or localization for the feedback widget: +You can also provide different labels or localization for the feedback widget: | Option | Type | Default | Description | | - | - | - | - | diff --git a/docs/platforms/dotnet/common/profiling/index.mdx b/docs/platforms/dotnet/common/profiling/index.mdx index 74f46dfa067cd..9e1b5ec69ee44 100644 --- a/docs/platforms/dotnet/common/profiling/index.mdx +++ b/docs/platforms/dotnet/common/profiling/index.mdx @@ -50,7 +50,7 @@ SentrySdk.Init(options => // We recommend adjusting this value in production. options.TracesSampleRate = 1.0; - // Sample rate for profiling, applied on top of othe TracesSampleRate, + // Sample rate for profiling, applied on top of other TracesSampleRate, // e.g. 0.2 means we want to profile 20 % of the captured transactions. // We recommend adjusting this value in production. options.ProfilesSampleRate = 1.0; diff --git a/docs/platforms/dotnet/guides/log4net/index.mdx b/docs/platforms/dotnet/guides/log4net/index.mdx index 70a05339ab3b4..31712fac53d06 100644 --- a/docs/platforms/dotnet/guides/log4net/index.mdx +++ b/docs/platforms/dotnet/guides/log4net/index.mdx @@ -52,7 +52,7 @@ In the example above, the `SendIdentity` flag was switched on. The SDK then will Also in the example above, you can find the DSN being set. That will instruct the `SentryAppender` to initialize the SDK. -This is only one of the ways to initialize the SDK. If you wish to configure the SDK programatically, you could **leave the DSN out** from the appender configuration section. The SDK needs to be initialized only **once** and since other integrations (like ASP.NET) are also able to initialize the SDK, you only need to pass the DSN to one of these integrations. +This is only one of the ways to initialize the SDK. If you wish to configure the SDK programmatically, you could **leave the DSN out** from the appender configuration section. The SDK needs to be initialized only **once** and since other integrations (like ASP.NET) are also able to initialize the SDK, you only need to pass the DSN to one of these integrations. One common case to not add the DSN to the XML configuration file (which would initialize it via the log4net integration) is to have full access to the [SDK option](/platforms/dotnet/guides/log4net/configuration/options/). ## Verify diff --git a/docs/platforms/dotnet/guides/maui/index.mdx b/docs/platforms/dotnet/guides/maui/index.mdx index ae6fb9c37896f..50201bf4e2987 100644 --- a/docs/platforms/dotnet/guides/maui/index.mdx +++ b/docs/platforms/dotnet/guides/maui/index.mdx @@ -100,7 +100,7 @@ Use caution when enabling, as such values may contain personally identifiable in #### IncludeTitleInBreadcrumbs -This option contols whether elements that implement the `ITitledElement` interface (such as `Window`, `Page`, and others) will have their titles included on breadcrumbs. This option is disabled by default. +This option controls whether elements that implement the `ITitledElement` interface (such as `Window`, `Page`, and others) will have their titles included on breadcrumbs. This option is disabled by default. diff --git a/docs/platforms/dotnet/guides/winforms/index.mdx b/docs/platforms/dotnet/guides/winforms/index.mdx index 5f8fb7c72427b..20b2ccd6b7d6d 100644 --- a/docs/platforms/dotnet/guides/winforms/index.mdx +++ b/docs/platforms/dotnet/guides/winforms/index.mdx @@ -20,7 +20,7 @@ Select which Sentry features you'd like to install in addition to Error Monitori ## Configure -After adding the NuGet package, the SDK should be initialized in the program's main entry point, before launching any forms or performing signifanct work. The options for initialization vary by language. +After adding the NuGet package, the SDK should be initialized in the program's main entry point, before launching any forms or performing significant work. The options for initialization vary by language. ### C# Initialization diff --git a/docs/platforms/godot/enriching-events/screenshots/index.mdx b/docs/platforms/godot/enriching-events/screenshots/index.mdx index 804e5edab77bc..800f187cb7e76 100644 --- a/docs/platforms/godot/enriching-events/screenshots/index.mdx +++ b/docs/platforms/godot/enriching-events/screenshots/index.mdx @@ -22,7 +22,7 @@ Because screenshots may contain configuring things programatically: +Or, like so, if you're configuring things programmatically: ```GDScript SentrySDK.init(func(options: SentryOptions) -> void: diff --git a/docs/platforms/java/common/migration/7.x-to-8.0.mdx b/docs/platforms/java/common/migration/7.x-to-8.0.mdx index 4096ccb5dbc1f..ac6fd83a66029 100644 --- a/docs/platforms/java/common/migration/7.x-to-8.0.mdx +++ b/docs/platforms/java/common/migration/7.x-to-8.0.mdx @@ -82,7 +82,7 @@ You may also use `LifecycleHelper.close(token)`, e.g. in case you need to pass t - `Sentry.popScope` has been deprecated, please call `.close()` on the token returned by `Sentry.pushScope` instead or use it in a way described in more detail in "Migration Guide". - We have chosen a default scope that is used for `Sentry.configureScope()` as well as for APIs like `Sentry.setTag()` - For Android the type defaults to `CURRENT` scope - - For Backend and other JVM applicatons it defaults to `ISOLATION` scope + - For Backend and other JVM applications it defaults to `ISOLATION` scope - Event processors on `Scope` can now be ordered by overriding the `getOrder` method on implementations of `EventProcessor`. NOTE: This order only applies to event processors on `Scope` but not `SentryOptions` at the moment. Feel free to request this if you need it. - `Hub` is deprecated in favor of `Scopes`, alongside some `Hub` relevant APIs. More details can be found in the "Migration Guide" section. - (Android) The JNI layer for sentry-native has now been moved from sentry-java to sentry-native ([#3189](https://github.com/getsentry/sentry-java/pull/3189)) diff --git a/docs/platforms/java/common/troubleshooting/sentry-cli-execution-failure/index.mdx b/docs/platforms/java/common/troubleshooting/sentry-cli-execution-failure/index.mdx index de42caa3baf97..edc7354353496 100644 --- a/docs/platforms/java/common/troubleshooting/sentry-cli-execution-failure/index.mdx +++ b/docs/platforms/java/common/troubleshooting/sentry-cli-execution-failure/index.mdx @@ -24,7 +24,7 @@ You might see similar lines in the logs: ``` [ERROR] Error while attempting to run Sentry CLI: -org.apache.maven.plugin.MojoExecutionException: An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program "/bin/sh" [...] +org.apache.maven.plugin.MojoExecutionException: An Ant BuildException has occurred: Execute failed: java.io.IOException: Cannot run program "/bin/sh" [...] ``` ## Solution diff --git a/docs/platforms/javascript/common/best-practices/micro-frontends.mdx b/docs/platforms/javascript/common/best-practices/micro-frontends.mdx index 2baa48933f9b7..b5b2188cdff7b 100644 --- a/docs/platforms/javascript/common/best-practices/micro-frontends.mdx +++ b/docs/platforms/javascript/common/best-practices/micro-frontends.mdx @@ -220,7 +220,7 @@ will return matches for errors, transactions, and replays. If you want more control to be able to explicitly specify the destination for each individual `captureException`, you can use the more advanced interface multiplexed transport offers. -equires SDK version `7.59.0` or higher. +Requires SDK version `7.59.0` or higher. The example below uses a `feature` tag to determine which Sentry project to send the event to. If the event doesn't have a `feature` tag, we send it to the diff --git a/docs/platforms/javascript/common/configuration/integrations/graphql.mdx b/docs/platforms/javascript/common/configuration/integrations/graphql.mdx index 1cf6028568fd5..6d29052901475 100644 --- a/docs/platforms/javascript/common/configuration/integrations/graphql.mdx +++ b/docs/platforms/javascript/common/configuration/integrations/graphql.mdx @@ -55,7 +55,7 @@ _Type: `boolean`_ If spans for resolver functions should not be created. Default is `true`. -### `ignoreTrivalResolveSpans` +### `ignoreTrivialResolveSpans` _Type: `boolean`_ diff --git a/docs/platforms/javascript/common/migration/v7-to-v8/v8-opentelemetry.mdx b/docs/platforms/javascript/common/migration/v7-to-v8/v8-opentelemetry.mdx index 863910642773a..b0daca3c47bcd 100644 --- a/docs/platforms/javascript/common/migration/v7-to-v8/v8-opentelemetry.mdx +++ b/docs/platforms/javascript/common/migration/v7-to-v8/v8-opentelemetry.mdx @@ -93,7 +93,7 @@ provider.addSpanProcessor(new SentrySpanProcessor()); // We need a custom propagator and context manager // This enables distributed tracing and context isolation -provier.register({ +provider.register({ propagator: new SentryPropagator(), contextManager: new SentryContextManager(), }); diff --git a/docs/platforms/javascript/common/opentelemetry/custom-setup.mdx b/docs/platforms/javascript/common/opentelemetry/custom-setup.mdx index bcf3543a101a0..531f98c805bd0 100644 --- a/docs/platforms/javascript/common/opentelemetry/custom-setup.mdx +++ b/docs/platforms/javascript/common/opentelemetry/custom-setup.mdx @@ -160,7 +160,7 @@ Additionally, there are a few pitfalls that can very simply be avoided by regist "javascript.tanstackstart-react", ]} > - + Learn more about ESM installation methods. diff --git a/docs/platforms/javascript/common/session-replay/troubleshooting.mdx b/docs/platforms/javascript/common/session-replay/troubleshooting.mdx index 4fa4838d13601..1a70d484e3825 100644 --- a/docs/platforms/javascript/common/session-replay/troubleshooting.mdx +++ b/docs/platforms/javascript/common/session-replay/troubleshooting.mdx @@ -39,9 +39,9 @@ There are a few cases where the replay playback won't match the look of your app -Canvas is supported in SDK versions >= `7.98.0`. Please see the canvas setup documention to get started with canvas recordings. +Canvas is supported in SDK versions >= `7.98.0`. Please see the canvas setup documentation to get started with canvas recordings. -If you are on a supported SDK version and your `canvas` elements still aren't getting captured, check if you have images or videos loaded from foreign origins inside your `canvas`. Any data loaded from an origin without CORS approval is not considered secure and will throw a `SecurityError` when trying to use the replay canvas integration. To fix this issue, set `crossorigin="anonymous"` to your images or videos. This will allow images that are loaded from foreign origins to be used in `canvas` as if they have been loaded from the current origin. See the [CORS documention](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image#security_and_tainted_canvases) for more information about cross-origin access. +If you are on a supported SDK version and your `canvas` elements still aren't getting captured, check if you have images or videos loaded from foreign origins inside your `canvas`. Any data loaded from an origin without CORS approval is not considered secure and will throw a `SecurityError` when trying to use the replay canvas integration. To fix this issue, set `crossorigin="anonymous"` to your images or videos. This will allow images that are loaded from foreign origins to be used in `canvas` as if they have been loaded from the current origin. See the [CORS documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image#security_and_tainted_canvases) for more information about cross-origin access. diff --git a/docs/platforms/javascript/common/troubleshooting/index.mdx b/docs/platforms/javascript/common/troubleshooting/index.mdx index 8776eaf1ad0b9..316e6a60fc5ab 100644 --- a/docs/platforms/javascript/common/troubleshooting/index.mdx +++ b/docs/platforms/javascript/common/troubleshooting/index.mdx @@ -30,7 +30,7 @@ If you set up the Sentry SDK and it's not sending any data to Sentry: - Check that you didn't set `sideEffects: false` in your `package.json`. Setting `sideEffects` to false in your `package.json` will cause Next.js to - tree shake the SDK code too agressively - effectively deleting any + tree shake the SDK code too aggressively - effectively deleting any `Sentry.init()` calls. Setting `sideEffects: false` is incorrect when you are using the Sentry SDK. @@ -460,7 +460,7 @@ Remember to pass in `true` as the second parameter to `addEventListener()`. With In very rare cases, the SDK can cause callbacks added via `addEventListener` to an event target (such as a button) to be invoked twice. -This is usually a sign of the SDK being intialized too late in the lifecycle of the page. If you can, try initializing the SDK earlier in your application. +This is usually a sign of the SDK being initialized too late in the lifecycle of the page. If you can, try initializing the SDK earlier in your application. If this is not possible or doesn't apply to your use case, set the `unregisterOriginalCallbacks` option in the [`browserApiErrors` integration](../configuration/integrations/browserapierrors) to `true`. @@ -527,7 +527,7 @@ While adding these packages as direct dependencies might remove the warning mess pnpm add import-in-the-middle require-in-the-middle ``` -As a workaround, create or modify `.npmrc` in your project root. First, try to specifially hoist the dependencies in question: +As a workaround, create or modify `.npmrc` in your project root. First, try to specifically hoist the dependencies in question: ```ini {filename:.npmrc} public-hoist-pattern[]=*import-in-the-middle* @@ -685,7 +685,7 @@ shamefully-hoist=true In case you are using Session Replay and experience performance issues with the client instrumentation hook, you can try lazy-loading session replay as described [here](/platforms/javascript/guides/nextjs/session-replay/#lazy-loading-replay). - If you want to init the SDK itself at a later point, this will result in tracing data loosing accuracy and errors could happen before the SDK is initialized. This should be a tradeoff you make based on your use case, although we recommend initializing the SDK as early as possible. + If you want to init the SDK itself at a later point, this will result in tracing data losing accuracy and errors could happen before the SDK is initialized. This should be a tradeoff you make based on your use case, although we recommend initializing the SDK as early as possible. diff --git a/docs/platforms/javascript/common/user-feedback/configuration/index.mdx b/docs/platforms/javascript/common/user-feedback/configuration/index.mdx index 0dffbe6758b78..219c399d94e37 100644 --- a/docs/platforms/javascript/common/user-feedback/configuration/index.mdx +++ b/docs/platforms/javascript/common/user-feedback/configuration/index.mdx @@ -404,13 +404,13 @@ document const formData = new FormData(event.currentTarget); const attachment = async () => { - const attatchmentField = formData.get("attachment") as File; + const attachmentField = formData.get("attachment") as File; const data = new Uint8Array( - await attatchmentField.arrayBuffer() + await attachmentField.arrayBuffer() ); const attachmentData = { data, - filename: 'upload', // Or pass attatchmentField.name, + filename: 'upload', // Or pass attachmentField.name, // No need to set `contentType` because it's encoded in the `data` array }; return attachmentData; diff --git a/docs/platforms/javascript/common/user-feedback/configuration/index__v7.x.mdx b/docs/platforms/javascript/common/user-feedback/configuration/index__v7.x.mdx index d459699a6a4e4..7121ae88d9905 100644 --- a/docs/platforms/javascript/common/user-feedback/configuration/index__v7.x.mdx +++ b/docs/platforms/javascript/common/user-feedback/configuration/index__v7.x.mdx @@ -74,7 +74,7 @@ Most text that you see in the default Feedback widget can be customized. | `emailPlaceholder` | `your.email@example.org` | The placeholder for the email input field. | | `messageLabel` | `Description` | The label for the feedback description input field. | | `messagePlaceholder` | `What's the bug? What did you expect?` | The placeholder for the feedback description input field. | -| `successMessageText` | `Thank you for your report!` | The message to be displayed after a succesful feedback submission. | +| `successMessageText` | `Thank you for your report!` | The message to be displayed after a successful feedback submission. | | `isRequiredText` | `(required)` | The text displayed next to a required field. | Example of customization: diff --git a/docs/platforms/javascript/guides/astro/index.mdx b/docs/platforms/javascript/guides/astro/index.mdx index 4c9ea2004fb23..3631ee6b0a5d2 100644 --- a/docs/platforms/javascript/guides/astro/index.mdx +++ b/docs/platforms/javascript/guides/astro/index.mdx @@ -22,7 +22,7 @@ Before we get started, make sure you have the following: - A Node runtime: - This SDK currently only works on Node runtimes (e.g. Node adapter, Vercel with Lambda functions). Non-Node runtimes, like Vercel's Edge runtime or Cloudflare Pages, are currently not supported. -- If you're using Astro's Netflify adapter (`@astrojs/netlify`), you need version `5.0.0` or newer. +- If you're using Astro's Netlify adapter (`@astrojs/netlify`), you need version `5.0.0` or newer. ## Install @@ -262,7 +262,7 @@ Auto instrumentation only works for Astro 3.5.2 or newer. If you're using an old In SSR or hybrid mode configured Astro apps, the Sentry Astro integration will automatically add an [Astro middleware](https://docs.astro.build/en/guides/middleware/) request handler to your server code. This middleware enhances the data collected by Sentry on the server side by: - Collecting performance spans for incoming requests -- Enabeling distributed tracing between client and server +- Enabling distributed tracing between client and server - Enhancing captured errors with additional information ### Manually Add Server Instrumentation diff --git a/docs/platforms/javascript/guides/capacitor/index.mdx b/docs/platforms/javascript/guides/capacitor/index.mdx index 5e1f714291e4e..15b8c852d3101 100644 --- a/docs/platforms/javascript/guides/capacitor/index.mdx +++ b/docs/platforms/javascript/guides/capacitor/index.mdx @@ -510,7 +510,7 @@ You can also use the features available with the Sentry SDK for the framework yo You will need to upload source maps to make sense of the events you receive in Sentry. -If you are using Capacitor with Ionic-Angular, upload your outputPath folder (tipically `www` or `dist`) on **every build** you release. The values for `` and `` must match the values passed into `Sentry.init` for events to be deminified correctly. +If you are using Capacitor with Ionic-Angular, upload your outputPath folder (typically `www` or `dist`) on **every build** you release. The values for `` and `` must match the values passed into `Sentry.init` for events to be deminified correctly. ```bash {tabTitle: Ionic Build & others} sentry-cli sourcemaps inject --org ___ORG_SLUG___ --project ___PROJECT_SLUG___ ./www diff --git a/docs/platforms/javascript/guides/capacitor/troubleshooting.mdx b/docs/platforms/javascript/guides/capacitor/troubleshooting.mdx index 190f7b86df1c0..45feaa49e3904 100644 --- a/docs/platforms/javascript/guides/capacitor/troubleshooting.mdx +++ b/docs/platforms/javascript/guides/capacitor/troubleshooting.mdx @@ -97,7 +97,7 @@ If you encounter the following error: CocoaPods could not find compatible versions for pod "Sentry" ``` -You can fix this by udating your pod repository: +You can fix this by updating your pod repository: ```bash pod repo update diff --git a/docs/platforms/javascript/guides/cordova/ionic.mdx b/docs/platforms/javascript/guides/cordova/ionic.mdx index 5e8edc378bbd7..4fb2b684a96c5 100644 --- a/docs/platforms/javascript/guides/cordova/ionic.mdx +++ b/docs/platforms/javascript/guides/cordova/ionic.mdx @@ -101,7 +101,7 @@ Then change the `@NgModule{providers:[]}` in `app.module.ts` to: providers: [ StatusBar, SplashScreen, - // {provide: ErrorHandler, useClass: IonicErrorHandler} remove this, add next line (for Ionic 4 this line doen't exist by default) + // {provide: ErrorHandler, useClass: IonicErrorHandler} remove this, add next line (for Ionic 4 this line doesn't exist by default) {provide: ErrorHandler, useClass: SentryIonicErrorHandler} ] }) diff --git a/docs/platforms/javascript/guides/nuxt/features/component-tracking.mdx b/docs/platforms/javascript/guides/nuxt/features/component-tracking.mdx index 9597c89ab8a2b..e31e049443a0b 100644 --- a/docs/platforms/javascript/guides/nuxt/features/component-tracking.mdx +++ b/docs/platforms/javascript/guides/nuxt/features/component-tracking.mdx @@ -23,7 +23,7 @@ By default, the Nuxt SDK tracks the rendering performance of your app (that is, You can also track your app's child components to get more details about the rendering process. This feature will create spans for each tracked component instance. The spans are called **`ui.vue.[hook]`** where `[hook]` is replaced by each tracked lifecycle stage. For example, the span representing the mount stage (the time between `beforeMount` and `mounted`) is called `ui.vue.mount`. To set it up, add the `vueIntegration` to your `Sentry.init()` call and, set the `tracingOptions.trackComponents` option. -Pass `true` to track all of your child components, or specify a list of individual comopnents you want to track: +Pass `true` to track all of your child components, or specify a list of individual components you want to track: ```javascript {5-17} import * as Sentry from "@sentry/nuxt"; diff --git a/docs/platforms/javascript/guides/svelte/features/component-tracking.mdx b/docs/platforms/javascript/guides/svelte/features/component-tracking.mdx index ac410b775d0b0..490a629ead91c 100644 --- a/docs/platforms/javascript/guides/svelte/features/component-tracking.mdx +++ b/docs/platforms/javascript/guides/svelte/features/component-tracking.mdx @@ -45,7 +45,7 @@ const sentryOptions = { // (optional) componentTracking: { // Add the components you want to be tracked to this array. - // Specificy `true` to track all components or `false` to disable + // Specify `true` to track all components or `false` to disable // tracking entirely // (optional, defaults to `true`) trackComponents: ["Navbar", "PrimaryButton", "LoginForm"], diff --git a/docs/platforms/javascript/guides/vue/features/component-tracking.mdx b/docs/platforms/javascript/guides/vue/features/component-tracking.mdx index c9a83f10b47e6..1a083f11e72d4 100644 --- a/docs/platforms/javascript/guides/vue/features/component-tracking.mdx +++ b/docs/platforms/javascript/guides/vue/features/component-tracking.mdx @@ -23,7 +23,7 @@ By default, the Vue SDK tracks the rendering performance of your app (that is, i You can also track your app's child components to get more details about the rendering process. This feature will create spans for each tracked component instance. The spans are called **`ui.vue.[hook]`** where `[hook]` is replaced by each tracked lifecycle stage. For example, the span representing the mount stage (the time between `beforeMount` and `mounted`) is called `ui.vue.mount`. To set it up, add the Vue Integration to your `Sentry.init()` call and, set the `tracingOptions.trackComponents` option. -Pass `true` to track all of your child components, or specify a list of individual comopnents you want to track: +Pass `true` to track all of your child components, or specify a list of individual components you want to track: ```javascript {5-17} import * as Sentry from "@sentry/vue"; diff --git a/docs/platforms/javascript/guides/wasm/index.mdx b/docs/platforms/javascript/guides/wasm/index.mdx index cc0b8fd7dab7d..e4bd6da115ce3 100644 --- a/docs/platforms/javascript/guides/wasm/index.mdx +++ b/docs/platforms/javascript/guides/wasm/index.mdx @@ -118,7 +118,7 @@ function testWasmError() { // Assuming you already have your WebAssembly module loaded as 'wasmModule' // Replace this with your actual WebAssembly module instance - // depening on how your module is compiled, call function directly + // depending on how your module is compiled, call function directly const result = wasmModule.divide(10, 0); // or via WebAssembly API //const result = wasmModule.instance.exports.divide(10, 0); @@ -169,7 +169,7 @@ function testWasmTracing() { // Assuming you already have your WebAssembly module loaded as 'wasmModule' // Replace this with your actual WebAssembly module instance - // depening on how your module is compiled, call function directly + // depending on how your module is compiled, call function directly const result = wasmModule.compute_intensive_function(1000); // or via WebAssembly API // const result = wasmModule.instance.exports.compute_intensive_function(1000); diff --git a/docs/platforms/php/guides/laravel/configuration/laravel-options.mdx b/docs/platforms/php/guides/laravel/configuration/laravel-options.mdx index da293f8d9ae54..00e7bda349fd5 100644 --- a/docs/platforms/php/guides/laravel/configuration/laravel-options.mdx +++ b/docs/platforms/php/guides/laravel/configuration/laravel-options.mdx @@ -5,7 +5,7 @@ description: "Learn about Sentry's integration with Laravel and its options for --- Most configuration for Laravel is done in your `.env` file. -You can also add additonal config options to your `config/sentry.php` file. +You can also add additional config options to your `config/sentry.php` file. ## Breadcrumbs diff --git a/docs/platforms/php/guides/laravel/integrations/eloquent.mdx b/docs/platforms/php/guides/laravel/integrations/eloquent.mdx index 272daffb5f1c3..97b0734aadb7d 100644 --- a/docs/platforms/php/guides/laravel/integrations/eloquent.mdx +++ b/docs/platforms/php/guides/laravel/integrations/eloquent.mdx @@ -51,7 +51,7 @@ use Sentry\Laravel\Integration; Model::preventLazyLoading(); -// Only supress lazy loading violations in production, let them be thrown in other environments +// Only suppress lazy loading violations in production, let them be thrown in other environments if (app()->isProduction()) { Model::handleLazyLoadingViolationUsing( Integration::lazyLoadingViolationReporter() @@ -75,7 +75,7 @@ use Sentry\Laravel\Integration; Model::preventSilentlyDiscardingAttributes(); -// Only supress silently discarded attribute violations in production, let them be thrown in other environments +// Only suppress silently discarded attribute violations in production, let them be thrown in other environments if (app()->isProduction()) { Model::handleDiscardedAttributeViolationUsing( Integration::discardedAttributeViolationReporter() @@ -93,7 +93,7 @@ use Sentry\Laravel\Integration; Model::preventAccessingMissingAttributes(); -// Only supress missing attribute violations in production, let them be thrown in other environments +// Only suppress missing attribute violations in production, let them be thrown in other environments if (app()->isProduction()) { Model::handleMissingAttributeViolationUsing( Integration::missingAttributeViolationReporter() diff --git a/docs/platforms/php/legacy-sdk/config.mdx b/docs/platforms/php/legacy-sdk/config.mdx index 6a4926fbde43e..ba67216f791c9 100644 --- a/docs/platforms/php/legacy-sdk/config.mdx +++ b/docs/platforms/php/legacy-sdk/config.mdx @@ -259,7 +259,7 @@ By default the server port will be added to the logged URL when it is a non stan ## Providing Request Context -Most of the time you’re not actually calling out to Raven directly, but you still want to provide some additional context. This lifecycle generally constists of something like the following: +Most of the time you’re not actually calling out to Raven directly, but you still want to provide some additional context. This lifecycle generally consists of something like the following: - Set some context via a middleware (e.g. the logged in user) - Send all given context with any events during the request lifecycle diff --git a/docs/platforms/playstation/index.mdx b/docs/platforms/playstation/index.mdx index 6f56485815f98..50e4eadb257c8 100644 --- a/docs/platforms/playstation/index.mdx +++ b/docs/platforms/playstation/index.mdx @@ -12,7 +12,7 @@ categories: You can also use Sentry's [Unity](/platforms/unity/game-consoles/) and [Unreal Engine SDKs](/platforms/unreal/game-consoles/) with PlayStation. - + PlayStation support is exclusive to our SaaS offering, as it depends on confidential components that cannot be distributed for self-hosted use. Access to Sentry's error and crash reporting for consoles is a paid feature. We will review the pricing and details with you during the verification process. diff --git a/docs/platforms/powershell/troubleshooting.mdx b/docs/platforms/powershell/troubleshooting.mdx index eb75724af8e95..a7b53bf626c9a 100644 --- a/docs/platforms/powershell/troubleshooting.mdx +++ b/docs/platforms/powershell/troubleshooting.mdx @@ -14,6 +14,6 @@ Make sure the process the SDK is running in has write access to it. ## Unhandled exceptions are not captured -Currently, the SDK captures exceptions that are explicitly handled by ane of the following methods: +Currently, the SDK captures exceptions that are explicitly handled by one of the following methods: - piping the `ErrorRecord` inside a `catch` statement or in a `trap` using `$_ | Out-Sentry` - using `Invoke-WithSentry { ... }` diff --git a/docs/platforms/python/integrations/arq/index.mdx b/docs/platforms/python/integrations/arq/index.mdx index 2834bc49eae62..9945909af1bc5 100644 --- a/docs/platforms/python/integrations/arq/index.mdx +++ b/docs/platforms/python/integrations/arq/index.mdx @@ -24,7 +24,7 @@ If you have the `arq` package in your dependencies, the arq integration will be ## Verify -### Enqueing the jobs in `run.py`: +### Enqueuing the jobs in `run.py`: ```python import asyncio @@ -42,7 +42,7 @@ async def main(): asyncio.run(main()) ``` -When you run `run.py` it will create a transaction called `testing_sentry` in the Performance section of [sentry.io](https://sentry.io), and create a span for enqueing the job. +When you run `run.py` it will create a transaction called `testing_sentry` in the Performance section of [sentry.io](https://sentry.io), and create a span for enqueuing the job. It takes a couple of moments for the data to appear in [sentry.io](https://sentry.io). diff --git a/docs/platforms/python/integrations/sanic/index.mdx b/docs/platforms/python/integrations/sanic/index.mdx index fab7de8c3d9da..3c8d4b5b3a16a 100644 --- a/docs/platforms/python/integrations/sanic/index.mdx +++ b/docs/platforms/python/integrations/sanic/index.mdx @@ -29,7 +29,7 @@ uv add "aiocontextvars" If you have the `sanic` package in your dependencies, the Sanic integration will be enabled automatically when you initialize the Sentry SDK. -To ensure that errors occuring in background tasks get reported to Sentry, we always recommend enabling the [`AsyncioIntegration`](/platforms/python/integrations/asyncio/) when you are using the `SanicIntegration`. To enable the `AsyncioIntegration`, you must explicitly add the `AsyncioIntegration` to the `integrations` list and initialize the SDK within a `before_server_start` listener. +To ensure that errors occurring in background tasks get reported to Sentry, we always recommend enabling the [`AsyncioIntegration`](/platforms/python/integrations/asyncio/) when you are using the `SanicIntegration`. To enable the `AsyncioIntegration`, you must explicitly add the `AsyncioIntegration` to the `integrations` list and initialize the SDK within a `before_server_start` listener. The example below demonstrates the simplest recommended setup. diff --git a/docs/platforms/python/legacy-sdk/advanced.mdx b/docs/platforms/python/legacy-sdk/advanced.mdx index b3fca19c97d78..a299bb1b22bfd 100644 --- a/docs/platforms/python/legacy-sdk/advanced.mdx +++ b/docs/platforms/python/legacy-sdk/advanced.mdx @@ -242,7 +242,7 @@ Removes the `body` of all HTTP data. `raven.processors.SanitizeKeysProcessor` -Removes all keys provided in the configuable set `sanitize_keys`, which must be provided as a client argument. +Removes all keys provided in the configurable set `sanitize_keys`, which must be provided as a client argument. ## Custom Grouping Behavior diff --git a/docs/platforms/react-native/manual-setup/expo.mdx b/docs/platforms/react-native/manual-setup/expo.mdx index 9ad8b28f1843a..3afafffef16bb 100644 --- a/docs/platforms/react-native/manual-setup/expo.mdx +++ b/docs/platforms/react-native/manual-setup/expo.mdx @@ -5,7 +5,7 @@ description: "Learn how to set up an Expo-managed project with the Sentry React To set up the Sentry React Native SDK in your Expo project, follow the steps on this page. -## Prerequisities +## Prerequisites - [Expo SDK 50](https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/) or newer. - [Expo SDK 49](https://docs.expo.dev/guides/using-sentry/) and older are supported by the `sentry-expo` package. diff --git a/docs/platforms/react-native/manual-setup/hermes.mdx b/docs/platforms/react-native/manual-setup/hermes.mdx index ce4a755733dde..e4b43f319d661 100644 --- a/docs/platforms/react-native/manual-setup/hermes.mdx +++ b/docs/platforms/react-native/manual-setup/hermes.mdx @@ -64,7 +64,7 @@ sentry_upload_sourcemap( org_slug: '___ORG_SLUG___', project_slug: '___PROJECT_SLUG___', version: '...', - app_identifier: '...', # bundle_identifer of your app + app_identifier: '...', # bundle_identifier of your app build: '...', # optional build number of your app dist: '...', # optional distribution of the release usually the buildnumber sourcemap: ['index.android.bundle', 'index.android.bundle.map'], @@ -78,7 +78,7 @@ sentry_upload_sourcemap( org_slug: '___ORG_SLUG___', project_slug: '___PROJECT_SLUG___', version: '...', - app_identifier: '...', # bundle_identifer of your app + app_identifier: '...', # bundle_identifier of your app build: '...', # optional build number of your app dist: '...', # optional distribution of the release usually the buildnumber sourcemap: ['main.jsbundle', 'main.jsbundle.map'], diff --git a/docs/platforms/react-native/manual-setup/metro.mdx b/docs/platforms/react-native/manual-setup/metro.mdx index 31a9cc2d3fa9a..9e49a5dfcdbc4 100644 --- a/docs/platforms/react-native/manual-setup/metro.mdx +++ b/docs/platforms/react-native/manual-setup/metro.mdx @@ -7,7 +7,7 @@ sidebar_order: 3 Sentry's React Native SDK package ships with a Sentry Metro Plugin which allows you to automatically generate Debug IDs for your applications' bundles. This is crucial for making source maps work properly with Sentry. The plugin also helps you to annotate React component names so they are available in breadcrumbs and minimize the bundle size by removing unused SDK features. This page will guide you through the process of setting up the Metro Plugin for your application. -## Prerequisities +## Prerequisites - [Sign up for an account](https://sentry.io/signup/) - [Install Sentry React Native SDK](/platforms/react-native) version 5.17.0 or newer diff --git a/docs/platforms/react-native/sourcemaps/uploading/expo-advanced.mdx b/docs/platforms/react-native/sourcemaps/uploading/expo-advanced.mdx index ff1bbdff3a753..8004758f27f54 100644 --- a/docs/platforms/react-native/sourcemaps/uploading/expo-advanced.mdx +++ b/docs/platforms/react-native/sourcemaps/uploading/expo-advanced.mdx @@ -7,7 +7,7 @@ Sentry's React Native SDK works out of the box with Expo applications. To see re For a guide on how to automatically upload source maps for Expo application releases or updates, see the [Expo](/platforms/react-native/sourcemaps/uploading/expo/) source maps docs. -## Prerequisities +## Prerequisites - [Sign up for an account](https://sentry.io/signup/) - [Migrate from `sentry-expo` to `@sentry/react-native`](/platforms/react-native/migration/sentry-expo/) diff --git a/docs/platforms/react-native/sourcemaps/uploading/expo.mdx b/docs/platforms/react-native/sourcemaps/uploading/expo.mdx index 0cfa6d9199c62..b300919130034 100644 --- a/docs/platforms/react-native/sourcemaps/uploading/expo.mdx +++ b/docs/platforms/react-native/sourcemaps/uploading/expo.mdx @@ -5,7 +5,7 @@ description: "Upload source maps for native Expo releases and EAS Update." Sentry's React Native SDK works out of the box with Expo applications. To see readable stack traces in the product, you must upload source maps to Sentry. This guide explains how to upload source maps for Expo applications. -## Prerequisities +## Prerequisites - [Sign up for an account](https://sentry.io/signup/) - [Migrate from `sentry-expo` to `@sentry/react-native`](/platforms/react-native/migration/sentry-expo/) diff --git a/docs/platforms/react-native/troubleshooting/index.mdx b/docs/platforms/react-native/troubleshooting/index.mdx index 18cc0e3613a6c..2e4f3d3b40af2 100644 --- a/docs/platforms/react-native/troubleshooting/index.mdx +++ b/docs/platforms/react-native/troubleshooting/index.mdx @@ -135,7 +135,7 @@ export SENTRY_DIST=$CI_BUILD_NUMBER ## iOS: Sentry User Feedback UI cannot be used from app extensions. -If you see an error similar to `'SentryUserFeedbackIntegration' is unavailable: not available on iOS - Sentry User Feedback UI cannot be used from app extensions` during the application build process, please make sure that the `APPLICATION_EXTENSION_API_ONLY` is set to `NO`. You can achive that with the following in your `Podfile`. +If you see an error similar to `'SentryUserFeedbackIntegration' is unavailable: not available on iOS - Sentry User Feedback UI cannot be used from app extensions` during the application build process, please make sure that the `APPLICATION_EXTENSION_API_ONLY` is set to `NO`. You can achieve that with the following in your `Podfile`. ```ruby {filename:ios/Podfile} installer.pods_project.targets.each do |target| diff --git a/docs/platforms/react-native/user-feedback/configuration/index.mdx b/docs/platforms/react-native/user-feedback/configuration/index.mdx index 54058c62e597a..2266173a78fae 100644 --- a/docs/platforms/react-native/user-feedback/configuration/index.mdx +++ b/docs/platforms/react-native/user-feedback/configuration/index.mdx @@ -71,7 +71,7 @@ The following options can be configured for the integration in `feedbackIntegrat | `successMessageText` | `"Thank you for your report!"` | The message displayed after a successful feedback submission. | | `errorTitle` | `"Error"` | The title of the error message dialog. | | `formError` | `"Please fill out all required fields."` | Form validation error message. | -| `emailError` | `"Please enter a valid email address."` | Email validation error mesage. | +| `emailError` | `"Please enter a valid email address."` | Email validation error message. | | `genericError` | `"Unable to send feedback due to an unexpected error."` | The generic error message. | Example of customization: @@ -105,7 +105,7 @@ Sentry.feedbackIntegration({ Sentry.showFeedbackWidget(); ``` -The same can be achived by passing the `styles` prop to the `FeedbackWidget` component: +The same can be achieved by passing the `styles` prop to the `FeedbackWidget` component: ```javascript import { FeedbackWidget } from "@sentry/react-native"; diff --git a/docs/platforms/unity/configuration/options/programmatic-configuration/index.mdx b/docs/platforms/unity/configuration/options/programmatic-configuration/index.mdx index a8d1b082f95bf..45e71f9d67d25 100644 --- a/docs/platforms/unity/configuration/options/programmatic-configuration/index.mdx +++ b/docs/platforms/unity/configuration/options/programmatic-configuration/index.mdx @@ -12,7 +12,7 @@ We've added `Sentry Options Configuration` to the `Options Config` tab in the Se ## Programmatic Configuration -The Sentry SDK for Unity includes [platform-specific (that is, Native)](/platforms/unity/native-support/) SDKs, such as [Android](/platforms/android/), [Apple](/platforms/apple/guides/ios/), and [Native](/platforms/native/) to provide native crash suppport. These SDKs share the options with which they get initialized. +The Sentry SDK for Unity includes [platform-specific (that is, Native)](/platforms/unity/native-support/) SDKs, such as [Android](/platforms/android/), [Apple](/platforms/apple/guides/ios/), and [Native](/platforms/native/) to provide native crash support. These SDKs share the options with which they get initialized. The C# layer self-initializes through the use of the [SubsystemRegistration RuntimeInitializeOnLoadMethodAttribute](https://docs.unity3d.com/ScriptReference/RuntimeInitializeLoadType.SubsystemRegistration.html). diff --git a/docs/platforms/unity/enriching-events/screenshots/index.mdx b/docs/platforms/unity/enriching-events/screenshots/index.mdx index 6d620bf5ccb33..d84cbce3b0a78 100644 --- a/docs/platforms/unity/enriching-events/screenshots/index.mdx +++ b/docs/platforms/unity/enriching-events/screenshots/index.mdx @@ -16,7 +16,7 @@ Because screenshots may contain - /og-images/product-issues-issue-details-performance-issues-consecutive-http.png --- -Consecutive HTTP issues are created when a at least 2000ms of time can be saved by parallelizing a minimum of 3 consecutive HTTP calls occuring sequentially. +Consecutive HTTP issues are created when a at least 2000ms of time can be saved by parallelizing a minimum of 3 consecutive HTTP calls occurring sequentially. ## Detection Criteria diff --git a/docs/product/sentry-mcp/index.mdx b/docs/product/sentry-mcp/index.mdx index 434c439abff91..d1722b0108e18 100644 --- a/docs/product/sentry-mcp/index.mdx +++ b/docs/product/sentry-mcp/index.mdx @@ -182,7 +182,7 @@ Once in, you'll be prompted to authenticate with Sentry using OAuth. ### Cursor -Available via `Cursor` → `Settings` → `Cursor Settings` → `MCP` following the promps to configure Sentry MCP. Cursor 1.0+ includes enhanced MCP support with OAuth and Streamable HTTP. +Available via `Cursor` → `Settings` → `Cursor Settings` → `MCP` following the prompts to configure Sentry MCP. Cursor 1.0+ includes enhanced MCP support with OAuth and Streamable HTTP. You can still edit the `mcp.json` file manually if you prefer. diff --git a/docs/product/sentry-toolbar/faq.mdx b/docs/product/sentry-toolbar/faq.mdx index a206036533153..5e47cca6f2000 100644 --- a/docs/product/sentry-toolbar/faq.mdx +++ b/docs/product/sentry-toolbar/faq.mdx @@ -12,7 +12,7 @@ If your web application requires authentication to access: - In development and staging, always initialize the Sentry Toolbar. - In production, conditionally initialize the Sentry Toolbar when an employee is logged in. -If you web application does not require authenticaion: +If you web application does not require authentication: - In development and staging environments, initialize the Toolbar at all times. - In production environments, do not initialize the Toolbar. diff --git a/docs/product/uptime-monitoring/uptime-tracing.mdx b/docs/product/uptime-monitoring/uptime-tracing.mdx index 8cf4b361b9eda..35d904e512f18 100644 --- a/docs/product/uptime-monitoring/uptime-tracing.mdx +++ b/docs/product/uptime-monitoring/uptime-tracing.mdx @@ -63,7 +63,7 @@ Sentry.init({ ## Tracing Spans -There are two sets of spans avaialble for uptime checks: +There are two sets of spans available for uptime checks: 1. **Uptime request spans**. These are automatically created by Sentry for every uptime check request. You can find them as the root of any uptime issue's trace. 2. **Application spans**. These are spans that are configured through distributed tracing. You can find them as the children of uptime request spans. diff --git a/docs/security-legal-pii/scrubbing/server-side-scrubbing/index.mdx b/docs/security-legal-pii/scrubbing/server-side-scrubbing/index.mdx index 3563fe0ebeec8..724b58560cc7e 100644 --- a/docs/security-legal-pii/scrubbing/server-side-scrubbing/index.mdx +++ b/docs/security-legal-pii/scrubbing/server-side-scrubbing/index.mdx @@ -91,7 +91,7 @@ Safe Fields are used to exclude fields and data from scrubbing. For example, tak When scrubbing is enabled and `id` added as a sensitive field, the `password` string in `extra.'sys.argv'`, both `id` fields (`user.id` and `extra.id`), as well as the entire `credentials` object will be scrubbed. -To accomodate more fine-grained filtering, the Safe Fields support the same syntax as the +To accommodate more fine-grained filtering, the Safe Fields support the same syntax as the [Advanced Datascrubbing Sources](/security-legal-pii/scrubbing//advanced-datascrubbing/#sources). If you want to leave the `user.id` field intact, you can configure the `id` as a Safe Field, but this will also diff --git a/includes/platforms/configuration/options/allow-urls.mdx b/includes/platforms/configuration/options/allow-urls.mdx index 6a5a1eb82d6fc..f2bd9cd0d5047 100644 --- a/includes/platforms/configuration/options/allow-urls.mdx +++ b/includes/platforms/configuration/options/allow-urls.mdx @@ -7,7 +7,7 @@ For example, if you add `'foo.com'` to the array, errors created on `https://bar This matching logic applies for captured exceptions, not raw message events. By default, all errors are sent. -If your scripts are loaded from `cdn.example.com` and your site is `example.com`, you can set `allowUrls` to the follwing to exclusively capture errors being created in scripts in these locations: +If your scripts are loaded from `cdn.example.com` and your site is `example.com`, you can set `allowUrls` to the following to exclusively capture errors being created in scripts in these locations: ```javascript Sentry.init({ diff --git a/package.json b/package.json index be2d3acfd3faf..db9efc499a358 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "lint:eslint:fix": "eslint --fix \"{src,app,scripts}/**/*.{ts,tsx,js,jsx}\"", "lint:prettier": "prettier --check \"./{src,app,scripts}/**/*.{md,mdx,ts,tsx,js,jsx,mjs}\"", "lint:prettier:fix": "prettier --write \"./{src,app,scripts}/**/*.{md,mdx,ts,tsx,js,jsx,mjs}\"", + "lint:typos": "typos", "lint:fix": "yarn run lint:prettier:fix && yarn run lint:eslint:fix", "sidecar": "yarn spotlight-sidecar", "test": "vitest", diff --git a/platform-includes/configuration/before-send-transaction/python.mdx b/platform-includes/configuration/before-send-transaction/python.mdx index 320fdfb366cc0..90bca3caea4ef 100644 --- a/platform-includes/configuration/before-send-transaction/python.mdx +++ b/platform-includes/configuration/before-send-transaction/python.mdx @@ -14,7 +14,7 @@ sentry_sdk.init( ) ``` -Addtionally, you may filter out transaction events based on the request URL, like `/healthcheck`. +Additionally, you may filter out transaction events based on the request URL, like `/healthcheck`. ```python import sentry_sdk diff --git a/platform-includes/configuration/diagnostic-logger/dotnet.mdx b/platform-includes/configuration/diagnostic-logger/dotnet.mdx index 2e4d396164e32..516517f846f7b 100644 --- a/platform-includes/configuration/diagnostic-logger/dotnet.mdx +++ b/platform-includes/configuration/diagnostic-logger/dotnet.mdx @@ -74,6 +74,6 @@ The `FileDiagnosticLogger` implementation will overwrite any existing file, and -You can also create your own diagnostic logger class, either by implementing the `IDiagnosticLogger` interface, or inherting from the `DiagnosticLogger` abstract class and overriding the `LogMessage` method. +You can also create your own diagnostic logger class, either by implementing the `IDiagnosticLogger` interface, or inheriting from the `DiagnosticLogger` abstract class and overriding the `LogMessage` method. diff --git a/platform-includes/distributed-tracing/custom-instrumentation/go.mdx b/platform-includes/distributed-tracing/custom-instrumentation/go.mdx index cda0002baa382..6c2768a7eafea 100644 --- a/platform-includes/distributed-tracing/custom-instrumentation/go.mdx +++ b/platform-includes/distributed-tracing/custom-instrumentation/go.mdx @@ -30,7 +30,7 @@ You can generate this tracing information with the Sentry SDK's `hub.GetTracepar ```go ctx := r.Context() hub := sentry.GetHubFromContext(ctx) -req, _ := http.NewRequest("GET", "http://exmaple.com", nil) +req, _ := http.NewRequest("GET", "http://example.com", nil) req.Header.Set(sentry.SentryTraceHeader, hub.GetTraceparent()) req.Header.Set(sentry.SentryBaggageHeader, hub.GetBaggage()) ``` diff --git a/platform-includes/enriching-events/attach-screenshots/unreal.mdx b/platform-includes/enriching-events/attach-screenshots/unreal.mdx index 4d67065c11f9e..b11e1ffa7b297 100644 --- a/platform-includes/enriching-events/attach-screenshots/unreal.mdx +++ b/platform-includes/enriching-events/attach-screenshots/unreal.mdx @@ -2,7 +2,7 @@ Using the editor menu in **Project Settings > Plugins > Sentry**: ![Options Screenshot Configuration](./img/attach-screenshot-unreal-editor.png) -Or, like so, if you're [configuring things programatically](/platforms/unreal/configuration/options/): +Or, like so, if you're [configuring things programmatically](/platforms/unreal/configuration/options/): ```cpp USentrySettings* Settings = FSentryModule::Get().GetSettings(); diff --git a/platform-includes/enriching-events/breadcrumbs/breadcrumbs-example/powershell.mdx b/platform-includes/enriching-events/breadcrumbs/breadcrumbs-example/powershell.mdx index 3290f942e5b5d..87cf140ef160d 100644 --- a/platform-includes/enriching-events/breadcrumbs/breadcrumbs-example/powershell.mdx +++ b/platform-includes/enriching-events/breadcrumbs/breadcrumbs-example/powershell.mdx @@ -2,6 +2,6 @@ # Simple breadcrumb with just a message 'hello there' | Add-SentryBreadcrumb -# More complext breadcrumb +# More complex breadcrumb Add-SentryBreadcrumb -Message 'hello there' -Category 'cat' -Type 'foo' -Level Warning -Data @{ 'key' = 'value' } ``` diff --git a/platform-includes/enriching-events/set-tag/dotnet.nlog.mdx b/platform-includes/enriching-events/set-tag/dotnet.nlog.mdx index d5917315c7a4b..991ca6dd8a0f4 100644 --- a/platform-includes/enriching-events/set-tag/dotnet.nlog.mdx +++ b/platform-includes/enriching-events/set-tag/dotnet.nlog.mdx @@ -29,7 +29,7 @@ For more information on how to dynamically set event tags via `NLog.config`, see ```csharp SentrySdk.ConfigureScope(scope => { - // You can still use NLog layouts in code to set configured propertes + // You can still use NLog layouts in code to set configured properties scope.SetTag("logger", "${logger}"); }); ``` @@ -37,7 +37,7 @@ SentrySdk.ConfigureScope(scope => ```fsharp SentrySdk.ConfigureScope( fun scope -> - // You can still use NLog layouts in code to set configured propertes + // You can still use NLog layouts in code to set configured properties scope.SetTag("logger", "${logger}") ) ``` diff --git a/platform-includes/performance/add-spans-example/native.mdx b/platform-includes/performance/add-spans-example/native.mdx index 056b3ff43cb52..a74688918d469 100644 --- a/platform-includes/performance/add-spans-example/native.mdx +++ b/platform-includes/performance/add-spans-example/native.mdx @@ -51,7 +51,7 @@ sentry_init(options); // Events will inherit the trace data from this propagation_context -// the transaction inside perform_checkout() will lead to a new trace in the propgation_context +// the transaction inside perform_checkout() will lead to a new trace in the propagation_context perform_checkout(); // After perform_checkout() events will inherit the trace created in perform_checkout() from the propagation_context diff --git a/platform-includes/performance/opentelemetry-setup/with-custom-sampler/javascript.bun.mdx b/platform-includes/performance/opentelemetry-setup/with-custom-sampler/javascript.bun.mdx index 48347a44da798..5604a57c79512 100644 --- a/platform-includes/performance/opentelemetry-setup/with-custom-sampler/javascript.bun.mdx +++ b/platform-includes/performance/opentelemetry-setup/with-custom-sampler/javascript.bun.mdx @@ -27,7 +27,7 @@ const sentryClient = Sentry.init({ skipOpenTelemetrySetup: true, // By defining any sample rate, - // tracing intergations will be added by default + // tracing integrations will be added by default // omit this if you do not want any performance integrations to be added tracesSampleRate: 0, }); diff --git a/platform-includes/performance/opentelemetry-setup/with-custom-sampler/javascript.mdx b/platform-includes/performance/opentelemetry-setup/with-custom-sampler/javascript.mdx index ec015c1038571..af76cec370154 100644 --- a/platform-includes/performance/opentelemetry-setup/with-custom-sampler/javascript.mdx +++ b/platform-includes/performance/opentelemetry-setup/with-custom-sampler/javascript.mdx @@ -26,7 +26,7 @@ const sentryClient = Sentry.init({ skipOpenTelemetrySetup: true, // By defining any sample rate, - // tracing intergations will be added by default + // tracing integrations will be added by default // omit this if you do not want any performance integrations to be added tracesSampleRate: 0, }); @@ -68,7 +68,7 @@ const sentryClient = Sentry.init({ skipOpenTelemetrySetup: true, // By defining any sample rate, - // tracing intergations will be added by default + // tracing integrations will be added by default // omit this if you do not want any performance integrations to be added tracesSampleRate: 0, }); diff --git a/platform-includes/performance/start-span/javascript.mdx b/platform-includes/performance/start-span/javascript.mdx index b3b5098a35717..e9fa1eec8017f 100644 --- a/platform-includes/performance/start-span/javascript.mdx +++ b/platform-includes/performance/start-span/javascript.mdx @@ -1,4 +1,4 @@ -Start a span for a synchronuous operation: +Start a span for a synchronous operation: ```javascript const result = Sentry.startSpan({ name: "Important Function" }, () => { diff --git a/platform-includes/set-environment/elixir.mdx b/platform-includes/set-environment/elixir.mdx index 8dc75d9689cc6..f12b29bda5de2 100644 --- a/platform-includes/set-environment/elixir.mdx +++ b/platform-includes/set-environment/elixir.mdx @@ -3,7 +3,7 @@ config :sentry, environment_name: :prod ``` -Alterntively, you can use [`Config.config_env/0`](https://hexdocs.pm/elixir/Config.html#config_env/0) to set this value based on the current environment: +Alternatively, you can use [`Config.config_env/0`](https://hexdocs.pm/elixir/Config.html#config_env/0) to set this value based on the current environment: ```elixir {filename:config/config.exs} config :sentry, diff --git a/platform-includes/sourcemaps/troubleshooting/javascript.mdx b/platform-includes/sourcemaps/troubleshooting/javascript.mdx index 75a2729a7435e..bf57f4ba6ac51 100644 --- a/platform-includes/sourcemaps/troubleshooting/javascript.mdx +++ b/platform-includes/sourcemaps/troubleshooting/javascript.mdx @@ -75,7 +75,7 @@ In the JavaScript files you uploaded to Sentry, search for code that roughly loo If this code exists in a bundle, that bundle will be able to be matched to a source file. Every bundle you deploy in your app needs to have this snippet in order to be correctly source mapped. -If your source code does not contain this snippet and you're using a Sentry plugin for your bundler, please check that you are using the latest version and please verify that the plugin is correctly processing your files. Set the `debug` option to `true` to print useful degbugging information. +If your source code does not contain this snippet and you're using a Sentry plugin for your bundler, please check that you are using the latest version and please verify that the plugin is correctly processing your files. Set the `debug` option to `true` to print useful debugging information. If you're using the Sentry CLI, verify that you're running the `inject` command **before** you upload to Sentry and **before** you deploy your files. diff --git a/scripts/algolia.ts b/scripts/algolia.ts index 71aa8e041e962..ca005e38291ef 100644 --- a/scripts/algolia.ts +++ b/scripts/algolia.ts @@ -15,7 +15,7 @@ * If you want to run it locally, * 1. Make sure you have the required env vars set up * 2. Be careful to change to `DOCS_INDEX_NAME` to a value different - * from the productoin docs index name (specified in the `@sentry-internal/global-search`) + * from the production docs index name (specified in the `@sentry-internal/global-search`) * to avoid accidental deletions * 3. Run a production build of the app before running this script */ diff --git a/scripts/lint-404s/main.ts b/scripts/lint-404s/main.ts index d2c34e9fe48f0..8470a8526055c 100644 --- a/scripts/lint-404s/main.ts +++ b/scripts/lint-404s/main.ts @@ -50,7 +50,7 @@ async function main() { return pathnameSlug === '' || allSlugsSet.has(pathnameSlug); }; - function shoudlSkipLink(href: string) { + function shouldSkipLink(href: string) { const isExternal = (href_: string) => href_.startsWith('http') || href_.startsWith('mailto:'); const isLocalhost = (href_: string) => @@ -68,7 +68,7 @@ async function main() { } async function is404(link: Link, pageUrl: URL): Promise { - if (shoudlSkipLink(link.href)) { + if (shouldSkipLink(link.href)) { return false; } diff --git a/src/components/callout/index.tsx b/src/components/callout/index.tsx index 903d382e8e265..1e670bd5e985c 100644 --- a/src/components/callout/index.tsx +++ b/src/components/callout/index.tsx @@ -5,7 +5,7 @@ import { useCallback, } from 'react'; -// explicitly not usig CSS modules here +// explicitly not using CSS modules here // because there's some prerendered content that depends on these exact class names import './styles.scss'; diff --git a/src/components/docPage/type.scss b/src/components/docPage/type.scss index 2245773b2767f..fc804c2a08e01 100644 --- a/src/components/docPage/type.scss +++ b/src/components/docPage/type.scss @@ -295,7 +295,7 @@ div[data-onboarding-option] ul { margin: 0; } -// Inserts an invisble zero-width, non-breaking space to prevent a word from +// Inserts an invisible zero-width, non-breaking space to prevent a word from // breaking on the adjoining characters. Useful for stopping dashes from // breaking in code blocks. The special character is placed into the ::after // content so that it is not included when copy/pasting from code examples. diff --git a/src/components/focus-active-link.tsx b/src/components/focus-active-link.tsx index 6a173d025bdd2..94bc037854a3e 100644 --- a/src/components/focus-active-link.tsx +++ b/src/components/focus-active-link.tsx @@ -19,23 +19,23 @@ export function ScrollActiveLink({activeLinkSelector}: Props) { const target = e.target as HTMLElement; if (target.hasAttribute('data-sidebar-link')) { const top = target.getBoundingClientRect().top; - sessionStorage.setItem('sidebar-link-poisition', top.toString()); + sessionStorage.setItem('sidebar-link-position', top.toString()); } }; sidebar.addEventListener('click', onLinkClick); // track active link position on scroll as well - const onSidebarSroll = debounce(() => { + const onSidebarScroll = debounce(() => { const activeLink = document.querySelector(activeLinkSelector); if (activeLink) { const top = activeLink.getBoundingClientRect().top.toString(); - sessionStorage.setItem('sidebar-link-poisition', top); + sessionStorage.setItem('sidebar-link-position', top); } }, 50); - sidebar.addEventListener('scroll', onSidebarSroll); + sidebar.addEventListener('scroll', onSidebarScroll); return () => { sidebar.removeEventListener('click', onLinkClick); - sidebar.removeEventListener('scroll', onSidebarSroll); + sidebar.removeEventListener('scroll', onSidebarScroll); }; }, [activeLinkSelector]); @@ -45,7 +45,7 @@ export function ScrollActiveLink({activeLinkSelector}: Props) { if (!activeLink || !sidebar) { return; } - const previousBoundingRectTop = sessionStorage.getItem('sidebar-link-poisition'); + const previousBoundingRectTop = sessionStorage.getItem('sidebar-link-position'); const currentBoundingRectTop = activeLink.getBoundingClientRect().top; // scroll the sidebar to make sure the active link is visible & has the same position as when it was clicked if (!previousBoundingRectTop) { diff --git a/src/components/onboarding/index.tsx b/src/components/onboarding/index.tsx index e2e3e1e886d14..34113b0af2578 100644 --- a/src/components/onboarding/index.tsx +++ b/src/components/onboarding/index.tsx @@ -345,7 +345,7 @@ export function OnboardingOptionButtons({ const [options, setSelectedOptions] = useState( normalizedOptions.map(option => ({ ...option, - // default to unchecked if not excplicitly set + // default to unchecked if not explicitly set checked: option.checked ?? false, })) ); diff --git a/src/components/sandboxLink.tsx b/src/components/sandboxLink.tsx index e7fc31059810f..8cb4b3d756eda 100644 --- a/src/components/sandboxLink.tsx +++ b/src/components/sandboxLink.tsx @@ -31,7 +31,7 @@ type Props = { /** * Obtains the URL to the sandbox start endpoint. - * @param param0.scenario: One of the scenarios. Determins where in the sandbox + * @param param0.scenario: One of the scenarios. Determines where in the sandbox * the user will be landed. * @param param0.projectSlug: * One of react, python, react-native, android, iOS diff --git a/src/components/search/search.module.scss b/src/components/search/search.module.scss index 94d28ac749037..6b564adc036c5 100644 --- a/src/components/search/search.module.scss +++ b/src/components/search/search.module.scss @@ -24,7 +24,7 @@ --sgs-color-progress-indicator: var(--desatPurple1); - --sgs-color-result-heading-backgorund: var(--desatPurple4); + --sgs-color-result-heading-background: var(--desatPurple4); --sgs-color-result-heading-text: #ffffff; --sgs-color-hit-text: var(--desatPurple1); @@ -140,7 +140,7 @@ } .sgs-site-result-heading { - background-color: var(--sgs-color-result-heading-backgorund); + background-color: var(--sgs-color-result-heading-background); color: var(--sgs-color-result-heading-text); padding: 0.5rem 1rem; font-weight: normal; diff --git a/src/components/sidebar/collapsibleSidebarLink.tsx b/src/components/sidebar/collapsibleSidebarLink.tsx index 345c6e94c9585..e660102a6f2cf 100644 --- a/src/components/sidebar/collapsibleSidebarLink.tsx +++ b/src/components/sidebar/collapsibleSidebarLink.tsx @@ -23,7 +23,7 @@ interface SidebarLinkProps { className?: string; /** - * Indicates that the links are currently hidden. Overriden by isActive + * Indicates that the links are currently hidden. Overridden by isActive */ collapsed?: boolean | null; } diff --git a/src/components/sidebarTableOfContents/index.tsx b/src/components/sidebarTableOfContents/index.tsx index 5b1cf57988393..46b3127bfb476 100644 --- a/src/components/sidebarTableOfContents/index.tsx +++ b/src/components/sidebarTableOfContents/index.tsx @@ -44,7 +44,7 @@ function buildTocTree(toc: TocItem[]): TocItem[] { // Maintains our final constructed tree of TocItem's const items: TocItem[] = []; - // Used to aid in cosntructing our tree by maintaining the stack of items + // Used to aid in constructing our tree by maintaining the stack of items // ordered by depth. const stack: TocItem[] = []; @@ -163,7 +163,7 @@ export function SidebarTableOfContents() { } // account for the header height const rootMarginTop = 100; - // element is consiered in view if it is in the top 1/3 of the screen + // element is considered in view if it is in the top 1/3 of the screen const rootMarginBottomRaw = (2 / 3) * innerHeight - rootMarginTop; const rootMarginBottom = Math.floor(rootMarginBottomRaw) * -1; const observerOptions = { diff --git a/src/hotReloadWatcher.mjs b/src/hotReloadWatcher.mjs index 1998608510f7e..2000fdf830d4d 100644 --- a/src/hotReloadWatcher.mjs +++ b/src/hotReloadWatcher.mjs @@ -32,7 +32,7 @@ wss.on('connection', async function onConnect(ws) { const {signal} = ac; ws.on('close', () => ac.abort()); - // avoid fileystem chatter when you save a file + // avoid filesystem chatter when you save a file const sendReload = throttle(() => ws.send('reload'), 10); try { diff --git a/src/middleware.ts b/src/middleware.ts index 6a2ceaa9d20d8..60399d9bb687d 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -175,7 +175,7 @@ const handleRedirects = (request: NextRequest) => { } // If we don't find an exact match, we try to look for a :guide placeholder - const guidePlaceholer = '/guides/:guide/'; + const guidePlaceholder = '/guides/:guide/'; const guideRegex = /\/guides\/(\w+)\//g; const match = guideRegex.exec(urlPath); @@ -183,13 +183,13 @@ const handleRedirects = (request: NextRequest) => { return undefined; } - const pathWithPlaceholder = urlPath.replace(guideRegex, guidePlaceholer); + const pathWithPlaceholder = urlPath.replace(guideRegex, guidePlaceholder); const guide = match[1]; const redirectToGuide = redirectMap.get(pathWithPlaceholder); if (redirectToGuide) { const finalRedirectToPath = redirectToGuide.replace( - guidePlaceholer, + guidePlaceholder, `/guides/${guide}/` ); diff --git a/src/types/frontmatter.ts b/src/types/frontmatter.ts index 37c2801cce7d6..197a4e2c5a8b3 100644 --- a/src/types/frontmatter.ts +++ b/src/types/frontmatter.ts @@ -38,7 +38,7 @@ export interface FrontMatter { nextPage?: PaginationNavNode; /** * relative links to use in the "next steps" section of the page grid - * takes precendence over children when present + * takes precedence over children when present */ next_steps?: string[]; /** @@ -88,7 +88,7 @@ export interface FrontMatter { sidebar_title?: string; /** - * filesytem path to the source file, generated during build time + * filesystem path to the source file, generated during build time */ sourcePath?: string;