Commit e45ff5f
authored
## Summary
The Sentry API rejects grouped dashboard widgets without a limit.
Previously the CLI threw `ValidationError` when users passed
`--group-by` without `--limit`:
```
$ sentry dashboard widget add 'My Dashboard' "By Browser" --display line --query count --group-by browser.name
Error: Widgets with --group-by require --limit. Add --limit <n> …
```
The Sentry UI defaults to 5 for grouped widgets, so the CLI now applies
the same default transparently and emits an `[info]` nudge so users
understand what happened.
```
$ sentry dashboard widget add 'My Dashboard' "By Browser" --display line --query count --group-by browser.name
[info] [dashboard] Auto-defaulting --limit to 5 for grouped widget. Pass --limit <n> to override.
Widget added.
```
## Design
- `DEFAULT_GROUP_BY_LIMIT = 5` + `autoDefaultGroupLimit()` +
`applyGroupLimitAutoDefault()` live in
`src/commands/dashboard/resolve.ts` and are shared between `widget add`
and `widget edit` (no duplication, no drift).
- The helper only fires when the user **explicitly** passes
`--group-by`. Auto-defaulted columns like `["issue"]` on `dataset=issue
display=table` still produce a widget without a limit
(regression-tested).
- Explicit `--limit` always wins over the default. If the user literally
passes `--limit 5` the log is silenced (no spurious info line).
- For edit: adding `--group-by` to a widget that already has a limit
preserves the existing value; only unset limits get filled.
- Removed the now-dead `validateGroupByRequiresLimit` helper.
## Tests
- Unit tests for `autoDefaultGroupLimit` and
`applyGroupLimitAutoDefault` covering all combinations of
grouped/ungrouped × explicit/empty limit.
- New `add` tests: auto-default fires on group-by; explicit `--limit`
wins; ungrouped widgets don't get a limit; issue/table default columns
do NOT trigger auto-default.
- New `edit` tests: auto-default fires when adding `--group-by`;
explicit `--limit` wins; existing widget limit preserved when adding
`--group-by`; no auto-default for ungrouped `--query`-only edits.
All unit tests pass (5543 tests).
## References
Based on work in #784 by @cursor; split out per review.
Fixes CLI-WW.
1 parent cde2c0e commit e45ff5f
5 files changed
Lines changed: 308 additions & 46 deletions
File tree
- src/commands/dashboard
- widget
- test/commands/dashboard
- widget
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
339 | 339 | | |
340 | 340 | | |
341 | 341 | | |
342 | | - | |
343 | | - | |
| 342 | + | |
344 | 343 | | |
345 | | - | |
346 | | - | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
347 | 347 | | |
348 | | - | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
349 | 365 | | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
358 | 370 | | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
359 | 375 | | |
360 | 376 | | |
361 | 377 | | |
362 | 378 | | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
363 | 410 | | |
364 | 411 | | |
365 | 412 | | |
| |||
473 | 520 | | |
474 | 521 | | |
475 | 522 | | |
476 | | - | |
477 | | - | |
478 | | - | |
479 | | - | |
480 | | - | |
| 523 | + | |
| 524 | + | |
481 | 525 | | |
482 | 526 | | |
483 | 527 | | |
| |||
495 | 539 | | |
496 | 540 | | |
497 | 541 | | |
498 | | - | |
| 542 | + | |
499 | 543 | | |
500 | 544 | | |
501 | 545 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
36 | | - | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| |||
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
131 | | - | |
132 | | - | |
133 | | - | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
134 | 136 | | |
135 | 137 | | |
136 | 138 | | |
137 | 139 | | |
138 | | - | |
139 | | - | |
| 140 | + | |
140 | 141 | | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
| 142 | + | |
| 143 | + | |
148 | 144 | | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
160 | 150 | | |
161 | 151 | | |
162 | 152 | | |
| |||
166 | 156 | | |
167 | 157 | | |
168 | 158 | | |
169 | | - | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
170 | 167 | | |
171 | 168 | | |
172 | | - | |
| 169 | + | |
173 | 170 | | |
174 | 171 | | |
175 | 172 | | |
| |||
184 | 181 | | |
185 | 182 | | |
186 | 183 | | |
187 | | - | |
| 184 | + | |
188 | 185 | | |
189 | 186 | | |
190 | 187 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
10 | 13 | | |
11 | 14 | | |
12 | 15 | | |
| |||
623 | 626 | | |
624 | 627 | | |
625 | 628 | | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
513 | 513 | | |
514 | 514 | | |
515 | 515 | | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
516 | 592 | | |
517 | 593 | | |
518 | 594 | | |
| |||
0 commit comments