2

I am new to Alfresco. Using version 5.0.d. I am developing CMIS based application code to index and access documents into Alfresco repository.

All these documents that our application would be storing is mainly by/for our application. So probably a limited set of users of our clients might want to manage them through Share UI.

When I go into Alfresco Share interface, I see the concept of sites. I decided to create a site for our application. Then inside the site, I am able to create folders Underneath the site, I also see a document library location, inside which as well I can create folders

I am having a hard time choosing or deciding on an approach.

In order to access the 'Sample' folder that is created directly under the 'testSite' site, CMIS (Java) code looks like this:

Folder folder = (Folder) cmisSession.getObjectByPath("/Sites/testSite/Sample");

In order to access the 'TestFolder' folder that is created under the document library of the site:'testSite', CMIS (Java) code looks like this:

Folder folder = (Folder) cmisSession.getObjectByPath("/Sites/testSite/documentLibrary/TestFolder");

Code does not look any different other than the path...

Can you tell me, why would anyone would prefer to organize their folders, one way or the other?

I also do not know if this is the best way, or if there is any other way, in CMIS API to access the folders underneath a site...

gsakthivel
  • 365
  • 3
  • 17
  • If you want to (easily) access the files through Share, put them in the Document Library of 1 or more sites – Gagravarr Feb 26 '16 at 23:41

1 Answers1

1

You do not necessarily need to use sites to store your contents. Sites are designed as collaboration spaces. When you use a site you get "for free":

  1. Simplified (but sometimes not flexible enough) role based access permissions. The idea is that a site manager decides, at the site level, the role of each user. Permissions can be applied to roles instead of groups or users. This helps to simplify the administration of permissions, but sometimes is not flexible enough. Using the API or accessing the folders of the sites in the "repository view" (see for example http://docs.alfresco.com/4.2/concepts/share-repodoclib.html), you can set more granular permissions, but doing it somehow breaks the "simplified" role based permissions.
  2. Collaboration pages: document library, blog, calendar, data lists, etc...
  3. A site dashboard that can have a different configuration for each site and site specific dashlets
  4. Site visibility: public, moderate, private; and the function to invite users and manage users at site level
  5. Probably other functionality that do not come to my mind right now

As I mentioned, the "document library" is one of the pages in a site. It is designed to collaborate on contents. If you are using sites, use the document library for contents on which users will collaborate. These contents are stored in the path:

/Sites/site-name/documentLibrary/

You can definitely create contents directly in /Sites/site-name/ but it won't be visible in the "document library" page of the site. This is what Alfresco does to store other type of contents associated with a site such as: data lists, calendar events, discussions, etc...

If your repository is accessed only with a custom application by CMIS, I am not sure that you will get any benefit using sites. I wouldn't use it if you would end up with a single site. I would suggest to use it, if you think that it can be useful to "invite" users to sites and assign permissions based on roles.

Marco Altieri
  • 3,726
  • 2
  • 33
  • 47