The tools are described here.
These tools allow for very specific validation of metadata fields: field is present, field is missing, field matches a regular expression.
- /rest/filtered-items - construct a query that applies several metadata query statements (in HQL). The results can be further processed with filters.
- The query portion of this endpoint is the most important feature of these tools. If SOLR queries could provide an accurate validation of metadata rules for specific fields, that would probably be the best solution. Otherwise, a set of query expressions will need to be converted to HQL. That is the current implementation.
- /rest/hierarchy - retrieve a full dump of the community/collection hierarchy - used to construct drop down lists
- The REST contract would have endpoints to return this data, but it they may not provide a client-friendly representation of the whole hierarchy.
- /rest/filters - a list of interesting attributes of items to be filtered. Currently these filters are applied in code rather than in HQL/SQL.
- Many filters look at bitstream properties and bitstream permissions. It was difficult to convert all of these filters into HQL expressions. Depending on the recommended approach for /rest/filtered-items, we should consider if these could be expressed as a SOLR query or HQL query. Otherwise, the filter object may be useful to retain.
- /rest/filtered-collections - count the items in a collection that match a set of filters.
- Depending on the filter implementation chosen above, this endpoint should be recreated.
Once the endpoint code is in place, it should be fairly simple to recreate the 2 rest report client pages. The updated client should take advantage of the authentication features of the new REST 7API.
The REST Report Client displays the results of these queries in tabular form. That table can be directly output and used by the bulk metadata update process. Additionally, some high level bitstream metadata can appear in the report results.
The queries will need to evolve to support queries on DSpace entity metadata.