OPENNTF WEBINARS
July OpenNTF Webinar:
HCL Presents Keep, a new API
for Domino
AGENDA
• Welcome – Howard Greenberg and Graham Acres
• Keep – Paul Withers and Stephan Wissel from HCL
• Q and A
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
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
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
Project KEEP – OpenNTF July 2021
Project Keep
and Why You Would Want It
Paul S. Withers, HCL
Stephan H. Wissel, HCL
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
Project KEEP – OpenNTF July 2021
What do developers want?
Standards, Choice & Familiarity
Project KEEP – OpenNTF July 2021
Brace for 500 slides to follow
DEMO
Project KEEP – OpenNTF July 2021
Architecture
Linux &
Windows
HCL sponsored
Redhat
OpenSource
OpenAPI driven
Foundation for
OpenClient
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
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?!
Project KEEP – OpenNTF July 2021
Build-in Website
Project KEEP – OpenNTF July 2021
https://opensource.hcltechsw.com/domino-keep-docs/
Public Documentation
Pull requests
accepted
Project KEEP – OpenNTF July 2021
Live OpenAPI specs
Project KEEP – OpenNTF July 2021
ReDoc
Project KEEP – OpenNTF July 2021
Security
Project KEEP – OpenNTF July 2021
Admin GUI
Project KEEP – OpenNTF July 2021
KEEP Databases
Project KEEP – OpenNTF July 2021
KEEP Access definition
Project KEEP – OpenNTF July 2021
Form Access Modes
Project KEEP – OpenNTF July 2021
Form Access Modes
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
Project KEEP – OpenNTF July 2021
The Big picture
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
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
Project KEEP – OpenNTF July 2021
NodeRED
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
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…
Project KEEP – OpenNTF July 2021
Administration?
Beyond Data
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)
Project KEEP – OpenNTF July 2021
Sample Tutorials
Beyond Documentation
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
Project KEEP – OpenNTF July 2021
• Build you OpenAPI spec
• Create the Keep Extension jar
• Add the configuration
• Have fun!
Beyond The Core
Project KEEP – OpenNTF July 2021
Extensible Config
Sample extension configuration
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
Project KEEP – OpenNTF July 2021
OData
Project KEEP – OpenNTF July 2021
Questions?
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
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/
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/

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

  • 1.
    OPENNTF WEBINARS July OpenNTFWebinar: HCL Presents Keep, a new API for Domino
  • 2.
    AGENDA • Welcome –Howard Greenberg and Graham Acres • Keep – Paul Withers and Stephan Wissel from HCL • Q and A
  • 3.
    THANKS TO THEOPENNTF 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.
    THIS IS OURCOMMUNITY • 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.
    AUGUST WEBINAR • Gitand 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.
    Project KEEP –OpenNTF July 2021 Project Keep and Why You Would Want It Paul S. Withers, HCL Stephan H. Wissel, HCL
  • 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.
    Project KEEP –OpenNTF July 2021 What do developers want? Standards, Choice & Familiarity
  • 9.
    Project KEEP –OpenNTF July 2021 Brace for 500 slides to follow DEMO
  • 10.
    Project KEEP –OpenNTF July 2021 Architecture Linux & Windows HCL sponsored Redhat OpenSource OpenAPI driven Foundation for OpenClient
  • 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.
    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.
    Project KEEP –OpenNTF July 2021 Build-in Website
  • 14.
    Project KEEP –OpenNTF July 2021 https://opensource.hcltechsw.com/domino-keep-docs/ Public Documentation Pull requests accepted
  • 15.
    Project KEEP –OpenNTF July 2021 Live OpenAPI specs
  • 16.
    Project KEEP –OpenNTF July 2021 ReDoc
  • 17.
    Project KEEP –OpenNTF July 2021 Security
  • 18.
    Project KEEP –OpenNTF July 2021 Admin GUI
  • 19.
    Project KEEP –OpenNTF July 2021 KEEP Databases
  • 20.
    Project KEEP –OpenNTF July 2021 KEEP Access definition
  • 21.
    Project KEEP –OpenNTF July 2021 Form Access Modes
  • 22.
    Project KEEP –OpenNTF July 2021 Form Access Modes
  • 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.
    Project KEEP –OpenNTF July 2021 The Big picture
  • 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.
    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.
    Project KEEP –OpenNTF July 2021 NodeRED
  • 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.
    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.
    Project KEEP –OpenNTF July 2021 Administration? Beyond Data
  • 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.
    Project KEEP –OpenNTF July 2021 Sample Tutorials Beyond Documentation
  • 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.
    Project KEEP –OpenNTF July 2021 • Build you OpenAPI spec • Create the Keep Extension jar • Add the configuration • Have fun! Beyond The Core
  • 35.
    Project KEEP –OpenNTF July 2021 Extensible Config Sample extension configuration
  • 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.
    Project KEEP –OpenNTF July 2021 OData
  • 38.
    Project KEEP –OpenNTF July 2021 Questions?
  • 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.
    ASKING QUESTIONS • FirstQuestion – 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.
    QUESTIONS? Use the GoToWebinarQuestions Pane Please keep all questions related to the topics that our speakers are discussing!!! Unrelated Question => post at: http://openntf.slack.com/