- Config Model : add a config model with a golib RouerStatus Config Model to use a AWS connection for API with a request status health check
- Config Interface : add function GetAccessKey to retrieve the accesskey value currently used into the current connection
- function Walk (Object, version, ...) : fix bug with pointer of string not initialized
Package Config :
- interface Component : add status router pointer into the Init function to allow used a global router status for all component status registration as router status component
Package Status :
- move Status Config as an sub package of Package Status
Package Errors :
- add CamelCase const
Package Logger :
- fix following bump dependencies
Global :
- bump dependencies
- change init of errors files : change function never call vy panic to prevent an error code collision
- Bucket : add function Walk based on list but run a given function for each found bucket
- Object : add function Walk & WalkPrefix based on ListPrefix to run a given function for each returned object
- Object : add function WalkVersion & WalkVersionPrefix based on ListVersion to run a given function for each returned object version
Package logger:
- Fix bug with compat : a nil error not clean when sent to logger
Package Context:
- Fix bug with context/config : the load key return an atomic value instead of the interface stored
- major dependancies are :
- golib/context config
- golib/viper
- interface config extend :
- golib/context config interface
- component list
- interface component list :
this interface implement all function to manage a collection of component. All component are registred with they config key.
A component must implement basic function like start, stop, reload, defaultConfig...
The main config json is set by calling all component config with the config key attached
Each component have some status status like isStarted, isRunning, ...
Each component must also declare his dependencies with other component. As that when start or reload is called,
the component is sure that dependencies are still started or reloaded.
- They are 4 component for now : log, tls, headers and http server
- The config package will start a new context / cancelfunc on init to be sure to stop cleanly all component and process
Add Package Viper :
- this package is an helper to the config package with the spf13 viper lib
- this package can watch any change of a config file or can be connected to a remote config cluster like ETCD
Add Package Cobra :
- this package is an helper to make a CLI with flag / command
- this package is based on spf13 cobra has all method to be connected to viper golib
# Refactor Logger :
- Remove logger as globals to use dedicated pointer
- Add compat file to allow retro-compatibility (function are deprecated)
- Add field management to allow add custom information
- Add option struct to manage options
- Add entry struct to manage all log entry
- Add multithreading capabilities (with race prevention)
- Allow to log to file + stdout/stderr + syslog
- Add io.WriteCloser compatibility interface
- Add logrus hook to manage option by hook instance
- Add capabilities to custom each logfile/syslog/standard independently
- Add small test suite
# Update Packages for logger new options :
- archive
- cluster
- context
- httpcli
- httpserver
- ldap
- tests
# Other :
- bump dependancies
- update minio server for aws test
* validators 'required' needs bool to be a ptr (if not, 'false' value will be declared as missing...), but required was not necessary for boolean...
Co-authored-by: lgambini <lucas.gambini.ext@orange.com>
- Pkg HTTP Server : add option to force TLS as mandatory to start and server
- Pkg HTTP Server : add function to listen server with multiple handler (map[key string]http.handler)
- Pkg HTTP Server : add option to define an handler key to associate one server with one handler
- Pkg Error : change the register part to allow identify if a code is free or still defined
- Pkg Error : apply change of register into all modules
- Make some optimization
- Refactor ErrorType, list errors managment, codeError
- Add interface Error with error interface implement
- Add type CodeError assign typiclly to const that represent code of error
- Add func to registry func to retrieve message from an uint16 codeError (typicaly a switch of each codeError const)
- Add default errorCode with default errorMessage if no one code or message is found
- Add modeError to manage how to manage compatibility between Error interface and error interface
- Add Error interface that allow parent link (parent as error or Error interface), code and trace management
- Add trace finder to allow find func/file/line caller when Error is call
- Add http 2 transport in httpcli
- Add http 2 transport in httpserver
- Add function to get client http with timeout management in httpcli
- Add function to get Error if occurs of http client in httpcli
- Add test for smtp package
- Chg return error by returning Error in all packages
- Chg package njs-archive by archive
- Chg package njs-certif by certificates
- Chg package njs-console by console
- Chg package njs-crypt by crypt
- Chg package njs-errors by errors
- Chg package njs-httpcli by httpcli
- Chg package njs-httpserver by httpserver
- Chg package njs-ioutils by ioutils
- Chg package njs-ldap by ldap
- Chg package njs-logger by logger
- Chg package njs-password by password
- Chg package njs-progress by progress
- Chg package njs-router by router
- Chg package njs-semaphore by semaphore
- Chg package njs-smtp by smtp
- Chg package njs-static by static
- Chg package njs-status by status
- Chg package njs-version by version
- Fix dependancies gopkg by github/go-ldap for go module compatibility
- Fix gin Abort call by gin Abort with Error in static package
- Fix issue #18 in status package : replace partner by component
- Fix go vet error
- Del deprecated function
- Del useless function & files
- Bump dependancies
- Apply CHG in README.md