Lyo.Story.Api
3.0.0
dotnet add package Lyo.Story.Api --version 3.0.0
NuGet\Install-Package Lyo.Story.Api -Version 3.0.0
<PackageReference Include="Lyo.Story.Api" Version="3.0.0" />
<PackageVersion Include="Lyo.Story.Api" Version="3.0.0" />
<PackageReference Include="Lyo.Story.Api" />
paket add Lyo.Story.Api --version 3.0.0
#r "nuget: Lyo.Story.Api, 3.0.0"
#:package Lyo.Story.Api@3.0.0
#addin nuget:?package=Lyo.Story.Api&version=3.0.0
#tool nuget:?package=Lyo.Story.Api&version=3.0.0
Lyo.Story.Api
Maps Story Req/Res CRUD via Lyo.Api CreateBuilder (stories, scenes, nodes, variables, actions, choices, reactions, effects, read-only playthroughs). List and filter use Query
on those routes. Graph save and load and play routes delegate to IStoryStore. Register the store with AddStoryApiFromConfiguration (the Postgres package registers CRUD services
and StoryLyoMapper), then call BuildStoryGroup.
Features
BuildStoryGroupmaps Req/Res CRUD, Query, graph save/load/list, and playthrough start/choose/advance/events/causes. Every route allows anonymous callers; put the host's own authorization in front before exposing it.AddStoryApiFromConfigurationregisters the Postgres store. CRUD services and the mapper are registered there, not again in this package.MapStoryRoutes(routes, authorPolicy)maps only the graph and play routes over any registeredIStoryStore(Postgres, SQLite, or a client store), without the CRUD routes or any authorization metadata. Apply the host's policy to the route group; whenauthorPolicyis set, graph save and list also require it.Lyo.Game.Serveruses this.- Graph requests and responses carry
TenantIdandGameKey.POST Story/graph/list(StoryListReq) lists graph headers for one tenant and game. - Known gap: the play routes do not check that a playthrough belongs to the caller or the caller's tenant, and
SetStoryPlaythroughVariablesis open to any caller that can reach the routes.
Examples
Map the Story API
services.AddLocalCache();
services.AddLyoQueryServices();
services.AddStoryApiFromConfiguration(configuration);
var app = builder.Build();
app.BuildStoryGroup();
Dependencies
Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).
Lyo.Api(direct, lyo)Lyo.Common.Core(direct, lyo)Lyo.Exceptions(direct, lyo)Lyo.Story(direct, lyo)Lyo.Story.Models(direct, lyo)Lyo.Story.Postgres(direct, lyo)Lyo.Api.Models(transitive, lyo)Lyo.Cache(transitive, lyo)Lyo.Common.Metadata(transitive, lyo)Lyo.Compression(transitive, lyo)Lyo.DateAndTime(transitive, lyo)Lyo.Diagnostic(transitive, lyo)Lyo.Diagnostic.AspNetCore(transitive, lyo)Lyo.Diff(transitive, lyo)Lyo.Encryption(transitive, lyo)Lyo.Formatter(transitive, lyo)Lyo.Hashing(transitive, lyo)Lyo.Health(transitive, lyo)Lyo.Json(transitive, lyo)Lyo.KeyStore(transitive, lyo)Lyo.Metrics(transitive, lyo)Lyo.PackageMetadata(transitive, lyo)Lyo.Parameters(transitive, lyo)Lyo.Postgres(transitive, lyo)Lyo.Query(transitive, lyo)Lyo.Query.Evaluation(transitive, lyo)Lyo.Query.Models(transitive, lyo)Lyo.Query.Sql(transitive, lyo)Lyo.Result(transitive, lyo)Lyo.Streams(transitive, lyo)Lyo.Validation(transitive, lyo)Lyo.Validation.Models(transitive, lyo)BouncyCastle.Cryptography2.6.2(transitive, third-party, netstandard2.0)DynamicExpresso.Core2.19.3(transitive, third-party)EasyCompressor2.1.0(transitive, third-party)Konscious.Security.Cryptography.Argon21.3.1(transitive, third-party)Microsoft.AspNetCore.OpenApi10.0.5(transitive, microsoft)Microsoft.Bcl.AsyncInterfaces10.0.5(transitive, microsoft, netstandard2.0)Microsoft.EntityFrameworkCore10.0.5(transitive, microsoft)Microsoft.EntityFrameworkCore.Analyzers10.0.5(transitive, microsoft)Microsoft.EntityFrameworkCore.Design10.0.5(transitive, microsoft)Microsoft.EntityFrameworkCore.Relational10.0.5(transitive, microsoft)Microsoft.Extensions.Caching.Memory10.0.5(transitive, microsoft)Microsoft.Extensions.Configuration.Binder10.0.5(transitive, microsoft)Microsoft.Extensions.DependencyInjection10.0.5(transitive, microsoft)Microsoft.Extensions.DependencyInjection.Abstractions10.0.5(transitive, microsoft, net10.0, netstandard2.0)Microsoft.Extensions.Hosting.Abstractions10.0.5(transitive, microsoft)Microsoft.Extensions.Logging.Abstractions10.0.5(transitive, microsoft)Microsoft.Extensions.Options10.0.5(transitive, microsoft)Microsoft.Extensions.Options.ConfigurationExtensions10.0.5(transitive, microsoft)Npgsql.EntityFrameworkCore.PostgreSQL10.0.3(transitive, third-party)SmartFormat.NET3.6.1(transitive, third-party)System.Buffers4.6.1(transitive, microsoft, netstandard2.0)System.ComponentModel.Annotations5.0.0(transitive, microsoft)System.IO.Hashing10.0.5(transitive, microsoft, net10.0)System.Memory4.6.3(transitive, microsoft, netstandard2.0)System.Text.Encoding.CodePages10.0.5(transitive, microsoft)System.Text.Json10.0.5(transitive, microsoft, netstandard2.0)System.Threading.Tasks.Extensions4.6.3(transitive, microsoft, netstandard2.0)
| Product | Versions 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. |
-
net10.0
- Lyo.Api (>= 3.0.0)
- Lyo.Common.Core (>= 3.0.0)
- Lyo.Exceptions (>= 3.0.0)
- Lyo.Story (>= 3.0.0)
- Lyo.Story.Models (>= 3.0.0)
- Lyo.Story.Postgres (>= 3.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0 | 71 | 10/23/2026 |