@cef-ebsi/trusted-nodes-list
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

EBSI Logo

Trusted Nodes List

This library helps you retrieve and validate the list of trusted nodes for a given EBSI environment.

Table of Contents

  1. Installation
  2. Usage
  3. License

Installation

Using npm:

npm i --save @cef-ebsi/trusted-nodes-list

Using yarn:

yarn add @cef-ebsi/trusted-nodes-list

Usage

This library exposes 2 main functions: getTrustedNodesList (recommended) and getTrustedNodesListFromSources.

getTrustedNodesList

Warning: the Bitbucket files fetcher doesn't work in a browser because the Bitbucket server doesn't allow cross-origin resource sharing (CORS). If you want to use the @cef-ebsi/trusted-nodes-list in a browser, please use getTrustedNodesListFromSources instead and define custom sources.

The function getTrustedNodesList will fetch the TNL JWTs from Bitbucket and GitLab — i.e. the default locations. Internally, it will pre-configure the 2 sources and pass them to getTrustedNodesListFromSources.

import { getTrustedNodesList } from "@cef-ebsi/trusted-nodes-list";

// The first parameter is the EBSI environment for which we want to retrieve a list of trusted nodes, e.g. "pilot
const trustedNodesList = await getTrustedNodesList("pilot");

// Optionally, you can pass a second parameter which may contain the Axios timeout (default: 30s)
const trustedNodesList = await getTrustedNodesList("pilot", {
  timeout: 10_000, // Default: 30_000
});

// The result will look like this:
console.log(trustedNodesList);

/*
Displays:
{
  "list": {
    "chainId": 6179,
    "environment": "pilot",
    "id": "did:ebsi:ztMy7kLecXXvQwDzXYKLQ2j",
    "nodes": [
      {
        "apis": "https://api-pilot.ebsi.example.es",
        "country": "esp"
      },
      {
        "apis": "https://api-pilot.ebsi.example.mt",
        "country": "mlt"
      },
      {
        "apis": "https://api-pilot.ebsi.example2.es",
        "country": "esp"
      }
    ],
    "nodesTotal": 3,
    "version": 1
  },
  "raw": {
    "vc": "<raw VC JWT>",
    "vp": "<raw VP JWT>"
  }
*/

getTrustedNodesListFromSources

The function getTrustedNodesListFromSources lets you use custom sources. It is not recommended to use it. Please prefer using the preconfigured getTrustedNodesList function instead.

However, if you still want to use custom sources from where to retrieve the TNL JWTs, you should create a custom source class extending the Source interface, and pass it to the getTrustedNodesListFromSources function.

You can find an example of such a custom source in ./tests/helpers/fs-source.ts.

License

Copyright (C) 2025 European Union

This program is free software: you can redistribute it and/or modify it under the terms of the EUROPEAN UNION PUBLIC LICENCE v. 1.2 as published by the European Union.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the EUROPEAN UNION PUBLIC LICENCE v. 1.2 for further details.

You should have received a copy of the EUROPEAN UNION PUBLIC LICENCE v. 1.2. along with this program. If not, see https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12.

Readme

Keywords

none

Package Sidebar

Install

npm i @cef-ebsi/trusted-nodes-list

Weekly Downloads

4

Version

1.0.0

License

EUPL-1.2

Unpacked Size

76.8 kB

Total Files

33

Last publish

Collaborators

  • iamtxena
  • yhuard
  • joticajulian
  • zgorizzo
  • maurolucc