Confirmed users
385
edits
(→Spec) |
|||
| Line 157: | Line 157: | ||
== Scratch and Notes == | == Scratch and Notes == | ||
=== Insights === | === Insights === | ||
* data model draft | |||
<div style="background-color: #F0F0F0"><pre> | |||
{ | |||
id // string id of the plugin usually looks like [app]google.xml | |||
guid // used for sync reconciliation | |||
openSearchRefObj //the whole of the OpenSearch xml object json-ifed. Clients may pick & choose which bits of data they will use/store in their representation. The sync store however, will hold onto this, to prevent differing internal representations from causing data loss on other platforms. It also ensures sync can in the future gracefully support any future features that are covered by the OpenSearch spec but not by the current internal representations. | |||
age //age in unix time of the ref object | |||
order // place in the global order (beware, even hidden engines have order) | |||
aliases // may be [], array of search keywords associated with this plugin | |||
isHidden // true if this engine should be globally disabled. Note some clients may treat some engines as 'removed' when they are actually disabled. (like desktop never actually removes the defaults even though the ui says it does) | |||
applicationIds // array of ids that this plugin should be installed on. [] if all platforms. (some plugins should not be installed on mobile, like desktop's google plugin, but others like twitter, are suitable for all platforms. Also leaves room for us to indicate a plugin meant for a subset, like mobile platforms {fennec, firefoxOS} and not desktop) | |||
locale //the locale of the plugin. Currently all plugins will have the same locale | |||
installLocation // optional. if not present, this plugin is default [app] on desktop | |||
type //optional, used to differentiate origins of plugins on desktop | |||
queryCharset // defaults on desktop do not have this, may be null | |||
isReadOnly //may be null | |||
} | |||
</pre></div> | |||
* what should happen when default lists dont match | * what should happen when default lists dont match | ||
** defaults should be synced because they may not be present on other systems and users can expect to see them (though the mobile client may grey them out) | ** defaults should be synced because they may not be present on other systems and users can expect to see them (though the mobile client may grey them out) | ||
* user created keywords are called 'alias'es in code, stored in search-metadata.json | * user created keywords are called 'alias'es in code, stored in search-metadata.json | ||
* search-metadata.json | * search-metadata.json | ||
** may not exist if | ** may not exist if nothing has been changed | ||
** contains per plugin: order placement, hidden, and keywords | ** contains per plugin: order placement, hidden, and keywords | ||
* /profile/search.json | * /profile/search.json | ||