Sign inSign up

skilja/extractionmonitor

By skilja

•Updated 17 days ago

View status information for extraction projects in production

Image
Machine learning & AI
0

370

skilja/extractionmonitor repository overview

⁠Quick reference

⁠Supported tags and Versioning

Image tags adhere to <major>.<minor>.<patch>.<revision> format.

<major>.<minor>.<patch>.<revision> points to a specific version. <Major>.<Minor> always points to the latest version. This version is compatible with all previous images of the same <Major>.<Minor> version. <latest> always points to the latest version, but such a version might require service and project database schema updates. For loading the latest but compatible version, we recommend to pull a <Major>.<Minor> with

docker pull skilja/extractionmonitor:<Major>.<Minor>

The latest image tag is:



Warning : Breaking Changes with 8.0

(More Information can be found within the provided release notes)



logo drawing

⁠What is Tegra Extraction Monitor?

Its main purpose is to view status information for the projects that are currently in production, like processed document volume and recognition quality based on the number of manually corrected documents. In addition, it is used to make decisions about promoting or reverting new revisions of active projects. The monitor can only show projects that are already enabled for online learning.

The service provides a web application used by operators to review documents, as well as a REST API that can be used to integrate the monitoring features into your custom application.

Extraction Monitor is part of the Tegra product suite, which provides services to conduct OCR and to perform classification or extraction tasks. Projects can be created using Designer applications which are available separately, and documents are processed by the corresponding Service containers (e.g. Extraction Service⁠).

⁠How to use this image

The following sample shows how to run the Extraction Monitor using PostgreSQL:

1. Optionally for using a PostgreSQL database server, install and start a PostgreSQL container:

docker pull postgres:15.1
docker run --rm -v <localpath>:/var/lib/postgresql/data -e POSTGRES_PASSWORD=MyPassword POSTGRES_USER=laera -p 5432:5432 -d postgres:15.1

2. For the Extraction Monitor, configure the environment file to use the user and password from above:

OLEXTR_SERVICEENDPOINT=http://+:8041
OLEXTR_SELFHOSTWEBSITE=true
OLEXTR_OLDATABASESERVERTYPE=2     (2 - PostgreSQL)
OLEXTR_OLDATABASESERVER=<database-server-name> (the host computer name in case of local docker installation)
OLEXTR_OLUSEINTEGRATEDSECURITY=false
OLEXTR_OLSQLUSER=laera
OLEXTR_OLSQLPASSWORD=MyPassword

OLEXTR_PROJDATABASESERVERTYPE=2     (2 - PostgreSQL)
OLEXTR_PROJDATABASESERVER=<database-server-name> (the host computer name in case of local docker installation)
OLEXTR_PROJUSEINTEGRATEDSECURITY=false
OLEXTR_PROJSQLUSER=laera
OLEXTR_PROJSQLPASSWORD=MyPassword

3. Pull and start the Extraction Monitor image:

docker pull skilja/extractionmonitor
docker run -p 8041:8041 -d --rm --env-file envfile.txt skilja/extractionmonitor

⁠... via [docker-compose]

Example docker-compose.yml for skilja/extractionmonitor:

# This compose file will start a postgres db and the extraction monitor at once
# make sure you have a local DB folder created for the postgres db files

services:
  postgres-db:
    image: postgres
    environment:
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_USER=laera
    ports:
      - "5432:5432"
    volumes:
      - ./DB:/var/lib/postgresql/data:z

  Tegra_ExtractMonitor:
    image: skilja/extractionmonitor
    depends_on:
      - postgres-db
    links:
      - postgres-db
    ports:
      - "8041:8041"
    environment:
      OLEXTR_SERVICEENDPOINT: http://+:8041
      OLEXTR_SELFHOSTWEBSITE: true
      OLEXTR_OLDATABASESERVERTYPE: 2
      OLEXTR_OLDATABASESERVER: postgres-db-1
      OLEXTR_OLUSESSL: false
      OLEXTR_OLTRUSTCERTIFICATE: true
      OLEXTR_OLUSEINTEGRATEDSECURITY: false
      OLEXTR_OLSQLUSER: laera
      OLEXTR_OLSQLPASSWORD: myPassword

      #project database, required

      OLEXTR_PROJDATABASESERVERTYPE: 2
      OLEXTR_PROJDATABASESERVER: postgres-db-1
      OLEXTR_PROJUSESSL: false
      OLEXTR_PROJTRUSTCERTIFICATE: true
      OLEXTR_PROJSQLUSER: laera
      OLEXTR_PROJSQLPASSWORD: postgres
      OLEXTR_PROJUSEINTEGRATEDSECURITY: false

      #this disables the need for an existing Authorization-Server
      OLEXTR_HASAUTHENABLED: false

Run docker compose up, wait for it to initialize completely, and visit http://localhost:8041/ or http://host-ip:8041 or http://container-ip:8041

Warning: The shown sample compose is running without Authorization! It is strongly recommended to use authorization in order to protect the service (licenses) and data that might be stored during processing (documents). Here you can find more information about the Authorization Server⁠. The option to use API Keys will also be enabled once you connected the Authorization Server.

⁠HTTPS

You probably noticed that the described sample is not using an SSL certificate. The currently recommended way is to use a Reverse Proxy like NGINX or Traefik.

⁠Supporting Modules

⁠Service User

Beginning with version 8.0 the used service user is changed to be uniform across all Skilja containers. For .NET based containers like this one, the UID/GID 1654 is now used. This is a non root user called 'app'. This becomes important when working with Volume Mounts.

⁠Site Mangement Tool

When the Extraction Monitor is started for the first time, users do not have any permissions assigned by default.
For the first configuration please start the Site Mangement Tool⁠. This step is only required to initially assign the Site Admin and Org Admin roles for the installation. The same initialization step is also required for the following components:

(AI Server is currently using its own builtin Site Mangement Tool and is therefore excluded)

For that reason, it is recommended to complete the full installation first and then run the Site Management Tool once to configure all components together.

⁠Environment Variables

The extractionmonitor image uses several environment variables, of which some are required others are optional.

Note: Due to Docker Hub size limitations, not all available environment variables are listed here. To see all available Environment Variables please visit the Online Documentation ⁠ at the Partner Portal.

⁠OLEXTR_SERVICEENDPOINT

The environment variable OLEXTR_SERVICEENDPOINT sets the URL where the extraction monitor is exposed locally on the computer. This parameter is ignored when the service is hosted inside the IIS.

⁠OLEXTR_PATHBASE

When not empty, the environment variable OLEXTR_PATHBASE (PathBase) allows the application to be hosted at the desired base path. This may be necessary when running behind a reverse proxy or in containerized environments. When the base path is configured, the application still continues to be hosted at the root path as well.

For example, to make the application accessible for clients and services at https://server.com/extractionmonitor/⁠, set the path base to "extractionmonitor". This parameter is ignored when the Web designer is hosted inside the IIS.

⁠OLEXTR_OLDATABASESERVERTYPE

The environment variable OLEXTR_OLDATABASESERVERTYPE sets the database server type to connect to as integer for the Extraction Monitor database.

- 0 - SQL Server
- 1 - Oracle database
- 2 - PostgreSQL
⁠OLEXTR_OLDATABASESERVER

The environment variable OLEXTR_OLDATABASESERVER defines the database server name that hosts the Extraction Monitor database.

⁠OLEXTR_OLUSESSL

The environment variable OLEXTR_OLUSESSL defines whether to use SSL on the Extraction Monitor database connection or not. This is currently supported for MS SQL server and PostgreSQL server.

⁠OLEXTR_OLTRUSTCERTIFICATE

The environment variable OLEXTR_OLTRUSTCERTIFICATE is only relevant when UseSSL is true. By default the SSL certificate must be officially signed. Set this parameter to true for self-signed SSL certificates that are not officially trusted.

⁠OLEXTR_OLDATABASENAME

The environment variable OLEXTR_OLDATABASENAME sets the database name for the Extraction Monitor database.

⁠OLEXTR_OLUSEINTEGRATEDSECURITY

The environment variable OLEXTR_OLUSEINTEGRATEDSECURITY set to true, uses integrated security for database access. When set to false, it uses SQL user and password.

⁠OLEXTR_OLSQLUSER

The environment variable OLEXTR_OLSQLUSER sets the SQL user name if integrated security is false.

⁠OLEXTR_OLSQLPASSWORD

The environment variable OLEXTR_OLSQLPASSWORD sets the SQL password if integrated security is false.

⁠OLEXTR_AUTOCREATEDATABASE

The environment variable OLEXTR_AUTOCREATEDATABASE set to true, causes the Extraction Monitor database to be created automatically. Otherwise, the database is not created.

⁠OLEXTR_PROJDATABASESERVERTYPE

The environment variable OLEXTR_PROJDATABASESERVERTYPE defines the database server type to connect to as integer for the Extraction Web Designer database.

Same values as in: OLEXTR_OLDATABASESERVERTYPE

⁠OLEXTR_PROJDATABASESERVER

The environment variable OLEXTR_PROJDATABASESERVER defines the database server name that hosts the Extraction Web Designer database.

⁠OLEXTR_PROJUSESSL

The environment variable OLEXTR_PROJUSESSL set to true uses SSL encryption on the Extraction Web Designer database connection. This is currently supported for MS SQL server and PostgreSQL server.

⁠OLEXTR_PROJTRUSTCERTIFICATE

The environment variable OLEXTR_PROJTRUSTCERTIFICATE is only relevant when UseSSL is true. By default the SSL certificate must be officially signed. Set this parameter to true for self-signed SSL certificates that are not officially trusted.

⁠OLEXTR_PROJDATABASENAME

The environment variable OLEXTR_PROJDATABASENAME defines the database name for the Extraction Web Designer database.

⁠OLEXTR_PROJUSEINTEGRATEDSECURITY

The environment variable OLEXTR_PROJUSEINTEGRATEDSECURITY set to true, uses integrated security for Extraction Web Designer database access. When set to false, it uses SQL user and password.

⁠OLEXTR_PROJSQLUSER

The environment variable OLEXTR_PROJSQLUSER sets the SQL user name if integrated security for the Extraction Web Designer database is false.

⁠OLEXTR_PROJSQLPASSWORD

The environment variable OLEXTR_PROJSQLPASSWORD sets the SQL password if integrated security for the Extraction Web Designer database is false.

⁠OLEXTR_SELFHOSTWEBSITE

The environment variable OLEXTR_SELFHOSTWEBSITE set to true means that the Extraction Monitor site is self-hosted, otherwise, it's not hosted automatically.

⁠OLEXTR_HASAUTHENABLED

The environment variable OLEXTR_HASAUTHENABLED set to true enables authentication for the Extraction Monitor. Users need to log in via the configured Authorization Server and need to have access permissions with corresponding roles. Custom applications need to provide an API key with each API call. If this property is false, no authentication and no API keys are required.

⁠OLEXTR_AUTHSERVERURL

The environment variable OLEXTR_AUTHSERVERURL defines the URL of the Authorization Server if authentication is enabled.

⁠OLEXTR_WEBAPPCLIENTID

The environment variable OLEXTR_WEBAPPCLIENTID sets the client ID of the web application that is registered as a public client within the Authorization Server.

⁠OLEXTR_SERVERCLIENTID

The environment variable OLEXTR_SERVERCLIENTID sets the client ID of the server side application that is registered as a confidential client within the Authorization Server.

⁠OLEXTR_SERVERCLIENTSECRET

The environment variable OLEXTR_SERVERCLIENTSECRET sets the client secret corresponding to the client ID of the server side application.

⁠OLEXTR_MAXREQUESTBODYSIZE

The environment variable OLEXTR_MAXREQUESTBODYSIZE sets the maximum allowed size (in bytes) for an incoming HTTP request body to prevent oversized uploads to the Extraction Monitor.

⁠OLEXTR_MAXTRAINDOCUMENTSPERMETHOD

The environment variable OLEXTR_MAXTRAINDOCUMENTSPERMETHOD sets the maximum number of training documents per extraction method.

⁠Oracle connection modes

For Oracle databases, the basic connection mode and TNS connection mode are supported. In basic connection mode, the database server name is the actual computer that hosts the Oracle database. In TNS connection mode, the connection is configured in a separate file that is usually deployed to each client by the Oracle database administrator. This file is named TNSNAME.ORA and there are different ways how the file gets located. The TNSNAME.ORA is searched within a directory defined by the TNS_ADMIN or ORACLE_HOME environment variable. If a TNS configuration file exists, the value for the database server is evaluated as a network alias defined in that file.

Please note that for Oracle the user name and the database name must be identical. Using different values for user name and database name is not fully supported. The integrated security flag is currently not supported for the connection to Oracle databases; a database user and password must always be specified.

Please visit the Online Documentation⁠ for more information.

⁠Other Platforms

The service is also available for Windows installation. Please visit The Partner Portal⁠ or write us an email [email protected]⁠ for more information.

Tag summary

Content type

Image

Digest

sha256:56d57a1a0…

Size

1.2 GB

Last updated

17 days ago

docker pull skilja/extractionmonitor