Conversation
…iption Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Feature/integration count assertions
Signed-off-by: Mark Bolwell <info@krameff.com>
…he shared pat Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
… outcome Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
…press Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
…ured Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
…objects Feature/windows registry and job objects improvments
Signed-off-by: Mark Bolwell <info@krameff.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of change
This is v0.12.0, and it is the release where Windows stops being the platform
you write specs around.
v0.11.0 made Windows honest: checks that could not run stopped quietly claiming
success. This one makes it capable. Three pieces of work land together, all of
them things an operator writing a hardening spec hits within the first hour.
Registry paths now look like the ones you copied.
regedit's address bargives you
HKEY_LOCAL_MACHINE\...andGet-ItemPropertygives youHKLM:\...,and until now syver accepted neither, so every path had to be hand-edited into
the short form first. All the spellings work, in any case. Alongside that,
type:understands the fullREG_*set rather than the common six, and thereis a new
view:attribute for choosing the 32-bit or 64-bit registry view: on64-bit Windows some keys exist twice, and a spec previously had no way to say
which copy it meant. It got whichever syver's own architecture happened to see.
There is also a small diagnostic that matters more than its size. Ask about
...\ProfileListand you are asking about a value; ask about...\ProfileList\and you are asking about the key. Both answer truthfully,and an author who means the second and writes the first gets
exists: false,which passes. Syver still refuses to guess which you meant, because guessing
moves the ambiguity somewhere you cannot see it, but it now tells you when the
two are confusable.
Timed-out commands no longer leave processes behind on Windows.
command:runs through
cmd /c, so the thing syver starts is a shell and the thing thatactually hangs is the shell's child. Killing the shell alone left that child
running, which made the leak the normal case rather than an edge one. The
process now runs inside a Job Object and the whole tree goes with it. Worth
saying plainly, because the docs claimed the reverse: this makes Windows
stronger than Linux and macOS here, where a process that calls
setsidescapes the process group and survives. A command that succeeds is never
touched, so a check that deliberately starts a background service still leaves
it running.
And a cluster of Windows correctness fixes carried over from the wave2
branch:
mount:says it is unsupported instead of blaming your mountpoint,process: statuserrors rather than returning an empty list with no error,absolute
C:\...and UNC gossfile includes resolve,~\Documents\xexpands,and
autoaddboth honours--log-leveland tells you when it skippedsomething it could not read.
Riding along is the container work that had been sitting on
develunder anunreleased 0.11.3 heading: the published image finally has a description on its
package page, three documentation pages that existed but were unreachable are
now linked, and the integration fixtures assert assertion counts rather than
just exit codes.
Why this is a minor rather than a patch
view:is a new attribute, and the resource layer is deliberatelycross-platform, so it appears in
docs/schema.yamlon every platform whether ornot that platform can honour it. That makes it user-facing spec syntax, and spec
syntax does not change under a patch. It is the only new attribute here.
How much of this was actually tested
More than usual, and it is worth being specific because Windows claims in this
project have been thin before.
Everything was exercised on two independent Windows images, a Server 2025 guest
and a Windows 11 host, rather than merely cross-compiled. The registry fixture
gives an identical
Count: 20, Failed: 0, Skipped: 3on both.view:wasproven to genuinely read different data by writing one key through each WOW64
view with different values and reading both back through the shipped binary, so
an implementation that accepted the attribute and ignored it would fail.
It was also run against a real benchmark:
ansible-lockdown/Windows11-CIS-Auditat v3.0.0, 540 check files, which uses syver and gates on its version. That
produced 1389 assertions, with every failure traceable to genuine host state.