Successfully reported this slideshow.

July OpenNTF Webinar - HCL Presents Keep, a new API for Domino

1

Share

Loading in …3
×
1 of 41
1 of 41

July OpenNTF Webinar - HCL Presents Keep, a new API for Domino

1

Share

Download to read offline


In 2019 the HCL Labs reimagined how a REST API for Domino should look like. The initial prototype was shared with selected customers and partner. Based on the feedback, Project KEEP will ship together with Domino.

KEEP allows applications to interact with Domino servers using simple HTTP calls directly from a browser, desktop or mobile app, or with a application server in the middle. To make this API accessible to a large audience open standards like OpenAPI or JWT were chosen over propriety implementations.

This session will introduce KEEP and the design principles and use cases. Data security and ease of use will be highlighted. Warm up your Postman clients and curl command lines and follow along!

The presenters for this session will be Stephan Wissel and Paul Withers from HCL.


In 2019 the HCL Labs reimagined how a REST API for Domino should look like. The initial prototype was shared with selected customers and partner. Based on the feedback, Project KEEP will ship together with Domino.

KEEP allows applications to interact with Domino servers using simple HTTP calls directly from a browser, desktop or mobile app, or with a application server in the middle. To make this API accessible to a large audience open standards like OpenAPI or JWT were chosen over propriety implementations.

This session will introduce KEEP and the design principles and use cases. Data security and ease of use will be highlighted. Warm up your Postman clients and curl command lines and follow along!

The presenters for this session will be Stephan Wissel and Paul Withers from HCL.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

July OpenNTF Webinar - HCL Presents Keep, a new API for Domino

  1. 1. OPENNTF WEBINARS July OpenNTF Webinar: HCL Presents Keep, a new API for Domino
  2. 2. AGENDA • Welcome – Howard Greenberg and Graham Acres • Keep – Paul Withers and Stephan Wissel from HCL • Q and A
  3. 3. THANKS TO THE OPENNTF SPONSORS • HCL made a significant contribution to help our organization • Funds these webinars! • Contests like Hackathons • Running the organization • Prominic donates all IT related services • Cloud Hosting for OpenNTF • Infrastructure management for HCL Domino and Atlassian Servers • System Administration for day-to-day operation
  4. 4. THIS IS OUR COMMUNITY • Join us and get involved! • We are all volunteers • No effort is too small • If your idea is bigger than you can do on your own, we can connect you to a team to work on it • Test or help or modify an existing project • Write guides or documentation • Add reviews on projects / stars on Snippets
  5. 5. AUGUST WEBINAR • Git and GitHub Explained with Jesse Gallagher and Paul Withers on Aug. 19th • Demystify git • Explain Branching • Show what makes a high quality repository • How to take advantage of GitHub’s broad functionality • Get that coveted "Verified" badge • Go from source control zero to GitHub hero! • Register at https://www.openntf.org/webinars
  6. 6. Project KEEP – OpenNTF July 2021 Project Keep and Why You Would Want It Paul S. Withers, HCL Stephan H. Wissel, HCL
  7. 7. Project KEEP – OpenNTF July 2021 • Beta Early Access • Art of the possible • Feedback appreciated • Q: Does it [insert feature]? • A: No (But we’ll put it in the backlog) HCL Labs v1 - availablenow v2 – 31 July 2021 … GA -> with 12.0.1
  8. 8. Project KEEP – OpenNTF July 2021 What do developers want? Standards, Choice & Familiarity
  9. 9. Project KEEP – OpenNTF July 2021 Brace for 500 slides to follow DEMO
  10. 10. Project KEEP – OpenNTF July 2021 Architecture Linux & Windows HCL sponsored Redhat OpenSource OpenAPI driven Foundation for OpenClient
  11. 11. Project KEEP – OpenNTF July 2021 • Built by developers, for developers – Domino and non-Domino • API First – contract-driven development using OpenAPI 3.0 • Secure by default • Web admin GUI • Data…but also design and admin • Extensible architecture • Low barrier to entry – Windows, Mac and Linux; Domino and Notes Client – Host static web apps (e.g. ReactJS, Angular) • APIs for: Data, Design, PIM, Admin • PIM -> follow the JMap data model Architectural Decisions Foundation for OpenClient
  12. 12. Project KEEP – OpenNTF July 2021 Consuming Keep Internal Trusted Internal Non-Trusted External Trusted External Non-Trusted Node.js ✓ ✓ ✓ ✓ JavaScript ✓ ✓ ✓ ✓ Java ✓ ✓ ✓ ✓ Python ✓ ✓ ✓ ✓ .NET ✓ ✓ ✓ ✓ Go ✓ ✓ ✓ ✓ Rust ✓ ✓ ✓ ✓ Deno ✓ ✓ ✓ ✓ PHP ✓ ✓ ✓ ✓ Not another API?!
  13. 13. Project KEEP – OpenNTF July 2021 Build-in Website
  14. 14. Project KEEP – OpenNTF July 2021 https://opensource.hcltechsw.com/domino-keep-docs/ Public Documentation Pull requests accepted
  15. 15. Project KEEP – OpenNTF July 2021 Live OpenAPI specs
  16. 16. Project KEEP – OpenNTF July 2021 ReDoc
  17. 17. Project KEEP – OpenNTF July 2021 Security
  18. 18. Project KEEP – OpenNTF July 2021 Admin GUI
  19. 19. Project KEEP – OpenNTF July 2021 KEEP Databases
  20. 20. Project KEEP – OpenNTF July 2021 KEEP Access definition
  21. 21. Project KEEP – OpenNTF July 2021 Form Access Modes
  22. 22. Project KEEP – OpenNTF July 2021 Form Access Modes
  23. 23. Project KEEP – OpenNTF July 2021 – No Reader access? You’re not getting in – No Depositor / Author access? You can’t create – No Author / Editor access? You can’t update – No Delete privilege? You can’t delete Form Access Modes refine, they don’t override ACL and more
  24. 24. Project KEEP – OpenNTF July 2021 The Big picture
  25. 25. Project KEEP – OpenNTF July 2021 • Keep is driven by OpenAPI • Keep Database defines what is available • If we could cross-reference would it be possible… …to generate a “Keep Database-specific” OpenAPI spec for consumers?... …which could be used in, say, Node-RED? Consuming KEEP
  26. 26. Project KEEP – OpenNTF July 2021 [{"id":"5dd0bc48.dc80b4","type":"tab","label":"Flow 2","disabled":false,"info":""},{"id":"29b38c4f.28ccf4","type":"openApi- red","z":"5dd0bc48.dc80b4","name":"","openApiUrl":"http://localhost:8880/api/v1/openapi?db=demo","api":"authentication","operation":"authLogin","operationData":{"name":"Get JWT Session"},"errorHandling":"throw exception","parameters":{" Request Body":{"name":"Request Body","in":"","required":true,"value":"{"password":"password","username":"John Doe"}","isActive":true,"inputType":"json"}},"contentType":"application/json","outputs":1,"x":290,"y":140,"wires":[["508f60e3.7e1268"]]},{"id":"f0962063.ebf968","type":"inject","z":"5dd0bc48.dc80b4","name ":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":140,"wires":[["29b38c4f.28ccf4"]]},{"id":"bef884d1.bcee18","type":"catch","z":"5dd0bc48. dc80b4","name":"","scope":null,"uncaught":false,"x":380,"y":60,"wires":[["43b3784.e00d588"]]},{"id":"43b3784.e00d588","type":"debug","z":"5dd0bc48.dc80b4","name":"","active":true,"tosidebar":true,"console ":false,"tostatus":false,"complete":"true","targetType":"full","x":520,"y":60,"wires":[]},{"id":"508f60e3.7e1268","type":"function","z":"5dd0bc48.dc80b4","name":"Store bearer","func":"if (msg.payload.status === 200) {n flow.set('keepBearer',msg.payload.body.bearer);n msg.payload = 'We have a bearer!';n} else {n msg.payload = msg.payload.statusText + ': ' + msg.payload.text;n}nreturn msg;","outputs":1,"noerr":0,"x":490,"y":140,"wires":[["f93daa2a.68404"]]},{"id":"f93daa2a.68404","type":"debug","z":"5dd0bc48.dc80b4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":fa lse,"complete":"true","targetType":"full","x":640,"y":140,"wires":[]},{"id":"9dbc9ed4.ad934","type":"openApi- red","z":"5dd0bc48.dc80b4","name":"","openApiUrl":"http://localhost:8880/api/v1/openapi?db=todo","api":"data","operation":"fetchViewEntries","operationData":{"name":"Pulls in view data"},"errorHandling":"","parameters":{"query db":{"name":"db","in":"query","required":true,"value":"todo","isActive":true,"inputType":""},"query count":{"name":"count","in":"query","value":"","isActive":false,"inputType":"num"},"path name":{"name":"name","in":"path","required":true,"value":"todosView","isActive":true,"inputType":""},"query scope":{"name":"scope","in":"query","required":false,"value":"","isActive":false,"inputType":""},"query start":{"name":"start","in":"query","value":"","isActive":false,"inputType":"num"},"query categories":{"name":"categories","in":"query","value":"","isActive":false,"inputType":"str"},"query documents":{"name":"documents","in":"query","value":"true","isActive":false,"inputType":"bool"}},"contentType":"","schema":"","outputs":1,"x":430,"y":220,"wires":[["46a1d676.f12dd8"]]},{"id":"71d11957.297 b68","type":"inject","z":"5dd0bc48.dc80b4","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":220,"wires":[["e684a3ba.17be28"]]},{"id" :"e684a3ba.17be28","type":"change","z":"5dd0bc48.dc80b4","name":"Set Bearer","rules":[{"t":"set","p":"openApiToken","pt":"msg","to":"keepBearer","tot":"flow"}],"action":"","property":"","from":"","to":"","reg ":false,"x":250,"y":220,"wires":[["9dbc9ed4.ad934"]]},{"id":"a6fb 36df.4b06e8","type":"inject","z":"5dd0bc48.dc80b4","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":300,"wires":[["474b1273.ca6b14"] ]},{"id":"474b1273.ca6b14","type":"change","z":"5dd0bc48.dc80b4","name":"Set Bearer","rules":[{"t":"set","p":"openApiToken","pt":"msg","to":"keepBearer","tot":"flow"}],"action":"","property":"","from":"","to":"","reg ":false,"x":250,"y":300,"wires":[["7bff1bae.e4b6c4"]]},{"id":"7bf f1bae.e4b6c4","type":"openApi-red","z":"5dd0bc48.dc80b4","name":"","openApiUrl":"http://localhost:8880/api/v1/openapi?db=todo","api":"data","operation":"createDocument","operationData":{"name":"Create a new document"},"errorHandling":"","parameters":{"query db":{"name":"db","in":"query","required":true,"value":"todo","isActive":true,"inputType":""},"query parentunid":{"name":"parentunid","in":"query","value":"","isActive":false,"inputType":"str"}," Request Body":{" name":"Request Body","in":"","required":true,"value":"{"Form":"todo","description":"Check processing from Node-RED","duedate":"2020-10-05T17:10:07Z","name":"Create ToDo from Node- RED","priority":"low"}","isActive":true,"inputType":"json"}},"contentType":"application/json","schema":"","outputs":1,"x":450,"y":300,"wires":[["46a1d676.f12dd8"]]},{"id":"fc3aa8b4.8334","type":"inje ct","z":"5dd0bc48.dc80b4","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":400,"wires":[["90b0afe2.a6844"]]},{"id":"95520369.9edbc8" ,"type":"openApi-red","z":"5dd0bc48.dc80b4","name":"","openApiUrl":"http://localhost:8880/api/v1/openapi?db=todo","api":"data","operation":"updateDocument","operationData":{" name":"Perform an update on the document at the relevant mode"},"errorHandling":"","parameters":{"query parentunid":{"name":"parentunid","in":"query","value":"","isActive":false,"inputType":"str"},"query db":{"name":"db","in":"query","required":true,"value":"todo","isActive":true,"inputType":""},"path mode":{"name":"mode","in":"p ath","required":true,"value":"complete","isActive":true,"inputType":""},"path unid":{"name":"unid","in":"path","required":true,"value":"0DABAA1E73F497C2802585E0003E5F3D","isActive":true,"inputType":"str"}," Request Schema":{"name":"Request Schema","in":"","required":true,"value":"Root type for todo-complete Requests","isActive":true,"inputType":""}," Request Body":{"name":"Request Body","in":"","required":true,"value":"{"Form":"todo","completed":"true"}","isActive":true,"inputType":"json"}},"contentType":"application/json","schema":"Root type for todo-complete Requests","outputs":1,"x":550,"y":400,"wires":[["46a1d676.f12dd8"]]},{"id":"90b0afe2.a6844","type":"change","z":"5dd0bc48.dc80b4","name":"Set Bearer","rules":[{"t":"set","p":"openApiToken","pt":"msg","to":"keepBearer","tot":"flow"}],"action":"","property":"","from":"","to":"","reg ":false,"x":250,"y":400,"wires":[["95520369.9edbc8"]]},{"id":"46a 1d676.f12dd8","type":"debug","z":"5dd0bc48.dc80b4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":720,"y":240,"wires":[]}] You said NodeRED? - easy
  27. 27. Project KEEP – OpenNTF July 2021 NodeRED
  28. 28. Project KEEP – OpenNTF July 2021 • DXL gives you raw design information • Domino developers interact with design elements • Non-Domino developers don’t understand DXL • But our target audience understands JSON • /design?db=keepdb → Forms, Agents and Views as JSON • /design/{designtype}?db=keepdb → All of design type as JSON • /design/{designtype}/{designname}?db=keepdb → specific design element Beyond Data Forms, Agents, Views
  29. 29. Project KEEP – OpenNTF July 2021 CAVEAT: subject to DXL limitations, see https://domino-ideas.hcltechsw.com/ideas/IDEAAD-I-92 Beyond Data Read Access Is Nice, But…
  30. 30. Project KEEP – OpenNTF July 2021 Administration? Beyond Data
  31. 31. Project KEEP – OpenNTF July 2021 API Access Should Not Require Installing Domino Designer Beyond Data Administering Keep Create NSF With Keep Create ViewWith Keep Create Formwith Keep CRUD ACL with Keep Notes Developer ✓* ✓*+ ✓*+ ✓☨ XPages Developer ✓* ✓*+ ✓*+ ✓☨ JavaScript Developer ✓ ✓+ ✓+ ✓☨ Java Developer ✓ ✓+ ✓+ ✓☨ *Or use Domino Designer ☨Or useDomino Administrator /Notes Client + Intended for API access only. DOES NOTinclude access to Notes Client UI properties (e.g. fontcolour)
  32. 32. Project KEEP – OpenNTF July 2021 Sample Tutorials Beyond Documentation
  33. 33. Project KEEP – OpenNTF July 2021 • Global business actions (e.g. Workflow) • Custom REST API gateways • Pub Sub endpoints • Combine REST access to other stuff with Domino • Experimental APIs* • World Domination Extensibility (Planned) * Sit back and watch
  34. 34. Project KEEP – OpenNTF July 2021 • Build you OpenAPI spec • Create the Keep Extension jar • Add the configuration • Have fun! Beyond The Core
  35. 35. Project KEEP – OpenNTF July 2021 Extensible Config Sample extension configuration
  36. 36. Project KEEP – OpenNTF July 2021 • OData = Open Data Protocol • Salesforce can consume & update OData • Excel (Windows) can consume OData* • SAP can consume & update OData • Access is currently basic auth Beyond The Web Application Click on card, copy the URL, use in Excel etc. * read/write with CDATA plugin
  37. 37. Project KEEP – OpenNTF July 2021 OData
  38. 38. Project KEEP – OpenNTF July 2021 Questions?
  39. 39. Project KEEP – OpenNTF July 2021 • Download & try it • Read the documentation (includes download link) https://opensource.hcltechsw.com/domino-keep-docs/ • Try the tutorials https://opensource.hcltechsw.com/domino-keep-docs/ • Build your own solutions • Give us feedback https://slackin.openntf.org/ https://registration.hclpartnerconnect.com/dominoearlyaccessforum.nsf Call to action Sample repository coming soon
  40. 40. ASKING QUESTIONS • First Question – Will this be recorded? • Yes, view on YouTube!!! • https://www.youtube.com/user/OpenNTF • Use the Questions Pane in GoToWebinar • We will get to your questions at the end of the webinar • The speakers will respond to your questions verbally • (not in the Questions pane) • Please keep all questions related to the topics that our speakers are discussing!!! • Unrelated Question => post at: • http://openntf.slack.com/
  41. 41. QUESTIONS? Use the GoToWebinar Questions Pane Please keep all questions related to the topics that our speakers are discussing!!! Unrelated Question => post at: http://openntf.slack.com/

×