This is an ACL-based authorization self-contained and independent microservice which shall be a drop-in into other microservices-based systems.
- go get github.com/karuppaiah/gobodyguard
- cd $GOPATH/src/github.com/karuppaiah/gobodyguard
- install dep(https://github.com/golang/dep)
- dep ensure
- cd migrations
- dbmate up
- cd ..
- go run auth.go or use fresh(https://github.com/gravityblast/fresh)
- app : all auth related functionality are present here
- authdata.go : models
- authdatastorage.go : repository with GORM(https://github.com/jinzhu/gorm)
- authdatastore.go: Interface for repository
- authlogic.go: Usecase layer for auth(logic done here)
- authopns.go: Interface for usecase layer, exposed to presentation layer
- config.go: Singleton config to pick from Environment variables
- constants.go: All constants in this package
- dbinit.go: Database singleton initialization
- httpauth.go: Presentation layer with Gin (https://github.com/gin-gonic/gin)
- util.go: All helper functions
- migrations : Migration script executed using (https://github.com/amacneil/dbmate)
- Proto : This service implementation in gRPC
- auth.go : main file to be executed
- .env: For running docker-compose
- Gopkg.toml: Auto generated file by dep package (don't modify or delete it)
- Gopkg.lock: Auto generated file by dep package ( don't modifu or delete it)
- runner.conf : file used by fresh package(if used)
- LICENSE : license file
- Test all API's
- Load Data on startup and keep it in memory
- Docker image and publish in hub.docker.com
- Write terraform for infrastructure
- Write ansible for deploy and config
- Deploy in AWS cloud/Google cloud
- redis storage for data storage
- Write unit testing
- Flutter/web assembly frontend
- Utilites for message Q like kafka(producer and consumer)
- Stress testing scripts