Workflow packages
The Stella Ops Workflow engine is a set of NuGet packages. An application embeds the engine with its stores, signalling, transports and renderers; a project that only authors workflow definitions needs the contracts, the abstractions and the analyzer. This page lists which package serves which role and under which licence.
Install
Every package of a release is installed from the Stella Ops NuGet feed, https://nuget.stella-ops.org/v3/index.json. Versions have the form x.y.z-yyyyMMddTHHmmssZ: the UTC timestamp is the release’s first publication, and NuGet treats the form as a prerelease, so an install names the version or passes --prerelease:
dotnet add package StellaOps.Workflow --prerelease
Every Workflow package of one release shares one version, built from one commit; install the Workflow packages of one version together. The StellaOps.Workflow metapackage brings the engine and its usual dependencies in one install. The consumer rules (feed, version form, verifying a package) are in the NuGet library release guide.
Packages by role
Application that embeds the workflow engine
| Package | Licence | What it is |
|---|---|---|
StellaOps.ElkSharp | Workflow licence | Layered layout of directed graphs: layer assignment, node ordering and placement, and edge routing. Lays out workflow diagrams. |
StellaOps.Infrastructure.Postgres | Workflow licence | Shared PostgreSQL infrastructure for StellaOps modules |
StellaOps.Workflow (metapackage) | Workflow licence | Workflow engine in one install: StellaOps.Workflow.Engine and the PostgreSQL store StellaOps.Workflow.DataStore.PostgreSQL. |
StellaOps.Workflow.Abstractions | Workflow licence | Workflow abstractions: the declaration API that workflow definitions are written against and the extension points of the workflow engine. |
StellaOps.Workflow.AspNetCore | Workflow licence | HTTP endpoints of the workflow engine for an ASP.NET Core host, with standard ASP.NET Core authentication and authorization. |
StellaOps.Workflow.Contracts | Workflow licence | Workflow contracts: the definition, request and response types shared by workflow definitions, hosts and clients. |
StellaOps.Workflow.Contracts.Durability | Workflow licence | Durable execution contracts of the workflow engine: the durable start and activity contracts, RFC 8785 canonical JSON with its SHA-256 digest, a strict JSON reader, bounded scalar types and a frozen JSON schema set. |
StellaOps.Workflow.DataStore.MongoDB | Workflow licence | MongoDB store for the workflow engine: runtime state, projections, signals, schedules and definitions. |
StellaOps.Workflow.DataStore.PostgreSQL | Workflow licence | PostgreSQL store for the workflow engine: definitions, runtime state, projections, signals and schedules; applies its schema migrations at host startup. |
StellaOps.Workflow.Engine | Workflow licence | Workflow engine: definition deployment, instance lifecycle, signal-driven task transitions, dead-letter handling and retention. |
StellaOps.Workflow.Persistence | Workflow licence | PostgreSQL schema script of the Workflow PostgreSQL store (schema workflow), applied at host startup. |
StellaOps.Workflow.Publisher | Workflow licence | Publishes the workflow definitions an application bundles to a workflow engine over HTTP. |
StellaOps.Workflow.Renderer.ElkSharp | Workflow licence | Lays out workflow diagrams with the ElkSharp layered layout engine. |
StellaOps.Workflow.Renderer.Svg | Workflow licence | Renders laid-out workflow diagrams as SVG and PNG. |
StellaOps.Workflow.Signaling.Redis | Workflow licence | Redis signal driver for the workflow engine: delivers wake messages when signals are stored. |
StellaOps.Workflow.Transport.GraphQL | Workflow licence | GraphQL transport of the workflow engine: sends GraphQL queries and mutations over HttpClient to configured targets. |
StellaOps.Workflow.Transport.Http | Workflow licence | HTTP transports of the workflow engine: the http kind calls a configured target over HttpClient, and the endpoint kind resolves a service name, method and path to a configured base URL. |
StellaOps.Workflow.Transport.RabbitMq | Workflow licence | RabbitMQ transport of the workflow engine: the rabbit kind publishes JSON to an exchange and routing key with publisher confirms, and with a command declaration frames the call as an envelope or a header and waits for the correlated reply. |
StellaOps.Canonical.Json | Apache-2.0 | Canonical JSON serialization (stella:canon:v1) and SHA-256 hashing for content-addressed identifiers. |
StellaOps.Components.Licensing | Apache-2.0 | Offline verification and evaluation of vendor-signed component licence files. Informational only: never blocks, no network. |
StellaOps.Cryptography.Abstractions | Apache-2.0 | Dependency-free Stella Ops cryptography contracts: keyed MAC by purpose, HMAC primitive, cryptographic random and asymmetric signature verification. |
StellaOps.Cryptography.DefaultProvider | Apache-2.0 | Default HMAC-SHA-2, random and asymmetric signature verification (RS256, PS256, ES256) providers for the Stella Ops cryptography contracts, for hosts without the profile-aware library. |
StellaOps.DependencyInjection | Apache-2.0 | The service-registration routine contract (IDependencyInjectionRoutine) and the service binding attributes that hosts and plugins register services with. |
StellaOps.Plugin | Apache-2.0 | Plugin hosting for .NET applications: plugin manifests, discovery, loading and version checks. |
Project that only authors workflow definitions
| Package | Licence | What it is |
|---|---|---|
StellaOps.Workflow.Abstractions | Workflow licence | Workflow abstractions: the declaration API that workflow definitions are written against and the extension points of the workflow engine. |
StellaOps.Workflow.Analyzer (analyzer) | Workflow licence | Roslyn analyzer and source generator for workflow definitions: rejects workflow code that cannot be serialized to canonical workflow JSON and generates the registry of bundled definitions. |
StellaOps.Workflow.Contracts | Workflow licence | Workflow contracts: the definition, request and response types shared by workflow definitions, hosts and clients. |
StellaOps.Workflow.Publisher | Workflow licence | Publishes the workflow definitions an application bundles to a workflow engine over HTTP. |
Plugin author
| Package | Licence | What it is |
|---|---|---|
StellaOps.Workflow.Abstractions | Workflow licence | Workflow abstractions: the declaration API that workflow definitions are written against and the extension points of the workflow engine. |
StellaOps.Workflow.DataStore.PostgreSQL | Workflow licence | PostgreSQL store for the workflow engine: definitions, runtime state, projections, signals and schedules; applies its schema migrations at host startup. |
StellaOps.DependencyInjection | Apache-2.0 | The service-registration routine contract (IDependencyInjectionRoutine) and the service binding attributes that hosts and plugins register services with. |
StellaOps.Messaging | Apache-2.0 | Transport-agnostic messaging abstractions for StellaOps (queues, caching, pub/sub) |
StellaOps.Messaging.Transport.Valkey | Apache-2.0 | Valkey/Redis transport plugin for StellaOps.Messaging |
StellaOps.Plugin | Apache-2.0 | Plugin hosting for .NET applications: plugin manifests, discovery, loading and version checks. |
Not packaged
StellaOps.Workflow.WebService is the Stella Ops Suite’s workflow host. StellaOps.Workflow.Renderer.Msagl, StellaOps.Workflow.Renderer.ElkJs and StellaOps.Workflow.ArtifactExporter are not published as packages. The Oracle store and signalling packages (StellaOps.Workflow.DataStore.Oracle, StellaOps.Workflow.Signaling.OracleAq) are not part of the first release.
Licences
Each package carries its licence file (LICENSE) and notice (NOTICE) and names its licence in its package metadata. A package under the Workflow licence carries the Stella Ops Workflow licence: the Business Source License 1.1 with the Workflow’s Additional Use Grant. The shared foundation packages carry the Apache License 2.0 and the boundary statement in their README. The legal overview lists the licence texts, and the licensing guide describes how the engine counts workflows and reads a licence file.
Published versions
The table lists each Workflow and shared foundation package that has a published version, with its latest version. It is generated from the package catalogue and the publication register; no version is published yet.
| Package | Licence | Latest version |
|---|
