{"id":19590071,"url":"https://github.com/truggeri/serverless-url-shortener","last_synced_at":"2026-05-12T12:41:02.818Z","repository":{"id":130445569,"uuid":"573554194","full_name":"truggeri/serverless-url-shortener","owner":"truggeri","description":"A serverless variation on the url shortener","archived":false,"fork":false,"pushed_at":"2023-08-29T21:01:48.000Z","size":397,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-09T06:29:46.780Z","etag":null,"topics":["aws","aws-application-composer","ruby","serverless"],"latest_commit_sha":null,"homepage":"https://short.truggeri.com","language":"Ruby","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/truggeri.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":"2022-12-02T18:41:18.000Z","updated_at":"2022-12-16T03:38:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"cf4adbd3-fa42-433c-8ad9-eab4beff288b","html_url":"https://github.com/truggeri/serverless-url-shortener","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/truggeri%2Fserverless-url-shortener","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/truggeri%2Fserverless-url-shortener/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/truggeri%2Fserverless-url-shortener/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/truggeri%2Fserverless-url-shortener/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/truggeri","download_url":"https://codeload.github.com/truggeri/serverless-url-shortener/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240863940,"owners_count":19869870,"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","aws-application-composer","ruby","serverless"],"created_at":"2024-11-11T08:23:13.071Z","updated_at":"2026-05-12T12:41:02.776Z","avatar_url":"https://github.com/truggeri.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Serverless URL Shortener\n\nThis project is meant to be a simple URL shortener project using Aws serverless components.\n\n## Architecture\n\nThis project makes use of three core Aws services, Api Gateway, Lambda and DynamoDB.\n\n![Architecture diagram](./docs/arch.png)\n\nApi Gateway is used as the ingress from the internet. It routes requests to get, create and delete shorts. Those requests are routing using [the Lambda Proxy integration](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html) which allows us to handle request and response data in Lambda rather than at the Api Gateway level.\n\nThere are three Lambda functions which are written for the Ruby 2.7 runtime. Each Lambda handles input processing, database access and responses to the client.\n\nFinally, our data store is Aws DynamoDB which is used to store the mapping from short to full url using a single table.\n\n## Deployment\n\nThis project made use of [Aws Application Composer](https://aws.amazon.com/application-composer/) to author an [Aws SAM template](./template.yaml). This template can then be deployed with the [SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html#install-sam-cli-instructions) with the following command,\n\n```bash\nsam deploy -t ./template.yaml --parameter-overrides JwtSecret=${JWT_SECRET} CertIdentifier=${CERT_ID}\n```\n### Configuration\n\nThere are two required config values,\n\n| Name | Desc |\n|---|---|\n| JwtSecret | A value used to identify the deletion token |\n| CertIdentifier | The id, not arn, of a certificate for the custom domain of the api |","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftruggeri%2Fserverless-url-shortener","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftruggeri%2Fserverless-url-shortener","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftruggeri%2Fserverless-url-shortener/lists"}