ToolUp.Reporting.Server 0.22.0

Prefix Reserved
dotnet add package ToolUp.Reporting.Server --version 0.22.0
                    
NuGet\Install-Package ToolUp.Reporting.Server -Version 0.22.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="ToolUp.Reporting.Server" Version="0.22.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ToolUp.Reporting.Server" Version="0.22.0" />
                    
Directory.Packages.props
<PackageReference Include="ToolUp.Reporting.Server" />
                    
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 ToolUp.Reporting.Server --version 0.22.0
                    
#r "nuget: ToolUp.Reporting.Server, 0.22.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 ToolUp.Reporting.Server@0.22.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=ToolUp.Reporting.Server&version=0.22.0
                    
Install as a Cake Addin
#tool nuget:?package=ToolUp.Reporting.Server&version=0.22.0
                    
Install as a Cake Tool

ToolUp.Reporting

Companion package providing typed-template document generation for applications built on ToolUp.Platform. Ships the IReportRenderer interface, default MarkdownRenderer + HtmlRenderer (zero-deps), IReportTemplateStore over IEntityStore, the ReportApi ToolUp.Remoting endpoint, and ReportingCompose (registers the renderer registry + API handler against a ServerApp).

Each output format that needs a real renderer (PDF / DOCX / XLSX) lives in its own sub-companion under src/Reporting/ so a deployment that only needs PDF doesn't pay for the OpenXml dep, and vice versa. Pptx is the exception — deck output is served by a downstream document-emission tier rather than by a renderer here; see Deck export below.

Apache-2.0; part of the ToolUp Platform SDK.

Why a separate companion

Two reasons it doesn't live in ToolUp.Platform:

  1. Vendor SDK weight. PDF / DOCX / XLSX renderers pull in QuestPDF or DocumentFormat.OpenXml; deployments that don't need document generation shouldn't pay for those deps.
  2. Audit + storage integration. The renderer composes with IEntityStore (template persistence), IDataObjectStore (rendered-blob storage with versioning), and IAuditLog (ReportRendered events). Keeping that wiring inside a companion (rather than threading it into the core SDK) preserves the "core ships only opinion-light substrate" principle.

Activation

open ToolUp.Reporting

ServerApp.empty
|> ServerApp.addModules [ /* your modules */ ]
|> ReportingServerApp.run

ReportingServerApp.run is a flat superset of ServerApp.run — every existing capability passes through, plus the reporting endpoints and renderer registry.

Built-in renderers

  • MarkdownRenderer — pure F#, zero deps. Templates use {{key}} placeholders; {{#each items}} … {{/each}} for tables.
  • HtmlRenderer — pure F# + System.Web.HttpUtility.HtmlEncode. Same placeholder syntax; values HTML-encoded by default.

Sub-companions (separate NuGets)

  • ToolUp.Reporting.Pdf — QuestPDF-backed (community-licensed under $1M revenue/yr).
  • ToolUp.Reporting.Docx — DocumentFormat.OpenXml.
  • ToolUp.Reporting.Xlsx — DocumentFormat.OpenXml. Includes the cell-address-map binding mode (Map<CellAddress, ExcelCellValue> shape that writes values directly into specific cells without template-side {{key}} markup) — load-bearing for the Excel-to-ToolUp converter portal's runtime export path.

Each sub-companion ships in its own NuGet so deployments compose only what they need. There is no ToolUp.Reporting.Pptx, and there will not be one — see below.

Deck export

TemplateFormat enumerates Pptx, and nothing here renders it. A render request for that format refuses with the typed RenderError.FormatServedByDeckTier, which is deliberately distinct from NoRendererForFormat: there is no package to add. Deck output is produced by a downstream document-emission tier that reads the deployment's exported result set (narrative + fact refs + provenance) and emits typed deck parts — a useful deck being a regenerable projection of governed results rather than a rendered template.

This companion's contribution to that tier is the chart-artifact handoff (ChartArtifact): the deployment's own deterministic chart grammar, exposed as content-hashed, provenance-stamped embeddable artifacts. Full rationale and the composition shape: docs/platform/reporting.md.

Licensed under Apache-2.0. Part of the ToolUp Platform SDK — see github.com/ToolUp-Forge/toolup-forge for full documentation.

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

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
0.22.0 32 8/27/2026
0.21.0 43 8/26/2026
0.20.1 90 8/20/2026
0.20.0 81 8/19/2026