Skip to content

Commit e5bc9a2

Browse files
dcramerNisanthan Nanthakumar
authored andcommitted
feat: Improve Product Guides structure (#2399)
- Expose dropdown for Product navigation - Move all product pages into /product/ - Re-order sidebar to push relevant (vs marketing/discovery) docs to the top
1 parent 2333172 commit e5bc9a2

File tree

125 files changed

+244
-202
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

125 files changed

+244
-202
lines changed

src/api/permissions.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ If you're building on top of Sentry's API (i.e using [Auth Tokens](/api/auth/)),
77
different API endpoints.
88

99
If you're looking for information on membership roles please visit the
10-
[membership](/accounts/membership/) documentation.
10+
[membership](/product/accounts/membership/) documentation.
1111

1212
### Organizations
1313

@@ -72,6 +72,6 @@ Events in sentry are immutable and can only be deleted by deleting the whole iss
7272

7373
<Alert level="warning" title="Note"><markdown>
7474

75-
Be aware that if you're using `sentry-cli` to [manage your releases](/cli/releases/), you'll need a token which also has `org:read` scope.
75+
Be aware that if you're using `sentry-cli` to [manage your releases](/product/cli/releases/), you'll need a token which also has `org:read` scope.
7676

7777
</markdown></Alert>

src/components/navbar.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import Search from "./search";
77
import SmartLink from "./smartLink";
88
import usePlatform, { usePlatformList } from "./hooks/usePlatform";
99

10+
import NavbarProductDropdown from "./navbarProductDropdown";
11+
1012
type Props = {
1113
platforms?: string[];
1214
};
@@ -21,11 +23,7 @@ export default ({ platforms }: Props): JSX.Element => {
2123
<div className="collapse navbar-collapse content-max" id="navbar-menu">
2224
<Search path={location.pathname} platforms={platforms} />
2325
<Nav className="justify-content-end" style={{ flex: 1 }}>
24-
<Nav.Item>
25-
<SmartLink className="nav-link" to="/product/">
26-
Product
27-
</SmartLink>
28-
</Nav.Item>
26+
<NavbarProductDropdown />
2927
<NavDropdown
3028
title={
3129
currentPlatform ? (
@@ -42,7 +40,7 @@ export default ({ platforms }: Props): JSX.Element => {
4240
"Platforms"
4341
)
4442
}
45-
id="platforms"
43+
id="nd-platforms"
4644
>
4745
{platformList.map(platform => (
4846
<SmartLink
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import React from "react";
2+
import { NavDropdown } from "react-bootstrap";
3+
import { graphql, useStaticQuery } from "gatsby";
4+
5+
import SmartLink from "./smartLink";
6+
import { sortPages } from "~src/utils";
7+
8+
const productNavQuery = graphql`
9+
query ProductNavQuery {
10+
allSitePage(
11+
filter: {
12+
path: { regex: "/^/product//" }
13+
context: { draft: { ne: false } }
14+
}
15+
) {
16+
nodes {
17+
path
18+
context {
19+
title
20+
sidebar_order
21+
}
22+
}
23+
}
24+
}
25+
`;
26+
27+
export default (): JSX.Element => {
28+
const data = useStaticQuery(productNavQuery);
29+
30+
const matches = sortPages(
31+
data.allSitePage.nodes.filter(
32+
n => n.context && n.context.title && n.path.match(/\//g).length === 3
33+
)
34+
);
35+
36+
return (
37+
<NavDropdown title="Product" id="nd-product">
38+
{matches.map(node => (
39+
<SmartLink to={node.path} key={node.path} className="dropdown-item">
40+
{node.context.title}
41+
</SmartLink>
42+
))}
43+
</NavDropdown>
44+
);
45+
};

src/components/sidebar.tsx

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,31 @@ export const Sidebar = ({ data }: ChildProps): JSX.Element => {
4444
root="product"
4545
title="Product"
4646
tree={tree}
47-
exclude={["/product/integrations/"]}
47+
exclude={[
48+
"/product/integrations/",
49+
"/product/cli/",
50+
"/product/security/",
51+
"/product/accounts/",
52+
"/product/relay/",
53+
]}
54+
/>
55+
<DynamicNav
56+
root="product/accounts"
57+
title="Account Management"
58+
tree={tree}
59+
/>
60+
<DynamicNav root="product/relay" title="Relay" tree={tree} />
61+
<DynamicNav root="product/cli" title="sentry-cli" tree={tree} />
62+
<DynamicNav
63+
root="product/security"
64+
title="Security and Legal"
65+
tree={tree}
4866
/>
4967
<DynamicNav
5068
root="product/integrations"
5169
title="Integrations"
5270
tree={tree}
5371
/>
54-
<DynamicNav root="accounts" title="Account Management" tree={tree} />
55-
<DynamicNav root="cli" title="sentry-cli" tree={tree} />
56-
<DynamicNav root="meta" title="Security and Legal" tree={tree} />
5772
<li className="mb-3" data-sidebar-branch>
5873
<div
5974
className="sidebar-title d-flex align-items-center mb-0"

src/docs/cli/index.mdx

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

src/docs/clients/javascript/sourcemaps.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Most of the process is the same whether you're using this SDK or the [new unifie
1414

1515
## Specify the release in Raven.js {#specify-the-release-in-raven-js}
1616

17-
If you are uploading source map artifacts yourself, you must specify the release in your Raven.js client configuration. Sentry will use the release name to associate digested event data with the files you’ve uploaded via the [releases API](/api/releases/), [sentry-cli](/cli/) or [sentry-webpack-plugin](https://github.com/getsentry/sentry-webpack-plugin). This step is optional if you are hosting source maps on the remote server, but still recommended.
17+
If you are uploading source map artifacts yourself, you must specify the release in your Raven.js client configuration. Sentry will use the release name to associate digested event data with the files you’ve uploaded via the [releases API](/api/releases/), [sentry-cli](/product/cli/) or [sentry-webpack-plugin](https://github.com/getsentry/sentry-webpack-plugin). This step is optional if you are hosting source maps on the remote server, but still recommended.
1818

1919
```javascript
2020
Raven.config("your-dsn", {

src/docs/clients/react-native/codepush.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@ $ export SENTRY_PROPERTIES=./ios/sentry.properties
3535
$ sentry-cli react-native appcenter YourApp ios ./build/codePush
3636
```
3737

38-
Exporting the `SENTRY_PROPERTIES` will tell sentry-cli to use the properties in your project. Alternatively, you can either pass it via parameters or a global settings file. To find more about this refer to [Working with Projects](/cli/configuration/#sentry-cli-working-with-projects).
38+
Exporting the `SENTRY_PROPERTIES` will tell sentry-cli to use the properties in your project. Alternatively, you can either pass it via parameters or a global settings file. To find more about this refer to [Working with Projects](/product/cli/configuration/#sentry-cli-working-with-projects).

src/docs/enriching-error-data/breadcrumbs.mdx

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

src/docs/product/accounts/index.mdx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: Account Management
3+
sidebar_order: 2000
4+
---
5+
6+
<PageGrid />

src/docs/accounts/pricing.mdx renamed to src/docs/product/accounts/pricing.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Business plans have the option to configure rate limits for each project that le
4949

5050
## Managing your event volume
5151

52-
If your projects have a high volume of events, you can control how many errors Sentry receives by reviewing Sentry's guide to [Manage Your Event Stream](/accounts/quotas/manage-event-stream-guide/).
52+
If your projects have a high volume of events, you can control how many errors Sentry receives by reviewing Sentry's guide to [Manage Your Event Stream](/product/accounts/quotas/manage-event-stream-guide/).
5353

5454
## FAQ
5555

@@ -322,7 +322,7 @@ Your plan will continue until the end of the current billing cycle. After this,
322322

323323
**Where can I find my previous invoices/receipts?**
324324

325-
Users with the role of [Billing or Owner](/accounts/membership/) can find all previous invoices by going to **Organization > Usage & Billing > Usage & Payments > Receipts**.
325+
Users with the role of [Billing or Owner](/product/accounts/membership/) can find all previous invoices by going to **Organization > Usage & Billing > Usage & Payments > Receipts**.
326326

327327
<Note><markdown>
328328

src/docs/accounts/quotas/index.mdx renamed to src/docs/product/accounts/quotas/index.mdx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,35 +26,35 @@ Sentry completes a thorough evaluation of each event to determine if it counts t
2626

2727
1. **SDK configuration**
2828

29-
The SDK configuration either allows the event or filters the event out. For more information, see [Manage Your Event Stream](/accounts/quotas/manage-event-stream-guide/) or [Filtering Events](/platform-redirect/?next=/configuration/filtering/).
29+
The SDK configuration either allows the event or filters the event out. For more information, see [Manage Your Event Stream](/product/accounts/quotas/manage-event-stream-guide/) or [Filtering Events](/platform-redirect/?next=/configuration/filtering/).
3030

3131
2. **SDK sample rate**
3232

3333
If a sample rate is defined for the SDK, the SDK evaluates whether this event should be sent as a representative fraction of events. Setting a sample rate is documented for each SDK. The SDK sample rate is not dynamic; changing it requires re-deployment. In addition, setting an SDK sample rate limits visibility into the source of events. Setting a rate limit for your project may better suit your needs.
3434

3535
3. **Quota availability**
3636

37-
Events that exceed your quota are not sent. To add to your quota or review what happens when you exceed it, see [Increasing Quotas](/accounts/quotas/#increasing-quotas).
37+
Events that exceed your quota are not sent. To add to your quota or review what happens when you exceed it, see [Increasing Quotas](/product/accounts/quotas/#increasing-quotas).
3838

3939
4. **Event repetition**
4040

4141
- If you have intervened to Delete and Discard an issue, then _future_ events with the same fingerprint do not count toward your quota.
4242
- If the previous event was resolved, this event counts toward your quota because it may represent a regression in your code.
43-
- If you have intervened to ignore alerts about events with the same fingerprint, this event counts toward your quota because the event is still occurring. For more information, see [Inbound Filters](/accounts/quotas/#inbound-data-filters).
43+
- If you have intervened to ignore alerts about events with the same fingerprint, this event counts toward your quota because the event is still occurring. For more information, see [Inbound Filters](/product/accounts/quotas/#inbound-data-filters).
4444

4545
5. **Spike protection**
4646

47-
Sentry’s spike protection prevents huge overages from consuming your event capacity; spike protection is not currently available for transactions. For more information, see [Spike Protection](/accounts/quotas/#spike-protection).
47+
Sentry’s spike protection prevents huge overages from consuming your event capacity; spike protection is not currently available for transactions. For more information, see [Spike Protection](/product/accounts/quotas/#spike-protection).
4848

4949
In addition, depending on your project’s configuration and the plan you subscribe to, Sentry may also check:
5050

5151
6. **Rate limit for the project**
5252

53-
If the error event rate limit for the project has been exceeded, and your subscription allows, the event will not be counted. For more information, see [Rate Limiting in our guide to Manage Your Event Stream](/accounts/quotas/manage-event-stream-guide/#6-rate-limiting) or [Error Event Limits](/accounts/quotas/#error-event-limits).
53+
If the error event rate limit for the project has been exceeded, and your subscription allows, the event will not be counted. For more information, see [Rate Limiting in our guide to Manage Your Event Stream](/product/accounts/quotas/manage-event-stream-guide/#6-rate-limiting) or [Error Event Limits](/product/accounts/quotas/#error-event-limits).
5454

5555
7. **Inbound filters**
5656

57-
If any inbound filter is set for this type of error event, and your subscription allows, the event will not be counted. For more information, see [Inbound Filters in our guide to Manage Your Event Stream](/accounts/quotas/manage-event-stream-guide/#3-inbound-data-filters) or [Inbound Data Filter](/accounts/quotas/#inbound-data-filters).
57+
If any inbound filter is set for this type of error event, and your subscription allows, the event will not be counted. For more information, see [Inbound Filters in our guide to Manage Your Event Stream](/product/accounts/quotas/manage-event-stream-guide/#3-inbound-data-filters) or [Inbound Data Filter](/product/accounts/quotas/#inbound-data-filters).
5858

5959
After these checks are processed, the event counts toward your quota. It is accepted into Sentry, where it persists and is stored.
6060

@@ -141,7 +141,7 @@ After these checks are processed, the event counts toward your quota. It is acce
141141

142142
Add to your quota at any time during your billing period, either by upgrading to a higher tier or by increasing your on-demand capacity. While the available plans fit most individual and business needs, Sentry is designed to handle large throughput. If your team needs more, we’re happy to help. Reach out to our sales team at [[email protected]](mailto:[email protected]) to learn more about increasing capacity.
143143

144-
If you’ve exceeded your quota threshold, the server will respond with a 429 HTTP status code. However, if this is your first time exceeding quota, you'll be entered into a one-time grace period. For more information, see this [Help article](https://help.sentry.io/hc/en-us/articles/115000154554-What-happens-when-I-run-out-of-event-capacity-and-a-grace-period-is-triggered-). In addition, you can specify a spending cap for on-demand capacity if you need additional events; for example, if you’re rolling out a new version and anticipate more events this month. For more information, see [On-Demand Spending Cap](/accounts/pricing/#on-demand-cap).
144+
If you’ve exceeded your quota threshold, the server will respond with a 429 HTTP status code. However, if this is your first time exceeding quota, you'll be entered into a one-time grace period. For more information, see this [Help article](https://help.sentry.io/hc/en-us/articles/115000154554-What-happens-when-I-run-out-of-event-capacity-and-a-grace-period-is-triggered-). In addition, you can specify a spending cap for on-demand capacity if you need additional events; for example, if you’re rolling out a new version and anticipate more events this month. For more information, see [On-Demand Spending Cap](/product/accounts/pricing/#on-demand-cap).
145145

146146
## Limiting Events
147147

@@ -151,7 +151,7 @@ Per-key rate limits allow you to set the maximum volume of error events a key wi
151151

152152
For example, you may have a project in production that generates a lot of noise. A rate limit allows you to set the maximum amount of data to “500 events per minute”. Additionally, you can create a second key for the same project for your staging environment, which is unlimited, ensuring your QA process is still untouched.
153153

154-
To set up rate limits, navigate to **[Project] » Client Keys » Configure**. Select an individual key or create a new one, then you’ll be able to define a rate limit as well as view a breakdown of events received by that key. For additional information and examples, see [Rate Limiting in our guide to Manage Your Event Stream](/accounts/quotas/manage-event-stream-guide/#6-rate-limiting).
154+
To set up rate limits, navigate to **[Project] » Client Keys » Configure**. Select an individual key or create a new one, then you’ll be able to define a rate limit as well as view a breakdown of events received by that key. For additional information and examples, see [Rate Limiting in our guide to Manage Your Event Stream](/product/accounts/quotas/manage-event-stream-guide/#6-rate-limiting).
155155

156156
<Alert>Per-key rate limiting is available only for Business plans.</Alert>
157157

@@ -171,7 +171,7 @@ In some cases, the data you’re receiving in Sentry is hard to filter, or you d
171171
- From specific release versions of your code
172172
- From certain IP addresses.
173173

174-
Explore these by navigating to **[Project] » Project Settings » Inbound Filters**. Commonly-set filters are discussed here for your quick reference. For additional information and examples, see [Inbound Data Filters in our guide to Manage Your Event Stream](/accounts/quotas/manage-event-stream-guide/#inbound-data-filters). Commonly-set filters include:
174+
Explore these by navigating to **[Project] » Project Settings » Inbound Filters**. Commonly-set filters are discussed here for your quick reference. For additional information and examples, see [Inbound Data Filters in our guide to Manage Your Event Stream](/product/accounts/quotas/manage-event-stream-guide/#inbound-data-filters). Commonly-set filters include:
175175

176176
### IP Filters
177177

0 commit comments

Comments
 (0)