Documentation
¶
Overview ¶
Package columns provides generic column implementations for session data tracking.
Index ¶
- Constants
- Variables
- func AlwaysNilEventColumn(id schema.InterfaceID, field *arrow.Field, options ...EventColumnOptions) schema.EventColumn
- func CastToBool(columnID schema.InterfaceID) func(any) (any, error)
- func CastToFloat64OrNil(columnID schema.InterfaceID) func(any) (any, error)
- func CastToInt64OrNil(columnID schema.InterfaceID) func(any) (any, error)
- func CastToInt64OrZero(columnID schema.InterfaceID) func(any) (any, error)
- func CastToString(_ schema.InterfaceID) func(any) (any, error)
- func FromPageURLEventColumn(id schema.InterfaceID, field *arrow.Field, utmTag string, ...) schema.EventColumn
- func FromQueryParamEventColumn(id schema.InterfaceID, field *arrow.Field, queryParam string, ...) schema.EventColumn
- func FromQueryParamSessionColumn(id schema.InterfaceID, field *arrow.Field, queryParam string, ...) schema.SessionColumn
- func GetAllCoreColumns() []schema.Interface
- func NewSimpleEventColumn(id schema.InterfaceID, field *arrow.Field, ...) schema.EventColumn
- func NewSimpleSessionColumn(id schema.InterfaceID, field *arrow.Field, ...) schema.SessionColumn
- func NewSimpleSessionScopedEventColumn(id schema.InterfaceID, field *arrow.Field, ...) schema.SessionScopedEventColumn
- func NewValueTransitionColumn(id schema.InterfaceID, field *arrow.Field, chainFieldName string, ...) schema.SessionScopedEventColumn
- func NilIfError(i func(any) (any, error)) func(any) (any, error)
- func NthEventMatchingPredicateValueColumn(columnID schema.InterfaceID, field *arrow.Field, n int, extractedField string, ...) schema.SessionColumn
- func StrErrIfEmpty(ifID schema.InterfaceID) func(any) (any, error)
- func StrNilIfErrorOrEmpty(i func(any) (any, error)) func(any) (any, error)
- func TransitionAdvanceWhenEventNameIs(targetEventName string) func(event *schema.Event) bool
- func URLElementColumn(id schema.InterfaceID, field *arrow.Field, ...) schema.EventColumn
- type BrokenEventError
- type BrokenSessionError
- type EventColumnOptions
- func WithEventColumnCast(castFunc func(any) (any, error)) EventColumnOptions
- func WithEventColumnDependsOn(dependsOn ...schema.DependsOnEntry) EventColumnOptions
- func WithEventColumnDocs(displayName, description string) EventColumnOptions
- func WithEventColumnRequired(required bool) EventColumnOptions
- type SessionColumnOptions
- func WithSessionColumnCast(castFunc func(any) (any, error)) SessionColumnOptions
- func WithSessionColumnDependsOn(dependsOn ...schema.DependsOnEntry) SessionColumnOptions
- func WithSessionColumnDocs(displayName, description string) SessionColumnOptions
- func WithSessionColumnRequired(required bool) SessionColumnOptions
- type SessionScopedEventColumnOptions
- func WithSessionScopedEventColumnCast(castFunc func(any) (any, error)) SessionScopedEventColumnOptions
- func WithSessionScopedEventColumnDependsOn(dependsOn ...schema.DependsOnEntry) SessionScopedEventColumnOptions
- func WithSessionScopedEventColumnDocs(displayName, description string) SessionScopedEventColumnOptions
- func WithSessionScopedEventColumnRequired(required bool) SessionScopedEventColumnOptions
- type TransitionAdvanceFunction
- type TransitionDirection
- type TransitionTransformerFunction
Constants ¶
const ( // EventPlatformWeb is a const value for core.d8a.tech/events/platform for events // received using web trackers EventPlatformWeb = "web" // EventPlatformMobile is a const value for core.d8a.tech/events/platform for events // received using mobile trackers EventPlatformMobile = "mobile" // EventPlatformServer is a const value for core.d8a.tech/events/platform for events // received using server trackers EventPlatformServer = "server" )
Variables ¶
var CoreInterfaces = struct { EventID schema.Interface EventName schema.Interface EventTimestampUTC schema.Interface EventDateUTC schema.Interface EventPageTitle schema.Interface EventPageReferrer schema.Interface EventPagePath schema.Interface EventPageLocation schema.Interface EventPageHostname schema.Interface EventClientID schema.Interface EventUserID schema.Interface EventPropertyID schema.Interface EventTrackingProtocol schema.Interface EventPlatform schema.Interface EventIPAddress schema.Interface EventUtmMarketingTactic schema.Interface EventUtmSourcePlatform schema.Interface EventUtmTerm schema.Interface EventUtmContent schema.Interface EventUtmSource schema.Interface EventUtmMedium schema.Interface EventUtmCampaign schema.Interface EventUtmID schema.Interface EventUtmCreativeFormat schema.Interface // Click ids EventClickIDGclid schema.Interface EventClickIDDclid schema.Interface EventClickIDSrsltid schema.Interface EventClickIDGbraid schema.Interface EventClickIDWbraid schema.Interface EventClickIDMsclkid schema.Interface // Device DeviceCategory schema.Interface DeviceMobileBrandName schema.Interface DeviceMobileModelName schema.Interface DeviceOperatingSystem schema.Interface DeviceOperatingSystemVersion schema.Interface DeviceLanguage schema.Interface DeviceWebBrowser schema.Interface DeviceWebBrowserVersion schema.Interface // Geo GeoContinent schema.Interface GeoCountry schema.Interface GeoRegion schema.Interface GeoCity schema.Interface GeoSubContinent schema.Interface GeoMetro schema.Interface // Session-scoped event columns SSESessionHitNumber schema.Interface SSESessionPageNumber schema.Interface SSEIsEntry schema.Interface // Session columns SessionID schema.Interface SessionDuration schema.Interface SessionFirstEventTime schema.Interface SessionLastEventTime schema.Interface SessionTotalEvents schema.Interface SessionReferer schema.Interface SessionEntryPageLocation schema.Interface SessionExitPageLocation schema.Interface SessionEntryPageTitle schema.Interface SessionExitPageTitle schema.Interface SessionSecondPageLocation schema.Interface SessionSecondPageTitle schema.Interface }{ EventID: schema.Interface{ ID: "core.d8a.tech/events/id", Version: "1.0.0", Field: &arrow.Field{Name: "id", Type: arrow.BinaryTypes.String}, }, EventName: schema.Interface{ ID: "core.d8a.tech/events/name", Version: "1.0.0", Field: &arrow.Field{Name: "name", Type: arrow.BinaryTypes.String}, }, EventTimestampUTC: schema.Interface{ ID: "core.d8a.tech/events/timestamp_utc", Version: "1.0.0", Field: &arrow.Field{Name: "timestamp_utc", Type: arrow.FixedWidthTypes.Timestamp_s}, }, EventDateUTC: schema.Interface{ ID: "core.d8a.tech/events/date_utc", Version: "1.0.0", Field: &arrow.Field{Name: "date_utc", Type: arrow.FixedWidthTypes.Date32}, }, EventPageTitle: schema.Interface{ ID: "core.d8a.tech/events/page_title", Version: "1.0.0", Field: &arrow.Field{Name: "page_title", Type: arrow.BinaryTypes.String}, }, EventPageReferrer: schema.Interface{ ID: "core.d8a.tech/events/page_referrer", Version: "1.0.0", Field: &arrow.Field{Name: "page_referrer", Type: arrow.BinaryTypes.String}, }, EventPagePath: schema.Interface{ ID: "core.d8a.tech/events/page_path", Version: "1.0.0", Field: &arrow.Field{Name: "page_path", Type: arrow.BinaryTypes.String}, }, EventPageLocation: schema.Interface{ ID: "core.d8a.tech/events/page_location", Version: "1.0.0", Field: &arrow.Field{Name: "page_location", Type: arrow.BinaryTypes.String}, }, EventPageHostname: schema.Interface{ ID: "core.d8a.tech/events/page_hostname", Version: "1.0.0", Field: &arrow.Field{Name: "page_hostname", Type: arrow.BinaryTypes.String}, }, EventClientID: schema.Interface{ ID: "core.d8a.tech/events/client_id", Version: "1.0.0", Field: &arrow.Field{Name: "client_id", Type: arrow.BinaryTypes.String}, }, EventUserID: schema.Interface{ ID: "core.d8a.tech/events/user_id", Version: "1.0.0", Field: &arrow.Field{Name: "user_id", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventTrackingProtocol: schema.Interface{ ID: "core.d8a.tech/events/tracking_protocol", Version: "1.0.0", Field: &arrow.Field{Name: "tracking_protocol", Type: arrow.BinaryTypes.String}, }, EventPropertyID: schema.Interface{ ID: "core.d8a.tech/events/property_id", Version: "1.0.0", Field: &arrow.Field{Name: "property_id", Type: arrow.BinaryTypes.String}, }, EventPlatform: schema.Interface{ ID: "core.d8a.tech/events/platform", Version: "1.0.0", Field: &arrow.Field{Name: "platform", Type: arrow.BinaryTypes.String}, }, EventIPAddress: schema.Interface{ ID: "core.d8a.tech/events/ip_address", Version: "1.0.0", Field: &arrow.Field{Name: "ip_address", Type: arrow.BinaryTypes.String}, }, EventUtmMarketingTactic: schema.Interface{ ID: "core.d8a.tech/events/utm_marketing_tactic", Version: "1.0.0", Field: &arrow.Field{Name: "utm_marketing_tactic", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventUtmSourcePlatform: schema.Interface{ ID: "core.d8a.tech/events/utm_source_platform", Version: "1.0.0", Field: &arrow.Field{Name: "utm_source_platform", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventUtmTerm: schema.Interface{ ID: "core.d8a.tech/events/utm_term", Version: "1.0.0", Field: &arrow.Field{Name: "utm_term", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventUtmContent: schema.Interface{ ID: "core.d8a.tech/events/utm_content", Version: "1.0.0", Field: &arrow.Field{Name: "utm_content", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventUtmSource: schema.Interface{ ID: "core.d8a.tech/events/utm_source", Version: "1.0.0", Field: &arrow.Field{Name: "utm_source", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventUtmMedium: schema.Interface{ ID: "core.d8a.tech/events/utm_medium", Version: "1.0.0", Field: &arrow.Field{Name: "utm_medium", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventUtmCampaign: schema.Interface{ ID: "core.d8a.tech/events/utm_campaign", Version: "1.0.0", Field: &arrow.Field{Name: "utm_campaign", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventUtmID: schema.Interface{ ID: "core.d8a.tech/events/utm_id", Version: "1.0.0", Field: &arrow.Field{Name: "utm_id", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventUtmCreativeFormat: schema.Interface{ ID: "core.d8a.tech/events/utm_creative_format", Version: "1.0.0", Field: &arrow.Field{Name: "utm_creative_format", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventClickIDGclid: schema.Interface{ ID: "core.d8a.tech/events/click_id_gclid", Version: "1.0.0", Field: &arrow.Field{Name: "click_id_gclid", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventClickIDDclid: schema.Interface{ ID: "core.d8a.tech/events/click_id_dclid", Version: "1.0.0", Field: &arrow.Field{Name: "click_id_dclid", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventClickIDSrsltid: schema.Interface{ ID: "core.d8a.tech/events/click_id_srsltid", Version: "1.0.0", Field: &arrow.Field{Name: "click_id_srsltid", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventClickIDGbraid: schema.Interface{ ID: "core.d8a.tech/events/click_id_gbraid", Version: "1.0.0", Field: &arrow.Field{Name: "click_id_gbraid", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventClickIDWbraid: schema.Interface{ ID: "core.d8a.tech/events/click_id_wbraid", Version: "1.0.0", Field: &arrow.Field{Name: "click_id_wbraid", Type: arrow.BinaryTypes.String, Nullable: true}, }, EventClickIDMsclkid: schema.Interface{ ID: "core.d8a.tech/events/click_id_msclkid", Version: "1.0.0", Field: &arrow.Field{Name: "click_id_msclkid", Type: arrow.BinaryTypes.String, Nullable: true}, }, DeviceCategory: schema.Interface{ ID: "core.d8a.tech/events/device_category", Version: "1.0.0", Field: &arrow.Field{Name: "device_category", Type: arrow.BinaryTypes.String, Nullable: true}, }, DeviceMobileBrandName: schema.Interface{ ID: "core.d8a.tech/events/device_mobile_brand_name", Version: "1.0.0", Field: &arrow.Field{Name: "device_mobile_brand_name", Type: arrow.BinaryTypes.String, Nullable: true}, }, DeviceMobileModelName: schema.Interface{ ID: "core.d8a.tech/events/device_mobile_model_name", Version: "1.0.0", Field: &arrow.Field{Name: "device_mobile_model_name", Type: arrow.BinaryTypes.String, Nullable: true}, }, DeviceOperatingSystem: schema.Interface{ ID: "core.d8a.tech/events/device_operating_system", Version: "1.0.0", Field: &arrow.Field{Name: "device_operating_system", Type: arrow.BinaryTypes.String, Nullable: true}, }, DeviceOperatingSystemVersion: schema.Interface{ ID: "core.d8a.tech/events/device_operating_system_version", Version: "1.0.0", Field: &arrow.Field{Name: "device_operating_system_version", Type: arrow.BinaryTypes.String, Nullable: true}, }, DeviceLanguage: schema.Interface{ ID: "core.d8a.tech/events/device_language", Version: "1.0.0", Field: &arrow.Field{Name: "device_language", Type: arrow.BinaryTypes.String, Nullable: true}, }, DeviceWebBrowser: schema.Interface{ ID: "core.d8a.tech/events/device_web_browser", Version: "1.0.0", Field: &arrow.Field{Name: "device_web_browser", Type: arrow.BinaryTypes.String, Nullable: true}, }, DeviceWebBrowserVersion: schema.Interface{ ID: "core.d8a.tech/events/device_web_browser_version", Version: "1.0.0", Field: &arrow.Field{Name: "device_web_browser_version", Type: arrow.BinaryTypes.String, Nullable: true}, }, GeoContinent: schema.Interface{ ID: "core.d8a.tech/events/geo_continent", Version: "1.0.0", Field: &arrow.Field{Name: "geo_continent", Type: arrow.BinaryTypes.String, Nullable: true}, }, GeoCountry: schema.Interface{ ID: "core.d8a.tech/events/geo_country", Version: "1.0.0", Field: &arrow.Field{Name: "geo_country", Type: arrow.BinaryTypes.String, Nullable: true}, }, GeoRegion: schema.Interface{ ID: "core.d8a.tech/events/geo_region", Version: "1.0.0", Field: &arrow.Field{Name: "geo_region", Type: arrow.BinaryTypes.String, Nullable: true}, }, GeoCity: schema.Interface{ ID: "core.d8a.tech/events/geo_city", Version: "1.0.0", Field: &arrow.Field{Name: "geo_city", Type: arrow.BinaryTypes.String, Nullable: true}, }, GeoSubContinent: schema.Interface{ ID: "core.d8a.tech/events/geo_sub_continent", Version: "1.0.0", Field: &arrow.Field{Name: "geo_sub_continent", Type: arrow.BinaryTypes.String, Nullable: true}, }, GeoMetro: schema.Interface{ ID: "core.d8a.tech/events/geo_metro", Version: "1.0.0", Field: &arrow.Field{Name: "geo_metro", Type: arrow.BinaryTypes.String, Nullable: true}, }, SSESessionHitNumber: schema.Interface{ ID: "core.d8a.tech/events/session_hit_number", Version: "1.0.0", Field: &arrow.Field{Name: "session_hit_number", Type: arrow.PrimitiveTypes.Int64, Nullable: true}, }, SSESessionPageNumber: schema.Interface{ ID: "core.d8a.tech/events/session_page_number", Version: "1.0.0", Field: &arrow.Field{Name: "session_page_number", Type: arrow.PrimitiveTypes.Int64, Nullable: true}, }, SSEIsEntry: schema.Interface{ ID: "core.d8a.tech/events/session_is_entry", Version: "1.0.0", Field: &arrow.Field{Name: "session_is_entry", Type: arrow.FixedWidthTypes.Boolean, Nullable: true}, }, SessionID: schema.Interface{ ID: "core.d8a.tech/sessions/id", Version: "1.0.0", Field: &arrow.Field{Name: "session_id", Type: arrow.BinaryTypes.String}, }, SessionDuration: schema.Interface{ ID: "core.d8a.tech/sessions/duration", Version: "1.0.0", Field: &arrow.Field{Name: "session_duration", Type: arrow.PrimitiveTypes.Int64, Nullable: true}, }, SessionFirstEventTime: schema.Interface{ ID: "core.d8a.tech/sessions/first_event_time", Version: "1.0.0", Field: &arrow.Field{Name: "session_first_event_time", Type: arrow.FixedWidthTypes.Timestamp_s, Nullable: true}, }, SessionLastEventTime: schema.Interface{ ID: "core.d8a.tech/sessions/last_event_time", Version: "1.0.0", Field: &arrow.Field{Name: "session_last_event_time", Type: arrow.FixedWidthTypes.Timestamp_s, Nullable: true}, }, SessionTotalEvents: schema.Interface{ ID: "core.d8a.tech/sessions/total_events", Version: "1.0.0", Field: &arrow.Field{Name: "session_total_events", Type: arrow.PrimitiveTypes.Int64, Nullable: true}, }, SessionReferer: schema.Interface{ ID: "core.d8a.tech/sessions/referer", Version: "1.0.0", Field: &arrow.Field{Name: "session_referer", Type: arrow.BinaryTypes.String, Nullable: true}, }, SessionEntryPageLocation: schema.Interface{ ID: "core.d8a.tech/sessions/entry_page_location", Version: "1.0.0", Field: &arrow.Field{Name: "session_entry_page_location", Type: arrow.BinaryTypes.String, Nullable: true}, }, SessionExitPageLocation: schema.Interface{ ID: "core.d8a.tech/sessions/exit_page_location", Version: "1.0.0", Field: &arrow.Field{Name: "session_exit_page_location", Type: arrow.BinaryTypes.String, Nullable: true}, }, SessionEntryPageTitle: schema.Interface{ ID: "core.d8a.tech/sessions/entry_page_title", Version: "1.0.0", Field: &arrow.Field{Name: "session_entry_page_title", Type: arrow.BinaryTypes.String, Nullable: true}, }, SessionExitPageTitle: schema.Interface{ ID: "core.d8a.tech/sessions/exit_page_title", Version: "1.0.0", Field: &arrow.Field{Name: "session_exit_page_title", Type: arrow.BinaryTypes.String, Nullable: true}, }, SessionSecondPageLocation: schema.Interface{ ID: "core.d8a.tech/sessions/second_page_location", Version: "1.0.0", Field: &arrow.Field{Name: "session_second_page_location", Type: arrow.BinaryTypes.String, Nullable: true}, }, SessionSecondPageTitle: schema.Interface{ ID: "core.d8a.tech/sessions/second_page_title", Version: "1.0.0", Field: &arrow.Field{Name: "session_second_page_title", Type: arrow.BinaryTypes.String, Nullable: true}, }, }
CoreInterfaces are the core columns that are always present in the schema.
Functions ¶
func AlwaysNilEventColumn ¶ added in v0.6.0
func AlwaysNilEventColumn( id schema.InterfaceID, field *arrow.Field, options ...EventColumnOptions, ) schema.EventColumn
AlwaysNilEventColumn creates a new event column that always returns nil
func CastToBool ¶
func CastToBool(columnID schema.InterfaceID) func(any) (any, error)
CastToBool casts a value to bool considering various truthy representations
func CastToFloat64OrNil ¶
func CastToFloat64OrNil(columnID schema.InterfaceID) func(any) (any, error)
CastToFloat64OrNil casts a value to float64 or returns nil if conversion fails or value is empty
func CastToInt64OrNil ¶
func CastToInt64OrNil(columnID schema.InterfaceID) func(any) (any, error)
CastToInt64OrNil casts a value to int64 or returns nil if conversion fails or value is empty
func CastToInt64OrZero ¶
func CastToInt64OrZero(columnID schema.InterfaceID) func(any) (any, error)
CastToInt64OrZero casts a value to int64 or returns 0 if conversion fails or value is empty
func CastToString ¶
func CastToString(_ schema.InterfaceID) func(any) (any, error)
CastToString casts a value to string or returns nil if conversion fails
func FromPageURLEventColumn ¶
func FromPageURLEventColumn( id schema.InterfaceID, field *arrow.Field, utmTag string, options ...EventColumnOptions, ) schema.EventColumn
FromPageURLEventColumn creates a new event column from a UTM tag
func FromQueryParamEventColumn ¶
func FromQueryParamEventColumn( id schema.InterfaceID, field *arrow.Field, queryParam string, options ...EventColumnOptions, ) schema.EventColumn
FromQueryParamEventColumn creates a new event column from a query param
func FromQueryParamSessionColumn ¶
func FromQueryParamSessionColumn( id schema.InterfaceID, field *arrow.Field, queryParam string, options ...SessionColumnOptions, ) schema.SessionColumn
FromQueryParamSessionColumn creates a new session column from a query param
func GetAllCoreColumns ¶
GetAllCoreColumns returns a slice of all core column interfaces for easy consumption.
func NewSimpleEventColumn ¶
func NewSimpleEventColumn( id schema.InterfaceID, field *arrow.Field, getValue func(*schema.Event) (any, error), options ...EventColumnOptions, ) schema.EventColumn
NewSimpleEventColumn creates a new simple event column with the given configuration
func NewSimpleSessionColumn ¶
func NewSimpleSessionColumn( id schema.InterfaceID, field *arrow.Field, getValue func(*schema.Session) (any, error), options ...SessionColumnOptions, ) schema.SessionColumn
NewSimpleSessionColumn creates a new simple session column with the given configuration
func NewSimpleSessionScopedEventColumn ¶ added in v0.2.0
func NewSimpleSessionScopedEventColumn( id schema.InterfaceID, field *arrow.Field, getValue func(*schema.Session, int) (any, error), options ...SessionScopedEventColumnOptions, ) schema.SessionScopedEventColumn
NewSimpleSessionScopedEventColumn creates a new session-scoped event column with the given configuration
func NewValueTransitionColumn ¶ added in v0.9.0
func NewValueTransitionColumn( id schema.InterfaceID, field *arrow.Field, chainFieldName string, advance TransitionAdvanceFunction, direction TransitionDirection, options ...SessionScopedEventColumnOptions, ) schema.SessionScopedEventColumn
NewValueTransitionColumn creates a session-scoped event column that calculates values by looking to find the closest event where the value differs from the current one. For example, previous_page_url or previous_page_title: if multiple consecutive events have the same page URL/title, it returns the value from the closest previous event that had a different value, not the immediately previous event.
func NilIfError ¶
NilIfError returns nil if the error is not nil
func NthEventMatchingPredicateValueColumn ¶ added in v0.9.0
func NthEventMatchingPredicateValueColumn( columnID schema.InterfaceID, field *arrow.Field, n int, extractedField string, matches func(*schema.Event) bool, options ...SessionColumnOptions, ) schema.SessionColumn
NthEventMatchingPredicateValueColumn creates a session column that extracts a value from the nth event that matches the given predicate. This allows protocol-specific filtering (e.g., only page view events). Supports negative indices to count from the end (e.g., -1 for last matching event).
func StrErrIfEmpty ¶
func StrErrIfEmpty(ifID schema.InterfaceID) func(any) (any, error)
StrErrIfEmpty casts a value to string or returns an error if conversion fails or value is empty
func StrNilIfErrorOrEmpty ¶
StrNilIfErrorOrEmpty returns nil if the error is not nil or the value is an empty string
func TransitionAdvanceWhenEventNameIs ¶ added in v0.9.0
TransitionAdvanceWhenEventNameIs returns a function that checks if an event has the specified event name.
func URLElementColumn ¶ added in v0.2.0
func URLElementColumn( id schema.InterfaceID, field *arrow.Field, getValue func(e *schema.Event, url *url.URL) (any, error), options ...EventColumnOptions, ) schema.EventColumn
URLElementColumn creates a new event column from a URL element
Types ¶
type BrokenEventError ¶
type BrokenEventError struct {
// contains filtered or unexported fields
}
BrokenEventError is an error that occurs when an event doesn't have
all required information in order to be processed.
func NewBrokenEventError ¶
func NewBrokenEventError(message string) *BrokenEventError
NewBrokenEventError creates a new BrokenEventError.
func (*BrokenEventError) Error ¶
func (e *BrokenEventError) Error() string
type BrokenSessionError ¶
type BrokenSessionError struct {
// contains filtered or unexported fields
}
BrokenSessionError is an error that occurs when a session is invalid.
func NewBrokenSessionError ¶
func NewBrokenSessionError(message string) *BrokenSessionError
NewBrokenSessionError creates a new InvalidSessionError.
func (*BrokenSessionError) Error ¶
func (e *BrokenSessionError) Error() string
type EventColumnOptions ¶
type EventColumnOptions func(*simpleEventColumn)
EventColumnOptions configures a simple event column
func WithEventColumnCast ¶
func WithEventColumnCast(castFunc func(any) (any, error)) EventColumnOptions
WithEventColumnCast sets the cast function for an event column
func WithEventColumnDependsOn ¶
func WithEventColumnDependsOn(dependsOn ...schema.DependsOnEntry) EventColumnOptions
WithEventColumnDependsOn sets the dependencies for an event column
func WithEventColumnDocs ¶ added in v0.9.0
func WithEventColumnDocs(displayName, description string) EventColumnOptions
WithEventColumnDocs sets the documentation for an event column
func WithEventColumnRequired ¶
func WithEventColumnRequired(required bool) EventColumnOptions
WithEventColumnRequired sets whether an event column is required
type SessionColumnOptions ¶
type SessionColumnOptions func(*simpleSessionColumn)
SessionColumnOptions configures a simple session column
func WithSessionColumnCast ¶
func WithSessionColumnCast(castFunc func(any) (any, error)) SessionColumnOptions
WithSessionColumnCast sets the cast function for a session column
func WithSessionColumnDependsOn ¶
func WithSessionColumnDependsOn(dependsOn ...schema.DependsOnEntry) SessionColumnOptions
WithSessionColumnDependsOn sets the dependencies for a session column
func WithSessionColumnDocs ¶ added in v0.9.0
func WithSessionColumnDocs(displayName, description string) SessionColumnOptions
WithSessionColumnDocs sets the documentation for a session column
func WithSessionColumnRequired ¶
func WithSessionColumnRequired(required bool) SessionColumnOptions
WithSessionColumnRequired sets whether a session column is required
type SessionScopedEventColumnOptions ¶ added in v0.2.0
type SessionScopedEventColumnOptions func(*simpleSessionScopedEventColumn)
SessionScopedEventColumnOptions configures a simple session-scoped event column
func WithSessionScopedEventColumnCast ¶ added in v0.2.0
func WithSessionScopedEventColumnCast(castFunc func(any) (any, error)) SessionScopedEventColumnOptions
WithSessionScopedEventColumnCast sets the cast function for a session-scoped event column
func WithSessionScopedEventColumnDependsOn ¶ added in v0.2.0
func WithSessionScopedEventColumnDependsOn(dependsOn ...schema.DependsOnEntry) SessionScopedEventColumnOptions
WithSessionScopedEventColumnDependsOn sets the dependencies for a session-scoped event column
func WithSessionScopedEventColumnDocs ¶ added in v0.9.0
func WithSessionScopedEventColumnDocs(displayName, description string) SessionScopedEventColumnOptions
WithSessionScopedEventColumnDocs sets the documentation for a session-scoped event column
func WithSessionScopedEventColumnRequired ¶ added in v0.2.0
func WithSessionScopedEventColumnRequired(required bool) SessionScopedEventColumnOptions
WithSessionScopedEventColumnRequired sets whether a session-scoped event column is required
type TransitionAdvanceFunction ¶ added in v0.9.0
TransitionAdvanceFunction allows setting constraints for TransitionColumns
type TransitionDirection ¶ added in v0.9.0
type TransitionDirection bool
TransitionDirection specifies the direction of the transition
const ( // TransitionDirectionForward specifies the forward direction of the transition TransitionDirectionForward TransitionDirection = false // TransitionDirectionBackward specifies the backward direction of the transition TransitionDirectionBackward TransitionDirection = true )
type TransitionTransformerFunction ¶ added in v0.9.0
type TransitionTransformerFunction func([]string)
TransitionTransformerFunction allows transforming the consecutive values chain
Directories
¶
| Path | Synopsis |
|---|---|
|
nolint
|
nolint |
|
Package eventcolumns provides column implementations for event data tracking.
|
Package eventcolumns provides column implementations for event data tracking. |
|
Package sessioncolumns provides column implementations for session data tracking.
|
Package sessioncolumns provides column implementations for session data tracking. |