*/
$wgForeignUploadTargets = array();
+/**
+ * Cross-wiki upload A/B test configuration.
+ */
+$wgForeignUploadTestEnabled = false;
+$wgForeignUploadTestDefault = 1;
+
/**
* File backend structure configuration.
*
* It might be necessary to adapt the address or to set it equal
* to the $wgEmergencyContact address.
*/
-$wgNoReplyAddress = 'reply@not.possible';
+$wgNoReplyAddress = 'reply@not.possible.invalid';
/**
* Set to true to enable the e-mail basic features:
/** @} */ # end of cache settings
/************************************************************************//**
- * @name HTTP proxy (Squid) settings
+ * @name HTTP proxy (CDN) settings
*
* Many of these settings apply to any HTTP proxy used in front of MediaWiki,
* although they are referred to as Squid settings for historical reasons.
*/
/**
- * Enable/disable Squid.
+ * Enable/disable CDN.
* See https://www.mediawiki.org/wiki/Manual:Squid_caching
*/
$wgUseSquid = false;
$wgVaryOnXFP = false;
/**
- * Internal server name as known to Squid, if different.
+ * Internal server name as known to CDN, if different.
*
* @par Example:
* @code
/**
* Cache TTL for the CDN sent as s-maxage (without ESI) or
* Surrogate-Control (with ESI). Without ESI, you should strip
- * out s-maxage in the Squid config.
+ * out s-maxage in the CDN config.
*
* 18000 seconds = 5 hours, more cache hits with 2678400 = 31 days.
*/
*/
$wgCdnMaxageLagged = 30;
+/**
+ * If set, any SquidPurge call on a URL or URLs will send a second purge no less than
+ * this many seconds later via the job queue. This requires delayed job support.
+ * This should be safely higher than the 'max lag' value in $wgLBFactoryConf, so that
+ * slave lag does not cause page to be stuck in stales states in CDN.
+ *
+ * This also fixes race conditions in two-tiered CDN setups (e.g. cdn2 => cdn1 => MediaWiki).
+ * If a purge for a URL reaches cdn2 before cdn1 and a request reaches cdn2 for that URL,
+ * it will populate the response from the stale cdn1 value. When cdn1 gets the purge, cdn2
+ * will still be stale. If the rebound purge delay is safely higher than the time to relay
+ * a purge to all nodes, then the rebound puge will clear cdn2 after cdn1 was cleared.
+ *
+ * @since 1.27
+ */
+$wgCdnReboundPurgeDelay = 0;
+
/**
* Default maximum age for raw CSS/JS accesses
*
*/
/**
- *$wgInterwikiCache specifies path to constant database file.
+ * Interwiki cache, either as an associative array or a path to a constant
+ * database (.cdb) file.
+ *
+ * This data structure database is generated by the `dumpInterwiki` maintenance
+ * script (which lives in the WikimediaMaintenance repository) and has key
+ * formats such as the following:
*
- * This cdb database is generated by dumpInterwiki from maintenance and has
- * such key formats:
* - dbname:key - a simple key (e.g. enwiki:meta)
* - _sitename:key - site-scope key (e.g. wiktionary:meta)
* - __global:key - global-scope key (e.g. __global:meta)
*
* Sites mapping just specifies site name, other keys provide "local url"
* data layout.
+ *
+ * @var bool|array|string
*/
$wgInterwikiCache = false;
* - PasswordCannotMatchUsername - Password cannot match username to
* - PasswordCannotMatchBlacklist - Username/password combination cannot
* match a specific, hardcoded blacklist.
+ * - PasswordCannotBePopular - Blacklist passwords which are known to be
+ * commonly chosen. Set to integer n to ban the top n passwords.
+ * If you want to ban all common passwords on file, use the
+ * PHP_INT_MAX constant.
* @since 1.26
*/
$wgPasswordPolicy = array(
'MinimalPasswordLength' => 8,
'MinimumPasswordLengthToLogin' => 1,
'PasswordCannotMatchUsername' => true,
+ 'PasswordCannotBePopular' => 25,
),
'sysop' => array(
'MinimalPasswordLength' => 8,
'MinimumPasswordLengthToLogin' => 1,
'PasswordCannotMatchUsername' => true,
+ 'PasswordCannotBePopular' => 25,
),
'bot' => array(
'MinimalPasswordLength' => 8,
'PasswordCannotMatchUsername' => 'PasswordPolicyChecks::checkPasswordCannotMatchUsername',
'PasswordCannotMatchBlacklist' => 'PasswordPolicyChecks::checkPasswordCannotMatchBlacklist',
'MaximalPasswordLength' => 'PasswordPolicyChecks::checkMaximalPasswordLength',
+ 'PasswordCannotBePopular' => 'PasswordPolicyChecks::checkPopularPasswordBlacklist'
),
);
*/
$wgEmailConfirmToEdit = false;
+/**
+ * Should MediaWiki attempt to protect user's privacy when doing redirects?
+ * Keep this true if access counts to articles are made public.
+ */
+$wgHideIdentifiableRedirects = true;
+
/**
* Permission keys given to users in each group.
*
* @since 1.26
*/
$wgTrxProfilerLimits = array(
- // Basic GET and POST requests
+ // HTTP GET/HEAD requests.
+ // Master queries should not happen on GET requests
'GET' => array(
'masterConns' => 0,
'writes' => 0,
'readQueryTime' => 5
),
+ // HTTP POST requests.
+ // Master reads and writes will happen for a subset of these.
'POST' => array(
'readQueryTime' => 5,
'writeQueryTime' => 1,
*/
$wgProfileOnly = false;
-/**
- * If true, print a raw call tree instead of per-function report
- */
-$wgProfileCallTree = false;
-
-/**
- * Should application server host be put into profiling table
- *
- * @deprecated set $wgProfiler['perhost'] = true instead
- */
-$wgProfilePerHost = null;
-
-/**
- * Host for UDP profiler.
- *
- * The host should be running a daemon which can be obtained from MediaWiki
- * Git at:
- * https://git.wikimedia.org/tree/operations%2Fsoftware.git/master/udpprofile
- *
- * @deprecated set $wgProfiler['udphost'] instead
- */
-$wgUDPProfilerHost = null;
-
-/**
- * Port for UDP profiler.
- * @see $wgUDPProfilerHost
- *
- * @deprecated set $wgProfiler['udpport'] instead
- */
-$wgUDPProfilerPort = null;
-
-/**
- * Format string for the UDP profiler. The UDP profiler invokes sprintf() with
- * (profile id, count, cpu, cpu_sq, real, real_sq, entry name, memory) as
- * arguments. You can use sprintf's argument numbering/swapping capability to
- * repeat, re-order or omit fields.
- *
- * @see $wgStatsFormatString
- * @since 1.22
- *
- * @deprecated set $wgProfiler['udpformat'] instead
- */
-$wgUDPProfilerFormatString = null;
-
-/**
- * Destination for wfIncrStats() data...
- * 'cache' to go into the system cache, if enabled (memcached)
- * 'udp' to be sent to the UDP profiler (see $wgUDPProfilerHost)
- * false to disable
- */
-$wgStatsMethod = 'cache';
-
-/**
- * When $wgStatsMethod is 'udp', setting this to a string allows statistics to
- * be aggregated over more than one wiki. The string will be used in place of
- * the DB name in outgoing UDP packets. If this is set to false, the DB name
- * will be used.
- */
-$wgAggregateStatsID = false;
-
-/**
- * When $wgStatsMethod is 'udp', this variable specifies how stats should be
- * formatted. Its value should be a format string suitable for a sprintf()
- * invocation with (id, count, key) arguments, where 'id' is either
- * $wgAggregateStatsID or the DB name, 'count' is the value by which the metric
- * is being incremented, and 'key' is the metric name.
- *
- * @see $wgUDPProfilerFormatString
- * @see $wgAggregateStatsID
- * @since 1.22
- */
-$wgStatsFormatString = "stats/%s - %s 1 1 1 1 %s\n";
-
/**
* Destination of statsd metrics.
*
$wgStatsdServer = false;
/**
- * Prefix for metric names sent to wgStatsdServer.
- *
- * Defaults to "MediaWiki".
+ * Prefix for metric names sent to $wgStatsdServer.
*
* @see RequestContext::getStats
* @see BufferingStatsdDataFactory
* @since 1.25
*/
-$wgStatsdMetricPrefix = false;
+$wgStatsdMetricPrefix = 'MediaWiki';
/**
* InfoAction retrieves a list of transclusion links (both to and from).
'PublishStashedFile' => 'PublishStashedFileJob',
'ThumbnailRender' => 'ThumbnailRenderJob',
'recentChangesUpdate' => 'RecentChangesUpdateJob',
- 'refreshLinksPrioritized' => 'RefreshLinksJob', // for cascading protection
- 'refreshLinksDynamic' => 'RefreshLinksJob', // for pages with dynamic content
+ 'refreshLinksPrioritized' => 'RefreshLinksJob',
+ 'refreshLinksDynamic' => 'RefreshLinksJob',
'activityUpdateJob' => 'ActivityUpdateJob',
'categoryMembershipChange' => 'CategoryMembershipChangeJob',
+ 'cdnPurge' => 'CdnPurgeJob',
'enqueue' => 'EnqueueJob', // local queue for multi-DC setups
'null' => 'NullJob'
);
*/
$wgSearchRunSuggestedQuery = true;
+/**
+ * Where popular password file is located.
+ *
+ * Default in core contains 50,000 most popular. This config
+ * allows you to change which file, in case you want to generate
+ * a password file with > 50000 entries in it.
+ *
+ * @see maintenance/createCommonPasswordCdb.php
+ * @since 1.27
+ * @var string path to file
+ */
+$wgPopularPasswordFile = __DIR__ . '/../serialized/commonpasswords.cdb';
+
+/*
+ * Max time (in seconds) a user-generated transaction can spend in writes.
+ * If exceeded, the transaction is rolled back with an error instead of being committed.
+ *
+ * @var int|bool Disabled if false
+ * @since 1.27
+ */
+$wgMaxUserDBWriteDuration = false;
+
/**
* For really cool vim folding this needs to be at the end:
* vim: foldmarker=@{,@} foldmethod=marker