Skip to content

Releases: RazvanGolan/Kaya

API Explorer v2.4.1

Choose a tag to compare

@RazvanGolan RazvanGolan released this 07 Jun 09:57

What's New in 2.4.1

✨ Features

  • cURL Import Enhancements: You can now load an exported cURL command directly into the request builder and successfully edit the export.
  • Request Content-Type Selection: Added a new option to explicitly choose how to send an HTTP request payload (JSON, multipart/form-data, or application/x-www-form-urlencoded).

🐛 Bug Fixes

  • File Uploads Handling: Requests containing at least one IFormFile are now automatically and correctly sent as multipart/form-data instead of JSON.
  • Complex Query Parameters: Fixed a UI issue where complex query requests were not rendering properly in the input fields.

API Explorer v2.4.0

Choose a tag to compare

@RazvanGolan RazvanGolan released this 23 May 09:35

Features

  • Import cURL directly into the request builder.
  • Add the ExcludePathPatterns option to filter internal endpoints using regex.

Changes

  • Breaking change: Removed theme from configuration; If you previously configured a theme value, manually remove that configuration line and use the UI defaults.

Fixes

  • Handle explicit casts in path parameters.

gRPC Explorer v1.2.0

Choose a tag to compare

@RazvanGolan RazvanGolan released this 05 Apr 07:09
bd25814

Kaya.GrpcExplorer v1.2.0

This release is focused on improving everyday testing flow in the explorer UI, with security-minded local data handling.

Features

Request history

Save and revisit previous requests so you can quickly rerun, compare, and iterate without rebuilding payloads each time. This improves workflow speed and reduces repetitive setup during testing.

Clean and clear examples button

Added clearer example handling and a dedicated clear action, making it easier to reset inputs and test scenarios quickly with less friction.

TTL for local storage

Local saved data now supports time-to-live (TTL), so stored request data automatically expires after a defined period for better security and reduced stale data risk.

Improvements

CSS refactor to variables

Replaced hardcoded style values with CSS variables to improve maintainability, consistency, and future theming flexibility.


🥚 Not everything is documented, click around and you might find something.

API Explorer v2.3.0

Choose a tag to compare

@RazvanGolan RazvanGolan released this 05 Apr 07:21

What's New

Features

  • Request History - A dedicated request history flow to quickly rerun and inspect past requests.
  • TTL for Local Storage - Stored UI state and history now support expiration via time-to-live, helping keep local data fresh.

Bug Fixes and Improvements

  • Response textarea is now selectable for easier copy/paste workflows.
  • Improved generated examples for numeric types such as ushort.
  • API Explorer and SignalR Debug now use a single shared theme key.
  • Clear values behavior now keeps empty string values ("") for string fields.

MCP Server v1.0.0

Choose a tag to compare

@RazvanGolan RazvanGolan released this 14 Mar 09:55

Kaya Mcp Server v1.0.0 - Initial Release

Introducing Kaya.McpServer, a production-ready MCP stdio server that enables MCP hosts to invoke HTTP APIs, gRPC services, and SignalR hubs through Kaya explorers.

What’s included

  • HTTP invocation support with method, path, headers, body, and base URL override
  • gRPC unary invocation support via Kaya gRPC explorer proxy
  • gRPC streaming support:
    • stream start
    • stream send
    • stream events drain
    • stream end
  • SignalR tooling support:
    • hub discovery
    • connect and disconnect sessions
    • subscribe to events
    • invoke hub methods
    • drain events
    • read session logs
  • Environment-based configuration for API base URL, gRPC proxy base URL, and SignalR debug route
  • Optional JSON config file support
  • .NET tool packaging with command: kaya-mcp

Notes

Kaya.McpServer depends on Kaya.ApiExplorer and Kaya.GrpcExplorer being installed and active in the target app.

API Explorer v2.2.0

Choose a tag to compare

@RazvanGolan RazvanGolan released this 08 Mar 10:22

Release Notes — v2.2.0

What's New

Data Annotations Support

Model properties decorated with Data Annotations (e.g. [Required], [StringLength], [Range], [EmailAddress]) are now read and surfaced in the UI, giving you validation constraints alongside type information without any extra configuration.

Minimal APIs Support

Kaya API Explorer now discovers and documents endpoints registered with the Minimal APIs pattern (app.MapGet, app.MapPost, etc.), in addition to the existing controller-based discovery. Route parameters, query parameters, and bound body types are all captured automatically.

Cookie Authentication

Cookie-based authentication schemes are now supported alongside the existing Bearer token, API key, and OAuth 2.0 options. You can set a session cookie directly from the explorer UI and it will be sent with subsequent requests.

Multiple Response Codes ([ProducesResponseType])

Endpoints annotated with one or more [ProducesResponseType] attributes now display all declared response codes and their associated types in the documentation, making it clear what callers should expect for success, validation errors, and other outcomes.

Improvements

Nested Parameter Tree View

Request parameters for complex object types are now expanded in an interactive tree view, letting you see (and fill in) nested properties without having to mentally map a flat list back to the model structure.

Clear Examples Button

A new Clear button lets you wipe the auto-generated example values from any request form in one click, so you can start from a blank slate without manually deleting each field.

Improved Type Examples

Auto-generated example values are now more realistic and type-aware — strings get contextual placeholders, numbers respect [Range] bounds when present, and nested objects are populated recursively.

Valid OpenAPI 3.0 Export

The exported OpenAPI spec now fully conforms to the OpenAPI 3.0 specification. Schema references, $ref resolution, nullable flags, and response media types are all emitted correctly, so the output can be imported directly into tools like Postman, Insomnia, or code generators without manual fixes.

gRPC Explorer v1.1.0

Choose a tag to compare

@RazvanGolan RazvanGolan released this 28 Feb 15:08

What's New

Interactive Streaming Support

This release brings full interactive streaming to the gRPC Explorer UI. All three streaming RPC types — Server Streaming, Client Streaming, and Bidirectional Streaming — now have a dedicated live testing experience powered by Server-Sent Events (SSE).


Live Streaming via SSE

Streaming methods now open a persistent SSE connection between the browser and your server. Responses are pushed to the UI in real time as they arrive from the gRPC service, with no polling and no page refresh required.

Interactive Stream Controls

Each streaming method renders its own control panel with:

  • Start Stream — opens the session and, for server-streaming, sends the initial request immediately
  • Send Message — available for client-streaming and bidirectional methods; lets you push additional messages into an active stream
  • End Stream — gracefully signals the client-side of the stream is complete (completes the request channel)
  • Cancel — aborts the stream at any point

Real-Time Stream Log

Every event in a stream is appended to a scrollable log panel with:

  • Per-entry timestamps
  • Visual indicators for sent messages, received responses, system events, and errors
  • Copy-to-clipboard button on each entry
  • Live message counter and elapsed-time stats in the status bar

Streaming Session API

Four new endpoints are exposed under the explorer route prefix:

Endpoint Method Purpose
stream/start POST Initiate a new streaming session
stream/send POST Send a message into an active client/bidi stream
stream/end POST Half-close the client side of the stream
stream/events/{sessionId} GET SSE event feed for a session

Sessions are managed server-side and cleaned up automatically when the SSE connection closes.


Supported RPC Types

Type Behavior
Server Streaming Initial request sent on start; responses stream in until the server completes
Client Streaming Stream opened on start; messages sent individually; response delivered on end
Bidirectional Streaming Full duplex — send messages at any time, receive responses as they arrive

API Explorer v2.1.0

Choose a tag to compare

@RazvanGolan RazvanGolan released this 18 Feb 17:16

Bug Fixes

  • Search filter reset — The search query no longer clears when you click on an endpoint. Previously, expanding an endpoint would trigger a full re-render that wiped the filter state.

Improvements

  • Persistent "Try it out" state — Multiple endpoints can now be expanded at the same time. Input values, request bodies, and responses are all preserved when you open or close other endpoints. Previously, expanding any endpoint would rebuild the entire list and lose all typed data.
  • Complex form data types — Endpoints with [FromForm] parameters that bind to complex objects (e.g. a class with multiple properties) now render individual input fields for each property, including nested file inputs.
  • UI polish — Improved SVG icon colouring, fixed indentation inconsistencies, and various small layout fixes across the explorer.

.NET compatibility
No change — still targets net9.0. No external NuGet dependencies.


🥚 Not everything is documented, click around and you might find something.

gRPC Explorer v1.0.0

Choose a tag to compare

@RazvanGolan RazvanGolan released this 08 Feb 07:59

🚀 Kaya gRPC Explorer v1.0.0 - Initial Release

Introducing Kaya gRPC Explorer, a lightweight tool for discovering and testing gRPC services with built-in Server Reflection support.

✨ Key Features

  • Automatic Service Discovery - Uses gRPC Server Reflection to automatically enumerate services and methods
  • All RPC Types Supported - Works with Unary, Server Streaming, Client Streaming, and Bidirectional Streaming
  • Interactive Testing - Execute gRPC methods directly from the browser with JSON payloads
  • Protobuf Schema Generation - Automatically generates JSON schemas from Protobuf message definitions
  • Authentication Support - Configure custom metadata including Bearer tokens and API keys
  • Easy Integration - One-line setup in your ASP.NET Core application

🚀 Quick Start

Install

dotnet add package Kaya.GrpcExplorer

Add to Program.cs

using Kaya.GrpcExplorer.Extensions;

builder.Services.AddKayaGrpcExplorer();
// ...
app.UseKayaGrpcExplorer();

📦 What's Included

  • Service discovery and introspection via Server Reflection
  • Interactive web UI for testing methods
  • Automatic request and response serialization
  • Support for both TLS and plain HTTP/h2c
  • Embedded UI with no external dependencies

💎 Get It

Available on NuGet: Kaya.ApiExplorer 1.0.0

API Explorer v2.0.0

Choose a tag to compare

@RazvanGolan RazvanGolan released this 16 Nov 14:08

Kaya API Explorer v2.0.0 - SignalR Debug Tool Release 🎉

🚀 Major Features

SignalR Debug Tool

A powerful new interactive debugging tool for SignalR hubs with a beautiful, modern UI.

Key Features:

  • Hub Connection Management - Connect and disconnect from SignalR hubs with full authentication support (Bearer Token, API Key, OAuth 2.0)
  • Method Invocation - Execute hub methods with parameters and see real-time responses
  • Event Handler Registration - Register custom event handlers to receive server-sent messages in real-time
  • Real-time Logging - Monitor all hub activity including connections, method calls, and incoming events with expandable JSON data
  • Interactive Testing - Test your SignalR implementation without writing any client code
  • Hub Discovery - Automatically scans and displays all available SignalR hubs and their methods

🔧 Configuration Improvements

Simplified Setup

The configuration API has been streamlined for easier package integration:

Before:

var options = app.Services.GetRequiredService<KayaApiExplorerOptions>();
app.UseKayaApiExplorer(options);

Now:

app.UseKayaApiExplorer();  // Automatically retrieves configured options

SignalR Debug Configuration

builder.Services.AddKayaApiExplorer(options =>
{
    options.Middleware.RoutePrefix = "/api-explorer";
    options.Middleware.DefaultTheme = "light";
    
    // Enable SignalR debugging (optional)
    options.SignalRDebug.Enabled = true;
    options.SignalRDebug.RoutePrefix = "/signalr-debug";
});