Arquitectura
Arquitectura detallada
Repositorio
Todos los contenidos en Alfresco son almacenados en el Repositorio, que denomina una entidad lógica que incluye:
- Los ficheros físicos que son subidos por los usuarios, que son almacenados en el sistema de ficheros
- Los ficheros de índices que permiten buscar los contenidos, que son almacenados en el sistema de ficheros y controlados por SOLR
- Los metadatos o propiedades de los ficheros, que son almacenados en base de datos
Todos los ficheros y carpetas en el Repositorio son denominados nodos. Los nodos se relacionan entre sí mediante relaciones de contenido o de asociación. Los nodos están contenidos en un almácen (Store), que tiene un nodo raíz del que cuelgan todos los demás.
Almacenes
Nodos
Se identifican únicamente en el repositorio mediante su node reference o NodeRef
{store protocol://store identifier}/UUID
Ejemplo: workspace://SpacesStore/986570b5-4a1b-11dd-823c-f5095e006c11
Estos tres elementos son almacenados como metadatos para cada nodo
sys:store-protocol
sys:store-identifier
sys:node-uuid
Además existe una propiedad denominada cm:content
que apunta a la ubicación física del archivo en el sistema de ficheros.
Cuando se crea un nodo, se asignan automáticamente algunas propiedades:
- Para el aspecto
cm:auditable
(fecha de creación, usuario creador, fecha de modificación, usuario modificador) - Obtenidas por algún extractor (Apache Tika): autor, EXIF, video...
Metadatos
Todas las propiedades (tipos, aspectos, metadatos, asociaciones...) se definen asociadas a un modelo de contenido, lo que define un espacio de nombres único que se expresa mediante un QName
{http://www.alfresco.org/model/content/1.0}description
{http://www.keensoft.es/model/content/1.0}description
Cada modelo de contenido tiene asociado también un prefijo que puede ser utilizado para nombrar la propiedad de manera acortada: cm:description
Algunos QNames de uso frecuente:
- Objeto
cm:object
- Carpeta
cm:folder
- Fichero
cm:content
Permisos
Cada nodo tiene asociado un permiso, aunque también puede heredarlo de su padre. De manera habitual, los permisos son asignados mediante Roles, aunque también pueden ser asignados a usuarios o grupos.
Roles por defecto (Repositorio)
- CONSUMER
- CONTRIBUTOR
- EDITOR
- COLABORATOR
- COORDINATOR
Roles por defecto (para cada sitio creado en Share)
- SITE_SiteShortName_CONSUMER
- SITE_SiteShortName_CONTRIBUTOR
- SITE_SiteShortName_COLABORATOR
- SITE_SiteShortName_COORDINATOR
Grupos por defecto
- EVERYONE
- ALFRESCO_ADMINISTRATORS
- ALFRESCO_SEARCH_ADMINISTRATORS
- SITE_ADMINISTRATORS
- E-MAIL_CONTRIBUTORS
En el repositorio los roles y grupos son tratados de manera genérica como Autoridades
- Los grupos son prefijados con
GROUP_
- Los roles son prefijados con
ROLE_
Existe una autoridad especial denominada OWNER
, que se asigna al creador del nodo. El owner de un nodo tiene permisos de administración sobre ese nodo (independientemente de su Rol o Grupo). Los usuarios administradores pueden Tomar posesión de cualquier nodo.
Nodos en el repositorio
Extensión del repositorio
Extensión de share
Mecanismos de integración
Revisión
]
???
protocol + store id + UUID
???
lucene + SOLR