{"id":20631183,"url":"https://github.com/solidlabresearch/user-managed-access","last_synced_at":"2026-04-01T22:05:15.114Z","repository":{"id":208711165,"uuid":"722304213","full_name":"SolidLabResearch/user-managed-access","owner":"SolidLabResearch","description":"SolidLab access \u0026 usage control artefacts for use in the Solid ecosystem.","archived":false,"fork":false,"pushed_at":"2026-03-24T12:17:09.000Z","size":55073,"stargazers_count":8,"open_issues_count":23,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-28T00:37:58.809Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SolidLabResearch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":"COPYRIGHT.md","agents":null,"dco":null,"cla":null}},"created_at":"2023-11-22T21:14:37.000Z","updated_at":"2026-03-24T12:17:13.000Z","dependencies_parsed_at":"2024-05-21T16:43:13.205Z","dependency_job_id":"53ee1261-5b15-4c8c-b0ca-e6a5e57506cb","html_url":"https://github.com/SolidLabResearch/user-managed-access","commit_stats":null,"previous_names":["solidlabresearch/user-managed-access"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/SolidLabResearch/user-managed-access","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fuser-managed-access","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fuser-managed-access/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fuser-managed-access/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fuser-managed-access/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SolidLabResearch","download_url":"https://codeload.github.com/SolidLabResearch/user-managed-access/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fuser-managed-access/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T14:11:26.606Z","updated_at":"2026-04-01T22:05:15.072Z","avatar_url":"https://github.com/SolidLabResearch.png","language":"TypeScript","readme":"# SolidLab's User Managed Access\n\nThis repository contains SolidLab research artefacts on use of UMA in the Solid ecosystem.\n\n\n## Packages\n\n- [`@solidlab/uma`](packages/uma): Experimental and opinionated implementation of [UMA Grants](https://docs.kantarainitiative.org/uma/wg/rec-oauth-uma-grant-2.0.html) and [UMA Federation](https://docs.kantarainitiative.org/uma/wg/rec-oauth-uma-federated-authz-2.0.html).\n\n- [`@solidlab/uma-css`](packages/css): UMA modules for the [Community Solid Server](https://github.com/CommunitySolidServer/CommunitySolidServer/).\n\n- [`@solidlab/ucp`](packages/ucp): Usage Control Policy utility component.\n\n## Getting started\n\nIn order to run this project you need to perform the following steps.\n\n1. Install the [eye reasoner](https://github.com/eyereasoner/eye/) and have `eye` available on your path.\n2. Ensure that you are using Node.js 20 or higher, e.g. by running `nvm use`. (see [.nvmrc](./.nvmrc))\n2. Enable Node.js Corepack with `corepack enable`.\n3. Run `yarn install` in the project root (this will automatically call `yarn build`).\n4. Run `yarn start`.\n\nThis will boot up a UMA server and compatible Community Solid Server instance.\n\nYou can then execute the following flows:\n\n- `yarn script:public`: `GET` the public `/alice/profile/card` without redirection to the UMA server;\n- `yarn script:private`: `PUT` some text to the private `/alice/private/resource.txt`, protected by a simple WebID check;\n- `yarn script:uma-ucp`: `PUT` some text to the private `/alice/other/resource.txt`, protected by a UCP enforcer checking WebIDs according to policies in `packages/uma/config/rules/policy/`.\n- `yarn script:collection`: `POST`, `GET` and `DELETE` some text to/from `/alice/public/resource.txt` to test the correct creation and deletion of resource registrations on the UMA server.\n                            An AssetCollection policy is used to create `/alice/public/`.\n                            More information on the collection implementation can be found in [documentation/collections.md](documentation/collections.md).\n- `yarn script:uma-odrl-policy`: Tests all policy management APIs.\n- `yarn script:uma-odrl-end2end`: Tests the access request management APIs\n\n`yarn script:flow` runs all flows in sequence.\n\nAs we are still in the progress of documenting everything,\nthe above scripts are the best way to learn about how everything works.\n\nA more extensive getting started guide can be found\nin [documentation/getting-started.md](documentation/getting-started.md).\n\nMore information on policy management can be found in\n[documentation/policy-management](documentation/policy-management.md).\n\n## Demonstration\n\nInstead of running `yarn start`, you can run `yarn start:demo` to start the server with an alternative configuration.\nWith this configuration you can run the `script:demo`,\nwhich runs with experimental contracts.\n\n## Implemented features\n\nThe packages in this project currently only support a fixed UMA AS per CSS RS.\nAuthorization can be done with a simple, unverified, WebID embedded in the ticket\nusing the [WebIdAuthorizer](packages/uma/src/policies/authorizers/WebIdAuthorizer.ts)\nor the [OdrlAuthorizer](packages/uma/src/policies/authorizers/OdrlAuthorizer.ts)\nwhich supports simple ODRL policies.\nA [NamespacedAuthorizer](packages/uma/src/policies/authorizers/NamespacedAuthorizer.ts)\nis used to apply different authorizers to different containers.\n\n## ODRL\n\nA variant of the server that only uses ODRL for authorization can be started with `yarn start:odrl`.\nA corresponding script can then be executed with `yarn script:uma-odrl`.\nThe test policies can be found in [packages/uma/config/rules/odrl](packages/uma/config/rules/odrl).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidlabresearch%2Fuser-managed-access","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolidlabresearch%2Fuser-managed-access","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidlabresearch%2Fuser-managed-access/lists"}