sai-js

Solid Application Interoperability (TypeScript)

CI codecov Gitter 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

Default setup assumes docker command available, and runs it as non-root user. It only uses official redis image for the authorization agent service.

Node, corepack and pnpm

Requires node.js 20 or higher with corepack (Volta may help with managing node versions). Uses pnpm as package manager.

volta install node@20
volta install corepack
corepack prepare pnpm@latest --activate

Github packages

Bootstrapping

pnpm install
pnpm build
pnpm test
pnpm dev

In separate terminal

pnpm watch

It will run following:

Community Solid Server

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

Available on http://localhost:3000, default demo account is alice@acme.example with password.

Authorization Agent

Service

Run from packages/service. Available on http://localhost:4000 (API only)

UI

Run from ui/authorization. Available on http://localhost:4200 , 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 http://localhost:4500 , 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 available at https://hosted.weblate.org/projects/sai/ Courtesy of Weblate Libre hosting.

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