Documentation
¶
Overview ¶
Package gateway implements the gateway service.
Index ¶
- Variables
- func AuthorizationTokenFromContext(ctx context.Context) string
- func AuthorizationTokenFromHeader(headers http.Header) string
- func ClientIPFromContext(ctx context.Context) string
- func ClientIPFromHeaderOrPeer(headers http.Header, peer string) string
- func LoadConfigFromEnv() (*config.GatewayConfig, error)
- func MustCreateLogger(cfg *config.GatewayConfig) *zap.Logger
- func MustLoadConfig() *config.GatewayConfig
- func MustSetupRedisClient(ctx context.Context, cfg config.RedisOptions) redis.UniversalClient
- func SetupRedisClient(ctx context.Context, cfg config.RedisOptions) (redis.UniversalClient, error)
- type AuthorizePublishFn
- type GatewayInterceptor
- func (i *GatewayInterceptor) WrapStreamingClient(next connect.StreamingClientFunc) connect.StreamingClientFunc
- func (i *GatewayInterceptor) WrapStreamingHandler(next connect.StreamingHandlerFunc) connect.StreamingHandlerFunc
- func (i *GatewayInterceptor) WrapUnary(next connect.UnaryFunc) connect.UnaryFunc
- type GatewayService
- type GatewayServiceBuilder
- func (b *GatewayServiceBuilder) Build() (GatewayService, error)
- func (b *GatewayServiceBuilder) WithAuthorizers(authorizers ...AuthorizePublishFn) IGatewayServiceBuilder
- func (b *GatewayServiceBuilder) WithBlockchainPublisher(blockchainPublisher blockchain.IBlockchainPublisher) IGatewayServiceBuilder
- func (b *GatewayServiceBuilder) WithClientMetrics(clientMetrics *grpcprom.ClientMetrics) IGatewayServiceBuilder
- func (b *GatewayServiceBuilder) WithContext(ctx context.Context) IGatewayServiceBuilder
- func (b *GatewayServiceBuilder) WithIdentityFn(identityFn IdentityFn) IGatewayServiceBuilder
- func (b *GatewayServiceBuilder) WithLogger(logger *zap.Logger) IGatewayServiceBuilder
- func (b *GatewayServiceBuilder) WithMetricsServer(metricsServer *metrics.Server) IGatewayServiceBuilder
- func (b *GatewayServiceBuilder) WithNodeRegistry(nodeRegistry registry.NodeRegistry) IGatewayServiceBuilder
- func (b *GatewayServiceBuilder) WithNonceManager(nonceManager noncemanager.NonceManager) IGatewayServiceBuilder
- func (b *GatewayServiceBuilder) WithPromRegistry(promRegistry *prometheus.Registry) IGatewayServiceBuilder
- func (b *GatewayServiceBuilder) WithRedisClient(redisClient redis.UniversalClient) IGatewayServiceBuilder
- func (b *GatewayServiceBuilder) WithReflection(enabled bool) IGatewayServiceBuilder
- type GatewayServiceError
- type IGatewayServiceBuilder
- type Identity
- type IdentityFn
- type IdentityKind
- type PermissionDeniedError
- type PublishRequest
- type PublishRequestSummary
- type RateLimitExceededError
- type UnauthenticatedError
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrMissingConfig = errors.New("config must be provided and not nil") )
Functions ¶
func AuthorizationTokenFromContext ¶ added in v1.0.0
func AuthorizationTokenFromHeader ¶ added in v1.0.0
func ClientIPFromContext ¶
func ClientIPFromHeaderOrPeer ¶ added in v1.0.0
func LoadConfigFromEnv ¶
func LoadConfigFromEnv() (*config.GatewayConfig, error)
func MustCreateLogger ¶ added in v1.0.0
func MustCreateLogger(cfg *config.GatewayConfig) *zap.Logger
func MustLoadConfig ¶
func MustLoadConfig() *config.GatewayConfig
func MustSetupRedisClient ¶ added in v1.0.0
func MustSetupRedisClient(ctx context.Context, cfg config.RedisOptions) redis.UniversalClient
func SetupRedisClient ¶
func SetupRedisClient( ctx context.Context, cfg config.RedisOptions, ) (redis.UniversalClient, error)
Types ¶
type AuthorizePublishFn ¶
type GatewayInterceptor ¶
type GatewayInterceptor struct {
// contains filtered or unexported fields
}
GatewayInterceptor is the server-side interceptor for the gateway API.
func NewGatewayInterceptor ¶
func NewGatewayInterceptor( logger *zap.Logger, identityFn IdentityFn, authorizers []AuthorizePublishFn, ) *GatewayInterceptor
func (*GatewayInterceptor) WrapStreamingClient ¶ added in v1.0.0
func (i *GatewayInterceptor) WrapStreamingClient( next connect.StreamingClientFunc, ) connect.StreamingClientFunc
WrapStreamingClient is a no-op. Interface requirement.
func (*GatewayInterceptor) WrapStreamingHandler ¶ added in v1.0.0
func (i *GatewayInterceptor) WrapStreamingHandler( next connect.StreamingHandlerFunc, ) connect.StreamingHandlerFunc
type GatewayService ¶
type GatewayServiceBuilder ¶
type GatewayServiceBuilder struct {
// contains filtered or unexported fields
}
func (*GatewayServiceBuilder) Build ¶
func (b *GatewayServiceBuilder) Build() (GatewayService, error)
func (*GatewayServiceBuilder) WithAuthorizers ¶
func (b *GatewayServiceBuilder) WithAuthorizers( authorizers ...AuthorizePublishFn, ) IGatewayServiceBuilder
func (*GatewayServiceBuilder) WithBlockchainPublisher ¶
func (b *GatewayServiceBuilder) WithBlockchainPublisher( blockchainPublisher blockchain.IBlockchainPublisher, ) IGatewayServiceBuilder
func (*GatewayServiceBuilder) WithClientMetrics ¶
func (b *GatewayServiceBuilder) WithClientMetrics( clientMetrics *grpcprom.ClientMetrics, ) IGatewayServiceBuilder
func (*GatewayServiceBuilder) WithContext ¶
func (b *GatewayServiceBuilder) WithContext( ctx context.Context, ) IGatewayServiceBuilder
func (*GatewayServiceBuilder) WithIdentityFn ¶
func (b *GatewayServiceBuilder) WithIdentityFn(identityFn IdentityFn) IGatewayServiceBuilder
func (*GatewayServiceBuilder) WithLogger ¶
func (b *GatewayServiceBuilder) WithLogger( logger *zap.Logger, ) IGatewayServiceBuilder
func (*GatewayServiceBuilder) WithMetricsServer ¶
func (b *GatewayServiceBuilder) WithMetricsServer( metricsServer *metrics.Server, ) IGatewayServiceBuilder
func (*GatewayServiceBuilder) WithNodeRegistry ¶
func (b *GatewayServiceBuilder) WithNodeRegistry( nodeRegistry registry.NodeRegistry, ) IGatewayServiceBuilder
func (*GatewayServiceBuilder) WithNonceManager ¶
func (b *GatewayServiceBuilder) WithNonceManager( nonceManager noncemanager.NonceManager, ) IGatewayServiceBuilder
func (*GatewayServiceBuilder) WithPromRegistry ¶
func (b *GatewayServiceBuilder) WithPromRegistry( promRegistry *prometheus.Registry, ) IGatewayServiceBuilder
func (*GatewayServiceBuilder) WithRedisClient ¶ added in v1.0.0
func (b *GatewayServiceBuilder) WithRedisClient( redisClient redis.UniversalClient, ) IGatewayServiceBuilder
func (*GatewayServiceBuilder) WithReflection ¶ added in v1.0.0
func (b *GatewayServiceBuilder) WithReflection(enabled bool) IGatewayServiceBuilder
type GatewayServiceError ¶
type IGatewayServiceBuilder ¶
type IGatewayServiceBuilder interface {
WithIdentityFn(identityFn IdentityFn) IGatewayServiceBuilder
WithAuthorizers(authorizers ...AuthorizePublishFn) IGatewayServiceBuilder
WithBlockchainPublisher(
blockchainPublisher blockchain.IBlockchainPublisher,
) IGatewayServiceBuilder
WithNodeRegistry(nodeRegistry registry.NodeRegistry) IGatewayServiceBuilder
WithLogger(logger *zap.Logger) IGatewayServiceBuilder
WithMetricsServer(metricsServer *metrics.Server) IGatewayServiceBuilder
WithContext(ctx context.Context) IGatewayServiceBuilder
WithPromRegistry(promRegistry *prometheus.Registry) IGatewayServiceBuilder
WithClientMetrics(clientMetrics *grpcprom.ClientMetrics) IGatewayServiceBuilder
WithNonceManager(nonceManager noncemanager.NonceManager) IGatewayServiceBuilder
WithRedisClient(redisClient redis.UniversalClient) IGatewayServiceBuilder
Build() (GatewayService, error)
}
func NewGatewayServiceBuilder ¶
func NewGatewayServiceBuilder(config *config.GatewayConfig) IGatewayServiceBuilder
type Identity ¶
type Identity struct {
Kind IdentityKind
Identity string
}
func IdentityFromContext ¶ added in v1.0.0
func NewUserIdentity ¶
type IdentityKind ¶
type IdentityKind string
type PermissionDeniedError ¶
type PermissionDeniedError struct {
// contains filtered or unexported fields
}
func NewPermissionDeniedError ¶
func NewPermissionDeniedError(msg string, err error) *PermissionDeniedError
func (PermissionDeniedError) ClientMessage ¶
func (e PermissionDeniedError) ClientMessage() string
func (PermissionDeniedError) Code ¶
func (e PermissionDeniedError) Code() connect.Code
func (PermissionDeniedError) Error ¶
func (e PermissionDeniedError) Error() string
func (PermissionDeniedError) RetryAfter ¶ added in v1.0.0
func (e PermissionDeniedError) RetryAfter() *time.Duration
type PublishRequest ¶
type PublishRequest *payer_api.PublishClientEnvelopesRequest
type PublishRequestSummary ¶
type PublishRequestSummary struct {
TotalEnvelopes int
OffchainCostEstimate currency.PicoDollar
OnchainCostEstimate currency.PicoDollar
TotalCostEstimate currency.PicoDollar
}
type RateLimitExceededError ¶ added in v1.0.0
type RateLimitExceededError struct {
// contains filtered or unexported fields
}
func NewRateLimitExceededError ¶ added in v1.0.0
func NewRateLimitExceededError(err error, retryAfter time.Duration) *RateLimitExceededError
func (RateLimitExceededError) ClientMessage ¶ added in v1.0.0
func (e RateLimitExceededError) ClientMessage() string
func (RateLimitExceededError) Code ¶ added in v1.0.0
func (e RateLimitExceededError) Code() connect.Code
func (RateLimitExceededError) Error ¶ added in v1.0.0
func (e RateLimitExceededError) Error() string
func (RateLimitExceededError) RetryAfter ¶ added in v1.0.0
func (e RateLimitExceededError) RetryAfter() *time.Duration
type UnauthenticatedError ¶
type UnauthenticatedError struct {
// contains filtered or unexported fields
}
func NewUnauthenticatedError ¶
func NewUnauthenticatedError(msg string, err error) *UnauthenticatedError
func (UnauthenticatedError) ClientMessage ¶
func (e UnauthenticatedError) ClientMessage() string
func (UnauthenticatedError) Code ¶
func (e UnauthenticatedError) Code() connect.Code
func (UnauthenticatedError) Error ¶
func (e UnauthenticatedError) Error() string
func (UnauthenticatedError) RetryAfter ¶ added in v1.0.0
func (e UnauthenticatedError) RetryAfter() *time.Duration
Source Files
¶
Click to show internal directories.
Click to hide internal directories.