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
77
module.yaml
Normal file
77
module.yaml
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
schema_version: 3
|
||||
provider: chain
|
||||
name: law-source-eurlex
|
||||
version: 0.1.0
|
||||
|
||||
# Capability provided by this module.
|
||||
#
|
||||
# Fetches one EU legal act from EUR-Lex by CELEX number and returns
|
||||
# the FORMEX-4 XML body content-addressed (SHA-256), so a flow's
|
||||
# audit trail pins the exact Gesetzesstand it processed. Public
|
||||
# EUR-Lex data only — no authentication, no personal data.
|
||||
provides:
|
||||
- capability: source.eu-recht
|
||||
version: 0.1.0
|
||||
|
||||
inputs:
|
||||
celex:
|
||||
type: text
|
||||
description:
|
||||
en: |
|
||||
CELEX identifier of the act, e.g. 32016R0679 (GDPR) or the
|
||||
consolidated form 02016R0679-20160504. An optional CELEX:
|
||||
prefix and lowercase letters are accepted.
|
||||
de: |
|
||||
CELEX-Nummer des Rechtsakts, z. B. 32016R0679 (DSGVO) oder
|
||||
konsolidiert 02016R0679-20160504. Optionales CELEX:-Präfix
|
||||
und Kleinbuchstaben werden akzeptiert.
|
||||
language:
|
||||
type: text
|
||||
optional: true
|
||||
description:
|
||||
en: |
|
||||
Two-letter EUR-Lex language code (DE default; EN, FR, …).
|
||||
Validated against the 24 official-language codes.
|
||||
de: |
|
||||
Zwei-Buchstaben-Sprachcode von EUR-Lex (Standard DE; EN,
|
||||
FR, …). Wird gegen die 24 Amtssprachen-Codes geprüft.
|
||||
|
||||
outputs:
|
||||
formex:
|
||||
type: bytes
|
||||
description:
|
||||
en: |
|
||||
FORMEX-4 XML body as served by EUR-Lex
|
||||
(application/xml). Feed into text.akoma-normalize (0.2+)
|
||||
for the structured Akoma-Ntoso-aligned representation.
|
||||
de: |
|
||||
FORMEX-4-XML wie von EUR-Lex geliefert (application/xml).
|
||||
Für die strukturierte Akoma-Ntoso-Darstellung an
|
||||
text.akoma-normalize (0.2+) weiterreichen.
|
||||
meta:
|
||||
type: json
|
||||
description:
|
||||
en: |
|
||||
JSON-encoded SourceMeta:
|
||||
{
|
||||
schema_version: "0.1",
|
||||
celex: "32016R0679",
|
||||
language: "DE",
|
||||
url: "https://eur-lex.europa.eu/legal-content/…",
|
||||
source_sha256: "…", // hash of the fetched bytes
|
||||
byte_len: 123456,
|
||||
consolidation_date: "2016-05-04" // only for 0…-YYYYMMDD CELEX
|
||||
}
|
||||
source_sha256 is the versioning anchor: the same CELEX can
|
||||
legitimately re-render upstream; the hash makes that visible.
|
||||
de: |
|
||||
JSON-codiertes SourceMeta (Felder s. EN). source_sha256 ist
|
||||
der Versionsanker: derselbe CELEX kann upstream neu gerendert
|
||||
werden; der Hash macht das sichtbar statt still.
|
||||
|
||||
# Permissions required.
|
||||
#
|
||||
# One pinned host: the module talks to the EU Publications Office
|
||||
# (CELLAR — the store behind EUR-Lex) and nothing else.
|
||||
permissions:
|
||||
- "net: publications.europa.eu"
|
||||
Loading…
Add table
Add a link
Reference in a new issue