Port Brave Sync server to Rust
Use SQLite for persistence and generate Rust protobuf bindings at build time. Add Docker image support for containerized deployment. Co-Authored-By: codex <[email protected]>
This commit is contained in:
commit
28826af88d
93 files changed
+11666
No files matched your search
@@ -0,0 +1,113 @@
|
||||
// Copyright 2022 The Chromium Authors
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
//
|
||||
// Sync protocol datatype extension for segmentations.
|
||||
|
||||
// If you change or add any fields in this file, update proto_visitors.h and
|
||||
// potentially proto_enum_conversions.{h, cc}.
|
||||
|
||||
syntax = "proto2";
|
||||
|
||||
option go_package = "./sync_pb";
|
||||
|
||||
option java_multiple_files = true;
|
||||
option java_package = "org.chromium.components.sync.protocol";
|
||||
|
||||
option optimize_for = LITE_RUNTIME;
|
||||
|
||||
package sync_pb;
|
||||
|
||||
// Sync data proto for storing segmentation data. Keyed by the combination of
|
||||
// cache_guid (a Sync client id) and segmentation key.
|
||||
//
|
||||
// The segmentation platform is a platform that uses intelligence and machine
|
||||
// learning to guide developers for building purpose-built user experience for
|
||||
// specific segments of users. See go/chrome-segmentation for more details.
|
||||
message SegmentationSpecifics {
|
||||
// The selected segment by the segmentation scheme.
|
||||
message SegmentSelectionResult {
|
||||
// The string ID that refers to the segment the user was assigned to, e.g.,
|
||||
// 'highly_engaged_user'.
|
||||
optional string selected_segment = 1;
|
||||
|
||||
// Expiry time of selection result. Represents time from windows epoch in
|
||||
// seconds. Expired results are ignored by clients.
|
||||
optional int64 expiry_time_windows_epoch_seconds = 2;
|
||||
|
||||
// Time when the segmentation data is updated. Used to weigh results by
|
||||
// recency. Represents time from windows epoch in seconds.
|
||||
optional int64 last_updated_time_windows_epoch_seconds = 3;
|
||||
}
|
||||
|
||||
// Metadata about the client device as used by the segmentation platform.
|
||||
message DeviceMetadata {
|
||||
// The cache_guid created to identify a sync client on this device.
|
||||
// Reuses the same Sync guid.
|
||||
optional string cache_guid = 1;
|
||||
|
||||
enum PlatformType {
|
||||
PLATFORM_TYPE_UNSPECIFIED = 0;
|
||||
PLATFORM_WINDOWS = 1;
|
||||
PLATFORM_MAC = 2;
|
||||
PLATFORM_LINUX = 3;
|
||||
PLATFORM_CHROMEOS_ASH = 4;
|
||||
PLATFORM_ANDROID = 5;
|
||||
PLATFORM_IOS = 6;
|
||||
PLATFORM_CHROMEOS_LACROS = 7;
|
||||
}
|
||||
|
||||
// The OS platform of the device.
|
||||
optional PlatformType platform_type = 2;
|
||||
}
|
||||
|
||||
// Model execution data including segment scores and related metadata, e.g.,
|
||||
// model version.
|
||||
message ModelExecutionData {
|
||||
// Output of model.
|
||||
message ModelOutput {
|
||||
// When outputting multiple scores from a single model, this is the
|
||||
// segment label for each output.
|
||||
optional string label = 1;
|
||||
|
||||
// Raw segment scores provided by the ML model or the heuristic model.
|
||||
// The score is derived based on a combination of UMA histograms,
|
||||
// user actions or UKM and URLs visited. The score can be treated as a
|
||||
// probability of the user liking a feature, like feed, or NTP.
|
||||
optional float score = 2;
|
||||
|
||||
// A rank defined by the segmentation scheme.
|
||||
optional int32 rank = 3;
|
||||
}
|
||||
|
||||
// A string ID that identifies a model.
|
||||
optional string model_id = 1;
|
||||
|
||||
// A model may output one or multiple scores, one score for each segment
|
||||
// label.
|
||||
repeated ModelOutput model_outputs = 2;
|
||||
|
||||
// Timestamp when the ML model was executed.
|
||||
// Represents time from windows epoch in seconds.
|
||||
optional int64 execution_time_windows_epoch_seconds = 3;
|
||||
|
||||
// Expiry timestamp for the model scores.
|
||||
// Represents time from windows epoch in seconds.
|
||||
optional int64 score_expiry_time_windows_epoch_seconds = 4;
|
||||
|
||||
// The version of the ML model that was run.
|
||||
optional int32 model_version = 5;
|
||||
}
|
||||
|
||||
// The key used to identify the type of segmentation associated with a
|
||||
// feature, e.g. 'user_engagement'.
|
||||
optional string segmentation_key = 1;
|
||||
|
||||
optional SegmentSelectionResult segment_selection_result = 2;
|
||||
|
||||
optional DeviceMetadata device_metadata = 3;
|
||||
|
||||
// One or more model execution data associated with each segment for the
|
||||
// segmentation key.
|
||||
repeated ModelExecutionData model_execution_data = 4;
|
||||
}
|
||||
Reference in new issue
Block a user