binduwavell

Alfresco Content/Process App Module/extension mechanism

Discussion created by binduwavell on Jan 23, 2018
Latest reply on Sep 6, 2018 by john.knowles

I have created the following issue for the Alfresco Content App (ACA):

Module/extension mechanism · Issue #179 · Alfresco/alfresco-content-app · GitHub 

 

Following is the initial detail, let's use this page on the community to discuss our needs in this area:

 

I believe that there has been some work to create a module system where we can create an Alfresco Content App (ACA) customization artifact and drop it into a location in the OOTB app without extending the code of the ACA. It would be great to have some discussion about the approach(es).

There are a few higher level goals here:

  • Provide a way for implementors to create re-usable enhancements to ACA that can be composed when creating a solution.
    • e.g. I want to add AOS and Case Management
  • Provide a way for implementors to create enhancements that are likely to be upgrade safe

Following is an initial list of highly desirable features of such a system (in my opinion):

  • It should be possible to add page components to the router via configuration
    • It should be possible to configure that certain custom pages show up in the toolbar
    • It should be possible to configure that certain custom pages don't show up in the toolbar (if they are contextual.)
  • It should be possible to add buttons to the main toolbar
  • It should be possible to configure actions for the "New" menu
  • It should be possible to configure actions for the User menu (far right of toolbar)
  • It should be possible to add document list actions (and associated logic for when to display/enable the same) via configuration
    • Ideally it should be possible to affect the ordering of these actions via configuration
    • Ideally it should be easy to add an action to route to a custom page
    • Ideally it should be easy to route to another ADF app; passing context, credentials and a back link (I will create an ADF issue for this.)
    • Ideally one action can be configured as the default in certain conditions (i.e. don't go to preview, instead route to another application when a document is activated.)
  • It should be possible to configure custom result columns
    • Ideally it should be possible to configure different columns depending on context. e.g. under contracts I want to show one set of columns, under finance a different set of columns should be displayed
  • It should be possible to configure custom cell content renderers
  • It should be possible to configure flag providers
  • Once search is fleshed out it should be possible to configure advanced search providers
    • It should be possible to configure the zero state when a search returns zero results
  • It should be possible to configure additional "smart folders" like "My Favorites", "Shared Documents" etc.
    • Ideally it should be possible to affect the ordering of these via configuration
  • It should be possible to configure preview components
  • It should be possible to configure metadata forms (create, edit, view at least)
  • It should be possible to configure custom field renderers fro metadata forms.
  • It should be possible to configure Open With menu items
  • It should be possible to configure "More Options" items
  • Would be great to allow us to configure components to trigger during the upload process
    • Some might be passive (once upload completes perform some API calls against the uploaded docs)
    • Some might be active, gather metadata before or after the upload
  • It should be possible to configure left and right trays based on contextual information/logic
  • Ideally "modules" can interact with each other. As such, having some control over load order of modules may be important.

As an overarching goal there should be a single config file in ACA and one in each "module" that plugs the module into the ACA. i.e. don't make devs sift through many different configuration files. Ideally configuration merging/replacement strategies will be well documented and easy to determine the effective configuration once all modules have been deployed.

I'm sure other folks will have additional ideas, I hope this is a reasonable starting point.

Outcomes