Package ioutils:
- remove file progress from ioutils and rework it to package
file/progress
Package file/progress:
- simplify call / use of file progress
- optimize code
- use atomic to function progress
- isolation part of code
- make interface more compatible with *os/File / io interface
Package archive/gzipreader
- create package to expose a io.reader interface from a no gzipped io.reader
- add interface GZipReader to expose metrics like rate of compression
Package archive:
- apply following change
- add minor internal change into errors files
Package artifact:
- apply following change
- add minor internal change into errors files
Package aws:
- apply following change
- removing minio server from repo
Package mail:
- apply following change
- add minor internal change into errors files
Package nutsdb:
- apply following change
- add minor internal change into errors files
Package static:
- apply following change
Other:
- bump dependencies
- ci/cd : add a wget command to dl minio server for testing
- add aws/minio to gitignore
Package Database/gorm:
- move package database using gorm, to package database/gorm
- update config component following
Package Database/KVItem:
- create new package to manage item of KV Db
- allow to track change on item model
- allow to store only if changed
- embedded driver function to load / store to make instance portable
Package Database/KVTable:
- create new package to manage a table (list of map key : value)
- embedded driver instance to make instance portable
- allow to walk, list, get items with KVItem instance
Package Database/KVDriver:
- create new package to wrap db KV function to KVTable awaiting function
- Allow to skip function Walk replace by a n internal call of function List and Get
Package Database/Map:
- create new package to wrap KV function usage of map[comparable]any to KVDriver model
- Use json marshall/unmarshall between map[comparable]any to model any
Fix 2023-07
Package Status:
- Rework for the management of mandatory components to qualify the global status.
- Added qualification to components: "should", "must", "one of".
- These qualifications will influence the overall state but not the unitary state of each component.
Package Socket:
- Creation package to open and listen local unix file socket
- Allow to specify a handler who's needing a conn instance as entry
- Create a client sub package to allow negociate with the local unix file socket
Package Shell:
- adding sub package for command and command collection
Package Monitor:
- add function to expose monitor command for shell
Package Config:
- add function to expose monitor command for shell
Package Network:
- Add "IP" protocol
Package Httpcli:
- Rework the construction of the client
- Add capability to specify proxy url
Package Cobra:
- add function to add flag to global command like verbose or config
Package Log:
- fix seg fault when calling a nil instance
- remove println in hookfile / hooksyslog
Other:
- bump dependencies
- Rework for the management of mandatory components to qualify the global status.
- Added qualification to components: "should", "must", "one of".
- These qualifications will influence the overall state but not the unitary state of each component.
Package Socket:
- Creation package to open and listen local unix file socket
- Allow to specify a handler who's needing a conn instance as entry
- Create a client sub package to allow negociate with the local unix file socket
Package Shell:
- adding sub package for command and command collection
Package Monitor:
- add function to expose monitor command for shell
Package Config:
- add function to expose monitor command for shell
Package Network:
- Add "IP" protocol
Pakcage Httpcli:
- Rework the construction of the client
- Add capability to specify proxy url
Package Cobra:
- add function to add flag to global command like verbose or config
Package Log:
- fix seg fault when calling a nil instance
- remove println in hookfile / hooksyslog
- fix buffer wrtting / cleanning
- add recovery to catch fatal error
Package Server :
- add recovery to catch fatal error
Package Status :
- add IsHealthy function with cache value to prevent checking monitor on all call
Bump dependencies
Rework Logger / Rework Network Protocol L4 / Fix minor bugs
Package Logger:
- Rework logger
- Remove deprecated functions
- Split Logger to sub package (fields, level, config, ...)
- Optimize dependencies
- Rework Hookfile: fix error like FD still opened
- Rework Hooksyslog: use same model like Hookfile, use network/protocol instead of self lib
- Rework HookStd: use independent hook for std out & std err
- Fix std config make generic options for files & syslog
- Apply formatter to hook instead of main logger entry
- optimize code
Package ioutils:
- rework PathCheckCreate funct: optimize code & fix some error
Package Network:
- create sub package protocol for all network protocl use
- add encode function
Package httpcli:
- remove file network
- use package network/protocol instead of network file
Package archive:
- apply change following rework of logger
Package aws:
- apply change following rework of logger
Package cluster:
- apply change following rework of logger
Package cobra:
- apply change following rework of logger
Package Config Component:
- apply change following rework of logger to component log
- fix logger for monitoring
- fix component following fix of package request / monitoring
Package context:
- apply change following rework of logger
Package database:
- apply change following rework of logger
Package httpserver:
- apply change following rework of logger
Package ldap:
- apply change following rework of logger
Package monitor:
- apply change following rework of logger
- fix logger for monitoring
- fix minor bugs
Package nats:
- apply change following rework of logger
Package nutsdb:
- apply change following rework of logger
Package request:
- apply change following rework of logger
- fix minor bug
- fix missing logger for monitoring
- add one line for healthcheck (info or error)
Package router:
- apply change following rework of logger
Package static:
- apply change following rework of logger
Package status:
- apply change following rework of logger
- fix bug with mandatory component
Package viper:
- apply change following rework of logger
Other:
- bump dependencies
- github action workflow fix
- Rework logger
- Remove deprecated functions
- Split Logger to sub package (fields, level, config, ...)
- Optimize dependencies
- Rework Hookfile: fix error like FD still opened
- Rework Hooksyslog: use same model like Hookfile, use network/protocol instead of self lib
- Rework HookStd: use independent hook for std out & std err
- Fix std config make generic options for files & syslog
- Apply formatter to hook instead of main logger entry
- optimize code
Package ioutils:
- rework PathCheckCreate funct: optimize code & fix some error
Package Network:
- create sub package protocol for all network protocl use
- add encode function
Package httpcli:
- remove file network
- use package network/protocol instead of network file
Package archive:
- apply change following rework of logger
Package aws:
- apply change following rework of logger
Package cluster:
- apply change following rework of logger
Package cobra:
- apply change following rework of logger
Package Config Component:
- apply change following rework of logger to component log
- fix logger for monitoring
- fix component following fix of package request / monitoring
Package context:
- apply change following rework of logger
Package database:
- apply change following rework of logger
Package httpserver:
- apply change following rework of logger
Package ldap:
- apply change following rework of logger
Package monitor:
- apply change following rework of logger
- fix logger for monitoring
- fix minor bugs
Package nats:
- apply change following rework of logger
Package nutsdb:
- apply change following rework of logger
Package request:
- apply change following rework of logger
- fix minor bug
- fix missing logger for monitoring
- add one line for healthcheck (info or error)
Package router:
- apply change following rework of logger
Package static:
- apply change following rework of logger
Package status:
- apply change following rework of logger
- fix bug with mandatory component
Package viper:
- apply change following rework of logger
Other:
- bump dependencies
- github action workflow fix
Rework Aws/MPU
Package AWS:
- rework MultipartUpload process & helper
- update test to use lib size
- update object multipart to use new helper
Package IO Utils :
- add truncate & sync to FileProgress
- fix error on open file mode for FileProgress
Package Console :
- fix interface used for color buffer
Package Cobra :
- add function to print message on write config to use custom message instead of internal message. If the function is not set, the default message will be print.
Other:
- fix golangci-lint config to remove crazy linter (use only golang group compliance linter)
- bump dependencies
- fix issue #160
- rework MultipartUpload process & helper
- update test to use lib size
- update object multipart to use new helper
Package IO Utils :
- add truncate & sync to FileProgress
- fix error on open file mode for FileProgress
Package Console :
- fix interface used for color buffer
Package Cobra :
- add function to print message on write config to use custom message instead of internal message. If the function is not set, the default message will be print.
Other:
- fix golangci-lint config to remove crazy linter (use only golang group compliance linter)
- bump dependencies
- objects / list Access All : add username param to allow list access and return a slice of access struct for the specify user, if username is empty, send the request without username
- sizepart : remove sizepart struct and replace it by package golib/size
Package Logger:
- fields : fix error with field & sync/map
Bump dependencies
Refactor Runner & Package Server
Package Errors:
- Add interface Errors to expose func for collection of errors
Package Server:
- Add runner packages for start/stop & ticker process launch in goroutines
- Runner Start/Stop : register a start and a stop function called into a managment instance of goroutines, expose package Server interface
- Runner Ticker : register a func periodycly called into a managment instance of goroutine with a time ticker, expose package server interface
- Add tools function to run x times a function or periodicly with a check function
Package HttpServer:
- Remove old run managment instance and use new Start&Stop Runner instead self runner
- Replace the poller in server start / stop with package server tools function
- Adjust code following this change
- Add in healthcheck a test of dialing to server binding network to perform the healthcheck
- Remove WaitNotify funct (cannot having multiple of waitnotify in same app) : keep waitnotify function in package config
Package Monitor:
- Remove old running system to use package server/runner/ticker
- Adjust code following
Package Cobra :
- Fix minor bug with writing configure
- Optimize code
Bump dependencies
- Add interface Errors to expose func for collection of errors
Package Server:
- Add runner packages for start/stop & ticker process launch in goroutines
- Runner Start/Stop : register a start and a stop function called into a managment instance of goroutines, expose package Server interface
- Runner Ticker : register a func periodycly called into a managment instance of goroutine with a time ticker, expose package server interface
- Add tools function to run x times a function or periodicly with a check function
Package HttpServer:
- Remove old run managment instance and use new Start&Stop Runner instead self runner
- Replace the poller in server start / stop with package server tools function
- Adjust code following this change
- Add in healthcheck a test of dialing to server binding network to perform the healthcheck
- Remove WaitNotify funct (cannot having multiple of waitnotify in same app) : keep waitnotify function in package config
Package Monitor:
- Remove old running system to use package server/runner/ticker
- Adjust code following
Package Cobra :
- Fix minor bug with writing configure
- Optimize code
Bump dependencies
Fix & Optimize
Package Config:
- rework & optimize listing of dependencies to start or reload component
Package HttpServer:
- fix bug with writing on channel without listen channel
Other :
- bump dependencies
- rework & optimize listing of dependencies to start or reload component
Package HttpServer:
- fix bug with writing on channel without listen channel
Bump dependencies
Fix Package Monitor
- create function to init prom metrics
- add logger to log errors
- add function to trigger a duration interval between 2 collect metrics
- fix use unic prom metrics for all component
- fix encoding info text
- fix status duration
- bump dependencies
- create function to init prom metrics
- add logger to log errors
- add function to trigger a duration interval between 2 collect metrics
- fix use unic prom metrics for all component
- fix encoding info text
- fix status duration
Fix 2023-03-01
Package Config/Component AWS :
- rework monitoring for status config to use Golib Request health system & config
- if Enable is true on the health config, use a request instance for healtcheck, otherwise use the aws check as healthcheck
Package AWS/Config :
- adjust code for config request health
Package Request :
- expose healthcheck into interface
Bump dependencies
Package Config/Component AWS :
- rework monitoring for status config to use Golib Request health system & config
- if Enable is true on the health config, use a request instance for healtcheck, otherwise use the aws check as healthcheck
Package AWS/Config :
- adjust code for config request health
Package Request :
- expose healthcheck into interface
Bump dependencies
Rework Monitoring, Prometheus, Status system
Package Monitoring :
- use packag dedicated to monitor component
- each monitor work as standalone server to monitor health
- collect metrics to export them to prometheus exporter
Package Prometheus :
- review to simplify use for API and not API metrics
- optimize code
Package Status :
- Rework to use Monitor package
- Rework to use native json / text Marshaller interface
Context :
- rework context config (context var) to use sync map and sync RWMutex (WORM)
- move gin context to dedicated sub package (dependancies of logger make circular dependencies)
- optimize code
Config :
- rework to optimize sync / collect of component
- rework status to monitor
- remove monitor managment from config to each component
- add a func to set default logger to implement inherit default logger options
- optimize code
IOUtils :
- isolate logger / closer interface as a usable & public interface & instance
- this interface / instance allow to collect io.closer over a context to close all if context is done
Logger :
- rework to use context.config map
- rework to use ioutils closer
- rework to allow options to inherit a default options, or the last version of options
- optimize code
Size :
- Add package Size to calculate and manipulate size Byte or bit
- Add encoding : Text/JSON/Yaml/Toml...
- Add option to défine default unit : Byte or bit
Other :
- adjust following code
- optimize code
- limit use of atomic value
- rework to use RWMutex instead of sync.Mutex to maximize capabilities of read instead of write
- remove 32bit build for CI/CD
- add darwin/arm64 build for CI/CD
Bump Dependencies
Package Monitoring :
- use packag dedicated to monitor component
- each monitor work as standalone server to monitor health
- collect metrics to export them to prometheus exporter
Package Prometheus :
- review to simplify use for API and not API metrics
- optimize code
Package Status :
- Rework to use Monitor package
- Rework to use native json / text Marshaller interface
Context :
- rework context config (context var) to use sync map and sync RWMutex (WORM)
- move gin context to dedicated sub package (dependancies of logger make circular dependencies)
- optimize code
Config :
- rework to optimize sync / collect of component
- rework status to monitor
- remove monitor managment from config to each component
- add a func to set default logger to implement inherit default logger options
- optimize code
IOUtils :
- isolate logger / closer interface as a usable & public interface & instance
- this interface / instance allow to collect io.closer over a context to close all if context is done
Logger :
- rework to use context.config map
- rework to use ioutils closer
- rework to allow options to inherit a default options, or the last version of options
- optimize code
Size :
- Add package Size to calculate and manipulate size Byte or bit
- Add encoding : Text/JSON/Yaml/Toml...
- Add option to défine default unit : Byte or bit
Other :
- adjust following code
- optimize code
- limit use of atomic value
- rework to use RWMutex instead of sync.Mutex to maximize capabilities of read instead of write
- remove 32bit build for CI/CD
- add darwin/arm64 build for CI/CD
Bump Dependencies
- Package Errors : fix error with slice of error not returning all parent
- Package Logger :
- fix log error slice
- following bump hclog : implement GetLevel + adjust SetLevel to report different between hc log debug & trace following EnableTrace in options
- Bump dependencies
Package AWS - Lock
## Package AWS :
- Bucket ADD CreateWithLock : create bucket with Object Lock enable
- Bucket ADD GetLock : retrieve object lock bucket configuration
- Bucket ADD SetLock : set object lock bucket configuration
- Object ADD GetLegalHold : retrieve object lock status for object/version
- Object ADD SetLegalHold : set object lock flag for object/version
- Interface ADD SetClientS3 : replace current client S3 with a new one given as parameters
- Interface ADD SetClientIam : replace current client IAM with a new one given as parameters
- Interface ADD HTTPCli : return the current setting of func to return a http.client
- Interface ADD mutex : lock any accessing struct properties to prevent race
## Other :
- bump dependencies
- Bucket ADD CreateWithLock : create bucket with Object Lock enable
- Bucket ADD GetLock : retrieve object lock bucket configuration
- Bucket ADD SetLock : set object lock bucket configuration
- Object ADD GetLegalHold : retrieve object lock status for object/version
- Object ADD SetLegalHold : set object lock flag for object/version
- Interface ADD SetClientS3 : replace current client S3 with a new one given as parameters
- Interface ADD SetClientIam : replace current client IAM with a new one given as parameters
- Interface ADD HTTPCli : return the current setting of func to return a http.client
- Interface ADD mutex : lock any accessing struct properties to prevent race
Other :
- bump dependencies
Fix Bug & Optimization
Config Component :
- Change reloading component method : try to reload all component and store errors, report list of errors but don't break the reloading process
Package Logger :
- Fix bug with entry logger filtering
Package Viper:
- reword message log before reloading config file (watchFS)
- add message log after reloading config file (watchFS)
Package Status :
- Fix DATA Race with status/info
- Add component key into log error message for health
- Add component key into function to use it into info (name)
- Reword health message : no OK/KO (still into status info), add error message reporting
Package httpserver :
- status info : apply update status component, use key in name
- status info : optimize code
Package Request :
- Fix error in url path operation
- Status info : optimize code
- Status info : apply update component, add endpoint hostname with name
Package Static :
- apply status component update
Other:
- Bump dependencies
- Change reloading component method : try to reload all component and store errors, report list of errors but don't break the reloading process
Package Logger :
- Fix bug with entry logger filtering
Package Viper:
- reword message log before reloading config file (watchFS)
- add message log after reloading config file (watchFS)
Package Status :
- Fix DATA Race with status/info
- Add component key into log error message for health
- Add component key into function to use it into info (name)
- Reword health message : no OK/KO (still into status info), add error message reporting
Package httpserver :
- status info : apply update status component, use key in name
- status info : optimize code
Package Request :
- Fix error in url path operation
- Status info : optimize code
- Status info : apply update component, add endpoint hostname with name
Package Static :
- apply status component update
Other :
- Bump dependencies