Installation
Steps to install and configure the electronic document exchange application in OpenKM v8.1:
In case you want to install EDX on a different server than OpenKM, you need to create the database:
CREATE USER 'edx'@'%' IDENTIFIED BY 'openkm';
CREATE DATABASE edx DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;
GRANT ALL ON edx.* TO 'edx'@'%' WITH GRANT OPTION;
Otherwise, you must use the same database used by OpenKM.
- Stop Tomcat
- Download the application from OpenKM download center
- Place the edx.war file into $TOMCAT_HOME/webapps
- Place the edx-plugins.jar file into $TOMCAT_HOME/plugins
- This application needs to share the database with OpenKM, so you don't need to create a new one
- Create the configuration file $TOMCAT_HOME/edx.properties (this is a sample configuration that needs to be adapted to the target environment)
# Database
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/okmdb?useUnicode=true&characterEncoding=UTF8
spring.datasource.username=openkm
spring.datasource.password=openkm
# JPA stuff
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDB106Dialect
# OpenKM
openkm.url=http://localhost:8080/openkm
openkm.url.preview=http://localhost:8080/openkm
# OpenKM admin user
admin.user=okmAdmin
admin.password=admin
# OpenKM edx user
edx.user=edxUsr
edx.password=s3cr3t0
# Available languages
languages=es-ES#Espa\u00f1ol,en-GB#English
default.language=en-GB
# Logging config
logging.level.com.openkm.edx=INFO
EDX has been tested with these databases:
- MySQL
- MariaDB
- Oracle 12c
- PostgreSQL 9
- SQL Server 2012
See below for other databases' configurations.
The openkm.url configuration property family is also important because EDX will use this user to interact with your OpenKM instance. So, configure a user with enough permissions. This user should already exist in OpenKM.
- Start Tomcat
- Log into OpenKM
- Go to Administration > Users and create the user defined in the edx.user configuration property. This user will be used to connect to the OpenKM instance, so double check the username and password, and make sure this user has access to the EDX base folder (the one defined at edx.base.uuid configuration property)
- Go to Administration > Utilities > Database query and execute these SQL statements to create some needed configuration properties:
insert into OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) values ('edx.base.uuid', 'string', '');
insert into OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) values ('edx.inbox.name', 'string', 'Inbox');
insert into OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) values ('edx.public.name', 'string', 'Public');
insert into OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) values ('edx.template.folder.inbox.uuid', 'string', '');
insert into OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) values ('edx.template.folder.public.uuid', 'string', '');
insert into OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) values ('edx.notification.email.subject', 'string', 'EDX Document notification');
insert into OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) values ('edx.notification.email.body.uuid', 'string', '[uuid-of-the-html-document]');
- Set the configuration properties according to their usage:
- edx.base.uuid: The base folder UUID where the other folders will be created.
- edx.inbox.name: The name of the folder used to store the incoming documents. Only used if the edx.template.folder.inbox.uuid property does not exist or it's empty.
- edx.public.name: The name of the folder used to store public documents. Only used if the edx.template.folder.public.uuid property does not exist or it's empty.
- edx.template.folder.inbox.uuid: UUID of the folder template that creates the inbox folder structure.
- edx.template.folder.public.uuid: UUID of the folder template that creates the public folder structure.
- edx.notification.email.subject: Mail subject used in document notifications.
- edx.notification.email.body.uuid: The UUID of the HTML document used in the mail notification body.
A minimal sample configuration would be:
- edx.base.uuid: 688d3712-c12a-4140-be06-aefd098fe705 (use an existing folder UUID)
- edx.notification.email.body.uuid: EDX Document notification
- edx.notification.email.body.uuid: fdc419dd-5dd5-41cf-94c5-61a41715ca41 (HTML document UUID)
- edx.inbox.name: Inbox
- edx.public.name: Public
Keep in mind that document news notifications will work only for documents in the user's public path (BASE_PATH + "/" + EDX_USER + "/" + FOLDER_PUBLIC)
- BASE_PATH: Configured in ex.base.uuid property.
- EDX_USER: The EDX username.
- FOLDER_PUBLIC: Configured in edx.public.name property.
So, in case you configured the edx.template.folder.public.uuid, ensure the template folder name is equal to the value of the edx.public.name property.
- Create these automations:
Name Event At Validation Action EDX Doc Create
Document create
Post
PathContains = /okm:root
EDX Catalog
EDX Doc Move Pre
Document move
Pre
PathContains = /okm:root
EDX Catalog
EDX Doc Move Post
Document move
Post
PathContains = /okm:root EDX Catalog EDX Doc Delete Document delete
Pre
PathContains = /okm:root
EDX Catalog
EDX Doc Update Document update
Post
PathContains = /okm:root
EDX Catalog
In case of problems, please check $TOMCAT_HOME/logs/edx.log and keep in mind that a more detailed log can be obtained by configuring edx.properties:
# Logging config
logging.level.com.openkm.edx=DEBUG
Don't forget to restart the service to apply these changes.
- Once the application is configured, you can log in to http://server.ip:8080/edx with the default administrator:
- User: admin
- Password: admin
- Remember to change the default password!
Configuration properties
These are common EDX configuration properties:
Field / Property | Type | Description |
---|---|---|
languages | String |
List of available languages to choose from on the login screen. es-ES#Espa\u00f1ol,en-GB#English |
default.language | String |
The default language selected on the login screen. en-GB |
application.title | String |
The title shown on the login screen. Electronic Document Exchange |
password.pattern |
String |
Valid characters for user passwords. [A-Za-z0-9]+ |
password.minlength |
Integer |
Minimum length for user passwords. 8 |