Jive, dropbox and other integrations


Published on

Alfresco Devcon 2011

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Jive, dropbox and other integrations

  1. 1. Jive, Dropbox and other integrations
  2. 2. Jared Ottley Integration Engineer Twitter: @jottley Blog: http://jared.ottleys.net Senior Consultant, Alfresco Solutions Engineer, Alfresco QA Engineer, (Linux Lead – OES), Novell Developer/System Analyst, US Federal Courts Maintainer Alfresco PDF Toolkit http://code.google.com/p/alfresco-pdf-toolkit/
  3. 3. Integration Engineering @ AlfrescoWhat do we do • Focused on Developing Integrations with other products and the Alfresco Platform • Develop from the perspective of the customer. • Don’t modify the core • Only use Public APIs • Share what we learn • Blog post • Documentation • Engineering
  4. 4. Alfresco – Jive Toolkit
  5. 5. Alfresco – Jive ToolkitWhat is the Alfresco – Jive Toolkit? • A set of pre-built components that allows Jive to store documents in Alfresco while still offering all of the same social features as “native” Jive documents (commenting, rating, discussions, etc.) • The initial version of the Toolkit will allow users of Alfresco and/or Jive to create “managed” documents in any of the following 3 ways: • …By uploading a document to Alfresco, using the Jive UI. • …By “publishing” an existing document from Alfresco to Jive, using Alfresco’s Share UI. • …By “linking” an existing document stored in Alfresco to Jive, using the Jive UI.
  6. 6. HousekeepingWhat is required? • Alfresco 3.4.3 and up (NOT Swift/4.0 at this time) • Jive 5.0.1Release Date? • Soon! • Small Developer Preview • Incorporate fixes from Preview • Release to the public
  7. 7. DesignCMIS Client • CMIS Client on the Jive side • No need to add custom web scripts on the Alfresco side to handle requests. • We did add: • request filter • Identifies calls from Jive • Authentication Servlet • Authentication requests from Jive (…explained next…)
  8. 8. DesignPermissions • The models differ • No access to user credentials on either side • Implemented Solution • Rely on a common backend – LDAP – Let each side manage its own permissions (Jive – Community; Alfresco – Node). • Common user to make calls to Alfresco/Jive • Encrypted UserID to specify “RunAs” User • This is still open for change/improvement. We need “real world” feedback to validate our approach
  9. 9. DesignDelete • Jive does not hold a copy of the content, just a reference: the cmis:id • To protect it from from having Orphaned content. Alfresco does not allow deletes while content is socialized. • Accomplished through a policy (beforeDeleteNode) which simply throws an exception when a delete is triedCopy • We want to allow coping of content in Alfresco, but we don’t want the content to be socialized • The Jive side only supports a single reference to content • Jive has no concept of folders (Though it does support tags/categories) • Disable copying the socialized aspect to new node through a copy callback • getCopyCallback returns DoNothingCopyBehaviourCallback()
  10. 10. Demo
  11. 11. Alfresco Dropbox Connector
  12. 12. Alfresco Dropbox ConnectorWhat is the Connector • A Dropbox client with specific ties into Alfresco • The initial version will support syncing content (documents and folders) to and from a Dropbox account (single or multiple) • While implemented specifically with Share in mind the implementation is primarily exposed through web scripts that can be called independently of Share.
  13. 13. HousekeepingWhat is required? • Alfresco 4.0 (aka Swift)Release Date? • TBD • Close to submission for Approval from Dropbox • Further Testing of Multiple User use case
  14. 14. DesignWorked started on 3.4.3 • A couple of hurdles • No OAuth support • No Encrypted properties in content Models • Share customizations to Document Library possible...but not very friendlyWhat we wanted to accomplish • Sync Documents/Folders from Alfresco to Dropbox • Sync Document/Folders from Dropbox to Alfresco • It needs to be simple with as little burden on the user to configure and use
  15. 15. DesignAlfresco is the center of the universe • Alfresco wins in conflicts • Though we should note when conflicts occur and possibly at some point allow for conflict resolution • If content is deleted in Alfresco is should be deleted in Dropbox. • If it is deleted in Dropbox it should not be removed from Alfresco • Targted deletes should be possibleDropbox integration is different than social contentmanagement • Social Content Management has multiple users typically publishing to single channel (1:1) • Dropbox will typically have multiple users talking with their own Dropbox accounts (1:n)
  16. 16. DesignChallenges • Closed resource • No way to add/customize functionality on the service endanger • Limited Metadata • API does not currently allow for sharing across accounts • Rate Limited • Java API is focused on Android • It is basically just a wrapper around the REST API
  17. 17. DesignOauth • Currently Using Signpost • Moving to SpringSocial • SpringSocial is supported in Alfresco (Needed for Social Content Publishing) • Use *New* Encyptyped Content Model properties types to store Token Key and SecretApache HTTP Client 4.x • Alfresco 4.0 now uses HTTPClient 4.x. • This is different than 3.x
  18. 18. DesignDocument Library Customizations • Old way wasnt amp friendly • Changes were overwriten • New way allows you to package changes in amp Note: Toolbar customizations arent yet supported by the new DocumentLibrary extension functionality
  19. 19. FunctionalitySync Content/Folders (Alfresco to Dropbox) • Select a piece of content and send it to Dropbox • Select a Folder and sync it to Dropbox • If a folder is synced, all content in that folder will be synced to Dropbox as well • When content/folder is synced to Dropbox it will show Dropbox icon as an indicator that it is currently synced to dropbox
  20. 20. FunctionalityOnce Syncd, now what? • Updates to content will sync the change automatically • Content added to a synced folder will be automatically syncedDeleting Content • Deletes in Dropbox will not delete the content in Alfresco • Deletes in Alfresco will be deleted in Dropbox • Targeted deletes not yet supportedCopying Content • Copying the content will remove the Dropbox aspect from the content ie the copy will no longer be synced to Dropbox
  21. 21. FunctionalitySync Content/Folders (Dropbox to Alfresco) • No way to trigger changes from Dropbox to Alfresco • We have to poll or manually sync content • Manual sync • Content • Users can sync updated content that has been synced to Dropbox from Alfresco back into the repository • Folders • Users can sync updated content that has been synced to Dropbox from Alfresco back into the repository in a synced folder • New Content added to a synced folder on the Dropbox side will be pulled into Alfresco • Scheduled sync • Not yet implemented • Will use the same underlying process of the manual sync to provide same functionality
  22. 22. Implementation • Build the Dropbox Client • Build the Model • Dropbox Service (move to an action?) • Web Scripts • Why not CMIS? • Background • Share UI
  23. 23. #ToDo • Finish move to SpringSocial • Dropbox Dashlet • Allow to setup sync • Show current quota* • Multi user Testing • Unsync • Targeted delete • Add when last synced information (when, by whom)
  24. 24. Demo
  25. 25. Header • Body Level One • Body Level Two • Body Level Three • Body Level Four
  26. 26. Header Header • Body Level One • Body Level One • Body Level Two • Body Level Two • Body Level Three • Body Level Three • Body Level Four • Body Level Four
  27. 27. Header • Body Level One • Body Level Two • Body Level Three • Body Level Four
  28. 28. Header • Body Level One • Body Level Two • Body Level Three • Body Level Four
  29. 29. Help WantedWe are looking for Help • Highly visible projects • Build your community street cred • Facebook Integration • Kofax Release Scripts • Lotus Quickr Connector • Microsoft Office Add-ins • PHP APIOthers are looking for help too! • OpenOffice.org Plugin • LibreOffice CMIS Plugin • LibreOffice Alfresco ImplementationLearn More @ http://wiki.alfresco.com/wiki/Help_Wanted
  30. 30. Q&A