SlideShare a Scribd company logo
1 of 18
Where Do I Sign?
Right on the Line!
Extending Alfresco Digital
Workspace with DocuSign
Bindu Wavell – bindu@ziaconsulting.com
Vijay Prince – vprince@ziaconsulting.com
Learn. Connect. Collaborate.
Alfresco
Workspace
Extensions
The Alfresco Workspace team pioneered a way to
dynamically configure key user interface elements
such as: navigation sidebar links and groups,
context menus, info drawers, toolbar elements,
viewer actions, and metadata views all through a
single JSON file. Think Aikau but simpler.
Learn. Connect. Collaborate.
The Workspace team recently added the ability to
use external Angular libraries to bring in custom
user interface elements.
Libraries can replace, add, or even remove
components. Can also set up routing and rules.
Alfresco
Workspace
Extensions
Learn. Connect. Collaborate.
Alfresco
Workspace
Extensions
Integrating extension configuration into the main
app is done by including extension configuration
in the app configuration.
Learn. Connect. Collaborate.
Flow/SPA OAuth
User triggers
action to sign
document
Do we
have valid
DocuSign
token for
user?
Document sent
to DocuSign
and user
redirected to
signature page
User signs or
cancels
signing in
DocuSign
Redirected to
Alfresco Workspace.
If signed, document
is updated in
Alfresco
User
redirected to
DocuSign
sign-in page
Yes
No
Did user
sign in and
grant
access?
Redirected to
Alfresco
Workspace,
action is not
performed
No
Redirected to
Alfresco
Workspace,
action is
retried
Yes
Learn. Connect. Collaborate.
Flow/SPA OAuth
User triggers
action to sign
document
Do we
have valid
DocuSign
token for
user?
Document sent
to DocuSign
and user
redirected to
signature page
User signs or
cancels
signing in
DocuSign
Redirected to
Alfresco Workspace.
If signed, document
is updated in
Alfresco
Yes
Learn. Connect. Collaborate.
Flow/SPA OAuth
User triggers
action to sign
document
Do we
have valid
DocuSign
token for
user?
Document sent
to DocuSign
and user
redirected to
signature page
User signs or
cancels
signing in
DocuSign
Redirected to
Alfresco Workspace.
If signed, document
is updated in
Alfresco
User
redirected to
DocuSign
sign-in page
Did user
sign in and
grant
access?
Redirected to
Alfresco
Workspace,
action is
retried
Yes
No
Learn. Connect. Collaborate.
Routing
Challenges
● OAuth response handling with WebScript
● For SPA to reach DocuSign, we have to proxy
DocuSign Auth and API calls:
Learn. Connect. Collaborate.
App
Configuratio
n
We use central app config file for passing in
DocuSign integrator key (possibly other things
like dev/prod DocuSign servers, etc.)
Learn. Connect. Collaborate.
NGRX
Store/Actions
/Effects
● ngrx - reactive state for Angular
● State is managed in single hierarchy
(store)
● Actions are dispatched to indicate
something happened
● (Side)Effects observe actions and
transform state in response
Learn. Connect. Collaborate.
NGRX
Store/Actions
/Effects
● Alfresco Workspace uses ngrx internally
○ Dispatch actions to navigate, display
messages, or open dialogs, etc…
● Extensions can create new actions,
respond to new and existing actions, and
dispatch new and existing actions
● We made an action/effect pair for signing
a document and configured it into the
document list and preview screens
Learn. Connect. Collaborate.
Packaging &
Installing
Extensions
● You can npm publish your extension and then
Alfresco Workspace projects can depend on
your extension.
● However, some config will be required
● Denys’ ngi command line tool can perform
most of this configuration for you
● Can install from npm or from a tar file
Learn. Connect. Collaborate.
Upgrading
Alfresco
Workspace
● We forked the Alfresco Workspace repository
● We created a development branch from
master
● When cloning our project
● origin points to our fork
● upstream points to original project from
Alfresco
● Feature branches off of our development
● Pull requests back to our development
● We can pull updates into master from
upstream and then rebase development on
the new master
● We never commit to our master
Learn. Connect. Collaborate.
Misc.
● Had issues with GETing document content
using Alfresco JS API from browser (worked
fine from node)
● Including third-party JavaScript libraries when
type definitions can’t be found
● Using browserify
Questions?

More Related Content

What's hot

DevCon 2018 - 5 ways to use AWS with Alfresco
DevCon 2018 - 5 ways to use AWS with AlfrescoDevCon 2018 - 5 ways to use AWS with Alfresco
DevCon 2018 - 5 ways to use AWS with AlfrescoGavin Cornwell
 
Peltas - get insights on your Alfresco data
Peltas - get insights on your Alfresco dataPeltas - get insights on your Alfresco data
Peltas - get insights on your Alfresco dataDaniel Gradecak
 
How to win skeptics to aggregated logging using Vagrant and ELK
How to win skeptics to aggregated logging using Vagrant and ELKHow to win skeptics to aggregated logging using Vagrant and ELK
How to win skeptics to aggregated logging using Vagrant and ELKSkelton Thatcher Consulting Ltd
 
Alfresco javascript api - Alfresco Devcon 2018
Alfresco javascript api - Alfresco Devcon 2018Alfresco javascript api - Alfresco Devcon 2018
Alfresco javascript api - Alfresco Devcon 2018Mario Romano
 
Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)J V
 
Alfresco monitoring with Nagios and ELK stack
Alfresco monitoring with Nagios and ELK stackAlfresco monitoring with Nagios and ELK stack
Alfresco monitoring with Nagios and ELK stackCesar Capillas
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0Eugenio Romano
 
10 Tips Every New Developer in Alfresco Should Know
10 Tips Every New Developer in Alfresco Should Know10 Tips Every New Developer in Alfresco Should Know
10 Tips Every New Developer in Alfresco Should KnowAngel Borroy López
 
Elk ruminating on logs
Elk ruminating on logsElk ruminating on logs
Elk ruminating on logsMathew Beane
 
Bulk Export Tool for Alfresco
Bulk Export Tool for AlfrescoBulk Export Tool for Alfresco
Bulk Export Tool for AlfrescoRichard McKnight
 
Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018Dennis Koch
 
ADF Basics and Beyond - Alfresco Devcon 2018
ADF Basics and Beyond - Alfresco Devcon 2018ADF Basics and Beyond - Alfresco Devcon 2018
ADF Basics and Beyond - Alfresco Devcon 2018Mario Romano
 
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 alfrescoToni de la Fuente
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache CamelChristian Posta
 
Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?
Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?
Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?Francesco Corti
 
Jose portillo dev con presentation 1138
Jose portillo   dev con presentation 1138Jose portillo   dev con presentation 1138
Jose portillo dev con presentation 1138Jose Portillo
 
ActiveMQ Performance Tuning
ActiveMQ Performance TuningActiveMQ Performance Tuning
ActiveMQ Performance TuningChristian Posta
 
2019 DevCon - The future of Authentication by Codrin Chirica
2019 DevCon - The future of Authentication by Codrin Chirica2019 DevCon - The future of Authentication by Codrin Chirica
2019 DevCon - The future of Authentication by Codrin ChiricaCodrin Chirica
 
Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWSAmazon Web Services
 
Multi-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service BrokerMulti-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service BrokerAmazon Web Services
 

What's hot (20)

DevCon 2018 - 5 ways to use AWS with Alfresco
DevCon 2018 - 5 ways to use AWS with AlfrescoDevCon 2018 - 5 ways to use AWS with Alfresco
DevCon 2018 - 5 ways to use AWS with Alfresco
 
Peltas - get insights on your Alfresco data
Peltas - get insights on your Alfresco dataPeltas - get insights on your Alfresco data
Peltas - get insights on your Alfresco data
 
How to win skeptics to aggregated logging using Vagrant and ELK
How to win skeptics to aggregated logging using Vagrant and ELKHow to win skeptics to aggregated logging using Vagrant and ELK
How to win skeptics to aggregated logging using Vagrant and ELK
 
Alfresco javascript api - Alfresco Devcon 2018
Alfresco javascript api - Alfresco Devcon 2018Alfresco javascript api - Alfresco Devcon 2018
Alfresco javascript api - Alfresco Devcon 2018
 
Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)
 
Alfresco monitoring with Nagios and ELK stack
Alfresco monitoring with Nagios and ELK stackAlfresco monitoring with Nagios and ELK stack
Alfresco monitoring with Nagios and ELK stack
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0
 
10 Tips Every New Developer in Alfresco Should Know
10 Tips Every New Developer in Alfresco Should Know10 Tips Every New Developer in Alfresco Should Know
10 Tips Every New Developer in Alfresco Should Know
 
Elk ruminating on logs
Elk ruminating on logsElk ruminating on logs
Elk ruminating on logs
 
Bulk Export Tool for Alfresco
Bulk Export Tool for AlfrescoBulk Export Tool for Alfresco
Bulk Export Tool for Alfresco
 
Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018
 
ADF Basics and Beyond - Alfresco Devcon 2018
ADF Basics and Beyond - Alfresco Devcon 2018ADF Basics and Beyond - Alfresco Devcon 2018
ADF Basics and Beyond - Alfresco Devcon 2018
 
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
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache Camel
 
Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?
Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?
Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?
 
Jose portillo dev con presentation 1138
Jose portillo   dev con presentation 1138Jose portillo   dev con presentation 1138
Jose portillo dev con presentation 1138
 
ActiveMQ Performance Tuning
ActiveMQ Performance TuningActiveMQ Performance Tuning
ActiveMQ Performance Tuning
 
2019 DevCon - The future of Authentication by Codrin Chirica
2019 DevCon - The future of Authentication by Codrin Chirica2019 DevCon - The future of Authentication by Codrin Chirica
2019 DevCon - The future of Authentication by Codrin Chirica
 
Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWS
 
Multi-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service BrokerMulti-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service Broker
 

Similar to Extending Alfresco Digital Workspace with Docusign

Elements_User_Interfaces.pdf
Elements_User_Interfaces.pdfElements_User_Interfaces.pdf
Elements_User_Interfaces.pdfJeff Smith
 
Elements_User_Interfaces.pdf
Elements_User_Interfaces.pdfElements_User_Interfaces.pdf
Elements_User_Interfaces.pdfJeff Smith
 
Elements_User_Interfaces.pdf
Elements_User_Interfaces.pdfElements_User_Interfaces.pdf
Elements_User_Interfaces.pdfJeff Smith
 
Elements_User_Interfaces.pdf
Elements_User_Interfaces.pdfElements_User_Interfaces.pdf
Elements_User_Interfaces.pdfJeff Smith
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfJeff Smith
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfJeff Smith
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfJeff Smith
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfJeff Smith
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfJeff Smith
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfJeff Smith
 
Losing the Document Battle? Alfresco, Drupal Combine for Solution
Losing the Document Battle? Alfresco, Drupal Combine for SolutionLosing the Document Battle? Alfresco, Drupal Combine for Solution
Losing the Document Battle? Alfresco, Drupal Combine for SolutionAcquia
 
What Is Alfresco
What Is AlfrescoWhat Is Alfresco
What Is Alfrescofosulliv
 
Alfresco 4.0 - A Complete Introduction
 Alfresco 4.0 - A Complete Introduction Alfresco 4.0 - A Complete Introduction
Alfresco 4.0 - A Complete IntroductionAjeet Singh
 
Plog 2013: EEA add ons overview
Plog 2013: EEA add ons overviewPlog 2013: EEA add ons overview
Plog 2013: EEA add ons overviewalecghica
 
1 - Introduction of Azure DevOps
1 - Introduction of Azure DevOps1 - Introduction of Azure DevOps
1 - Introduction of Azure DevOpsBhaumik Patel
 
Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on N...
Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on N...Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on N...
Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on N...Nuxeo
 
Sense/Net ECM Product Presentation
Sense/Net ECM Product PresentationSense/Net ECM Product Presentation
Sense/Net ECM Product PresentationKristóf Molnár
 
Building Workflows for SharePoint 2010 with SharePoint Designer and Visio
Building Workflows for SharePoint 2010 with SharePoint Designer and VisioBuilding Workflows for SharePoint 2010 with SharePoint Designer and Visio
Building Workflows for SharePoint 2010 with SharePoint Designer and VisioElaine Van Bergen
 

Similar to Extending Alfresco Digital Workspace with Docusign (20)

Elements_User_Interfaces.pdf
Elements_User_Interfaces.pdfElements_User_Interfaces.pdf
Elements_User_Interfaces.pdf
 
Elements_User_Interfaces.pdf
Elements_User_Interfaces.pdfElements_User_Interfaces.pdf
Elements_User_Interfaces.pdf
 
Elements_User_Interfaces.pdf
Elements_User_Interfaces.pdfElements_User_Interfaces.pdf
Elements_User_Interfaces.pdf
 
Elements_User_Interfaces.pdf
Elements_User_Interfaces.pdfElements_User_Interfaces.pdf
Elements_User_Interfaces.pdf
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdf
 
Go With The Flow
Go With The FlowGo With The Flow
Go With The Flow
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdf
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdf
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdf
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdf
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdf
 
Losing the Document Battle? Alfresco, Drupal Combine for Solution
Losing the Document Battle? Alfresco, Drupal Combine for SolutionLosing the Document Battle? Alfresco, Drupal Combine for Solution
Losing the Document Battle? Alfresco, Drupal Combine for Solution
 
What Is Alfresco
What Is AlfrescoWhat Is Alfresco
What Is Alfresco
 
Alfresco 4.0 - A Complete Introduction
 Alfresco 4.0 - A Complete Introduction Alfresco 4.0 - A Complete Introduction
Alfresco 4.0 - A Complete Introduction
 
Plog 2013: EEA add ons overview
Plog 2013: EEA add ons overviewPlog 2013: EEA add ons overview
Plog 2013: EEA add ons overview
 
Alfresco Architecture
Alfresco ArchitectureAlfresco Architecture
Alfresco Architecture
 
1 - Introduction of Azure DevOps
1 - Introduction of Azure DevOps1 - Introduction of Azure DevOps
1 - Introduction of Azure DevOps
 
Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on N...
Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on N...Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on N...
Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on N...
 
Sense/Net ECM Product Presentation
Sense/Net ECM Product PresentationSense/Net ECM Product Presentation
Sense/Net ECM Product Presentation
 
Building Workflows for SharePoint 2010 with SharePoint Designer and Visio
Building Workflows for SharePoint 2010 with SharePoint Designer and VisioBuilding Workflows for SharePoint 2010 with SharePoint Designer and Visio
Building Workflows for SharePoint 2010 with SharePoint Designer and Visio
 

Recently uploaded

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Recently uploaded (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Extending Alfresco Digital Workspace with Docusign

  • 1. Where Do I Sign? Right on the Line! Extending Alfresco Digital Workspace with DocuSign Bindu Wavell – bindu@ziaconsulting.com Vijay Prince – vprince@ziaconsulting.com
  • 2.
  • 3. Learn. Connect. Collaborate. Alfresco Workspace Extensions The Alfresco Workspace team pioneered a way to dynamically configure key user interface elements such as: navigation sidebar links and groups, context menus, info drawers, toolbar elements, viewer actions, and metadata views all through a single JSON file. Think Aikau but simpler.
  • 4. Learn. Connect. Collaborate. The Workspace team recently added the ability to use external Angular libraries to bring in custom user interface elements. Libraries can replace, add, or even remove components. Can also set up routing and rules. Alfresco Workspace Extensions
  • 5. Learn. Connect. Collaborate. Alfresco Workspace Extensions Integrating extension configuration into the main app is done by including extension configuration in the app configuration.
  • 6. Learn. Connect. Collaborate. Flow/SPA OAuth User triggers action to sign document Do we have valid DocuSign token for user? Document sent to DocuSign and user redirected to signature page User signs or cancels signing in DocuSign Redirected to Alfresco Workspace. If signed, document is updated in Alfresco User redirected to DocuSign sign-in page Yes No Did user sign in and grant access? Redirected to Alfresco Workspace, action is not performed No Redirected to Alfresco Workspace, action is retried Yes
  • 7. Learn. Connect. Collaborate. Flow/SPA OAuth User triggers action to sign document Do we have valid DocuSign token for user? Document sent to DocuSign and user redirected to signature page User signs or cancels signing in DocuSign Redirected to Alfresco Workspace. If signed, document is updated in Alfresco Yes
  • 8.
  • 9. Learn. Connect. Collaborate. Flow/SPA OAuth User triggers action to sign document Do we have valid DocuSign token for user? Document sent to DocuSign and user redirected to signature page User signs or cancels signing in DocuSign Redirected to Alfresco Workspace. If signed, document is updated in Alfresco User redirected to DocuSign sign-in page Did user sign in and grant access? Redirected to Alfresco Workspace, action is retried Yes No
  • 10.
  • 11. Learn. Connect. Collaborate. Routing Challenges ● OAuth response handling with WebScript ● For SPA to reach DocuSign, we have to proxy DocuSign Auth and API calls:
  • 12. Learn. Connect. Collaborate. App Configuratio n We use central app config file for passing in DocuSign integrator key (possibly other things like dev/prod DocuSign servers, etc.)
  • 13. Learn. Connect. Collaborate. NGRX Store/Actions /Effects ● ngrx - reactive state for Angular ● State is managed in single hierarchy (store) ● Actions are dispatched to indicate something happened ● (Side)Effects observe actions and transform state in response
  • 14. Learn. Connect. Collaborate. NGRX Store/Actions /Effects ● Alfresco Workspace uses ngrx internally ○ Dispatch actions to navigate, display messages, or open dialogs, etc… ● Extensions can create new actions, respond to new and existing actions, and dispatch new and existing actions ● We made an action/effect pair for signing a document and configured it into the document list and preview screens
  • 15. Learn. Connect. Collaborate. Packaging & Installing Extensions ● You can npm publish your extension and then Alfresco Workspace projects can depend on your extension. ● However, some config will be required ● Denys’ ngi command line tool can perform most of this configuration for you ● Can install from npm or from a tar file
  • 16. Learn. Connect. Collaborate. Upgrading Alfresco Workspace ● We forked the Alfresco Workspace repository ● We created a development branch from master ● When cloning our project ● origin points to our fork ● upstream points to original project from Alfresco ● Feature branches off of our development ● Pull requests back to our development ● We can pull updates into master from upstream and then rebase development on the new master ● We never commit to our master
  • 17. Learn. Connect. Collaborate. Misc. ● Had issues with GETing document content using Alfresco JS API from browser (worked fine from node) ● Including third-party JavaScript libraries when type definitions can’t be found ● Using browserify

Editor's Notes

  1. BOTH Vijay Prince – Solution Architect at Zia. Geek night?. First ADF project. 4-5hrs/week for 2 months. Great learning experience
  2. BINDU Story: At Zia, we have created a couple of digital-signature integrations to Alfresco Share, one of these integrates DocuSign. Alfresco invited us to participate in the launch of the extension mechanism for Alfresco Workspace (Alfresco Content App.) Right from the beginning Alfresco suggested that another DocuSign integration would make a great story. We set out to create a basic integration where people could sign their own documents. We have grand plans to allow for other flows and configurability like requesting signatures from others (fixed lists and ad-hoc.)
  3. BINDU Denys Vuika will be presenting Extensibility for ADF Applications next in this room. https://devcon.alfresco.com/speaker/denys-vuika/ https://alfresco.github.io/alfresco-content-app/#/extending/ https://angular.io/guide/libraries Configure via JSON files.. It can dynamically reference components / features/ routes that are in the main application or in a library
  4. BINDU Denys Vuika will be presenting Extensibility for ADF Applications next in this room. https://devcon.alfresco.com/speaker/denys-vuika/ https://alfresco.github.io/alfresco-content-app/#/extending/ https://angular.io/guide/libraries Configure via JSON files.. It can dynamically reference components / features/ routes that are in the main application or in a library
  5. BINDU Denys Vuika will be presenting Extensibility for ADF Applications next in this room. https://devcon.alfresco.com/speaker/denys-vuika/ https://alfresco.github.io/alfresco-content-app/#/extending/ https://angular.io/guide/libraries Configure via JSON files.. It can dynamically reference components / features/ routes that are in the main application or in a library
  6. BINDU https://oauth.net/2/grant-types/implicit/ https://auth0.com/docs/flows/concepts/single-page-login-flow https://developer.okta.com/blog/2018/05/24/what-is-the-oauth2-implicit-grant-type
  7. VIJAY As Bindu mentioned, there are 2 main workflows. The first workflow will show the signing process with a DocuSign Authenticated session. The second workflow will show the signing process where there is no DocuSign Authenticated session. https://oauth.net/2/grant-types/implicit/ https://auth0.com/docs/flows/concepts/single-page-login-flow https://developer.okta.com/blog/2018/05/24/what-is-the-oauth2-implicit-grant-type
  8. VIJAY We want to sign the document that is shown in the preview screen. Lets look at the process.. What just happened? Let us walk through the steps. We have configured the preview page to show the ‘Sign Document’ action. Since we have an authenticated DocuSign session, we are sending the document to DocuSign for signature as shown in the SnackBar. The document is opened in the embedded signing flow in DocuSign. The user signs the document. DocuSign makes a callback to Alfresco Workspace. Workspace now fetches the signed document from DocuSign and updates in Alfresco.
  9. VIJAY In this workflow, the user has to Authenticate with DocuSign before they can sign a document. The interesting part of this workflow is that..Workspace remembers the action that the user wanted to do before authentication..In this case, ‘Sign Document’ action is called after authentication. Docusign Auth -> redirect to workspace -> call ‘Sign Document’ action -> Upload the doc to docusign and sign -> Make a callback to Workspace -> Fetch signed doc from docusign -> update in Alfresco https://oauth.net/2/grant-types/implicit/ https://auth0.com/docs/flows/concepts/single-page-login-flow https://developer.okta.com/blog/2018/05/24/what-is-the-oauth2-implicit-grant-type
  10. VIJAY In this workflow, we have configured the Document List view to show the ‘Sign Document’ action. This workflow will show that the user has to Authenticate with DocuSign before they can sign a document. we authenticate in DocuSign and redirects back to workspace. workspace remembers the action that was performed and it uploads the document to DocuSign...then it redirects to the embedded signing flow. DocuSign redirects back to the document list. Workspace fetches the signed document from DocuSign and updates the document in Alfresco. We are going back to preview just to show the signature is there
  11. BINDU Alfresco uses Hashbased routing by default. Docusign returns hash based routes and we had to use webscripts to handle routing from Docusign CORS issue - simplest way is to serve the angular app to proxy the services
  12. VIJAY to integrate with DocuSign, we need a client id (integrator key). each installation will have a different id. we dont want to bake this into the code. We want to use a central configuration file. Workspace uses app.config.json for its extensions.. We just added our custom configuration into this app config file to be used in the code. The screenshot at the left shows us retrieving the clientId from the config file.
  13. BINDU https://ngrx.io/ NGRX is a framework inspired by Redux. Alfresco uses ngrx for state information. It is used to dispatch actions. The effect gets the action and a piece of the state, performs business logic and then updates the state
  14. BINDU https://ngrx.io/ Alfresco uses ngrx for state information. It is used to dispatch actions. The effects gets th action and a piece of the state, performs business logic and then updates the state
  15. VIJAY ngi.json - we want to package our extension so that it is easy to deliver . There are 2 ways to package. 1) publish to npm or 2) create a local tar ball 1) OOTB npm install works but requires us to manually updates a few files. Like add import statements in app.module.ts and updating ‘angular.json’ with references to the assets of the extensions. 2) use ngi tool created by Denys. The ngi command line tool automates a bunch of changes we had to manually do in npm install. All you need is to install ngi tool and create a ngi.json as shown in the screenshot. The tool can take the extension as a local tar ball or from NPM and install to the project..for example, if we had a npm library, we can just say ‘ngi zia-extension’. If we had a tarball, we can use ‘ngi zia-extension-0.0.1.tgz zia-extension’. ngi updates angular.json. there are links in our slides and you can take a look at it https://medium.com/@DenysVuika/announcing-ngi-installer-for-angular-libraries-f29c003d4fcd https://www.npmjs.com/package/@ngstack/install
  16. BINDU
  17. BINDU File uploading/posting issue should be fixed in new TypeScript based Alfresco JS API. https://github.com/Alfresco/alfresco-js-api/issues/377