This change adds a new websocket endpoint for database events. The events
endpoint allows clients to stream events as they happen in GARM. Events
are defined as a structure containning the event type (create, update, delete),
the database entity involved (instances, pools, repos, etc) and the payload
consisting of the object involved in the event. The payload translates
to the types normally returned by the API and can be deserialized as one
of the types present in the params package.
The events endpoint is a websocket endpoint and it accepts filters as
a simple json send over the websocket connection. The filters allows the
user to specify which entities are of interest, and which operations should
be returned. For example, you may be interested in changes made to pools
or runners, in which case you could create a filter that only returns
update operations for pools. Or update and delete operations.
The filters can be defined as:
{
"filters": [
{
"entity_type": "instance",
"operations": ["update", "delete"]
},
{
"entity_type": "pool"
},
],
"send_everything": false
}
This would return only update and delete events for instances and all events
for pools. Alternatively you can ask GARM to send you everything:
{
"send_everything": true
}
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
350 lines
11 KiB
Text
350 lines
11 KiB
Text
# filippo.io/edwards25519 v1.1.0
|
|
## explicit; go 1.20
|
|
filippo.io/edwards25519
|
|
filippo.io/edwards25519/field
|
|
# github.com/BurntSushi/toml v1.3.2
|
|
## explicit; go 1.16
|
|
github.com/BurntSushi/toml
|
|
github.com/BurntSushi/toml/internal
|
|
# github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
|
|
## explicit; go 1.13
|
|
github.com/asaskevich/govalidator
|
|
# github.com/beorn7/perks v1.0.1
|
|
## explicit; go 1.11
|
|
github.com/beorn7/perks/quantile
|
|
# github.com/bradleyfalzon/ghinstallation/v2 v2.10.0
|
|
## explicit; go 1.13
|
|
github.com/bradleyfalzon/ghinstallation/v2
|
|
# github.com/cespare/xxhash/v2 v2.3.0
|
|
## explicit; go 1.11
|
|
github.com/cespare/xxhash/v2
|
|
# github.com/chzyer/readline v1.5.1
|
|
## explicit; go 1.15
|
|
github.com/chzyer/readline
|
|
# github.com/cloudbase/garm-provider-common v0.1.1
|
|
## explicit; go 1.20
|
|
github.com/cloudbase/garm-provider-common/defaults
|
|
github.com/cloudbase/garm-provider-common/errors
|
|
github.com/cloudbase/garm-provider-common/execution
|
|
github.com/cloudbase/garm-provider-common/params
|
|
github.com/cloudbase/garm-provider-common/util
|
|
github.com/cloudbase/garm-provider-common/util/exec
|
|
# github.com/davecgh/go-spew v1.1.1
|
|
## explicit
|
|
github.com/davecgh/go-spew/spew
|
|
# github.com/felixge/httpsnoop v1.0.4
|
|
## explicit; go 1.13
|
|
github.com/felixge/httpsnoop
|
|
# github.com/go-logr/logr v1.4.1
|
|
## explicit; go 1.18
|
|
github.com/go-logr/logr
|
|
github.com/go-logr/logr/funcr
|
|
# github.com/go-logr/stdr v1.2.2
|
|
## explicit; go 1.16
|
|
github.com/go-logr/stdr
|
|
# github.com/go-openapi/analysis v0.23.0
|
|
## explicit; go 1.20
|
|
github.com/go-openapi/analysis
|
|
github.com/go-openapi/analysis/internal/debug
|
|
github.com/go-openapi/analysis/internal/flatten/normalize
|
|
github.com/go-openapi/analysis/internal/flatten/operations
|
|
github.com/go-openapi/analysis/internal/flatten/replace
|
|
github.com/go-openapi/analysis/internal/flatten/schutils
|
|
github.com/go-openapi/analysis/internal/flatten/sortref
|
|
# github.com/go-openapi/errors v0.22.0
|
|
## explicit; go 1.20
|
|
github.com/go-openapi/errors
|
|
# github.com/go-openapi/jsonpointer v0.21.0
|
|
## explicit; go 1.20
|
|
github.com/go-openapi/jsonpointer
|
|
# github.com/go-openapi/jsonreference v0.21.0
|
|
## explicit; go 1.20
|
|
github.com/go-openapi/jsonreference
|
|
github.com/go-openapi/jsonreference/internal
|
|
# github.com/go-openapi/loads v0.22.0
|
|
## explicit; go 1.20
|
|
github.com/go-openapi/loads
|
|
# github.com/go-openapi/runtime v0.28.0
|
|
## explicit; go 1.20
|
|
github.com/go-openapi/runtime
|
|
github.com/go-openapi/runtime/client
|
|
github.com/go-openapi/runtime/logger
|
|
github.com/go-openapi/runtime/middleware
|
|
github.com/go-openapi/runtime/middleware/denco
|
|
github.com/go-openapi/runtime/middleware/header
|
|
github.com/go-openapi/runtime/middleware/untyped
|
|
github.com/go-openapi/runtime/security
|
|
github.com/go-openapi/runtime/yamlpc
|
|
# github.com/go-openapi/spec v0.21.0
|
|
## explicit; go 1.20
|
|
github.com/go-openapi/spec
|
|
# github.com/go-openapi/strfmt v0.23.0
|
|
## explicit; go 1.20
|
|
github.com/go-openapi/strfmt
|
|
# github.com/go-openapi/swag v0.23.0
|
|
## explicit; go 1.20
|
|
github.com/go-openapi/swag
|
|
# github.com/go-openapi/validate v0.24.0
|
|
## explicit; go 1.20
|
|
github.com/go-openapi/validate
|
|
# github.com/go-sql-driver/mysql v1.8.1
|
|
## explicit; go 1.18
|
|
github.com/go-sql-driver/mysql
|
|
# github.com/golang-jwt/jwt/v4 v4.5.0
|
|
## explicit; go 1.16
|
|
github.com/golang-jwt/jwt/v4
|
|
# github.com/golang-jwt/jwt/v5 v5.2.1
|
|
## explicit; go 1.18
|
|
github.com/golang-jwt/jwt/v5
|
|
# github.com/google/go-github/v57 v57.0.0
|
|
## explicit; go 1.17
|
|
github.com/google/go-github/v57/github
|
|
# github.com/google/go-github/v60 v60.0.0
|
|
## explicit; go 1.21
|
|
github.com/google/go-github/v60/github
|
|
# github.com/google/go-querystring v1.1.0
|
|
## explicit; go 1.10
|
|
github.com/google/go-querystring/query
|
|
# github.com/google/uuid v1.6.0
|
|
## explicit
|
|
github.com/google/uuid
|
|
# github.com/gorilla/handlers v1.5.2
|
|
## explicit; go 1.20
|
|
github.com/gorilla/handlers
|
|
# github.com/gorilla/mux v1.8.1
|
|
## explicit; go 1.20
|
|
github.com/gorilla/mux
|
|
# github.com/gorilla/websocket v1.5.4-0.20240702125206-a62d9d2a8413
|
|
## explicit; go 1.20
|
|
github.com/gorilla/websocket
|
|
# github.com/inconshreveable/mousetrap v1.1.0
|
|
## explicit; go 1.18
|
|
github.com/inconshreveable/mousetrap
|
|
# github.com/jedib0t/go-pretty/v6 v6.5.8
|
|
## explicit; go 1.17
|
|
github.com/jedib0t/go-pretty/v6/table
|
|
github.com/jedib0t/go-pretty/v6/text
|
|
# github.com/jinzhu/inflection v1.0.0
|
|
## explicit
|
|
github.com/jinzhu/inflection
|
|
# github.com/jinzhu/now v1.1.5
|
|
## explicit; go 1.12
|
|
github.com/jinzhu/now
|
|
# github.com/josharian/intern v1.0.0
|
|
## explicit; go 1.5
|
|
github.com/josharian/intern
|
|
# github.com/juju/clock v1.0.3
|
|
## explicit; go 1.18
|
|
github.com/juju/clock
|
|
# github.com/juju/errors v1.0.0
|
|
## explicit; go 1.18
|
|
github.com/juju/errors
|
|
# github.com/juju/loggo v1.0.0
|
|
## explicit; go 1.14
|
|
# github.com/juju/retry v1.0.0
|
|
## explicit; go 1.17
|
|
github.com/juju/retry
|
|
# github.com/juju/testing v1.0.2
|
|
## explicit; go 1.17
|
|
# github.com/mailru/easyjson v0.7.7
|
|
## explicit; go 1.12
|
|
github.com/mailru/easyjson/buffer
|
|
github.com/mailru/easyjson/jlexer
|
|
github.com/mailru/easyjson/jwriter
|
|
# github.com/manifoldco/promptui v0.9.0
|
|
## explicit; go 1.12
|
|
github.com/manifoldco/promptui
|
|
github.com/manifoldco/promptui/list
|
|
github.com/manifoldco/promptui/screenbuf
|
|
# github.com/mattn/go-isatty v0.0.20
|
|
## explicit; go 1.15
|
|
github.com/mattn/go-isatty
|
|
# github.com/mattn/go-runewidth v0.0.15
|
|
## explicit; go 1.9
|
|
github.com/mattn/go-runewidth
|
|
# github.com/mattn/go-sqlite3 v1.14.22
|
|
## explicit; go 1.19
|
|
github.com/mattn/go-sqlite3
|
|
# github.com/minio/sio v0.3.1
|
|
## explicit; go 1.18
|
|
github.com/minio/sio
|
|
# github.com/mitchellh/mapstructure v1.5.0
|
|
## explicit; go 1.14
|
|
github.com/mitchellh/mapstructure
|
|
# github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354
|
|
## explicit; go 1.14
|
|
github.com/nbutton23/zxcvbn-go
|
|
github.com/nbutton23/zxcvbn-go/adjacency
|
|
github.com/nbutton23/zxcvbn-go/data
|
|
github.com/nbutton23/zxcvbn-go/entropy
|
|
github.com/nbutton23/zxcvbn-go/frequency
|
|
github.com/nbutton23/zxcvbn-go/match
|
|
github.com/nbutton23/zxcvbn-go/matching
|
|
github.com/nbutton23/zxcvbn-go/scoring
|
|
github.com/nbutton23/zxcvbn-go/utils/math
|
|
# github.com/oklog/ulid v1.3.1
|
|
## explicit
|
|
github.com/oklog/ulid
|
|
# github.com/opentracing/opentracing-go v1.2.0
|
|
## explicit; go 1.14
|
|
github.com/opentracing/opentracing-go
|
|
github.com/opentracing/opentracing-go/ext
|
|
github.com/opentracing/opentracing-go/log
|
|
# github.com/pkg/errors v0.9.1
|
|
## explicit
|
|
github.com/pkg/errors
|
|
# github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
|
|
## explicit
|
|
github.com/pmezard/go-difflib/difflib
|
|
# github.com/prometheus/client_golang v1.19.0
|
|
## explicit; go 1.20
|
|
github.com/prometheus/client_golang/prometheus
|
|
github.com/prometheus/client_golang/prometheus/internal
|
|
github.com/prometheus/client_golang/prometheus/promhttp
|
|
# github.com/prometheus/client_model v0.6.1
|
|
## explicit; go 1.19
|
|
github.com/prometheus/client_model/go
|
|
# github.com/prometheus/common v0.53.0
|
|
## explicit; go 1.20
|
|
github.com/prometheus/common/expfmt
|
|
github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg
|
|
github.com/prometheus/common/model
|
|
# github.com/prometheus/procfs v0.13.0
|
|
## explicit; go 1.19
|
|
github.com/prometheus/procfs
|
|
github.com/prometheus/procfs/internal/fs
|
|
github.com/prometheus/procfs/internal/util
|
|
# github.com/rivo/uniseg v0.4.7
|
|
## explicit; go 1.18
|
|
github.com/rivo/uniseg
|
|
# github.com/spf13/cobra v1.8.0
|
|
## explicit; go 1.15
|
|
github.com/spf13/cobra
|
|
# github.com/spf13/pflag v1.0.5
|
|
## explicit; go 1.12
|
|
github.com/spf13/pflag
|
|
# github.com/stretchr/objx v0.5.2
|
|
## explicit; go 1.20
|
|
github.com/stretchr/objx
|
|
# github.com/stretchr/testify v1.9.0
|
|
## explicit; go 1.17
|
|
github.com/stretchr/testify/assert
|
|
github.com/stretchr/testify/mock
|
|
github.com/stretchr/testify/require
|
|
github.com/stretchr/testify/suite
|
|
# github.com/teris-io/shortid v0.0.0-20220617161101-71ec9f2aa569
|
|
## explicit; go 1.18
|
|
github.com/teris-io/shortid
|
|
# go.mongodb.org/mongo-driver v1.15.0
|
|
## explicit; go 1.18
|
|
go.mongodb.org/mongo-driver/bson
|
|
go.mongodb.org/mongo-driver/bson/bsoncodec
|
|
go.mongodb.org/mongo-driver/bson/bsonoptions
|
|
go.mongodb.org/mongo-driver/bson/bsonrw
|
|
go.mongodb.org/mongo-driver/bson/bsontype
|
|
go.mongodb.org/mongo-driver/bson/primitive
|
|
go.mongodb.org/mongo-driver/x/bsonx/bsoncore
|
|
# go.opentelemetry.io/otel v1.25.0
|
|
## explicit; go 1.21
|
|
go.opentelemetry.io/otel
|
|
go.opentelemetry.io/otel/attribute
|
|
go.opentelemetry.io/otel/baggage
|
|
go.opentelemetry.io/otel/codes
|
|
go.opentelemetry.io/otel/internal
|
|
go.opentelemetry.io/otel/internal/attribute
|
|
go.opentelemetry.io/otel/internal/baggage
|
|
go.opentelemetry.io/otel/internal/global
|
|
go.opentelemetry.io/otel/propagation
|
|
go.opentelemetry.io/otel/semconv/internal/v2
|
|
go.opentelemetry.io/otel/semconv/v1.17.0
|
|
go.opentelemetry.io/otel/semconv/v1.17.0/httpconv
|
|
# go.opentelemetry.io/otel/metric v1.25.0
|
|
## explicit; go 1.21
|
|
go.opentelemetry.io/otel/metric
|
|
go.opentelemetry.io/otel/metric/embedded
|
|
# go.opentelemetry.io/otel/trace v1.25.0
|
|
## explicit; go 1.21
|
|
go.opentelemetry.io/otel/trace
|
|
go.opentelemetry.io/otel/trace/embedded
|
|
# golang.org/x/crypto v0.24.0
|
|
## explicit; go 1.18
|
|
golang.org/x/crypto/bcrypt
|
|
golang.org/x/crypto/blowfish
|
|
golang.org/x/crypto/chacha20
|
|
golang.org/x/crypto/chacha20poly1305
|
|
golang.org/x/crypto/hkdf
|
|
golang.org/x/crypto/internal/alias
|
|
golang.org/x/crypto/internal/poly1305
|
|
# golang.org/x/net v0.26.0
|
|
## explicit; go 1.18
|
|
golang.org/x/net/internal/socks
|
|
golang.org/x/net/proxy
|
|
# golang.org/x/oauth2 v0.19.0
|
|
## explicit; go 1.18
|
|
golang.org/x/oauth2
|
|
golang.org/x/oauth2/internal
|
|
# golang.org/x/sync v0.7.0
|
|
## explicit; go 1.18
|
|
golang.org/x/sync/errgroup
|
|
# golang.org/x/sys v0.21.0
|
|
## explicit; go 1.18
|
|
golang.org/x/sys/cpu
|
|
golang.org/x/sys/unix
|
|
golang.org/x/sys/windows
|
|
# google.golang.org/protobuf v1.33.0
|
|
## explicit; go 1.17
|
|
google.golang.org/protobuf/encoding/protodelim
|
|
google.golang.org/protobuf/encoding/prototext
|
|
google.golang.org/protobuf/encoding/protowire
|
|
google.golang.org/protobuf/internal/descfmt
|
|
google.golang.org/protobuf/internal/descopts
|
|
google.golang.org/protobuf/internal/detrand
|
|
google.golang.org/protobuf/internal/editiondefaults
|
|
google.golang.org/protobuf/internal/encoding/defval
|
|
google.golang.org/protobuf/internal/encoding/messageset
|
|
google.golang.org/protobuf/internal/encoding/tag
|
|
google.golang.org/protobuf/internal/encoding/text
|
|
google.golang.org/protobuf/internal/errors
|
|
google.golang.org/protobuf/internal/filedesc
|
|
google.golang.org/protobuf/internal/filetype
|
|
google.golang.org/protobuf/internal/flags
|
|
google.golang.org/protobuf/internal/genid
|
|
google.golang.org/protobuf/internal/impl
|
|
google.golang.org/protobuf/internal/order
|
|
google.golang.org/protobuf/internal/pragma
|
|
google.golang.org/protobuf/internal/set
|
|
google.golang.org/protobuf/internal/strs
|
|
google.golang.org/protobuf/internal/version
|
|
google.golang.org/protobuf/proto
|
|
google.golang.org/protobuf/reflect/protoreflect
|
|
google.golang.org/protobuf/reflect/protoregistry
|
|
google.golang.org/protobuf/runtime/protoiface
|
|
google.golang.org/protobuf/runtime/protoimpl
|
|
google.golang.org/protobuf/types/known/timestamppb
|
|
# gopkg.in/DATA-DOG/go-sqlmock.v1 v1.3.0
|
|
## explicit
|
|
gopkg.in/DATA-DOG/go-sqlmock.v1
|
|
# gopkg.in/natefinch/lumberjack.v2 v2.2.1
|
|
## explicit; go 1.13
|
|
gopkg.in/natefinch/lumberjack.v2
|
|
# gopkg.in/yaml.v3 v3.0.1
|
|
## explicit
|
|
gopkg.in/yaml.v3
|
|
# gorm.io/datatypes v1.2.0
|
|
## explicit; go 1.18
|
|
gorm.io/datatypes
|
|
# gorm.io/driver/mysql v1.5.6
|
|
## explicit; go 1.14
|
|
gorm.io/driver/mysql
|
|
# gorm.io/driver/sqlite v1.5.5
|
|
## explicit; go 1.20
|
|
gorm.io/driver/sqlite
|
|
# gorm.io/gorm v1.25.9
|
|
## explicit; go 1.18
|
|
gorm.io/gorm
|
|
gorm.io/gorm/callbacks
|
|
gorm.io/gorm/clause
|
|
gorm.io/gorm/logger
|
|
gorm.io/gorm/migrator
|
|
gorm.io/gorm/schema
|
|
gorm.io/gorm/utils
|