Commit Graph

433 Commits

Author SHA1 Message Date
Nicolas JUHEL
b23addbfad Package Request:
- fix bug with retryer and io reader body (body was not resend on retryed request)
- remove mutex and use atomic on potential race field
- simplify & optimize some code
v1.15.4
2024-06-14 11:50:36 +02:00
Nicolas JUHEL
2d70f142e6 Package Duration:
- fix days: using ceil instead of floor
- add tuncate function for micro, milli, seconds, minutes, hours and days

Other:
- bump dependencies
v1.15.3
2024-06-11 10:26:58 +02:00
Nicolas JUHEL
39df39938e Package AWS:
- fix double import with different tag for validator in config model
- applys MR about fix on bucket validator to config AWS model
v1.15.2
2024-05-30 16:34:02 +02:00
Valentin Morel
88421f1aac Package AWS : Validator tag for s3 bucket (#184)
Package AWS:
- fix validator tag for s3 bucket: use custom function instead of hostname
2024-05-30 16:23:39 +02:00
Nicolas JUHEL
dbeb385267 Package Encoding/RandReader:
- optimize code
- remplace some pointer by atomic to prevent RACE

Other:
- bump dependencies
2024-05-29 16:39:59 +02:00
Nicolas JUHEL
1ed0b00db2 Package Semaphore: Fix issue #182 2024-05-28 16:00:33 +02:00
Nicolas JUHEL
00dee5e6e6 Fix aws group v1.15.1 2024-04-30 17:39:09 +02:00
Nicolas JUHEL
2fed80b926 Merge pull request #181 from sabouaram/refactoring-aws
Refactoring aws

Package AWS:
- groups: add new function walk to list and call custom function on each found group
- role: add new function walk to list and call custom function on each found role 
- role: add new function to detach all attached policy linked on each found role 
- user: add new function walk to list and call custom function on each found user 
- user: add new function to detach all attached policy linked on each found user 
- policy: add new function walk to list and call custom function on each found policy
- policy: add new function to retrieve all ARN policy who's matching given prefix of not empty
2024-04-30 17:37:38 +02:00
Nicolas JUHEL
aee1df6bd6 Fix missing licence 2024-04-30 16:02:19 +02:00
Salim Amine BOU ARAM
33db3b3453 fixing the empty prefix issue 2024-04-29 13:09:18 +02:00
Salim Amine BOU ARAM
055026ade4 refactoring aws 2024-04-29 10:41:10 +02:00
nabbar
658894cee6 Package Encoding:
- add sub package randRead to allow expose random reader from remote
  source like http request
- add unit test for randReader

Other:
- bump x/crypto from indirect to direct
2024-04-26 14:05:08 +02:00
Nicolas JUHEL
62a89d4b52 Package Semaphore
- add capabilities to create semaphore with more weighted thant physical thread
- to limit thread to physical thread use SetSimultaneous function
- add capabilites to use unlimited sync process (waitgroup)
- update process following
- add subpackage to create good semaphore/waitgroup instance
2024-04-24 14:16:24 +02:00
Nicolas JUHEL
24e4191bc4 Package artifact:
- replace file progress to generic interface extended from io reader / writer with progress function
- replace download function who's make the io copy, to a function that return the size + io.readCloser stream

Package ioutils/ioprogress:
- add a package to expose a generic interface based on io readcloser / writecloser
- add a instance to create a io readcloser / writecloser with progress function
- new instance based only on io readcloser/ writecloser and allow to register progress function or not if not wanted

Other:
- bump dependencies
- adjust format licence for context/gin
v1.15.0
2024-04-15 12:46:33 +02:00
nabbar
71c18b96a5 Rework Archive
Package Archive:
- complete rework of package
- split package between compression (stream compression only) and
  archive (catalogue/dictionary/tape archive type)
- rework compression to be stream only working without any temporary
  file or any like
- rework archive like TAR, ZIP... to expose stream instead of writing
  directly file/path
- rework archive like TAR, ZIP... to allow adding file from stream only
  and allowing to parsing local path to add it into archive
- rework detection of compression / archive
- rework extractAll function to not using useless local temporary file
- adding test can be used as example and perform testing of most of
  package code
- using const custom type for compression and archive allow them to be
  parsed, marshalled or unmarshalled from text or json and more
- apply following change into other module that use it
2024-04-02 09:12:31 +02:00
Nicolas JUHEL
cce6ba5348 Package Config:
- component/request: fix IsStarted function
- component/head: replace mutex to atomic

Package LDAP:
- fix bug if ldapPort for TLS is not set
- fix bug if ldapPort for StartTLS or noTLS is not set
v1.14.1
2024-03-27 17:33:32 +01:00
Nicolas JUHEL
eed9a8e160 Merge pull request #173 from nabbar/update_fix_2403
Update / Fix - 2024-03

Package Config/component/LDAP: 
- replace mutex by atomic
- fix minor bugs & optimize code

Package Size:
- add function 'mul' allowing do a multiplaction on the size value by a float64 given value (could use another size.float64)
- add function 'div' allowing do a division of the size value by a float64 given value (could use another size.float64)
- add function 'add' allowing do an addtion of the size value with a uint64 given value (could use another size.uint64)
- add function 'sub' allowing do an substraction of the size value with a uint64 given value (could use another size.uint64)

Package Encoding:
- rework completly crypt package to new package encoding
- part aes of old crypt become new subpackage encoding/aes
- part hex of old crypt (associated with aes) become new standalone subpackage encoding/hexa
- adding new subpackage mux to use multiplexer/de-multiplexer of io stream
- mux is different of multireader / multiwriter in way as io send from mux in one channel will be received only in the coresponding channel  of de-mux
- mux is encoding subpackage becauxse based on hex + cbor marshalling / unmarshalling
- all subpackage can be used directly of by io reader / writer

Package Socket/server
- rework server to use as possible direct io to con
- rework server to optimize & fix managment (context / shutdown...)
- rework server to stop connection befor stopping server
- rework server to not load incoming and send it to handler by allowing handler to manager io input/output directly
- server not more used buff internally (less memory consuption)
- adding counter of opened connection
- adding some testing who's checking server & client for each protocol

Package Socket/client
- rework client to allow connect to server before reading/writing on io stream
- rework client to allow consum direct io stream instead of reading locally / call function
- rework client to allow having less memory consumption by removing internal buffer
- rework client allowing to use root io function (bufio, io copy, ...)

Package Socket/multi
- adding new subpackage multi to simplfy using of 1 reader / x writer
- if no writer is define, using an extended io discard
- allowing asynch instancing, populate writer and calling main writer
- allowing calling writer / reader to expose the main io reader / writer

Package Socket/delim:
- adding new subpackage delim to simplify using of bufio reader with delimiter
- using 1 writer / 1 reader
- allowing root io function like readwritecloser, writeto, ...
- use local buffer to prevent race if reader and writer are not is same process

Package PProf:
- fix missing \n in message

Package HttpServer:
- fix bug with init TLS & http2

Other:
- bump dependencies
v1.14.0
2024-03-23 18:10:00 +01:00
Nicolas JUHEL
9ca3530b1d Package Config/component/LDAP:
- replace mutex by atomic
- fix minor bugs & optimize code

Package Size:
- add function 'mul' allowing do a multiplaction on the size value by a float64 given value (could use another size.float64)
- add function 'div' allowing do a division of the size value by a float64 given value (could use another size.float64)
- add function 'add' allowing do an addtion of the size value with a uint64 given value (could use another size.uint64)
- add function 'sub' allowing do an substraction of the size value with a uint64 given value (could use another size.uint64)

Package Encoding:
- rework completly crypt package to new package encoding
- part aes of old crypt become new subpackage encoding/aes
- part hex of old crypt (associated with aes) become new standalone subpackage encoding/hexa
- adding new subpackage mux to use multiplexer/de-multiplexer of io stream
- mux is different of multireader / multiwriter in way as io send from mux in one channel will be received only in the coresponding channel  of de-mux
- mux is encoding subpackage becauxse based on hex + cbor marshalling / unmarshalling
- all subpackage can be used directly of by io reader / writer

Package Socket/server
- rework server to use as possible direct io to con
- rework server to optimize & fix managment (context / shutdown...)
- rework server to stop connection befor stopping server
- rework server to not load incoming and send it to handler by allowing handler to manager io input/output directly
- server not more used buff internally (less memory consuption)
- adding counter of opened connection
- adding some testing who's checking server & client for each protocol

Package Socket/client
- rework client to allow connect to server before reading/writing on io stream
- rework client to allow consum direct io stream instead of reading locally / call function
- rework client to allow having less memory consumption by removing internal buffer
- rework client allowing to use root io function (bufio, io copy, ...)

Package Socket/multi
- adding new subpackage multi to simplfy using of 1 reader / x writer
- if no writer is define, using an extended io discard
- allowing asynch instancing, populate writer and calling main writer
- allowing calling writer / reader to expose the main io reader / writer

Package Socket/delim:
- adding new subpackage delim to simplify using of bufio reader with delimiter
- using 1 writer / 1 reader
- allowing root io function like readwritecloser, writeto, ...
- use local buffer to prevent race if reader and writer are not is same process

Package PProf:
- fix missing \n in message

Package HttpServer:
- fix bug with init TLS & http2

Other:
- bump dependencies
2024-03-23 15:33:24 +01:00
Nicolas JUHEL
d84e6a7e9d Package Network/protocol:
- fix different receiver
- fix not validating protocole valide const value for parsing numeric

Package Socket/server:
- fix unix/tcp: not closing connection if error (any error EOF, context, connection, ..)
v1.13.14
2024-03-11 11:09:26 +01:00
Nicolas JUHEL
b190739581 Package socket:
- Client: optimize code & memory
- Client: allow multiple send content for one connection
- Server: optmize code
- Server: optimize memory use & stream

Package server:
- Rework chan / cancel process
- Simplify & optimize chan / cancel process
- Add Function Action for Ticker as FuncTicker
- Rename type func Action to FuncAction

Package httpserver:
- Fix error on starting runner
- Log error on starting runner
- Optimize some code

Package config:
- Add log info for each starting / reloading component (if default logger is set)
- Add log error for starting error or not started for each component on start / reload (if default logger is set)

Package monitor:
- review ticker delay for starting puller (pass from 500ms to 50ms)

Other:
- bump dependencies
v1.13.13
2024-03-07 18:21:55 +01:00
Nicolas JUHEL
a9a4d1e7c2 Package Profiling
- new package to use/consume CPU / MEM pprof root package
- create a file on same location as runable binary to store profile

Package HTTPClient
- add message function called on each Dial/DialContext call function
- function message can be nil

Package Server
- add generic function for recover message / catching
- implement this recovring function into runner StartStop & Ticker

Package Logger:
- implement generic recovering function into hook
- fix bug if instance is an invalid instance of fields or entry
v1.13.12
2024-02-28 13:41:33 +01:00
Nicolas JUHEL
9b350cb499 Package Request:
- fix bug with nil instance thant implement HTTPCLient interface
- fix following code in config/component/request
v1.13.11
2024-02-20 16:15:38 +01:00
nabbar
1d18fbfefc Package HTTP Client DNS Mapper:
- rework DNS Mapper to be more efficient with pattern search dns
- fix bugs
- add unit test in BDD to validate package
- optimize code
v1.13.10
2024-02-17 17:22:15 +01:00
Nicolas JUHEL
ae0a6b62c9 Package HTTP Client:
- Add DNS Mapper to force destination for a fqdn source
- Allow wildcard and multi wildcard for fqdn source
- DNS Mapper create Transport, Dialer & http client
- DNS Mapper allow a config input to customize timeout, limit and TLS config
- DNS Mapper use a gloabl transport connection poller
- DNS Mapper implement DialContext & Dial method for transport
- DNS Mapper use cache to accelerate process
- DNS Mapper cache is only dnsmapper, not DNS cache
- Replace old helper for http client with DNSMapper
- Add default DNSMapper into the main lib of http client
- Allow to overide the default DNS Mapper with a new one
- Add ticker to force clean idle connection every given duration
- "Compatible" with old config, as the default config will be used instead of old client build
- Clean code and fix minor bugs
- Add config component to allow use a global config
- Config Component httpcli can overide default httpcli dns mapper when updated

Package Certificates
- Add function type to impose function that return a slice of rootCA string
- update config/component/tls by replacing mutex with atomic
- optimize some code

Package Config
- expand errors code index to add component httpcli

Package Config/component:
- database: add new validation, that config key existing into viper
- head: add new validation, that config key existing into viper
- http: add new validation, that config key existing into viper
- ldap: add new validation, that config key existing into viper
- log: add new validation, that config key existing into viper
- mail: add new validation, that config key existing into viper
- smtp: add new validation, that config key existing into viper

Package AWS:
- update package following update of httpcli
- use interface for http cli that implement the Do function
- update following the config/component/aws
- rework config/component/aws to use atomic instead of mutex
- update test unit following change

Package Request:
- update following http client update
- use interface of HTTP Client that implement DO function, instead of http client struct pointer
- update config & code following
- apply same modification into config/component/request
- update config/component/request by replacing mutex to atomic

Package Server
- add function Uptime to model to expose the duration since last start

Package Semaphore
- apply change name of constant following bump of lib associated

Package Crypt
- fix bug into reader to remove suffix of EOF if prevent

Package Errors:
- expand index module to add DNS Mapper client

Package HTTP Server:
- update monitor to apply changes

Package Socket:
- add additional check if reading error: if buffer has data, send it to handler before break run

Other:
- bump dependencies
2024-02-16 15:42:13 +01:00
Nicolas JUHEL
eaf88e00b7 Package HTTP Client:
- defined default value for idles connection & max connection per host
- rework client creation to prevent TCP FIN not send on close stream
2024-02-09 14:33:47 +01:00
Nicolas JUHEL
f8bd2b56e0 Bump dependencies v1.13.9 2024-02-05 15:20:55 +01:00
Nicolas JUHEL
c1fc4e816e Package Socket/Server:
- fix UDP as kernel SOCKGRAM
- add unixgram as kernel SOCKGRAM for local socket file
- optimize parallel statment
- optimize code / minor bugs fix
- add IsRunning function
- add timeout shutdown based on periodicly check of IsRunning
- fix close channel before send empty struct to stop process
- optimize clean shutdown
- optimize connection process to use less resources and lock pipeline less time
2024-02-05 15:03:58 +01:00
Nicolas JUHEL
f7fd908a14 Package Request:
- add content length header helper function
- add control with length of result marshall body with function jsonbody
- add set content length header in function jsonbody
2024-02-05 15:00:44 +01:00
nabbar
c66a00917a Package Socket:
- fix tcp,udp,unix socket
- add socket unixgram for session less unix socket
- optmize process & code
- add some standalone test for server / client (add example server config for
  rsyslog)

Package Network/Protocol:
- add unixgram protocol

Package Errors:
- fix bug in loop to prevent circular include
2024-01-28 15:18:56 +01:00
Nicolas JUHEL
db0a79e2e7 Bump dependencies 2024-01-21 14:57:59 +01:00
Nicolas JUHEL
8287497e68 Package Errors:
- fix bug with fmt.Errorf called withtou pattern, replace it by a errors.New
- fix but of circular inclusion for method Add
- remove deprecated const / code
- reorganize code file to map to interface / model
- update other modules following chnages

Other:
- bump dependencies
2024-01-15 14:22:22 +01:00
Nicolas JUHEL
4ca14c657e Bump dependencies v1.13.8 2024-01-05 16:35:15 +01:00
Nicolas JUHEL
31cff079a7 Package Viper:
- Add Getxxxx function from viper into interface to prevent using lib viper and spf viper instance

Package Config:
- change pointer to retrieve config: using golib viper instead of spf viper (allow hook instead of no hook)
2024-01-05 16:12:05 +01:00
Nicolas JUHEL
086cea4702 Bump dependencies v1.13.7 2023-12-14 14:54:43 +01:00
Nicolas JUHEL
6759a160b1 Package Server:
- replace mutex / pointer to atmoic + chan
2023-12-14 13:50:26 +01:00
Nicolas JUHEL
782f59d0aa Package Logger:
- Add option to define the buffer size for logger file
- Rework Hashicorp wrapper to not use a standalone pointer of logger and prefer a function to retrieve the logger
- reword some panic recovery message
2023-12-14 13:49:14 +01:00
Nicolas JUHEL
eb9f94e916 Package HTTPCli:
- add interface for http client implement the function Do
2023-12-14 13:44:49 +01:00
Nicolas JUHEL
1d4bc986d7 Package Errors:
- replace glue for join error
2023-12-14 13:43:45 +01:00
Nicolas JUHEL
7916cbc92c Package Config/Component/TLS:
- fix missing RootCA
- add function to specify the Default RootCA
2023-12-14 13:42:31 +01:00
Nicolas JUHEL
77c7ebfe83 Package AWS:
- Allow to use config anonymous with no access key / secret key
- Replace *http.client to interface of Do function
2023-12-14 13:40:36 +01:00
Nicolas JUHEL
df925d1d47 Package LDAP:
- add function to check current TLSMode

Package Logger:
- fix recovering message to identify origin
- fix error on freebuffer function

Package Server:
- fix recovering message to identify origin

Other:
- bump dependencies
v1.13.6
2023-12-05 18:14:12 +01:00
nabbar
824f9cc0ce Package Router:
- rework to apply standard hierarchy
- move auth to dedicated sub package
- move header to dedicated sub package

Package Static:
- fix bugs
v1.13.5
2023-12-02 16:49:04 +01:00
Nicolas JUHEL
4a47f39dc0 Package Cobra:
- fix configure config file : bad function TrimRight instead of TrimSuffix
- allow specify an alias for configure command
v1.13.4
2023-11-29 16:05:28 +01:00
Nicolas JUHEL
9851a8caac Package duration: fix bug format Days return Hours and not Days v1.13.3 2023-11-29 14:31:39 +01:00
nabbar
82be8c0c89 Pakcage AWS:
- add subpackage to sign http.request with AWS V4 signature and parse response based on http.response and given model

Other:
- bump dependencies
v1.13.2
2023-11-24 13:22:57 +01:00
Nicolas JUHEL
a82b4db860 Merge pull request #170 from nabbar/fix_2023-11-20
Fix 2023-11-21

Package Archives:
    - fix security arbitrary path
    - fix linter
    - fix issue #171 
    - fix issue #172 
    
Package AWS:
    - implement resolver v2
    - force default bucket region constraint to prevent SDK error
    
Package Cobra:
    - fix linter
    
Package Config/component:
    - fix linter
    
Package Context/Config:
    - Add function to set context
    
Package Database/KV...:
    - Fix error
    - Fix collision pointer
    - Fix models
    - Fix circular dependencies
    - Add function Delete on driver, table and item
    - Add function new on drvier to prevent collision data when create item on table get / walk
    
Package Duration:
    - Add type Duration based on time.Duration to allow transform duration to string instead of int64 nanosecond
    - Add function to parse in json, yaml, toml, text, cbor
    - Add function to allow convert type into mapstructure (spf13 viper, cobra...)
    
Package File/Perm:
    - Add type Perm based on os.FileMode to allow marshall / unmashall it into octal form instead of string representation (-rwxrwxrwx)
    - Add function to marshall / unmarshall in json, yaml, toml, text, cbor
    - Add function to allow convert type into mapstructure (spf13 viper, cobra...)
    
Package File/progress:
    - Fix linter
    
Package HTTPServer :
    - Fix linter
    - Fix security by adding a default value if not set on config
    
Package ioutils:
    - Fix Linter
    
Package LDAP:
    - Add Clone function
    - Fix linter
    
Package logger/hookfile:
    - Fix linter
    
Package nats:
    - Fix linter
    
Package Network/Protocol:
    - Fix bug with quote / Dbl Quote on unmarshall
    
Package Password:
    - Replace password with crypto rand instead of math rand
    
Package Size:
    - Fix potential overflow
    - Add function to format value into Int32, Int, Uint32, Uint, Float32
    - Add function to parse Float64 into type Size
    
Package Socket:
    - change config uint32 to golib Size, time.Duration to golib Duration
    - add TLS managment to server TCP, discard for UDP & Unix file Local Domain
    - add function Info Server to print information of server when listen is starting
    
Other:
    - bump dependencies
    - fix CVE-2023-46129
v1.13.1
2023-11-21 20:45:38 +01:00
Nicolas JUHEL
97e70d063f Package Archives:
- fix security arbitrary path
- fix linter

Package AWS:
- implement resolver v2

Package Cobra:
- fix linter

Package Config/component:
- fix linter

Package Context/Config:
- Add function to set context

Package Database/KV...:
- Fix error
- Fix collision pointer
- Fix models
- Fix circular dependencies
- Add function Delete on driver, table and item
- Add function new on drvier to prevent collision data when create item on table get / walk

Package Duration:
- Add type Duration based on time.Duration to allow transform duration to string instead of int64 nanosecond
- Add function to parse in json, yaml, toml, text, cbor
- Add function to allow convert type into mapstructure (spf13 viper, cobra...)

Package File/Perm:
- Add type Perm based on os.FileMode to allow marshall / unmashall it into octal form instead of string representation (-rwxrwxrwx)
- Add function to marshall / unmarshall in json, yaml, toml, text, cbor
- Add function to allow convert type into mapstructure (spf13 viper, cobra...)

Package File/progress:
- Fix linter

Package HTTPServer :
- Fix linter
- Fix security by adding a default value if not set on config

Package ioutils:
- Fix Linter

Package LDAP:
- Add Clone function

Package logger/hookfile:
- Fix linter

Package nats:
- Fix linter

Package Network/Protocol:
- Fix bug with quote / Dbl Quote on unmarshall

Package Password:
- Replace password with crypto rand instead of math rand

Package Size:
- Fix potential overflow
- Add function to format value into Int32, Int, Uint32, Uint, Float32
- Add function to parse Float64 into type Size

Package Socket:
- change config uint32 to golib Size, time.Duration to golib Duration
- add TLS managment to server TCP, discard for UDP & Unix file Local Domain
- add function Info Server to print information of server when listen is starting
2023-11-21 20:21:37 +01:00
Nicolas JUHEL
b07fafb2f2 Fix GZip & File/progress
Package Archive/GZIP
- remove call of getGunzipSize
- expose to public the internal getGunZipSize => GetGunZipSize

Package file/progress
- fix nil function with progress, use empty function if function are nil
v1.13.0
2023-10-16 11:33:32 +02:00
Nicolas JUHEL
4675b42be1 Merge pull request #169 from nabbar/semaphore
Rework Semaphore & Progress

Package Semaphore
- simplify the base semaphore (context, max wheight...)
- merge semaphore with progress instance
- extend semaphore with context interface

Package Progress
- rework MPB instance
- bump MBP to v8
- integrate MPB into Semaphore to use a same instance for sem / mpb
- rework bar to simplify it
- bar is now also a semaphore & context
- allow to create bar with custom options
2023-10-16 11:32:28 +02:00
nabbar
c90acd9611 Rework Semaphore & Progress
Package Semaphore:
- simplify the base semaphore (context, max wheight...)
- merge semaphore with progress instance
- extend semaphore with context interface

Package Progress
- rework MPB instance
- bump MBP to v8
- integrate MPB into Semaphore to use a same instance for sem / mpb
- rework bar to simplify it
- bar is now also a semaphore & context
- allow to create bar with custom options
2023-10-15 17:55:04 +02:00