Skip to main content

MongoDB

MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas.

info

This page is only meant to cover using MongoDB without GridFS. The common use case for MongoDB without GridFS is to act as an indexing engine, like Elasticsearch


Authentication Connection

Authentication Configuration Fields

  • Name: Unique name for this auth connector.
  • Username: The Username of the user to authenticate with to the Mongo DB Instance.
  • Password: The password associated with the above username.
  • Mongo URI: The Full mongodb connection URI to connect to. See this document for additional info on URI construction.
  • Database: The database to authorize to.
  • Use MongoDB GridFS Services: Using MongoDB GridFS Services. Leave unchecked for regular MongoDB
Mongo URI

Simflofy inserts the username and password into the connection string. In order to include them as part of the uri we use

[[USER]]:[[PASS]]


Discovery Connector

Discovery Instance Configuration Fields

  • Name: Unique name for your connector
  • Authentication Connection: Select the auth connector for this discovery
  • Ignore Types (comma delimited list): Chose document types to ignore when running discovery
  • Database: The name of the Mongo database to read data from.
  • Server And Port: The port used to connect to your Mongo database.

Integration Connection

Integration Connection Fields

  • Connection Name: This is a unique name given to the connector instance upon creation.
  • Description: A description of the connector to help identify it better.

Job Configuration

  • Collection: The name of the collection to create/write to. Simflofy will handle the "files" and "chunks" collections internally
  • Insert Simflofy Metadata: Required for Federation. Write Simflofy metadata onto objects. Automatically included if GridFS is enabled in auth connection.
  • Use bulk write operations (MongoDB only): Simflofy will use bulk write operations for better performance.
  • Number of documents to write per bulk operations: Number of documents to send per bulk write
  • Include Un-Mapped Properties: Add all metadata on the document

Content Service Connection

note

This mode of connector does not interact with content stored in MongoDB. Use the GridFS mode.


Content Search Connection

Default Query: (3.1.1+) This field allows you to add a default mongodb query to all incoming queries. The query in this box will be wrapped in an $and clause with all other search parameters.

Get all versions and display versions on file name: Only used in GridFS Mode


Indexing Document Level Permissions

Simflofy content views offer a number of security layers. Using the Javascript processor permissions can be added to each document, which can restrict widget usage and the ability to search for the document.

Repository Document ACLS

Each document, whether it has source permissions or not, will have an Allow and Deny ACL (Access Control List). Both lists exist as a list of strings (String []) on the document, and can be access through javascript. In order to apply document level permissions to documents, permissions will need to take the form

action=principal1,principal2,principal3

Where action can be Search, or the id of a Widget Definition The principals are Simflofy user logins, or User Group names.

Limitations

Only the Search permission is checked at the API level. Meaning, that a user can still access documents directly through the Content Services API. These permissions simply alter content views to prevent them from performing these actions via Widgets.

{
"allow": true,
"action": "Search",
"principals": [
"everyone"
]
}

Here is an example of some javascript that will prevent users in group1 from downloading documents through TSearch. It will also stop user1 from searching for the document.


var deny = ['DownloadWidget=group1', 'Search=user1'];
rd.setDenyAcl(deny);