spanneradapters

package
v0.0.0-...-ece0338 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 20, 2025 License: Apache-2.0 Imports: 21 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrFailedToStoreEnum indicates the storage layer failed to store chromium enum.
	ErrFailedToStoreEnum = errors.New("failed to store chromium enum")
	// ErrFailedToStoreEnumValue indicates the storage layer failed to store chromium enum value.
	ErrFailedToStoreEnumValue = errors.New("failed to store chromium enum value")
	// ErrFailedToStoreEnumValueWebFeatureMapping indicates the storage layer failed to store
	// the mapping between enum value and web feature.
	ErrFailedToStoreEnumValueWebFeatureMapping = errors.New(
		"failed to store web feature to chromium enum value mapping")
	// ErrFailedToGetFeatureKeys indicates an internal error when trying to get all the feature keys.
	ErrFailedToGetFeatureKeys = errors.New("failed to get feature keys")
)
View Source
var (
	// ErrCapstoneLookupFailed indicates an internal error trying to find the capstone.
	ErrCapstoneLookupFailed = errors.New("failed to look up capstone")

	// ErrCapstoneSaveFailed indicates an internal error trying to save the capstone.
	ErrCapstoneSaveFailed = errors.New("failed to save capstone")

	// ErrMetricsSaveFailed indicates an internal error trying to save the metrics.
	ErrMetricsSaveFailed = errors.New("failed to save metrics")

	// ErrInvalidRate indicates an internal error when parsing the rate.
	ErrInvalidRate = errors.New("invalid rate")
)

Functions

func NewWPTRun

func NewWPTRun(testRun shared.TestRun) gcpspanner.WPTRun

NewWPTRun creates a gcpspanner WPTRun from the incoming TestRun from wpt.fyi.

Types

type BCDConsumer

type BCDConsumer struct {
	// contains filtered or unexported fields
}

BCDConsumer is the adapter that takes data from the BCD workflow and prepares it to be stored in the spanner database.

func NewBCDWorkflowConsumer

func NewBCDWorkflowConsumer(client BCDWorkflowSpannerClient) *BCDConsumer

NewBCDWorkflowConsumer constructs an adapter for the bcd consumer service.

func (*BCDConsumer) InsertBrowserReleases

func (b *BCDConsumer) InsertBrowserReleases(ctx context.Context, releases []bcdconsumertypes.BrowserRelease) error

type BCDWorkflowSpannerClient

type BCDWorkflowSpannerClient interface {
	InsertBrowserRelease(ctx context.Context, release gcpspanner.BrowserRelease) error
}

BCDWorkflowSpannerClient expects a subset of the functionality from lib/gcpspanner that only apply to inserting BCD data.

type Backend

type Backend struct {
	// contains filtered or unexported fields
}

Backend converts queries to spanner to usable entities for the backend service.

func NewBackend

func NewBackend(client BackendSpannerClient) *Backend

NewBackend constructs an adapter for the backend service.

func (*Backend) CreateUserSavedSearch

func (s *Backend) CreateUserSavedSearch(ctx context.Context, userID string,
	savedSearch backend.SavedSearch) (*backend.SavedSearchResponse, error)

func (*Backend) DeleteUserSavedSearch

func (s *Backend) DeleteUserSavedSearch(ctx context.Context, userID, savedSearchID string) error

func (*Backend) FeaturesSearch

func (s *Backend) FeaturesSearch(
	ctx context.Context,
	pageToken *string,
	pageSize int,
	searchNode *searchtypes.SearchNode,
	sortOrder *backend.ListFeaturesParamsSort,
	wptMetricView backend.WPTMetricView,
	browsers []backend.BrowserPathParam,
) (*backend.FeaturePage, error)

func (*Backend) GetFeature

func (s *Backend) GetFeature(
	ctx context.Context,
	featureID string,
	wptMetricView backend.WPTMetricView,
	browsers []backend.BrowserPathParam,
) (*backendtypes.GetFeatureResult, error)

func (*Backend) GetIDFromFeatureKey

func (s *Backend) GetIDFromFeatureKey(
	ctx context.Context,
	featureID string,
) (*string, error)

func (*Backend) GetSavedSearch

func (s *Backend) GetSavedSearch(ctx context.Context, savedSearchID string, userID *string) (
	*backend.SavedSearchResponse, error)

func (*Backend) ListBaselineStatusCounts

func (s *Backend) ListBaselineStatusCounts(
	ctx context.Context,
	startAt time.Time,
	endAt time.Time,
	pageSize int,
	pageToken *string,
) (*backend.BaselineStatusMetricsPage, error)

func (*Backend) ListBrowserFeatureCountMetric

func (s *Backend) ListBrowserFeatureCountMetric(
	ctx context.Context,
	targetBrowser string,
	targetMobileBrowser *string,
	startAt time.Time,
	endAt time.Time,
	pageSize int,
	pageToken *string,
) (*backend.BrowserReleaseFeatureMetricsPage, error)

func (*Backend) ListChromeDailyUsageStats

func (s *Backend) ListChromeDailyUsageStats(
	ctx context.Context,
	featureID string,
	startAt, endAt time.Time,
	pageSize int,
	pageToken *string,
) ([]backend.ChromeUsageStat, *string, error)

func (*Backend) ListMetricsForFeatureIDBrowserAndChannel

func (s *Backend) ListMetricsForFeatureIDBrowserAndChannel(
	ctx context.Context,
	featureID string,
	browser string,
	channel string,
	metricView backend.MetricViewPathParam,
	startAt, endAt time.Time,
	pageSize int,
	pageToken *string,
) ([]backend.WPTRunMetric, *string, error)

func (*Backend) ListMetricsOverTimeWithAggregatedTotals

func (s *Backend) ListMetricsOverTimeWithAggregatedTotals(
	ctx context.Context,
	featureIDs []string,
	browser string,
	channel string,
	metricView backend.MetricViewPathParam,
	startAt, endAt time.Time,
	pageSize int,
	pageToken *string,
) ([]backend.WPTRunMetric, *string, error)

func (*Backend) ListMissingOneImplCounts

func (s *Backend) ListMissingOneImplCounts(
	ctx context.Context,
	targetBrowser string,
	targetMobileBrowser *string,
	otherBrowsers []string,
	startAt, endAt time.Time,
	pageSize int,
	pageToken *string,
) (*backend.BrowserReleaseFeatureMetricsPage, error)

func (*Backend) ListMissingOneImplementationFeatures

func (s *Backend) ListMissingOneImplementationFeatures(
	ctx context.Context,
	targetBrowser string,
	targetMobileBrowser *string,
	otherBrowsers []string,
	targetDate time.Time,
	pageSize int,
	pageToken *string,
) (*backend.MissingOneImplFeaturesPage, error)

func (*Backend) ListUserSavedSearches

func (s *Backend) ListUserSavedSearches(
	ctx context.Context,
	userID string,
	pageSize int,
	pageToken *string,
) (*backend.UserSavedSearchPage, error)

func (*Backend) PutUserSavedSearchBookmark

func (s *Backend) PutUserSavedSearchBookmark(
	ctx context.Context,
	userID string,
	savedSearchID string,
) error

func (*Backend) RemoveUserSavedSearchBookmark

func (s *Backend) RemoveUserSavedSearchBookmark(
	ctx context.Context,
	userID string,
	savedSearchID string,
) error

func (*Backend) UpdateUserSavedSearch

func (s *Backend) UpdateUserSavedSearch(
	ctx context.Context,
	savedSearchID string,
	userID string,
	updateRequest *backend.SavedSearchUpdateRequest,
) (*backend.SavedSearchResponse, error)

type BackendSpannerClient

type BackendSpannerClient interface {
	ListMetricsForFeatureIDBrowserAndChannel(
		ctx context.Context,
		featureID string,
		browser string,
		channel string,
		metric gcpspanner.WPTMetricView,
		startAt time.Time,
		endAt time.Time,
		pageSize int,
		pageToken *string,
	) ([]gcpspanner.WPTRunFeatureMetricWithTime, *string, error)
	ListMetricsOverTimeWithAggregatedTotals(
		ctx context.Context,
		featureIDs []string,
		browser string,
		channel string,
		metric gcpspanner.WPTMetricView,
		startAt, endAt time.Time,
		pageSize int,
		pageToken *string,
	) ([]gcpspanner.WPTRunAggregationMetricWithTime, *string, error)
	ListChromeDailyUsageStatsForFeatureID(
		ctx context.Context,
		featureID string,
		startAt, endAt time.Time,
		pageSize int,
		pageToken *string,
	) ([]gcpspanner.ChromeDailyUsageStatWithDate, *string, error)
	FeaturesSearch(
		ctx context.Context,
		pageToken *string,
		pageSize int,
		searchNode *searchtypes.SearchNode,
		sortOrder gcpspanner.Sortable,
		wptMetricView gcpspanner.WPTMetricView,
		browsers []string,
	) (*gcpspanner.FeatureResultPage, error)
	GetFeature(
		ctx context.Context,
		filter gcpspanner.Filterable,
		wptMetricView gcpspanner.WPTMetricView,
		browsers []string,
	) (*gcpspanner.FeatureResult, error)
	GetMovedWebFeatureDetailsByOriginalFeatureKey(
		ctx context.Context,
		featureKey string,
	) (*gcpspanner.MovedWebFeature, error)
	GetSplitWebFeatureByOriginalFeatureKey(
		ctx context.Context,
		featureKey string,
	) (*gcpspanner.SplitWebFeature, error)
	GetIDFromFeatureKey(
		ctx context.Context,
		filter *gcpspanner.FeatureIDFilter,
	) (*string, error)
	ListBrowserFeatureCountMetric(
		ctx context.Context,
		targetBrowser string,
		targetMobileBrowser *string,
		startAt time.Time,
		endAt time.Time,
		pageSize int,
		pageToken *string,
	) (*gcpspanner.BrowserFeatureCountResultPage, error)
	ListMissingOneImplCounts(
		ctx context.Context,
		targetBrowser string,
		targetMobileBrowser *string,
		otherBrowsers []string,
		startAt time.Time,
		endAt time.Time,
		pageSize int,
		pageToken *string,
	) (*gcpspanner.MissingOneImplCountPage, error)
	ListMissingOneImplementationFeatures(
		ctx context.Context,
		targetBrowser string,
		targetMobileBrowser *string,
		otherBrowsers []string,
		targetDate time.Time,
		pageSize int,
		pageToken *string,
	) (*gcpspanner.MissingOneImplFeatureListPage, error)
	ListBaselineStatusCounts(
		ctx context.Context,
		dateType gcpspanner.BaselineDateType,
		startAt time.Time,
		endAt time.Time,
		pageSize int,
		pageToken *string,
	) (*gcpspanner.BaselineStatusCountResultPage, error)
	CreateNewUserSavedSearch(
		ctx context.Context,
		newSearch gcpspanner.CreateUserSavedSearchRequest) (*string, error)
	GetUserSavedSearch(
		ctx context.Context,
		savedSearchID string,
		authenticatedUserID *string) (*gcpspanner.UserSavedSearch, error)
	DeleteUserSavedSearch(ctx context.Context, req gcpspanner.DeleteUserSavedSearchRequest) error
	ListUserSavedSearches(
		ctx context.Context,
		userID string,
		pageSize int,
		pageToken *string) (*gcpspanner.UserSavedSearchesPage, error)
	UpdateUserSavedSearch(ctx context.Context, req gcpspanner.UpdateSavedSearchRequest) error
	AddUserSearchBookmark(ctx context.Context, req gcpspanner.UserSavedSearchBookmark) error
	DeleteUserSearchBookmark(ctx context.Context, req gcpspanner.UserSavedSearchBookmark) error
}

type BrowserList

type BrowserList []backend.BrowserPathParam

func (BrowserList) ToStringList

func (b BrowserList) ToStringList() []string

type ChromiumHistogramEnumConsumer

type ChromiumHistogramEnumConsumer struct {
	// contains filtered or unexported fields
}

ChromiumHistogramEnumConsumer handles the conversion of histogram between the workflow/API input format and the format used by the GCP Spanner client.

func NewChromiumHistogramEnumConsumer

func NewChromiumHistogramEnumConsumer(client ChromiumHistogramEnumsClient) *ChromiumHistogramEnumConsumer

NewChromiumHistogramEnumConsumer constructs an adapter for the chromium histogram enum consumer service.

func (*ChromiumHistogramEnumConsumer) SaveHistogramEnums

type ChromiumHistogramEnumsClient

type ChromiumHistogramEnumsClient interface {
	UpsertChromiumHistogramEnum(context.Context, gcpspanner.ChromiumHistogramEnum) (*string, error)
	UpsertChromiumHistogramEnumValue(context.Context, gcpspanner.ChromiumHistogramEnumValue) (*string, error)
	UpsertWebFeatureChromiumHistogramEnumValue(context.Context, gcpspanner.WebFeatureChromiumHistogramEnumValue) error
	GetIDFromFeatureKey(context.Context, *gcpspanner.FeatureIDFilter) (*string, error)
	FetchAllFeatureKeys(context.Context) ([]string, error)
}

ChromiumHistogramEnumsClient expects a subset of the functionality from lib/gcpspanner that only apply to Chromium Histograms.

type UMAMetricConsumer

type UMAMetricConsumer struct {
	// contains filtered or unexported fields
}

UMAMetricConsumer handles the conversion of histogram between the workflow/API input format and the format used by the GCP Spanner client.

func NewUMAMetricConsumer

func NewUMAMetricConsumer(client UMAMetricsClient) *UMAMetricConsumer

NewUMAMetricConsumer constructs an adapter for the uma metric export service.

func (*UMAMetricConsumer) HasCapstone

func (c *UMAMetricConsumer) HasCapstone(
	ctx context.Context,
	day civil.Date,
	histogramName metricdatatypes.HistogramName) (bool, error)

func (*UMAMetricConsumer) SaveCapstone

func (c *UMAMetricConsumer) SaveCapstone(
	ctx context.Context,
	day civil.Date,
	histogramName metricdatatypes.HistogramName) error

func (*UMAMetricConsumer) SaveMetrics

type UMAMetricsClient

type UMAMetricsClient interface {
	HasDailyChromiumHistogramCapstone(context.Context, gcpspanner.DailyChromiumHistogramEnumCapstone) (*bool, error)
	UpsertDailyChromiumHistogramCapstone(context.Context, gcpspanner.DailyChromiumHistogramEnumCapstone) error
	StoreDailyChromiumHistogramMetrics(context.Context,
		metricdatatypes.HistogramName,
		map[int64]gcpspanner.DailyChromiumHistogramMetric) error
	SyncLatestDailyChromiumHistogramMetrics(context.Context) error
}

UMAMetricsClient expects a subset of the functionality from lib/gcpspanner that only apply to Chromium Histograms.

type WPTConsumer

type WPTConsumer struct {
	// contains filtered or unexported fields
}

WPTConsumer is the adapter that takes data from the WPT workflow and prepares it to be stored in the spanner database.

func NewWPTWorkflowConsumer

func NewWPTWorkflowConsumer(client WPTWorkflowSpannerClient) *WPTConsumer

NewWPTWorkflowConsumer constructs an adapter for the wpt consumer service.

func (*WPTConsumer) InsertWPTRun

func (w *WPTConsumer) InsertWPTRun(ctx context.Context, in shared.TestRun) error

func (*WPTConsumer) UpsertWPTRunFeatureMetrics

func (w *WPTConsumer) UpsertWPTRunFeatureMetrics(
	ctx context.Context,
	runID int64,
	metricsPerFeature map[string]wptconsumertypes.WPTFeatureMetric) error

type WPTWorkflowSpannerClient

type WPTWorkflowSpannerClient interface {
	InsertWPTRun(ctx context.Context, run gcpspanner.WPTRun) error
	UpsertWPTRunFeatureMetrics(ctx context.Context, externalRunID int64,
		in map[string]gcpspanner.WPTRunFeatureMetric) error
}

WPTWorkflowSpannerClient expects a subset of the functionality from lib/gcpspanner that only apply to inserting WPT data.

type WebFeatureGroupConsumer

type WebFeatureGroupConsumer struct {
	// contains filtered or unexported fields
}

WebFeatureGroupConsumer handles the conversion of group data between the workflow/API input format and the format used by the GCP Spanner client.

func NewWebFeatureGroupsConsumer

func NewWebFeatureGroupsConsumer(client WebFeatureGroupsClient) *WebFeatureGroupConsumer

NewWebFeaturesConsumer constructs an adapter for the web features consumer service.

func (*WebFeatureGroupConsumer) InsertWebFeatureGroups

type WebFeatureGroupsClient

type WebFeatureGroupsClient interface {
	UpsertGroup(ctx context.Context, group gcpspanner.Group) (*string, error)
	UpsertFeatureGroupLookups(ctx context.Context,
		featureKeyToGroupsMapping map[string][]string, childGroupKeyToParentGroupKey map[string]string) error
}

WebFeatureGroupsClient expects a subset of the functionality from lib/gcpspanner that only apply to Groups.

type WebFeatureSnapshotConsumer

type WebFeatureSnapshotConsumer struct {
	// contains filtered or unexported fields
}

WebFeatureSnapshotConsumer handles the conversion of snapshot data between the workflow/API input format and the format used by the GCP Spanner client.

func NewWebFeatureSnapshotsConsumer

func NewWebFeatureSnapshotsConsumer(client WebFeatureSnapshotsClient) *WebFeatureSnapshotConsumer

NewWebFeatureSnapshotsConsumer constructs an adapter for the web feature snapshots consumer service.

func (*WebFeatureSnapshotConsumer) InsertWebFeatureSnapshots

func (c *WebFeatureSnapshotConsumer) InsertWebFeatureSnapshots(
	ctx context.Context,
	featureKeyToID map[string]string,
	featureData map[string]web_platform_dx__web_features.FeatureValue,
	snapshotData map[string]web_platform_dx__web_features.SnapshotData) error

type WebFeatureSnapshotsClient

type WebFeatureSnapshotsClient interface {
	UpsertSnapshot(ctx context.Context, snapshot gcpspanner.Snapshot) (*string, error)
	UpsertWebFeatureSnapshot(ctx context.Context, snapshot gcpspanner.WebFeatureSnapshot) error
}

WebFeatureSnapshotsClient expects a subset of the functionality from lib/gcpspanner that only apply to Snapshots.

type WebFeatureSpannerClient

type WebFeatureSpannerClient interface {
	SyncWebFeatures(ctx context.Context, features []gcpspanner.WebFeature) error
	FetchAllWebFeatureIDsAndKeys(ctx context.Context) ([]gcpspanner.SpannerFeatureIDAndKey, error)
	UpsertFeatureBaselineStatus(ctx context.Context, featureID string, status gcpspanner.FeatureBaselineStatus) error
	UpsertBrowserFeatureAvailability(
		ctx context.Context,
		featureID string,
		featureAvailability gcpspanner.BrowserFeatureAvailability) error
	UpsertFeatureSpec(ctx context.Context, webFeatureID string, input gcpspanner.FeatureSpec) error
	UpsertFeatureDiscouragedDetails(ctx context.Context, featureID string,
		in gcpspanner.FeatureDiscouragedDetails) error
	PrecalculateBrowserFeatureSupportEvents(ctx context.Context, startAt, endAt time.Time) error
	SyncMovedWebFeatures(ctx context.Context, features []gcpspanner.MovedWebFeature) error
	SyncSplitWebFeatures(ctx context.Context, features []gcpspanner.SplitWebFeature) error
}

WebFeatureSpannerClient expects a subset of the functionality from lib/gcpspanner that only apply to WebFeatures.

type WebFeaturesConsumer

type WebFeaturesConsumer struct {
	// contains filtered or unexported fields
}

WebFeaturesConsumer handles the conversion of web feature data between the workflow/API input format and the format used by the GCP Spanner client.

func NewWebFeaturesConsumer

func NewWebFeaturesConsumer(client WebFeatureSpannerClient) *WebFeaturesConsumer

NewWebFeaturesConsumer constructs an adapter for the web features consumer service.

func (*WebFeaturesConsumer) InsertMovedWebFeatures

func (*WebFeaturesConsumer) InsertSplitWebFeatures

func (*WebFeaturesConsumer) InsertWebFeatures

func (c *WebFeaturesConsumer) InsertWebFeatures(
	ctx context.Context,
	data map[string]web_platform_dx__web_features.FeatureValue,
	startAt, endAt time.Time) (map[string]string, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL