User-data store
Linkurious Enterprise uses an SQL database to store user-data. The database contains:
- visualizations
- users
- groups
- access-rights
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 the compatibility matrix.
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 SQL_HOST
by actual values).
On MySQL and MariaDB:
CREATE USER 'SQL_USER_NAME'@'SQL_HOST' IDENTIFIED BY 'SQL_PASSWORD';
CREATE DATABASE linkurious;
GRANT ALL PRIVILEGES ON linkurious.* TO 'SQL_USER_NAME'@'SQL_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 useroptions
: 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
(default:false
, boolean): Whether to use SSL for database connectionencrypt
(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 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
}
}