From f1652cce625e3f7f7cb6ba914ce0ddc578b0001e Mon Sep 17 00:00:00 2001 From: flemming-it Date: Fri, 17 Jul 2026 00:29:06 +0200 Subject: [PATCH] feat: law-source-bund 0.1.0 (source.bundesrecht) Fetch one German federal law from gesetze-im-internet.de (BMJ) by its site slug, unpack the BMJ norm XML from the site's xml.zip and return it content-addressed (SHA-256) plus the BMJ builddate, so a flow's audit trail pins the exact Gesetzesstand it processed. - xml.zip unpack picks the largest XML entry (norm body) - lying ZIP size header rejected instead of silently truncated (audit integrity); 64 MB unpack cap, 96 MB download cap - net permission pinned to www.gesetze-im-internet.de; no auth - 11 unit tests (no network), wasm32-wasip2 build green Signed-off-by: flemming-it --- .forgejo/workflows/ci.yml | 66 +++ .gitignore | 3 + Cargo.lock | 823 ++++++++++++++++++++++++++++++++++++++ Cargo.toml | 52 +++ LICENSE | 73 ++++ MODULE.de.md | 60 +++ MODULE.md | 59 +++ NOTICE | 25 ++ STORE.yaml | 28 ++ assets/icon.svg | 18 + law-source-bund.io.de.svg | 36 ++ law-source-bund.io.svg | 36 ++ module.wasm | Bin 0 -> 371430 bytes module.yaml | 70 ++++ rust-toolchain.toml | 4 + src/lib.rs | 407 +++++++++++++++++++ 16 files changed, 1760 insertions(+) create mode 100644 .forgejo/workflows/ci.yml create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 LICENSE create mode 100644 MODULE.de.md create mode 100644 MODULE.md create mode 100644 NOTICE create mode 100644 STORE.yaml create mode 100644 assets/icon.svg create mode 100644 law-source-bund.io.de.svg create mode 100644 law-source-bund.io.svg create mode 100644 module.wasm create mode 100644 module.yaml create mode 100644 rust-toolchain.toml create mode 100644 src/lib.rs diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml new file mode 100644 index 0000000..e48a953 --- /dev/null +++ b/.forgejo/workflows/ci.yml @@ -0,0 +1,66 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +env: + CARGO_TERM_COLOR: always + RUSTFLAGS: "-D warnings" + RUST_TOOLCHAIN: "1.86" + CARGO_NET_GIT_FETCH_WITH_CLI: "true" + +jobs: + ci: + name: Linux x86_64 (Forgejo) + runs-on: ubuntu-latest + steps: + - name: Checkout law-source-bund via external URL + run: | + set -eu + mkdir -p "$GITHUB_WORKSPACE" + cd "$GITHUB_WORKSPACE" + git init -q + git remote add origin \ + "https://x-access-token:${GITHUB_TOKEN}@git.flemming.ai/${GITHUB_REPOSITORY}.git" + git fetch --depth=1 origin "$GITHUB_SHA" + git checkout -q FETCH_HEAD + + - name: Configure git URL rewrite for SDK fetch + env: + SDK_PAT: ${{ secrets.MODULE_SDK_PAT }} + run: | + git config --global \ + "url.https://x-access-token:${SDK_PAT}@git.flemming.ai/.insteadOf" \ + "https://git.flemming.ai/" + + - name: Install system dependencies + run: | + apt-get update -qq + apt-get install -y --no-install-recommends \ + curl ca-certificates build-essential pkg-config libssl-dev git + + - name: Install Rust toolchain + run: | + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \ + | sh -s -- -y --profile minimal \ + --default-toolchain "$RUST_TOOLCHAIN" \ + --target wasm32-wasip2 --component rustfmt --component clippy + echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" + + - name: Cargo fmt --check + run: cargo fmt --all -- --check + + - name: Cargo clippy + run: cargo clippy --all-targets -- -D warnings + + - name: Cargo build (host) + run: cargo build --all-targets + + - name: Cargo test (host) + run: cargo test --all-targets + + - name: Cargo build (wasm32-wasip2) + run: cargo build --release --target wasm32-wasip2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5e66a2d --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +target/ +**/*.rs.bk +.DS_Store diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..065d175 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,823 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "anyhow" +version = "1.0.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" + +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "bitflags" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "chain-module-sdk" +version = "0.3.0" +source = "git+https://git.flemming.ai/fai/chain-module-sdk-rust.git?tag=v0.3.0#a4415ada7e76aac5e3aabf3e4c4311ffc348d8d0" +dependencies = [ + "chain-module-sdk-macros", + "serde", + "serde_json", + "thiserror", + "wit-bindgen 0.36.0", +] + +[[package]] +name = "chain-module-sdk-macros" +version = "0.3.0" +source = "git+https://git.flemming.ai/fai/chain-module-sdk-rust.git?tag=v0.3.0#a4415ada7e76aac5e3aabf3e4c4311ffc348d8d0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "derive_arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "displaydoc" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "http" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "law_source_bund" +version = "0.1.0" +dependencies = [ + "chain-module-sdk", + "serde", + "serde_json", + "sha2", + "waki", + "zip", +] + +[[package]] +name = "leb128" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c83bff1d572d6b9aeef67ddfc8448e4a3737909cb28e81f97c791b9018703e52" + +[[package]] +name = "libc" +version = "0.2.186" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" + +[[package]] +name = "log" +version = "0.4.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "smallvec" +version = "1.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" + +[[package]] +name = "spdx" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e17e880bafaeb362a7b751ec46bdc5b61445a188f80e0606e68167cd540fa3" +dependencies = [ + "smallvec", +] + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "waki" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2db2daf1dfbadf228fd8b3c22b96a359135fd673b3d2c203274ee6a0df9c77" +dependencies = [ + "anyhow", + "form_urlencoded", + "http", + "serde", + "waki-macros", + "wit-bindgen 0.34.0", +] + +[[package]] +name = "waki-macros" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a061143f321cc5eeb523f60bdbcd45cfc3ee8851f8cf24f7a4b963bddc5642eb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "wasm-encoder" +version = "0.219.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8aa79bcd666a043b58f5fa62b221b0b914dd901e6f620e8ab7371057a797f3e1" +dependencies = [ + "leb128", + "wasmparser 0.219.2", +] + +[[package]] +name = "wasm-encoder" +version = "0.220.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e913f9242315ca39eff82aee0e19ee7a372155717ff0eb082c741e435ce25ed1" +dependencies = [ + "leb128", + "wasmparser 0.220.1", +] + +[[package]] +name = "wasm-metadata" +version = "0.219.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1ef51bd442042a2a7b562dddb6016ead52c4abab254c376dcffc83add2c9c34" +dependencies = [ + "anyhow", + "indexmap", + "serde", + "serde_derive", + "serde_json", + "spdx", + "wasm-encoder 0.219.2", + "wasmparser 0.219.2", +] + +[[package]] +name = "wasm-metadata" +version = "0.220.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185dfcd27fa5db2e6a23906b54c28199935f71d9a27a1a27b3a88d6fee2afae7" +dependencies = [ + "anyhow", + "indexmap", + "serde", + "serde_derive", + "serde_json", + "spdx", + "wasm-encoder 0.220.1", + "wasmparser 0.220.1", +] + +[[package]] +name = "wasmparser" +version = "0.219.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5220ee4c6ffcc0cb9d7c47398052203bc902c8ef3985b0c8134118440c0b2921" +dependencies = [ + "ahash", + "bitflags", + "hashbrown 0.14.5", + "indexmap", + "semver", +] + +[[package]] +name = "wasmparser" +version = "0.220.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d07b6a3b550fefa1a914b6d54fc175dd11c3392da11eee604e6ffc759805d25" +dependencies = [ + "ahash", + "bitflags", + "hashbrown 0.14.5", + "indexmap", + "semver", +] + +[[package]] +name = "wit-bindgen" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e11ad55616555605a60a8b2d1d89e006c2076f46c465c892cc2c153b20d4b30" +dependencies = [ + "wit-bindgen-rt 0.34.0", + "wit-bindgen-rust-macro 0.34.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a2b3e15cd6068f233926e7d8c7c588b2ec4fb7cc7bf3824115e7c7e2a8485a3" +dependencies = [ + "wit-bindgen-rt 0.36.0", + "wit-bindgen-rust-macro 0.36.0", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "163cee59d3d5ceec0b256735f3ab0dccac434afb0ec38c406276de9c5a11e906" +dependencies = [ + "anyhow", + "heck", + "wit-parser 0.219.2", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b632a5a0fa2409489bd49c9e6d99fcc61bb3d4ce9d1907d44662e75a28c71172" +dependencies = [ + "anyhow", + "heck", + "wit-parser 0.220.1", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744845cde309b8fa32408d6fb67456449278c66ea4dcd96de29797b302721f02" +dependencies = [ + "bitflags", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7947d0131c7c9da3f01dfde0ab8bd4c4cf3c5bd49b6dba0ae640f1fa752572ea" +dependencies = [ + "bitflags", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6919521fc7807f927a739181db93100ca7ed03c29509b84d5f96b27b2e49a9a" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.219.2", + "wit-bindgen-core 0.34.0", + "wit-component 0.219.2", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4329de4186ee30e2ef30a0533f9b3c123c019a237a7c82d692807bf1b3ee2697" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.220.1", + "wit-bindgen-core 0.36.0", + "wit-component 0.220.1", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c967731fc5d50244d7241ecfc9302a8929db508eea3c601fbc5371b196ba38a5" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.34.0", + "wit-bindgen-rust 0.34.0", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "177fb7ee1484d113b4792cc480b1ba57664bbc951b42a4beebe573502135b1fc" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.36.0", + "wit-bindgen-rust 0.36.0", +] + +[[package]] +name = "wit-component" +version = "0.219.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8479a29d81c063264c3ab89d496787ef78f8345317a2dcf6dece0f129e5fcd" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.219.2", + "wasm-metadata 0.219.2", + "wasmparser 0.219.2", + "wit-parser 0.219.2", +] + +[[package]] +name = "wit-component" +version = "0.220.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b505603761ed400c90ed30261f44a768317348e49f1864e82ecdc3b2744e5627" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.220.1", + "wasm-metadata 0.220.1", + "wasmparser 0.220.1", + "wit-parser 0.220.1", +] + +[[package]] +name = "wit-parser" +version = "0.219.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca004bb251010fe956f4a5b9d4bf86b4e415064160dd6669569939e8cbf2504f" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.219.2", +] + +[[package]] +name = "wit-parser" +version = "0.220.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae2a7999ed18efe59be8de2db9cb2b7f84d88b27818c79353dfc53131840fe1a" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.220.1", +] + +[[package]] +name = "zerocopy" +version = "0.8.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7cbbc0a705a0fd05cc3676525980d2bf5a9bc4adac6d6475209a7887cf59d19" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e817b7b52d0c7358d3246da9d69935ebb18116b2b102b4230dac079b4862f5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zip" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" +dependencies = [ + "arbitrary", + "crc32fast", + "crossbeam-utils", + "displaydoc", + "flate2", + "indexmap", + "memchr", + "thiserror", + "zopfli", +] + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..2507e28 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,52 @@ +# Standalone Cargo.toml — targets wasm32-wasip2. +# +# Build with: +# cargo build --release --target wasm32-wasip2 + +[package] +name = "law_source_bund" +version = "0.1.0" +edition = "2024" +authors = ["Dr. Stefan Flemming "] +license = "Apache-2.0" +publish = false +description = "F∆I module — fetch German federal law from gesetze-im-internet.de by slug (BMJ XML, content-addressed)" +repository = "https://git.flemming.ai/chain-modules/law-source-bund" +rust-version = "1.85" + +[lib] +crate-type = ["cdylib", "rlib"] + +[dependencies] +chain-module-sdk = { git = "https://git.flemming.ai/fai/chain-module-sdk-rust.git", tag = "v0.3.0" } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +sha2 = "0.10" +# gesetze-im-internet serves each norm as an xml.zip archive. +# Pure-Rust deflate only — same restricted feature set text-extract +# uses (deflate64/bzip2/zstd stay out of the WASM build). +zip = { version = "2", default-features = false, features = ["deflate"] } + +# WASI-0.2 HTTP client — same one http-request / law-source-eurlex use. +# Only compiled into the wasm32-wasip2 build. +[target.'cfg(target_arch = "wasm32")'.dependencies] +waki = "0.5" + +[profile.release] +opt-level = "s" +lto = true +codegen-units = 1 +strip = "symbols" + +[lints.rust] +unsafe_op_in_unsafe_fn = "warn" + +[lints.clippy] +unwrap_used = "deny" +expect_used = "deny" +panic = "deny" +print_stdout = "deny" +print_stderr = "deny" + +[workspace] +# Empty workspace table so this package is NOT picked up by a parent. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..cdde5b2 --- /dev/null +++ b/LICENSE @@ -0,0 +1,73 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright 2026 Flemming.AI + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/MODULE.de.md b/MODULE.de.md new file mode 100644 index 0000000..a20b5de --- /dev/null +++ b/MODULE.de.md @@ -0,0 +1,60 @@ +# source.bundesrecht + + + +![law-source-bund inputs and outputs](law-source-bund.io.de.svg) + + +Deutsches Bundesrecht von gesetze-im-internet.de per Kürzel holen + +## Was es tut + +Löst ein gesetze-im-internet.de-Kürzel (z. B. `bgb`, `estg`, `gg`, +`stromnzv`) gegen die öffentliche BMJ-Publikationsseite auf, lädt das +`xml.zip` des Gesetzes, entpackt das BMJ-Normen-XML (gii-norm-DTD) +und liefert es samt Metadaten. Die entpackten Bytes sind +inhaltsadressiert (SHA-256) — das Prüfprotokoll des Flows hält den +exakt verarbeiteten Gesetzesstand fest. + +Anders als EUR-Lex liefert gesetze-im-internet nur den AKTUELLEN +konsolidierten Stand — es gibt keine URL für ältere Fassungen. Der +SHA-256 (plus das BMJ-`builddate` aus dem XML-Kopf) macht einen +späteren Re-Fetch vergleichbar: Eine Änderung upstream wird sichtbar +statt still. + +Nur öffentliche BMJ-Daten; die Netzwerk-Berechtigung ist auf +`www.gesetze-im-internet.de` festgelegt. + +## Verwendung + +```yaml +steps: + - id: fetch + use: source.bundesrecht@^0 + with: + gesetz: stromnzv + + - id: normalize + use: text.akoma-normalize@^0 + with: + content: $fetch.xml +``` + +Das Kürzel ist das Pfadsegment der Gesetzes-Seite auf +gesetze-im-internet.de: `https://www.gesetze-im-internet.de//`. + +## Ausgaben + +- `xml` — das BMJ-Normen-XML wie aus dem Archiv der Seite entpackt. + Für die strukturierte Akoma-Ntoso-Darstellung an + `text.akoma-normalize` weiterreichen (dessen BMJ-Adapter aus v0.1 + versteht dieses Format nativ). +- `meta` — JSON-SourceMeta: `gesetz`, `url`, `source_sha256`, + `byte_len` und `builddate`, sofern der XML-Kopf eines trägt. + +## Fehler + +- Unbekanntes Kürzel → klare Eingabefehler-Meldung mit der geprüften + URL. +- Kein ZIP, kein XML im Archiv, HTML-Fehlerseiten → interner Fehler + mit Ursache; HTML wird nie an nachgelagerte Schritte durchgereicht. diff --git a/MODULE.md b/MODULE.md new file mode 100644 index 0000000..dd42791 --- /dev/null +++ b/MODULE.md @@ -0,0 +1,59 @@ +# source.bundesrecht + + + +![law-source-bund inputs and outputs](law-source-bund.io.svg) + + +Fetch German federal law from gesetze-im-internet.de by slug + +## What it does + +Resolves a gesetze-im-internet.de slug (e.g. `bgb`, `estg`, `gg`, +`stromnzv`) against the public BMJ publication site, downloads the +law's `xml.zip`, unpacks the BMJ norm XML (gii-norm DTD) and returns +it plus a metadata record. The unpacked bytes are content-addressed +(SHA-256), so the flow's audit trail pins the exact Gesetzesstand +that was processed. + +Unlike EUR-Lex, gesetze-im-internet serves only the CURRENT +consolidated state — there is no URL for an older version. The +SHA-256 (plus the BMJ `builddate` from the XML header) is what makes +a later re-fetch comparable: a change upstream becomes visible +instead of silent. + +Public BMJ data only; network permission is pinned to +`www.gesetze-im-internet.de`. + +## How to use + +```yaml +steps: + - id: fetch + use: source.bundesrecht@^0 + with: + gesetz: stromnzv + + - id: normalize + use: text.akoma-normalize@^0 + with: + content: $fetch.xml +``` + +The slug is the path segment of the law's page on +gesetze-im-internet.de: `https://www.gesetze-im-internet.de//`. + +## Outputs + +- `xml` — the BMJ norm XML as unpacked from the site's archive. + Feed into `text.akoma-normalize` for the structured + Akoma-Ntoso-aligned representation (its v0.1 BMJ adapter handles + this format natively). +- `meta` — JSON SourceMeta: `gesetz`, `url`, `source_sha256`, + `byte_len`, and `builddate` when the XML header carries one. + +## Errors + +- Unknown slug → clear invalid-input error naming the checked URL. +- Non-ZIP or XML-less download, HTML error pages → internal error + with the reason; nothing HTML-shaped is ever passed downstream. diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..8d488cf --- /dev/null +++ b/NOTICE @@ -0,0 +1,25 @@ +law-source-bund +Copyright 2026 Flemming.AI + +This product includes software developed by Dr. Stefan Flemming +and contributors (https://flemming.ai/). + +------------------------------------------------------------------ +Third-party acknowledgments + +ZIP unpacking uses the `zip` crate +(https://github.com/zip-rs/zip2), MIT licensed. + +SHA-256 hashing uses the `sha2` crate +(https://github.com/RustCrypto/hashes), Apache-2.0 / MIT licensed. + +Module SDK glue is provided by `chain-module-sdk` +(https://git.flemming.ai/fai/chain-module-sdk-rust), Apache-2.0. + +------------------------------------------------------------------ +Data source + +Fetches public legal texts from gesetze-im-internet.de, the joint +publication site of the Federal Ministry of Justice (BMJ) and +juris GmbH. The texts themselves are official works exempt from +copyright protection under § 5 UrhG. diff --git a/STORE.yaml b/STORE.yaml new file mode 100644 index 0000000..5da13e0 --- /dev/null +++ b/STORE.yaml @@ -0,0 +1,28 @@ +schema_version: 1 + +author: + name: "Flemming.AI" + email: chain@flemming.ai + url: https://flemming.ai + +license: Apache-2.0 + +tagline: + en: "Fetch German federal law from gesetze-im-internet.de" + de: "Deutsches Bundesrecht von gesetze-im-internet.de holen" + +description: + en: "Resolves a gesetze-im-internet.de slug against the public BMJ site, unpacks the law's BMJ norm XML and returns it content-addressed (SHA-256) so the audit trail pins the exact legal state processed." + de: "Löst ein gesetze-im-internet.de-Kürzel gegen die öffentliche BMJ-Seite auf, entpackt das BMJ-Normen-XML des Gesetzes und liefert es inhaltsadressiert (SHA-256) — das Prüfprotokoll hält den exakten Gesetzesstand fest." + +category: data +tags: [legal, bundesrecht, gesetze-im-internet, bmj, source] + +assets: + icon: assets/icon.svg + +documentation: + long_description: MODULE.md + +links: + repository: https://git.flemming.ai/chain-modules/law-source-bund diff --git a/assets/icon.svg b/assets/icon.svg new file mode 100644 index 0000000..86d387c --- /dev/null +++ b/assets/icon.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/law-source-bund.io.de.svg b/law-source-bund.io.de.svg new file mode 100644 index 0000000..b9ec584 --- /dev/null +++ b/law-source-bund.io.de.svg @@ -0,0 +1,36 @@ +law-source-bundv0.1.0source.bundesrecht@0.1.0EINGÄNGEAUSGÄNGElaw-source-bundgesetz · textKürzel (Slug) des Gesetzes aufgesetze-im-internet.de, z. B. bgb, estg,gg oder stromnzv. Der Slug ist dasmeta · jsonJSON-codiertes SourceMeta (Felder s.EN). source_sha256 ist derVersionsanker: gesetze-im-internetxml · bytesBMJ-Normen-XML (gii-norm-DTD) aus demxml.zip der Seite. Für diestrukturierte Akoma-Ntoso-Darstellung anBerechtigungen: net: www.gesetze-im-internet.de \ No newline at end of file diff --git a/law-source-bund.io.svg b/law-source-bund.io.svg new file mode 100644 index 0000000..37396e9 --- /dev/null +++ b/law-source-bund.io.svg @@ -0,0 +1,36 @@ +law-source-bundv0.1.0source.bundesrecht@0.1.0INPUTSOUTPUTSlaw-source-bundgesetz · textgesetze-im-internet.de slug of the law,e.g. bgb, estg, gg, or stromnzv. Theslug is the path segment of the law'smeta · jsonJSON-encoded SourceMeta: {schema_version: "0.1", gesetz: "bgb",url:xml · bytesBMJ norm XML (gii-norm DTD) as unpackedfrom the site's xml.zip. Feed intotext.akoma-normalize for the structuredPermissions: net: www.gesetze-im-internet.de \ No newline at end of file diff --git a/module.wasm b/module.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7987c4007b855b030133888812d3e3d62566f129 GIT binary patch literal 371430 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 z

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

0{DcdjZH8F-&UnK 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 T;SNj9pGK4fcysD#-@5tV;aIZ! literal 0 HcmV?d00001 diff --git a/module.yaml b/module.yaml new file mode 100644 index 0000000..8cbd0ef --- /dev/null +++ b/module.yaml @@ -0,0 +1,70 @@ +schema_version: 3 +provider: chain +name: law-source-bund +version: 0.1.0 + +# Capability provided by this module. +# +# Fetches one German federal law from gesetze-im-internet.de (BMJ) +# by its site slug and returns the BMJ XML content-addressed +# (SHA-256), so a flow's audit trail pins the exact Gesetzesstand +# it processed. Public BMJ data only — no authentication, no +# personal data. +provides: + - capability: source.bundesrecht + version: 0.1.0 + +inputs: + gesetz: + type: text + description: + en: | + gesetze-im-internet.de slug of the law, e.g. bgb, estg, + gg, or stromnzv. The slug is the path segment of the law's + page (https://www.gesetze-im-internet.de//). + de: | + Kürzel (Slug) des Gesetzes auf gesetze-im-internet.de, + z. B. bgb, estg, gg oder stromnzv. Der Slug ist das + Pfadsegment der Gesetzes-Seite + (https://www.gesetze-im-internet.de//). + +outputs: + xml: + type: bytes + description: + en: | + BMJ norm XML (gii-norm DTD) as unpacked from the site's + xml.zip. Feed into text.akoma-normalize for the structured + Akoma-Ntoso-aligned representation. + de: | + BMJ-Normen-XML (gii-norm-DTD) aus dem xml.zip der Seite. + Für die strukturierte Akoma-Ntoso-Darstellung an + text.akoma-normalize weiterreichen. + meta: + type: json + description: + en: | + JSON-encoded SourceMeta: + { + schema_version: "0.1", + gesetz: "bgb", + url: "https://www.gesetze-im-internet.de/bgb/xml.zip", + source_sha256: "…", // hash of the unpacked XML bytes + byte_len: 123456, + builddate: "20260701120000" // from the XML header, if present + } + source_sha256 is the versioning anchor: gesetze-im-internet + serves only the current consolidated state, so the hash (plus + the BMJ builddate) is what makes a later re-fetch comparable. + de: | + JSON-codiertes SourceMeta (Felder s. EN). source_sha256 ist + der Versionsanker: gesetze-im-internet liefert nur den + aktuellen konsolidierten Stand — Hash + BMJ-builddate machen + einen späteren Re-Fetch vergleichbar. + +# Permissions required. +# +# One pinned host: the module talks to gesetze-im-internet.de +# (BMJ / juris publication site) and nothing else. +permissions: + - "net: www.gesetze-im-internet.de" diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..32add0c --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,4 @@ +[toolchain] +channel = "1.86" +targets = ["wasm32-wasip2"] +components = ["rustfmt", "clippy"] diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..5af6b5b --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,407 @@ +//! `source.bundesrecht` module — fetch one German federal law from +//! gesetze-im-internet.de (BMJ) by its site slug and hand its BMJ +//! norm XML downstream, content-addressed so a flow's audit trail +//! pins the exact Gesetzesstand. +//! +//! # Capability +//! +//! - **Input:** +//! * `gesetz` — `text`, the gesetze-im-internet.de slug (e.g. +//! `bgb`, `estg`, `gg`, `stromnzv`) — the path segment of the +//! law's page. +//! - **Output:** +//! * `xml` — `bytes` (`application/xml`), the BMJ norm XML +//! (gii-norm DTD) unpacked from the site's `xml.zip`. Feed it +//! to `text.akoma-normalize` for the structured representation. +//! * `meta` — `json` SourceMeta (see below): slug, the resolved +//! URL, SHA-256 of the unpacked XML, and the BMJ `builddate` +//! from the XML header when present. +//! +//! # Versioning ("Gesetzesstand") +//! +//! Unlike EUR-Lex, gesetze-im-internet serves only the CURRENT +//! consolidated state — there is no URL for an older version. The +//! module therefore returns `source_sha256` (and the BMJ +//! `builddate`) so downstream steps and the audit log can prove +//! which bytes the flow saw; a later re-fetch that differs becomes +//! visible instead of silent. +//! +//! # Scope +//! +//! Public BMJ data only; no authentication, no personal data. +//! Network permission is pinned to `www.gesetze-im-internet.de`. + +#![allow(clippy::result_large_err)] + +use std::io::Read; + +use chain_module_sdk::prelude::*; +use serde::Serialize; +use sha2::{Digest, Sha256}; + +/// Cap on the unpacked XML size (the BGB, the largest law on the +/// site, unpacks to ~9 MB — 64 MB leaves an order of magnitude of +/// headroom while a zip bomb stays contained). +const MAX_XML_BYTES: u64 = 64 * 1024 * 1024; + +/// Cap on the downloaded archive itself. waki buffers the response +/// in memory before we see it, so this cannot stop the transfer — +/// but it turns an absurd body into a clean module error instead of +/// feeding it to the unzipper (the WASM memory ceiling backstops +/// the transfer itself). +const MAX_DOWNLOAD_BYTES: usize = 96 * 1024 * 1024; + +#[derive(Debug, Serialize)] +struct SourceMeta { + schema_version: &'static str, + gesetz: String, + url: String, + source_sha256: String, + byte_len: usize, + /// BMJ `builddate` attribute from the `` root, e.g. + /// `20260701120000`; absent when the header does not carry one. + #[serde(skip_serializing_if = "Option::is_none")] + builddate: Option, +} + +#[chain_module] +pub fn invoke(_ctx: Context, inputs: Inputs) -> Result { + let slug_raw = inputs.require_text("gesetz")?; + let slug = normalize_slug(slug_raw)?; + let url = gii_url(&slug); + + let (status, body) = fetch(&url)?; + if status == 404 { + return Err(ModuleError::invalid_input(format!( + "gesetze-im-internet.de knows no law '{slug}' \ + (checked {url}) — the slug is the path segment of the \ + law's page, e.g. bgb, estg, gg" + ))); + } + if status != 200 { + return Err(ModuleError::internal(format!( + "gesetze-im-internet.de answered HTTP {status} for {url}" + ))); + } + if body.len() > MAX_DOWNLOAD_BYTES { + return Err(ModuleError::internal(format!( + "the download for '{slug}' is {} bytes — over the \ + {MAX_DOWNLOAD_BYTES}-byte safety cap", + body.len() + ))); + } + + let xml = unzip_norm_xml(&body, &slug)?; + if !looks_like_bmj_xml(&xml) { + return Err(ModuleError::internal(format!( + "the archive for '{slug}' did not contain BMJ norm XML \ + (gii-norm DTD expected)" + ))); + } + + let meta = SourceMeta { + schema_version: "0.1", + gesetz: slug, + url, + source_sha256: hex_sha256(&xml), + byte_len: xml.len(), + builddate: builddate(&xml), + }; + + Outputs::new() + .with_bytes("xml", "application/xml", xml) + .with_json("meta", &meta) +} + +/// Validate + canonicalise a gesetze-im-internet slug. Lower-cases +/// and refuses anything that is not a plain path segment, so a URL +/// or a stray path can never smuggle a different host or directory +/// into the request. +fn normalize_slug(raw: &str) -> Result { + let s = raw.trim().to_ascii_lowercase(); + let valid_len = (1..=64).contains(&s.len()); + let valid_chars = s + .chars() + .all(|c| c.is_ascii_lowercase() || c.is_ascii_digit() || c == '_' || c == '-'); + if !(valid_len && valid_chars) { + return Err(ModuleError::invalid_input(format!( + "'{raw}' is not a gesetze-im-internet slug \ + (expected the path segment of the law's page, e.g. bgb, \ + estg, gg, stromnzv)" + ))); + } + Ok(s) +} + +/// Download URL for a slug. Every law's machine-readable form lives +/// at `/xml.zip` next to its HTML page. +fn gii_url(slug: &str) -> String { + format!("https://www.gesetze-im-internet.de/{slug}/xml.zip") +} + +/// Unpack the norm XML out of the site's `xml.zip`. The archive +/// carries one `*.xml` (plus image attachments for some laws); when +/// several XML entries exist the largest one is the norm body. +fn unzip_norm_xml(archive_bytes: &[u8], slug: &str) -> Result, ModuleError> { + let cursor = std::io::Cursor::new(archive_bytes); + let mut archive = zip::ZipArchive::new(cursor).map_err(|e| { + ModuleError::internal(format!( + "the download for '{slug}' is not a readable ZIP archive: {e}" + )) + })?; + + let mut best: Option<(usize, u64)> = None; + for i in 0..archive.len() { + let entry = archive.by_index(i).map_err(|e| { + ModuleError::internal(format!("ZIP entry {i} for '{slug}' is unreadable: {e}")) + })?; + let name = entry.name().to_ascii_lowercase(); + if name.ends_with(".xml") && best.is_none_or(|(_, size)| entry.size() > size) { + best = Some((i, entry.size())); + } + } + + let Some((index, size)) = best else { + return Err(ModuleError::internal(format!( + "the archive for '{slug}' contains no XML entry" + ))); + }; + if size > MAX_XML_BYTES { + return Err(ModuleError::internal(format!( + "the norm XML for '{slug}' declares {size} bytes — over the \ + {MAX_XML_BYTES}-byte safety cap" + ))); + } + + let entry = archive + .by_index(index) + .map_err(|e| ModuleError::internal(format!("ZIP entry for '{slug}' is unreadable: {e}")))?; + let mut xml = Vec::with_capacity(size as usize); + // Read one byte past the DECLARED size: the header is attacker + // input, and silently truncating a lying entry would ship (and + // SHA-256-anchor) partial law text as if it were authoritative. + // Any mismatch — more data than declared or less — is an error. + let read = entry.take(size + 1).read_to_end(&mut xml).map_err(|e| { + ModuleError::internal(format!("unpacking the XML for '{slug}' failed: {e}")) + })?; + if read as u64 != size { + return Err(ModuleError::internal(format!( + "the norm XML for '{slug}' decompresses to a different size \ + than its ZIP header declares ({size} bytes declared) — \ + refusing the archive as corrupt or manipulated" + ))); + } + Ok(xml) +} + +/// Cheap shape check: XML declaration or root tag, and the gii-norm +/// vocabulary (`` root or `` records). Error pages +/// are HTML. +fn looks_like_bmj_xml(body: &[u8]) -> bool { + let head = body.get(..4096.min(body.len())).unwrap_or_default(); + let head = String::from_utf8_lossy(head); + let head_trim = head.trim_start(); + if !head_trim.starts_with("` root tag, +/// e.g. ``. Plain +/// string scan — the value sits in the first few hundred bytes and +/// an XML parser would be dead weight here. +fn builddate(xml: &[u8]) -> Option { + let head = xml.get(..4096.min(xml.len()))?; + let head = String::from_utf8_lossy(head); + let after = head.split("builddate=\"").nth(1)?; + let value: String = after.chars().take_while(|c| *c != '"').collect(); + let plausible = (8..=20).contains(&value.len()) && value.chars().all(|c| c.is_ascii_digit()); + plausible.then_some(value) +} + +fn hex_sha256(data: &[u8]) -> String { + let mut hasher = Sha256::new(); + hasher.update(data); + let digest = hasher.finalize(); + let mut s = String::with_capacity(64); + for byte in digest { + s.push(nibble_to_hex(byte >> 4)); + s.push(nibble_to_hex(byte & 0x0f)); + } + s +} + +fn nibble_to_hex(n: u8) -> char { + match n { + 0..=9 => (b'0' + n) as char, + 10..=15 => (b'a' + n - 10) as char, + _ => '?', + } +} + +/// WASM path: one GET. The hub's sandbox enforces the +/// `net: www.gesetze-im-internet.de` permission. +#[cfg(target_arch = "wasm32")] +fn fetch(url: &str) -> Result<(u16, Vec), ModuleError> { + let response = waki::Client::new() + .get(url) + .header( + waki::header::HeaderName::from_static("accept"), + waki::header::HeaderValue::from_static("application/zip"), + ) + .send() + .map_err(|e| ModuleError::internal(format!("gesetze-im-internet request failed: {e}")))?; + let status = response.status_code(); + let body = response + .body() + .map_err(|e| ModuleError::internal(format!("gesetze-im-internet body read failed: {e}")))?; + Ok((status, body)) +} + +/// Host-side stub. Lets `cargo test` (no wasm target) link the rlib +/// without pulling waki; the real path is the wasm32 variant above. +#[cfg(not(target_arch = "wasm32"))] +fn fetch(_url: &str) -> Result<(u16, Vec), ModuleError> { + Err(ModuleError::internal( + "source.bundesrecht can only fetch under the WASM runtime", + )) +} + +#[cfg(test)] +mod tests { + #![allow(clippy::unwrap_used, clippy::expect_used, clippy::panic)] + use super::*; + use std::io::Write; + use zip::write::SimpleFileOptions; + + fn zip_of(entries: &[(&str, &[u8])]) -> Vec { + let mut buf = std::io::Cursor::new(Vec::new()); + let mut writer = zip::ZipWriter::new(&mut buf); + for (name, bytes) in entries { + writer + .start_file(*name, SimpleFileOptions::default()) + .unwrap(); + writer.write_all(bytes).unwrap(); + } + writer.finish().unwrap(); + buf.into_inner() + } + + const SAMPLE_XML: &[u8] = br#" + +BGB +"#; + + #[test] + fn lying_zip_size_header_is_rejected() { + // Highly compressible payload so deflate actually shrinks it, + // then patch the central directory's uncompressed-size field + // (offset 24 in the PK\x01\x02 record) to declare fewer bytes + // than the entry inflates to — the attacker-controlled header + // lies. Truncating silently would anchor partial law text. + let mut payload = SAMPLE_XML.to_vec(); + payload.extend(std::iter::repeat_n(b'a', 64 * 1024)); + let mut bytes = zip_of(&[("BJNR001950896.xml", payload.as_slice())]); + let cd = bytes + .windows(4) + .rposition(|w| w == [0x50, 0x4b, 0x01, 0x02]) + .expect("central directory record"); + bytes[cd + 24..cd + 28].copy_from_slice(&1000u32.to_le_bytes()); + let err = unzip_norm_xml(&bytes, "bgb").unwrap_err(); + assert!( + format!("{err:?}").contains("different size"), + "expected the size-mismatch rejection, got: {err:?}" + ); + } + + #[test] + fn accepts_plain_slugs() { + assert_eq!(normalize_slug("bgb").unwrap(), "bgb"); + assert_eq!(normalize_slug(" BGB ").unwrap(), "bgb"); + assert_eq!(normalize_slug("stromnzv").unwrap(), "stromnzv"); + assert_eq!(normalize_slug("bgb-1").unwrap(), "bgb-1"); + assert_eq!(normalize_slug("estg_2009").unwrap(), "estg_2009"); + } + + #[test] + fn rejects_paths_urls_and_garbage() { + assert!(normalize_slug("").is_err()); + assert!(normalize_slug("bgb/xml.zip").is_err()); + assert!(normalize_slug("https://www.gesetze-im-internet.de/bgb/").is_err()); + assert!(normalize_slug("../etc").is_err()); + assert!(normalize_slug("a b").is_err()); + } + + #[test] + fn builds_the_download_url() { + assert_eq!( + gii_url("bgb"), + "https://www.gesetze-im-internet.de/bgb/xml.zip" + ); + } + + #[test] + fn unzips_the_single_xml_entry() { + let archive = zip_of(&[("BJNR001950896.xml", SAMPLE_XML)]); + let xml = unzip_norm_xml(&archive, "bgb").unwrap(); + assert_eq!(xml, SAMPLE_XML); + } + + #[test] + fn picks_the_largest_xml_when_several_exist() { + let small = b"" as &[u8]; + let archive = zip_of(&[ + ("toc.xml", small), + ("BJNR001950896.xml", SAMPLE_XML), + ("bild.gif", b"GIF89a..."), + ]); + let xml = unzip_norm_xml(&archive, "bgb").unwrap(); + assert_eq!(xml, SAMPLE_XML); + } + + #[test] + fn refuses_archive_without_xml() { + let archive = zip_of(&[("bild.gif", b"GIF89a...")]); + let err = unzip_norm_xml(&archive, "bgb").unwrap_err(); + assert!(format!("{err:?}").contains("no XML entry")); + } + + #[test] + fn refuses_non_zip_bytes() { + assert!(unzip_norm_xml(b"404", "nope").is_err()); + } + + #[test] + fn bmj_shape_check_accepts_norm_xml_rejects_html() { + assert!(looks_like_bmj_xml(SAMPLE_XML)); + assert!(!looks_like_bmj_xml( + b"Not found" + )); + assert!(!looks_like_bmj_xml(b"plain text")); + assert!(!looks_like_bmj_xml(b"")); + // XML, but not the gii-norm vocabulary. + assert!(!looks_like_bmj_xml(b"")); + } + + #[test] + fn extracts_builddate_from_the_root_tag() { + assert_eq!(builddate(SAMPLE_XML).as_deref(), Some("20260701120000")); + assert_eq!(builddate(b""), None); + // Non-numeric builddate is refused rather than passed through. + assert_eq!( + builddate(b""), + None + ); + } + + #[test] + fn hashes_are_hex_and_deterministic() { + let a = hex_sha256(b"abc"); + assert_eq!(a.len(), 64); + assert_eq!(a, hex_sha256(b"abc")); + } +}