diff --git a/go.mod b/go.mod index 60940a2730..f038582071 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/hashicorp/cap v0.1.1 github.com/hashicorp/dawdle v0.4.0 github.com/hashicorp/dbassert v0.0.0-20200930125617-6218396928df - github.com/hashicorp/eventlogger v0.0.0-20210523164657-c216620e1746 + github.com/hashicorp/eventlogger v0.0.0-20210722131509-097103f6241c github.com/hashicorp/go-bexpr v0.1.8 github.com/hashicorp/go-cleanhttp v0.5.2 github.com/hashicorp/go-hclog v0.16.2 diff --git a/go.sum b/go.sum index 9104831bb1..e218c1fadc 100644 --- a/go.sum +++ b/go.sum @@ -405,8 +405,8 @@ github.com/hashicorp/dbassert v0.0.0-20200930125617-6218396928df/go.mod h1:+B5eZ github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/eventlogger v0.0.0-20210523164657-c216620e1746 h1:uFLAYWBCufq4idhqjltAWb4s2JuJt1oE1hDRixwWqwY= -github.com/hashicorp/eventlogger v0.0.0-20210523164657-c216620e1746/go.mod h1:LG0lqGlYKC9FD5m5Umh7FW8SeJlciNUZv400J4+j094= +github.com/hashicorp/eventlogger v0.0.0-20210722131509-097103f6241c h1:SiLp72RDg3EthwrTXCfwQB0niH5AD9wycdysKUTF5gE= +github.com/hashicorp/eventlogger v0.0.0-20210722131509-097103f6241c/go.mod h1:EbdHvKIOukAPY0arcVLQwStY5/rmYNfkLtObPUR2RsU= github.com/hashicorp/go-bexpr v0.1.8 h1:ETfuLF1bBAuHW/Qg6l1xCdV8WJ7lfatLtJ1N1w0IsfE= github.com/hashicorp/go-bexpr v0.1.8/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= @@ -424,6 +424,7 @@ github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39 github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.1.0 h1:vN9wG1D6KG6YHRTWr8512cxGOVgTMEfgEdSj/hr8MPc= github.com/hashicorp/go-immutable-radix v1.1.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-kms-wrapping v0.6.2/go.mod h1:aUzqzg9WEm5mEcQcNI431QLmxKzGL80cvwGQyVSP15Y= github.com/hashicorp/go-kms-wrapping v0.6.3 h1:N5an2PAZNBp3MpFv6Rca8ol9qNZyO9v9sAkXgPYN8UU= github.com/hashicorp/go-kms-wrapping v0.6.3/go.mod h1:1DTKimjuT1g8KaS8rwYxF0kkjaFMXKtJif9KXxsrr+s= github.com/hashicorp/go-kms-wrapping/entropy v0.1.0/go.mod h1:d1g9WGtAunDNpek8jUIEJnBlbgKS1N2Q61QkHiZyR1g= @@ -489,10 +490,14 @@ github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0m github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/vault/api v1.0.5-0.20200519221902-385fac77e20f/go.mod h1:euTFbi2YJgwcju3imEt919lhJKF68nN1cQPq3aA+kBE= +github.com/hashicorp/vault/api v1.0.5-0.20200805123347-1ef507638af6/go.mod h1:R3Umvhlxi2TN7Ex2hzOowyeNb+SfbVWI973N+ctaFMk= github.com/hashicorp/vault/api v1.1.1 h1:907ld+Z9cALyvbZK2qUX9cLwvSaEQsMVQB3x2KE8+AI= github.com/hashicorp/vault/api v1.1.1/go.mod h1:29UXcn/1cLOPHQNMWA7bCz2By4PSd0VKPAydKXS5yN0= github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= github.com/hashicorp/vault/sdk v0.1.14-0.20200519221530-14615acda45f/go.mod h1:WX57W2PwkrOPQ6rVQk+dy5/htHIaB4aBM70EwKThu10= +github.com/hashicorp/vault/sdk v0.1.14-0.20200519221838-e0cfd64bc267/go.mod h1:WX57W2PwkrOPQ6rVQk+dy5/htHIaB4aBM70EwKThu10= +github.com/hashicorp/vault/sdk v0.1.14-0.20200916184745-5576096032f8/go.mod h1:7GBJyKruotYxJlye8yHyGICV7kN7dQCNsCMTrb+v5J0= +github.com/hashicorp/vault/sdk v0.2.0/go.mod h1:cAGI4nVnEfAyMeqt9oB+Mase8DNn3qA/LDNHURiwssY= github.com/hashicorp/vault/sdk v0.2.1 h1:S4O6Iv/dyKlE9AUTXGa7VOvZmsCvg36toPKgV4f2P4M= github.com/hashicorp/vault/sdk v0.2.1/go.mod h1:WfUiO1vYzfBkz1TmoE4ZGU7HD0T0Cl/rZwaxjBkgN4U= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= @@ -630,8 +635,9 @@ github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.13 h1:qdl+GuBjcsKKDco5BsxPJlId98mSWNKqYA+Co0SC1yA= +github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus= @@ -915,6 +921,7 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= +golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 h1:/UOmuWzQfxxo9UtlXMwuQU8CMgg1eZXqTRwkSQJWKOI= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= diff --git a/internal/observability/event/event_observation.go b/internal/observability/event/event_observation.go index d0e7c7defa..16849f83c5 100644 --- a/internal/observability/event/event_observation.go +++ b/internal/observability/event/event_observation.go @@ -3,7 +3,7 @@ package event import ( "fmt" - "github.com/hashicorp/eventlogger" + "github.com/hashicorp/eventlogger/filters/gated" "github.com/hashicorp/go-secure-stdlib/strutil" ) @@ -11,7 +11,7 @@ import ( const observationVersion = "v0.1" type observation struct { - *eventlogger.SimpleGatedPayload + *gated.Payload Version string `json:"version"` Op Op `json:"op,omitempty"` RequestInfo *RequestInfo `json:"request_info,omitempty"` @@ -36,7 +36,7 @@ func newObservation(fromOperation Op, opt ...Option) (*observation, error) { } } i := &observation{ - SimpleGatedPayload: &eventlogger.SimpleGatedPayload{ + Payload: &gated.Payload{ ID: opts.withId, Header: opts.withHeader, Detail: opts.withDetails, diff --git a/internal/observability/event/event_observation_test.go b/internal/observability/event/event_observation_test.go index 4cc36fa5a0..73173ef827 100644 --- a/internal/observability/event/event_observation_test.go +++ b/internal/observability/event/event_observation_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - "github.com/hashicorp/eventlogger" + "github.com/hashicorp/eventlogger/filters/gated" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -40,9 +40,9 @@ func Test_newObservation(t *testing.T) { name: "valid-no-opts", fromOp: Op("valid-no-opts"), want: &observation{ - SimpleGatedPayload: &eventlogger.SimpleGatedPayload{}, - Version: errorVersion, - Op: Op("valid-no-opts"), + Payload: &gated.Payload{}, + Version: errorVersion, + Op: Op("valid-no-opts"), }, }, { @@ -56,7 +56,7 @@ func Test_newObservation(t *testing.T) { WithFlush(), }, want: &observation{ - SimpleGatedPayload: &eventlogger.SimpleGatedPayload{ + Payload: &gated.Payload{ ID: "valid-all-opts", Header: testHeader, Detail: testDetails, @@ -124,7 +124,7 @@ func Test_observationvalidate(t *testing.T) { assert, require := assert.New(t), require.New(t) e := observation{ Op: tt.op, - SimpleGatedPayload: &eventlogger.SimpleGatedPayload{ + Payload: &gated.Payload{ ID: tt.id, }, } diff --git a/internal/observability/event/eventer.go b/internal/observability/event/eventer.go index 64b0c205bd..22e568086b 100644 --- a/internal/observability/event/eventer.go +++ b/internal/observability/event/eventer.go @@ -8,6 +8,8 @@ import ( "time" "github.com/hashicorp/eventlogger" + "github.com/hashicorp/eventlogger/filters/gated" + "github.com/hashicorp/eventlogger/sinks/writer" "github.com/hashicorp/go-hclog" ) @@ -191,7 +193,7 @@ func NewEventer(log hclog.Logger, serializationLock *sync.Mutex, c EventerConfig var sinkNode eventlogger.Node switch s.SinkType { case StderrSink: - sinkNode = &eventlogger.WriterSink{ + sinkNode = &writer.Sink{ Format: string(s.Format), Writer: &serializedStderr, } @@ -283,7 +285,9 @@ func NewEventer(log hclog.Logger, serializationLock *sync.Mutex, c EventerConfig } for _, p := range auditPipelines { - gatedFilterNode := eventlogger.GatedFilter{} + gatedFilterNode := gated.Filter{ + Broker: e.broker, + } e.flushableNodes = append(e.flushableNodes, &gatedFilterNode) gateId, err := newId("gated-audit") if err != nil { @@ -309,7 +313,9 @@ func NewEventer(log hclog.Logger, serializationLock *sync.Mutex, c EventerConfig } for _, p := range observationPipelines { - gatedFilterNode := eventlogger.GatedFilter{} + gatedFilterNode := gated.Filter{ + Broker: e.broker, + } e.flushableNodes = append(e.flushableNodes, &gatedFilterNode) gateId, err := newId("gated-observation") if err != nil { @@ -414,7 +420,7 @@ func (e *Eventer) writeObservation(ctx context.Context, event *observation) erro if event.Detail != nil { event.Detail[OpField] = string(event.Op) } - return e.broker.Send(ctx, eventlogger.EventType(ObservationType), event.SimpleGatedPayload) + return e.broker.Send(ctx, eventlogger.EventType(ObservationType), event.Payload) }) if err != nil { e.logger.Error("encountered an error sending an observation event", "error:", err.Error()) diff --git a/internal/servers/common/handler_test.go b/internal/servers/common/handler_test.go index b92082f59b..0b410d3a4f 100644 --- a/internal/servers/common/handler_test.go +++ b/internal/servers/common/handler_test.go @@ -19,6 +19,7 @@ import ( "github.com/hashicorp/boundary/internal/kms" "github.com/hashicorp/boundary/internal/observability/event" "github.com/hashicorp/eventlogger" + "github.com/hashicorp/eventlogger/filters/gated" "github.com/hashicorp/go-hclog" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -482,7 +483,7 @@ type testMockBroker struct { func (b *testMockBroker) Send(ctx context.Context, t eventlogger.EventType, payload interface{}) (eventlogger.Status, error) { const op = "common.(testMockBroker).Send" switch { - case b.errorOnFlush && payload.(eventlogger.Gateable).FlushEvent(): + case b.errorOnFlush && payload.(gated.Gateable).FlushEvent(): return eventlogger.Status{}, errors.New(errors.Internal, op, "unable to flush event") case b.errorOnSendAudit && t == eventlogger.EventType(event.AuditType): return eventlogger.Status{}, errors.New(errors.Internal, op, "unable to send audit event")