Skip to content

WCS 0.1.0-preview.1

Pre-release
Pre-release

Choose a tag to compare

@BlkHd BlkHd released this 16 Oct 11:18
· 8 commits to main since this 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/v1 and the SignalR event hub at /hub/plant; a full key
    and an optional read-only key in the X-Api-Key header; 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.Contracts and Wcs.Api.Client (the host API and its typed
    .NET client), Wcs.Wms.Contracts and Wcs.Wms.Client (the 43 HTTP routes the WCS calls on a WMS,
    IWarehouse), Wcs.Connection.Interface (the field-driver contract, IConnection and
    IConnectionFactory) and Wcs.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 the Wcs:ConnectionFactory setting.
  • 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 behind Wcs: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.json per 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.

Known limitations

See docs/known-limitations.md.