{"id":16946001,"url":"https://github.com/danpalmer/pkce-proxy","last_synced_at":"2026-05-08T18:35:27.784Z","repository":{"id":215729529,"uuid":"739643117","full_name":"danpalmer/pkce-proxy","owner":"danpalmer","description":"A proxy enabling the PKCE flow for OAuth providers that do not support PKCE.","archived":false,"fork":false,"pushed_at":"2024-04-21T17:19:56.000Z","size":756,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-21T08:48:46.923Z","etag":null,"topics":["authentication","oauth","oauth2","pkce","pkce-flow","pkce-oauth"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"mathieudutour/pkce-proxy","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danpalmer.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2024-01-06T05:04:29.000Z","updated_at":"2024-04-21T17:19:58.000Z","dependencies_parsed_at":"2024-04-21T19:15:06.778Z","dependency_job_id":null,"html_url":"https://github.com/danpalmer/pkce-proxy","commit_stats":null,"previous_names":["danpalmer/pkce-proxy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/danpalmer/pkce-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danpalmer%2Fpkce-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danpalmer%2Fpkce-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danpalmer%2Fpkce-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danpalmer%2Fpkce-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danpalmer","download_url":"https://codeload.github.com/danpalmer/pkce-proxy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danpalmer%2Fpkce-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32792388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"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":["authentication","oauth","oauth2","pkce","pkce-flow","pkce-oauth"],"created_at":"2024-10-13T21:24:41.629Z","updated_at":"2026-05-08T18:35:27.766Z","avatar_url":"https://github.com/danpalmer.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PKCE Proxy for Raycast\n\nA multi-tenant proxy to enable the OAuth PKCE flow for providers that do not\nsupport PKCE.\n\n## Configuration\n\nConfiguration for specific providers is provided to the web application and a new\nset of proxy URLs to use is returned. These contain the necessary configuration.\n\nThe server-side configuration is provided in environment variables:\n\n**Required**\n\n```\nPROXY_HOSTNAME=https://your-proxy-domain\nSECRET_KEY=\u003ca long random value\u003e\n```\n\nThe `SECRET_KEY` is used to encrypt configuration values. It's important that it\nis long an unpredictable. A good key can be generated with\n`pwgen --secure 100 1`.\n\n**Optional (defaults shown)**\n\n```\nPORT=5000\nHOST=0.0.0.0\nNODE_ENV=development # production, test\nPROXY_REDIRECT_URL=https://your-proxy-domain/redirect\nREDIS_URL= # redis:// URL to use Redis for storage\n```\n\npkce-proxy requires short-term storage to serve correct flows. Currently sessions\nare configured with a 5 minute expiry, meaning that a login flow initiated by a\nuser must complete within 5 minutes or the data for it will be purged.\n\nThis temporary storage can complicate deployment as by default session data is\nonly stored in memory in the running Node process. Multi-process/multi-server\ndeployments, or server restarts will therefore create sessions that won't always\nwork. If a `REDIS_URL` is provided, pkce-proxy will use that Redis instance to\nstore this temporary data instead, making scale-out and re-deployment easier.\n\n## Running Locally\n\n```sh\nbun install\nscripts/build\nscripts/test\nscripts/run\n```\n\nThe proxy should now be running on [localhost:5000](http://localhost:5000/).\n`pkce-proxy` is designed to run under Bun for simplicity.\n\n## Contributions\n\nThanks to @mathieudutour for creating\nhttps://github.com/mathieudutour/pkce-proxy. This project builds on its\nfoundations to add multi-tenancy, self-service setup, Redis persistence, and\nmore.\n\nContributions are welcome, particularly those around OAuth compatibility, error\nmessages and user (developer) experience, and metrics.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanpalmer%2Fpkce-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanpalmer%2Fpkce-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanpalmer%2Fpkce-proxy/lists"}