Apply an archiving configuration to pages, page-trees or the result of a CQL query

Users want more granularity. Using the whole space as unit, we could apply configs to smaller units like individual pages, page trees or freely to pages matching a CQL,

Note: precedence should be well-defined when a page is tracked by multiple configs.

(Currently: you can define the settings per space and opt-out using the "noarchive" labels, but it is not possible to override the settings.)

Have more questions? Submit a request


  • 1
    Kristof Vandermeersch

    Related to this feature request:

    There are certain pages that are updated long ago, but they don't need to be updated.
    For example a parent page that only lists the child pages.

    In the Space statistics and emails, it appears such a pages are expired, but in reality, they are not.
    I would like to mark those pages with a label like "doesnotexpire" so those pages have a green (good) status.

    To achieve this, the current Space-level archiving configurations are fine, the implementation should be different:

    “If a page has the label ‘neverexpires’”, then leave the status on “up-to-date” (=ignore the other expiration criteria).

    (Or, this should be a checkbox in the GUI where Archiving Configurations are defined)


    Edited by Kristof Vandermeersch
  • 0
    Levente Szabo

    +1 vote. There was a duplicate feature request: "As a user, I want to apply the archiving configurations to only a certain page or pages (and their trees) within a space or cross-space."

  • 0
    Lyudmila Danchuk

    I'd love to see this feature! it would add flexibility in managing pages of different kinds.

    For example, a department has a separate space and they have some general info that doesn’t change very often and some internal monthly reports that should be updated regularly, so this would help them manage both kinds of pages easier.

    Another example -- priority: there can be pages that have high priority and should be always perfectly up to date. Would be nice to assign some custom label (for example, "high-priority") and set monthly or quarterly expiration while keeping, say, the yearly expiration rule for all the rest. 

  • 0
    Benjamin Eshet

    Joining this request!

    Parent pages should not be expired nor archived, and since there are a lot of these kind of pages, i would not expect my users to tag or label each one.

    Maybe if the expiration of a parent page would also be affected by its children?

  • 0
    Paula Dasch

    Joining this reqest!

    I plan to have standard configs for all confluence spaces with

    * time based checks for expired and not viewed pages in combination with
    * label based checks for archiving pages

    After some time, I want to have time based checks for archiving pages, too.

    Now I have the glossaries, which are just pages under a page called glossary, within a space:

    I would like the authors etc. being notified if the content is not viewed or expired, but I want the glossary entries NOT being archived because of time based checks, e.g if nobody has viewed it for 2 years.
    Is there a way to prevent pages to be archived after a time, if the whole space has an time based archiving config ? e.g. by some special labels? When I use "noarchive" the glossary is not checked at all. That is not what I want.

  • 0
    Neta Elyakim

    Currently the supervisors are notified of the entire space. 
    We really need the ability to mark a page with a different label and the relevant user will receive the email.

    For example: 
    If label = X then the email will send to person X. 
    If label = Y then the email will send to person Y.


  • 0
    Dennis Veenstra

    We use the space as a knowledge base with a 365 day cycle. 

    There are a few pages where up to date info is required and those are sometimes forgotten. 

    So i'd like to see a label with a custom expiration period instead of a fixed date. 

  • 0
    Richard Steele

    Some of our spaces have a mix of policy (very stable), standards (less so), guidelines (fluid), and working documentation (very dynamic) that would ideally have different rules for expiration and archiving.

  • 0
    Rik De Valk

    Not all Confluence content is equal. Some content is more formal than other. There are pages that are only used by a team themselves; the organization doesn't really care if these pages are outdated. But there are also pages with formal product documentation. The organization cares about those pages being up-to-date. These pages often reside in one single Space.

    We therefore feel the need to be able to set Page expiration more granular. For example:

    not updated for X days
    labelled with "abc"
    count the page as expired

    Similar logic applies to the archiving strategy. There we'd also like to combine updated date AND labeled with.

    Currently we need to use Scriptrunner to manage this granular approach, by using a Job that adds labels based on CQL (label = X and updated < date). And then use the 'simple' expiry and archiving rules to only look at the labels. 

  • 0
    Monica Backman

    Would be grate to have the possibilty todefine a separate archiving configuration for just a set of pages, where you would turn off archiving but left page view and page update tracking on.

  • 0
    Aron Gombas

    UPDATE: We have released the Better Content Archiving app's cloud version just a few weeks ago. It addresses many points criticized in the Data Center version, including also this one.

    (Our plan is that, if there is interest, we will back-port the most valuable changes from the Cloud version to the Data Center one.)

    In the Cloud version, for example, statuses became extremely customizable. Among others, we allow the user to define a flexible CQL query for each status:

    For example, using this CQL the "Expired" status can test for different age limits for the two content types:

    (type = page and arch.event.lastUpdatedOn < now("-100d")) 
    (type = blogpost and arch.event.lastUpdatedOn < now("-200d"))

    The flexibility of CQL can also be used to handle single pages and page trees differently. For example, let's say the tree rooted in page #123 has a different age limit than other pages:

    (ancestor = 123 and arch.event.lastUpdatedOn < now("-100d")) 
    (ancestor != 123 and arch.event.lastUpdatedOn < now("-200d"))

    Can you follow the idea?

    🔥 Try this in action!

    Edited by Aron Gombas
Please sign in to leave a comment.