MongoDB connector
The MongoDB connector supports connections to all modern versions of MongoDB and compatible systems such as Amazon DocumentDB, Azure Cosmos DB, Percona, etc...
This connector works with version 3.x and above of MongoDB.
Parameters
Connection Name
Can be any name you want.
Active
If checked, then this connection will be active any time Gallium Data is running, meaning that the local port will be open and listening for requests. If you uncheck this (and then click Publish), then the connection is "commented out" -- it's as if it didn't exist, but you can still keep it around for later.
Server host
The name or address of the MongoDB server. This can be a partial name (like dbserver), a full name (like dbserver.it.acme.com), an IP4 address (like 181.77.230.42) or an IP6 address if your network supports IP6 (e.g. 266a:1790:2920:69e0:35c:d8ac:da8e:15e0).
If you are running Gallium Data as a Docker container, and the database is on the host machine, you can use host.docker.internal (on Windows or Mac, but see here for Linux).
Local address
Optional. The address on which to listen for requests. This is typically only relevant if your server has more than one address. By default, Gallium Data will listen on all addresses (which is equivalent to 0.0.0.0). If you are running Gallium Data as a Docker container, remember that this address will be in the Docker container.
Server port
The port at which MongoDB server is running on the database server. This is usually 27017.
Use SSL to server
One of:
None : do not use SSL to the server
System CA : use SSL with the operating system's certificate store
Server validation: use SSL and validate the server's certificate with the trust store defined in the project.
Unvalidated : use SSL to the server, but do not validate its certificate.
Require SSL from client
If checked, then only SSL connections will be accepted from clients. If unchecked, both plain and SSL connections will be accepted.
Local port
The port number in the Gallium Data server that will be listening to requests from database clients.
Actions
Test
Once the required parameters are filled, and published to the server, you can press the Test button to verify that Gallium Data can talk to the specified database server. This will attempt to open a connection to the database server, thereby verifying basic network connectivity. In addition, if the Use SSL to server option is not None, Gallium Data will also attempt to establish an SSL connection to verify that certificates are properly installed. Note that no login is performed, since Gallium Data does not have any database credentials.
Delete this connection
Will delete the connection after confirmation. This is not undoable, unless you recover from a backup.
About host names and addresses
If you are running Gallium Data as a Docker container, keep in mind that IP addresses and host names need to be from the perspective of the Docker container. If, for instance, you are running a MongoDB database on your local machine, and you usually connect to it using host name localhost or 127.0.0.1 (or maybe ::1 if you use IP6), the same name or address will not work from the Docker container (since localhost would refer to the Docker virtual machine, not the host machine).
The host name of your machine, as seen from a Docker container running on the same machine, is usually host.docker.internal on Windows and Mac. For Linux and other operating systems, you may need to dig a little deeper.
If you are running both Gallium Data and the database server(s) in Docker, you can make connectivity easy by running them in the same Docker network, but there are many other ways to accomplish the same goal if you're running in a managed environment like Kubernetes or OpenShift.
Packet types
MongoDB defines a number of packet types, described in the Packet types page. Modern MongoDB applications tend to use mostly the MSG packet type for both requests and responses.
Filter types
There are request filters, response filters and a duplex filter available for MongoDB.
Relevant objects
JSON expressions are used by some filters to specify which documents should trigger the execution of the filter.
The BSONUtil class is useful when dealing with BSON objects.
Several variables are pre-defined for use by filter code.