Documentation Menu▼

What’s New in Veyak v0.8.0

Veyak v0.8.0 is one of the biggest updates yet, introducing multi-language request scripting, collection-scoped environments, universal import/export capabilities, drag-and-drop workspace tree reordering, and end-to-end environment variable interpolation.


⚡ Highlights at a Glance

Feature Description Reference
Pre & Post-Request Scripting Execute JavaScript (QuickJS) and multi-language scripts to mutate requests, run test assertions, and persist env variables Scripting Guide
Collection-Scoped Environments Environments are now isolated per collection with independent variable sets and active environment selectors Environments Guide
Universal Import & Export 1-click import and export for Postman (v2.1), Insomnia (v4/v5), Bruno, and Yaak collections Import & Export Guide
Drag-and-Drop Reordering Reorder requests and folders, or move them between folders and collections directly in the sidebar tree Collections Guide
Expanded Variable Interpolation Variable {{token}} interpolation now covers form-data, url-encoded bodies, cookies, and authentication fields Issue #51
Automatic Cookie Transmission Request cookies configured in the Cookies tab are automatically sent via HTTP Cookie headers Cookies Guide

🧪 1. Multi-Language Pre & Post-Request Scripting

Veyak v0.8.0 embeds a high-performance QuickJS JavaScript engine directly inside the native Rust core, along with support for external scripting runtimes (Python, Go, Rust).

Pre-Request Scripts

Run scripts right before a request leaves your machine:

  • Generate dynamic timestamps, nonces, and HMAC signatures.
  • Inject dynamic request headers or mutate query parameters.
  • Read active environment variables via veyak.environment.get("KEY").

Post-Request Scripts & Test Assertions

Run scripts immediately after a response is received:

  • Parse response JSON and extract tokens directly into collection environments via veyak.environment.set("TOKEN", token).
  • Write contract assertions using veyak.test("status is 200", () => { ... }).
  • Inspect logs in the Console tab and test outcomes in the Tests tab of the Response Viewer.
// Example: Post-request token capture and assertions
veyak.test("Status code is 200", () => {
  if (veyak.response.status !== 200) {
    throw new Error(`Expected 200, got ${veyak.response.status}`);
  }
});

const data = veyak.response.json();
if (data.token) {
  veyak.environment.set("AUTH_TOKEN", data.token);
  console.log("Successfully extracted and persisted AUTH_TOKEN!");
}

Learn more in the Pre & Post-Request Scripting Documentation.


🗂️ 2. Collection-Scoped Environments

Environments have transitioned from global workspace scope to collection-level scope:

  • Strict Isolation: Each collection maintains its own set of environments (e.g., Development, Staging, Production).
  • Independent Active State: You can have Collection A pointed to Staging while Collection B points to Localhost concurrently.
  • Auto-Syncing: When scripts update environment variables via veyak.environment.set(), changes are automatically persisted to the collection’s active environment.

Learn more in the Environments Documentation.


🔄 3. Universal Import & Export

Migrate your entire API inventory seamlessly into Veyak without manual reconfiguration.

  • Auto-Detection Engine: Drop or select any JSON/YAML export file — Veyak automatically detects whether it’s Postman, Insomnia, Bruno, or Yaak.
  • Supported Formats:
    • Postman: Collection v2.1 (.json) & Environment files.
    • Insomnia: Export formats v4 and v5 (.json, .yaml).
    • Bruno: Directory and collection bundles.
    • Yaak: Workspaces and request collections.
  • Exporting: Export any Veyak collection or environment to standard formats for team sharing or version control.
  • Accessible Anywhere: Trigger Import/Export from the sidebar, titlebar, or command palette (Cmd+K / Ctrl+K).

Learn more in the Universal Import & Export Documentation.


🌲 4. Drag & Drop Tree Reordering

Organizing complex API suites is now effortless:

  • Reorder: Drag requests and folders up or down within a collection to organize workflow sequences.
  • Move Across Folders: Drag requests into or out of nested folders with immediate reindexing and state persistence.
  • Visual Indicators: Real-time drop targets highlight valid nesting locations.

🔒 5. Comprehensive Variable Interpolation (Issue #51)

Previously, {{variable}} substitution was only applied to URLs, raw request bodies, and headers. In v0.8.0, interpolation is complete across all request surfaces:

  • Form-Data: Dynamic keys and values in multipart form-data.
  • URL-Encoded: Dynamic keys and values in application/x-www-form-urlencoded payloads.
  • Cookies: Dynamic cookie names, values, and domain scopes.
  • Basic Auth: Dynamic username and password fields.
  • API Key Auth: Dynamic header/query parameter keys and secret values.
  • Automatic Header Dispatch: Configured request cookies are now automatically packaged and dispatched in standard Cookie headers when sending HTTP requests.

🛠️ Bug Fixes & Under-The-Hood Improvements

  • Loop Migration Fix (#48): Fixed an issue where migrate_request_http_type used return instead of continue, preventing migration loops from silently aborting.
  • Crate Modularization: Introduced veyak-import-export crate for modular, high-throughput parsing and deserialization.
  • Tauri 2 Optimization: Streamlined IPC payload transfer for large response bodies and script consoles.
  • Official Domain Transition: Documentation and service endpoints have moved to the official veyak.app domain.

📥 Upgrade to v0.8.0

Download the latest release for macOS, Windows, and Linux from the Downloads Page or directly via GitHub Releases.