Explanations¶
Managing users in the Konfuzio Document Validation UI¶
There are two options to manage users in the Document Validation UI:
The first option is to create a single user with limited permissions (i.e. with the Reader role) and user token, that anyone who interacts with the user interface can use in a Project. Since the token will be public, this option is best suited for a read-only view.
The second one is to create as many users as needed, each with their own token. This is best suited for Projects that use single sign-on authentication and/or where users will be interacting with the Documents (annotating and revising), since it allows for fine-grained control over who can access what, and it allows the application to keep a record of the different actions performed by them.
Read Only Mode vs Full Mode¶
The Konfuzio Document Validation UI can be configured to be run as Read Only or Full Mode:
Read Only Mode¶
This is the default mode of the app. In this mode, you will have a sample Document with Annotations that you can only preview. Unless configured, it uses the default API endpoint at https://app.konfuzio.com and no user account is needed.
Full Mode¶
If you want to run the widget in full mode to be able to interact with the Document by editing Annotations, Document Pages and other functionalities, you will need to have a user account created (more information in our Managing users section). Then, you should generate a user Token by accessing the Konfuzio API version 3 Auth Request and making a request with your username and password. If the provided credentials are correct, then a Token will be generated that you can copy and add to the .env
file (see below for more details).
You will also need a Document uploaded and a Document id, and will need to be logged in to Konfuzio) before being able to upload the Document. After successfully uploading it, if you want to show it on the Document Validation UI, you can copy the Document ID from the URL, as shown in the image below:

To complete the setup, create an environment variables file .env
on the root of the repository based on the .env.example for specifying the following values:
The user Token
The Document ID
Some other optional variables you can include are:
The API URL
The images URL
The default language of the app
The Category ID
Please be aware that any variable in the .env
will have priority from the variables defined in the index.html
.
Multilingual User Interface¶
The Document Validation UI can currently be used in three languages: German (DE), English (EN), and Spanish (ES). You can specify what the default language of the application will be in the .env
file, like so:
VUE_APP_I18N_LOCALE=
VUE_APP_I18N_FALLBACK_LOCALE=
You can also specify the language in the html
file:
<div id="app">
<app locale="DE/EN/ES"></app>
</div>
You are also welcome to create a new locales file for a language not currently provided by us, considering the data from our existing files, and share it with us via a Support Ticket or create a Pull Request to add it to the repository.
How to integrate the Document Validation UI into custom solutions?¶
The application requires node
and npm
to run. It also requires a connection to the Konfuzio Server API version 3. See full documentation.
There are a few different options to integrate the Document Validation UI into your Project, which we will explain next.
Install as an NPM package¶
If you want to integrate the Document Validation UI to an existing application, you can run the following command in your terminal to install our npm package:
npm i @konfuzio/document-validation-ui
Configure the application¶
Once the package is installed, you can configure the application in two ways:
Pointing to the dist folder¶
You can use the compiled version under the dist
folder on the package source, by pointing to it from the index.html
and making any necessary changes to the HTML
properties on the App
tag.

Using a JavaScript bundler¶
If you want more integration with your current configuration, you can use a JavaScript bundler. You can find an example using Webpack below:
webpack.config.js¶
const VueLoaderPlugin = require("vue-loader/lib/plugin");
module.exports = {
entry: {
document_validation_ui: "./node_modules/@konfuzio/document-validation-ui/src/main.js",
},
output: {
path: "/server/bundle",
publicPath: "/bundle/",
filename: "[name].js",
sourceMapFilename: "[name].js.map",
},
module: {
rules: [
{
test: /\.vue$/,
loader: "vue-loader",
options: {
sourceMap: true,
},
}
],
},
plugins: [
new VueLoaderPlugin()
],
};
HTML¶
In the HTML
we should load the script we created with Webpack or the compiled version under the dist
folder, and customise the variables we want. Please note that customising the variables is optional and that any variable in the .env
will have priority from the variables defined in the index.html
.
The following examples, based on the two configuration options mentioned before, include the custom variables (Document ID, User Token, Locale), but it is not mandatory to add these, which should still be added to the .env
file.
Webpack bundle¶
<div id="app">
<app document="DOCUMENT_ID" user_token=”USER_TOKEN” locale="DE/EN/ES"></app>
</div>
<script src="/server/bundle/document_validation_ui.js"></script>
Imports from dist folder¶
<head>
<script
defer="defer"
src="node_modules/@konfuzio/document-validation-ui/dist/js/chunk-vendors.js"
></script>
<script
defer="defer"
src="node_modules/@konfuzio/document-validation-ui/dist/js/app.js"
></script>
<link
href="node_modules/@konfuzio/document-validation-ui/dist/css/chunk-vendors.css"
rel="stylesheet"
/>
<link
href="node_modules/@konfuzio/document-validation-ui/dist/css/app.css"
rel="stylesheet"
/>
</head>
<body>
<div id="app">
<app document="DOCUMENT_ID" user_token=”USER_TOKEN” locale="DE/EN/ES"></app>
</div>
</body>
Integrate with CDN¶
An alternative to using npm
is to load JavaScript and CSS bundles from CDN.
You can simply add the corresponding links in the script
and link
tags in your html
, as shown in the following example:
<script defer="defer" src="https://unpkg.com/@konfuzio/[email protected]/dist/js/chunk-vendors.js"></script>
<script defer="defer" src="https://unpkg.com/@konfuzio/[email protected]/dist/js/app.js"></script>
<link href="https://unpkg.com/@konfuzio/[email protected]/dist/css/chunk-vendors.css" rel="stylesheet">
<link href="https://unpkg.com/@konfuzio/[email protected]/dist/css/app.css" rel="stylesheet">
<div id="app" style="height: 100vh">
<app document="DOCUMENT_ID" user_token=”USER_TOKEN” locale="DE/EN/ES"
></app>
</div>
Integrate by deploying the application¶
You can also deploy the application by following the steps below:
Clone the repository
You can download the application by cloning our GitHub repository or downloading the source code.
git clone git@github.com:konfuzio-ai/document-validation-ui.git
Configure the Application
Decide if the application will be run as Read Only or Full Mode.
Install all packages
Install all the dependencies by running:
npm install
Run the Application
Deploy¶
If you want to deploy this application in a web server environment then you should run:
npm run build
When succeeded, you should export the dist
folder generated from that command to the destination source in the host server and configure the web server engine in order to have the index.html
file as the entry point. If everything is correctly configured you should be able to open the server URL and the application will load.

Local Development¶
If you want to serve the application locally to run on a browser (default URL: http://localhost:3000) you should run:
npm run serve
Run the Document Validation UI in non-Vue applications¶
If your application is developed using technologies other than Vue (for example React or Angular), you can build the Document Validation UI app into a package, as described in our configuration example, and import it to your existing project, or install it as an npm package.
Run in React¶
You can find a full example on using the Document Validation UI in a React application here.
Run in Angular¶
At this link you will see a step by step on how to use the Document Validation UI in an Angular application.
Iframe integration¶
HTML iframe as Public Document¶
You can mark your Documents as public. Marking Documents as public will generate a read-only, publicly accessible URL that does not require authentication. This allows you to share a link to the Document and its extracted data, or embed it in another website. See Read Only mode for reference.
Embed a Konfuzio Document on another website¶
From the details page, you can copy an example HTML snippet that allows you to embed a public Document within an iframe. Visually, it looks the same as the above-mentioned public Document view, and in fact its internal implementation is the same. However, to prevent abuse, you first need to configure your Project’s “domain whitelist” setting. This only needs to be done once per Project for each domain you want to allow.
Add your domain(s) to the Project’s domain whitelist¶
On the Konfuzio Dashboard, open the left-side menu and click “Projects”.

Click on the Project associated with the Document(s) you want to make public.

In the “Domain whitelist” field, add the domains where you’re going to embed your Document(s), one per line and without “http” or “https”.
For example, if you want to embed a Document on https://www.example.org, you should add www.example.org to the list.

Click “Save”.

It is important to note that this process will NOT make all your Projects’ Documents public by default. It simply establishes which domains are allowed to embed public Documents for this Project. You will still need to mark Documents as public by yourself.
Customise the iframe¶
By default, we provide a bare-bones HTML snippet that looks similar to this:
<iframe src="https://app.konfuzio.com/d/<id>/" width="100%" height="600" frameborder="0"></iframe>
This creates on your page an iframe with 100% width (full width of its container) and a height of 600 pixels that doesn’t have a border. You can customise the iframe‘s size and other options by changing these and other attributes (see iframe documentation).
