(11/03/01 12:49), Kenneth Crocker wrote:
I was wondering, what RT Tables contain Dashboards info and what are the connections/relationships?
How dashboards and subscriptions are stored in the database is something I want to fix for 4.2 but this information is valid for 3.8 and 4.0.
Dashboards were modeled off saved searches, so they have a lot of structure in common - namely, RT::SharedSetting. Like saved searches, dashboards have a "privacy" which lets you control which user or group can interact with the dashboard. Global dashboards have a privacy of RT::System. The dashboard is saved as an attribute on the user or group (or RT::System) corresponding to the privacy. Dashboards have a Name and the interesting bit is the Content which is a hashref of pane name to portlets. Dashboards are not inherently aware of subscriptions at all.
Dashboard subscriptions are stored again as attributes on the subscribing user (note that groups cannot subscribe to a dashboard). They have attributes like DashboardId, Frequency, and Recipient. When we generate dashboard mail we look through subscriptions which point to dashboards. If a dashboard has vanished (due to being deleted or changing privacy to something the subscriber can no longer see) then we generate the missing dashboard mail you saw.
Unfortunately attributes don't have actor metadata so it's not easy to find out who created a dashboard or subscription.
In the future, I want to give dashboards and subscriptions their own table, and permit multiple subscriptions by one user to a dashboard so that you can have whatever scheduling you need, such as every Monday and Thursday, or the 1st and 15th of the month, etc.
If you have other specific questions fire away :) Shawn
