{"id":19912276,"url":"https://github.com/openaq/decap-cms-oauth-provider","last_synced_at":"2026-05-09T02:03:16.952Z","repository":{"id":163746770,"uuid":"638570938","full_name":"openaq/decap-cms-oauth-provider","owner":"openaq","description":"A Decap CMS Github OAuth Provider for AWS Lambda","archived":false,"fork":false,"pushed_at":"2024-12-21T21:58:22.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-11T22:45:55.926Z","etag":null,"topics":["aws","decap-cms","fastapi","lambda","netlify-cms","oauth","python","serverless"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openaq.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":null,"support":null,"governance":null}},"created_at":"2023-05-09T16:23:35.000Z","updated_at":"2024-12-21T21:58:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"acf9de2f-ec9a-4a04-9e0a-5c2289432761","html_url":"https://github.com/openaq/decap-cms-oauth-provider","commit_stats":{"total_commits":3,"total_committers":1,"mean_commits":3.0,"dds":0.0,"last_synced_commit":"12ae3850cbfa8fbbefc04b6e801197d3df3b4f7a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openaq%2Fdecap-cms-oauth-provider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openaq%2Fdecap-cms-oauth-provider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openaq%2Fdecap-cms-oauth-provider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openaq%2Fdecap-cms-oauth-provider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openaq","download_url":"https://codeload.github.com/openaq/decap-cms-oauth-provider/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241341722,"owners_count":19947104,"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":["aws","decap-cms","fastapi","lambda","netlify-cms","oauth","python","serverless"],"created_at":"2024-11-12T21:28:55.427Z","updated_at":"2026-05-09T02:03:11.915Z","avatar_url":"https://github.com/openaq.png","language":"Python","funding_links":[],"categories":["OAuth Client"],"sub_categories":[],"readme":"# Decap CMS OAuth Provider\n\nA Python3.12 GitHub OAuth Provider for Decap CMS that can run on AWS Lambda. \n\nAdapted from https://github.com/davidejones/netlify-cms-oauth-provider-python.git\n\n## Development\n\nAt the project root create an environment file named `.env` with the following environment variables:\n\n\n```env\nPROJECT=project\nPRODUCT=website\nENV=prod\nOAUTH_CLIENT_ID=123456789abcdefg\nOAUTH_CLIENT_SECRET=mysupersecretkeymysupersecretkeymysupersecretkey\nHOSTED_ZONE_ID=ABCDEFGHIJKLMN\nHOSTED_ZONE_NAME=example.com\nDOMAIN_NAME=demo.example.com\nCERTIFICATE_ARN=arn:aws:acm:us-east-1:9999999999:certificate/a123456789-1234-567f-89f0-1234a5cde67f\nAPI_LAMBDA_MEMORY_SIZE=128\nAPI_LAMBDA_TIMEOUT=10\n```\n\nVariables:\n\n* PROJECT - string value for AWS `project` tag. Optional.\n* PRODUCT - string value for AWS `product` tag. Optional.\n* ENV - string value for AWS`env` tag and CDK/Cloudformation naming. Optional, defaults to 'staging'\n* OAUTH_CLIENT_ID - Github OAuth Client ID https://github.com/settings/applications/new\n* OAUTH_CLIENT_SECRET - Github OAuth Client Secret https://github.com/settings/applications/new\n* HOSTED_ZONE_ID - Route53 hosted zone ID of the custom domain name. Optional if not set API gateway url can be used, if set must be set with HOSTED_ZONE_NAME, DOMAIN_NAME and CERTIFICATE_ARN\n* HOSTED_ZONE_NAME - Route53 hosted zone name of the custom domain name. Optional if not set API gateway url can be used, if set must be set with HOSTED_ZONE_ID, DOMAIN_NAME and CERTIFICATE_ARN\n* DOMAIN_NAME - domain name for the service. Optional if not set API gateway URL can be used, if set must be set with HOSTED_ZONE_ID, HOSTED_ZONE_NAME and CERTIFICATE_ARN\n* CERTIFICATE_ARN - AWS ARN (Amazon Resource Name) for TLS certificate for the custom domain name. Optional if not set API gateway url can be used, if set must be set with HOSTED_ZONE_ID, HOSTED_ZONE_NAME and DOMAIN_NAME\n* API_LAMBDA_MEMORY_SIZE - number of MB(Megabytes) to allocate to AWS Lambda. Optional, defaults to 128\n* API_LAMBDA_TIMEOUT - number of seconds before timeout for AWS Lambda. Optional, defaults to 10\n\n### Infrastructure\n\n This implementation is designed to run on AWS Lambda functions. Infrastructure is defined using AWS CDK (Cloud development kit) and is available in the `cdk` directory of the repository. \n\n\n#### Overview\n\n The FastAPI application runs on a lambda function with help from the [mangum](https://github.com/jordaneremieff/mangum) package to wrap `asgi` for use on Lambda. The Lambda function is proxied using AWS HTTP Api Gateway. An optional custom domain name can be configured to point to the API Gateway URL using AWS Route53. \n\n```\n    ┌────────────────────┐            ┌──────────────┐              ┌──────────────┐\n    │                    │            │              │              │              │\n    │                    │            │              │              │              │\n    │     AWS Lambda     │            │              │              │              │\n    │     Python3.12     │            │   HTTP API   │              │ Route53 DNS  │\n    │FastAPI/ASGI/Mangum │◀──────────▶│ API Gateway  │ ◀───────────▶│   ARecord    │\n    │                    │            │              │              │              │\n    │                    │            │              │              │              │\n    │                    │            │              │              │              │\n    └────────────────────┘            └──────────────┘              └──────────────┘\n```\n\n\n#### Deployment\n\n To deploy the application set the required environment variables either through an `.env` as described above or through your environment of choice. Read more about CDK in the `cdk` directory `README.md`.\n\n To deploy run:\n\n ```sh\ncdk deploy\n ```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenaq%2Fdecap-cms-oauth-provider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenaq%2Fdecap-cms-oauth-provider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenaq%2Fdecap-cms-oauth-provider/lists"}