ServiceStack v10.2!

ServiceStack v10.2 Released - Put the content you already have to work

Happy to announce ServiceStack v10.2 is now available.

This release is headlined by Gemini RAG - a complete, managed knowledge platform that turns the files, docs and websites you already maintain into two public customer experiences from a single import pipeline. The rest of the release removes friction from everyday .NET development with portable typed JSON queries and native Upsert APIs in OrmLite, Startup Tasks that keep generated client DTOs and PDF models in sync, ServiceStack Auth support in AI Chat, and the results of a codebase-wide security and reliability audit.

Gemini RAG, Website Search & AI Assistants

Import a documentation repo, upload business documents or crawl an entire website into isolated File Stores, then publish two independent public experiences from the same curated content:

  • Website Assistant - a branded, citation-backed AI support experience embedded on any site with one script tag. Retrieval rules, private prompts, model selection, allowed origins and rate limits stay enforced on the server and can’t be weakened by the host page.
  • Website Search - instant ⌘K documentation search answered entirely by your own database (SQLite FTS5, PostgreSQL GIN, SQL Server Full-Text, MySQL/MariaDB FULLTEXT). No model calls, no per-query cost, nothing leaves your App.

Both render inside a Shadow DOM so they’re isolated from the host site’s styles and keyboard handling.

:mag: See it in action and learn more on the Gemini RAG home page: Gemini RAG

Rounding it out: previewable folder/website synchronization that only re-embeds what actually changed, metadata-scoped retrieval (category, type, status, locale, product, version, tags), tunable search ranking against live results, search & no-result analytics that point straight at the docs you haven’t written yet, optional privacy-respecting first-party website analytics, and retained conversations so you can learn from what customers actually ask. Your document catalogue, sources, imports and conversations all live in your App and OrmLite database.

Portable, Type-Safe JSON Queries in OrmLite

Query JSON columns with the same typed SqlExpression<T> API you use for relational columns - one C# query that refactors with your Data Models and runs unchanged on SQLite, PostgreSQL, SQL Server and MySQL:

var q = db.From<OrderEvent>()
    .Where(x =>
        Sql.Json<OrderDocument>(x.Data).Customer.Address.State == "WA" &&
        Sql.Json<OrderDocument>(x.Data).Tags.Contains("priority") &&
        Sql.Json<OrderDocument>(x.Data).Lines[0].Quantity > 1);

Explicit Sql.JsonValue(), Sql.JsonQuery(), Sql.JsonExists(), Sql.JsonType(), Sql.JsonArrayLength(), Sql.JsonArrayContains() and Sql.JsonContains() APIs are also available for dynamic documents and runtime paths.

Native Upsert APIs

New Upsert / UpsertAll APIs use each database’s native single-statement conflict handling - avoiding the extra existence query Save() performs and closing the race window between checking for a row and inserting it:

db.Upsert(customer);
db.UpsertAll(customers, updateOnly: x => new { x.Name, x.Email });

With typed and runtime updateOnly field selection, auto-increment key support and async equivalents throughout.

Startup Tasks: DTOs that stay in sync

Startup Tasks run development-time work automatically once your App is ready. The first built-in use removes one of the most common interruptions in full-stack development - manually running npx get-dtos after changing a server API:

npx add-in startup-dtos

Now restarting your App regenerates its client DTOs from Native Types metadata. PdfFeature can do the same for typed PDF models. Tasks are development-only, i.e. never run in Production, and failures are isolated so they can’t stop your App from starting.

AI Chat now supports ServiceStack Auth

AI Chat previously assumed ASP.NET Core Identity Auth. In v10.2 ServiceStack’s own AuthFeature with CredentialsAuth() and your existing IAuthRepository is first-class too:

services.AddPlugin(new ChatFeature {
    RequireAuth = true,
    AuthType = ChatAuthType.Credentials,
});

Adopting AI Chat no longer implies an Identity Auth migration - your existing users, roles and permissions apply to /chat immediately.

Hardened ServiceStack

This release includes the results of a codebase-wide AI-assisted security and reliability audit across ServiceStack’s core runtime, auth, data access, messaging, cloud integrations, UI, serialization, image processing and client libraries - fixing race conditions, sync-over-async and retry defects, non-deterministic disposal, and adding defensive validation throughout public APIs. Every change is published in per-package audit reports so you can review exactly what was fixed rather than take the upgrade on faith.


Everything in v10.2 works on .NET 8+ ServiceStack Apps, and the OrmLite, Startup Tasks and hardening improvements arrive with the upgrade - there’s nothing new to install or configure.

:point_right: Read the full v10.2 Release Notes: ServiceStack v10.2

:sparkles: Explore the headline feature: Gemini RAG

As always happy to hear any feedback!