feat: law-source-eurlex 0.1.0 (source.eu-recht)
All checks were successful
CI / Linux x86_64 (Forgejo) (push) Successful in 1m45s
All checks were successful
CI / Linux x86_64 (Forgejo) (push) Successful in 1m45s
Fetch one EU legal act from EUR-Lex by CELEX number and return its FORMEX-4 XML content-addressed (SHA-256), so a flow's audit trail pins the exact Gesetzesstand it processed. - CELLAR content negotiation (application/xml;type=fmx4) on publications.europa.eu; 303 multiple-choice item selection - host-pinned redirect handling (max 3 hops), 64 MB body cap - consolidated CELEX (0...-YYYYMMDD) yields consolidation_date - net permission pinned to publications.europa.eu; no auth - 10 unit tests (no network), wasm32-wasip2 build green Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
commit
0e768ae6db
16 changed files with 1726 additions and 0 deletions
46
MODULE.md
Normal file
46
MODULE.md
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# source.eu-recht
|
||||
|
||||
<!-- chain:io-card:start -->
|
||||
<!-- Generated by `chain doc` from module.yaml — do not edit by hand. -->
|
||||

|
||||
<!-- chain:io-card:end -->
|
||||
|
||||
Fetch EU legal acts from EUR-Lex by CELEX number
|
||||
|
||||
## What it does
|
||||
|
||||
Resolves a CELEX identifier (e.g. `32016R0679` for the GDPR, or the
|
||||
consolidated form `02016R0679-20160504`) against the public EUR-Lex
|
||||
CELLAR endpoint and returns the act's FORMEX-4 XML plus a
|
||||
metadata record. The fetched bytes are content-addressed (SHA-256),
|
||||
so the flow's audit trail pins the exact Gesetzesstand that was
|
||||
processed — a later re-fetch of "the same" CELEX that renders
|
||||
differently upstream becomes visible instead of silent.
|
||||
|
||||
Public EUR-Lex data only; network permission is pinned to
|
||||
`publications.europa.eu` (CELLAR, the EU Publications Office store
|
||||
behind EUR-Lex).
|
||||
|
||||
## How to use
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
- id: fetch
|
||||
use: source.eu-recht@^0
|
||||
with:
|
||||
celex: "32016R0679"
|
||||
language: "DE" # optional, default DE
|
||||
- id: normalize
|
||||
use: text.akoma-normalize@^0 # 0.2+ understands FORMEX-4
|
||||
with:
|
||||
content: "{{ fetch.formex }}"
|
||||
mime: "application/x-formex+xml"
|
||||
```
|
||||
|
||||
Outputs: `formex` (bytes, `application/xml`) and `meta` (JSON with
|
||||
`celex`, `language`, `url`, `source_sha256`, `byte_len`, and
|
||||
`consolidation_date` for consolidated CELEX numbers).
|
||||
|
||||
## License
|
||||
|
||||
Apache-2.0 — a Ch∆In platform module (Flemming.AI).
|
||||
Loading…
Add table
Add a link
Reference in a new issue