Repository navigation
Releases: tom-mann-ironclad/sapient-test-harness
Release list
1.0.0-beta.7
Release Notes
Added
examples/messages/from-edge-node/06-detection-report-malformed.json: a
deliberately non-conformant DetectionReport (invalidreportId), for
checking how a Fusion Node under test handles bad input.
Changed
RULES.mdlists every rule built by a shared validator (locations,
range-bearings, durations, associated files and detections, task
parameters) by its full rule ID and message, under the message type that
uses it. It replaces the per-file prefix lists and the hand-kept
"Composite validator suffixes" section, which had fallen out of date:
it was missing the finite-number checks (e.g.alert.location.x.invalid),
*.associated_detection.association_type.invalidand
task.*.parameter.value.invalid.scripts/generate-rules.shnow finds
these rules by following the validators in source, and fails if it can't.- Clearer messages for four Registration rules that said a field "must be
specified" when it was present but invalid:
registration.region_definition.region_type.invalid,
registration.location_type.units.invalid,
registration.location_type.datum.invalidand
registration.filter_parameter.operators.invalid. Rule IDs are
unchanged. - Fixed the spelling of "definition" in the
registration.node_definition.*
messages. send --role edgenow retries a failed connection every second until
--connect-timeout-secsruns out, likerunandsession, instead of
failing on the first refusal.
Install sapient-test-harness-cli 1.0.0-beta.7
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.7/sapient-test-harness-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.7/sapient-test-harness-cli-installer.ps1 | iex"Download sapient-test-harness-cli 1.0.0-beta.7
| File | Platform | Checksum |
|---|---|---|
| sapient-test-harness-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| sapient-test-harness-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| sapient-test-harness-cli-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| sapient-test-harness-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| sapient-test-harness-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| sapient-test-harness-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo tom-mann-ironclad/sapient-test-harnessYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>1.0.0-beta.6
Release Notes
Changed
- The harness now uses the BSI Flex 335 v2.0 node names throughout:
--role edge(wasasm) and--role fusion(wasdmm), and "Edge
Node"/"Fusion Node" in output, finding messages and docs.--role asm
and--role dmmstill work as hidden aliases. Rule IDs are unchanged. - JSON report:
roleis now"edge"or"fusion", and
report_schema_versionis 2. Update anything that readsrole. examples/messages/from-c2-node/is renamedfrom-fusion-node/.
Install sapient-test-harness-cli 1.0.0-beta.6
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.6/sapient-test-harness-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.6/sapient-test-harness-cli-installer.ps1 | iex"Download sapient-test-harness-cli 1.0.0-beta.6
| File | Platform | Checksum |
|---|---|---|
| sapient-test-harness-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| sapient-test-harness-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| sapient-test-harness-cli-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| sapient-test-harness-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| sapient-test-harness-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| sapient-test-harness-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo tom-mann-ironclad/sapient-test-harnessYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>1.0.0-beta.5
Release Notes
Added
- Releases include a CycloneDX SBOM (
sapient-test-harness-cli.cdx.xml,
with a checksum) covering every platform's dependencies, and signed
GitHub build-provenance attestations for every release file
(gh attestation verify). Binaries are built withcargo auditable, so
cargo audit binand similar scanners can read their dependency list. - CI generates the SBOM on every push.
Install sapient-test-harness-cli 1.0.0-beta.5
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.5/sapient-test-harness-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.5/sapient-test-harness-cli-installer.ps1 | iex"Download sapient-test-harness-cli 1.0.0-beta.5
| File | Platform | Checksum |
|---|---|---|
| sapient-test-harness-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| sapient-test-harness-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| sapient-test-harness-cli-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| sapient-test-harness-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| sapient-test-harness-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| sapient-test-harness-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo tom-mann-ironclad/sapient-test-harnessYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>1.0.0-beta.4
Release Notes
Added
sessioncommand: keeps a connection open as an Edge Node (--role asm)
or C2 Node (--role dmm), logs and validates all traffic as it happens,
sends StatusReports automatically (and DetectionReports with
--detection-interval-secs), and sends detections, alerts, or tasks from
typed commands. In a terminal, commands are typed at a prompt kept below
the log, with history and file-path completion.
Changed
run --role asmnow retries a failed connection every second until
--connect-timeout-secsruns out, instead of failing on the first
refusal. An invalid--targetaddress still fails immediately.session.status_report.interval_exceedednow allows a gap of up to 10%
more than the declared status interval, so an Edge Node reporting at
exactly its declared rate isn't flagged for ordinary timing jitter.- The harness's Edge Node now sends periodic StatusReports at 90% of its
registered interval, so normal timing jitter can't make it exceed that
interval. - Release archives now include
QUICKSTART.mdandexamples/messages/,
so the quick start, including itssendexamples, works from a download
without the repository.
Install sapient-test-harness-cli 1.0.0-beta.4
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.4/sapient-test-harness-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.4/sapient-test-harness-cli-installer.ps1 | iex"Download sapient-test-harness-cli 1.0.0-beta.4
| File | Platform | Checksum |
|---|---|---|
| sapient-test-harness-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| sapient-test-harness-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| sapient-test-harness-cli-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| sapient-test-harness-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| sapient-test-harness-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| sapient-test-harness-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
1.0.0-beta.3
Release Notes
Fixed
- The shell installer now accepts systems with glibc 2.34, such as
RHEL / Rocky / Alma 9. It previously required glibc 2.35, the build
runner's version, although the Linux binaries only need glibc 2.34. No
changes to the harness itself.
Install sapient-test-harness-cli 1.0.0-beta.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.3/sapient-test-harness-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.3/sapient-test-harness-cli-installer.ps1 | iex"Download sapient-test-harness-cli 1.0.0-beta.3
| File | Platform | Checksum |
|---|---|---|
| sapient-test-harness-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| sapient-test-harness-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| sapient-test-harness-cli-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| sapient-test-harness-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| sapient-test-harness-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| sapient-test-harness-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
1.0.0-beta.2
Release Notes
Fixed
- Fixture
False/0112.DetectionReport.DetectionLocation.RangeBearingnow
decodes as v2.0. It usedRangeBearingConeextent fields and set both
locationandrangeBearing. It is now rejected by
detection_report.location.datum.missingrather than by a JSON parse
error. selftestno longer reports decode-only failures.False/0001.Timestamp.Error
is documented as parse-only, because its"AAA"timestamp can't decode as
protobuf JSON.sapient_message.timestamp.malformednow has its own unit
test.
Changed
- The fixture parity test now fails if a
False/fixture is rejected only
because it can't be parsed, unless that fixture is listed in
PARSE_ONLY_FIXTURES.
Install sapient-test-harness-cli 1.0.0-beta.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.2/sapient-test-harness-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.2/sapient-test-harness-cli-installer.ps1 | iex"Download sapient-test-harness-cli 1.0.0-beta.2
| File | Platform | Checksum |
|---|---|---|
| sapient-test-harness-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| sapient-test-harness-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| sapient-test-harness-cli-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| sapient-test-harness-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| sapient-test-harness-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| sapient-test-harness-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
1.0.0-beta.1
Release Notes
First public pre-release of sapient-harness, an independent conformance
test harness for SAPIENT / BSI Flex 335 v2.0. See
QUICKSTART.md to install and run it.
Commands
run: drives the bundled v2.0 scenario against a real Edge Node
(--role dmm) or C2 Node (--role asm) over TCP and reportsPASS,
FAIL, orINCOMPLETE.--format jsonproduces a versioned, machine-readable report.-v/--verboseprints a styled checklist.- Exit codes are
0for a pass,1for findings or an incomplete run,
and2for a harness or operational failure.
send: sends hand-craftedSapientMessageJSON files to a target,
including deliberately non-conformant ones, and prints its replies.selftest: checks the harness's own validators against its 231
bundled fixtures. No network is needed.
Conformance checks
- Per-message validation for every v2.0 message type, ported from the
legacy C# harness. Parity is checked against that harness's own
fixture set. - Session-level checks for both roles:
- registration handshake and rejection handling
- status-report cadence and monotonic timestamps
- detection and registration consistency
- task and alert correlation
- mode changes
- GoodBye handling
- Every finding has a stable
rule_id, listed inRULES.md.
Findings in reports carry message identity and repeat spans.
Operational
- Connect, write, and overall run deadlines.
- Configurable incoming frame-size limit, with a warning for large frames.
- Ctrl-C produces a partial report.
- Text output escapes peer-supplied content so it can't inject terminal
control sequences. --role asmaccepts hostnames as well as IP addresses.
Install sapient-test-harness-cli 1.0.0-beta.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.1/sapient-test-harness-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tom-mann-ironclad/sapient-test-harness/releases/download/v1.0.0-beta.1/sapient-test-harness-cli-installer.ps1 | iex"Download sapient-test-harness-cli 1.0.0-beta.1
| File | Platform | Checksum |
|---|---|---|
| sapient-test-harness-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| sapient-test-harness-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| sapient-test-harness-cli-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| sapient-test-harness-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| sapient-test-harness-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| sapient-test-harness-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |