Fluxheim 1.7.1 #116
Closed
eldryoth
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Fluxheim 1.7.1 Release Notes
Fluxheim 1.7.1 continues the WebAssembly extensibility line with config-level
plugin registry integration, deterministic hook-chain contracts, and the first
live request-path hook family: native HTTP/1 access decisions. Request-header
mutation remains staged until the typed host-call ABI can safely pass and
mutate header state.
Highlights
[wasm]config validation for plugin roots, default sandbox limits,default execution admission budgets, process-wide execution admission,
plugin declarations, and plugin attachments.
[[wasm.plugins]]declarations with plugin name, path, optional expectedSHA-256 digest, ABI, host-call namespace, phases, fail mode, per-plugin
sandbox limits, and per-plugin admission budgets.
[[wasm.attachments]]declarations that attach a known plugin to aconfigured vhost and optional route, with optional phase narrowing,
deterministic
priority, and per-attachment admission budgets.[[wasm.plugins]]entries become
fluxheim-wasmmanifests with inherited sandbox limits andoptional expected SHA-256 digests.
scripts/validate-wasm-config-registry.sh.plugin, duplicate same-target attachments, preview ABIs without explicit
allowance, unsafe
fail_opensecurity-decision plugins, invalid pluginnames, invalid plugin paths, invalid SHA-256 digests, and invalid sandbox or
admission budgets.
must live under one of the configured
wasm.plugin_roots, and roots must bescoped deployment directories rather than filesystem-root or top-level system
directories.
sha256for plugins that declare security-decision phases(
access-decision,route-decision, orcache-store).wasm.max_total_concurrent_executions, a process-wide ceiling for totalconcurrent Wasm plugin executions.
the same priority/declaration-order rules.
fluxheim-wasmaccess-decision and admission primitives,including process-wide, per-plugin, and per-attachment execution ceilings
plus
first-deny-winscomposition.access-decisionhooks for vhost and routeattachments. Built-in ACLs remain non-overridable; Wasm access hooks can only
add an allow/continue or deny decision after built-in access policy passes.
instantiate a fresh store/instance per request. This keeps request execution
isolated without spending the global compile-slot budget on every request.
priority-ordered
first-deny-wins, percent-decoded route policy selection,non-overridable built-in route ACLs,
process-wide/plugin/attachment admission rejection, and fail-closed behavior
for invalid output, traps, and execution timeouts.
[wasm]runtime, plugin, attachment, limit, or admission changeas
wasm-runtime-changedand require a process upgrade until the atomiccompiled-module reload path is implemented and tested.
authenticated
/_fluxheim/status.and admission rejections. Native hook execution installs Prometheus recorders
when metrics are enabled.
conf.dfragments by usingfragment-aware merge semantics for default sandbox limits and admission
budgets.
patch tags, Prometheus observability smoke coverage uses
v3.13.0, and thenon-Pingora crate freshness gate remains clean.
base64-ngto1.3.5across the root, ACME, server, andload-balancer crates.
Operator Notes
wasm.enabled = trueis required before plugin roots, plugin declarations,or attachments are accepted.
wasmfeature reject non-empty[wasm]configduring validation instead of accepting a registry that cannot run.
256.1000.access-decisionhooks use the exportedfluxheim_access_decision() -> i32preview ABI in this release:0continues the chain,
1allows/continues, and2denies with403..or..components. Plugin paths must be underwasm.plugin_roots, and pluginroots must be scoped directories such as
/srv/fluxheim/plugins, not broadroots such as
/or/etc.1.7.xstatus slice.Configured expected hashes remain visible in admin status.
Example attachment:
Checksums And Signatures
53eaffbf844315d374a5881ca0c0e3081773a21d[MANUAL_SHA256] fluxheim-1.7.1.tar.gz[MANUAL_SHA256] fluxheim-1.7.1.zip7bb74215e5c7f308ec193d2c713f04b1378246d3895a4a99155c5be2c3d28d80 fluxheim-1.7.1-full-x86_64-linux.tar.gzb9ad6028d824ff6ed777943b34de41aa3bece11f1fe55bf5ee05882f0157f40a fluxheim-1.7.1-cache-x86_64-linux.tar.gz70bd6d742ced06366867cfab18a0338db48ade9b2b3648f8736f330fad0bb670 fluxheim-1.7.1-proxy-x86_64-linux.tar.gz0504ce568ffd196ff89d8f46054bfa2aaaca2e7322ac9ea209117f6a17c3d458 fluxheim-1.7.1-php-x86_64-linux.tar.gz2e51a2da0b17588a3e830f510fa11b3efac9006d84b95f22bd1778dc04990206 fluxheim-1.7.1-load-balancer-x86_64-linux.tar.gz0e420bae996462de8a3fa834b61c8eb0ddacdb84aee9dc383ed3868f5e81a9ea fluxheim-1.7.1-config-tester-x86_64-linux.tar.gzffbbad37d37e4c290d7be016263f90910977c48d25be98e3c2217db880d8b051 fluxheim-1.7.1-full-aarch64-linux.tar.gz0c4983bc492e2be85b5fba619de93b8f11c4fe4a2fc86f2c7862f4c5e35f80ee fluxheim-1.7.1-cache-aarch64-linux.tar.gzf14c5784cd504e00c1490884e932d0484f9c3b20f099dda4d921170c058e6862 fluxheim-1.7.1-proxy-aarch64-linux.tar.gz23c32a3564d3a00dbafaefea644ebda14b1da05a202f8e6147a9591632170ff1 fluxheim-1.7.1-php-aarch64-linux.tar.gzec6dd80a99733b1def87b07b98f6799bf2a059a6942318e7d2093e22a608f397 fluxheim-1.7.1-load-balancer-aarch64-linux.tar.gz08e71cb4a8273edffd58b28de2a0ad9edeb3209a6301462a8996a82708700dbc fluxheim-1.7.1-config-tester-aarch64-linux.tar.gzff44986608e5757caeb8c45f6d29b893a1927c92140438d34549fe3631463ae9 fluxheim-1.7.1-dev-aarch64-macos.tar.gz746dad48b8d3e26fa63c871e7aca882111858dab4f25bdeefa9c036745ac2f4b fluxheim.spdx.json3eba1f637da51aa02cc009b7931f3490d7dfc4a3d8e61eb66d7ad11b9b360ce4 fluxheim.cyclonedx.jsonbf2225caa47e6c15433668364a923f99f3e140132a8f1f76a70bfbe000225d87x86_6452fd070693eb0ff74b2a63d12382cf93ca5f37d9be4eae0372ae8877b5848f3eaarch6497d9ad43435c9832c9865e3a586e56ca022a66fb4f6560a6135665ef2bd723femacosghcr.io/valkyoth/fluxheim@sha256:97ac18d1a92cadd9a789ac1ffc4c191141efbe3da96b902051c9c1cf4f5475baghcr.io/valkyoth/fluxheim@sha256:227a5e45a7db15c2ff0e17c02dd02d8729b669e6a47068db0ca9238ed219d634ghcr.io/valkyoth/fluxheim@sha256:1df45725eec7991f0375f47d7aa1298f6d701426a9e3a51feb0f6fc5ea85a826ghcr.io/valkyoth/fluxheim@sha256:e4a49a70bb9a72700d68a5c330bb9eb2cd02d1cedaa6155a52c201758a0033d5ghcr.io/valkyoth/fluxheim@sha256:75df0c5e97e927d2d73f170a980f455f739edd4351e36758cc34db0738597ed7ghcr.io/valkyoth/fluxheim@sha256:553f971225048e18b3ed06af324df6c68bc009deb6f6250e23ca7d1464fe2f13ghcr.io/valkyoth/fluxheim@sha256:94e27328a525297546ca4a11e978795838b90e80ce27066b81ded5ef4891a46aghcr.io/valkyoth/fluxheim@sha256:0292b8172f2cfcc0a5e47fdc2749c6f3cf43f9bd817930a8491896c7363c594dghcr.io/valkyoth/fluxheim@sha256:42dde9267784b814bace15d33b7cac8c36d352e6403432fcf29fd41526c118c6ghcr.io/valkyoth/fluxheim@sha256:7e031b2dfb03870c6cb320101b4655bb7cd1c30033b79a0dabc50f04519dc3f4ghcr.io/valkyoth/fluxheim@sha256:5e53402fbea8de6a55d74095b7a1600bc81b906a2683e6697a8de8856e901208ghcr.io/valkyoth/fluxheim@sha256:60660e3d4bb124e869e618a170559bb6735b45f6e48dfe8dd9f2632e0cc00e0eghcr.io/valkyoth/fluxheim@sha256:4ec8d057a8bab06e6bcdb7f8237502fdedd8908180cc727764af4b3cec3d8f05ghcr.io/valkyoth/fluxheim@sha256:08cf8d4b9d3eade237e30e39167558ac465f63ae0a9d150a9d099ead9f60a29fghcr.io/valkyoth/fluxheim@sha256:bbed59aabddd72bed3438cd9eb8a17fd63ad476e205cb77f5f9021f32f175f28ghcr.io/valkyoth/fluxheim@sha256:c324e1a35f118c608f66cf94ccb2de253b5dac1b352da65e0e6a6aaaeeccefe3ghcr.io/valkyoth/fluxheim@sha256:0ad389a43a9e78a446f9b8951532e8fb4424a57dbc7cff4e8e15a3d6be6e7e1eghcr.io/valkyoth/fluxheim@sha256:108994489dc5a32e59290d848f74e369a50d0e195b7b09fcba2f2ff712efc256ghcr.io/valkyoth/fluxheim@sha256:205acb70adc351f722289a201e6f92cbdf80367fd95db9106b9cce6be2237a6eghcr.io/valkyoth/fluxheim@sha256:35612298c42b30ce7728b97b10b5566e6acc01358b591ad89b1ac9232ea8f0f8Good "git" signature for 1921261+eldryoth@users.noreply.github.com with ED25519 key SHA256:EoLRQ5k4J5pYz3UMFmkrV798gYFNkToGS2xEPvebqB4This discussion was created from the release Fluxheim 1.7.1.
All reactions