{"id":41453483,"url":"https://github.com/synapsestudios/oidc-platform","last_synced_at":"2026-01-23T15:33:04.851Z","repository":{"id":16735711,"uuid":"80448014","full_name":"synapsestudios/oidc-platform","owner":"synapsestudios","description":"OpenID Connect Identity Platform","archived":false,"fork":false,"pushed_at":"2024-06-11T08:50:12.000Z","size":2409,"stargazers_count":18,"open_issues_count":41,"forks_count":9,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-03-13T07:01:52.339Z","etag":null,"topics":["oidc","openid-connect"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/synapsestudios.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2017-01-30T18:03:35.000Z","updated_at":"2024-01-13T23:56:18.000Z","dependencies_parsed_at":"2024-04-09T00:32:44.654Z","dependency_job_id":null,"html_url":"https://github.com/synapsestudios/oidc-platform","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/synapsestudios/oidc-platform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synapsestudios%2Foidc-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synapsestudios%2Foidc-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synapsestudios%2Foidc-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synapsestudios%2Foidc-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/synapsestudios","download_url":"https://codeload.github.com/synapsestudios/oidc-platform/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synapsestudios%2Foidc-platform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28694654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T14:15:13.573Z","status":"ssl_error","status_checked_at":"2026-01-23T14:09:05.534Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["oidc","openid-connect"],"created_at":"2026-01-23T15:33:04.143Z","updated_at":"2026-01-23T15:33:04.832Z","avatar_url":"https://github.com/synapsestudios.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenID Connect Identity Platform\n\nThe synapse OpenID Connect platform uses [node-oidc-provider](https://github.com/panva/node-oidc-provider) to provide user authentication for our clients' applications. node-oidc-provider is an [OpenID Connect](http://openid.net/connect/) provider library. In order to fully understand the ins and outs of this application, understanding OpenID Connect is a must.\n\n## Usage Documentation\n- [Installation](docs/installation.md)\n- [Implementation](docs/implementation.md)\n- [Screens and Theming](docs/screens-and-theming.md)\n- [Installing Themes](docs/installing-themes.md)\n- [Webhooks](docs/webhooks.md)\n\n## Setting up for development\n\n0. Copy `common.template.env` as `common.env` and provide a mailgun, SES, or sendgrid key\n0. Set the OIDC_DB_* vars based on what RDBMS you are using.\n0. Run either `./compose-mysql up` or `./compose-postgres up`. You can also just do `docker-compose up` which will use postgres.\n0. Create an oauth client by posting to http://localhost:9001/op/reg with the following:\n```\nHeaders:\n{\n    \"Content-Type\": \"application/json\",\n    \"Authorization\": \"Bearer token1\", // common.env -\u003e OIDC_INITIAL_ACCESS_TOKEN value\n}\nBody:\n{\n    \"response_types\": [\"code id_token token\"],\n    \"grant_types\": [\n        \"authorization_code\",\n        \"implicit\",\n        \"client_credentials\"\n    ],\n    \"redirect_uris\": [\"https://sso-client.test:3000/\"],\n    \"post_logout_redirect_uris\": [\"https://sso-client.test:3000/logout\"]\n}\n```\n0. In `test-client/src` create a copy of `config.template.js` and call it `config.js`. Fill in the\nclient_id and client_secret of the client you created in the previous step.\n0. Add `sso-client.test`for `127.0.0.1` to your hosts file\n0. `npm i` and `npm start` in `test-client` and `test-client/test-server`\n\n## Session Management\n\nSessions are persisted by default, a user can manually log out by visiting `${prefix}/session/end`. The following query parameters should also be sent: `id_token_hint` is to allow the client to determine which user is logging out, and `post_logout_redirect_uri` allows the user to be redirected back to the client app.\n\n## Clients\n\nClients can be registered dynamically with the `registration` endpoint defined in the OICD provider's Hapi plugin. By default this is `${prefix}/reg`. Any of the [OpenID Client Metadata](http://openid.net/specs/openid-connect-registration-1_0.html#ClientMetadata) can be supplied. The Bearer token for this request is validated against the `OIDC_INITIAL_ACCESS_TOKEN` environment variable. YOU MUST PROVIDE A STRONG TOKEN in production to prevent unauthorized clients from being added.\n\n## Releasing\n1. Ensure you've checked out `master` and that it's up-to-date (or if hotfixing, check out a new branch from a previous release's tag)\n2. Update the version number in `api/package.json` and `api/package-lock.json` and commit the changes\n3. `cd api` if you're in the root of the repo\n4. `docker build -t synapsestudios/oidc-platform:vX.Y.Z .`\n5. `docker push synapsestudios/oidc-platform:vX.Y.Z`\n6. `git push`\n7. `git tag vX.Y.Z \u0026\u0026 git push tags`\n8. If hotfixing, you can `git push :refs/heads/hotfix-branch-name` to delete the hotfix branch","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynapsestudios%2Foidc-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsynapsestudios%2Foidc-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynapsestudios%2Foidc-platform/lists"}