{"id":15563168,"url":"https://github.com/cmlccie/webex-token-keeper","last_synced_at":"2025-04-09T16:52:50.108Z","repository":{"id":123949262,"uuid":"248395240","full_name":"cmlccie/webex-token-keeper","owner":"cmlccie","description":"Store dynamic Webex OAuth tokens and make them accessible via a static key.","archived":false,"fork":false,"pushed_at":"2025-02-06T03:48:35.000Z","size":146,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-01T18:53:34.179Z","etag":null,"topics":["aws-apigateway","aws-dynamodb","aws-lambda","aws-lambda-python","aws-sam","oauth","python","webexteams"],"latest_commit_sha":null,"homepage":"","language":"Python","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/cmlccie.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":"2020-03-19T02:46:42.000Z","updated_at":"2025-02-06T03:48:38.000Z","dependencies_parsed_at":"2024-04-18T14:27:58.083Z","dependency_job_id":null,"html_url":"https://github.com/cmlccie/webex-token-keeper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmlccie%2Fwebex-token-keeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmlccie%2Fwebex-token-keeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmlccie%2Fwebex-token-keeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmlccie%2Fwebex-token-keeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cmlccie","download_url":"https://codeload.github.com/cmlccie/webex-token-keeper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248073588,"owners_count":21043471,"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-apigateway","aws-dynamodb","aws-lambda","aws-lambda-python","aws-sam","oauth","python","webexteams"],"created_at":"2024-10-02T16:20:15.319Z","updated_at":"2025-04-09T16:52:50.083Z","avatar_url":"https://github.com/cmlccie.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Webex Token Keeper\n\n_Store dynamic Webex OAuth tokens and make them accessible via a static key._\n\n---\n\nWebex Personal Access Token expire in twelve (12) hours. Webex Integration OAuth access tokens expire in about fourteen (14) days and may be refreshed; however, generating OAuth tokens require a web service and human interaction. You need to create a static configuration that can access the Webex APIs (CI/CD tools, backend automation, etc.).\n\n\u003e How can you programmatically obtain a Webex API access token with a fixed identifier?\n\nIt takes a small web service.\n\n## Simple Microservice Provides Programmatic Access to OAuth Generated Access Tokens\n\nWebex Token Keeper (WTK) implements the Webex Integration OAuth flow and stores the OAuth generated Access Token for future retrieval. The Access Token is stored using a randomly generated key, which is provided to the user at the end of the OAuth flow. WTK provides a simple REST API that provides programmatic access to the stored token.\n\nWTK automatically refreshes the token when a stored token is requested via the REST API (if the token expires in less than seven days).\n\n## Features\n\n- Python implementation of the Webex Integration/OAuth process\n- Store OAuth generated access tokens for programmatic retrieval\n- REST API for retrieving and deleting stored access tokens\n- OpenAPI (Swagger) interactive REST API docs\n- Serverless (AWS Lambda) microservice\n- Fully automated deployment via SAM template\n\n## Tech Stack\n\n- [FastAPI](https://fastapi.tiangolo.com/) Web Service\n- [Pydantic](https://pydantic-docs.helpmanual.io/) Data Models\n- [AWS API Gateway](https://aws.amazon.com/api-gateway/) w/Custom Domain Support\n- [AWS Lambda](https://aws.amazon.com/lambda/) Serverless App\n- [AWS DynamoDB](https://aws.amazon.com/dynamodb/) Database\n- [CloudFormation (SAM) Template](https://aws.amazon.com/cloudformation/) Parameterized and Fully-Automated Deployment\n\n## Setup \u0026 Use\n\nThe Webex Token Keeper (WTK) app can be fully deployed by running the provided [deployment script](/script/deploy).\nThe setup script sources installation specific information from the shell environment. You will need an AWS\naccount and a functional local development environment.\n\n**At a minimum, you will need to:**\n\n1. [Install](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) and\n   [configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration)\n   the AWS Command Line Interface (CLI)\n\n2. [Install](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html)\n   the AWS SAM CLI\n\n3. Host your custom DNS domain in an AWS [Route53](https://aws.amazon.com/route53/) hosted zone\n\n4. Provision a secure SSL certificate for your custom domain in AWS\n   [Certificate Manager](https://aws.amazon.com/certificate-manager/)\n\n### Deploy the Token Keeper\n\nThe Makefile's `deploy` target will package the SAM application and . If everything is setup correctly, you can provision the full serverless application (including the DynamoDB table, API gateway, and custom domain name) by running `make deploy`.\n\nThe SAM template is idempotent; you can push environment variable, template, or code changes by rerunning the deployment script.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmlccie%2Fwebex-token-keeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcmlccie%2Fwebex-token-keeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmlccie%2Fwebex-token-keeper/lists"}