Backlot.Studio 0.2.0

dotnet add package Backlot.Studio --version 0.2.0
                    
NuGet\Install-Package Backlot.Studio -Version 0.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Backlot.Studio" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Backlot.Studio" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Backlot.Studio" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Backlot.Studio --version 0.2.0
                    
#r "nuget: Backlot.Studio, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Backlot.Studio@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Backlot.Studio&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Backlot.Studio&version=0.2.0
                    
Install as a Cake Tool

Backlot Studio

The management frontend for the Backlot API: browse and inspect roles, follow their relations, explore every registered scenario with request and response examples, edit configuration, and fire raw API requests from a built-in tester.

All code is subject to the same licensing principles as the rest of the codebase.

Usage

Backlot Studio ships as a Razor Class Library. It embeds its own Razor Pages and static assets, and Backlot.WebApp mounts it for you — if your host builds its app with BuildWebApp, the Studio is already there:

// Program.cs of the host
var app = builder.BuildWebApp(hostBuilder => { /* ... */ });
app.Run();

Browse to /studio and sign in with a Backlot API user.

To adjust it from code, pass a delegate; it is applied on top of the BacklotStudio configuration section:

var app = builder.BuildWebApp(hostBuilder => { /* ... */ }, enableHttps: true,
    configureStudio: studio => studio.PathPrefix = "/admin");

Mounting it in another host

A host that does not use BuildWebApp mounts the Studio with two calls:

builder.Services.AddBacklotStudio(builder.Configuration);

var app = builder.Build();
// ... the host's own middleware/endpoints ...
app.MapBacklotStudio("/studio");   // after UseHttpsRedirection, if the host redirects
app.Run();

Backlot.Demo.Studio/ in this repository is a runnable example of exactly this: a host that mounts only the Studio and points it at a Backlot API in another process through BaseUrl.

AddBacklotStudio throws when called twice, so a host that uses BuildWebApp must not also call it — use the configureStudio argument instead. That is deliberate: silently dropping one of two configurations is far harder to diagnose than failing at startup.

Configuration

AddBacklotStudio binds the BacklotStudio configuration section (when the IConfiguration overload is used) and then applies the inline delegate on top:

{
  "BacklotStudio": {
    "PathPrefix": "/studio",              // mount path; MapBacklotStudio("/x") overrides it
    "BaseUrl": "https://localhost:7221"   // absolute URL of the Backlot API; REQUIRED
  }
}

BaseUrl is required and has no fallback: the address is never inferred from the server's own listening addresses, so it must be set even when the API is co-hosted with the Studio. A missing or non-absolute value is not a startup failure — the host still comes up and the Studio's login page reports BaseUrl not configured correctly on host through its validation summary, and every API call throws until it is set.

Further knobs on BacklotStudioOptions: IdleTimeout, CookieSecurePolicy, and ConfigureCookie / ConfigureSession escape hatches. Note that BuildWebApp relaxes CookieSecurePolicy to SameAsRequest when it is called with enableHttps: false in the Development environment — otherwise a Secure-only cookie would never come back over plain HTTP and sign-in would loop. Outside Development the configured policy is left alone.

Isolation from the host

The Studio never touches the host's own authentication, authorization, session or static files. It registers its own cookie scheme (BacklotStudioDefaults.AuthenticationScheme), a named authorization policy scoped to the Studio area, cookies scoped to the mount path, and serves its embedded wwwroot from {prefix}/assets. Mounting the Studio does not change how the host's existing endpoints behave.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Backlot.Studio:

Package Downloads
Backlot.WebApp

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.0 45 10/9/2026