sai-js

Solid Application Interoperability (TypeScript)

CI codecov Matrix chat MIT license

Modules implementing Solid Application Interoperability Specification

Intended dependents

  package
Solid Applications @janeirodigital/interop-application
Solid Authorization Agent @janeirodigital/interop-authorization-agent

Development

Docker Shared Services

Default setup assumes docker command available, and runs it as non-root user. Also mkcert is required.

The setup is using modified Makefile and docker-compose.yaml from docker-shared-services

Node, corepack and pnpm

Requires node.js 22 or higher with corepack Uses pnpm as package manager.

corepack prepare pnpm@latest --activate
corepack enable pnpm

Github packages

Local DNS

macOS

sudo mkdir /etc/resolver/
sudo sh -c 'echo "nameserver 127.0.0.1" > /etc/resolver/docker'
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
./docker-mac-routes-add.sh

Bootstrapping

pnpm install
pnpm build
pnpm test

To setup mkcert local CA

mkcert --install

To create local certificates

make cert-install

To start local development

make up

It will run the following:

Community Solid Server

Run from packages/css-solid-fixture. Used for solid storage instances and solid-oidc provider.

Available on https://pod.docker, default demo account is alice@acme.example with password.

Authorization Agent

Service

Run from packages/service. Available on https://sai.docker (API only)

UI

Run from ui/authorization. Available on https://ui.sai.docker , requires signing up with UI first and later signing up in with the service (Connect server). Dev config uses local CSS as default provider when input left empty.

Demo app (Vujectron)

Run from examples/vuejectron. Available on https://vuejectron.docker , requires signup and authorization. Dev config uses local CSS as default provider when input left empty.

Localization

The translation project for all relevant components is hosted thanks to the courtesy of Weblate Libre hosting.

Translation status

Funding

This project is funded through the NGI Zero Entrust Fund, a fund established by NLnet with financial support from the European Commission’s Next Generation Internet program. Learn more at the NLnet project page.

NLnet foundation logo NGI Zero Entrust Logo