Integrate BACKBEAT SDK and resolve KACHING license validation
Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
78
vendor/github.com/jbenet/go-temp-err-catcher/README.md
generated
vendored
Normal file
78
vendor/github.com/jbenet/go-temp-err-catcher/README.md
generated
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
# go-temp-err-catcher
|
||||
|
||||
This is a little package to use with your net.Listeners.
|
||||
|
||||
Docs: https://godoc.org/github.com/jbenet/go-temp-err-catcher
|
||||
|
||||
Get:
|
||||
|
||||
go get github.com/jbenet/go-temp-err-catcher
|
||||
|
||||
## Examples
|
||||
|
||||
It is meant to be used with things like net.Lister.Accept:
|
||||
|
||||
```go
|
||||
import (
|
||||
tec "github.com/jbenet/go-temp-err-catcher"
|
||||
)
|
||||
|
||||
func listen(listener net.Listener) {
|
||||
var c tec.TempErrCatcher
|
||||
|
||||
for {
|
||||
conn, err := listener.Accept()
|
||||
if err != nil && c.IsTemporary(c) {
|
||||
continue
|
||||
}
|
||||
return conn, err
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
You can make your errors implement `Temporary`:
|
||||
|
||||
```go
|
||||
type errTemp struct {
|
||||
e error
|
||||
}
|
||||
|
||||
func (e errTemp) Temporary() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (e errTemp) Error() string {
|
||||
return e.e.Error()
|
||||
}
|
||||
|
||||
err := errors.New("beep boop")
|
||||
var c tec.TempErrCatcher
|
||||
c.IsTemporary(err) // false
|
||||
c.IsTemporary(errTemp{err}) // true
|
||||
```
|
||||
|
||||
Or just use `ErrTemp`:
|
||||
|
||||
```go
|
||||
err := errors.New("beep boop")
|
||||
var c tec.TempErrCatcher
|
||||
c.IsTemporary(err) // false
|
||||
c.IsTemporary(tec.ErrTemp{err}) // true
|
||||
```
|
||||
|
||||
|
||||
You can also define an `IsTemp` function to classify errors:
|
||||
|
||||
```go
|
||||
var ErrSkip = errors.New("this should be skipped")
|
||||
var ErrNotSkip = errors.New("this should not be skipped")
|
||||
|
||||
var c tec.TempErrCatcher
|
||||
c.IsTemp = func(e error) bool {
|
||||
return e == ErrSkip
|
||||
}
|
||||
|
||||
c.IsTemporary(ErrSkip) // true
|
||||
c.IsTemporary(ErrNotSkip) // false
|
||||
c.IsTemporary(ErrTemp) // false! no longer accepts Temporary()
|
||||
```
|
||||
Reference in New Issue
Block a user