Skip to content

Keep storage admission optional in portable native library builds - #1223

Draft
rmcdaniel wants to merge 1 commit into
mainfrom
fix/native-library-storage-portability
Draft

rmcdaniel wants to merge 1 commit into
mainfrom
fix/native-library-storage-portability

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Nov 14, 2026 •

Copy link
Copy Markdown
Member

The CLI's standalone native development runtime cannot compile on Windows because the library imports Unix filesystem traits/flags and calls geteuid even when storage admission is disabled. This isolates the existing trusted descriptor reader behind cfg(unix) and leaves disabled admission available on every target. Configured observations on unsupported platforms return unavailable/fenced through the existing admission path; no replacement ownership policy or weaker file reader is introduced.

The Unix descriptor/UID/mode/no-follow/nonblocking/bounded-read implementation is unchanged. Tests retain its trust checks, add a portable disabled-admission assertion and cover configured fail-closed behavior on non-Unix targets. The storage-admission guide states the supported boundary.

Validation: all five targeted Unix admission tests pass, including ownership, symlink/FIFO/mode/depth/freshness checks and disabled admission. The descriptor-reader function body is byte-identical to the base. The consuming CLI Windows test is still required; independent source/security review and ordinary current CI remain gates. This source dependency is a development rebuild; it does not qualify a published Server image or broaden native-image platforms.

Refs #1222. Fixes the Server library blocker for durable-workflow/cli#161 / durable-workflow/cli#160. No admission collector, Windows UID trust, immutable tag, #980/#1204 or release/promotion path changes.

@sonarqubecloud

Copy link
Copy Markdown

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant