Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add section on signed .eln files to specification #118

Merged
merged 1 commit into from
Feb 3, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions SPECIFICATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ Inside a .eln file, there MUST be a single folder that will contain the rest of

Inside that root folder, there MUST be a file named `ro-crate-metadata.json`. This file follows the [RO-Crate 1.1+ Specification](https://w3id.org/ro/crate/1.1).

The root folder MAY also contain a `ro-crate-metadata.json.minisig` signature file as described below.

The rest of the archive is composed of 0 or more folders that each describe one experiment or coherent set of data. Thus, the ELN archive can accommodate one or several experimental set of data.

Example for file: some-data.eln
Expand All @@ -23,6 +25,7 @@ Example for file: some-data.eln
<root>
some-data.eln/
- ro-crate-metadata.json
- ro-crate-metadata.json.minisig
- experimentA/:
- index.json
- image.tif
Expand Down Expand Up @@ -204,6 +207,12 @@ Here we show three nodes, the Dataset (main experiment), a Comment and a Person.

See the [RO-Crate website](https://www.researchobject.org/ro-crate/1.1/data-entities.html#example-linking-to-a-file-and-folders).

## Signed .eln files

If the root folder contains a `ro-crate-metadata.json.minisig` file, it must be a valid [minisign](https://jedisct1.github.io/minisign/) signature file for `ro-crate-metadata.json`. The trusted comment of the signature file SHOULD be set to a URL in the format of `https://<domain_of_the_exporting_eln>/.well-known/keys.json`.

The exporting ELN SHOULD serve a file at that URL, which contains a JSON array containing one or multiple schema.org `MediaObject` objects with the `encodingFormat` set to `"application/x-minisign-key"` and a `contentUrl` containing the URL of a public key used by that ELN for signing its .eln files. An importing ELN can use these public keys to try to verify the signature file.

## Concrete examples files

See the [examples folder](./examples).
Loading