43
Demo Data: come creare rapidamente istanze di test per Alfresco

Alfresco Day Milano 2016 - Demo Data

Embed Size (px)

Citation preview

Page 1: Alfresco Day Milano 2016 - Demo Data

Demo Data: come creare rapidamente istanze di test per Alfresco

Page 2: Alfresco Day Milano 2016 - Demo Data

Marco Mancuso Automation Software Engineer (DevOps)

Page 3: Alfresco Day Milano 2016 - Demo Data

Marco Mancuso •  Currently Alfresco DevOps team •  Previously…

–  Alfresco Support team –  Consultant/Developer for Italian Alfresco Partner

About us

Page 4: Alfresco Day Milano 2016 - Demo Data

Alfresco DevOps About us Keep the lights on •  Public services (activiti|my.alfresco.com, Alfresco

Online Trials) •  Internal infrastructure •  Internal projects (QA, Engineering, Sales,

Marketing, ...) Automate all the things •  Mostly inspire •  Sometimes lead •  Never impose

Page 5: Alfresco Day Milano 2016 - Demo Data

Alfresco Demo Data

Page 6: Alfresco Day Milano 2016 - Demo Data

Big Questions What? Why? How? Where?

Page 7: Alfresco Day Milano 2016 - Demo Data

What it is? Big Q

uestions

AMP

Page 8: Alfresco Day Milano 2016 - Demo Data

What it is NOT? Big Q

uestions

Notanimport/exporttool!Notamigra1ontool!•  Nottestedagainstlargedata•  Justtestedatbootstrap1me

Page 9: Alfresco Day Milano 2016 - Demo Data

Why Demo Data? Big Q

uestions

h&ps://www.alfresco.com/products/one/trial/online

Page 10: Alfresco Day Milano 2016 - Demo Data

What else?

•  Quickly test customisations with limited set of predefined bootstrapped data

•  Collaborative approach on data definition •  Show test environments:

–  Marketing –  Sales –  Partners –  …

•  Easy to use: little or NO configuration at all!

Big Questions

Page 11: Alfresco Day Milano 2016 - Demo Data

How does it work?

•  2 repo AMPs:

Big Questions

•  Appliedtotherepoinwhichtoexportdata

•  ContainsalltheAPIstoextractdata

•  Appliedatbootstrap1metotherepo

•  Containsallthedatatobootstrap

Page 12: Alfresco Day Milano 2016 - Demo Data

Users.acp

mysite.acp

myfolder.acp

RestAPI

Timeline Big Q

uestions

Page 13: Alfresco Day Milano 2016 - Demo Data

Where I can find the project?

https://github.com/alfresco/alfresco-demo-data

Big Questions

Page 14: Alfresco Day Milano 2016 - Demo Data

What is it possible to export & import?

•  Full Share Sites (Bootstrap) •  Contents in Company Home (Bootstrap)

–  Models –  Virtual Folders –  Smart Folders –  Share facets –  Scripts –  Webscripts –  Workflows

•  Authorities (Users + People + Groups) •  Models (Dynamic) •  Workflows (Dynamic)

General Details

Page 15: Alfresco Day Milano 2016 - Demo Data

AMP Structure

Page 16: Alfresco Day Milano 2016 - Demo Data

AMPImport Structure

AMP structure

Page 17: Alfresco Day Milano 2016 - Demo Data

Authorities

AMP structure

Page 18: Alfresco Day Milano 2016 - Demo Data

Models (standard way) L AMP structure

Page 19: Alfresco Day Milano 2016 - Demo Data

Models J

AMP structure

Page 20: Alfresco Day Milano 2016 - Demo Data

Workflows (standard way)L

AMP structure

Page 21: Alfresco Day Milano 2016 - Demo Data

Workflows J

AMP structure

Page 22: Alfresco Day Milano 2016 - Demo Data

Sites (standard way) L AMP structure

Page 23: Alfresco Day Milano 2016 - Demo Data

Sites J

AMP structure

Page 24: Alfresco Day Milano 2016 - Demo Data

Record Management site K •  Treated as standard site •  Problem:

–  ACP does not handle well d:any objects: –  rma:readers (type d:any) –  rma:writers (type d:any)

•  Solution: –  RMSitePatch: find nodes and convert properties values from String to Map

AMP structure

Page 25: Alfresco Day Milano 2016 - Demo Data

Files/Folders (standard way) L AMP structure

Page 26: Alfresco Day Milano 2016 - Demo Data

Files/FoldersJ

AMP structure

Page 27: Alfresco Day Milano 2016 - Demo Data

(Model Manager) Content Models •  Alfresco already provides a way to export/import them •  Folders not visible from Share à NodeBrowser •  Path: /app:company_home/app:dictionary/app:models

AMP structure

Page 28: Alfresco Day Milano 2016 - Demo Data

Export APIs

Page 29: Alfresco Day Milano 2016 - Demo Data

Export files/folders •  Custom API •  (GET) http://localhost:8080/alfresco/s/api/file-folder/export?path={path} •  Optional Parameters:

•  It can extract just content inside Company Home (No tags/categories) •  ACP file with specified content

Export APIs

crawlSelf TRUE/FALSE Default:TRUE

crawlChildNodes TRUE/FALSE Default:TRUE

crawlContent TRUE/FALSE Default:TRUE

crawlAssociaDons TRUE/FALSE Default:TRUE

Page 30: Alfresco Day Milano 2016 - Demo Data

Export a Site

•  (GET) http://localhost:8080/alfresco/service/api/file-folder/export?path=/Sites/{sitename}

•  Admin authentication

Export APIs

Page 31: Alfresco Day Milano 2016 - Demo Data

Export the authorities (1/2) •  Custom API •  (GET) http://localhost:8080/alfresco/s/api/people-groups/export •  Optional Parameters:

Export APIs

usersToExport userstoexport Default:ALL

groupsToExport groupstoexport Default:ALL

excludeSiteGroups TRUE/FALSE Default:False

groupsToExclude groupstoexclude Default:NULL

usersToExclude userstoexclude Default:NULL

Page 32: Alfresco Day Milano 2016 - Demo Data

Export the authorities (2/2) Export APIs

people-users-groups-export.zip

Users.acp

People.acp

Groups.json

Excluded:admin+guest

Page 33: Alfresco Day Milano 2016 - Demo Data

Technical Details

Page 34: Alfresco Day Milano 2016 - Demo Data

So… Where are the configurations? •  (Generally) No configuration is required •  Beans dynamically generated with:

–  org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor •  Resources dynamically found with:

–  org.springframework.core.io.support.PathMatchingResourcePatternResolver

Technical Details

Page 35: Alfresco Day Milano 2016 - Demo Data

Just one single configuration bean Technical Details

Page 36: Alfresco Day Milano 2016 - Demo Data

Let’s run it!

Page 37: Alfresco Day Milano 2016 - Demo Data

Prerequisites •  Alfresco Maven SDK 2.1.1 with Alfresco 5.1:

–  JDK 1.8 –  Maven 3.2.5 or above

Let’s run it!

Page 38: Alfresco Day Milano 2016 - Demo Data

How to run the SDK 1.  git clone [email protected]:maoo/alfresco-demo-data.git 2.  cd alfresco-demo-data 3.  ./run.sh 4.  Go to http://localhost:8080/share

Let’s run it!

Page 39: Alfresco Day Milano 2016 - Demo Data

How to create the bootstrap AMP 1.  git clone [email protected]:maoo/alfresco-demo-data.git 2.  cd /alfresco-demo-data/alfresco-demo-data-repo-amp 3.  mvn package –DskipTests=true 4.  AMP in /alfresco-demo-data/alfresco-demo-data-repo-amp/target

Let’s run it!

Page 40: Alfresco Day Milano 2016 - Demo Data

How to create the export AMP 1.  git clone [email protected]:maoo/alfresco-demo-data.git 2.  cd /alfresco-demo-data/alfresco-demo-data-exporter-repo-amp 3.  mvn package –DskipTests=true 4.  AMP in /alfresco-demo-data/alfresco-demo-data-exporter-repo-amp/

target

Let’s run it!

Page 41: Alfresco Day Milano 2016 - Demo Data

ACP Limitations •  Document categories and tags •  Content models with d:any properties •  Node versions •  Secondary parents •  ACP export/import can only be used between same versions

Limitations

Page 42: Alfresco Day Milano 2016 - Demo Data

Questions?

Page 43: Alfresco Day Milano 2016 - Demo Data

Grazie! @Alfresco

Condividi su

#AlfrescoDayMilano