Documentation
¶
Index ¶
- Variables
- func IsValidPeriod(period string) bool
- type APIKey
- type APIKeyRepository
- type AlertConfiguration
- type ApiKey
- type ApiKeyFilter
- type AppMetadata
- type Application
- type BasicAuth
- type CLIMetadata
- type Configuration
- type ConfigurationRepository
- type DeliveryAttempt
- type DeliveryAttempts
- type DeprecatedEndpoint
- type Device
- type DeviceRepository
- type DeviceStatus
- type EncodingType
- type Endpoint
- type EndpointAuthentication
- type EndpointAuthenticationType
- type EndpointConfig
- type EndpointMetadata
- type EndpointRepository
- type EndpointStatus
- type Event
- type EventDelivery
- type EventDeliveryFilter
- type EventDeliveryRepository
- type EventDeliveryStatus
- type EventFilter
- type EventInterval
- type EventIntervalData
- type EventRepository
- type EventType
- type ExportRepository
- type Filter
- type FilterBy
- type FilterConfiguration
- type FilterSchema
- type GooglePubSubConfig
- type HMac
- type HttpHeader
- type InviteStatus
- type KeyType
- type M
- type Metadata
- type OnPremStorage
- type Organisation
- type OrganisationInvite
- type OrganisationInviteRepository
- type OrganisationMember
- type OrganisationMemberRepository
- type OrganisationRepository
- type PageDirection
- type Pageable
- type PaginationData
- type Password
- type Period
- type PortalLink
- type PortalLinkRepository
- type PrevRowCount
- type Project
- type ProjectConfig
- type ProjectFilter
- type ProjectMetadata
- type ProjectRepository
- type ProjectStatistics
- type ProjectType
- type ProviderConfig
- type PubSubConfig
- type PubSubHandler
- type PubSubType
- type RateLimitConfiguration
- type RetentionPolicyConfiguration
- type RetryConfiguration
- type S3Storage
- type SQSPubSubConfig
- type SearchFilter
- type SearchParams
- type Secret
- type Secrets
- type SignatureConfiguration
- type SignatureVersion
- type SignatureVersions
- type Source
- type SourceFilter
- type SourceProvider
- type SourceRepository
- type SourceType
- type StoragePolicyConfiguration
- type StorageType
- type StrategyConfiguration
- type StrategyProvider
- type Subscription
- type SubscriptionRepository
- type SubscriptionType
- type TwitterProviderConfig
- type User
- type UserMetadata
- type UserRepository
- type VerifierConfig
- type VerifierType
Constants ¶
This section is empty.
Variables ¶
View Source
var ( DefaultProjectConfig = ProjectConfig{ RetentionPolicy: &DefaultRetentionPolicy, MaxIngestSize: config.MaxResponseSize, ReplayAttacks: false, IsRetentionPolicyEnabled: false, DisableEndpoint: false, RateLimit: &DefaultRateLimitConfig, Strategy: &DefaultStrategyConfig, Signature: GetDefaultSignatureConfig(), } DefaultStrategyConfig = StrategyConfiguration{ Type: DefaultStrategyProvider, Duration: 100, RetryCount: 10, } DefaultRateLimitConfig = RateLimitConfiguration{ Count: 1000, Duration: 60, } DefaultRetryConfig = RetryConfiguration{ Type: LinearStrategyProvider, Duration: 10, RetryCount: 3, } DefaultAlertConfig = AlertConfiguration{ Count: 4, Threshold: "1h", } DefaultStoragePolicy = StoragePolicyConfiguration{ Type: OnPrem, OnPrem: &OnPremStorage{ Path: null.NewString(convoy.DefaultOnPremDir, true), }, } DefaultRetentionPolicy = RetentionPolicyConfiguration{ Policy: "30d", } )
View Source
var ( ErrOrgNotFound = errors.New("organisation not found") ErrDeviceNotFound = errors.New("device not found") ErrOrgInviteNotFound = errors.New("organisation invite not found") ErrOrgMemberNotFound = errors.New("organisation member not found") )
View Source
var ( ErrUserNotFound = errors.New("user not found") ErrSourceNotFound = errors.New("source not found") ErrEventNotFound = errors.New("event not found") ErrProjectNotFound = errors.New("project not found") ErrAPIKeyNotFound = errors.New("api key not found") ErrEndpointNotFound = errors.New("endpoint not found") ErrSubscriptionNotFound = errors.New("subscription not found") ErrEventDeliveryNotFound = errors.New("event delivery not found") ErrEventDeliveryAttemptNotFound = errors.New("event delivery attempt not found") ErrPortalLinkNotFound = errors.New("portal link not found") ErrDuplicateEndpointName = errors.New("an endpoint with this name exists") ErrNotAuthorisedToAccessDocument = errors.New("your credentials cannot access or modify this resource") ErrConfigNotFound = errors.New("config not found") ErrDuplicateProjectName = errors.New("a project with this name already exists") ErrDuplicateEmail = errors.New("a user with this email already exists") ErrNoActiveSecret = errors.New("no active secret found") ErrSecretNotFound = errors.New("secret not found") )
View Source
var DefaultCursor = fmt.Sprintf("%d", math.MaxInt)
Functions ¶
func IsValidPeriod ¶
Types ¶
type APIKey ¶
type APIKey struct {
UID string `json:"uid" db:"id"`
MaskID string `json:"mask_id,omitempty" db:"mask_id"`
Name string `json:"name" db:"name"`
Role auth.Role `json:"role" db:"role"`
Hash string `json:"hash,omitempty" db:"hash"`
Salt string `json:"salt,omitempty" db:"salt"`
Type KeyType `json:"key_type" db:"key_type"`
UserID string `json:"user_id" db:"user_id"`
ExpiresAt null.Time `json:"expires_at,omitempty" db:"expires_at"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at"`
}
type APIKeyRepository ¶
type APIKeyRepository interface {
CreateAPIKey(context.Context, *APIKey) error
UpdateAPIKey(context.Context, *APIKey) error
FindAPIKeyByID(context.Context, string) (*APIKey, error)
FindAPIKeyByProjectID(context.Context, string) (*APIKey, error)
FindAPIKeyByMaskID(context.Context, string) (*APIKey, error)
FindAPIKeyByHash(context.Context, string) (*APIKey, error)
RevokeAPIKeys(context.Context, []string) error
LoadAPIKeysPaged(context.Context, *ApiKeyFilter, *Pageable) ([]APIKey, PaginationData, error)
}
type AlertConfiguration ¶ added in v0.6.0
type ApiKeyFilter ¶ added in v0.7.0
type AppMetadata ¶
type Application ¶
type Application struct {
UID string `json:"uid" db:"id"`
ProjectID string `json:"project_id" db:"project_id"`
Title string `json:"name" db:"title"`
SupportEmail string `json:"support_email,omitempty" db:"support_email"`
SlackWebhookURL string `json:"slack_webhook_url,omitempty" db:"slack_webhook_url"`
IsDisabled bool `json:"is_disabled,omitempty" db:"is_disabled"`
Endpoints []DeprecatedEndpoint `json:"endpoints,omitempty" db:"endpoints"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at,omitempty" swaggertype:"string"`
Events int64 `json:"events,omitempty" db:"-"`
}
Deprecated
type CLIMetadata ¶ added in v0.7.0
type CLIMetadata struct {
EventType string `json:"event_type" db:"event_type"`
SourceID string `json:"source_id" db:"source_id"`
}
func (*CLIMetadata) Scan ¶ added in v0.9.0
func (m *CLIMetadata) Scan(value interface{}) error
type Configuration ¶ added in v0.6.0
type Configuration struct {
UID string `json:"uid" db:"id"`
IsAnalyticsEnabled bool `json:"is_analytics_enabled" db:"is_analytics_enabled"`
IsSignupEnabled bool `json:"is_signup_enabled" db:"is_signup_enabled"`
StoragePolicy *StoragePolicyConfiguration `json:"storage_policy" db:"storage_policy"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
type ConfigurationRepository ¶ added in v0.6.0
type ConfigurationRepository interface {
CreateConfiguration(context.Context, *Configuration) error
LoadConfiguration(context.Context) (*Configuration, error)
UpdateConfiguration(context.Context, *Configuration) error
}
type DeliveryAttempt ¶
type DeliveryAttempt struct {
UID string `json:"uid" db:"id"`
MsgID string `json:"msg_id" db:"msg_id"`
URL string `json:"url" db:"url"`
Method string `json:"method" db:"method"`
EndpointID string `json:"endpoint_id" db:"endpoint_id"`
APIVersion string `json:"api_version" db:"api_version"`
IPAddress string `json:"ip_address,omitempty" db:"ip_address"`
RequestHeader HttpHeader `json:"request_http_header,omitempty" db:"request_http_header"`
ResponseHeader HttpHeader `json:"response_http_header,omitempty" db:"response_http_header"`
HttpResponseCode string `json:"http_status,omitempty" db:"http_status"`
ResponseData string `json:"response_data,omitempty" db:"response_data"`
Error string `json:"error,omitempty" db:"error"`
Status bool `json:"status,omitempty" db:"statu,"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
type DeliveryAttempts ¶ added in v0.9.0
type DeliveryAttempts []DeliveryAttempt
func (*DeliveryAttempts) Scan ¶ added in v0.9.0
func (h *DeliveryAttempts) Scan(value interface{}) error
type DeprecatedEndpoint ¶ added in v0.8.0
type DeprecatedEndpoint struct {
UID string `json:"uid" db:"uid"`
TargetURL string `json:"target_url" db:"target_url"`
Description string `json:"description" db:"description"`
Secret string `json:"-" db:"secret"`
Secrets []Secret `json:"secrets" db:"secrets"`
AdvancedSignatures bool `json:"advanced_signatures" db:"advanced_signatures"`
HttpTimeout string `json:"http_timeout" db:"http_timeout"`
RateLimit int `json:"rate_limit" db:"rate_limit"`
RateLimitDuration string `json:"rate_limit_duration" db:"rate_limit_duration"`
Authentication *EndpointAuthentication `json:"authentication" db:"authentication,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at,omitempty" swaggertype:"string"`
}
Deprecated
type Device ¶ added in v0.7.0
type Device struct {
UID string `json:"uid" db:"id"`
ProjectID string `json:"project_id,omitempty" db:"project_id"`
EndpointID string `json:"endpoint_id,omitempty" db:"endpoint_id"`
HostName string `json:"host_name,omitempty" db:"host_name"`
Status DeviceStatus `json:"status,omitempty" db:"status"`
LastSeenAt time.Time `json:"last_seen_at,omitempty" db:"last_seen_at,omitempty" swaggertype:"string"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
type DeviceRepository ¶ added in v0.7.0
type DeviceRepository interface {
CreateDevice(ctx context.Context, device *Device) error
UpdateDevice(ctx context.Context, device *Device, appID, projectID string) error
UpdateDeviceLastSeen(ctx context.Context, device *Device, appID, projectID string, status DeviceStatus) error
DeleteDevice(ctx context.Context, uid string, appID, projectID string) error
FetchDeviceByID(ctx context.Context, uid string, appID, projectID string) (*Device, error)
FetchDeviceByHostName(ctx context.Context, hostName string, appID, projectID string) (*Device, error)
LoadDevicesPaged(ctx context.Context, projectID string, filter *ApiKeyFilter, pageable Pageable) ([]Device, PaginationData, error)
}
type DeviceStatus ¶ added in v0.7.0
type DeviceStatus string
const ( DeviceStatusOffline DeviceStatus = "offline" DeviceStatusOnline DeviceStatus = "online" DeviceStatusDisabled DeviceStatus = "disabled" )
type EncodingType ¶ added in v0.6.0
type EncodingType string
const ( Base64Encoding EncodingType = "base64" HexEncoding EncodingType = "hex" )
func (EncodingType) String ¶ added in v0.7.2
func (e EncodingType) String() string
type Endpoint ¶
type Endpoint struct {
UID string `json:"uid" db:"id"`
ProjectID string `json:"project_id" db:"project_id"`
OwnerID string `json:"owner_id,omitempty" db:"owner_id"`
TargetURL string `json:"target_url" db:"target_url"`
Title string `json:"title" db:"title"`
Secrets Secrets `json:"secrets" db:"secrets"`
AdvancedSignatures bool `json:"advanced_signatures" db:"advanced_signatures"`
Description string `json:"description" db:"description"`
SlackWebhookURL string `json:"slack_webhook_url,omitempty" db:"slack_webhook_url"`
SupportEmail string `json:"support_email,omitempty" db:"support_email"`
AppID string `json:"-" db:"app_id"` // Deprecated but necessary for backward compatibility
HttpTimeout string `json:"http_timeout" db:"http_timeout"`
RateLimit int `json:"rate_limit" db:"rate_limit"`
Events int64 `json:"events,omitempty" db:"event_count"`
Status EndpointStatus `json:"status" db:"status"`
RateLimitDuration string `json:"rate_limit_duration" db:"rate_limit_duration"`
Authentication *EndpointAuthentication `json:"authentication" db:"authentication"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
func (*Endpoint) FindSecret ¶ added in v0.9.0
func (*Endpoint) GetActiveSecretIndex ¶ added in v0.7.2
func (*Endpoint) GetAuthConfig ¶ added in v0.9.0
func (e *Endpoint) GetAuthConfig() EndpointAuthentication
type EndpointAuthentication ¶ added in v0.7.0
type EndpointAuthentication struct {
Type EndpointAuthenticationType `json:"type,omitempty" db:"type" valid:"optional,in(api_key)~unsupported authentication type"`
ApiKey *ApiKey `json:"api_key" db:"api_key"`
}
type EndpointAuthenticationType ¶ added in v0.7.0
type EndpointAuthenticationType string
const (
APIKeyAuthentication EndpointAuthenticationType = "api_key"
)
type EndpointConfig ¶ added in v0.9.0
type EndpointConfig struct {
AdvancedSignatures bool `json:"advanced_signatures" db:"advanced_signatures"`
Secrets []Secret `json:"secrets" db:"secrets"`
RateLimit *RateLimitConfiguration `json:"ratelimit" db:"ratelimit"`
Authentication *EndpointAuthentication `json:"authentication" db:"authentication"`
}
type EndpointMetadata ¶
type EndpointMetadata []*Endpoint
func (*EndpointMetadata) Scan ¶ added in v0.9.0
func (s *EndpointMetadata) Scan(v interface{}) error
type EndpointRepository ¶ added in v0.8.0
type EndpointRepository interface {
CreateEndpoint(ctx context.Context, endpoint *Endpoint, projectID string) error
FindEndpointByID(çtx context.Context, id string, projectID string) (*Endpoint, error)
FindEndpointsByID(ctx context.Context, ids []string, projectID string) ([]Endpoint, error)
FindEndpointsByAppID(ctx context.Context, appID string, projectID string) ([]Endpoint, error)
FindEndpointsByOwnerID(ctx context.Context, projectID string, ownerID string) ([]Endpoint, error)
UpdateEndpoint(ctx context.Context, endpoint *Endpoint, projectID string) error
UpdateEndpointStatus(ctx context.Context, projectID, endpointID string, status EndpointStatus) error
DeleteEndpoint(ctx context.Context, endpoint *Endpoint, projectID string) error
CountProjectEndpoints(ctx context.Context, projectID string) (int64, error)
LoadEndpointsPaged(ctx context.Context, projectID string, query string, pageable Pageable) ([]Endpoint, PaginationData, error)
UpdateSecrets(ctx context.Context, endpointID string, projectID string, secrets Secrets) error
DeleteSecret(ctx context.Context, endpoint *Endpoint, secretID string, projectID string) error
}
type EndpointStatus ¶
type EndpointStatus string
const ( ActiveEndpointStatus EndpointStatus = "active" InactiveEndpointStatus EndpointStatus = "inactive" PendingEndpointStatus EndpointStatus = "pending" )
type Event ¶
type Event struct {
UID string `json:"uid" db:"id"`
EventType EventType `json:"event_type" db:"event_type"`
MatchedEndpoints int `json:"matched_endpoints" db:"matched_enpoints"` // TODO(all) remove this field
SourceID string `json:"source_id,omitempty" db:"source_id"`
AppID string `json:"app_id,omitempty" db:"app_id"` // Deprecated
ProjectID string `json:"project_id,omitempty" db:"project_id"`
Endpoints pq.StringArray `json:"endpoints" db:"endpoints"`
Headers httpheader.HTTPHeader `json:"headers" db:"headers"`
EndpointMetadata EndpointMetadata `json:"endpoint_metadata,omitempty" db:"endpoint_metadata"`
Source *Source `json:"source_metadata,omitempty" db:"source_metadata"`
// Data is an arbitrary JSON value that gets sent as the body of the
// webhook to the endpoints
Data json.RawMessage `json:"data,omitempty" db:"data"`
Raw string `json:"raw,omitempty" db:"raw"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
Event defines a payload to be sent to an application
func (*Event) GetRawHeaders ¶ added in v0.8.0
func (*Event) GetRawHeadersJSON ¶ added in v0.8.0
type EventDelivery ¶
type EventDelivery struct {
UID string `json:"uid" db:"id"`
ProjectID string `json:"project_id,omitempty" db:"project_id"`
EventID string `json:"event_id,omitempty" db:"event_id"`
EndpointID string `json:"endpoint_id,omitempty" db:"endpoint_id"`
DeviceID string `json:"device_id" db:"device_id"`
SubscriptionID string `json:"subscription_id,omitempty" db:"subscription_id"`
Headers httpheader.HTTPHeader `json:"headers" db:"headers"`
Endpoint *Endpoint `json:"endpoint_metadata,omitempty" db:"endpoint_metadata"`
Event *Event `json:"event_metadata,omitempty" db:"event_metadata"`
Source *Source `json:"source_metadata,omitempty" db:"source_metadata"`
Device *Device `json:"device_metadata,omitempty" db:"device_metadata"`
DeliveryAttempts DeliveryAttempts `json:"-" db:"attempts"`
Status EventDeliveryStatus `json:"status" db:"status"`
Metadata *Metadata `json:"metadata" db:"metadata"`
CLIMetadata *CLIMetadata `json:"cli_metadata" db:"cli_metadata"`
Description string `json:"description,omitempty" db:"description"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
EventDelivery defines a payload to be sent to an endpoint
type EventDeliveryFilter ¶ added in v0.6.0
type EventDeliveryRepository ¶
type EventDeliveryRepository interface {
CreateEventDelivery(context.Context, *EventDelivery) error
FindEventDeliveryByID(ctx context.Context, projectID string, id string) (*EventDelivery, error)
FindEventDeliveriesByIDs(ctx context.Context, projectID string, ids []string) ([]EventDelivery, error)
FindEventDeliveriesByEventID(ctx context.Context, projectID string, id string) ([]EventDelivery, error)
CountDeliveriesByStatus(ctx context.Context, projectID string, status EventDeliveryStatus, params SearchParams) (int64, error)
UpdateStatusOfEventDelivery(ctx context.Context, projectID string, eventDelivery EventDelivery, status EventDeliveryStatus) error
UpdateStatusOfEventDeliveries(ctx context.Context, projectID string, ids []string, status EventDeliveryStatus) error
FindDiscardedEventDeliveries(ctx context.Context, projectID, deviceId string, params SearchParams) ([]EventDelivery, error)
UpdateEventDeliveryWithAttempt(ctx context.Context, projectID string, eventDelivery EventDelivery, attempt DeliveryAttempt) error
CountEventDeliveries(ctx context.Context, projectID string, endpointIDs []string, eventID string, status []EventDeliveryStatus, params SearchParams) (int64, error)
DeleteProjectEventDeliveries(ctx context.Context, projectID string, filter *EventDeliveryFilter, hardDelete bool) error
LoadEventDeliveriesPaged(ctx context.Context, projectID string, endpointIDs []string, eventID string, status []EventDeliveryStatus, params SearchParams, pageable Pageable) ([]EventDelivery, PaginationData, error)
LoadEventDeliveriesIntervals(ctx context.Context, projectID string, params SearchParams, period Period, interval int) ([]EventInterval, error)
}
type EventDeliveryStatus ¶
type EventDeliveryStatus string
const ( // ScheduledEventStatus : when an Event has been scheduled for delivery ScheduledEventStatus EventDeliveryStatus = "Scheduled" ProcessingEventStatus EventDeliveryStatus = "Processing" DiscardedEventStatus EventDeliveryStatus = "Discarded" FailureEventStatus EventDeliveryStatus = "Failure" SuccessEventStatus EventDeliveryStatus = "Success" RetryEventStatus EventDeliveryStatus = "Retry" )
func (EventDeliveryStatus) IsValid ¶ added in v0.4.10
func (e EventDeliveryStatus) IsValid() bool
type EventFilter ¶ added in v0.6.0
type EventInterval ¶
type EventInterval struct {
Data EventIntervalData `json:"data" db:"data"`
Count uint64 `json:"count" db:"count"`
}
type EventIntervalData ¶
type EventRepository ¶
type EventRepository interface {
CreateEvent(context.Context, *Event) error
FindEventByID(ctx context.Context, projectID string, id string) (*Event, error)
FindEventsByIDs(ctx context.Context, projectID string, ids []string) ([]Event, error)
CountProjectMessages(ctx context.Context, projectID string) (int64, error)
CountEvents(ctx context.Context, projectID string, f *Filter) (int64, error)
LoadEventsPaged(ctx context.Context, projectID string, f *Filter) ([]Event, PaginationData, error)
DeleteProjectEvents(ctx context.Context, projectID string, f *EventFilter, hardDelete bool) error
}
type EventType ¶
type EventType string
EventType is used to identify a specific event. This could be "user.new" This will be used for data indexing Makes it easy to filter by a list of events
type ExportRepository ¶ added in v0.9.0
type Filter ¶ added in v0.5.0
type Filter struct {
Query string
Project *Project
EndpointID string
EndpointIDs []string
EventID string
SourceID string
Pageable Pageable
Status []EventDeliveryStatus
SearchParams SearchParams
}
type FilterBy ¶ added in v0.6.5
type FilterBy struct {
EndpointID string
EndpointIDs []string
ProjectID string
SourceID string
SearchParams SearchParams
}
type FilterConfiguration ¶ added in v0.6.0
type FilterConfiguration struct {
EventTypes pq.StringArray `json:"event_types" db:"event_types"`
Filter FilterSchema `json:"filter" db:"filter"`
}
type FilterSchema ¶ added in v0.8.0
type GooglePubSubConfig ¶ added in v0.9.0
type HMac ¶ added in v0.6.0
type HMac struct {
Header string `json:"header" db:"header" valid:"required"`
Hash string `json:"hash" db:"hash" valid:"supported_hash,required"`
Secret string `json:"secret" db:"secret" valid:"required"`
Encoding EncodingType `json:"encoding" db:"encoding" valid:"supported_encoding~please provide a valid encoding type,required"`
}
type HttpHeader ¶
func (HttpHeader) SetHeadersInRequest ¶ added in v0.6.0
func (h HttpHeader) SetHeadersInRequest(r *http.Request)
type InviteStatus ¶ added in v0.6.0
type InviteStatus string
const ( InviteStatusAccepted InviteStatus = "accepted" InviteStatusDeclined InviteStatus = "declined" InviteStatusPending InviteStatus = "pending" InviteStatusCancelled InviteStatus = "cancelled" )
func (InviteStatus) String ¶ added in v0.6.0
func (i InviteStatus) String() string
type Metadata ¶
type Metadata struct {
// Data to be sent to endpoint.
Data json.RawMessage `json:"data" bson:"data"`
Raw string `json:"raw" bson:"raw"`
Strategy StrategyProvider `json:"strategy" bson:"strategy"`
NextSendTime time.Time `json:"next_send_time" bson:"next_send_time"`
// NumTrials: number of times we have tried to deliver this Event to
// an application
NumTrials uint64 `json:"num_trials" bson:"num_trials"`
IntervalSeconds uint64 `json:"interval_seconds" bson:"interval_seconds"`
RetryLimit uint64 `json:"retry_limit" bson:"retry_limit"`
}
type OnPremStorage ¶ added in v0.6.0
type OnPremStorage struct {
Path null.String `json:"path" db:"path"`
}
type Organisation ¶ added in v0.6.0
type Organisation struct {
UID string `json:"uid" db:"id"`
OwnerID string `json:"" db:"owner_id"`
Name string `json:"name" db:"name"`
CustomDomain null.String `json:"custom_domain" db:"custom_domain"`
AssignedDomain null.String `json:"assigned_domain" db:"assigned_domain"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
type OrganisationInvite ¶ added in v0.6.0
type OrganisationInvite struct {
UID string `json:"uid" db:"id"`
OrganisationID string `json:"organisation_id" db:"organisation_id"`
OrganisationName string `json:"organisation_name,omitempty" db:"-"`
InviteeEmail string `json:"invitee_email" db:"invitee_email"`
Token string `json:"token" db:"token"`
Role auth.Role `json:"role" db:"role"`
Status InviteStatus `json:"status" db:"status"`
ExpiresAt time.Time `json:"-" db:"expires_at"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
type OrganisationInviteRepository ¶ added in v0.6.0
type OrganisationInviteRepository interface {
LoadOrganisationsInvitesPaged(ctx context.Context, orgID string, inviteStatus InviteStatus, pageable Pageable) ([]OrganisationInvite, PaginationData, error)
CreateOrganisationInvite(ctx context.Context, iv *OrganisationInvite) error
UpdateOrganisationInvite(ctx context.Context, iv *OrganisationInvite) error
DeleteOrganisationInvite(ctx context.Context, uid string) error
FetchOrganisationInviteByID(ctx context.Context, uid string) (*OrganisationInvite, error)
FetchOrganisationInviteByToken(ctx context.Context, token string) (*OrganisationInvite, error)
}
type OrganisationMember ¶ added in v0.6.0
type OrganisationMember struct {
UID string `json:"uid" db:"id"`
OrganisationID string `json:"organisation_id" db:"organisation_id"`
UserID string `json:"user_id" db:"user_id"`
Role auth.Role `json:"role" db:"role"`
UserMetadata UserMetadata `json:"user_metadata" db:"user_metadata"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
type OrganisationMemberRepository ¶ added in v0.6.0
type OrganisationMemberRepository interface {
LoadOrganisationMembersPaged(ctx context.Context, organisationID string, pageable Pageable) ([]*OrganisationMember, PaginationData, error)
LoadUserOrganisationsPaged(ctx context.Context, userID string, pageable Pageable) ([]Organisation, PaginationData, error)
FindUserProjects(ctx context.Context, userID string) ([]Project, error)
CreateOrganisationMember(ctx context.Context, member *OrganisationMember) error
UpdateOrganisationMember(ctx context.Context, member *OrganisationMember) error
DeleteOrganisationMember(ctx context.Context, memberID string, orgID string) error
FetchOrganisationMemberByID(ctx context.Context, memberID string, organisationID string) (*OrganisationMember, error)
FetchOrganisationMemberByUserID(ctx context.Context, userID string, organisationID string) (*OrganisationMember, error)
}
type OrganisationRepository ¶ added in v0.6.0
type OrganisationRepository interface {
LoadOrganisationsPaged(context.Context, Pageable) ([]Organisation, PaginationData, error)
CreateOrganisation(context.Context, *Organisation) error
UpdateOrganisation(context.Context, *Organisation) error
DeleteOrganisation(context.Context, string) error
FetchOrganisationByID(context.Context, string) (*Organisation, error)
FetchOrganisationByCustomDomain(context.Context, string) (*Organisation, error)
FetchOrganisationByAssignedDomain(context.Context, string) (*Organisation, error)
}
type PageDirection ¶ added in v0.9.0
type PageDirection string
const Next PageDirection = "next"
const Prev PageDirection = "prev"
type Pageable ¶
type Pageable struct {
PerPage int `json:"per_page"`
Direction PageDirection `json:"direction"`
PrevCursor string `json:"prev_page_cursor"`
NextCursor string `json:"next_page_cursor"`
}
type PaginationData ¶
type PaginationData struct {
PrevRowCount PrevRowCount `json:"-"`
PerPage int64 `json:"per_page"`
HasNextPage bool `json:"has_next_page"`
HasPreviousPage bool `json:"has_prev_page"`
PrevPageCursor string `json:"prev_page_cursor"`
NextPageCursor string `json:"next_page_cursor"`
}
func (*PaginationData) Build ¶ added in v0.9.0
func (p *PaginationData) Build(pageable Pageable, items []string) *PaginationData
type Password ¶ added in v0.6.0
func (*Password) GenerateHash ¶ added in v0.6.0
type PortalLink ¶ added in v0.8.0
type PortalLink struct {
UID string `json:"uid" db:"id"`
Name string `json:"name" db:"name"`
ProjectID string `json:"project_id" db:"project_id"`
Token string `json:"-" db:"token"`
Endpoints pq.StringArray `json:"endpoints" db:"endpoints"`
EndpointsMetadata EndpointMetadata `json:"endpoints_metadata" db:"endpoints_metadata"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at,omitempty" swaggertype:"string"`
}
type PortalLinkRepository ¶ added in v0.8.0
type PortalLinkRepository interface {
CreatePortalLink(context.Context, *PortalLink) error
UpdatePortalLink(ctx context.Context, projectID string, portal *PortalLink) error
FindPortalLinkByID(ctx context.Context, projectID string, id string) (*PortalLink, error)
FindPortalLinkByToken(ctx context.Context, token string) (*PortalLink, error)
LoadPortalLinksPaged(ctx context.Context, projectID string, f *FilterBy, pageable Pageable) ([]PortalLink, PaginationData, error)
RevokePortalLink(ctx context.Context, projectID string, id string) error
}
type PrevRowCount ¶ added in v0.9.0
type PrevRowCount struct {
Count int
}
type Project ¶ added in v0.8.0
type Project struct {
UID string `json:"uid" db:"id"`
Name string `json:"name" db:"name"`
LogoURL string `json:"logo_url" db:"logo_url"`
OrganisationID string `json:"organisation_id" db:"organisation_id"`
ProjectConfigID string `json:"-" db:"project_configuration_id"`
Type ProjectType `json:"type" db:"type"`
Config *ProjectConfig `json:"config" db:"config"`
Statistics *ProjectStatistics `json:"statistics" db:"statistics"`
RetainedEvents int `json:"retained_events" db:"retained_events"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
type ProjectConfig ¶ added in v0.8.0
type ProjectConfig struct {
MaxIngestSize uint64 `json:"max_payload_read_size" db:"max_payload_read_size"`
ReplayAttacks bool `json:"replay_attacks_prevention_enabled" db:"replay_attacks_prevention_enabled"`
IsRetentionPolicyEnabled bool `json:"retention_policy_enabled" db:"retention_policy_enabled"`
DisableEndpoint bool `json:"disable_endpoint" db:"disable_endpoint"`
RetentionPolicy *RetentionPolicyConfiguration `json:"retention_policy" db:"retention_policy"`
RateLimit *RateLimitConfiguration `json:"ratelimit" db:"ratelimit"`
Strategy *StrategyConfiguration `json:"strategy" db:"strategy"`
Signature *SignatureConfiguration `json:"signature" db:"signature"`
}
func (*ProjectConfig) GetRateLimitConfig ¶ added in v0.9.0
func (p *ProjectConfig) GetRateLimitConfig() RateLimitConfiguration
func (*ProjectConfig) GetRetentionPolicyConfig ¶ added in v0.9.0
func (p *ProjectConfig) GetRetentionPolicyConfig() RetentionPolicyConfiguration
func (*ProjectConfig) GetSignatureConfig ¶ added in v0.9.0
func (p *ProjectConfig) GetSignatureConfig() SignatureConfiguration
func (*ProjectConfig) GetStrategyConfig ¶ added in v0.9.0
func (p *ProjectConfig) GetStrategyConfig() StrategyConfiguration
type ProjectFilter ¶ added in v0.8.0
type ProjectFilter struct {
OrgID string `json:"org_id" bson:"org_id"`
}
type ProjectMetadata ¶ added in v0.8.0
type ProjectMetadata struct {
RetainedEvents int `json:"retained_events" bson:"retained_events"`
}
type ProjectRepository ¶ added in v0.8.0
type ProjectRepository interface {
LoadProjects(context.Context, *ProjectFilter) ([]*Project, error)
CreateProject(context.Context, *Project) error
UpdateProject(context.Context, *Project) error
DeleteProject(ctx context.Context, uid string) error
FetchProjectByID(context.Context, string) (*Project, error)
FillProjectsStatistics(ctx context.Context, project *Project) error
}
type ProjectStatistics ¶ added in v0.8.0
type ProjectStatistics struct {
MessagesSent int64 `json:"messages_sent" db:"messages_sent"`
TotalEndpoints int64 `json:"total_endpoints" db:"total_endpoints"`
TotalSubscriptions int64 `json:"total_subscriptions" db:"total_subscriptions"`
TotalSources int64 `json:"total_sources" db:"total_sources"`
}
type ProjectType ¶ added in v0.8.0
type ProjectType string
const ( OutgoingProject ProjectType = "outgoing" IncomingProject ProjectType = "incoming" )
type ProviderConfig ¶ added in v0.6.0
type ProviderConfig struct {
Twitter *TwitterProviderConfig `json:"twitter" db:"twitter"`
}
type PubSubConfig ¶ added in v0.9.0
type PubSubConfig struct {
Type PubSubType `json:"type" db:"type"`
Workers int `json:"workers" db:"workers"`
Sqs *SQSPubSubConfig `json:"sqs" db:"sqs"`
Google *GooglePubSubConfig `json:"google" db:"google"`
}
func (*PubSubConfig) Scan ¶ added in v0.9.0
func (p *PubSubConfig) Scan(value interface{}) error
type PubSubHandler ¶ added in v0.9.0
type PubSubType ¶ added in v0.9.0
type PubSubType string
const ( SqsPubSub PubSubType = "sqs" GooglePubSub PubSubType = "google" )
type RateLimitConfiguration ¶ added in v0.6.0
type RetentionPolicyConfiguration ¶ added in v0.6.0
type RetentionPolicyConfiguration struct {
Policy string `json:"policy" db:"policy" valid:"required~please provide a valid retention policy"`
}
type RetryConfiguration ¶ added in v0.6.0
type RetryConfiguration struct {
Type StrategyProvider `json:"type,omitempty" db:"type" valid:"supported_retry_strategy~please provide a valid retry strategy type"`
Duration uint64 `json:"duration,omitempty" db:"duration" valid:"duration~please provide a valid time duration"`
RetryCount uint64 `json:"retry_count" db:"retry_count" valid:"int~please provide a valid retry count"`
}
type S3Storage ¶ added in v0.6.0
type S3Storage struct {
Bucket null.String `json:"bucket" db:"bucket" valid:"required~please provide a bucket name"`
AccessKey null.String `json:"access_key,omitempty" db:"access_key" valid:"required~please provide an access key"`
SecretKey null.String `json:"secret_key,omitempty" db:"secret_key" valid:"required~please provide a secret key"`
Region null.String `json:"region,omitempty" db:"region"`
SessionToken null.String `json:"session_token" db:"session_token"`
Endpoint null.String `json:"endpoint,omitempty" db:"endpoint"`
}
type SQSPubSubConfig ¶ added in v0.9.0
type SearchFilter ¶ added in v0.6.5
type SearchParams ¶
type Secret ¶ added in v0.7.2
type Secret struct {
UID string `json:"uid" db:"id"`
Value string `json:"value" db:"value"`
ExpiresAt null.Time `json:"expires_at,omitempty" db:"expires_at,omitempty" swaggertype:"string"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
type SignatureConfiguration ¶
type SignatureConfiguration struct {
Hash string `json:"-" db:"hash"` // Deprecated
Header config.SignatureHeaderProvider `json:"header,omitempty" valid:"required~please provide a valid signature header"`
Versions SignatureVersions `json:"versions" db:"versions"`
}
func GetDefaultSignatureConfig ¶ added in v0.7.2
func GetDefaultSignatureConfig() *SignatureConfiguration
type SignatureVersion ¶ added in v0.7.2
type SignatureVersion struct {
UID string `json:"uid" db:"id"`
Hash string `json:"hash,omitempty" db:"hash" valid:"required~please provide a valid hash,supported_hash~unsupported hash type"`
Encoding EncodingType `json:"encoding" db:"encoding" valid:"required~please provide a valid signature header"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at" swaggertype:"string"`
}
type SignatureVersions ¶ added in v0.9.0
type SignatureVersions []SignatureVersion
func (*SignatureVersions) Scan ¶ added in v0.9.0
func (s *SignatureVersions) Scan(v interface{}) error
type Source ¶ added in v0.6.0
type Source struct {
UID string `json:"uid" db:"id"`
ProjectID string `json:"project_id" db:"project_id"`
MaskID string `json:"mask_id" db:"mask_id"`
Name string `json:"name" db:"name"`
URL string `json:"url" db:"-"`
Type SourceType `json:"type" db:"type"`
Provider SourceProvider `json:"provider" db:"provider"`
IsDisabled bool `json:"is_disabled" db:"is_disabled"`
VerifierID string `json:"-" db:"source_verifier_id"`
Verifier *VerifierConfig `json:"verifier" db:"verifier"`
ProviderConfig *ProviderConfig `json:"provider_config" db:"provider_config"`
ForwardHeaders pq.StringArray `json:"forward_headers" db:"forward_headers"`
PubSub *PubSubConfig `json:"pub_sub" db:"pub_sub"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
type SourceFilter ¶ added in v0.6.0
type SourceProvider ¶ added in v0.6.0
type SourceProvider string
const ( GithubSourceProvider SourceProvider = "github" TwitterSourceProvider SourceProvider = "twitter" ShopifySourceProvider SourceProvider = "shopify" )
func (SourceProvider) IsValid ¶ added in v0.7.0
func (s SourceProvider) IsValid() bool
type SourceRepository ¶ added in v0.6.0
type SourceRepository interface {
CreateSource(context.Context, *Source) error
UpdateSource(ctx context.Context, projectID string, source *Source) error
FindSourceByID(ctx context.Context, projectID string, id string) (*Source, error)
FindSourceByName(ctx context.Context, projectId string, name string) (*Source, error)
FindSourceByMaskID(ctx context.Context, maskID string) (*Source, error)
DeleteSourceByID(ctx context.Context, projectID string, id string, sourceVerifierID string) error
LoadSourcesPaged(ctx context.Context, projectID string, filter *SourceFilter, pageable Pageable) ([]Source, PaginationData, error)
}
type SourceType ¶ added in v0.6.0
type SourceType string
const ( HTTPSource SourceType = "http" RestApiSource SourceType = "rest_api" PubSubSource SourceType = "pub_sub" DBChangeStream SourceType = "db_change_stream" )
func (SourceType) IsValid ¶ added in v0.7.0
func (s SourceType) IsValid() bool
type StoragePolicyConfiguration ¶ added in v0.6.0
type StoragePolicyConfiguration struct {
Type StorageType `json:"type,omitempty" db:"type" valid:"supported_storage~please provide a valid storage type,required"`
S3 *S3Storage `json:"s3" db:"s3"`
OnPrem *OnPremStorage `json:"on_prem" db:"on_prem"`
}
type StorageType ¶ added in v0.6.0
type StorageType string
const ( S3 StorageType = "s3" OnPrem StorageType = "on_prem" )
type StrategyConfiguration ¶
type StrategyConfiguration struct {
Type StrategyProvider `json:"type" db:"type" valid:"optional~please provide a valid strategy type, in(linear|exponential)~unsupported strategy type"`
Duration uint64 `json:"duration" db:"duration" valid:"optional~please provide a valid duration in seconds,int"`
RetryCount uint64 `json:"retry_count" db:"retry_count" valid:"optional~please provide a valid retry count,int"`
}
type StrategyProvider ¶ added in v0.6.0
type StrategyProvider string
const ( DefaultStrategyProvider = LinearStrategyProvider LinearStrategyProvider StrategyProvider = "linear" ExponentialStrategyProvider StrategyProvider = "exponential" )
type Subscription ¶ added in v0.6.0
type Subscription struct {
UID string `json:"uid" db:"id"`
Name string `json:"name" db:"name"`
Type SubscriptionType `json:"type" db:"type"`
ProjectID string `json:"-" db:"project_id"`
SourceID string `json:"-" db:"source_id"`
EndpointID string `json:"-" db:"endpoint_id"`
DeviceID string `json:"-" db:"device_id"`
Source *Source `json:"source_metadata" db:"source_metadata"`
Endpoint *Endpoint `json:"endpoint_metadata" db:"endpoint_metadata"`
Device *Device `json:"device_metadata" db:"device_metadata"`
// subscription config
AlertConfig *AlertConfiguration `json:"alert_config,omitempty" db:"alert_config"`
RetryConfig *RetryConfiguration `json:"retry_config,omitempty" db:"retry_config"`
FilterConfig *FilterConfiguration `json:"filter_config,omitempty" db:"filter_config"`
RateLimitConfig *RateLimitConfiguration `json:"rate_limit_config,omitempty" db:"rate_limit_config"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
}
func (*Subscription) GetAlertConfig ¶ added in v0.9.0
func (s *Subscription) GetAlertConfig() AlertConfiguration
For DB access
func (*Subscription) GetFilterConfig ¶ added in v0.9.0
func (s *Subscription) GetFilterConfig() FilterConfiguration
func (*Subscription) GetRateLimitConfig ¶ added in v0.9.0
func (s *Subscription) GetRateLimitConfig() RateLimitConfiguration
func (*Subscription) GetRetryConfig ¶ added in v0.9.0
func (s *Subscription) GetRetryConfig() RetryConfiguration
type SubscriptionRepository ¶ added in v0.6.0
type SubscriptionRepository interface {
CreateSubscription(context.Context, string, *Subscription) error
UpdateSubscription(ctx context.Context, projectID string, subscription *Subscription) error
LoadSubscriptionsPaged(ctx context.Context, projectID string, filter *FilterBy, pageable Pageable) ([]Subscription, PaginationData, error)
DeleteSubscription(ctx context.Context, projectID string, subscription *Subscription) error
FindSubscriptionByID(ctx context.Context, projectID, id string) (*Subscription, error)
FindSubscriptionsBySourceID(ctx context.Context, projectID, sourceID string) ([]Subscription, error)
FindSubscriptionsByEndpointID(ctx context.Context, projectId string, endpointID string) ([]Subscription, error)
FindSubscriptionByDeviceID(ctx context.Context, projectId string, deviceID string, subscriptionType SubscriptionType) (*Subscription, error)
FindCLISubscriptions(ctx context.Context, projectID string) ([]Subscription, error)
TestSubscriptionFilter(ctx context.Context, payload map[string]interface{}, filter map[string]interface{}) (bool, error)
}
type SubscriptionType ¶ added in v0.7.0
type SubscriptionType string
const ( SubscriptionTypeCLI SubscriptionType = "cli" SubscriptionTypeAPI SubscriptionType = "api" )
type TwitterProviderConfig ¶ added in v0.6.0
type TwitterProviderConfig struct {
CrcVerifiedAt null.Time `json:"crc_verified_at" db:"crc_verified_at"`
}
type User ¶ added in v0.6.0
type User struct {
UID string `json:"uid" db:"id"`
FirstName string `json:"first_name" db:"first_name"`
LastName string `json:"last_name" db:"last_name"`
Email string `json:"email" db:"email"`
EmailVerified bool `json:"email_verified" db:"email_verified"`
Password string `json:"-" db:"password"`
ResetPasswordToken string `json:"-" db:"reset_password_token"`
EmailVerificationToken string `json:"-" db:"email_verification_token"`
CreatedAt time.Time `json:"created_at,omitempty" db:"created_at,omitempty" swaggertype:"string"`
UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at,omitempty" swaggertype:"string"`
DeletedAt null.Time `json:"deleted_at,omitempty" db:"deleted_at" swaggertype:"string"`
ResetPasswordExpiresAt time.Time `json:"reset_password_expires_at,omitempty" db:"reset_password_expires_at,omitempty" swaggertype:"string"`
EmailVerificationExpiresAt time.Time `json:"-" db:"email_verification_expires_at,omitempty" swaggertype:"string"`
}
type UserMetadata ¶ added in v0.6.0
type UserRepository ¶ added in v0.6.0
type UserRepository interface {
CreateUser(context.Context, *User) error
UpdateUser(ctx context.Context, user *User) error
FindUserByEmail(context.Context, string) (*User, error)
FindUserByID(context.Context, string) (*User, error)
FindUserByToken(context.Context, string) (*User, error)
FindUserByEmailVerificationToken(ctx context.Context, token string) (*User, error)
LoadUsersPaged(context.Context, Pageable) ([]User, PaginationData, error)
}
type VerifierConfig ¶ added in v0.6.0
type VerifierConfig struct {
Type VerifierType `json:"type,omitempty" db:"type" valid:"supported_verifier~please provide a valid verifier type"`
HMac *HMac `json:"hmac" db:"hmac"`
BasicAuth *BasicAuth `json:"basic_auth" db:"basic_auth"`
ApiKey *ApiKey `json:"api_key" db:"api_key"`
}
type VerifierType ¶ added in v0.6.0
type VerifierType string
const ( NoopVerifier VerifierType = "noop" HMacVerifier VerifierType = "hmac" BasicAuthVerifier VerifierType = "basic_auth" APIKeyVerifier VerifierType = "api_key" )
Click to show internal directories.
Click to hide internal directories.