In-process Platform Extensions are extensions to the Platform or Content Services, and can be implemented through a variety of mechanisms. This information identifies the supported extension points and how you can leverage them to build your extensions to the Platform.
Read through the Getting started guide to get up to speed on the difference between in-process and out-of-process extensions.
To fully understand the extension points it is a good idea to first read through the
Platform Architecture section.
Also, you should get familiar with the Alfresco SDK as it is the recommended way of developing platform extensions.
The following table lists platform extension points, also referred to as Repository extension points, and links to relevant documentation:
|Extension point||Description||Support Status|
|Content Model||Content modeling provides a foundation for structuring and working with content. It is used to create a domain specific model that can be used to classify content and refine the search capabilities.||Full Support|
|Data Lists||Data lists are a useful feature available in sites. They can be used to keep records data. This is metadata that does not necessarily have any file content associated with it. It can be for example a to-do list or an event list.||Deprecated|
|Actions||Actions are Spring beans that act upon a content node. You develop actions using Java and register them with the repository through a Spring configuration file. Actions provide a place to locate reusable business logic.||Full Support|
|Behaviors / policies||Behaviors are logic that is tightly coupled to a repository event, such as adding content. Examples of out-of-the-box mechanisms that employ behaviors are versioning and auditing. Custom behaviors can be implemented to support features such as automatically adding a unique ID property to a content node when added to the repository, or automatically applying metadata attached to a folder to content stored in the folder.||Full Support|
|Bootstrap content||Most content management solutions require some content to be available before the system is going live. This can be users, groups, files and folders, sites, and so on. This content can be imported into the repository using a bootstrapping procedure.||Full Support|
|Permissions (Custom Roles)||Permissions and their groupings are defined in XML configuration files. The default files are found in the distribution configuration directory as permissionDefinitions.xml and sitePermissionDefinitions.xml. This configuration can be replaced or extended to create new roles.||Full Support|
|MIME Types||Content Services is able to automatically identify most file types and establish MIME type accordingly. However, if you have custom file types it is possible to add support for these by adding custom MIME types. You will typically also need to provide custom content transformations, and metadata extraction to fully support the content type.||Full Support|
|Content Stores||The repository has multiple content stores used for different purposes. By default, Content Services is configured to save files or content items in the File Content Store. You can also have an encrypted content store, or a custom content store, depending on your requirements.||Full Support|
|Audit Log||The Audit service can be used to keep a record of all operations performed in the content repository. The audit information is stored in a database in a form that is designed to be simple for third-party reporting tools to consume. Custom audit applications can be configured.||Full Support|
|Metadata Extractors||Content Services performs metadata extraction on content automatically, however, you may wish to create custom metadata extractors to handle custom file properties and custom content models.||Full Support|
|Admin Console Component||The Admin Console provides a way of managing services integrated into Content Services, or built on as extensions. Installed modules can have a custom Admin Console component, so that they can be managed from the well-known interface of the Admin Console.||Full Support|
|Content Transformers (and Renditions)||Content transformers transform one type of content into another. Transformations can also be chained together. You can create custom content transformers to transform one type of content into another, where that transformation is not already supported. Closely related to transformations are renditions, which can be used to generate another version of the content, such as a preview, thumbnail, HTML etc.||Full Support|
|Scheduled jobs||Content Services automatically runs a number of scheduled jobs, for example the content store cleaner job and temporary file cleaner job. It is possible to configure new scheduled jobs.||Full Support|
|Authentication||Content Services includes multiple authentication systems, including Active Directory, LDAP, Kerberos and so on, which you can opt to use. You can also create and plug in your own custom authentication system.||Full Support|
|Subsystems||Implementing a customization as a subsystem allows a more fully decoupled customization. It is, for example, possible to disable the customization at run time.||Full Support|
|Module Components||A Module Component executes code and is tied to a specific Module. It is packed with the rest of the module files in an AMP or JAR.||Full Support|
|Ratings||A rating scheme is a defined system of ratings for content which is identified by a unique name and which provides a minimum and maximum allowed rating. There are out of the box ratings facilities, but as a developer you can also implement your own.||Full Support|
|Patches||A patch executes a piece of Java code when Content Services starts up, and logs the result in