Alfresco Extensions - Introduction
The Alfresco product, including the platform repository, built in workflow engine, and the Share user interface, contains a number of so called Extension Points that can be used to customize the product to fit your domain.
Extending the platform repository is a fundamental part of any content management project, and in most cases it starts with designing and deploying a custom content model suited to a specific domain. Custom REST APIs and processes are then developed to make use of this domain specific content model.
The following list summarizes the available extension points on the Alfresco Platform/Repository side:
For more information about platform extensions, including an architecture overview see the online documentation.
Going hand-in-hand with the platform extensions are the user interface customizations. The custom content models, REST APIs, and processes all need some form of custom user interface.
The following list summarizes the available extension points on the Alfresco Share/UI side:
For more information about share extensions, including an architecture overview, see the online documentation.
A platform integration is any remote service, application, or client that talks to the Alfresco repository remotely over HTTP.
In most cases you would build your extensions on top of the platform application or the Share user interface. However, there are use cases that does not fit the embedded extension approach very well, and where the remote integration approach makes more sense:
- Enterprise Application Integration (EAI): providing existing enterprise applications with content management functionality - for example, a CRM system that needs to store and retrieve documents in a central repository
- WCM integration: providing files and images to a web content management system
- Mashup: a web application that uses content from many different sources and that also needs to display some file and folder information
- Custom UIs: this is the use case when the Share UI deviates too much from what the solution requires, so it makes more sense to build a new content management client from scratch
- Mobile clients: such as iOS and Android applications that manage content
The REST API lets you access content in an on-premise Alfresco repository, and in Alfresco cloud, from your own applications. The API is RESTful, which means each call is an HTTP request, so you don't even need a programming language to try it out. You can just type a URL address in a web browser.
The REST API consists of two parts, the CMIS REST API, which lets you manage and access folders and files in the repository, and the Alfresco REST API, which lets you manage Alfresco-specific features such as ratings and comments, that are not covered by the CMIS standard.
- Use the CMIS REST API to manage files and folders and their generic properties in the repository. For example, if you want to read, write, modify, create, or delete a file, then this is the API you use.
- Use the Alfresco REST API to manipulate Alfresco content features that are not part of the CMIS specification. Ratings and comments are two examples of such features, and you can find a full list here.
The quickest way to get started is to use our online REST API Explorer, based on the OpenAPI initiative. It gives you full documentation for each endpoint, and a “Try it out!” button so you can use each method.