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
Stagingwhile Collection B points toLocalhostconcurrently. - 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.
- Postman: Collection v2.1 (
- 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-urlencodedpayloads. - 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
Cookieheaders when sending HTTP requests.
🛠️ Bug Fixes & Under-The-Hood Improvements
- Loop Migration Fix (#48): Fixed an issue where
migrate_request_http_typeusedreturninstead ofcontinue, preventing migration loops from silently aborting. - Crate Modularization: Introduced
veyak-import-exportcrate 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.