SlideShare a Scribd company logo
You probably didn’t know that…
(small hidden features in Alfresco)
David Ciamberlano
Learn. Connect. Collaborate.
Are you a curious person?
Alfresco hides many small less known features that maybe you’ll never need to
use… but that might prove useful on more than one occasion. So…
you probably didn’t know that…
Learn. Connect. Collaborate.
You can change the unchangeable
In Alfresco there are a few properties that cannot be changed
(… for a good reason!):
• creator of a node (cm:creator)
• creation date (cm:created)
• modifier (cm:modifier)
• modification date (cm:modified)
• […]
Learn. Connect. Collaborate.
these properties belongs to the cm:auditable aspect (in contentModel.xml).
In a ideal world we wouldn’t need to change them…
… but unfortunately we don’t live in a ideal world.
The "good news" is that there is a way to change these values…
And it’s (relatively) simple!
You can change the unchangeable
Learn. Connect. Collaborate.
1
A behavior prevents these metadata from being changed.
All we need is to disable that behavior before the update.
We can disable the
auditable behavior
for a specific node
immediately before
the setProperty()…
You can change the unchangeable
Learn. Connect. Collaborate.
…and re-enable it soon after (note the finally block)!
A behavior prevents these metadata from being changed.
All we need is to disable that behavior before the update.
We can disable the
auditable behavior
for a specific node
immediately before
the setProperty()…
You can change the unchangeable
Learn. Connect. Collaborate.
Import an acp preserving the uuid of the nodes
To rely on the uuid to retrieve a document from an external application is not
a best-practice…
but it happens often!
There’s a way to preserve the original uuid when we need to import an acp.
Learn. Connect. Collaborate.
Import an acp preserving the uuid of the nodes
we can create a new action, extending the
OOTB importer class
(ImporterActionExecuter)…
… and override its executeImpl
method…
Learn. Connect. Collaborate.
2
Import an acp preserving the uuid of the nodes
we can create a new action, extending the
OOTB importer class
(ImporterActionExecuter)…
…in which we find the
importservice.importView() call.
To preserve the uuid, we have to use a
custom modified ImporterBinding
… and override its executeImpl
method…
* to see the complete code: https://gist.github.com/david-ciamberlano
Learn. Connect. Collaborate.
For example, we can unzip an acp, open its xml descriptor and modify the
uuid of one of its nodes…
Import an acp preserving the uuid of the nodes
acp xml descriptor
Learn. Connect. Collaborate.
After the import of the acp,
we will find a node in
Alfresco with the previously
modified uuid
Import an acp preserving the uuid of the nodes
Residual?
what’s that
column for?
Learn. Connect. Collaborate.
Residual properties
In Alfresco, properties may exist that do not belong to any registered model.
They are called residual properties and are useful, for example, to handle the case of a
property removed from a type or an aspect.
Suppose we have an aspect with a property called acme:test-residual applied to a certain
node:
what if we remove that property from the aspect?
Learn. Connect. Collaborate.
3
Residual properties
The property continue to exists for the node… but is marked as residual.
what if we remove that property from the aspect?
In Alfresco, properties may exist that do not belong to any registered model.
They are called residual properties and are useful, for example, to handle the case of a
property removed from a type or an aspect.
Suppose we have an aspect with a property called acme:test-residual applied to a certain
node:
Learn. Connect. Collaborate.
Residual properties
You can also create a "residual property" programmatically,
as if it were any other property…
*
* "whoami" does not belongs to any model
Learn. Connect. Collaborate.
Less known aspects - cm:indexControl
You can control the indexing of contents in Alfresco applying the aspect
cm:indexControl to a node.
The aspect exposes 2 properties:
• cm:indexed (controls whether or not the node is indexed)
• cm:isContentIndexed (controls the full-text indexing of the node)
Learn. Connect. Collaborate.
Less known aspects - cm:indexControl
cm:indexed cm:isContentIndexed indexing
True True metadata and content
True False metadata but not content
False - no
Properties values combinations:
Learn. Connect. Collaborate.
Less known aspects - sys:hidden
The sys:hidden aspect (defined in systemModel.xml) allows you to hide a node from a
client or service (such as share, webdav, cifs, …).
4
Learn. Connect. Collaborate.
Less known aspects - sys:hidden
sys:hidden has 5 properties
(clientVisibility, hiddenFlag, cascadeHidden, CascadeIndexControl, clientController)
with which we can modify its behavior.
Learn. Connect. Collaborate.
Less known webscripts - export a site
It’s possible to export the whole content of an Alfresco Site with one command:
GET: /alfresco/service/api/sites/{site-shortname}/export
Learn. Connect. Collaborate.
Less known webscripts - export a site
It’s possible to export the whole content of an Alfresco Site with one command:
GET: /alfresco/service/api/sites/{site-shortname}/export
Learn. Connect. Collaborate.
To check quickly if a custom model has been correctly installed we can use (guess?) a
webscript:
GET /alfresco/service/api/dictionary
GET /alfresco/service/api/classes/{type-name}
Less known webscripts - dictionary & classes
You probably didn’t know that…
(small hidden features in Alfresco)
David Ciamberlano
Thank you!
Ad

More Related Content

What's hot (20)

Getting Started with CMIS
Getting Started with CMISGetting Started with CMIS
Getting Started with CMIS
Jeff Potts
 
From zero to hero Backing up alfresco
From zero to hero Backing up alfrescoFrom zero to hero Backing up alfresco
From zero to hero Backing up alfresco
Toni de la Fuente
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco Repository
Jeff Potts
 
Alfresco Security Best Practices Guide
Alfresco Security Best Practices GuideAlfresco Security Best Practices Guide
Alfresco Security Best Practices Guide
Toni de la Fuente
 
Alfresco security best practices CHECK LIST ONLY
Alfresco security best practices CHECK LIST ONLYAlfresco security best practices CHECK LIST ONLY
Alfresco security best practices CHECK LIST ONLY
Toni de la Fuente
 
Alfresco Security Best Practices 2014
Alfresco Security Best Practices 2014Alfresco Security Best Practices 2014
Alfresco Security Best Practices 2014
Toni de la Fuente
 
Alfresco node lifecyle, services and zones
Alfresco node lifecyle, services and zonesAlfresco node lifecyle, services and zones
Alfresco node lifecyle, services and zones
Sanket Mehta
 
Sizing your alfresco platform
Sizing your alfresco platformSizing your alfresco platform
Sizing your alfresco platform
Luis Cabaceira
 
Ef09 installing-alfresco-components-1-by-1
Ef09 installing-alfresco-components-1-by-1Ef09 installing-alfresco-components-1-by-1
Ef09 installing-alfresco-components-1-by-1
Angel Borroy López
 
Walking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOS
Walking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOSWalking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOS
Walking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOS
Cody Thomas
 
Storage and Alfresco
Storage and AlfrescoStorage and Alfresco
Storage and Alfresco
Toni de la Fuente
 
Alfresco DevCon 2019: Encryption at-rest and in-transit
Alfresco DevCon 2019: Encryption at-rest and in-transitAlfresco DevCon 2019: Encryption at-rest and in-transit
Alfresco DevCon 2019: Encryption at-rest and in-transit
Toni de la Fuente
 
Alfresco search services: Now and Then
Alfresco search services: Now and ThenAlfresco search services: Now and Then
Alfresco search services: Now and Then
Angel Borroy López
 
How to delivery a kt session
How to delivery a kt sessionHow to delivery a kt session
How to delivery a kt session
philywu
 
Alfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin IdeasAlfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin Ideas
AlfrescoUE
 
SecDevOps - The Operationalisation of Security
SecDevOps -  The Operationalisation of SecuritySecDevOps -  The Operationalisation of Security
SecDevOps - The Operationalisation of Security
Dinis Cruz
 
CNIT 126 6: Recognizing C Code Constructs in Assembly
CNIT 126 6: Recognizing C Code Constructs in Assembly CNIT 126 6: Recognizing C Code Constructs in Assembly
CNIT 126 6: Recognizing C Code Constructs in Assembly
Sam Bowne
 
Alfresco CMIS
Alfresco CMISAlfresco CMIS
Alfresco CMIS
Alfresco Software
 
Container Runtime Security with Falco
Container Runtime Security with FalcoContainer Runtime Security with Falco
Container Runtime Security with Falco
Michael Ducy
 
Introduction to Vault
Introduction to VaultIntroduction to Vault
Introduction to Vault
Knoldus Inc.
 
Getting Started with CMIS
Getting Started with CMISGetting Started with CMIS
Getting Started with CMIS
Jeff Potts
 
From zero to hero Backing up alfresco
From zero to hero Backing up alfrescoFrom zero to hero Backing up alfresco
From zero to hero Backing up alfresco
Toni de la Fuente
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco Repository
Jeff Potts
 
Alfresco Security Best Practices Guide
Alfresco Security Best Practices GuideAlfresco Security Best Practices Guide
Alfresco Security Best Practices Guide
Toni de la Fuente
 
Alfresco security best practices CHECK LIST ONLY
Alfresco security best practices CHECK LIST ONLYAlfresco security best practices CHECK LIST ONLY
Alfresco security best practices CHECK LIST ONLY
Toni de la Fuente
 
Alfresco Security Best Practices 2014
Alfresco Security Best Practices 2014Alfresco Security Best Practices 2014
Alfresco Security Best Practices 2014
Toni de la Fuente
 
Alfresco node lifecyle, services and zones
Alfresco node lifecyle, services and zonesAlfresco node lifecyle, services and zones
Alfresco node lifecyle, services and zones
Sanket Mehta
 
Sizing your alfresco platform
Sizing your alfresco platformSizing your alfresco platform
Sizing your alfresco platform
Luis Cabaceira
 
Ef09 installing-alfresco-components-1-by-1
Ef09 installing-alfresco-components-1-by-1Ef09 installing-alfresco-components-1-by-1
Ef09 installing-alfresco-components-1-by-1
Angel Borroy López
 
Walking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOS
Walking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOSWalking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOS
Walking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOS
Cody Thomas
 
Alfresco DevCon 2019: Encryption at-rest and in-transit
Alfresco DevCon 2019: Encryption at-rest and in-transitAlfresco DevCon 2019: Encryption at-rest and in-transit
Alfresco DevCon 2019: Encryption at-rest and in-transit
Toni de la Fuente
 
Alfresco search services: Now and Then
Alfresco search services: Now and ThenAlfresco search services: Now and Then
Alfresco search services: Now and Then
Angel Borroy López
 
How to delivery a kt session
How to delivery a kt sessionHow to delivery a kt session
How to delivery a kt session
philywu
 
Alfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin IdeasAlfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin Ideas
AlfrescoUE
 
SecDevOps - The Operationalisation of Security
SecDevOps -  The Operationalisation of SecuritySecDevOps -  The Operationalisation of Security
SecDevOps - The Operationalisation of Security
Dinis Cruz
 
CNIT 126 6: Recognizing C Code Constructs in Assembly
CNIT 126 6: Recognizing C Code Constructs in Assembly CNIT 126 6: Recognizing C Code Constructs in Assembly
CNIT 126 6: Recognizing C Code Constructs in Assembly
Sam Bowne
 
Container Runtime Security with Falco
Container Runtime Security with FalcoContainer Runtime Security with Falco
Container Runtime Security with Falco
Michael Ducy
 
Introduction to Vault
Introduction to VaultIntroduction to Vault
Introduction to Vault
Knoldus Inc.
 

Similar to Alfresco - You probably didn't know that (20)

6. Compile And Run
6. Compile And Run6. Compile And Run
6. Compile And Run
Alexandre Linhares
 
PVS-Studio vs Chromium. 3-rd Check
PVS-Studio vs Chromium. 3-rd CheckPVS-Studio vs Chromium. 3-rd Check
PVS-Studio vs Chromium. 3-rd Check
Andrey Karpov
 
【Unite 2017 Tokyo】パフォーマンス向上のためのスクリプトのベストプラクティス(note付き)
【Unite 2017 Tokyo】パフォーマンス向上のためのスクリプトのベストプラクティス(note付き)【Unite 2017 Tokyo】パフォーマンス向上のためのスクリプトのベストプラクティス(note付き)
【Unite 2017 Tokyo】パフォーマンス向上のためのスクリプトのベストプラクティス(note付き)
Unity Technologies Japan K.K.
 
Code camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyCode camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una Daly
Una Daly
 
The Ring programming language version 1.7 book - Part 7 of 196
The Ring programming language version 1.7 book - Part 7 of 196The Ring programming language version 1.7 book - Part 7 of 196
The Ring programming language version 1.7 book - Part 7 of 196
Mahmoud Samir Fayed
 
Inline function
Inline functionInline function
Inline function
Tech_MX
 
Drilling the Async Library
Drilling the Async LibraryDrilling the Async Library
Drilling the Async Library
Knoldus Inc.
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
benDesigning
 
OSGi Community Event 2010 - Dependencies, dependencies, dependencies
OSGi Community Event 2010 - Dependencies, dependencies, dependenciesOSGi Community Event 2010 - Dependencies, dependencies, dependencies
OSGi Community Event 2010 - Dependencies, dependencies, dependencies
mfrancis
 
elm-d3 @ NYC D3.js Meetup (30 June, 2014)
elm-d3 @ NYC D3.js Meetup (30 June, 2014)elm-d3 @ NYC D3.js Meetup (30 June, 2014)
elm-d3 @ NYC D3.js Meetup (30 June, 2014)
Spiros
 
Reverse_Engineering_of_binary_File_Formats.pdf
Reverse_Engineering_of_binary_File_Formats.pdfReverse_Engineering_of_binary_File_Formats.pdf
Reverse_Engineering_of_binary_File_Formats.pdf
TrippLilley
 
C#/.NET Little Wonders
C#/.NET Little WondersC#/.NET Little Wonders
C#/.NET Little Wonders
BlackRabbitCoder
 
Web technologies-course 12.pptx
Web technologies-course 12.pptxWeb technologies-course 12.pptx
Web technologies-course 12.pptx
Stefan Oprea
 
C# features
C# featuresC# features
C# features
sagaroceanic11
 
DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)
Soshi Nemoto
 
Developing maintainable Cordova applications
Developing maintainable Cordova applicationsDeveloping maintainable Cordova applications
Developing maintainable Cordova applications
Ivano Malavolta
 
Analyzing the Blender project with PVS-Studio
Analyzing the Blender project with PVS-StudioAnalyzing the Blender project with PVS-Studio
Analyzing the Blender project with PVS-Studio
PVS-Studio
 
The Basic Concept Of IOC
The Basic Concept Of IOCThe Basic Concept Of IOC
The Basic Concept Of IOC
Carl Lu
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
Pankhuree Srivastava
 
Javascripts hidden treasures BY - https://geekyants.com/
Javascripts hidden treasures            BY  -  https://geekyants.com/Javascripts hidden treasures            BY  -  https://geekyants.com/
Javascripts hidden treasures BY - https://geekyants.com/
Geekyants
 
PVS-Studio vs Chromium. 3-rd Check
PVS-Studio vs Chromium. 3-rd CheckPVS-Studio vs Chromium. 3-rd Check
PVS-Studio vs Chromium. 3-rd Check
Andrey Karpov
 
【Unite 2017 Tokyo】パフォーマンス向上のためのスクリプトのベストプラクティス(note付き)
【Unite 2017 Tokyo】パフォーマンス向上のためのスクリプトのベストプラクティス(note付き)【Unite 2017 Tokyo】パフォーマンス向上のためのスクリプトのベストプラクティス(note付き)
【Unite 2017 Tokyo】パフォーマンス向上のためのスクリプトのベストプラクティス(note付き)
Unity Technologies Japan K.K.
 
Code camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyCode camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una Daly
Una Daly
 
The Ring programming language version 1.7 book - Part 7 of 196
The Ring programming language version 1.7 book - Part 7 of 196The Ring programming language version 1.7 book - Part 7 of 196
The Ring programming language version 1.7 book - Part 7 of 196
Mahmoud Samir Fayed
 
Inline function
Inline functionInline function
Inline function
Tech_MX
 
Drilling the Async Library
Drilling the Async LibraryDrilling the Async Library
Drilling the Async Library
Knoldus Inc.
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
benDesigning
 
OSGi Community Event 2010 - Dependencies, dependencies, dependencies
OSGi Community Event 2010 - Dependencies, dependencies, dependenciesOSGi Community Event 2010 - Dependencies, dependencies, dependencies
OSGi Community Event 2010 - Dependencies, dependencies, dependencies
mfrancis
 
elm-d3 @ NYC D3.js Meetup (30 June, 2014)
elm-d3 @ NYC D3.js Meetup (30 June, 2014)elm-d3 @ NYC D3.js Meetup (30 June, 2014)
elm-d3 @ NYC D3.js Meetup (30 June, 2014)
Spiros
 
Reverse_Engineering_of_binary_File_Formats.pdf
Reverse_Engineering_of_binary_File_Formats.pdfReverse_Engineering_of_binary_File_Formats.pdf
Reverse_Engineering_of_binary_File_Formats.pdf
TrippLilley
 
Web technologies-course 12.pptx
Web technologies-course 12.pptxWeb technologies-course 12.pptx
Web technologies-course 12.pptx
Stefan Oprea
 
DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)
Soshi Nemoto
 
Developing maintainable Cordova applications
Developing maintainable Cordova applicationsDeveloping maintainable Cordova applications
Developing maintainable Cordova applications
Ivano Malavolta
 
Analyzing the Blender project with PVS-Studio
Analyzing the Blender project with PVS-StudioAnalyzing the Blender project with PVS-Studio
Analyzing the Blender project with PVS-Studio
PVS-Studio
 
The Basic Concept Of IOC
The Basic Concept Of IOCThe Basic Concept Of IOC
The Basic Concept Of IOC
Carl Lu
 
Javascripts hidden treasures BY - https://geekyants.com/
Javascripts hidden treasures            BY  -  https://geekyants.com/Javascripts hidden treasures            BY  -  https://geekyants.com/
Javascripts hidden treasures BY - https://geekyants.com/
Geekyants
 
Ad

Recently uploaded (20)

Microsoft Azure Data Fundamentals (DP-900) Exam Dumps & Questions 2025.pdf
Microsoft Azure Data Fundamentals (DP-900) Exam Dumps & Questions 2025.pdfMicrosoft Azure Data Fundamentals (DP-900) Exam Dumps & Questions 2025.pdf
Microsoft Azure Data Fundamentals (DP-900) Exam Dumps & Questions 2025.pdf
MinniePfeiffer
 
Updated treatment of hypothyroidism, causes and symptoms
Updated treatment of hypothyroidism,  causes and symptomsUpdated treatment of hypothyroidism,  causes and symptoms
Updated treatment of hypothyroidism, causes and symptoms
Mohammed Ahmed Bamashmos
 
Wood Age and Trees of life - talk at Newcastle City Library
Wood Age and Trees of life - talk at Newcastle City LibraryWood Age and Trees of life - talk at Newcastle City Library
Wood Age and Trees of life - talk at Newcastle City Library
Woods for the Trees
 
THE SEXUAL HARASSMENT OF WOMAN AT WORKPLACE (PREVENTION, PROHIBITION & REDRES...
THE SEXUAL HARASSMENT OF WOMAN AT WORKPLACE (PREVENTION, PROHIBITION & REDRES...THE SEXUAL HARASSMENT OF WOMAN AT WORKPLACE (PREVENTION, PROHIBITION & REDRES...
THE SEXUAL HARASSMENT OF WOMAN AT WORKPLACE (PREVENTION, PROHIBITION & REDRES...
ASHISHKUMAR504404
 
Speech 3-A Vision for Tomorrow for GE2025
Speech 3-A Vision for Tomorrow for GE2025Speech 3-A Vision for Tomorrow for GE2025
Speech 3-A Vision for Tomorrow for GE2025
Noraini Yunus
 
The Business Dynamics of Quick Commerce.pdf
The Business Dynamics of Quick Commerce.pdfThe Business Dynamics of Quick Commerce.pdf
The Business Dynamics of Quick Commerce.pdf
RDinuRao
 
cardiovascular outcome in trial of new antidiabetic drugs
cardiovascular outcome in trial of new antidiabetic drugscardiovascular outcome in trial of new antidiabetic drugs
cardiovascular outcome in trial of new antidiabetic drugs
Mohammed Ahmed Bamashmos
 
Reflections on an ngo peace conference in zimbabwe
Reflections on an ngo peace conference in zimbabweReflections on an ngo peace conference in zimbabwe
Reflections on an ngo peace conference in zimbabwe
jujuaw05
 
NASIG ISSN 2025 updated for the_4-30meeting.pptx
NASIG ISSN 2025 updated for the_4-30meeting.pptxNASIG ISSN 2025 updated for the_4-30meeting.pptx
NASIG ISSN 2025 updated for the_4-30meeting.pptx
reine1
 
Approach to diabetes Mellitus, diagnosis
Approach to diabetes Mellitus,  diagnosisApproach to diabetes Mellitus,  diagnosis
Approach to diabetes Mellitus, diagnosis
Mohammed Ahmed Bamashmos
 
fundamentals of communicationclass notes.pptx
fundamentals of communicationclass notes.pptxfundamentals of communicationclass notes.pptx
fundamentals of communicationclass notes.pptx
Sunkod
 
Key Elements of a Procurement Plan.docx.
Key Elements of a Procurement Plan.docx.Key Elements of a Procurement Plan.docx.
Key Elements of a Procurement Plan.docx.
NeoRakodu
 
kurtlewin theory of motivation -181226082203.pptx
kurtlewin theory of motivation -181226082203.pptxkurtlewin theory of motivation -181226082203.pptx
kurtlewin theory of motivation -181226082203.pptx
TayyabaSiddiqui12
 
816111728-IELTS-WRITING test óft-PPT.pptx
816111728-IELTS-WRITING test óft-PPT.pptx816111728-IELTS-WRITING test óft-PPT.pptx
816111728-IELTS-WRITING test óft-PPT.pptx
787mianahmad
 
Profit Growth Drivers for Small Business.pdf
Profit Growth Drivers for Small Business.pdfProfit Growth Drivers for Small Business.pdf
Profit Growth Drivers for Small Business.pdf
TheodoreHawkins
 
Bloom Where You Are Planted 05.04.2025.pptx
Bloom Where You Are Planted 05.04.2025.pptxBloom Where You Are Planted 05.04.2025.pptx
Bloom Where You Are Planted 05.04.2025.pptx
FamilyWorshipCenterD
 
Bidding World Conference 2027-NSGF Senegal.pdf
Bidding World Conference 2027-NSGF Senegal.pdfBidding World Conference 2027-NSGF Senegal.pdf
Bidding World Conference 2027-NSGF Senegal.pdf
ISGF - International Scout and Guide Fellowship
 
Bidding World Conference 2027 - Ghana.pptx
Bidding World Conference 2027 - Ghana.pptxBidding World Conference 2027 - Ghana.pptx
Bidding World Conference 2027 - Ghana.pptx
ISGF - International Scout and Guide Fellowship
 
A Bot Identification Model and Tool Based on GitHub Activity Sequences
A Bot Identification Model and Tool Based on GitHub Activity SequencesA Bot Identification Model and Tool Based on GitHub Activity Sequences
A Bot Identification Model and Tool Based on GitHub Activity Sequences
natarajan8993
 
2. Asexual propagation of fruit crops and .pptx
2. Asexual propagation of fruit crops and .pptx2. Asexual propagation of fruit crops and .pptx
2. Asexual propagation of fruit crops and .pptx
aschenakidawit1
 
Microsoft Azure Data Fundamentals (DP-900) Exam Dumps & Questions 2025.pdf
Microsoft Azure Data Fundamentals (DP-900) Exam Dumps & Questions 2025.pdfMicrosoft Azure Data Fundamentals (DP-900) Exam Dumps & Questions 2025.pdf
Microsoft Azure Data Fundamentals (DP-900) Exam Dumps & Questions 2025.pdf
MinniePfeiffer
 
Updated treatment of hypothyroidism, causes and symptoms
Updated treatment of hypothyroidism,  causes and symptomsUpdated treatment of hypothyroidism,  causes and symptoms
Updated treatment of hypothyroidism, causes and symptoms
Mohammed Ahmed Bamashmos
 
Wood Age and Trees of life - talk at Newcastle City Library
Wood Age and Trees of life - talk at Newcastle City LibraryWood Age and Trees of life - talk at Newcastle City Library
Wood Age and Trees of life - talk at Newcastle City Library
Woods for the Trees
 
THE SEXUAL HARASSMENT OF WOMAN AT WORKPLACE (PREVENTION, PROHIBITION & REDRES...
THE SEXUAL HARASSMENT OF WOMAN AT WORKPLACE (PREVENTION, PROHIBITION & REDRES...THE SEXUAL HARASSMENT OF WOMAN AT WORKPLACE (PREVENTION, PROHIBITION & REDRES...
THE SEXUAL HARASSMENT OF WOMAN AT WORKPLACE (PREVENTION, PROHIBITION & REDRES...
ASHISHKUMAR504404
 
Speech 3-A Vision for Tomorrow for GE2025
Speech 3-A Vision for Tomorrow for GE2025Speech 3-A Vision for Tomorrow for GE2025
Speech 3-A Vision for Tomorrow for GE2025
Noraini Yunus
 
The Business Dynamics of Quick Commerce.pdf
The Business Dynamics of Quick Commerce.pdfThe Business Dynamics of Quick Commerce.pdf
The Business Dynamics of Quick Commerce.pdf
RDinuRao
 
cardiovascular outcome in trial of new antidiabetic drugs
cardiovascular outcome in trial of new antidiabetic drugscardiovascular outcome in trial of new antidiabetic drugs
cardiovascular outcome in trial of new antidiabetic drugs
Mohammed Ahmed Bamashmos
 
Reflections on an ngo peace conference in zimbabwe
Reflections on an ngo peace conference in zimbabweReflections on an ngo peace conference in zimbabwe
Reflections on an ngo peace conference in zimbabwe
jujuaw05
 
NASIG ISSN 2025 updated for the_4-30meeting.pptx
NASIG ISSN 2025 updated for the_4-30meeting.pptxNASIG ISSN 2025 updated for the_4-30meeting.pptx
NASIG ISSN 2025 updated for the_4-30meeting.pptx
reine1
 
fundamentals of communicationclass notes.pptx
fundamentals of communicationclass notes.pptxfundamentals of communicationclass notes.pptx
fundamentals of communicationclass notes.pptx
Sunkod
 
Key Elements of a Procurement Plan.docx.
Key Elements of a Procurement Plan.docx.Key Elements of a Procurement Plan.docx.
Key Elements of a Procurement Plan.docx.
NeoRakodu
 
kurtlewin theory of motivation -181226082203.pptx
kurtlewin theory of motivation -181226082203.pptxkurtlewin theory of motivation -181226082203.pptx
kurtlewin theory of motivation -181226082203.pptx
TayyabaSiddiqui12
 
816111728-IELTS-WRITING test óft-PPT.pptx
816111728-IELTS-WRITING test óft-PPT.pptx816111728-IELTS-WRITING test óft-PPT.pptx
816111728-IELTS-WRITING test óft-PPT.pptx
787mianahmad
 
Profit Growth Drivers for Small Business.pdf
Profit Growth Drivers for Small Business.pdfProfit Growth Drivers for Small Business.pdf
Profit Growth Drivers for Small Business.pdf
TheodoreHawkins
 
Bloom Where You Are Planted 05.04.2025.pptx
Bloom Where You Are Planted 05.04.2025.pptxBloom Where You Are Planted 05.04.2025.pptx
Bloom Where You Are Planted 05.04.2025.pptx
FamilyWorshipCenterD
 
A Bot Identification Model and Tool Based on GitHub Activity Sequences
A Bot Identification Model and Tool Based on GitHub Activity SequencesA Bot Identification Model and Tool Based on GitHub Activity Sequences
A Bot Identification Model and Tool Based on GitHub Activity Sequences
natarajan8993
 
2. Asexual propagation of fruit crops and .pptx
2. Asexual propagation of fruit crops and .pptx2. Asexual propagation of fruit crops and .pptx
2. Asexual propagation of fruit crops and .pptx
aschenakidawit1
 
Ad

Alfresco - You probably didn't know that

  • 1. You probably didn’t know that… (small hidden features in Alfresco) David Ciamberlano
  • 2. Learn. Connect. Collaborate. Are you a curious person? Alfresco hides many small less known features that maybe you’ll never need to use… but that might prove useful on more than one occasion. So… you probably didn’t know that…
  • 3. Learn. Connect. Collaborate. You can change the unchangeable In Alfresco there are a few properties that cannot be changed (… for a good reason!): • creator of a node (cm:creator) • creation date (cm:created) • modifier (cm:modifier) • modification date (cm:modified) • […]
  • 4. Learn. Connect. Collaborate. these properties belongs to the cm:auditable aspect (in contentModel.xml). In a ideal world we wouldn’t need to change them… … but unfortunately we don’t live in a ideal world. The "good news" is that there is a way to change these values… And it’s (relatively) simple! You can change the unchangeable
  • 5. Learn. Connect. Collaborate. 1 A behavior prevents these metadata from being changed. All we need is to disable that behavior before the update. We can disable the auditable behavior for a specific node immediately before the setProperty()… You can change the unchangeable
  • 6. Learn. Connect. Collaborate. …and re-enable it soon after (note the finally block)! A behavior prevents these metadata from being changed. All we need is to disable that behavior before the update. We can disable the auditable behavior for a specific node immediately before the setProperty()… You can change the unchangeable
  • 7. Learn. Connect. Collaborate. Import an acp preserving the uuid of the nodes To rely on the uuid to retrieve a document from an external application is not a best-practice… but it happens often! There’s a way to preserve the original uuid when we need to import an acp.
  • 8. Learn. Connect. Collaborate. Import an acp preserving the uuid of the nodes we can create a new action, extending the OOTB importer class (ImporterActionExecuter)… … and override its executeImpl method…
  • 9. Learn. Connect. Collaborate. 2 Import an acp preserving the uuid of the nodes we can create a new action, extending the OOTB importer class (ImporterActionExecuter)… …in which we find the importservice.importView() call. To preserve the uuid, we have to use a custom modified ImporterBinding … and override its executeImpl method… * to see the complete code: https://gist.github.com/david-ciamberlano
  • 10. Learn. Connect. Collaborate. For example, we can unzip an acp, open its xml descriptor and modify the uuid of one of its nodes… Import an acp preserving the uuid of the nodes acp xml descriptor
  • 11. Learn. Connect. Collaborate. After the import of the acp, we will find a node in Alfresco with the previously modified uuid Import an acp preserving the uuid of the nodes Residual? what’s that column for?
  • 12. Learn. Connect. Collaborate. Residual properties In Alfresco, properties may exist that do not belong to any registered model. They are called residual properties and are useful, for example, to handle the case of a property removed from a type or an aspect. Suppose we have an aspect with a property called acme:test-residual applied to a certain node: what if we remove that property from the aspect?
  • 13. Learn. Connect. Collaborate. 3 Residual properties The property continue to exists for the node… but is marked as residual. what if we remove that property from the aspect? In Alfresco, properties may exist that do not belong to any registered model. They are called residual properties and are useful, for example, to handle the case of a property removed from a type or an aspect. Suppose we have an aspect with a property called acme:test-residual applied to a certain node:
  • 14. Learn. Connect. Collaborate. Residual properties You can also create a "residual property" programmatically, as if it were any other property… * * "whoami" does not belongs to any model
  • 15. Learn. Connect. Collaborate. Less known aspects - cm:indexControl You can control the indexing of contents in Alfresco applying the aspect cm:indexControl to a node. The aspect exposes 2 properties: • cm:indexed (controls whether or not the node is indexed) • cm:isContentIndexed (controls the full-text indexing of the node)
  • 16. Learn. Connect. Collaborate. Less known aspects - cm:indexControl cm:indexed cm:isContentIndexed indexing True True metadata and content True False metadata but not content False - no Properties values combinations:
  • 17. Learn. Connect. Collaborate. Less known aspects - sys:hidden The sys:hidden aspect (defined in systemModel.xml) allows you to hide a node from a client or service (such as share, webdav, cifs, …). 4
  • 18. Learn. Connect. Collaborate. Less known aspects - sys:hidden sys:hidden has 5 properties (clientVisibility, hiddenFlag, cascadeHidden, CascadeIndexControl, clientController) with which we can modify its behavior.
  • 19. Learn. Connect. Collaborate. Less known webscripts - export a site It’s possible to export the whole content of an Alfresco Site with one command: GET: /alfresco/service/api/sites/{site-shortname}/export
  • 20. Learn. Connect. Collaborate. Less known webscripts - export a site It’s possible to export the whole content of an Alfresco Site with one command: GET: /alfresco/service/api/sites/{site-shortname}/export
  • 21. Learn. Connect. Collaborate. To check quickly if a custom model has been correctly installed we can use (guess?) a webscript: GET /alfresco/service/api/dictionary GET /alfresco/service/api/classes/{type-name} Less known webscripts - dictionary & classes
  • 22. You probably didn’t know that… (small hidden features in Alfresco) David Ciamberlano Thank you!