github.com/mutagen-io/mutagen@v0.18.0-rc1/pkg/synchronization/configuration.proto (about) 1 syntax = "proto3"; 2 3 package synchronization; 4 5 option go_package = "github.com/mutagen-io/mutagen/pkg/synchronization"; 6 7 import "filesystem/behavior/probe_mode.proto"; 8 import "synchronization/scan_mode.proto"; 9 import "synchronization/stage_mode.proto"; 10 import "synchronization/watch_mode.proto"; 11 import "synchronization/compression/algorithm.proto"; 12 import "synchronization/core/mode.proto"; 13 import "synchronization/core/permissions_mode.proto"; 14 import "synchronization/core/symbolic_link_mode.proto"; 15 import "synchronization/core/ignore/syntax.proto"; 16 import "synchronization/core/ignore/ignore_vcs_mode.proto"; 17 import "synchronization/hashing/algorithm.proto"; 18 19 // Configuration encodes session configuration parameters. It is used for create 20 // commands to specify configuration options, for loading global configuration 21 // options, and for storing a merged configuration inside sessions. It should be 22 // considered immutable. 23 message Configuration { 24 // Synchronization parameters (fields 11-20). 25 // NOTE: These run from field indices 11-20 (rather than 1-10, which are 26 // reserved for symbolic link configuration parameters) due to the 27 // historical order in which these fields were added. Field 17 (the digest 28 // algorithm) is also listed out of its chronological order of addition due 29 // to its relative importance in the configuration. 30 31 // SynchronizationMode specifies the synchronization mode that should be 32 // used in synchronization. 33 core.SynchronizationMode synchronizationMode = 11; 34 35 // HashingAlgorithm specifies the content hashing algorithm used to track 36 // content and perform differential transfers. 37 hashing.Algorithm hashingAlgorithm = 17; 38 39 // MaximumEntryCount specifies the maximum number of filesystem entries that 40 // endpoints will tolerate managing. A zero value indicates no limit. 41 uint64 maximumEntryCount = 12; 42 43 // MaximumStagingFileSize is the maximum (individual) file size that 44 // endpoints will stage. A zero value indicates no limit. 45 uint64 maximumStagingFileSize = 13; 46 47 // ProbeMode specifies the filesystem probing mode. 48 behavior.ProbeMode probeMode = 14; 49 50 // ScanMode specifies the synchronization root scanning mode. 51 ScanMode scanMode = 15; 52 53 // StageMode specifies the file staging mode. 54 StageMode stageMode = 16; 55 56 // Fields 18-20 are reserved for future synchronization configuration 57 // parameters. 58 59 60 // Symbolic link configuration parameters (fields 1-10). 61 // NOTE: These run from field indices 1-10. The reason for this is that 62 // symbolic link configuration parameters is due to the historical order in 63 // which configuration fields were added. 64 65 // SymbolicLinkMode specifies the symbolic link mode. 66 core.SymbolicLinkMode symbolicLinkMode = 1; 67 68 // Fields 2-10 are reserved for future symbolic link configuration 69 // parameters. 70 71 72 // Watch configuration parameters (fields 21-30). 73 74 // WatchMode specifies the filesystem watching mode. 75 WatchMode watchMode = 21; 76 77 // WatchPollingInterval specifies the interval (in seconds) for poll-based 78 // file monitoring. A value of 0 specifies that the default interval should 79 // be used. 80 uint32 watchPollingInterval = 22; 81 82 // Fields 23-30 are reserved for future watch configuration parameters. 83 84 85 // Ignore configuration parameters (fields 31-60). 86 87 // IgnoreSyntax specifies the syntax and semantics to use for ignores. 88 // NOTE: This field is out of order due to the historical order in which it 89 // was added. 90 ignore.Syntax ignoreSyntax = 34; 91 92 // DefaultIgnores specifies the ignore patterns brought in from the global 93 // configuration. 94 // DEPRECATED: This field is no longer used when loading from global 95 // configuration. Instead, ignores provided by global configuration are 96 // simply merged into the ignore list of the main configuration. However, 97 // older sessions still use this field. 98 repeated string defaultIgnores = 31; 99 100 // Ignores specifies the ignore patterns brought in from the create request. 101 repeated string ignores = 32; 102 103 // IgnoreVCSMode specifies the VCS ignore mode that should be used in 104 // synchronization. 105 ignore.IgnoreVCSMode ignoreVCSMode = 33; 106 107 // Fields 35-60 are reserved for future ignore configuration parameters. 108 109 110 // Permissions configuration parameters (fields 61-80). 111 112 // PermissionsMode species the manner in which permissions should be 113 // propagated between endpoints. 114 core.PermissionsMode permissionsMode = 61; 115 116 // Field 62 is reserved for PermissionsPreservationMode. 117 118 // DefaultFileMode specifies the default permission mode to use for new 119 // files in "portable" permission propagation mode. 120 uint32 defaultFileMode = 63; 121 122 // DefaultDirectoryMode specifies the default permission mode to use for new 123 // files in "portable" permission propagation mode. 124 uint32 defaultDirectoryMode = 64; 125 126 // DefaultOwner specifies the default owner identifier to use when setting 127 // ownership of new files and directories in "portable" permission 128 // propagation mode. 129 string defaultOwner = 65; 130 131 // DefaultGroup specifies the default group identifier to use when setting 132 // ownership of new files and directories in "portable" permission 133 // propagation mode. 134 string defaultGroup = 66; 135 136 // Fields 67-80 are reserved for future permission configuration parameters. 137 138 139 // Compression configuration parameters (fields 81-90). 140 141 // CompressionAlgorithm specifies the compression algorithm to use when 142 // communicating with the endpoint. This only applies to remote endpoints. 143 compression.Algorithm compressionAlgorithm = 81; 144 145 // Fields 82-90 are reserved for future compression configuration 146 // parameters. 147 }