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
- Output Specification
- Advanced Options
- Mongo Repository
- 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
- Drop and Build Indexes: Indexes are created to speed up searches. This will rebuild them entirely. This can be a lengthy process and should only ever be performed on the initial run
- Index Keys: A comma delimited list of field keys to index. For multiple collections use key1:collection1,key2:collection2.
- Upsert Key: 'Upserting' is simply means "Update if exists". This key will be checked to see if the document already exists. Leave blank to use Simflofy source repository key. If not set and Insert Simflofy Metadata is not checked, then only creates will be called.
- MongoDB Write Concern: Write concern describes the level of acknowledgement requested from MongoDB for write operations
- File Store Connector ID: Connector ID of Content Service Connector to use as the File Store. Or leave blank to use native GridFS. This field is only used if MongoDB GridFS is Enabled in the Authentication Connector.
- Comma delimited list of collections to crawl: As the name says.
- Select what field will act as the source id for the document: The field which will appears as the "source_repository_id" field in the output document
- Query: A Mongo Query. If left blank the query will be "{}", or "get all"
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);