WASM útwreidings
Aparte Wasm-build op basis fan it folsleine produksjeprofyl, mei beheinde beliedshooks, ACME, metriken en OpenTelemetry
Wat it jo jout
Aparte Wasm-build op basis fan it folsleine produksjeprofyl, mei beheinde beliedshooks, ACME, metriken en OpenTelemetry.
| Funksje | Brûk it foar |
|---|---|
| Tagongsbesluten | Live native HTTP/1 access-decision-hooks brûke prioriteitsfolchoarder, first-deny-wins-komposysje en fail-closed-gedrach. |
| Header-hooks | request-headers en response-headers hooks kinne allinnich tastiene syntetyske headers sette of fuortsmite, lykas it policy-tier-foarbyld. |
| Routebesluten | route-decision-hooks kinne allinnich trochgean, wegerje of ynstelde passende canary- en mirror-routebranches selektearje. |
| Cache-besluten | cache-lookup-hooks kinne continue, pass, bypass of deny dwaan. cache-store-hooks kinne continue, skip storage of deny dwaan foar skriuwen nei memory/disk-cache. |
Utfiere
Brûk it aparte profile-wasm-argyf of -image; de gewoane folsleine build bliuwt mei opsetsin sûnder Wasm.
It offisjele Wasm-image befettet de runtime, mar gjin beheardersplugins. Koppel kontrolearre modules allinnich-lêzen en set elke module fêst mei SHA-256.
podman pull ghcr.io/valkyoth/fluxheim:v1.8.0-wasm
podman run --rm \
-v ./fluxheim.toml:/etc/fluxheim/fluxheim.toml:ro,Z \
-v /srv/infra/fluxheim/plugins:/etc/fluxheim/plugins:ro,Z \
ghcr.io/valkyoth/fluxheim:v1.8.0-wasm
Goedkarde pluginwoartels
Pluginbestannen moatte absolute reguliere bestannen ûnder goedkarde roots wêze, sûnder symlinkbestannen of parent-paden.
[wasm]
enabled = true
plugin_roots = ["/etc/fluxheim/plugins"]
max_total_concurrent_executions = 256
max_total_preview_concurrent_executions = 32
max_total_cache_concurrent_executions = 256
[[wasm.plugins]]
name = "security_headers"
path = "/etc/fluxheim/plugins/security_headers.wasm"
sha256 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
abi = "fluxheim-policy-v1"
host_call_namespace = "fluxheim-policy-v1"
phases = ["response-headers"]
fail_mode = "fail-closed"
[[wasm.attachments]]
plugin = "security_headers"
vhost = "example"
priority = 100
phases = ["response-headers"]
Beheinde útfiering
Limiten foar fuel, memory, table, instance, compile-timeout, compile-worker en per-call watchdog hâlde de sandbox begrinze.
[wasm.plugins.limits]
max_module_bytes = "1MiB"
max_compiled_artifact_bytes = "32MiB"
max_memory_bytes = "16MiB"
max_table_elements = 10000
fuel = 5000000
timeout_ms = 50
compile_timeout_ms = 500
Produksje notysjes
In allinnich-lêzen containermount beskermet de bestannen op de host net. Lit in fertroud akkount sûnder skriuwrjochten eigner wêze fan de hostkonfiguraasje en pluginmap.
- Iepenbiere pluginmanifesten moatte in fêste SHA-256-kontrolesom befetsje. Yn it hiele proses wurde op syn meast twa modules tagelyk kompilearre. Kompilearre útfier hat standert in limyt fan 32 MiB en mei net grutter wêze as 256 MiB.
- Hâld konfiguraasjebestannen en alle besteande boppelizzende mappen yn fertroud eigendom en net beskriuwber foar de groep of oare brûkers.
- Pin release ferzjes of ôfbylding digests.
- Hâld geheimen yn bestannen, omjouwing of kontenergeheimen, net yn iepenbiere dokuminten.