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

PackageLicenceWhat it is
StellaOps.ElkSharpWorkflow licenceLayered layout of directed graphs: layer assignment, node ordering and placement, and edge routing. Lays out workflow diagrams.
StellaOps.Infrastructure.PostgresWorkflow licenceShared PostgreSQL infrastructure for StellaOps modules
StellaOps.Workflow (metapackage)Workflow licenceWorkflow engine in one install: StellaOps.Workflow.Engine and the PostgreSQL store StellaOps.Workflow.DataStore.PostgreSQL.
StellaOps.Workflow.AbstractionsWorkflow licenceWorkflow abstractions: the declaration API that workflow definitions are written against and the extension points of the workflow engine.
StellaOps.Workflow.AspNetCoreWorkflow licenceHTTP endpoints of the workflow engine for an ASP.NET Core host, with standard ASP.NET Core authentication and authorization.
StellaOps.Workflow.ContractsWorkflow licenceWorkflow contracts: the definition, request and response types shared by workflow definitions, hosts and clients.
StellaOps.Workflow.Contracts.DurabilityWorkflow licenceDurable 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.MongoDBWorkflow licenceMongoDB store for the workflow engine: runtime state, projections, signals, schedules and definitions.
StellaOps.Workflow.DataStore.PostgreSQLWorkflow licencePostgreSQL store for the workflow engine: definitions, runtime state, projections, signals and schedules; applies its schema migrations at host startup.
StellaOps.Workflow.EngineWorkflow licenceWorkflow engine: definition deployment, instance lifecycle, signal-driven task transitions, dead-letter handling and retention.
StellaOps.Workflow.PersistenceWorkflow licencePostgreSQL schema script of the Workflow PostgreSQL store (schema workflow), applied at host startup.
StellaOps.Workflow.PublisherWorkflow licencePublishes the workflow definitions an application bundles to a workflow engine over HTTP.
StellaOps.Workflow.Renderer.ElkSharpWorkflow licenceLays out workflow diagrams with the ElkSharp layered layout engine.
StellaOps.Workflow.Renderer.SvgWorkflow licenceRenders laid-out workflow diagrams as SVG and PNG.
StellaOps.Workflow.Signaling.RedisWorkflow licenceRedis signal driver for the workflow engine: delivers wake messages when signals are stored.
StellaOps.Workflow.Transport.GraphQLWorkflow licenceGraphQL transport of the workflow engine: sends GraphQL queries and mutations over HttpClient to configured targets.
StellaOps.Workflow.Transport.HttpWorkflow licenceHTTP 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.RabbitMqWorkflow licenceRabbitMQ 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.JsonApache-2.0Canonical JSON serialization (stella:canon:v1) and SHA-256 hashing for content-addressed identifiers.
StellaOps.Components.LicensingApache-2.0Offline verification and evaluation of vendor-signed component licence files. Informational only: never blocks, no network.
StellaOps.Cryptography.AbstractionsApache-2.0Dependency-free Stella Ops cryptography contracts: keyed MAC by purpose, HMAC primitive, cryptographic random and asymmetric signature verification.
StellaOps.Cryptography.DefaultProviderApache-2.0Default 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.DependencyInjectionApache-2.0The service-registration routine contract (IDependencyInjectionRoutine) and the service binding attributes that hosts and plugins register services with.
StellaOps.PluginApache-2.0Plugin hosting for .NET applications: plugin manifests, discovery, loading and version checks.

Project that only authors workflow definitions

PackageLicenceWhat it is
StellaOps.Workflow.AbstractionsWorkflow licenceWorkflow abstractions: the declaration API that workflow definitions are written against and the extension points of the workflow engine.
StellaOps.Workflow.Analyzer (analyzer)Workflow licenceRoslyn 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.ContractsWorkflow licenceWorkflow contracts: the definition, request and response types shared by workflow definitions, hosts and clients.
StellaOps.Workflow.PublisherWorkflow licencePublishes the workflow definitions an application bundles to a workflow engine over HTTP.

Plugin author

PackageLicenceWhat it is
StellaOps.Workflow.AbstractionsWorkflow licenceWorkflow abstractions: the declaration API that workflow definitions are written against and the extension points of the workflow engine.
StellaOps.Workflow.DataStore.PostgreSQLWorkflow licencePostgreSQL store for the workflow engine: definitions, runtime state, projections, signals and schedules; applies its schema migrations at host startup.
StellaOps.DependencyInjectionApache-2.0The service-registration routine contract (IDependencyInjectionRoutine) and the service binding attributes that hosts and plugins register services with.
StellaOps.MessagingApache-2.0Transport-agnostic messaging abstractions for StellaOps (queues, caching, pub/sub)
StellaOps.Messaging.Transport.ValkeyApache-2.0Valkey/Redis transport plugin for StellaOps.Messaging
StellaOps.PluginApache-2.0Plugin 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.

PackageLicenceLatest version