{"id":23436642,"url":"https://github.com/uvasoftware/guarana","last_synced_at":"2025-04-09T17:50:56.681Z","repository":{"id":32181856,"uuid":"131312657","full_name":"uvasoftware/guarana","owner":"uvasoftware","description":"Guarana is a SAM packaged webhook debugging tool ","archived":false,"fork":false,"pushed_at":"2022-11-12T15:25:48.000Z","size":67,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-05T23:44:14.605Z","etag":null,"topics":["java","sam","webhooks"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uvasoftware.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}},"created_at":"2018-04-27T15:15:31.000Z","updated_at":"2021-12-14T03:23:21.000Z","dependencies_parsed_at":"2023-01-14T20:42:03.299Z","dependency_job_id":null,"html_url":"https://github.com/uvasoftware/guarana","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uvasoftware%2Fguarana","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uvasoftware%2Fguarana/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uvasoftware%2Fguarana/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uvasoftware%2Fguarana/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uvasoftware","download_url":"https://codeload.github.com/uvasoftware/guarana/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248082995,"owners_count":21045015,"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":["java","sam","webhooks"],"created_at":"2024-12-23T13:20:19.295Z","updated_at":"2025-04-09T17:50:56.662Z","avatar_url":"https://github.com/uvasoftware.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Guarana\nGuarana is a [SAM](https://github.com/awslabs/serverless-application-model) packaged [webhook](https://en.wikipedia.org/wiki/Webhook) debugging tool, it captures HTTP requests and saves them kindly to S3 to help you review/debug them later.\n\n## Deploying it \nThe easiest way to install this tool is using the  server less application repository: https://serverlessrepo.aws.amazon.com/applications\n\nImportant config options:\n\n* **bucketName**: the name of the bucket in which to store the webhook data\n* **bucketPrefix**: the prefix to be appended to object paths stored in the S3 bucket. For example, a bucketName of “bucket1” and a prefix “webhooks” will store all inbound HTTP requests under s3://bucket1/webhooks/\n\n## Features\n\n### It allows a single lambda function to be used across multiple services\nGuarana automatically pass on proxied paths to the S3 destination bucket allowing a single lambda function to be easily used for many services. For example, assuming your lambda function URL is https://123.execute-api.us-east-1.amazonaws.com/Prod you can use https://123.execute-api.us-east-1.amazonaws.com/Prod/stripe.com at Stripe and all its webhooks will be stored as `s3:///${bucketName}/${bucketPrefix}/stripe.com/${year}/${month}/${day}`\n\n### It captures both the request body as well as relevant metadata\nFor every HTTP request Guarana sees it stores two JSON objects:\n* metadata.json - containing request metadata such as the HTTP verb and headers\n* contents.json - containing the body of the HTTP request using the extension extracted from the provided content type header. If no content type is provided it will default to .txt\n\n_example metadata object:_\n```\n{\n  \"path\" : \"/test\",\n  \"headers\" : {\n    \"Accept\" : \"*/*\",\n    \"CloudFront-Forwarded-Proto\" : \"https\",\n    \"CloudFront-Is-Desktop-Viewer\" : \"true\",\n    \"CloudFront-Is-Mobile-Viewer\" : \"false\",\n    \"CloudFront-Is-SmartTV-Viewer\" : \"false\",\n    \"CloudFront-Is-Tablet-Viewer\" : \"false\",\n    \"CloudFront-Viewer-Country\" : \"US\",\n    \"content-type\" : \"application/x-www-form-urlencoded\",\n    \"Host\" : \"helloworld.execute-api.us-east-1.amazonaws.com\",\n    \"User-Agent\" : \"curl/7.54.0\",\n    \"Via\" : \"2.0 6ac65de939573cb26099f6407fa8e169.cloudfront.net (CloudFront)\",\n    \"X-Amz-Cf-Id\" : \"ZWvIxOFunW1DKIqYa20dpV1M91rOPCEOhDK5rse7EkuFEUC1pJsJlA==\",\n    \"X-Amzn-Trace-Id\" : \"Root=1-5adcb614-5891de00e823dc7095af29e0\",\n    \"X-Forwarded-For\" : \"98.167.137.47, 52.46.35.155\",\n    \"X-Forwarded-Port\" : \"443\",\n    \"X-Forwarded-Proto\" : \"https\"\n  },\n  \"method\" : \"POST\",\n  \"functionVersion\" : \"$LATEST\",\n  \"functionName\" : \"guarana-Guarana-S91VVGJ7WH0I\",\n  \"id\" : \"f096e2f8-4648-11e8-a17b-2308d7d30a46\",\n  \"queryString\" : null\n}\n```\n\n\n_example content object:_\n```\n{\n  \"hellow\" : \"world\",\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuvasoftware%2Fguarana","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuvasoftware%2Fguarana","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuvasoftware%2Fguarana/lists"}