SlideShare a Scribd company logo
Alfresco at University of
Zaragoza
A history of (open) conversation
José A. Gutiérrez
Systems Analyst at University of Zaragoza
Angel Borroy
Developer at keensoft
The history
Protohistory
When Alfresco was born
Middle Ages
Fighting against the Elements
Machine Age
Finding automation paths
Information Age
Plan for World Domination
4.2.c
5.0.d
201605
201704
Protohistory
Before 2014
When Alfresco was born
Little history about Alfresco in the University of Zaragoza till 2014
●
Early 2013: First installation: National Security Framework (only one site)
●
Installed by Central Services Staff
●
Main blocking problems detected (LDAP synch…)
●
End 2013: General Secretariat request a custom development for document management
When Alfresco was born
Setup of the current system
●
September 2014: Installation of a development server with Alfresco 4.2.c
●
October 2015: Setup as production server with Alfresco 5.0.c
●
Access: Alfresco Share / WebDAV
Strange users requests
File Server
Request
Use Alfresco as a pure file server ("shared folder")
•
Current fileserver at the University can't be integrated with our LDAP server
•
Alfresco makes it easy to delegate management of access and permissions
Response
This is a Bad Idea. It is better to fix the server that using an inappropriate tool.
Lesson learned
The customer is not always right
Strange users requests
Web Server
Request
Use Alfresco to make some documents available in an intranet.
•
User already knows how to limit access using Alfresco
Response
This is also a Bad Idea. Learn how to administer your existing web content management system instead.
Lesson learned
Users should be informed about what they can already do, and about what Alfresco is for.
Middle Ages
2014
Fighting against the Elements
Element 1 : LDAP
Request
We use the ou=Accounts branch to authenticate and to lookup uidNumber, and then the ou=Admon to get
the businessCategory, which is used to limit access permissions.
uidNumber -> uid=$uname,ou=Accounts,dc=unizar,dc=es
uid=$uidNumber,ou=Admon,dc=unizar,dc=es
Response
https://github.com/keensoft/alfresco-summit-2014/tree/master/10-enhancements/06-custom-ldap-id
Lesson learned
Extending an Alfresco subsystem
Fighting against the Elements
Element 2 : Site creation
Request
Not every user should be able create a site in Alfresco
Response
https://github.com/keensoft/alfresco-summit-2014/tree/master/10-enhancements/09-hide-create-site
POST /share/service/modules/create-site?sUazqGRHn3Rd9x18TX4sOXWz/zNx8Go9gQ6MOoFt+V4= HTTP/1.1
* The requested URL returned error: 403 Forbidden
Lesson learned
Extending an Alfresco feature
Fighting against the Elements
Element 3 : Folder quota
Request
Users are allowed to upload unlimited amount of data in Sites but a quota is required for other zones (as
shared folders)
Response
https://github.com/keensoft/alfresco-myfiles-quota
Lesson learned
Adopting an Alfresco addon
Machine Age
2015
Finding automation paths
First use conditions
Request
Every new user has to accept Terms of Use for the service
Response
https://github.com/keensoft/alfresco-agreement-filter
Lesson learned
@WebFilter annotation as non-intrusive mechanism (web-fragment also will do)
Finding automation paths
Blocking uploads by mime type
Request
Some mime types (as videos) are not allowed in Alfresco
Response
https://github.com/keensoft/alfresco-mimetype-blocker
Lesson learned
Developing a behaviour to stop an uploading
Finding automation paths
Delegating group creation to Site Managers
Request
As there are a lot of users, local groups to sites are
required to be managed by Site Managers
Response
https://github.com/keensoft/alfresco-site-groups
Lesson learned
Aikau!
Finding automation paths
Administering with CURL
Request
Managing resources creation requires to be integrated in automatic processes by using scripts.
Bacht creating of sites from CSV file.
Response
https://github.com/ecm4u/alfresco-shell-tools
Lesson learned
Scripting (a lot of)
Finding automation paths
Administering with CURL
1. Existing shell tools (September 2015) won’t work with Alfresco 4.2 or later
2. New Cross-Site Request Forgery (CSRF) protection
3. Parsing headers to get cookies (JSESSIONID) required
4. Request “create-site” and parse initial response to get Alfresco-CSRFToken
5. POST all of this together with JSON data to get the site created
Finding automation paths
Unzipping contents automatically
Request
Unzip every ZIP file when uploading to Alfresco
Response
https://angelborroy.wordpress.com/2015/05/22/alfresco-customizing-alfresco-unzip-action-addon/
Lesson learned
Programming is not always required
Information Age
2016+
Plan for World Domination
Sharing documents with external users
Request
Content should be shared with external (public) users but metadata should not
Response
https://loftux.se/en/products-and-add-ons/alfresco-add-ons/alfresco-sharebox-1
Lesson learned
Wheel has not to be re-invented every time
Plan for World Domination
Sharing documents with external people
Request
Share externally not a single file but a full directory
Response
https://www.drupal.org/project/cmis
Lesson learned
Open Standards are good!
Sharing documents with external people
Request
Share externally a file but hide author’s name
Response
In-house php development to “translate” Alfresco URL public page to direct link to document
https://documenta.example.com/share/s/3CFfr9acT9yuBdM0gyZmWA
https://auxiliar.example.com/ur.php?u=3CFfr9acT9yuBdM0gyZmWA
https://documenta.example.com/share/proxy/alfresco-
noauth/api/internal/shared/node/3CFfr9acT9yuBdM0gyZmWA/content/?c=force&a=false
Lesson learned
Keep it simple!
Plan for World Domination
Plan for World Domination
Inviting service issues
Request
Inviting external users using a Manager created by InviteService results in DeniedAccess Exception
Response
https://issues.alfresco.com/jira/browse/ALF-21833
Lesson learned
Raising and following (solved) issues
Plan for World Domination
Current HW/SW features
VMware vSphere - CPU:2vCPU / RAM:8GB
HD: OS - 25 GB (SAS 15 krpm, Write RAID 10, Read RAID 5)
Swap - 4 GB SSD
Data - 100 GB (similar to OS) – Grown to 500 GB
CentOS GNU/Linux 7.0 – MySQL 5.x
Some statistics (April 2017)
●
Number of users: 1511
●
Number of sites: 93
●
Storage in users’ Homes: 243 MB
●
Main storage: 94 GB
●
Files: 79879
●
Database storage: 627 MB / 3 GB
●
Service support requests: 75/year, approx.
txt xml pk8 jpg pt8 docx xlsx doc xls pdf
0
5000
10000
15000
20000
25000
30000
35000
Learning from the history
Protohistory
When Alfresco was born
Middle Ages
Fighting against the Elements
Machine Age
Finding automation paths
Information Age
To Infinity and Beyond!
Finding experts outside the University
Extending Alfresco
Annotation, scripting, Aikau
Issues, PHP
Alfresco at University of
Zaragoza
A history of (open) conversation
José A. Gutiérrez
Systems Analyst at University of Zaragoza
Angel Borroy
Developer at keensoft

More Related Content

PDF
Ef09 installing-alfresco-components-1-by-1
PPTX
Alfresco Tech Talk Live 106
PPTX
Alfresco search services: Now and Then
PPTX
Discovering the 2 in Alfresco Search Services 2.0
PDF
Bee con2016 presentation_20160125004_installing
PPTX
Alfresco Certificates
PDF
Deploying Containerised Open-Source CSP Platforms
PPTX
(Re)Indexing Large Repositories in Alfresco
Ef09 installing-alfresco-components-1-by-1
Alfresco Tech Talk Live 106
Alfresco search services: Now and Then
Discovering the 2 in Alfresco Search Services 2.0
Bee con2016 presentation_20160125004_installing
Alfresco Certificates
Deploying Containerised Open-Source CSP Platforms
(Re)Indexing Large Repositories in Alfresco

What's hot (20)

PPTX
WWW09 - Triplify Light-Weight Linked Data Publication from Relational Databases
PDF
Bee con2016 lightning_20160125005_ocr
PPTX
How to extend (properly) and old Alfresco Share feature
PPTX
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
PDF
Installing and Getting Started with Alfresco
PDF
Alfresco Security Best Practices 2014
PPTX
201408 - Alfresco Tech Talk Live - Maven SDK 2.0
PDF
Alfresco Security Best Practices 2012
PDF
Docker for Ruby Developers
PDF
Oracle Database on Docker
PDF
How to deploy PHP projects with docker
PPTX
Sizing your alfresco platform
PDF
Exploiting Directory Permissions on macOS
PDF
Kayobe_desc
PDF
Take your database source code and data under control
PDF
24HOP Introduction to Linux for SQL Server DBAs
PPT
Monitoring Alfresco with Nagios/Icinga
PDF
PowerPoint Presentation
PDF
dNFS for DBA's
PDF
Configuration Management Tools on NX-OS
WWW09 - Triplify Light-Weight Linked Data Publication from Relational Databases
Bee con2016 lightning_20160125005_ocr
How to extend (properly) and old Alfresco Share feature
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
Installing and Getting Started with Alfresco
Alfresco Security Best Practices 2014
201408 - Alfresco Tech Talk Live - Maven SDK 2.0
Alfresco Security Best Practices 2012
Docker for Ruby Developers
Oracle Database on Docker
How to deploy PHP projects with docker
Sizing your alfresco platform
Exploiting Directory Permissions on macOS
Kayobe_desc
Take your database source code and data under control
24HOP Introduction to Linux for SQL Server DBAs
Monitoring Alfresco with Nagios/Icinga
PowerPoint Presentation
dNFS for DBA's
Configuration Management Tools on NX-OS
Ad

Similar to F03 a history of (open) conversation alfresco at university of zaragoza (20)

PPT
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
PDF
Elements_Share_for_Administrators.pdf
PDF
Alfresco : Implementing Membership and Security
PDF
Elements_User_Interfaces.pdf
PDF
Elements_User_Interfaces.pdf
PDF
Elements_User_Interfaces.pdf
PDF
Elements_User_Interfaces.pdf
PDF
Community vision and plan webinar 7 july2011
PPT
2 Magma Introduction
PPT
Slide 1
PDF
Summit2014 topic 0066 - 10 enhancements that require 10 lines of code
PPTX
Intro to Alfresco for Developers
PPTX
Amplexor alfresco-mini-2012-01-26
PDF
Javascript API based developments for improving your Alfresco experience
PDF
Javascript API based customizations for improving your Alfresco experience
PDF
Elements_Introducing_Alfresco.pdf
PPTX
Alfresco feb 2012
PDF
Introduction to Alfresco
PDF
Alfresco Day Madrid - Jeff Potts - Community
PDF
Alfresco day madrid jeff potts - community
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Elements_Share_for_Administrators.pdf
Alfresco : Implementing Membership and Security
Elements_User_Interfaces.pdf
Elements_User_Interfaces.pdf
Elements_User_Interfaces.pdf
Elements_User_Interfaces.pdf
Community vision and plan webinar 7 july2011
2 Magma Introduction
Slide 1
Summit2014 topic 0066 - 10 enhancements that require 10 lines of code
Intro to Alfresco for Developers
Amplexor alfresco-mini-2012-01-26
Javascript API based developments for improving your Alfresco experience
Javascript API based customizations for improving your Alfresco experience
Elements_Introducing_Alfresco.pdf
Alfresco feb 2012
Introduction to Alfresco
Alfresco Day Madrid - Jeff Potts - Community
Alfresco day madrid jeff potts - community
Ad

More from Angel Borroy López (20)

PDF
Alfresco and the Model Context Protocol (MCP)
PDF
Alfresco AI Webinar, creating a RAG system from scratch
PDF
Alfresco TechQuest 2024 - Alfresco Container-based Installation and Configura...
PDF
Transitioning from Customized Solr to Out-of-the-Box OpenSearch
PDF
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
PDF
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
PDF
Using Generative AI and Content Service Platforms together
PDF
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
PDF
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
PDF
Docker Init with Templates for Alfresco
PDF
Before & After Docker Init
PDF
Alfresco Transform Services 4.0.0
PDF
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
PDF
Using Podman with Alfresco
PDF
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
PDF
Alfresco Embedded Activiti Engine
PDF
Alfresco Transform Core 3.0.0
PDF
Collaborative Editing Tools for Alfresco
PDF
Desarrollando una Extensión para Docker
PDF
DockerCon 2022 Spanish Room-ONBOARDING.pdf
Alfresco and the Model Context Protocol (MCP)
Alfresco AI Webinar, creating a RAG system from scratch
Alfresco TechQuest 2024 - Alfresco Container-based Installation and Configura...
Transitioning from Customized Solr to Out-of-the-Box OpenSearch
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Using Generative AI and Content Service Platforms together
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
Docker Init with Templates for Alfresco
Before & After Docker Init
Alfresco Transform Services 4.0.0
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
Using Podman with Alfresco
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
Alfresco Embedded Activiti Engine
Alfresco Transform Core 3.0.0
Collaborative Editing Tools for Alfresco
Desarrollando una Extensión para Docker
DockerCon 2022 Spanish Room-ONBOARDING.pdf

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Empathic Computing: Creating Shared Understanding
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Encapsulation theory and applications.pdf
PDF
KodekX | Application Modernization Development
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPT
Teaching material agriculture food technology
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
Building Integrated photovoltaic BIPV_UPV.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Network Security Unit 5.pdf for BCA BBA.
MIND Revenue Release Quarter 2 2025 Press Release
Spectral efficient network and resource selection model in 5G networks
Empathic Computing: Creating Shared Understanding
Dropbox Q2 2025 Financial Results & Investor Presentation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Understanding_Digital_Forensics_Presentation.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Encapsulation theory and applications.pdf
KodekX | Application Modernization Development
Chapter 3 Spatial Domain Image Processing.pdf
Teaching material agriculture food technology
20250228 LYD VKU AI Blended-Learning.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Encapsulation_ Review paper, used for researhc scholars

F03 a history of (open) conversation alfresco at university of zaragoza

  • 1. Alfresco at University of Zaragoza A history of (open) conversation José A. Gutiérrez Systems Analyst at University of Zaragoza Angel Borroy Developer at keensoft
  • 2. The history Protohistory When Alfresco was born Middle Ages Fighting against the Elements Machine Age Finding automation paths Information Age Plan for World Domination 4.2.c 5.0.d 201605 201704
  • 4. When Alfresco was born Little history about Alfresco in the University of Zaragoza till 2014 ● Early 2013: First installation: National Security Framework (only one site) ● Installed by Central Services Staff ● Main blocking problems detected (LDAP synch…) ● End 2013: General Secretariat request a custom development for document management
  • 5. When Alfresco was born Setup of the current system ● September 2014: Installation of a development server with Alfresco 4.2.c ● October 2015: Setup as production server with Alfresco 5.0.c ● Access: Alfresco Share / WebDAV
  • 6. Strange users requests File Server Request Use Alfresco as a pure file server ("shared folder") • Current fileserver at the University can't be integrated with our LDAP server • Alfresco makes it easy to delegate management of access and permissions Response This is a Bad Idea. It is better to fix the server that using an inappropriate tool. Lesson learned The customer is not always right
  • 7. Strange users requests Web Server Request Use Alfresco to make some documents available in an intranet. • User already knows how to limit access using Alfresco Response This is also a Bad Idea. Learn how to administer your existing web content management system instead. Lesson learned Users should be informed about what they can already do, and about what Alfresco is for.
  • 9. Fighting against the Elements Element 1 : LDAP Request We use the ou=Accounts branch to authenticate and to lookup uidNumber, and then the ou=Admon to get the businessCategory, which is used to limit access permissions. uidNumber -> uid=$uname,ou=Accounts,dc=unizar,dc=es uid=$uidNumber,ou=Admon,dc=unizar,dc=es Response https://github.com/keensoft/alfresco-summit-2014/tree/master/10-enhancements/06-custom-ldap-id Lesson learned Extending an Alfresco subsystem
  • 10. Fighting against the Elements Element 2 : Site creation Request Not every user should be able create a site in Alfresco Response https://github.com/keensoft/alfresco-summit-2014/tree/master/10-enhancements/09-hide-create-site POST /share/service/modules/create-site?sUazqGRHn3Rd9x18TX4sOXWz/zNx8Go9gQ6MOoFt+V4= HTTP/1.1 * The requested URL returned error: 403 Forbidden Lesson learned Extending an Alfresco feature
  • 11. Fighting against the Elements Element 3 : Folder quota Request Users are allowed to upload unlimited amount of data in Sites but a quota is required for other zones (as shared folders) Response https://github.com/keensoft/alfresco-myfiles-quota Lesson learned Adopting an Alfresco addon
  • 13. Finding automation paths First use conditions Request Every new user has to accept Terms of Use for the service Response https://github.com/keensoft/alfresco-agreement-filter Lesson learned @WebFilter annotation as non-intrusive mechanism (web-fragment also will do)
  • 14. Finding automation paths Blocking uploads by mime type Request Some mime types (as videos) are not allowed in Alfresco Response https://github.com/keensoft/alfresco-mimetype-blocker Lesson learned Developing a behaviour to stop an uploading
  • 15. Finding automation paths Delegating group creation to Site Managers Request As there are a lot of users, local groups to sites are required to be managed by Site Managers Response https://github.com/keensoft/alfresco-site-groups Lesson learned Aikau!
  • 16. Finding automation paths Administering with CURL Request Managing resources creation requires to be integrated in automatic processes by using scripts. Bacht creating of sites from CSV file. Response https://github.com/ecm4u/alfresco-shell-tools Lesson learned Scripting (a lot of)
  • 17. Finding automation paths Administering with CURL 1. Existing shell tools (September 2015) won’t work with Alfresco 4.2 or later 2. New Cross-Site Request Forgery (CSRF) protection 3. Parsing headers to get cookies (JSESSIONID) required 4. Request “create-site” and parse initial response to get Alfresco-CSRFToken 5. POST all of this together with JSON data to get the site created
  • 18. Finding automation paths Unzipping contents automatically Request Unzip every ZIP file when uploading to Alfresco Response https://angelborroy.wordpress.com/2015/05/22/alfresco-customizing-alfresco-unzip-action-addon/ Lesson learned Programming is not always required
  • 20. Plan for World Domination Sharing documents with external users Request Content should be shared with external (public) users but metadata should not Response https://loftux.se/en/products-and-add-ons/alfresco-add-ons/alfresco-sharebox-1 Lesson learned Wheel has not to be re-invented every time
  • 21. Plan for World Domination Sharing documents with external people Request Share externally not a single file but a full directory Response https://www.drupal.org/project/cmis Lesson learned Open Standards are good!
  • 22. Sharing documents with external people Request Share externally a file but hide author’s name Response In-house php development to “translate” Alfresco URL public page to direct link to document https://documenta.example.com/share/s/3CFfr9acT9yuBdM0gyZmWA https://auxiliar.example.com/ur.php?u=3CFfr9acT9yuBdM0gyZmWA https://documenta.example.com/share/proxy/alfresco- noauth/api/internal/shared/node/3CFfr9acT9yuBdM0gyZmWA/content/?c=force&a=false Lesson learned Keep it simple! Plan for World Domination
  • 23. Plan for World Domination Inviting service issues Request Inviting external users using a Manager created by InviteService results in DeniedAccess Exception Response https://issues.alfresco.com/jira/browse/ALF-21833 Lesson learned Raising and following (solved) issues
  • 24. Plan for World Domination Current HW/SW features VMware vSphere - CPU:2vCPU / RAM:8GB HD: OS - 25 GB (SAS 15 krpm, Write RAID 10, Read RAID 5) Swap - 4 GB SSD Data - 100 GB (similar to OS) – Grown to 500 GB CentOS GNU/Linux 7.0 – MySQL 5.x
  • 25. Some statistics (April 2017) ● Number of users: 1511 ● Number of sites: 93 ● Storage in users’ Homes: 243 MB ● Main storage: 94 GB ● Files: 79879 ● Database storage: 627 MB / 3 GB ● Service support requests: 75/year, approx. txt xml pk8 jpg pt8 docx xlsx doc xls pdf 0 5000 10000 15000 20000 25000 30000 35000
  • 26. Learning from the history Protohistory When Alfresco was born Middle Ages Fighting against the Elements Machine Age Finding automation paths Information Age To Infinity and Beyond! Finding experts outside the University Extending Alfresco Annotation, scripting, Aikau Issues, PHP
  • 27. Alfresco at University of Zaragoza A history of (open) conversation José A. Gutiérrez Systems Analyst at University of Zaragoza Angel Borroy Developer at keensoft