Repository navigation
WCS 0.1.0-preview.1
Pre-release
Pre-release
Added
Initial public preview of the Sun Tech WCS, extracted from Sun Tech's internal repository and
published under the Apache License 2.0. It contains:
- The engine (
WCS/Wcs.Engine): the plant graph built from the plant's devices and junctions,
missions and device states, the route recomputed at every hop, persistence on SQLite (wcs.db,
monthly history files, the driver's message log) with schema migrations applied when a file is
opened, and four durable queues that deliver the physical facts to the WMS at least once, with
operation ids for receipts. - The host (
WCS/Wcs.Host): the executable that runs the engine, as a console application or a
Windows service; the HTTP API under/api/v1and the SignalR event hub at/hub/plant; a full key
and an optional read-only key in theX-Api-Keyheader; the edit lease for plant changes; refusal
to start with placeholder keys, or with a plain HTTP endpoint off the loopback unless explicitly
allowed. - The web editor (
WCS/Wcs.WebEditor), served by the host at/editor: Blazor Server with a
bundled draw.io, to draw and configure the plant, link devices to the WMS's cells, and operate the
engine. - The contracts and clients:
Wcs.Api.ContractsandWcs.Api.Client(the host API and its typed
.NET client),Wcs.Wms.ContractsandWcs.Wms.Client(the 43 HTTP routes the WCS calls on a WMS,
IWarehouse),Wcs.Connection.Interface(the field-driver contract,IConnectionand
IConnectionFactory) andWcs.Common.Wcs.Viewer(a read-only copy of the engine state from the
hub) is included as experimental: no sample, no tests here, outside the compatibility rules. - The loopback driver (
WCS/Wcs.Connection.Test), which simulates the machines in the process, and
the loading of a field driver of your own through theWcs:ConnectionFactorysetting. - Fail-closed connections: a device of connection type Connected without its connection makes the
engine refuse Run and goes OffLine, instead of being served by the simulator. The opposite
behaviour exists only behindWcs:AllowSimulatorForMissingConnections, which the host refuses in
the Production environment. - A sample WMS and a sample plant (
samples/): a runnable in-memory WMS that answers the WCS's
contract, a plant on the loopback driver, the script that loads it, and their tests. - English guides (
docs/): quick start, overview and boundary, the WMS contract, writing a WMS
adapter, the host API, plant modelling, connecting machines, deployment and operations,
troubleshooting, security and threat model, production readiness, known limitations, and a
reference of routes, commands, configuration and terms. - Test suites for the engine, the host, the web editor (bUnit, and Playwright in a real browser),
the contracts and clients, and the sample WMS. - Build and release tooling: the .NET SDK pinned by
global.json, a committed
packages.lock.jsonper project with locked restores in CI, the version of the WCS in
Directory.Build.props, GitHub Actions workflows (build and pack, the test suites, the browser
tests, vulnerable packages, Markdown links, the SBOM, a clean working tree; tagged releases as
drafts with SHA-256 checksums), immutable commit pins for third-party GitHub Actions, a trusted
in-repository digest for the Gitleaks release binary, and Dependabot for NuGet packages and GitHub
Actions. - Source-only distribution: no NuGet package is published for this version; the libraries are
referenced from a clone or a submodule at a release tag (README, "Using the libraries from your
code"). - Project documents: SAFETY.md, SECURITY.md, SUPPORT.md,
CONTRIBUTING.md, CODE_OF_CONDUCT.md, third-party notices
and a CycloneDX SBOM.
Not included
Sun Tech's proprietary PLC driver and its protocol; the legacy WinForms plant editor and the WinForms
test bench of the viewer; the internal tool that migrates plants from Sun Tech's WMS database; the
internal demo scripts.