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]>
190 lines
8.2 KiB
Protocol Buffer
190 lines
8.2 KiB
Protocol Buffer
// 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 {}
|