1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-30 18:52:42 +01:00
phorge-phorge/src/applications/ponder
epriestley 0dee34b3fa Make Facts more modern, DRY, and dimensional
Summary:
Ref T13083. Facts has a fair amount of weird hardcoding and duplication of responsibilities. Reduce this somewhat: no more hard-coded fact aggregates, no more database-driven list of available facts, etc. Generally, derive all objective truth from FactEngines. This is more similar to how most other modern applications work.

For clarity, hopefully: rename "FactSpec" to "Fact". Rename "RawFact" to "Datapoint".

Split the fairly optimistic "RawFact" table into an "IntDatapoint" table with less stuff in it, then dimension tables for the object PHIDs and key names. This is primarily aimed at reducing the row size of each datapoint. At the time I originally wrote this code we hadn't experimented much with storing similar data in multiple tables, but this is now more common and has worked well elsewhere (CustomFields, Edges, Ferret) so I don't anticipate this causing issues. If we need more complex or multidimension/multivalue tables later we can accommodate them. The queries a single table supports (like "all facts of all kinds in some time window") don't make any sense as far as I can tell and could likely be UNION ALL'd anyway.

Remove all the aggregation stuff for now, it's not really clear to me what this should look like.

Test Plan: Ran `bin/fact analyze` and viewed web UI. Nothing exploded too violently.

Subscribers: yelirekim

Maniphest Tasks: T13083

Differential Revision: https://secure.phabricator.com/D19119
2018-02-19 12:05:19 -08:00
..
application Make Facts more modern, DRY, and dimensional 2018-02-19 12:05:19 -08:00
capability Add a default moderation policy to Ponder 2015-08-08 12:20:01 -07:00
constants Redesign PonderQuestionView 2016-02-23 17:20:07 -08:00
controller Fix some copy and bugs in Ponder 2017-07-28 06:57:26 -07:00
editor Use object PHIDs for "Thread-Topic" headers in mail 2018-02-08 06:21:00 -08:00
herald Define available Herald rule repetition options in terms of "isSingleEventAdapter()" 2018-01-26 11:02:35 -08:00
mail Add Ponder Question mail create receiver 2016-06-08 14:48:20 -07:00
phid Mark PhabricatorPHIDType::getPHIDTypeApplicationClass() as abstract 2015-11-03 06:47:12 +11:00
query Redesign PonderQuestionView 2016-02-23 17:20:07 -08:00
remarkup Remarkup - add a regex to blacklist what objects get link 2014-08-14 15:20:45 -07:00
search Convert Ponder Questions to Ferret engine 2017-10-26 18:18:04 -07:00
storage Remove all "originalTitle"/"originalName" fields from objects 2018-02-08 06:22:03 -08:00
view Use Log In vs. Login when it's a verb 2017-08-02 12:26:47 -07:00
xaction Fix some copy and bugs in Ponder 2017-07-28 06:57:26 -07:00