Branching out: A few terms
Thu 16 Jan 2020, 02:42 PMTweet
by Ben Langhinrichs
- Proton - The server addin which handles all the Notes/Domino logic. In true client/server fashion, the Node JS stuff from the client is packaged up and sent to Proton. Then, the DQL is resolved and reads/writes executed and the return value go back to the client.
- domino-db - This is the package which your Node code will reference directly. It has six classes, though that is a bit deceptive. Almost everything in the package is for CRUD operations, though some of these are very powerful as they can do bulk actions on many documents.
- The DominoDB class is kind of like the NotesSession class in LotusScript in that it is instantiated once and then other stuff is accessed using it. It has one method and no properties.
- The Server class is created using that useServer method from the DominoDB class.. It has three methods, but only one is a true method which gives the Database class. The other two are gets for properties.
- The Database class is created using the useDatabase method from the Server class. This is the closest you get to a true class like the NotesDatabase class in LotusScript. It has eighteen methods and a couple of other gets for properties. Most of the methods are for bulk operations based on DQL selections.
- The Document class is created using the useDocument method from the Database class. This is a parallel to the NotesDocument class in LotusScript, and has seven methods for accessing, replacing, and deleting items and attachments.
- The BulkResponse class and DominoDBError class are both encapsulated ways to hand back information on the results of an action. The former lets you know the status of a bulk operation while the latter lets you know a bit about what went wrong when something did go wrong.
- IAM - This is an authentication piece which allows for OAuth 2.0 scopes to be authenticated to user ids in the ID Vault (or locally on the server?). I don't know a heck of a lot about how it works, but it has three components:
- domino-iam-service: A Node.js based lightweight server, which is deployed along with a Domino server to provide the whole IAM service.
- oauth-dsapi-extension: A Domino extension to enable Domino to trust IAM and consume tokens that IAM grants to your application.
- node-iam-client: A Node.js module to assist your Node.js application to talk with IAM. Java, .Net, and other applications can access IAM directly through IAM's RESTful APIs.
- The tree you are busy hugging has new branches,
- Branching out: A few terms
- Branching out: REST, gRPC, and other gory details you can (mostly) ignore
- Branching out: No REST for the wicked - Part 1
- Branching out: No REST for the wicked - Part 2
- Branching out: Let's tackle Node.js
- Branching out: More CRUD with domino-db
- Branching out: Why the domino-db Document is not like NotesDocument
- Branching out: Models, msgs, and microservices
Copyright © 2020 Genii Software Ltd.
What has been said:
1111.1. Ramazan Salpagarov (01/16/2020 02:11 PM)
You are not alone :)
I wait some more functionality in DQL for start use it in my work.
So I hope you will wrote more and more great articles and will help through them me and all developers in the world :)
1111.2. Patrick Kwinten (01/17/2020 02:22 AM)
thanx for explaining the terminology. I guess I will need a cheatsheet for DQL too soon
1111.3. Ben Langhinrichs (01/17/2020 05:23 AM)
I'll focus on DQL in a later post, but not until I understand it at least a little better. All part of the journey.