End-to-end setup for the Test Set Results by Iteration widget: auth, dev harness, iteration picker, and deployment.
- Node 18+ and npm
- A Rally workspace with at least one project, iteration, and test sets
- A Rally API key (instructions below)
- Sign in to Rally.
- Open the API key page: https://rally1.rallydev.com/#/api_key (or click your avatar → API Keys).
- Click Create, give the key a name (e.g.
widget-dev), pick the workspaces it can access, and copy the full key. It starts with_and is ~43 chars long. - Treat it like a password — do not commit it.
The Vite dev server proxies /slm/* (WSAPI) requests to Rally. It needs a
server URL and an API key. Options are read in this order, first non-empty wins:
Create auth.json in the widget folder:
{
"server": "https://rally1.rallydev.com",
"apiKey": "_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}auth.json is in .gitignore and never committed. The deploy CLI also reads
this file.
export RALLY_SERVER=https://rally1.rallydev.com
export RALLY_API_KEY=_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxOr drop a .env.local file in the widget folder (Vite picks it up):
RALLY_SERVER=https://rally1.rallydev.com
RALLY_API_KEY=_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxRestart npm run dev after changing auth credentials.
npm install
npm run devOpen http://localhost:5173 in your browser. The widget runs in mock mode by default — no Rally connection needed. Mock data shows Sprint 3 with:
- 15 test results across 5 test sets (Authentication, Reporting, Performance, API, Compliance)
- 5 remaining tests not yet run
- Summary: 9 Pass, 3 Fail, 1 Error, 1 Blocked, 1 Inconclusive, 5 Not Run
To use live Rally data, add ?live=true to the URL:
http://localhost:5173?live=true
In live mode, use the Iteration picker in the widget header to select an iteration. The picker auto-selects the current (active) iteration on load.
In mock mode, the picker is replaced with a label showing Sprint 3 (mock).
The widget issues these WSAPI queries when an iteration is selected:
- TestSet — all test sets scheduled to the iteration in the current project
- TestCase (per test set) — all test cases assigned to each test set
- TestCaseResult (per test set) — all test case results for each test set
These queries run in parallel for each test set. For iterations with many test sets, the first load may take several seconds.
npx widget-ai deployThis builds and deploys the widget as a Rally Custom View. The first run creates the view; subsequent runs update it in place. The Custom View URL is printed at the end.
After deploying, navigate to the Custom View in Rally. You must be viewing a page with an Iteration view filter active (or select an iteration directly in the widget header) for the widget to show data.
No auth.json found— create one as shown in Option A above.401 Unauthorized— API key is revoked or missing workspace access.dist/app.js not found— build failed; re-runnpm run buildfirst.
For this widget to show data in live mode, your project needs:
- At least one Iteration with a start and end date
- At least one TestSet scheduled to that iteration (
TestSet.Iteration) - TestCases associated with the TestSet via
TestCase.TestSetscollection - TestCaseResults linked to those TestCases and TestSets
The widget shows any TestCase in the iteration's TestSets that has no result in the "Tests Remaining to Run" section — they don't need a verdict to appear.
- README — widget overview and features
- Broadcom spec — original functional spec
- Rally WSAPI docs