{"id":13449004,"url":"https://github.com/tmaiaroto/aegis","last_synced_at":"2026-04-07T19:31:46.632Z","repository":{"id":137341019,"uuid":"74091651","full_name":"tmaiaroto/aegis","owner":"tmaiaroto","description":"Serverless Golang deploy tool and framework for AWS Lambda","archived":false,"fork":false,"pushed_at":"2019-07-28T18:09:26.000Z","size":4131,"stargazers_count":285,"open_issues_count":8,"forks_count":15,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-09-01T03:08:24.204Z","etag":null,"topics":["api-gateway","aws-lambda","devops","golang","lambda","microservice","serverless"],"latest_commit_sha":null,"homepage":"","language":"Go","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/tmaiaroto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2016-11-18T03:25:18.000Z","updated_at":"2025-07-23T15:45:51.000Z","dependencies_parsed_at":"2023-07-07T12:46:06.265Z","dependency_job_id":null,"html_url":"https://github.com/tmaiaroto/aegis","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/tmaiaroto/aegis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmaiaroto%2Faegis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmaiaroto%2Faegis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmaiaroto%2Faegis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmaiaroto%2Faegis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tmaiaroto","download_url":"https://codeload.github.com/tmaiaroto/aegis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmaiaroto%2Faegis/sbom","scorecard":{"id":889623,"data":{"date":"2025-08-11","repo":{"name":"github.com/tmaiaroto/aegis","commit":"473356e2cd76c5e95bbc576c49965c0e0181cd1b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.5,"checks":[{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 1.16.3 not signed: https://api.github.com/repos/tmaiaroto/aegis/releases/18913477","Warn: release artifact 1.16.1 not signed: https://api.github.com/repos/tmaiaroto/aegis/releases/15882403","Warn: release artifact 1.16.0 not signed: https://api.github.com/repos/tmaiaroto/aegis/releases/15878547","Warn: release artifact 1.15.2 not signed: https://api.github.com/repos/tmaiaroto/aegis/releases/11802803","Warn: release artifact 0.6.3 not signed: https://api.github.com/repos/tmaiaroto/aegis/releases/10106105","Warn: release artifact 1.16.3 does not have provenance: https://api.github.com/repos/tmaiaroto/aegis/releases/18913477","Warn: release artifact 1.16.1 does not have provenance: https://api.github.com/repos/tmaiaroto/aegis/releases/15882403","Warn: release artifact 1.16.0 does not have provenance: https://api.github.com/repos/tmaiaroto/aegis/releases/15878547","Warn: release artifact 1.15.2 does not have provenance: https://api.github.com/repos/tmaiaroto/aegis/releases/11802803","Warn: release artifact 0.6.3 does not have provenance: https://api.github.com/repos/tmaiaroto/aegis/releases/10106105"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"18 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2022-0391 / GHSA-6jvc-q2x7-pchv / GHSA-76wf-9vgp-pj7w","Warn: Project is vulnerable to: GO-2022-0635 / GHSA-7f33-f4f5-xwgw","Warn: Project is vulnerable to: GO-2022-0646 / GHSA-f5pg-7wfw-84q9","Warn: Project is vulnerable to: GO-2020-0017 / GHSA-w73w-5m7g-f7qc","Warn: Project is vulnerable to: GO-2023-1859 / GHSA-rm8v-mxj3-5rmq","Warn: Project is vulnerable to: GO-2023-2379 / GHSA-7f9x-gw85-8grf","Warn: Project is vulnerable to: GO-2024-2632 / GHSA-hj3v-m684-v259","Warn: Project is vulnerable to: GO-2022-0209 / GHSA-r5c5-pr8j-pfp7","Warn: Project is vulnerable to: GO-2023-1992 / GHSA-x3jr-pf6g-c48f","Warn: Project is vulnerable to: GO-2022-0229 / GHSA-cjjc-xp8v-855w","Warn: Project is vulnerable to: GO-2020-0012 / GHSA-ffhg-7mh4-33c4","Warn: Project is vulnerable to: GO-2021-0227 / GHSA-3vm4-22fp-5rfm","Warn: Project is vulnerable to: GO-2022-0968 / GHSA-gwc9-m7rh-j2ww","Warn: Project is vulnerable to: GO-2021-0356 / GHSA-8c26-wmh5-6g9v","Warn: Project is vulnerable to: GO-2024-2961","Warn: Project is vulnerable to: GO-2023-2402 / GHSA-45x7-px36-x8w8","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T11:17:30.287Z","repository_id":137341019,"created_at":"2025-08-24T11:17:30.287Z","updated_at":"2025-08-24T11:17:30.287Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31526665,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["api-gateway","aws-lambda","devops","golang","lambda","microservice","serverless"],"created_at":"2024-07-31T06:00:28.254Z","updated_at":"2026-04-07T19:31:46.613Z","avatar_url":"https://github.com/tmaiaroto.png","language":"Go","funding_links":[],"categories":["Go","Frameworks","serverless"],"sub_categories":[],"readme":"# Aegis\n\n[![License Apache 2](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://github.com/tmaiaroto/aegis/blob/master/LICENSE) [![godoc aegis](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/tmaiaroto/aegis) [![Build Status](https://travis-ci.org/tmaiaroto/aegis.svg?branch=master)](https://travis-ci.org/tmaiaroto/aegis) [![Go Report Card](https://goreportcard.com/badge/github.com/tmaiaroto/aegis)](https://goreportcard.com/report/github.com/tmaiaroto/aegis)\n\n**[Aegis Documentation](https://tmaiaroto.github.io/aegis/)**\n\nAegis is both a simple deploy tool and framework. Its primary goal is to help you write\nmicroservices in the AWS cloud quickly and easily. They are mutually exclusive tools.\n\nAegis is not intended to be an infrastructure management tool. It will never be\nas feature rich as tools like [Terraform](https://www.terraform.io). Its goal is\nto assist in the development of microservices - not the maintenance of infrastructure.\n\nLikewise the framework is rather lightweight as well. It may never have helpers and\nfeatures for every AWS product under the sun. It provides a conventional framework\nto help you build serverless microservices faster. It removes a lot of boilerplate.\n\n### Getting Started\n\nYou'll need an AWS account of course. You'll also want to have your credentials setup\nas you would for using AWS CLI. Note that you can also pass AWS credentials via the \nCLI or by setting environment variables.\n\nGet Aegis of course. Use the normal `go get github.com/tmaiaroto/aegis`.\nEnsure the `aegis` binary is in your executable path. You can build a fresh copy\nfrom the code in this repository or download the binary from the releases section\nof the GitHub project site. If you want to use the framework though, you'll need to\nuse go get anyway.\n\nYou can find some examples in the `examples` directory of this repo. Aegis also comes\nwith a command to setup some boilerplate code in a clean directory using `aegis init`.\nNote that it will not overwrite any existing files.\n\nWork with your code and check settings in `aegis.yaml`. When you're ready, you can deploy\nwith `aegis deploy` to upload your Lambda and setup some resources.\n\nAegis' deploy command will set up the Lambda function, an optional API Gateway, IAM roles,\nCloudWatch event rules, and other various triggers and permissions for your Lambda function.\nYou're able to choose a specific IAM role if you like too. Just set it in `aegis.yaml`.\n\nIf you're deploying an API, the CLI output will show you the URL for it along with other\nhelpful information.\n\nThe Aegis framework works by handling events (how anything using AWS Lambda works). The way\nin which it does this though is via \"routers.\" This means your Lambda is actually able to\nhandle multiple types of events if you so choose.\n\nMany people will want to write one handler for one Lambda, but that's not a mandate of Lambda.\nSo feel free to architect your microservices how you like.\n\nThere are several types of routers. You can handle incoming HTTP requests via API Gateway using\nvarious HTTP methods and paths. You can handle incoming S3 events. You can handle scheduled Lambda\ninvocations using CloudWatch rules. You can even handle invocations from other Lambdas (\"RPCs\").\n\n#### Building\n\nIt's easiest to download a binary to use Aegis, though you may wish to build for your specific platform. \nIn this case, Go Modules is used. Easiest thing to do after cloning is:\n\n```GO111MODULE=on go mod download```\n\nThen build:\n\n```GO111MODULE=on go build```\n\nUnfortunately you can't do a straight `go build` because of one of the packages used. You'll get errors.\nSo using Go Modules is the way.\n\n#### Contributing\n\nPlease feel free to contribute (see CONTRIBUTING.md). Though outside of actual pull requests with code,\nplease file issues. If you notice something broken, speak up. If you have an idea for a feature, put it\nin an issue. Feedback is perhaps one of the best ways to contribute. So don't feel compelled to code.\n\nKeep in mind that not all ideas can be implemented. There is a design direction for this project and\nonly so much time. Though it's still good to share ideas.\n\n#### Running Tests\n\nGoconvey is used for testing, just be sure to exclude the `docs` directory. For example: `goconvey -excludedDirs docs`\n\nOtherwise, tests will run and also include the `docs` folder which will likely have problems.\n\nAlternatively, run tests from the `framework` directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmaiaroto%2Faegis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmaiaroto%2Faegis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmaiaroto%2Faegis/lists"}