Page MenuHomePhabricator

Add an extensible "SiteSource" for configuration
ClosedPublic

Authored by epriestley on Nov 5 2014, 1:34 PM.
Tags
None
Referenced Files
F14034897: D10787.diff
Sun, Nov 10, 2:47 AM
F14027644: D10787.id25901.diff
Fri, Nov 8, 8:23 AM
F14026113: D10787.diff
Thu, Nov 7, 11:43 PM
F14000243: D10787.diff
Thu, Oct 24, 8:26 PM
F13998820: D10787.diff
Thu, Oct 24, 11:20 AM
F13990327: D10787.id25901.diff
Tue, Oct 22, 2:46 AM
Unknown Object (File)
Sep 12 2024, 10:25 PM
Unknown Object (File)
Sep 5 2024, 4:59 PM
Subscribers
Tokens
"Mountain of Wealth" token, awarded by hach-que."Doubloon" token, awarded by btrahan.

Details

Reviewers
btrahan
Maniphest Tasks
Restricted Maniphest Task
Commits
Restricted Diffusion Commit
rP6a5369b173d5: Add an extensible "SiteSource" for configuration
Summary

Fixes T2792. This adds a pluggable configuration layer between all the stuff on disk (local/file) and the runtime configurable stuff (database).

An install can subclass this source and:

  • For Phacility, query a remote service (like Almanac) to retrieve hostname-based configuration, allowing one install to serve multiple instances.
  • Maybe for Phacility, query a remote service (like Phlux) to retrieve sitevar-like configuration (e.g., put everything in readonly mode to deal with a maintenance issue?). Not sure if we'll do this or not. We might just nuke Phlux since Almanac is sort-of-a-superset of it for our purposes.
  • For third parties, query some other remote service if that makes config management easier. In particular, it would theoretically let you put locked config in Zookeeper or whatever else you want.
Test Plan

Added a fake source and saw it inject configuration.

Diff Detail

Repository
rP Phabricator
Branch
sitesource
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 2950
Build 2954: [Placeholder Plan] Wait for 30 Seconds