Опубликованный пакет / CLIR

eu.transport.air_passenger_rights

v0.1.0

Regulation (EC) No 261/2004 of the European Parliament and of the Council of 11 February 2004 establishing common rules on compensation and assistance to passengers in the event of denied boarding and of cancellation or long delay of flights, and repealing Regulation (EEC) No 295/91

Пломба §208sha256:2469dd56ac55e034eda559333efa2228f31c49e56e3d1bbfe8add29ecde0fbdf
Подключить / law.toml
[dependencies]
eu.transport.air_passenger_rights = "0.1.0"
Получить канонические байты
curl -O /blobs/2469dd56ac55e034eda559333efa2228f31c49e56e3d1bbfe8add29ecde0fbdf.lawir.json

Версия неизменна: содержимое по этому адресу не меняется никогда.

Дескриптор ниже — ровно та запись, которую резолвер кладёт вlaw.lock. Его форма нормативна ($defs/LockedPackageсхемы lockfile, §11), поэтому статус публикации выражается разделом каталога, а не полем внутри: лишнее поле сделало бы дескриптор невалидным.

{
  "contentHash": "sha256:2469dd56ac55e034eda559333efa2228f31c49e56e3d1bbfe8add29ecde0fbdf",
  "features": [
    "core-executable",
    "law.decision/0.1"
  ],
  "name": "eu.transport.air_passenger_rights",
  "namespace": "urn:eu:transport:clir:air-passenger-rights",
  "registryId": "law-dsl-dev",
  "resolverUri": "registry://law-dsl-dev/eu.transport.air_passenger_rights/0.1.0",
  "version": "0.1.0"
}

Байты

скачать
2469dd56ac55e034eda559333efa2228f31c49e56e3d1bbfe8add29ecde0fbdf.lawir.json
источник
corpus/clir/eu-air-passenger-rights.lawir.json
contentHash
sha256:2469dd56ac55e034eda559333efa2228f31c49e56e3d1bbfe8add29ecde0fbdf

Имя файла и есть его content-адрес: путь не может начать означать другое содержимое. Проверить скачанное — тем же способом, каким считает реестр:

PYTHONPATH=lawref python3 -c '
import json, sys
from lawref.resolver import package_content_hash
print(package_content_hash(json.load(open(sys.argv[1]))))
' 2469dd56ac55e034eda559333efa2228f31c49e56e3d1bbfe8add29ecde0fbdf.lawir.json

Хэш посчитан по каноническим байтам CLIR-документа (§208). Скачанный файл обязан дать то же значение — это и есть проверка целостности, которую выполняет resolver.load_package_context при закреплении зависимости.

Подпись §244

Не выпускается. Схема поля есть (signature: algorithm, keyId, value), издателя и ключей — нет: подпись удостоверяет происхождение байтов, а не юридическую корректность правил, и заводится отдельной работой.