StoryChief.Xperience
1.0.0
dotnet add package StoryChief.Xperience --version 1.0.0
NuGet\Install-Package StoryChief.Xperience -Version 1.0.0
<PackageReference Include="StoryChief.Xperience" Version="1.0.0" />
<PackageVersion Include="StoryChief.Xperience" Version="1.0.0" />
<PackageReference Include="StoryChief.Xperience" />
paket add StoryChief.Xperience --version 1.0.0
#r "nuget: StoryChief.Xperience, 1.0.0"
#:package StoryChief.Xperience@1.0.0
#addin nuget:?package=StoryChief.Xperience&version=1.0.0
#tool nuget:?package=StoryChief.Xperience&version=1.0.0
StoryChief for Xperience by Kentico
An open-source Xperience by Kentico integration for receiving authenticated publishing webhooks from StoryChief.
Requirements
| Xperience version | Package version |
|---|---|
| >= 31.7.4 | 1.0.0 |
- ASP.NET Core 8.0
- Xperience by Kentico 31.7.4 or newer
- A StoryChief webhook destination and signing key
Installation
Install the package from NuGet.org:
dotnet add package StoryChief.Xperience --version 1.0.0
Contributors can reference src/StoryChief.Xperience/StoryChief.Xperience.csproj directly while developing locally.
Register the integration in Program.cs:
builder.Services.AddStoryChiefXperience(options =>
{
options.SigningKey = builder.Configuration["StoryChief:SigningKey"]
?? throw new InvalidOperationException("StoryChief:SigningKey is missing.");
options.Page.WebsiteChannelName = "AcmeWebsite";
options.Page.ContentTypeName = "Acme.ArticlePage";
options.Page.PageTemplateIdentifier = "Acme.Article";
options.Page.LanguageName = "en";
options.Page.MapLanguage("en", "en");
options.Page.MapLanguage("nl", "nl-BE");
options.Page.MapField("title", "ArticleTitle");
options.Page.MapField("content", "ArticleContent");
options.Page.MapField("excerpt", "ArticleExcerpt");
options.Page.MapField("published_at", "ArticlePublishedAt", StoryChiefFieldValueKind.DateTime);
options.Page.MapTaxonomy("tags", "ArticleTags", "ArticleTaxonomy");
options.Page.MapTaxonomy("categories", "ArticleCategories", "ArticleCategories");
options.Page.CoverImage.ContentTypeName = "Acme.Image";
options.Page.CoverImage.AssetFieldName = "ImageFile";
options.Page.CoverImage.PageFieldName = "ArticleCoverImage";
options.Page.CoverImage.AltTextFieldName = "ImageAltText";
options.Page.CoverImage.WorkspaceName = "Acme.Content";
});
// After app creation and the usual middleware registrations:
app.MapStoryChiefWebhook();
Store the key outside source control using user secrets, environment variables, or your production secret store.
The target must be an existing page content type whose fields match the configured value types. Page-template content types can set PageTemplateIdentifier; controller-rendered types leave it empty. See the Usage Guide for parent-page, audit-user, deletion, nested-field, and custom-publisher configuration.
For a complete, buildable host project, see the example Xperience application.
Current scope
POST /storychief/webhook- SHA-256 HMAC validation compatible with StoryChief's PHP webhook contract
- Signed connection-test metadata
- Website page creation, draft updates, publishing, URL resolution, and deletion through Kentico's public APIs
- Configurable mapping from StoryChief fields to Xperience field code names
- Support for publishing as draft and status-only updates
- Multilingual page variants using StoryChief translation relationships and configurable language mappings
- Native taxonomy mapping for StoryChief tags, primary categories, and categories
- Cover-image sideloading into reusable Content Hub assets, including alternative text, updates, removal, and cleanup
- An
IStoryChiefContentPublisherextension point for advanced author or project-specific mapping - Request-size limit and safe error responses
- A buildable Xperience host example and endpoint-level webhook tests
Cover images use reusable content item assets in Content hub. Kentico's sunset media-library APIs are not used.
Contributing
See CONTRIBUTING.md and the contributor setup guide.
License
Distributed under the MIT License. See LICENSE.md.
Support
This is a StoryChief-maintained integration and is not yet listed as an official Kentico integration. See SUPPORT.md for support boundaries and reporting channels.
Please report security vulnerabilities according to SECURITY.md.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
-
net8.0
- Kentico.Xperience.Core (>= 31.7.4)
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 |
|---|---|---|
| 1.0.0 | 89 | 8/19/2026 |
| 1.0.0-rc.2 | 59 | 8/19/2026 |
| 1.0.0-rc.1 | 61 | 8/19/2026 |