dls.retentionRule( name as String, comment as Sequence, num-versions as Number?, duration as xs.duration?, document-query-text as String?, document-query as cts.query? ) as element(dls.retentionRule)
This function creates and returns a retention rule element.
Use
dls.insertRetentionRule
to insert the retention rule into
the database.
$num-versions
and $duration
retains a numbered
version only if it is both one of the N most recent versions and it was
created more recently than "now - duration." If neither
$num-versions
or $duration
is specified,
then any numbered version matching the document query is kept forever.
The $document-query-text
parameter is intended to be
used for the human readable form of a query that was used to produce the
corresponding
cts.query
. This may be the text that a user
typed into a search text field in the UI. This parameter does NOT affect
the retention policy.
dls-admin
role is required to run
this function, or the privilege:http://marklogic.com/xdmp/privileges/dls-admin
// Returns a retention rule in XML format. const dls = require('/MarkLogic/dls'); dls.retentionRule( 'All Versions Retention Rule', 'Retain all versions of all document', null, null, 'Locate all of the documents', cts.andQuery(null));
// Returns a retention rule in XML format. const dls = require("/MarkLogic/dls"); dls.retentionRule( "Rule1", "Keep the five most recent versions of Jim's documents " + "that are 15 days old or newer", 5, xs.duration('P15D'), 'Locate documents authored by Jim', dls.authorQuery(xdmp.user('Jim')));
// Returns a retention rule in XML format. const dls = require('/MarkLogic/dls'); dls.retentionRule( 'Rule2', 'Keep the five most recent versions of Jim\'s documents in the "foo" ' + 'collection that are 15 days old or newer', 5, xs.duration('P15D'), 'Locate documents in the "foo" collection authored by Jim', cts.andQuery([ cts.collectionQuery('http://marklogic.com/documents/foo'), dls.authorQuery(xdmp.user('Jim'))]) );