Skip to content

Commit 38045b9

Browse files
authored
Merge pull request #7482 from umbraco/cms/16.4-email-config
Added details of email expiry configuration
2 parents 9c49d92 + f459ce0 commit 38045b9

File tree

4 files changed

+100
-70
lines changed

4 files changed

+100
-70
lines changed

16/umbraco-cms/reference/configuration/globalsettings.md

Lines changed: 40 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ The following snippet contains all the available options, with default values, a
3939
"DeliveryMethod": "Network",
4040
"PickupDirectoryLocation": "",
4141
"Username": "[email protected]",
42-
"Password": "SuperSecretPassword"
42+
"Password": "SuperSecretPassword",
43+
"EmailExpiration": null,
4344
},
4445
"DatabaseServerRegistrar": {
4546
"WaitTimeBetweenCalls": "00:01:00",
@@ -65,99 +66,99 @@ In the root level section, that is those without a separate sub section like SMT
6566

6667
### Reserved urls
6768

68-
Key: `ReservedUrls`
69+
Key: `ReservedUrls`
6970
Type: `string` (default: `~/.well-known,`)
7071

7172
A comma-separated list of files to be left alone by Umbraco, these files will be served, and the Umbraco request pipeline will not be triggered.
7273

7374
### Reserved paths
7475

75-
Key: `ReservedPaths`
76+
Key: `ReservedPaths`
7677
Type: `string` (default: `~/app_plugins/,~/install/,~/mini-profiler-resources/,~/umbraco/,`)
7778

7879
A comma-separated list of all the folders in your directory to be left alone by Umbraco. If you have folders with custom files, add them to this setting to make sure Umbraco leaves them alone.
7980

8081
{% hint style="warning" %}
81-
Adding additional values to the Reserves URLs and Reserved Paths will overwrite default/current values. This causes performance issues as well.
82+
Adding additional values to the Reserves URLs and Reserved Paths will overwrite default/current values. This causes performance issues as well.
8283
{% endhint %}
8384

8485
### Timeout
8586

86-
Key: `TimeOut`
87+
Key: `TimeOut`
8788
Type: `string` (default: `00:20:00`)
8889

8990
Configure the session timeout to determine how much time without a request being made can pass before the user is required to log in again. The session timeout format needs to be set as `HH:MM:SS`. Any activity within the backoffice will reset the timer.
9091

9192
{% hint style="info" %}
92-
Long session timeouts raise data exposure and unauthorized access risks. Thus, it's vital to establish a reasonable timeout to mitigate security risks.
93+
Long session timeouts raise data exposure and unauthorized access risks. Thus, it's vital to establish a reasonable timeout to mitigate security risks.
9394
{% endhint %}
9495

9596
### Default UI language
9697

97-
Key: `DefaultUILanguage`
98+
Key: `DefaultUILanguage`
9899
Type: `string` (default: `en-US`)
99100

100101
The default language to use in the backoffice if a user isn't explicitly assigned one.
101102

102103
### Hide top level nodes from path
103104

104-
Key: `HideTopLevelNodeFromPath`
105-
Type: `bool` (default: `true`)
105+
Key: `HideTopLevelNodeFromPath`
106+
Type: `bool` (default: `true`)
106107

107108
If you are running multiple sites, you don't want the top level node in your URL and can disable it with this setting.
108109

109110
### Use https
110111

111-
Key: `UseHttps`
112+
Key: `UseHttps`
112113
Type: `bool` (default: `false`)
113114

114115
Makes sure that all of the requests in the backoffice are called over HTTPS instead of HTTP when set to true.
115116

116117
### Version check period
117118

118-
Key: `VersionCheckPeriod`
119+
Key: `VersionCheckPeriod`
119120
Type: `int` (default: `7`)
120121

121122
When this value is set above 0, the backoffice will check for a new version of Umbraco every 'x' number of days where 'x' is the value defined for this setting. Set this value to 0 to never check for a new version.
122123

123124
### Icons path
124125

125-
Key: `IconsPath`
126+
Key: `IconsPath`
126127
Type: `string` (default: `umbraco/assets/icons`)
127128

128129
By adding this value you can specify a new/different folder for storing your icon resources. It's important to be aware of .NET Core's limitations regarding serving static file content. By default, static content will only be served from the `wwwroot` folder.
129130

130131
### Umbraco CSS path
131132

132-
Key: `UmbracoCssPath`
133+
Key: `UmbracoCssPath`
133134
Type: `string` (default: `~/css`)
134135

135136
By adding this, you can store CSS files in a different folder and still edit them in Umbraco. .NET Core only serves static files from the `wwwroot` folder by default. For more info see [Extending filesystem](../../extending/filesystemproviders/).
136137

137138
### Umbraco scripts path
138139

139-
Key: `UmbracoScriptsPath`
140+
Key: `UmbracoScriptsPath`
140141
Type: `string` (default: `~/scripts`)
141142

142143
By adding this, you can store script/JavaScript files in a different folder and still edit them in Umbraco. .NET Core only serves static files from the `wwwroot` folder by default. For more info see [Extending filesystem](../../extending/filesystemproviders/).
143144

144145
### Umbraco media path
145146

146-
Key: `UmbracoMediaPath`
147+
Key: `UmbracoMediaPath`
147148
Type: `string` (default: `~/media`)
148149

149150
By adding this, you can store media files in a different folder and still edit them in Umbraco. .NET Core only serves static files from the `wwwroot` folder by default. For more info see [Extending filesystem](../../extending/filesystemproviders/).
150151

151152
### Umbraco media physical root path
152153

153-
Key: `UmbracoMediaPhysicalRootPath`
154+
Key: `UmbracoMediaPhysicalRootPath`
154155
Type: `string` (default: `~/media`)
155156

156157
By adding this you can specify a new/different folder for storing your media files elsewhere on the server. Unlike `UmbracoMediaPath`, this does not change the relative path that media is served from (e.g. /media) but allows for files to be stored **outside** of the wwwroot folder. Both relative paths (../../Shared/Media) and absolute server paths (X:/Shared/Media) are supported. For more info see [Extending filesystem](../../extending/filesystemproviders/).
157158

158159
### Install missing database
159160

160-
Key: `InstallMissingDatabase`
161+
Key: `InstallMissingDatabase`
161162
Type: `bool` (default: `false`)
162163

163164
This is not a setting that commonly needs to be configured.
@@ -166,7 +167,7 @@ If enabled Umbraco will try to automatically install the database when it's miss
166167

167168
### Disable election for single server
168169

169-
Key: `DisableElectionForSingleServer`
170+
Key: `DisableElectionForSingleServer`
170171
Type: `bool` (default: `false`)
171172

172173
This is not a setting that commonly needs to be configured.
@@ -175,7 +176,7 @@ This value is primarily used on Umbraco Cloud for a small startup performance op
175176

176177
### Database factory version
177178

178-
Key: `DatabaseFactoryServerVersion`
179+
Key: `DatabaseFactoryServerVersion`
179180
Type: `bool` (default: `false`)
180181

181182
This is not a setting that commonly needs to be configured.
@@ -184,8 +185,8 @@ This setting is used to specify which sql server version that the database is ru
184185

185186
### Main dom lock
186187

187-
Key: `MainDomLock`
188-
Type: `string`
188+
Key: `MainDomLock`
189+
Type: `string`
189190

190191
Specifies the implementation of IMainDomLock to be used.
191192

@@ -201,7 +202,7 @@ The default implementation unless configured otherwise is `FileSystemMainDomLock
201202

202203
### Main dom key discriminator
203204

204-
Key: `MainDomKeyDiscriminator`
205+
Key: `MainDomKeyDiscriminator`
205206
Type: `string`
206207

207208
For advanced use cases e.g. deployment slot swapping on Azure app services.
@@ -220,14 +221,14 @@ It's worth noting that during the swap operation there is a period where both in
220221

221222
### Main dom release signal polling interval
222223

223-
Key: `MainDomReleaseSignalPollingInterval`
224+
Key: `MainDomReleaseSignalPollingInterval`
224225
Type: `string`
225226

226227
Gets or sets the duration (in milliseconds) for which the MainDomLock release signal polling task should sleep. The default value is 2000ms.
227228

228229
### Id
229230

230-
Key: `Id`
231+
Key: `Id`
231232
Type: `string`
232233

233234
This setting doesn't need to be configured.
@@ -236,7 +237,7 @@ This setting contains a unique ID used to identify your project, and is populate
236237

237238
### No nodes view path
238239

239-
Key: `NoNodesViewPath`
240+
Key: `NoNodesViewPath`
240241
Type: `string` (default: `~/umbraco/UmbracoWebsite/NoNodes.cshtml`)
241242

242243
This setting specifies what view to render when there is no content on the site.
@@ -285,20 +286,24 @@ Specifies what delivery method should be used for emails, most of the time you'd
285286

286287
If you're using the `"SpecifiedPickupDirectory"` option on as the delivery method, this setting allows you to specify what folder the emails should be saved to.
287288

289+
### Email expiration
290+
291+
If set to a TimeSpan format, this value will be used to add an `Expires` heading to emails sent from Umbraco. The configured expiry will be used unless a specific value is provided (for example, password reset and user invites have specific settings and defaults).
292+
288293
## Database server registrar settings
289294

290295
It's unlikely that you will have to change these settings unless you're using a load balanced setup.
291296

292297
### Wait time between calls
293298

294-
Key: `DatabaseServerRegistrar.WaitTimeBetweenCalls`
299+
Key: `DatabaseServerRegistrar.WaitTimeBetweenCalls`
295300
Type: `string` (default: `00:01:00`)
296301

297302
Sets a value for the amount of time to wait between calls to the database on the background thread.
298303

299304
### Stale server timeout
300305

301-
Key: `DatabaseServerRegistrar.StaleServerTimeout`
306+
Key: `DatabaseServerRegistrar.StaleServerTimeout`
302307
Type: `string` (default: `00:02:00`)
303308

304309
Sets a value for the time span to wait before considering a server stale, after it has last been accessed.
@@ -309,36 +314,36 @@ It's unlikely that you will have change these settings, unless you're using a lo
309314

310315
### Max processing instruction
311316

312-
Key: `DatabaseServerMessenger.MaxProcessingInstructionCount`
317+
Key: `DatabaseServerMessenger.MaxProcessingInstructionCount`
313318
Type: `string` (default: `1000`)
314319

315320
Sets a value for the maximum number of instructions that can be processed at startup; otherwise the server cold-boots (rebuilds its caches).
316321

317322
### Time to retain instructions
318323

319-
Key: `DatabaseServerMessenger.TimeToRetainInstructions`
324+
Key: `DatabaseServerMessenger.TimeToRetainInstructions`
320325
Type: `string` (default: `2.00:00:00`)
321326

322327
Sets a value for the time to keep instructions in the database; records older than this number will be pruned.
323328

324329
### Time between sync operations
325330

326-
Key: `DatabaseServerMessenger.TimeBetweenSyncOperations`
331+
Key: `DatabaseServerMessenger.TimeBetweenSyncOperations`
327332
Type: `string` (default: `00:00:05`)
328333

329334
Sets a value for the time to wait between each sync operation.
330335

331336
### Time between prune operations
332337

333-
Key: `DatabaseServerMessenger.TimeBetweenPruneOperations`
338+
Key: `DatabaseServerMessenger.TimeBetweenPruneOperations`
334339
Type: `string` (default: `00:01:00`)
335340

336341
Sets a value for the time to wait between each prune operation.
337342

338343
### Distributed Locking Mechanism
339344

340-
Key: `DistributedLockingMechanism`
341-
Type: `string`
345+
Key: `DistributedLockingMechanism`
346+
Type: `string`
342347

343348
This is not a setting that commonly needs to be configured.
344349

@@ -351,7 +356,7 @@ Valid values:
351356

352357
### Distributed Read Lock DefaultTimeout
353358

354-
Key: `DistributedLockingReadLockDefaultTimeout`
359+
Key: `DistributedLockingReadLockDefaultTimeout`
355360
Type: `string` (default: `00:01:00`)
356361

357362
Gets or sets a value representing the maximum time to wait whilst attempting to obtain a distributed read lock.
@@ -360,7 +365,7 @@ The default value is 60 seconds.
360365

361366
### Distributed Write Lock DefaultTimeout
362367

363-
Key: `DistributedLockingWriteLockDefaultTimeout`
368+
Key: `DistributedLockingWriteLockDefaultTimeout`
364369
Type: `string` (default: `00:00:05`)
365370

366371
Gets or sets a value representing the maximum time to wait whilst attempting to obtain a distributed write lock.

16/umbraco-cms/reference/configuration/securitysettings.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ A full configuration with all default values can be seen here:
4444
"AllowConcurrentLogins": false,
4545
"UserDefaultFailedLoginDurationInMilliseconds": 1000,
4646
"UserMinimumFailedLoginDurationInMilliseconds": 250,
47+
"PasswordResetEmailExpiry": "01:00:00",
48+
"UserInviteEmailExpiry": "3.00:00:00"
4749
}
4850
}
4951
}
@@ -111,6 +113,14 @@ Umbraco provides protection from user enumeration attacks looking to identify va
111113

112114
The `UserDefaultFailedLoginDurationInMilliseconds` can be used to provide a more realistic expected time for a successful login if the default isn't appropriate. This will be used before actual successful logins are detected. `UserMinimumFailedLoginDurationInMilliseconds` provides a minimum duration for a failed login.
113115

116+
### Password reset email expiry
117+
118+
Defines the expiry for the password reset email. When the email is sent, an `Expiry` header will be added that uses the value configured here. The default value is 1 hour.
119+
120+
### User invite email expiry
121+
122+
Defines the expiry for the user invite email. When the email is sent, an `Expiry` header will be added that uses the value configured here. The default value is 3 days.
123+
114124
## User password settings
115125

116126
This section lets you define the password rules for users.

0 commit comments

Comments
 (0)