Skip to content

bruno

v4.0.0 Security

This release includes 1 security fix for security teams reviewing exposed deployments.

Published 3d API Development
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 1 known CVE

Topics

api-client api-testing automation developer-tools git graphql-client
+8 more
http-client javascript openapi openapi3 opensource rest testing testing-tools

Summary

AI summary

Broad release touches Others, fix, New contributors, and feat.

Full changelog

Changelog

Features

  • feat(app): migrate ctx API to bru.ctx by @gopu-bruno in #8557
  • feat(overview): show human-readable size for unloaded requests by @chirag-bruno in #8580
  • feat(description): file binary description implementation by @sid-bruno in #8434
  • feat(ai): AI model handling with reasoning support by @naman-bruno in #8539
  • feat: variable descriptions by @sid-bruno in #8269
  • feat(snapshot): implement active workspace tab type tracking by @sid-bruno in #8487
  • feat: Added the option for bruno version edit in the collection overview by @sachin-bruno in #8424
  • feat(auth): akamai auth integration by @shubh-bruno in #8199
  • feat(ai): add security preferences management to AI settings by @naman-bruno in #8453
  • feat: Added collection name and minor UI changes to the generate doc modal by @sachin-bruno in #8391
  • feat(cli): persist env, global-env, and collection var changes from scripts by @sanish-bruno in #8387
  • feat(import): set yml as a default file format across all types of imports by @sharan-bruno in #8363
  • feat(electron): add pkg configuration for installation location by @sid-bruno in #8403
  • feat(variables): persist scripted variable changes by default and re-enable disabled scripting APIs by @sanish-bruno in #8315
  • feat(ai): mode toggle UI and add AI support for folder & collection by @naman-bruno in #8385
  • feat(environments): split variables and secrets into separate tabs by @pooja-bruno in #8191
  • feat(ai): add AI chat sidebar with code block and diff view components by @naman-bruno in #8358
  • feat(ai): OpenAI-compatible endpoints support by @naman-bruno in #8365
  • feat(woof): add WOOF easter egg by @sanish-bruno in #8301
  • feat(app): introduce app functionality by @naman-bruno in #8338
  • feat(network-ui): added resizable columns in network panel by @sachin-thakur-bruno in #8265
  • feat: integrate Markdown into NotificationDetail by @naman-bruno in #8335
  • feat(ai): implement AI autocomplete by @naman-bruno in #8300
  • feat: add cli offline bundle script by @sid-bruno in #8192
  • feat: faster collection mount via file cache (Beta) by @chirag-bruno in #8222
  • feat(ai-assist): add docs generation with folder and collection context by @utkarsh-bruno and @ravindra-bruno in #8246
  • feat: Choose environments to include and show versions in the Generate Documentation modal by @sachin-bruno in #8268
  • feat: variable data types support by @lohit-bruno in #8046
  • feat: redesign notification modal by @prateek-bruno in #8140
  • feat(websocket): show full message name in a tooltip on hover by @pooja-bruno in #8299
  • feat(import): hide File Format option and default collections to Open… by @ravindra-bruno in #8247
  • feat: implement file mode by @naman-bruno, @shubh-bruno, and @chirag-bruno in #8258
  • feat(openapi-sync): preserve user-configured request values on sync by @sundram-bruno in #8204
  • feat(app): scroll to and highlight error line on script error by @pooja-bruno in #8183
  • feat(dev-tools-rquest-resize): dev tools details panel can be resized horizontally via a drag handle by @sachin-thakur-bruno in #8234
  • feat(dev-tools): adds sorting on columns with verticle borders by @sachin-thakur-bruno in #8238
  • feat(workspace): move external collections into the workspace by @gopu-bruno in #8196
  • feat: integrate AIAssist for script editing by @naman-bruno in #8220
  • feat(ws): multiple messages support in websockets by @pooja-bruno in #8115
  • feat(ai): implement organization policy checks for AI features by @naman-bruno
  • feat: add trial upgrade dynamic url flow by @prateek-bruno
  • feat(telemetry): add per-generation documentation telemetry (BRU-3673) by @arpit-bruno
  • feat: secrets managers ui revamp by @lohit-bruno
  • feat(telemetry): track v2 collection mount (file cache) usage by @chirag-bruno
  • feat(notifications): enhance notification handling by @naman-bruno
  • feat(runner): revamp runner results table by @chirag-bruno
  • feat(mount): support js files in collection parsing and tree building by @chirag-bruno
  • feat(electron): add pkg configuration for installation location by @sid-bruno

Fixes

  • fix(app): point generated docs to api-docs CDN path by @sundram-bruno in #8633
  • fix(variable-tooltip): mask secret variables of non-string dataType by @pooja-bruno in #8606
  • fix(description): bulk edit round trip looses description information by @sid-bruno in #8595
  • fix: remove broken markdown in README_pt_br by @BraianS in #8375
  • fix(ui): Added Horizontal Scroll On CollectionHeader to avoid overlapping and squeezing of contents by @ravindra-bruno in #8511
  • fix(ui): websocket and grpc tooltip overflow fixed in request panel by @sachin-thakur-bruno in #8544
  • fix: handle missing location header in redirect error response by @Pragadesh-45 in #7725
  • fix(oauth2): prevent code injection in OAuth2 callback handling by @abhishekp-bruno and @kOaDT in #8405
  • fix: system proxy refresh by @abhishekp-bruno and @sid-bruno in #8535
  • fix(ui): fixed overflow size column issue on first load by @sachin-thakur-bruno in #8525
  • fix(ToggleSwitch): correct onChange handler for response pane by @sid-bruno in #8520
  • fix(openapi): validate API spec imports by @adwait-bruno in #8322
  • fix(app): scope env variable/secret search per tab by @pooja-bruno in #8491
  • fix(request-panel): changed request panel static width to percentage width of screen width by @sachin-thakur-bruno in #8499
  • fix(snapshot): active workspace restoration from snapshot by @sid-bruno in #8392
  • fix(variables): correct scripted-variable persistence races and cross-request propagation by @sanish-bruno in #8406
  • fix: Draft icon indicator on Workspace Environment tab by @adwait-bruno in #8342
  • fix(app): move env save-all icon to header actions by @pooja-bruno in #8449
  • fix(import): linting issue in Import fails for gRPC request without URL in exported collection by @sharan-bruno in #8462
  • fix: serialize object variable values before copying to clipboard by @adwait-bruno in #8362
  • fix(import): Import fails for gRPC request without URL in exported collection by @sharan-bruno in #8367
  • fix(lang): filter multipart multi file by @sid-bruno in #8444
  • fix(workspace-watcher): use workspace-environment IPC channels so env file changes hot-reload by @sanish-bruno in #8370
  • fix(openapi): copy cURL icon now respects the theme variables by @adwait-bruno in #8314
  • fix: prevent redundant workspace switch toast by @DeviSriSaiCharan in #8229
  • fix(transient): scope bruno- lookup to transient base, not full path by @chirag-bruno in #8273
  • fix: correctly parse insomnia exported yaml by @prateek-bruno in #7966
  • fix(import): Postman import: OAuth2 tokenPlacement not set correctly, Header Prefix field hidden and value lost by @rajashreehj-bruno in #8197
  • fix(request-parser): preserve literal colon path segments without path param value by @utkarsh-bruno in #8157
  • fix(ui): open response pane at a minimum height on expand by @gopu-bruno in #8236
  • fix: Preserve folder order from seq attribute by @sachin-bruno in #8213
  • fix(sse): sse response body is empty in res.getBody() for app and cli by @sachin-thakur-bruno in #8212
  • fix: open panes at default size on expand from collapsed state by @gopu-bruno in #8133
  • fix(ui): prevent empty header row from persisting state and crashing CLI by @sharan-bruno in #8167
  • fix(cli): use path name for classname in JUnit reports instead of request URL by @sharan-bruno in #8169
  • fix(grpc): gRPC request loses all messages except the first on save for yaml collection by @sharan-bruno in #8203
  • fix(generate-code): generate code URL issues by @shubh-bruno in #8136
  • fix(ui): correct “modified” indicator state across collection, folder, request, and presets/auth tabs (#3386) by @sharan-bruno in #8027
  • fix: show correct New Request shortcut in response placeholder by @gengjiawen in #8116
  • fix(postman-import): OAuth2 Implicit Grant Type Silently Converted to Client Credentials on Import by @rajashreehj-bruno in #8113
  • fix(ui): use primary accent in OpenAPI Sync settings modal by @sundram-bruno in #8161
  • fix: Remove Beta badge from openAPI sync by @sachin-bruno in #8250
  • fix(ui): Version edit modal minor UI fixes by @sachin-bruno in #8549
  • fix(sidebar): remove deleted JS files from the sidebar by @pooja-bruno
  • fix(mount): build js items as script nodes instead of request nodes by @chirag-bruno
  • fix: with email open upgrade url by @prateek-bruno
  • fix: refresh full-git when git-ui is active tab by @prateek-bruno
  • fix(environments): keep env row's secret flag in sync with active tab by @shubh-bruno
  • fix(watcher): added a value to the present param on collection addWatcher method by @utkarsh-bruno
  • fix(mountv2): attach git watcher after collection watcher by @chirag-bruno
  • fix(environments): remove draft indicator from variable & secret tabs by @pooja-bruno
  • fix: update tab state structure for environment tabs and enhance tests by @sid-bruno
  • fix: throttle git calls to an acceptable amount by @sid-bruno
  • fix(cli): swap persistPaths / bailAbortSignal args in runSingleRequest calls by @sanish-bruno
  • fix(runner): Remove iteration data from runtime variables by @rajashreehj-bruno
  • fix: use portal to prevent z-index issues by @prateek-bruno
  • fix: Added file js as well in the doc generation order by @sachin-bruno
  • fix(git-provider): cache settings page for revisits by @gopu-bruno
  • fix(ui): OpenAPI sync "Syncs Used" counter not updating after sync by @sundram-bruno
  • fix: style responsiveness by @Pragadesh44-Bruno
  • fix: update lodash version to 4.18.1 across multiple packages by @sid-bruno

Others

  • test(sidebar): move sidebar locators to a dedicated file by @pooja-bruno in #8634
  • test(folder): folder no auth test description by @pooja-bruno in #8560
  • test: update openFolderRequest function for tests by @shubh-bruno in #8506
  • test(e2e): update runner to run on self-hosted instances by @sid-bruno in #8524
  • test: flaky bound action tests by @shubh-bruno in #8071
  • test: await the websocket visibility assertion so it actually runs by @voidmatcha in #8317
  • test: fix flaky tests by @bijin-bruno in #8319
  • test: update timeline item locators and improve response status code assertion by @sharan-bruno in #8202
  • test: update locators for save button in presets indicator tests by @sharan-bruno in #8201
  • docs: update guidelines on 'Readability and Abstractions' section by @gopu-bruno in #8623
  • test(tabs): enhance tab migration tests and add restoreTabs functionality by @utkarsh-bruno in #8609
  • refactor: separate app items from requests in sidebar & sorting logic by @naman-bruno in #8577
  • chore(electron): update notarization team ID and add app requirements by @sid-bruno in #8578
  • test(auth): fix modified-indicator inherit spec test by @pooja-bruno in #8550
  • refactor(environments): use tabState.environment.tab for env tabs by @pooja-bruno in #8528
  • style(app): app mode toggle button styling by @naman-bruno in #8523
  • chore: update coding conventions and best practices for this repo by @bijin-bruno in #8482
  • CDN docs url change by @sachin-bruno in #8466
  • chore: update lodash to version 4.18.1 across all packages by @sid-bruno in #8455
  • chore: improve bug report issue template by @rreyn-bruno in #8369
  • ci: use env vars instead of hard coded paths by @sid-bruno in #8389
  • test: workspace import and validation testcase by @mohit-bruno in #8349
  • chore: change app builder to bruno team by @sid-bruno in #8218
  • ci: group the runner to PR by @sid-bruno in #8343
  • test(preferences): set default preferences values by @bijin-bruno in #8321
  • test: fix test and update default retry in local to 0 by @bijin-bruno in #8316
  • test: run playwright e2e fully parallel by @bijin-bruno in #8313
  • add: change log tab by @naman-bruno and @utkarsh-bruno in #8289
  • test(core): current mount pipeline by @chirag-bruno in #7466
  • docs: update README to include Bruno CLI and Docker usage instructions by @abhishek-bruno in #8184
  • chore: remove deps array from playwright test by @pooja-bruno in #8181
  • test: import buildPreferencesLocators from its source module by @lohit-bruno
  • test: update test for externally added remotes by @sid-bruno
  • test: make git tests less flaky by @prateek-bruno
  • test(e2e): fix git-providers tests on local and CI by @Pragadesh44-Bruno
  • test(cli): use bru.runner.iterationData in bail-iter fixtures by @sanish-bruno
  • chore: fix typo by @prateek-bruno
  • switch file-mode sync e2e tests to shared helpers and retrying assertions by @ravindra-bruno
  • Telemetry tracking for AI and app features by @naman-bruno
  • import-workspace-limit: unlicensed user is blocked with the by @mohit-bruno
  • test(cli): cover persistence for iteration-count, bail, and parallel by @sanish-bruno
  • Added file-mode sync e2e tests to use view-mode toggle after upstream UI sync by @ravindra-bruno
  • File Format toggle for Bulk collection import by @ravindra-bruno
  • test: fix data test it for failing tests by @bijin-bruno
  • perf(runner): virtualize iterations table for high iteration counts by @chirag-bruno

New contributors

  • @rajashreehj-bruno made their first contribution in https://github.com/usebruno/bruno/pull/8113
  • @gengjiawen made their first contribution in https://github.com/usebruno/bruno/pull/8116
  • @sachin-thakur-bruno made their first contribution in https://github.com/usebruno/bruno/pull/8212
  • @sachin-bruno made their first contribution in https://github.com/usebruno/bruno/pull/8213
  • @bhavik168 made their first contribution in https://github.com/usebruno/bruno/pull/8245
  • @ravindra-bruno made their first contribution in https://github.com/usebruno/bruno/pull/8247
  • @utkarsh-bruno made their first contribution in https://github.com/usebruno/bruno/pull/8253
  • @abhisekm-bruno made their first contribution in https://github.com/usebruno/bruno/pull/8270
  • @vijayh-bruno made their first contribution in https://github.com/usebruno/bruno/pull/8278
  • @adwait-bruno made their first contribution in https://github.com/usebruno/bruno/pull/8314
  • @voidmatcha made their first contribution in https://github.com/usebruno/bruno/pull/8317
  • @mohit-bruno made their first contribution in https://github.com/usebruno/bruno/pull/8349
  • @BraianS made their first contribution in https://github.com/usebruno/bruno/pull/8375

Full Changelog: https://github.com/usebruno/bruno/compare/v3.5.3...v4.0.0

Security Fixes

  • OAuth2 callback handling now prevents code injection (fix(oauth2))

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track bruno

Get notified when new releases ship.

Sign up free

About bruno

All releases →

Beta — feedback welcome: [email protected]