75 lines
2.9 KiB
Go
75 lines
2.9 KiB
Go
// Copyright IBM Corp. 2020, 2026
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package event
|
|
|
|
import (
|
|
"google.golang.org/protobuf/proto"
|
|
)
|
|
|
|
type (
|
|
Id string
|
|
Op string
|
|
)
|
|
|
|
// RequestInfo defines the fields captured about a Boundary request.
|
|
type RequestInfo struct {
|
|
EventId string `json:"-"`
|
|
Id string `json:"id,omitempty" class:"public"`
|
|
Method string `json:"method,omitempty" class:"public"`
|
|
Path string `json:"path,omitempty" class:"public"`
|
|
PublicId string `json:"public_id,omitempty" class:"public"`
|
|
ClientIp string `json:"client_ip,omitempty" class:"public"`
|
|
}
|
|
|
|
// UserInfo defines the fields captured about a user for a Boundary request.
|
|
type UserInfo struct {
|
|
UserId string `json:"id,omitempty" class:"public"`
|
|
AuthAccountId string `json:"auth_account_id,omitempty" class:"public"`
|
|
}
|
|
|
|
type GrantsInfo struct {
|
|
Grants []Grant `json:"grants,omitempty"`
|
|
}
|
|
|
|
type Grant struct {
|
|
Grant string `json:"grant,omitempty" class:"public"`
|
|
ScopeId string `json:"scope_id,omitempty" class:"public"`
|
|
RoleId string `json:"role_id,omitempty" class:"public"`
|
|
}
|
|
|
|
type Auth struct {
|
|
DisabledAuthEntirely *bool `json:"disabled_auth_entirely,omitempty" class:"public"`
|
|
AuthTokenId string `json:"auth_token_id" class:"public"`
|
|
UserInfo *UserInfo `json:"user_info,omitempty"` // boundary field
|
|
GrantsInfo *GrantsInfo `json:"grants_info,omitempty"`
|
|
UserEmail string `json:"email,omitempty" class:"sensitive"`
|
|
UserName string `json:"name,omitempty" class:"sensitive"`
|
|
}
|
|
|
|
type Request struct {
|
|
Operation string `json:"operation,omitempty" class:"public"` // std audit field
|
|
Endpoint string `json:"endpoint,omitempty" class:"public"` // std audit field
|
|
Details proto.Message `json:"details,omitempty"` // boundary field
|
|
DetailsUpstreamMessage *UpstreamMessage `json:"details_upstream_message,omitempty"` // boundary field
|
|
UserAgents []*UserAgent `json:"user_agents,omitempty"` // boundary field
|
|
}
|
|
|
|
type Response struct {
|
|
StatusCode int `json:"status_code,omitempty"` // std audit
|
|
Details proto.Message `json:"details,omitempty"` // boundary field
|
|
DetailsUpstreamMessage *UpstreamMessage `json:"details_upstream_message,omitempty"` // boundary field
|
|
}
|
|
|
|
type UpstreamMessage struct {
|
|
Type string `json:"type,omitempty" class:"public"` // boundary field
|
|
Message proto.Message `json:"message,omitempty"` // boundary field
|
|
}
|
|
|
|
// UserAgent defines the fields parsed from a request's User-Agent header.
|
|
type UserAgent struct {
|
|
Product string `json:"product,omitempty"` // product identifier
|
|
ProductVersion string `json:"product_version,omitempty"` // version number of the product
|
|
Comments []string `json:"comments,omitempty"` // comments about the product
|
|
}
|