Editor's note (2019-10-02): A slight oversight on our part has been brought to our attention: Our companies artefact repositories have not yet been replaced by public repositories yet. We apologise for this inconvenience and will amend this as soon as possible. To view our open source projects, visit our GitHub page.
Care4Alf is a toolkit designed by Xenit, to give system administrators an easy way to reduce the overhead costs related to managing an Alfresco Repository. The toolset provides easy visibility and access to parts of Alfresco that are normally very difficult to access, like system settings and the underlying spring configuration.
Care4Alf aims to make diagnosing and solving operational issues easier and faster. Development on the tool started as an initiative to cut down on time spent on writing and writing regular maintenance scripts. As it grew, more efforts were made to formalize the structure, making it easier for new developers to start using these tools.
Technically speaking, Care4alf is a set of custom web scripts and a complimentary UI. It is subdivided into different modules, each of which provides a specific set of functions that can investigate and analyze a specific aspect of the Alfresco system.
In the past, the plugin has been supported on Alfresco 4.2, and currently, it’s under support for all Alfresco 5 minor versions as well as Alfresco 6 and 6.1.
Care4alf requires the installation of Dynamic Extensions, as it makes use of the OSGi functionalities that that plugin exposes (for more info on Dynamic Extensions and OSGi you can read this previous blog post).
The Care4Alf toolkit has two distinct types of modules:
1. Visibility modules
The viewing modules serve to visually expose the data settings. As such, it cannot be used to change the state of the data or the system. These modules include:
- A limited SQL client with read-only access
- A listing of all spring beans in the system
- A tail on the catalina.out file
2. Editing modules
The editing modules are the more powerful subcomponent as it allows changes to the system while it is running. Some of these changes are ephemeral, for example, changing the logging levels. Other changes are permanent, such as changes made to node metadata in the node browser. The browser allows an admin to change any aspect or property without system interference - and these changes will be persistent.
Care4alf was created to cut down on time spent doing simple tasks that require a lot of XML configuration and restarts in an out-of-the-box Alfresco. Additionally, it gives more power to administrators by bypassing some of the system checks when modifying data.
Practical examples for System Administrators
Reverting to older amp versions
When the latest version of SomeExtension plugin has a bug that critically interferes with the customers' own customizations. The maintainer of the amp cannot currently fix the bug. It is therefore practical to go to the previous version, in which the bug is not yet present.
Alfresco does support downgrading amps natively. However, if an administrator is given this task they’d have to figure out the internal id of the amp, and then modify this value directly in the database, possibly requiring the oversight and assistance of the database administrator.
With care4alf, this task is as easy as going to the appropriate module page and setting the desired version number for the targeted amp directly. Installation of the replacing version of the plugin can now continue as usual.
Search-based metadata export:
Consider a business procedure that requires employees to analyze the work of a contributor to the repository. The work of the contributor is spread out over the entire file-folder structure. The search function or admin node browser in Alfresco Share allows a user to find relevant nodes with an alfresco full-text search (afts or fts) query, but it does not allow saving the result of that search, let alone specific sets of metadata within that search.
The care4alf export module allows an administrator to input an fts-query and define which metadata should be gathered. Based on these parameters, a CSV is created that contains the requested data, ready for download or saved inside the repository.
Targeted bulk-editing of metadata
For systems where data is imported in batches, it is not inconceivable that, due to a manual typing error, a significant amount of nodes may have an incorrect value for a metadata field.
With the bulk editing tool, rectifying such an error is a small task. Based on the input of an fts-query or a CSV containing searchable properties, the targeted nodes can be selected and the correcting operation can be applied comprehensively.
Impersonation of regular users
Anyone who offers support will have seen cases where a specific user could not execute a certain action. In order to verify these types of reports, the impersonate function allows an administrator to temporarily interact with the system as if they were the concerned user, without having to start a process of requesting credentials and refreshing them afterward.
Care4alf offers a variety of tools to facilitate administrators' work, whether that is a diagnosis of problems, supporting users or developing new features. It makes quick work out of tedious tasks. And all of it is open source.
In this article we discussed a few examples, but there are many more modules to be discovered (31 to be exact). The project is currently hosted on Bitbucket at https://bitbucket.org/xenit/care4alf/ (and it will be moving to GitHub in the near future). The only requirement is the usage of Dynamic Extensions (https://github.com/xenit-eu/dynamic-extensions-for-alfresco).