User-data store
Linkurious Enterprise uses an SQL database to store user-data. The database contains:
- visualizations
- users
- groups
- access-rights
This database doesn't store the business data stored in the graph database (except for the widget) which makes it a lightweight database that doesn't need a lot of resources.
By default, the user-data store is a SQLite file-based database. This makes Linkurious Enterprise easy to deploy.
For deployment at scale (more than a couple users), we recommend switching to one of the supported server-based databases:
To see the exact list of supported vendors and versions, please review our compatibility matrix.
Database server requirements
Typical database server requirements for a moderate usage of the system with less than 100 users are:
- 5GB of RAM
- 2 CPU cores
- 3GB of database initial size (no growth foreseen)
You may need to allocate more resources in the following scenarios:
- Intense usage of widgets
- Number of users higher than 100
- High number of alert models
If you need to get help from professionals, contact us and we will be happy to answer your questions.
Getting started
In order to get started with Linkurious Enterprise, there are few requirements for user-data store to function properly.
- The database should be empty. Linkurious Enterprise will handle the creation and maintenance of the database structures.
- For Linkurious Enterprise to perform database operations, a local SQL account with sufficient privileges must be provided to allow running any read / write / DDL query.
In order to create a new linkurious
database and an associated user, refer to your team of database experts to comply with possible internal policies. Below is an example of typical queries you can use (replace SQL_USER_NAME
, SQL_PASSWORD
, and LKE_HOST
by actual values).
On MySQL and MariaDB:
CREATE USER 'SQL_USER_NAME'@'LKE_HOST' IDENTIFIED BY 'SQL_PASSWORD';
CREATE DATABASE linkurious;
GRANT ALL PRIVILEGES ON linkurious.* TO 'SQL_USER_NAME'@'LKE_HOST';
Please note that custom
sql_mode
in MariaDB and MySQL is not supported. Linkurious Enterprise only supports the default value forsql_mode
.
On Microsoft SQL Server:
CREATE DATABASE linkurious;
CREATE LOGIN SQL_USER_NAME WITH PASSWORD = 'SQL_PASSWORD', DEFAULT_DATABASE = linkurious;
USE linkurious;
CREATE USER SQL_USER_NAME FOR LOGIN SQL_USER_NAME;
EXEC sp_addrolemember 'db_owner', SQL_USER_NAME;
Database configuration
Linkurious Enterprise provides many options which can be used to configure user-data store connection. Below, you can find the configuration documentation and configuration examples for popular DBMS solutions.
In the Linkurious Enterprise configuration file, it is possible to configure the database connection under db
key.
name
(default:"linkurious"
): Database name for Linkurious Enterprise to use.username
(optional): Username for the database userpassword
(optional): Password for the database usertransactionTimeout
(optional, default:60000
, only for"mssql"
): The maximum time in milliseconds before a database transaction timeoutoptions
: Child object that contains connection optionsdialect
(default:"sqlite"
): The database dialect to be used. Supports:"sqlite"
,"mysql"
,"mariadb"
,"mssql"
host
: Host address of the databaseport
: Port address of the databasestorage
(only for"sqlite"
): Storage location for the database filedialectOptions
(optional): Child object that contains dialect specific additional optionsssl
(optional): Child object that contains dialect specific options for sslencrypt
(default:false
, boolean): Whether to enable encryption (useful for cloud instances with encryption enabled by default)multiSubnetFailover
(default:false
, boolean): Whether the driver attempts parallel connections to the failover IP addresses during a multi-subnet failover for higher availability.
Configure with SQLite
SQLite if the default user-data store of Linkurious Enterprise.
"db": {
"name": "linkurious",
"options": {
"dialect": "sqlite",
"storage": "server/database.sqlite"
}
}
Configure with MySQL
"db": {
"name": "linkurious",
"username": "MYSQL_USER_NAME",
"password": "MYSQL_PASSWORD",
"options": {
"dialect": "mysql",
"host": "MYSQL_HOST",
"port": 3306
}
}
Configure with MySQL and enforce ssl
"db": {
"name": "linkurious",
"username": "MYSQL_USER_NAME",
"password": "MYSQL_PASSWORD",
"options": {
"dialect": "mysql",
"dialectOptions": {
"ssl": {
"require": true
}
}
"host": "MYSQL_HOST",
"port": 3306
}
}
Configure with Microsoft SQL Server
"db": {
"name": "linkurious",
"username": "MSSQL_USER_NAME",
"password": "MSSQL_PASSWORD",
"options": {
"dialect": "mssql",
"host": "MSSQL_HOST",
"port": 1433
}
}
Configure with MariaDB
"db": {
"name": "linkurious",
"username": "MARIADB_USER_NAME",
"password": "MARIADB_PASSWORD",
"options": {
"dialect": "mariadb",
"host": "MARIADB_HOST",
"port": 3306
}
}