|Reported by:||skaplun||Owned by:||simko|
For general repository health monitoring purposes or also to re-factor certain computational intensive algorithm that are spread-around the Invenio codebase by pre-computing special collections it would be great to enhance WebColl and in general the WebSearch module to support a new type of collection called System Collections. These collections would be as normal collections in everything but their definition which can't be expressed by a normal query and must be therefore directly be specified in the code base. These System Collections are:
- Empty Records
- containing all the records that have an ID but nothing else (i.e. no XM)
- Deleted Records
- containing all the records that have DELETED in 980__% (which is the convention in Invenio to marc a record as deleted.
- Restricted Records
- containing all the records that belong to at least one restricted collection (this would greatly speed up the runtime computation for checking authorizations)
- Classified Records
- containing all the records that belong to at least one real collection (if a record does not belong to such collection will surely not be available to anyone but its owner or superadmin)
- Unclassified Records
- this is the counterpart of Classified Records, and will contain all the records that do not belong to at least a collection and are therefore accessible only to their owners or to superadmin
- Existing Records
- this is the union of the Classified and Unclassified Records collections
- Public Records
- this will be sort of an alias to the Home collection as it will contain all the records that are searchable from the home and are a priory discoverable by a crawler.
In order to make this collection safe, they will be actually called with an umprobable name such as "System Collection -- Emtpy Records" and be treated in special ways both by WebColl and by the WebSearch Admin Interface (e.g. it should not be possible to delete such a collection and if an admin attach these collections as real child of real collections, webcoll must ignore them in the computation of the real collection.)
tabcreate.sql can come with a default configuration where there is a non attached System Collection with all of the above collections attached as virtual collections.