- User management
 - Role management
 
- Authentication
- Log in by LDAP
 - After logged in, get all privileges based on roles of that user
 
 - Authorization: Separate the "read" and "write" permissions for 1 role, using bitwise. For example:
- 001 (1 in decimal) is "read" permission
 - 010 (2 in decimal) is "write" permission
 - 100 (4 in decimal) is "delete" permission
 - "read" and "write" permission will be "001 | 010 = 011" (011 is 3 in decimal)
 
 - Some other standard features
- config: load config from yaml files
 - health check: to check health of SQL
 - logging: can use logrus or zap to log, support to switch between logrus or zap
 - log tracing by at the middleware the http request and http response