Feasibility of Tweaking Alfresco Community Edition for specialized requirements?

cancel
Showing results for 
Search instead for 
Did you mean: 
vkaustubh
Active Member

Feasibility of Tweaking Alfresco Community Edition for specialized requirements?

Greetings!

Let me first congratulate all the developers of the Alfresco Community Edition for making such a great tool. We have been searching for a tool to manage our data in a centralized and consistent manner. But we need a very specialized tool in that we need the tool to be able to enforce several workplace policies naturally. Features we expect like format of the document not mattering, there being a review process, all seem to be in place already. But there are some other features which we need that'd make Alfresco an immediate savior for us.

Specifically, I was looking at following features which as I understand, are not supported out of the box in Alfresco. These include:

  • We would want that the creator of the document in a project (site) not be allowed to delete their own document unless cleared by someone higher in the hierarchy.
  • It is inconvenient if the reviewer of the document downloads a document assigned to him/her for review and somebody uploads a new version in the meantime. We'd want the document locked during a review.
  • Post review, if document is approved, it should get locked. Nobody can add revisions to the document unless the creator or the site manager explicitly requests more updates to it.
  • Enforce a confidentiality flag by default for certain sites / projects. This means every document starts by being visible only to the creator and the site manager. Later, explicit read/write permissions may be given.
  • Ability to 'fork' a site. One project has reached its conclusion but the same project needs to be redone with an enhanced set of requirements but can use the current project as a starting point.
  • Sites may refer to sites via connections or linkages. eg. "A TimeSheet Project" is needed in a bigger project which aims to create a Scrum Project Manager. The linkages would imply default access policies for users of the bigger project etc.
  • Support newer kinds of content (eg. architectural blueprints) with scope for assigning newer kinds of metadata.

The purpose of this question is to ask the feasibility of extending Alfresco to achieve the above and the time scales needed for a team that unfortunately has no Java experience (as a very small team, we rely on higher level languages like Python to quickly deliver products.) I'd be grateful for expert opinions on this. It'll help us decide if we should invest time in mastering the APIs of Alfresco vs leveraging tools we are already well versed with to create a custom solution.

PS: New here, apologies in advance if I may have overlooked a code of conduct. Thanks.

5 Replies
afaust
Master

Re: Feasibility of Tweaking Alfresco Community Edition for specialized requirements?

All your requirements are generally feasible. For most of them, you'd only need a modest level of customisation. E.g. removing the "ownership" privilege to restrict deletion is something I do in almost every customer project with a simple policy / behaviour within a few minutes. Handling state-based locking / protection can be handled either by policies / behaviours as well, as part of a content process or just by providing the specific user actions in the UI to lock a document. There already are two modes of locking provided via APIs - a simple lock or a lock with "working copy" for handling longer term editing. "Forking" a site can be as simple as copying its contents into a new site, and taking care to also copy any version histories.

Site linkages are not something that is done often, but addons exist (disclaimer: this is an addon I did for a customer to have departmental sites contain their specific project sites).

Where I see a bit of a question mark is the lack of Java experience. With the newest ReST API you can do a lot with external tooling in whatever language you like, but most of the features listed sound more like extension / additions around the default UI / product (Share), which typically requires Java, JavaScript and FreeMarker - Java especially when we are talking about inherent, transactionally consistent system policies / behaviours.

vkaustubh
Active Member

Re: Feasibility of Tweaking Alfresco Community Edition for specialized requirements?

Dear Axel,

Thank you so much for taking the time out to answer my queries. In my first attempt to understand the API and the organization of the Alfresco code, I ended up going around in circles and got confused. That led me to ask this question in the forums.

I don't think adjusting to Java should be a major problem for us. We will give it a try. Not to bother you too much but if you have some advice about the best path to follow to get to understanding UI customization better, I'd really appreciate it. Thanks so much for your help again.

vkaustubh
Active Member

Re: Feasibility of Tweaking Alfresco Community Edition for specialized requirements?

Dear Axel,

Would it be possible for a site to have multiple parents in case of your Alfresco extension for site hierarchy? If not, would it be easy to modify it to support this?

Thanks in advance.

afaust
Master

Re: Feasibility of Tweaking Alfresco Community Edition for specialized requirements?

In the current state of the site hierarchy addon, a site can only have one parent. As it is intended as a top-down tree. But it would be possible to support multiple parents by changing the association multiplicity, adapting the service validation and UI selection.

vkaustubh
Active Member

Re: Feasibility of Tweaking Alfresco Community Edition for specialized requirements?

Thanks for the response.