Archive - Archive & restore JCR content in jContent
The Archive module adds two Content Actions to jContent — Archive and Restore — and an Archive Manager accordion so editors can browse, sort, and restore archived content without ever leaving jContent.
Archived nodes are moved to a per-site /Archives/YYYY/MM/ folder tree, tagged with the jmix:archived mixin, and stamped with metadata (original path, original parent UUID, archive timestamp, archiver's user reference) so a restore returns them exactly where they came from. Publication safety is enforced: published content can't be archived until it's unpublished. The Archive Manager (built on jContent 3.7's tableConfig.columns extension point) shows the archive-specific columns editors actually want — type, original path, archived date, archived by.
The module ships with three permissions (archiveContent, unarchiveContent, manageArchive) and pre-configured roles for editor, editor-in-chief, and site-administrator, so it slots into an existing site's ACL model without further setup. Everything runs through Jahia's GraphQL API and the UI uses Moonstone components for a native jContent feel.
Captures d'écran
Comment installer
1. Download archive-1.1.0.jar from https://github.com/Jahia/archive/releases/tag/v1.1.0.
2. Deploy to your Jahia server via one of:
- Module Manager (Administration → Modules → Upload) — recommended.
- Drop the JAR into digital-factory-data/modules/ on the server filesystem — for local dev.
- Provisioning API: POST /modules/api/provisioning with an installOrUpgradeBundle script.
3. On first activation, Jahia registers the jnt:archiveContentFolder node type, the jmix:archived mixin, the three permissions, and the default role mappings.
4. Enable the module on the target site (Administration → Web Projects → site → Modules).
5. Grant users the appropriate role(s) via Administration → Users & Roles.
Requires Jahia DX 8.2.3+ and jContent 3.7+ (the Archive Manager custom columns depend on jContent 3.7's tableConfig.columns extension point).
FAQ
Q. What happens to a node's URL when it's archived?
A. The node moves to /<site>/Archives/YYYY/MM/, so its live URL changes. On restore, the node returns to its original path (stored on the jmix:archived mixin). If SEO redirects matter, add a redirect rule for the old path or extend the archive service to write a vanityUrl fallback.
Q. Can I archive published content?
A. No — a warning dialog blocks the operation. Unpublish manually, then retry. This is a safety guardrail to prevent accidental removal of a live URL without an editorial signal.
Q. Can archived content be edited?
A. Not by default. jmix:archived is a marker mixin; combined with the archive folder's jmix:nolive, standard editor roles can't publish it. For hard read-only enforcement, add ACL rules that deny jcr:write on nodes carrying jmix:archived.
Q. Does the module support bulk archive?
A. Single-node archive today. Bulk archive is on the roadmap.
Q. Is auto-archive by content age supported?
A. Not yet — on the roadmap. The mixin schema and folder structure are scheduler-friendly, so a Groovy or Java job can be built against the same primitives.
Q. Does the module work on Jahia 8.2.2 or earlier?
A. Core archive/restore actions work; the Archive Manager custom columns require jContent 3.7+, which ships with Jahia 8.2.3+. On older Jahia the accordion still opens but shows the default column set.
Q. What language is the UI available in?
A. English and French out of the box. Additional languages can be added by dropping translation files under src/main/resources/javascript/locales/.
Q. Is data ever deleted?
A. No. Archive is a move + tag operation, not a delete. To physically remove an archived node, an administrator uses jContent's normal delete flow.
Q. What happens on module uninstall?
A. The UI extensions disappear, but the archived content stays under /<site>/Archives/. Reinstalling the module restores the UI and the archived items become browsable again.
Q. Where are logs?
A. Standard Jahia logs, prefixed with [ArchiveContent] for archive/restore operations.
MIT License
Copyright (c) 2026 Jahia Solutions Group
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.