@@ -112,7 +112,7 @@ export function PlansTable({ className }: { className?: string }) {
112
112
< tbody >
113
113
< TableSubheaderRow
114
114
icon = { < LuUserRound /> }
115
- title = "Team"
115
+ title = "Organization and Team"
116
116
description = "Structure teams your way. No enterprise tax."
117
117
/>
118
118
@@ -130,7 +130,28 @@ export function PlansTable({ className }: { className?: string }) {
130
130
</ tr >
131
131
132
132
< tr >
133
- < PlansTableCell className = "whitespace-pre" > Single Sign-On (SSO)</ PlansTableCell >
133
+ < PlansTableCell className = "whitespace-pre" >
134
+ < TextLink href = "/docs/management/sso-oidc-provider" target = "_blank" >
135
+ Single Sign-On (SSO)
136
+ </ TextLink >
137
+ </ PlansTableCell >
138
+ < PlansTableCell activePlan = { activePlan } plan = "Hobby" >
139
+ { YES }
140
+ </ PlansTableCell >
141
+ < PlansTableCell activePlan = { activePlan } plan = "Pro" >
142
+ { YES }
143
+ </ PlansTableCell >
144
+ < PlansTableCell activePlan = { activePlan } plan = "Enterprise" >
145
+ { YES }
146
+ </ PlansTableCell >
147
+ </ tr >
148
+
149
+ < tr >
150
+ < PlansTableCell className = "whitespace-pre" >
151
+ < TextLink href = "/docs/management/members-roles-permissions" target = "_blank" >
152
+ Role-based Access Control (RBAC)
153
+ </ TextLink >
154
+ </ PlansTableCell >
134
155
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
135
156
{ YES }
136
157
</ PlansTableCell >
@@ -144,7 +165,9 @@ export function PlansTable({ className }: { className?: string }) {
144
165
145
166
< tr >
146
167
< PlansTableCell className = "whitespace-pre" >
147
- Role-based Access Control (RBAC)
168
+ < TextLink href = "/docs/graphql-api" target = "_blank" >
169
+ GraphQL Management API
170
+ </ TextLink >
148
171
</ PlansTableCell >
149
172
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
150
173
{ YES }
@@ -177,7 +200,11 @@ export function PlansTable({ className }: { className?: string }) {
177
200
</ tr >
178
201
179
202
< tr >
180
- < PlansTableCell > Subgraph/schema publishes</ PlansTableCell >
203
+ < PlansTableCell >
204
+ < TextLink target = "_blank" href = "/docs/schema-registry#publish-a-schema" >
205
+ Subgraph/schema publishes
206
+ </ TextLink >
207
+ </ PlansTableCell >
181
208
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
182
209
Unlimited
183
210
</ PlansTableCell >
@@ -190,7 +217,11 @@ export function PlansTable({ className }: { className?: string }) {
190
217
</ tr >
191
218
192
219
< tr >
193
- < PlansTableCell > Subgraph/schema checks</ PlansTableCell >
220
+ < PlansTableCell >
221
+ < TextLink target = "_blank" href = "/docs/schema-registry#check-a-schema" >
222
+ Subgraph/schema checks
223
+ </ TextLink >
224
+ </ PlansTableCell >
194
225
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
195
226
Unlimited
196
227
</ PlansTableCell >
@@ -203,7 +234,11 @@ export function PlansTable({ className }: { className?: string }) {
203
234
</ tr >
204
235
205
236
< tr >
206
- < PlansTableCell > Schema Contracts</ PlansTableCell >
237
+ < PlansTableCell >
238
+ < TextLink href = "/docs/schema-registry/contracts" target = "_blank" >
239
+ Schema Contracts
240
+ </ TextLink >
241
+ </ PlansTableCell >
207
242
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
208
243
Unlimited
209
244
</ PlansTableCell >
@@ -216,7 +251,11 @@ export function PlansTable({ className }: { className?: string }) {
216
251
</ tr >
217
252
218
253
< tr >
219
- < PlansTableCell > Schema Linting</ PlansTableCell >
254
+ < PlansTableCell >
255
+ < TextLink href = "/docs/schema-registry/schema-policy" target = "_blank" >
256
+ Schema Linting
257
+ </ TextLink >
258
+ </ PlansTableCell >
220
259
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
221
260
{ YES }
222
261
</ PlansTableCell >
@@ -235,7 +274,24 @@ export function PlansTable({ className }: { className?: string }) {
235
274
/>
236
275
237
276
< tr >
238
- < PlansTableCell className = "whitespace-pre" > Operations per month</ PlansTableCell >
277
+ < PlansTableCell className = "whitespace-pre" >
278
+ < TextLink href = " /docs/schema-registry/usage-reporting" target = "_blank" >
279
+ Operation usage reporting and insights
280
+ </ TextLink >
281
+ </ PlansTableCell >
282
+ < PlansTableCell activePlan = { activePlan } plan = "Hobby" >
283
+ { YES }
284
+ </ PlansTableCell >
285
+ < PlansTableCell activePlan = { activePlan } plan = "Pro" >
286
+ { YES }
287
+ </ PlansTableCell >
288
+ < PlansTableCell activePlan = { activePlan } plan = "Enterprise" >
289
+ { YES }
290
+ </ PlansTableCell >
291
+ </ tr >
292
+
293
+ < tr >
294
+ < PlansTableCell className = "whitespace-pre" > Usage reporting per month</ PlansTableCell >
239
295
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
240
296
1M operations per month
241
297
</ PlansTableCell >
@@ -263,7 +319,14 @@ export function PlansTable({ className }: { className?: string }) {
263
319
</ tr >
264
320
265
321
< tr >
266
- < PlansTableCell > Traffic-based breaking change detection</ PlansTableCell >
322
+ < PlansTableCell >
323
+ < TextLink
324
+ href = "/docs/management/targets#conditional-breaking-changes"
325
+ target = "_blank"
326
+ >
327
+ Traffic-based breaking change detection
328
+ </ TextLink >
329
+ </ PlansTableCell >
267
330
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
268
331
7 days
269
332
</ PlansTableCell >
@@ -354,7 +417,48 @@ export function PlansTable({ className }: { className?: string }) {
354
417
</ tr >
355
418
356
419
< tr >
357
- < PlansTableCell > Subscriptions over WebSocket and SSE</ PlansTableCell >
420
+ < PlansTableCell >
421
+ < TextLink target = "_blank" href = "/docs/gateway/subscriptions" >
422
+ Subscriptions over WebSocket and SSE
423
+ </ TextLink >
424
+ </ PlansTableCell >
425
+ < PlansTableCell activePlan = { activePlan } plan = "Hobby" >
426
+ { YES }
427
+ </ PlansTableCell >
428
+ < PlansTableCell activePlan = { activePlan } plan = "Pro" >
429
+ { YES }
430
+ </ PlansTableCell >
431
+ < PlansTableCell activePlan = { activePlan } plan = "Enterprise" >
432
+ { YES }
433
+ </ PlansTableCell >
434
+ </ tr >
435
+
436
+ < tr >
437
+ < PlansTableCell >
438
+ < TextLink target = "_blank" href = "/docs/gateway/authorization-authentication" >
439
+ JWT authentication
440
+ </ TextLink >
441
+ </ PlansTableCell >
442
+ < PlansTableCell activePlan = { activePlan } plan = "Hobby" >
443
+ { YES }
444
+ </ PlansTableCell >
445
+ < PlansTableCell activePlan = { activePlan } plan = "Pro" >
446
+ { YES }
447
+ </ PlansTableCell >
448
+ < PlansTableCell activePlan = { activePlan } plan = "Enterprise" >
449
+ { YES }
450
+ </ PlansTableCell >
451
+ </ tr >
452
+
453
+ < tr >
454
+ < PlansTableCell >
455
+ < TextLink
456
+ target = "_blank"
457
+ href = "docs/gateway/authorization-authentication#rolescope-based-authentication-rbac-with-requiresscope-directive"
458
+ >
459
+ Role-based Access Control (RBAC)
460
+ </ TextLink >
461
+ </ PlansTableCell >
358
462
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
359
463
{ YES }
360
464
</ PlansTableCell >
@@ -367,7 +471,11 @@ export function PlansTable({ className }: { className?: string }) {
367
471
</ tr >
368
472
369
473
< tr >
370
- < PlansTableCell > JWT authentication</ PlansTableCell >
474
+ < PlansTableCell >
475
+ < TextLink target = "_blank" href = "/docs/gateway/persisted-documents" >
476
+ Persisted documents
477
+ </ TextLink >
478
+ </ PlansTableCell >
371
479
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
372
480
{ YES }
373
481
</ PlansTableCell >
@@ -380,7 +488,14 @@ export function PlansTable({ className }: { className?: string }) {
380
488
</ tr >
381
489
382
490
< tr >
383
- < PlansTableCell > Persisted documents</ PlansTableCell >
491
+ < PlansTableCell >
492
+ < TextLink
493
+ target = "_blank"
494
+ href = "/docs/gateway/monitoring-tracing#opentelemetry-traces"
495
+ >
496
+ OpenTelemetry (OTEL) tracing
497
+ </ TextLink >
498
+ </ PlansTableCell >
384
499
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
385
500
{ YES }
386
501
</ PlansTableCell >
@@ -393,7 +508,14 @@ export function PlansTable({ className }: { className?: string }) {
393
508
</ tr >
394
509
395
510
< tr >
396
- < PlansTableCell > OpenTelemetry (OTEL) tracing</ PlansTableCell >
511
+ < PlansTableCell >
512
+ < TextLink
513
+ target = "_blank"
514
+ href = "/docs/gateway/monitoring-tracing#prometheus-metrics"
515
+ >
516
+ Prometheus metrics
517
+ </ TextLink >
518
+ </ PlansTableCell >
397
519
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
398
520
{ YES }
399
521
</ PlansTableCell >
@@ -406,7 +528,14 @@ export function PlansTable({ className }: { className?: string }) {
406
528
</ tr >
407
529
408
530
< tr >
409
- < PlansTableCell > Prometheus metrics</ PlansTableCell >
531
+ < PlansTableCell >
532
+ < TextLink
533
+ target = "_blank"
534
+ href = "/docs/gateway/other-features/security/demand-control"
535
+ >
536
+ Demand control
537
+ </ TextLink >
538
+ </ PlansTableCell >
410
539
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
411
540
{ YES }
412
541
</ PlansTableCell >
@@ -419,7 +548,14 @@ export function PlansTable({ className }: { className?: string }) {
419
548
</ tr >
420
549
421
550
< tr >
422
- < PlansTableCell > Demand control</ PlansTableCell >
551
+ < PlansTableCell >
552
+ < TextLink
553
+ target = "_blank"
554
+ href = "/docs/gateway/other-features/security/rate-limiting"
555
+ >
556
+ Rate limiting
557
+ </ TextLink >
558
+ </ PlansTableCell >
423
559
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
424
560
{ YES }
425
561
</ PlansTableCell >
@@ -432,7 +568,14 @@ export function PlansTable({ className }: { className?: string }) {
432
568
</ tr >
433
569
434
570
< tr >
435
- < PlansTableCell > Rate limiting</ PlansTableCell >
571
+ < PlansTableCell >
572
+ < TextLink
573
+ target = "_blank"
574
+ href = "/docs/gateway/other-features/security/hmac-signature"
575
+ >
576
+ Subgraph request signing
577
+ </ TextLink >
578
+ </ PlansTableCell >
436
579
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
437
580
{ YES }
438
581
</ PlansTableCell >
@@ -445,7 +588,14 @@ export function PlansTable({ className }: { className?: string }) {
445
588
</ tr >
446
589
447
590
< tr >
448
- < PlansTableCell > Subgraph request signing</ PlansTableCell >
591
+ < PlansTableCell >
592
+ < TextLink
593
+ target = "_blank"
594
+ href = "/docs/gateway/other-features/performance/response-caching"
595
+ >
596
+ Response caching
597
+ </ TextLink >
598
+ </ PlansTableCell >
449
599
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
450
600
{ YES }
451
601
</ PlansTableCell >
@@ -458,7 +608,11 @@ export function PlansTable({ className }: { className?: string }) {
458
608
</ tr >
459
609
460
610
< tr >
461
- < PlansTableCell > Response caching</ PlansTableCell >
611
+ < PlansTableCell >
612
+ < TextLink target = "_blank" href = "/docs/gateway/defer-stream" >
613
+ Incremental Delivery (Defer & Stream )
614
+ </ TextLink >
615
+ </ PlansTableCell >
462
616
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
463
617
{ YES }
464
618
</ PlansTableCell >
@@ -471,7 +625,11 @@ export function PlansTable({ className }: { className?: string }) {
471
625
</ tr >
472
626
473
627
< tr >
474
- < PlansTableCell > Custom plugins</ PlansTableCell >
628
+ < PlansTableCell >
629
+ < TextLink target = "_blank" href = "/docs/gateway/other-features/custom-plugins" >
630
+ Custom plugins
631
+ </ TextLink >
632
+ </ PlansTableCell >
475
633
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
476
634
{ YES }
477
635
</ PlansTableCell >
@@ -661,7 +819,11 @@ export function PlansTable({ className }: { className?: string }) {
661
819
</ PlansTableCell >
662
820
</ tr >
663
821
< tr >
664
- < PlansTableCell > Audit logs</ PlansTableCell >
822
+ < PlansTableCell >
823
+ < TextLink target = "_blank" href = "/docs/management/audit-logs" >
824
+ Audit logs
825
+ </ TextLink >
826
+ </ PlansTableCell >
665
827
< PlansTableCell activePlan = { activePlan } plan = "Hobby" >
666
828
{ YES }
667
829
</ PlansTableCell >
0 commit comments