Page MenuHomePhabricator

Phab Scap template vs actual value out of sync for numerous values
Open, LowPublic

Description

https://phabricator.wikimedia.org/config/edit/maniphest.custom-field-definitions/ and the same setting in https://gitlab.wikimedia.org/repos/phabricator/deployment/-/blob/wmf/stable/scap/templates/phabricator/conf/local/local.json.j2 are out of sync.

That's probably the case for years.

https://phabricator.wmcloud.org/ at least seems to use the Scap values ("Local Config") and doesn't have any random custom stuff ("Database").

Related Objects

Mentioned In
T437930: Deploy Phab/Phorge 2026-09-15
rPHDEPc79782021cc0: Set antivandalism.disable-vandals database value in config file
rPHDEP007ed257e8ee: Set remarkup.enable-embedded-commons database value in config file
rPHDEP1995d4c19c5f: Set storage.mysql-engine.max-size database value in config file
T435213: Deploy Phab/Phorge 2026-08-18
rPHDEP27b08bf3a3a7: Add 'debug.time-limit' config from production database
rPHDEP19a5716f348c: Add 'ui.header-color' config from production database
T429925: Deploy Phab/Phorge 2026-06-23
rPHDEP1b7eb3dbaf52: Add 'projects.subtypes' config from production database
rPHDEP2bd1df6bf516: Sync 'syntax.filemap' config from production database
T429350: Deploy Phab/Phorge 2026-06-16
rPHDEPa6c0374b4dec: Sync 'maniphest.custom-field-definitions' config from production database
T410849: Update to Phorge/Arcanist upstream 2026-06-01
T426754: Deploy Phab/Phorge 2026-05-19
rPHDEP1e82e4046fd4: Sync maniphest.custom-field-definitions config with test instance DB
T418033: Uninstall Countdown (Phabricator application)
T384243: Change the dropdown in security ticket dropdown to not include WMF Product and WMF Technology as two separate departments
T403948: 'Fulltext' searches fail on test Phab instance due to ElasticSearch default config (PhutilAggregateException: All Fulltext Search hosts failed / CURLE_COULDNT_CONNECT)
T388590: Stop writing "std:maniphest:security_topic" in "maniphest_customfieldstorage" DB table
T398732: Add the 'other assignee' field to the Phabricator test instance
T398197: 2100 tasks cannot be found by fulltext search (due to exception when indexing "Other Assignee" custom field)
T398397: Remove remnants of Phatality ID in Phabricator ("error.id" custom field)
Mentioned Here
T398197: 2100 tasks cannot be found by fulltext search (due to exception when indexing "Other Assignee" custom field)
T403948: 'Fulltext' searches fail on test Phab instance due to ElasticSearch default config (PhutilAggregateException: All Fulltext Search hosts failed / CURLE_COULDNT_CONNECT)

Event Timeline

Change #1185884 had a related patch set uploaded (by Aklapper; author: Aklapper):

[operations/puppet@production] phabricator: remove defunct ElasticSearch backend settings

https://gerrit.wikimedia.org/r/1185884

Change #1185884 merged by Dzahn:

[operations/puppet@production] phabricator: remove defunct ElasticSearch backend settings

https://gerrit.wikimedia.org/r/1185884

Change #1188815 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] phabricator: drop elasticsearch settings in codfw

https://gerrit.wikimedia.org/r/1188815

Change #1188815 merged by Dzahn:

[operations/puppet@production] phabricator: drop elasticsearch settings in codfw

https://gerrit.wikimedia.org/r/1188815

<noting that the above patches were reverted; see T403948#11185883>

q: Is the scope of this task maniphest.custom-field-definitions only, or is it any config setting for which the 'Database' value for production-Phabricator is different to the 'Local Config' value set in GitLab/by Scap?

The former. The latter is not a problem per-se.

Fair enough. Speaking personally, though, it would be nice if Phab's config could be public (ie., I guess in GitLab) where it can be :)

Aklapper renamed this task from Phab Scap template vs actual value out of sync for maniphest.custom-field-definitions to Phab Scap template vs actual value out of sync for numerous values.May 27 2026, 10:26 AM

Switched a few more now-identical config settings from reading DB to reading JSON config file:

aklapper@phab1004:~$ cd /srv/phab/phabricator/
aklapper@phab1004:/srv/phab/phabricator$ sudo ./bin/config delete --database "metamta.recipients.show-hints"
  Deleted 'metamta.recipients.show-hints' from database configuration.
aklapper@phab1004:/srv/phab/phabricator$ sudo ./bin/config delete --database "maniphest.points"
  Deleted 'maniphest.points' from database configuration.
aklapper@phab1004:/srv/phab/phabricator$ sudo ./bin/config delete --database "ui.logo"
  Deleted 'ui.logo' from database configuration.

Removed Releeph from config file in https://gitlab.wikimedia.org/repos/phabricator/deployment/-/commit/e4f2481029cf60edf63096f28b2bd6896a0ff571

aklapper@phab1004:/srv/phab/phabricator$ sudo ./bin/config delete --database "phabricator.uninstalled-applications"
Deleted 'phabricator.uninstalled-applications' from database configuration.
aklapper@phab1004:/srv/phab/phabricator$ sudo ./bin/config delete --database "differential.fields"
Deleted 'differential.fields' from database configuration.

Added 'diffusion.fields' config from production database in https://gitlab.wikimedia.org/repos/phabricator/deployment/-/commit/6cf9d0e48fa8f1cd4365bb226e1a3811fe37f719

aklapper@phab1004:/srv/phab/phabricator$ sudo ./bin/config delete --database "maniphest.statuses"
Deleted 'maniphest.statuses' from database configuration.

Synced maniphest.custom-field-definitions config from production database in https://gitlab.wikimedia.org/repos/phabricator/deployment/-/commit/a6c0374b4dec445520aa1f8ab097e63bc1b2aa53

aklapper@phab1004:/srv/phab/phabricator$ sudo ./bin/config delete --database "diffusion.fields"
Deleted 'diffusion.fields' from database configuration.

Synced 'syntax.filemap' config from production database in https://gitlab.wikimedia.org/repos/phabricator/deployment/-/commit/2bd1df6bf516fbf1cdd693dccceb6976785f4fdf (that double-escaping wasn't used in production but manually overwritten, obviously)

Deleted three more custom database values which were moved to the config file yesterday:

aklapper@phab1004:/srv/phab/phabricator$ sudo ./bin/config delete --database "syntax.filemap"
Deleted 'syntax.filemap' from database configuration.
aklapper@phab1004:/srv/phab/phabricator$ sudo ./bin/config delete --database "projects.custom-field-definitions"
Deleted 'projects.custom-field-definitions' from database configuration.
aklapper@phab1004:/srv/phab/phabricator$ sudo ./bin/config delete --database "projects.subtypes"
Deleted 'projects.subtypes' from database configuration.
Aklapper moved this task from To Triage to Misc on the Phabricator board.
aklapper@phab1005:/srv/deployment/phabricator/deployment/phabricator$ sudo ./bin/config delete --database debug.time-limit
Deleted 'debug.time-limit' from database configuration.

aklapper@phab1005:/srv/deployment/phabricator/deployment/phabricator$ sudo ./bin/config delete --database auth.lock-config
Deleted 'auth.lock-config' from database configuration.

aklapper@phab1005:/srv/deployment/phabricator/deployment/phabricator$ sudo ./bin/config delete --database maniphest.custom-field-definitions
Deleted 'maniphest.custom-field-definitions' from database configuration.
aklapper@phab1005:/srv/deployment/phabricator/deployment/phabricator$ sudo ./bin/config delete --database ui.header-color
Deleted 'ui.header-color' from database configuration.
aklapper@phab1005:/srv/deployment/phabricator/deployment/phabricator$ sudo ./bin/config delete --database remarkup.enable-embedded-commons
Deleted 'remarkup.enable-embedded-commons' from database configuration.
aklapper@phab1005:/srv/deployment/phabricator/deployment/phabricator$ sudo ./bin/config delete --database antivandalism.disable-vandals
Deleted 'antivandalism.disable-vandals' from database configuration.
aklapper@phab1005:/srv/deployment/phabricator/deployment/phabricator$ sudo ./bin/config delete --database storage.mysql-engine.max-size
Deleted 'storage.mysql-engine.max-size' from database configuration.

Also deleted the application settings for the nowadays non-existing applications

  • PHID-APPS-PhabricatorChatLogApplication,
  • PHID-APPS-SprintApplication,
  • PHID-APPS-PhabricatorPhortuneApplication,
  • PHID-APPS-PhabricatorReleephApplication

from phabricator.application-settings (which is a Locked Configuration nowadays) by setting that value in local storage and then deleting the database value:

aklapper@phab1005:/srv/deployment/phabricator/deployment/phabricator$ sudo ./bin/config set phabricator.application-settings --stdin < /home/aklapper/phabricator.application-settings.json 
Reading value from stdin...
 OVERRIDDEN  The configuration key "phabricator.application-settings" is already defined in the database. The value from the database will override the value in local storage.
 DONE  Wrote configuration key "phabricator.application-settings" to local storage (in file "conf/local/local.json").
aklapper@phab1005:/srv/deployment/phabricator/deployment/phabricator$ sudo ./bin/config delete --database phabricator.application-settings