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,189 @@
|
||||
// Copyright 2021 The Chromium Authors
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
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;
|
||||
|
||||
import "encryption.proto";
|
||||
import "app_list_specifics.proto";
|
||||
import "app_setting_specifics.proto";
|
||||
import "app_specifics.proto";
|
||||
import "arc_package_specifics.proto";
|
||||
import "autofill_specifics.proto";
|
||||
import "autofill_offer_specifics.proto";
|
||||
import "autofill_wallet_credential_specifics.proto";
|
||||
import "autofill_wallet_usage_specifics.proto";
|
||||
import "bookmark_specifics.proto";
|
||||
import "collaboration_group_specifics.proto";
|
||||
import "compare_specifics.proto";
|
||||
import "contact_info_specifics.proto";
|
||||
import "device_info_specifics.proto";
|
||||
import "dictionary_specifics.proto";
|
||||
import "experiments_specifics.proto";
|
||||
import "extension_setting_specifics.proto";
|
||||
import "extension_specifics.proto";
|
||||
import "favicon_image_specifics.proto";
|
||||
import "favicon_tracking_specifics.proto";
|
||||
import "history_delete_directive_specifics.proto";
|
||||
import "history_specifics.proto";
|
||||
import "managed_user_setting_specifics.proto";
|
||||
import "managed_user_shared_setting_specifics.proto";
|
||||
import "nigori_specifics.proto";
|
||||
import "os_preference_specifics.proto";
|
||||
import "os_priority_preference_specifics.proto";
|
||||
import "password_sharing_invitation_specifics.proto";
|
||||
import "password_specifics.proto";
|
||||
import "plus_address_specifics.proto";
|
||||
import "power_bookmark_specifics.proto";
|
||||
import "preference_specifics.proto";
|
||||
import "printer_specifics.proto";
|
||||
import "printers_authorization_server_specifics.proto";
|
||||
import "priority_preference_specifics.proto";
|
||||
import "reading_list_specifics.proto";
|
||||
import "saved_tab_group_specifics.proto";
|
||||
import "search_engine_specifics.proto";
|
||||
import "security_event_specifics.proto";
|
||||
import "send_tab_to_self_specifics.proto";
|
||||
import "segmentation_specifics.proto";
|
||||
import "session_specifics.proto";
|
||||
import "shared_tab_group_data_specifics.proto";
|
||||
import "sharing_message_specifics.proto";
|
||||
import "theme_specifics.proto";
|
||||
import "typed_url_specifics.proto";
|
||||
import "user_consent_specifics.proto";
|
||||
import "user_event_specifics.proto";
|
||||
import "web_apk_specifics.proto";
|
||||
import "web_app_specifics.proto";
|
||||
import "webauthn_credential_specifics.proto";
|
||||
import "wifi_configuration_specifics.proto";
|
||||
import "workspace_desk_specifics.proto";
|
||||
|
||||
message EntitySpecifics {
|
||||
// If a datatype is encrypted, this field will contain the encrypted
|
||||
// original EntitySpecifics. The extension for the datatype will continue
|
||||
// to exist, but contain only the default values.
|
||||
// Note that currently passwords employ their own legacy encryption scheme and
|
||||
// do not use this field.
|
||||
optional EncryptedData encrypted = 1;
|
||||
|
||||
// To add new datatype-specific fields to the protocol, extend
|
||||
// EntitySpecifics. First, pick a non-colliding tag number by
|
||||
// picking a Cr-Commit-Position of one of your past commits
|
||||
// to src.chromium.org. Then, in a different protocol buffer
|
||||
// definition, define your message type, and add an optional field
|
||||
// to the list below using the unique tag value you selected.
|
||||
//
|
||||
// optional MyDatatypeSpecifics my_datatype = 32222;
|
||||
//
|
||||
// where:
|
||||
// - 32222 is the non-colliding tag number you picked earlier.
|
||||
// - MyDatatypeSpecifics is the type (probably a message type defined
|
||||
// in your new .proto file) that you want to associate with each
|
||||
// object of the new datatype.
|
||||
// - my_datatype is the field identifier you'll use to access the
|
||||
// datatype specifics from the code.
|
||||
//
|
||||
// Server implementations are obligated to preserve the contents of
|
||||
// EntitySpecifics when it contains unrecognized fields. In this
|
||||
// way, it is possible to add new datatype fields without having
|
||||
// to update the server.
|
||||
//
|
||||
// Note: The tag selection process is based on legacy versions of the
|
||||
// protocol which used protobuf extensions. We have kept the process
|
||||
// consistent as the old values cannot change. The 5+ digit nature of the
|
||||
// tags also makes them recognizable (individually and collectively) from
|
||||
// noise in logs and debugging contexts, and creating a divergent subset of
|
||||
// tags would only make things a bit more confusing.
|
||||
|
||||
oneof specifics_variant {
|
||||
AutofillSpecifics autofill = 31729;
|
||||
BookmarkSpecifics bookmark = 32904;
|
||||
PreferenceSpecifics preference = 37702;
|
||||
TypedUrlSpecifics typed_url = 40781;
|
||||
ThemeSpecifics theme = 41210;
|
||||
PasswordSpecifics password = 45873;
|
||||
NigoriSpecifics nigori = 47745;
|
||||
ExtensionSpecifics extension = 48119;
|
||||
AppSpecifics app = 48364;
|
||||
SessionSpecifics session = 50119;
|
||||
AutofillProfileSpecifics autofill_profile = 63951;
|
||||
SearchEngineSpecifics search_engine = 88610;
|
||||
ExtensionSettingSpecifics extension_setting = 96159;
|
||||
AppSettingSpecifics app_setting = 103656;
|
||||
HistoryDeleteDirectiveSpecifics history_delete_directive = 150251;
|
||||
DeviceInfoSpecifics device_info = 154522;
|
||||
PriorityPreferenceSpecifics priority_preference = 163425;
|
||||
DictionarySpecifics dictionary = 170540;
|
||||
ManagedUserSettingSpecifics managed_user_setting = 186662;
|
||||
AppListSpecifics app_list = 229170;
|
||||
AutofillWalletSpecifics autofill_wallet = 306270;
|
||||
WalletMetadataSpecifics wallet_metadata = 330441;
|
||||
ArcPackageSpecifics arc_package = 340906;
|
||||
PrinterSpecifics printer = 410745;
|
||||
ReadingListSpecifics reading_list = 411028;
|
||||
UserEventSpecifics user_event = 455206;
|
||||
UserConsentSpecifics user_consent = 556014;
|
||||
SendTabToSelfSpecifics send_tab_to_self = 601980;
|
||||
SecurityEventSpecifics security_event = 600372;
|
||||
WebApkSpecifics web_apk = 1117170;
|
||||
WebAppSpecifics web_app = 673225;
|
||||
WifiConfigurationSpecifics wifi_configuration = 662827;
|
||||
OsPreferenceSpecifics os_preference = 702141;
|
||||
OsPriorityPreferenceSpecifics os_priority_preference = 703915;
|
||||
SharingMessageSpecifics sharing_message = 728866;
|
||||
AutofillOfferSpecifics autofill_offer = 774329;
|
||||
WorkspaceDeskSpecifics workspace_desk = 874841;
|
||||
WebauthnCredentialSpecifics webauthn_credential = 895275;
|
||||
HistorySpecifics history = 963985;
|
||||
PrintersAuthorizationServerSpecifics printers_authorization_server = 974304;
|
||||
SavedTabGroupSpecifics saved_tab_group = 1004874;
|
||||
AutofillWalletUsageSpecifics autofill_wallet_usage = 1033580;
|
||||
ContactInfoSpecifics contact_info = 1034378;
|
||||
SegmentationSpecifics segmentation = 1026052;
|
||||
PowerBookmarkSpecifics power_bookmark = 1073150;
|
||||
IncomingPasswordSharingInvitationSpecifics
|
||||
incoming_password_sharing_invitation = 1141935;
|
||||
OutgoingPasswordSharingInvitationSpecifics
|
||||
outgoing_password_sharing_invitation = 1142081;
|
||||
AutofillWalletCredentialSpecifics autofill_wallet_credential = 1164238;
|
||||
SharedTabGroupDataSpecifics shared_tab_group_data = 1239418;
|
||||
CollaborationGroupSpecifics collaboration_group = 1259076;
|
||||
CompareSpecifics compare = 1329438;
|
||||
PlusAddressSpecifics plus_address = 1267844;
|
||||
// When adding a new type, follow the docs below and keep this comment as
|
||||
// the last entry.
|
||||
// https://www.chromium.org/developers/design-documents/sync/integration-checklist/
|
||||
|
||||
// No-longer-supported data types, in various stages of removal.
|
||||
// TODO(crbug.com/1395003): Eventually, these should all become "reserved"
|
||||
// fields, or at least use "EmptySpecifics". But some of them are still
|
||||
// needed by the server, e.g. to support older clients.
|
||||
EmptySpecifics app_notification = 45184 [deprecated = true];
|
||||
EmptySpecifics synced_notification = 153108 [deprecated = true];
|
||||
EmptySpecifics synced_notification_app_info = 235816 [deprecated = true];
|
||||
ExperimentsSpecifics experiments = 161496 [deprecated = true];
|
||||
FaviconTrackingSpecifics favicon_tracking = 181534 [deprecated = true];
|
||||
FaviconImageSpecifics favicon_image = 182019 [deprecated = true];
|
||||
EmptySpecifics managed_user = 194582 [deprecated = true];
|
||||
ManagedUserSharedSettingSpecifics managed_user_shared_setting = 202026
|
||||
[deprecated = true];
|
||||
EmptySpecifics managed_user_allowlist = 306060 [deprecated = true];
|
||||
}
|
||||
reserved 218175;
|
||||
reserved "wifi_credential";
|
||||
reserved 223759;
|
||||
reserved "article";
|
||||
reserved 545005;
|
||||
reserved "mountain_share";
|
||||
}
|
||||
|
||||
message EmptySpecifics {}
|
||||
Reference in new issue
Block a user