Documentation
¶
Overview ¶
Package ports contains entry-point related logic for builder-hub. As of now only way to access builder-hub functionality is via http
Index ¶
- Constants
- Variables
- type ActivationRequest
- type AdminBuilderService
- type AdminHandler
- func (s *AdminHandler) AddBuilder(w http.ResponseWriter, r *http.Request)
- func (s *AdminHandler) AddBuilderConfig(w http.ResponseWriter, r *http.Request)
- func (s *AdminHandler) AddMeasurement(w http.ResponseWriter, r *http.Request)
- func (s *AdminHandler) ChangeActiveStatusForBuilder(w http.ResponseWriter, r *http.Request)
- func (s *AdminHandler) ChangeActiveStatusForMeasurement(w http.ResponseWriter, r *http.Request)
- func (s *AdminHandler) GetActiveConfigForBuilder(w http.ResponseWriter, r *http.Request)
- func (s *AdminHandler) GetFullConfigForBuilder(w http.ResponseWriter, r *http.Request)
- func (s *AdminHandler) SetSecrets(w http.ResponseWriter, r *http.Request)
- type AdminSecretService
- type AuthData
- type Builder
- type BuilderHubHandler
- func (bhs *BuilderHubHandler) GetActiveBuilders(w http.ResponseWriter, r *http.Request)
- func (bhs *BuilderHubHandler) GetActiveBuildersNoAuth(w http.ResponseWriter, r *http.Request)
- func (bhs *BuilderHubHandler) GetActiveBuildersNoAuthNetworked(w http.ResponseWriter, r *http.Request)
- func (bhs *BuilderHubHandler) GetAllowedMeasurements(w http.ResponseWriter, r *http.Request)
- func (bhs *BuilderHubHandler) GetConfigSecrets(w http.ResponseWriter, r *http.Request)
- func (bhs *BuilderHubHandler) RegisterCredentials(w http.ResponseWriter, r *http.Request)
- type BuilderHubService
- type BuilderWithServiceCreds
- type Measurement
- type ServiceCred
Constants ¶
View Source
const ( AttestationTypeHeader string = "X-Flashbots-Attestation-Type" MeasurementHeader string = "X-Flashbots-Measurement" ForwardedHeader string = "X-Forwarded-For" )
Variables ¶
View Source
var ( ErrInvalidAuthData = errors.New("invalid auth data") ErrInvalidIPAddress = errors.New("invalid ip address") )
Functions ¶
This section is empty.
Types ¶
type ActivationRequest ¶ added in v0.2.0
type ActivationRequest struct {
Enabled bool `json:"enabled"`
}
type AdminBuilderService ¶ added in v0.2.0
type AdminBuilderService interface { GetActiveConfigForBuilder(ctx context.Context, builderName string) (json.RawMessage, error) AddMeasurement(ctx context.Context, measurement domain.Measurement, enabled bool) error AddBuilder(ctx context.Context, builder domain.Builder) error ChangeActiveStatusForBuilder(ctx context.Context, builderName string, isActive bool) error ChangeActiveStatusForMeasurement(ctx context.Context, measurementName string, isActive bool) error AddBuilderConfig(ctx context.Context, builderName string, config json.RawMessage) error }
type AdminHandler ¶ added in v0.2.0
type AdminHandler struct {
// contains filtered or unexported fields
}
func NewAdminHandler ¶ added in v0.2.0
func NewAdminHandler(service AdminBuilderService, secretService AdminSecretService, log *httplog.Logger) *AdminHandler
func (*AdminHandler) AddBuilder ¶ added in v0.2.0
func (s *AdminHandler) AddBuilder(w http.ResponseWriter, r *http.Request)
func (*AdminHandler) AddBuilderConfig ¶ added in v0.2.0
func (s *AdminHandler) AddBuilderConfig(w http.ResponseWriter, r *http.Request)
func (*AdminHandler) AddMeasurement ¶ added in v0.2.0
func (s *AdminHandler) AddMeasurement(w http.ResponseWriter, r *http.Request)
func (*AdminHandler) ChangeActiveStatusForBuilder ¶ added in v0.2.0
func (s *AdminHandler) ChangeActiveStatusForBuilder(w http.ResponseWriter, r *http.Request)
func (*AdminHandler) ChangeActiveStatusForMeasurement ¶ added in v0.2.0
func (s *AdminHandler) ChangeActiveStatusForMeasurement(w http.ResponseWriter, r *http.Request)
func (*AdminHandler) GetActiveConfigForBuilder ¶ added in v0.2.0
func (s *AdminHandler) GetActiveConfigForBuilder(w http.ResponseWriter, r *http.Request)
func (*AdminHandler) GetFullConfigForBuilder ¶ added in v0.2.0
func (s *AdminHandler) GetFullConfigForBuilder(w http.ResponseWriter, r *http.Request)
GetFullConfigForBuilder returns the full config for a builder, including secrets Note this copies logic from GetConfigWithSecrets in BuilderHubService since we decided to avoid application layer here it probably makes sense unless logic gets more complicated here
func (*AdminHandler) SetSecrets ¶ added in v0.2.0
func (s *AdminHandler) SetSecrets(w http.ResponseWriter, r *http.Request)
type AdminSecretService ¶ added in v0.2.0
type AdminSecretService interface { SetSecretValues(builderName string, message json.RawMessage) error application.SecretAccessor }
type BuilderHubHandler ¶
type BuilderHubHandler struct {
// contains filtered or unexported fields
}
func NewBuilderHubHandler ¶
func NewBuilderHubHandler(builderHubService BuilderHubService, log *httplog.Logger) *BuilderHubHandler
func (*BuilderHubHandler) GetActiveBuilders ¶
func (bhs *BuilderHubHandler) GetActiveBuilders(w http.ResponseWriter, r *http.Request)
func (*BuilderHubHandler) GetActiveBuildersNoAuth ¶
func (bhs *BuilderHubHandler) GetActiveBuildersNoAuth(w http.ResponseWriter, r *http.Request)
func (*BuilderHubHandler) GetActiveBuildersNoAuthNetworked ¶ added in v0.2.0
func (bhs *BuilderHubHandler) GetActiveBuildersNoAuthNetworked(w http.ResponseWriter, r *http.Request)
func (*BuilderHubHandler) GetAllowedMeasurements ¶
func (bhs *BuilderHubHandler) GetAllowedMeasurements(w http.ResponseWriter, r *http.Request)
func (*BuilderHubHandler) GetConfigSecrets ¶
func (bhs *BuilderHubHandler) GetConfigSecrets(w http.ResponseWriter, r *http.Request)
func (*BuilderHubHandler) RegisterCredentials ¶
func (bhs *BuilderHubHandler) RegisterCredentials(w http.ResponseWriter, r *http.Request)
type BuilderHubService ¶
type BuilderHubService interface { GetAllowedMeasurements(ctx context.Context) ([]domain.Measurement, error) GetActiveBuilders(ctx context.Context, network string) ([]domain.BuilderWithServices, error) VerifyIPAndMeasurements(ctx context.Context, ip net.IP, measurement map[string]string, attestationType string) (*domain.Builder, string, error) GetConfigWithSecrets(ctx context.Context, builderName string) ([]byte, error) RegisterCredentialsForBuilder(ctx context.Context, builderName, service, tlsCert string, ecdsaPubKey []byte, measurementName, attestationType string) error LogEvent(ctx context.Context, eventName, builderName, name string) error }
type BuilderWithServiceCreds ¶
type BuilderWithServiceCreds struct { IP string DNSName string Name string ServiceCreds map[string]ServiceCred }
func (BuilderWithServiceCreds) MarshalJSON ¶
func (b BuilderWithServiceCreds) MarshalJSON() ([]byte, error)
MarshalJSON is a custom json marshaller. Unfortunately, there seems to be no way to inline map[string]Service when marshalling so we need to be careful when adding new fields, since custom json implementation will ignore it by default
func (*BuilderWithServiceCreds) UnmarshalJSON ¶ added in v0.2.0
func (b *BuilderWithServiceCreds) UnmarshalJSON(data []byte) error
type Measurement ¶
type Measurement struct { Name string `json:"measurement_id"` AttestationType string `json:"attestation_type"` Measurements map[string]domain.SingleMeasurement `json:"measurements"` }
type ServiceCred ¶
Click to show internal directories.
Click to hide internal directories.