{"id":28213560,"url":"https://github.com/solidlabresearch/solid-notifications-aggregator","last_synced_at":"2026-04-16T20:41:04.191Z","repository":{"id":225160150,"uuid":"765208928","full_name":"SolidLabResearch/solid-notifications-aggregator","owner":"SolidLabResearch","description":"A stream registry service working on top of one (or multiple) solid servers to create an intermediate caching state of the streaming data stored in the pod.","archived":false,"fork":false,"pushed_at":"2025-04-14T08:05:27.000Z","size":498,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-17T20:11:24.762Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","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":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-29T13:40:29.000Z","updated_at":"2025-04-14T08:05:31.000Z","dependencies_parsed_at":"2024-07-17T13:15:27.031Z","dependency_job_id":"5c5092a4-0439-4bd2-b6d2-538e865bcfdc","html_url":"https://github.com/SolidLabResearch/solid-notifications-aggregator","commit_stats":null,"previous_names":["argahsuknesib/solid-stream-registry","solidlabresearch/solid-stream-notifications-cache","solidlabresearch/solid-stream-notifications-aggregator","solidlabresearch/decentralized-stream-notifications-aggregator","solidlabresearch/solid-notifications-aggregator"],"tags_count":4,"template":false,"template_full_name":"argahsuknesib/TS-Template","purl":"pkg:github/SolidLabResearch/solid-notifications-aggregator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fsolid-notifications-aggregator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fsolid-notifications-aggregator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fsolid-notifications-aggregator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fsolid-notifications-aggregator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SolidLabResearch","download_url":"https://codeload.github.com/SolidLabResearch/solid-notifications-aggregator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fsolid-notifications-aggregator/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259308154,"owners_count":22837974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2025-05-17T20:10:52.942Z","updated_at":"2026-04-16T20:40:59.143Z","avatar_url":"https://github.com/SolidLabResearch.png","language":"TypeScript","readme":"## Solid Notifications Aggregator\n\nThe Solid Notifications Aggregator is a service which works on top of one or more Solid Pods to provide an immediate aggregator for the clients to consume the latest streaming data stored in the Solid Pods via the Solid Notifications Protocol's [WebHookChannel2023](https://solid.github.io/notifications/webhook-channel-2023).  \n\n\n## Architecture\n\n![Solid Notifications Aggregator Architecture](./architecture.png)\n\n\n## Installation\n\nTo install the server, you can run the following command:\n```bash\nnpm install\n```\n\nMake sure you have a Solid Server running which supports the WebHookChannel2023 for receiving notifications. We recommend using the [Community Solid Server](https://github.com/CommunitySolidServer/CommunitySolidServer) with the WebHook configuration which can be created using the [CSS Config Generator](https://communitysolidserver.github.io/configuration-generator/v7/).\n\n## Usage\n\nTo run the server, you can run the server using the following command:\n```bash\nnpm run start\n```\nThe interface for the service is a Websocket server with which you can interact. The server accepts a subscribe message as shown below:\n\n```json\n{\n    \"subscribe\": [\"http://localhost:3000/aggregation_pod/aggregation/\"]\n}\n```\nwhich can be sent to the server to subscribe to the latest events from the particular LDES stream. The client can pass one or multiple LDES Streams into the subscribe message array to receive the events from the server.\nThe server will then send the events to the client as and when they are received. A sample script for the client is shown below:\n```ts\nimport { WebSocket } from \"ws\";\n\nasync function main() {\n    const websocket = new WebSocket('ws://localhost:8085//', 'solid-stream-notifications-aggregator', {\n        perMessageDeflate: false\n    });\n    websocket.once('open', () =\u003e {\n        console.log('Connection to the WebSocket server was successful.');\n        let message_object = {\n            subscribe: ['http://localhost:3000/aggregation_pod/aggregation/']\n        };\n        websocket.send(JSON.stringify(message_object));\n    });\n\n    websocket.on('message', (data) =\u003e {\n        console.log(data.toString());\n    });\n}\n\nmain()\n\n```\nThe client will receive message such as,\n```json\n{\n    \"stream\": \"stream_url\",\n    \"published_time\": \"time_of_notification\",\n    \"event\": \"the_notification_event\"\n}\n```\n\n## License\nThis code is copyrighted by [Ghent University - imec](https://www.ugent.be/ea/idlab/en) and released under the [MIT License](./LICENSE). \n\n## Contact\n\nFor any questions, please contact [Kush](mailto:kushbisen@proton.me) or create an issue in the repository. ","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidlabresearch%2Fsolid-notifications-aggregator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolidlabresearch%2Fsolid-notifications-aggregator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidlabresearch%2Fsolid-notifications-aggregator/lists"}