INF104 – HCL Domino AppDev
Pack – The Future of Domino
App Dev Nobody Knows About
Graham Acres, Heiko Voigt
Cross Canada Collaboration User Group
About C3UG
• User Group based in Canada
• Customers, Business Partners, HCLers
• Focus on virtual presence in 2017
– YouTube
– Facebook
– Twitter
– LinkedIn
• 58+ videos on YouTube
Canadian Cloud & Collaboration User Group
www.c3ug.ca
About Graham
• President of Brytek Systems Inc. in Vancouver,
Canada
• Notes / Domino application architect since 1992
(v2.1)
• HCL Ambassador 2019-2020, IBM Champion
2017-2019
• Core Team Member at C3UG
• OpenNTF Board Member 2019
• Cyclist, gardener, cook, hockey nut
About Heiko
• CEO of SIT GmbH in Germany and
Harbour Light Software Development Ltd. in Canada
• Software Architect for 25+ years with N/D, Full-Stack
Web Developer
• HCL Ambassador 2019-2020, IBM Champion 2019
• Core Team Member at C3UG
• Proud father of twins
• Sailor, Home brewer
https://www.sit.dehttps://www.harbour-light.com
• What is the Domino AppDev Pack?
• Why is the AppDev Pack Important?
• Ugly Duckling Blues
• How Can I Use the AppDev Pack?
• Current Domino AppDev Tools in Your Toolbox
• Demos
• Where to Learn More
• Questions
Agenda
• It is an API that opens Domino to the world of
microservices and Node.js development (Java too)
– It is part of the Controller model in MVC architecture
• A new module (Proton Task) installed on the Domino
server
– Listens for requests
• Pro Code
– The learning approach is different from traditional Notes dev
What is the Domino AppDev Pack?
The AppDevPack – State of the union
• Current Release: 1.0.6 from October 2020
• Proton Add-In for Domino Server: V0.8.0
• Bindings:
• Java - V1.0.0
• JavaScript / Node.js V1.7.0
• Features:
• Parity on bindings,
• new DXL Export Feature in Node.js
• IAM Service: V1.6.1
• Documentation Improvements
• What’s missing ?
• Complete Sample Code and best practices / architectural templates
• Marketing of the product (big time!)
• It gives you the flexibility to build apps how you wish
– A blessing and a curse
• You can build enterprise apps without having to move your
data off Domino, and keep all of the security you already
have in place
– Hire any new full stack web developer
• It does the heavy lifting in the background.
– Not flashy. It just works. It is solid.
• Take advantage of all of the new stuff in the Node and Java
worlds!
Why is the AppDev Pack Important?
• Not a lot of fanfare lately
– AppDev Pack is a very good tool
– Project Keep is getting the attention
– The more people talk about AppDev Pack and use it, the less it will
be an ugly duckling
• What are the barriers to entry?
– Learning new technology, again:
• JavaScript, React/Vue UI, OAuth/IAM
– Leverage the steps you took to XPages
• Nothing to be afraid of !
Ugly Duckling Blues
Notes/Domino AppDev Tools
Little use
Aged capabilities
New investment
New capabilities
Yet to be fully
adopted
Current Domino AppDev Tools in Your Toolbox
Regular investment
Area of growth
Of interest to Devs
Expanded capabilities
Go-to choice for
Devs
Powerful
Receives regular
update/investment
Still usable
Little new
investment
Volt
AppDev Pack
Keep
LotusScript
@Functions
Java
XPages
Let's see what is announced at the HCL Digital Week (Factory Tour)
Domino DesignerVS Code
How Can I Use the AppDev Pack?
Domino
REST API App
@domino-db
Business
Application
React
Vue
Angular
NSF Data
LDAPProton
Model Controller View
Node.js & Express
Java
• The Proton task listens to a Port just like the HTTP task
• Start with the Middleware APIs
– Make your (secure) data available to other apps
• Keep Your Data in Domino
– You know your data
– Maintain your security
– Saves the time of an entire app rebuild/migration
– Re-use existing design elements, including your LotusScript
agents!
How Can I Use the AppDev Pack?
Some words on Security and IAM
Front-EndAPI
IAM
Domino
1) Send AUTH
request
5) Redirect back to
Front End including
JWT Token or Error-
Code.
2) Redirect to
Authentication Page
3) Redirect to
Callback URL and
Receive Access Token
4) Create Session
Object and JWT
token, Store Access
Token in session
object and persist
Session Store for
Domino
Basic OAuth Industry Standard !
• #1: APIs in the AppDev Pack (JavaScript)
• #2: Java Sample
• #3: Adaptive Cards in XPages Sample
• #4: Notes To Do app as a Kanban Board
Demos
• C3UG Expense Categories REST-API
• OpenAPI 3.0
• Swagger UI
• MVC Constructs and where to put domino-db
• Sample Repo:
https://github.com/heikovoigt/expense-report-sample
#1: APIs in the AppDevPack
• Read Documents from NSF
• Create new Document in NSF by Domino-DB
• Call LotusScript Agent with Document Context to create
more documents
• Re-Read Documents
• Maven project, Repo:
https://github.com/heikovoigt/appdevpack-java-sample-cs2020
#2: APIs in the AppDevPack
Front-End
#3: Adaptive Card Sample
Front-End renders Card
in Modal Dialog
REST API on Node.JS
using domino-db
Card Definitions
In JSON
Domino Write Response to
Domino NSF
Responses.NSF
XPAGE
Adaptive Cards are platform-agnostic snippets of UI,
authored in JSON, that apps and services can openly exchange.
When delivered to a specific app, the JSON is transformed into
native UI that automatically adapts to its surroundings.
It helps design and integrate light-weight UI
for all major platforms and frameworks.
https://adaptivecards.io/
• React Frontend
• IAM Authentication/Act-As-User
• Read/Write Operations through
domino-db
• REST-API to simulate View-Reads,
document read/write using domino-db
#4: Notes To Do App renders as Kanban Board
React Front End
Node.JS/Express
REST API
IAM
DominoToDo.NSF
• C3UG Offers a FREE Course to Learn the AppDev Pack
• Available on Google Classroom
– www.c3ug.ca/education
• Topics
– Install Domino v11 & the AppDev Pack on CentOS
– Build a simple JavaScript app with no UI to query data from a Notes database (no
security)
– Add standard security and update the app
– Add IAM server for full Domino ACL security
– Write a new app to test the security
– How to use the HCL AppDev Pack documentation
• Watch for our next course!
– Build an expense claims app using the AppDev Pack with a full React UI
Want to Learn More?
Questions
Graham Acres
• graham.acres@brytek.ca
• @gacres99
• https://github.com/gacres/
Heiko Voigt
• heiko.voigt@harbour-light.com
• @HarbourLightcom
• https://github.com/heikovoigt
https://www.c3ug.ca/
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows About

INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows About

  • 1.
    INF104 – HCLDomino AppDev Pack – The Future of Domino App Dev Nobody Knows About Graham Acres, Heiko Voigt Cross Canada Collaboration User Group
  • 3.
    About C3UG • UserGroup based in Canada • Customers, Business Partners, HCLers • Focus on virtual presence in 2017 – YouTube – Facebook – Twitter – LinkedIn • 58+ videos on YouTube Canadian Cloud & Collaboration User Group www.c3ug.ca
  • 4.
    About Graham • Presidentof Brytek Systems Inc. in Vancouver, Canada • Notes / Domino application architect since 1992 (v2.1) • HCL Ambassador 2019-2020, IBM Champion 2017-2019 • Core Team Member at C3UG • OpenNTF Board Member 2019 • Cyclist, gardener, cook, hockey nut
  • 5.
    About Heiko • CEOof SIT GmbH in Germany and Harbour Light Software Development Ltd. in Canada • Software Architect for 25+ years with N/D, Full-Stack Web Developer • HCL Ambassador 2019-2020, IBM Champion 2019 • Core Team Member at C3UG • Proud father of twins • Sailor, Home brewer https://www.sit.dehttps://www.harbour-light.com
  • 6.
    • What isthe Domino AppDev Pack? • Why is the AppDev Pack Important? • Ugly Duckling Blues • How Can I Use the AppDev Pack? • Current Domino AppDev Tools in Your Toolbox • Demos • Where to Learn More • Questions Agenda
  • 7.
    • It isan API that opens Domino to the world of microservices and Node.js development (Java too) – It is part of the Controller model in MVC architecture • A new module (Proton Task) installed on the Domino server – Listens for requests • Pro Code – The learning approach is different from traditional Notes dev What is the Domino AppDev Pack?
  • 8.
    The AppDevPack –State of the union • Current Release: 1.0.6 from October 2020 • Proton Add-In for Domino Server: V0.8.0 • Bindings: • Java - V1.0.0 • JavaScript / Node.js V1.7.0 • Features: • Parity on bindings, • new DXL Export Feature in Node.js • IAM Service: V1.6.1 • Documentation Improvements • What’s missing ? • Complete Sample Code and best practices / architectural templates • Marketing of the product (big time!)
  • 9.
    • It givesyou the flexibility to build apps how you wish – A blessing and a curse • You can build enterprise apps without having to move your data off Domino, and keep all of the security you already have in place – Hire any new full stack web developer • It does the heavy lifting in the background. – Not flashy. It just works. It is solid. • Take advantage of all of the new stuff in the Node and Java worlds! Why is the AppDev Pack Important?
  • 10.
    • Not alot of fanfare lately – AppDev Pack is a very good tool – Project Keep is getting the attention – The more people talk about AppDev Pack and use it, the less it will be an ugly duckling • What are the barriers to entry? – Learning new technology, again: • JavaScript, React/Vue UI, OAuth/IAM – Leverage the steps you took to XPages • Nothing to be afraid of ! Ugly Duckling Blues
  • 11.
    Notes/Domino AppDev Tools Littleuse Aged capabilities New investment New capabilities Yet to be fully adopted Current Domino AppDev Tools in Your Toolbox Regular investment Area of growth Of interest to Devs Expanded capabilities Go-to choice for Devs Powerful Receives regular update/investment Still usable Little new investment Volt AppDev Pack Keep LotusScript @Functions Java XPages Let's see what is announced at the HCL Digital Week (Factory Tour) Domino DesignerVS Code
  • 12.
    How Can IUse the AppDev Pack? Domino REST API App @domino-db Business Application React Vue Angular NSF Data LDAPProton Model Controller View Node.js & Express Java • The Proton task listens to a Port just like the HTTP task
  • 13.
    • Start withthe Middleware APIs – Make your (secure) data available to other apps • Keep Your Data in Domino – You know your data – Maintain your security – Saves the time of an entire app rebuild/migration – Re-use existing design elements, including your LotusScript agents! How Can I Use the AppDev Pack?
  • 14.
    Some words onSecurity and IAM Front-EndAPI IAM Domino 1) Send AUTH request 5) Redirect back to Front End including JWT Token or Error- Code. 2) Redirect to Authentication Page 3) Redirect to Callback URL and Receive Access Token 4) Create Session Object and JWT token, Store Access Token in session object and persist Session Store for Domino Basic OAuth Industry Standard !
  • 15.
    • #1: APIsin the AppDev Pack (JavaScript) • #2: Java Sample • #3: Adaptive Cards in XPages Sample • #4: Notes To Do app as a Kanban Board Demos
  • 16.
    • C3UG ExpenseCategories REST-API • OpenAPI 3.0 • Swagger UI • MVC Constructs and where to put domino-db • Sample Repo: https://github.com/heikovoigt/expense-report-sample #1: APIs in the AppDevPack
  • 17.
    • Read Documentsfrom NSF • Create new Document in NSF by Domino-DB • Call LotusScript Agent with Document Context to create more documents • Re-Read Documents • Maven project, Repo: https://github.com/heikovoigt/appdevpack-java-sample-cs2020 #2: APIs in the AppDevPack
  • 18.
    Front-End #3: Adaptive CardSample Front-End renders Card in Modal Dialog REST API on Node.JS using domino-db Card Definitions In JSON Domino Write Response to Domino NSF Responses.NSF XPAGE Adaptive Cards are platform-agnostic snippets of UI, authored in JSON, that apps and services can openly exchange. When delivered to a specific app, the JSON is transformed into native UI that automatically adapts to its surroundings. It helps design and integrate light-weight UI for all major platforms and frameworks. https://adaptivecards.io/
  • 19.
    • React Frontend •IAM Authentication/Act-As-User • Read/Write Operations through domino-db • REST-API to simulate View-Reads, document read/write using domino-db #4: Notes To Do App renders as Kanban Board React Front End Node.JS/Express REST API IAM DominoToDo.NSF
  • 20.
    • C3UG Offersa FREE Course to Learn the AppDev Pack • Available on Google Classroom – www.c3ug.ca/education • Topics – Install Domino v11 & the AppDev Pack on CentOS – Build a simple JavaScript app with no UI to query data from a Notes database (no security) – Add standard security and update the app – Add IAM server for full Domino ACL security – Write a new app to test the security – How to use the HCL AppDev Pack documentation • Watch for our next course! – Build an expense claims app using the AppDev Pack with a full React UI Want to Learn More?
  • 21.
    Questions Graham Acres • graham.acres@brytek.ca •@gacres99 • https://github.com/gacres/ Heiko Voigt • heiko.voigt@harbour-light.com • @HarbourLightcom • https://github.com/heikovoigt https://www.c3ug.ca/