# Protocol Documentation ## Table of Contents - [store/activity.proto](#store_activity-proto) - [store/common.proto](#store_common-proto) - [store/system_setting.proto](#store_system_setting-proto) - [BackupConfig](#memos-store-BackupConfig) - [SystemSettingKey](#memos-store-SystemSettingKey) - [store/user_setting.proto](#store_user_setting-proto) - [AccessTokensUserSetting](#memos-store-AccessTokensUserSetting) - [AccessTokensUserSetting.AccessToken](#memos-store-AccessTokensUserSetting-AccessToken) - [UserSetting](#memos-store-UserSetting) - [UserSettingKey](#memos-store-UserSettingKey) - [Scalar Value Types](#scalar-value-types)
## store/activity.proto ## store/common.proto ## store/system_setting.proto ### BackupConfig | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | enabled | [bool](#bool) | | enabled indicates whether backup is enabled. | | cron | [string](#string) | | cron is the cron expression for backup. See https://godoc.org/github.com/robfig/cron#hdr-CRON_Expression_Format | | max_keep | [int32](#int32) | | max_keep is the maximum number of backups to keep. | ### SystemSettingKey | Name | Number | Description | | ---- | ------ | ----------- | | SYSTEM_SETTING_KEY_UNSPECIFIED | 0 | | | BACKUP_CONFIG | 1 | BackupConfig is the key for auto-backup configuration. | ## store/user_setting.proto ### AccessTokensUserSetting | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | access_tokens | [AccessTokensUserSetting.AccessToken](#memos-store-AccessTokensUserSetting-AccessToken) | repeated | | ### AccessTokensUserSetting.AccessToken | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | access_token | [string](#string) | | The access token is a JWT token. Including expiration time, issuer, etc. | | description | [string](#string) | | A description for the access token. | ### UserSetting | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | user_id | [int32](#int32) | | | | key | [UserSettingKey](#memos-store-UserSettingKey) | | | | access_tokens | [AccessTokensUserSetting](#memos-store-AccessTokensUserSetting) | | | ### UserSettingKey | Name | Number | Description | | ---- | ------ | ----------- | | USER_SETTING_KEY_UNSPECIFIED | 0 | | | USER_SETTING_ACCESS_TOKENS | 1 | Access tokens for the user. | ## Scalar Value Types | .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | | ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- | | double | | double | double | float | float64 | double | float | Float | | float | | float | float | float | float32 | float | float | Float | | int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | | int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum | | uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) | | uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) | | sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | | sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum | | fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) | | fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum | | sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | | sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum | | bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | | string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | | bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |