# Protocol Documentation ## Table of Contents - [store/activity.proto](#store_activity-proto) - [ActivityShorcutCreatePayload](#slash-store-ActivityShorcutCreatePayload) - [ActivityShorcutViewPayload](#slash-store-ActivityShorcutViewPayload) - [store/common.proto](#store_common-proto) - [RowStatus](#slash-store-RowStatus) - [Visibility](#slash-store-Visibility) - [store/collection.proto](#store_collection-proto) - [Collection](#slash-store-Collection) - [store/shortcut.proto](#store_shortcut-proto) - [OpenGraphMetadata](#slash-store-OpenGraphMetadata) - [Shortcut](#slash-store-Shortcut) - [store/user_setting.proto](#store_user_setting-proto) - [AccessTokensUserSetting](#slash-store-AccessTokensUserSetting) - [AccessTokensUserSetting.AccessToken](#slash-store-AccessTokensUserSetting-AccessToken) - [UserSetting](#slash-store-UserSetting) - [ColorThemeUserSetting](#slash-store-ColorThemeUserSetting) - [LocaleUserSetting](#slash-store-LocaleUserSetting) - [UserSettingKey](#slash-store-UserSettingKey) - [store/workspace_setting.proto](#store_workspace_setting-proto) - [AutoBackupWorkspaceSetting](#slash-store-AutoBackupWorkspaceSetting) - [WorkspaceSetting](#slash-store-WorkspaceSetting) - [WorkspaceSettingKey](#slash-store-WorkspaceSettingKey) - [Scalar Value Types](#scalar-value-types)

Top

## store/activity.proto ### ActivityShorcutCreatePayload | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | shortcut_id | [int32](#int32) | | | ### ActivityShorcutViewPayload | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | shortcut_id | [int32](#int32) | | | | ip | [string](#string) | | | | referer | [string](#string) | | | | user_agent | [string](#string) | | |

Top

## store/common.proto ### RowStatus | Name | Number | Description | | ---- | ------ | ----------- | | ROW_STATUS_UNSPECIFIED | 0 | | | NORMAL | 1 | | | ARCHIVED | 2 | | ### Visibility | Name | Number | Description | | ---- | ------ | ----------- | | VISIBILITY_UNSPECIFIED | 0 | | | PRIVATE | 1 | | | WORKSPACE | 2 | | | PUBLIC | 3 | |

Top

## store/collection.proto ### Collection | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [int32](#int32) | | | | creator_id | [int32](#int32) | | | | created_ts | [int64](#int64) | | | | updated_ts | [int64](#int64) | | | | name | [string](#string) | | | | title | [string](#string) | | | | description | [string](#string) | | | | shortcut_ids | [int32](#int32) | repeated | | | visibility | [Visibility](#slash-store-Visibility) | | |

Top

## store/shortcut.proto ### OpenGraphMetadata | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | title | [string](#string) | | | | description | [string](#string) | | | | image | [string](#string) | | | ### Shortcut | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [int32](#int32) | | | | creator_id | [int32](#int32) | | | | created_ts | [int64](#int64) | | | | updated_ts | [int64](#int64) | | | | row_status | [RowStatus](#slash-store-RowStatus) | | | | name | [string](#string) | | | | link | [string](#string) | | | | title | [string](#string) | | | | tags | [string](#string) | repeated | | | description | [string](#string) | | | | visibility | [Visibility](#slash-store-Visibility) | | | | og_metadata | [OpenGraphMetadata](#slash-store-OpenGraphMetadata) | | |

Top

## store/user_setting.proto ### AccessTokensUserSetting | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | access_tokens | [AccessTokensUserSetting.AccessToken](#slash-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](#slash-store-UserSettingKey) | | | | access_tokens | [AccessTokensUserSetting](#slash-store-AccessTokensUserSetting) | | | | locale | [LocaleUserSetting](#slash-store-LocaleUserSetting) | | | | color_theme | [ColorThemeUserSetting](#slash-store-ColorThemeUserSetting) | | | ### ColorThemeUserSetting | Name | Number | Description | | ---- | ------ | ----------- | | COLOR_THEME_USER_SETTING_UNSPECIFIED | 0 | | | SYSTEM | 1 | | | LIGHT | 2 | | | DARK | 3 | | ### LocaleUserSetting | Name | Number | Description | | ---- | ------ | ----------- | | LOCALE_USER_SETTING_UNSPECIFIED | 0 | | | EN | 1 | | | ZH | 2 | | | FR | 3 | | ### UserSettingKey | Name | Number | Description | | ---- | ------ | ----------- | | USER_SETTING_KEY_UNSPECIFIED | 0 | | | ACCESS_TOKENS | 1 | Access tokens for the user. | | LOCALE | 2 | Locale for the user. | | COLOR_THEME | 3 | Color theme for the user. |

Top

## store/workspace_setting.proto ### AutoBackupWorkspaceSetting | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | enabled | [bool](#bool) | | Whether auto backup is enabled. | | cron_expression | [string](#string) | | The cron expression for auto backup. For example, "0 0 0 * * *" means backup at 00:00:00 every day. See https://en.wikipedia.org/wiki/Cron for more details. | | max_keep | [int32](#int32) | | The maximum number of backups to keep. | ### WorkspaceSetting | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [WorkspaceSettingKey](#slash-store-WorkspaceSettingKey) | | | | license_key | [string](#string) | | The license key of workspace. | | secret_session | [string](#string) | | The secret session key used to encrypt session data. | | enable_signup | [bool](#bool) | | Whether to enable other users to sign up. | | custom_style | [string](#string) | | The custom style. | | custom_script | [string](#string) | | The custom script. | | auto_backup | [AutoBackupWorkspaceSetting](#slash-store-AutoBackupWorkspaceSetting) | | The auto backup setting. (Unimplemented) | | instance_url | [string](#string) | | The instance URL of workspace. | | default_visibility | [Visibility](#slash-store-Visibility) | | The default visibility of shortcuts and collections. | | favicon_provider | [string](#string) | | The url of custom favicon provider. e.g. https://github.com/yourselfhosted/favicons | ### WorkspaceSettingKey | Name | Number | Description | | ---- | ------ | ----------- | | WORKSPACE_SETTING_KEY_UNSPECIFIED | 0 | | | WORKSPACE_SETTING_LICENSE_KEY | 1 | The license key. | | WORKSPACE_SETTING_SECRET_SESSION | 2 | The secret session key used to encrypt session data. | | WORKSAPCE_SETTING_ENABLE_SIGNUP | 3 | Whether to enable other users to sign up. | | WORKSPACE_SETTING_CUSTOM_STYLE | 4 | The custom style. | | WORKSPACE_SETTING_CUSTOM_SCRIPT | 5 | The custom script. | | WORKSPACE_SETTING_AUTO_BACKUP | 6 | The auto backup setting. | | WORKSPACE_SETTING_INSTANCE_URL | 7 | The instance URL. | | WORKSPACE_SETTING_DEFAULT_VISIBILITY | 8 | The default visibility of shortcuts and collections. | | WORKSPACE_SETTING_FAVICON_PROVIDER | 9 | The url of custom favicon provider. | ## 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) |