Skip to content

Core Concepts

To use Thoth effectively, it's important to understand how its various components interact.

1. Tenant

A Tenant is a completely isolated workspace representing an organization or business unit. In Thoth, each tenant has its own dedicated database schema, ensuring that data, templates, and configurations are never shared between organizations.

2. Group

A Group is a logical container within a tenant. Resources like Templates, Datasources, and Renderers must belong to a group. Groups are the primary mechanism for access control; users are assigned to groups, and they can only see or manage resources within those groups.

3. Template

A Template defines the visual layout of a document. Thoth supports:

  • HTML/SVG: Standard web formats for document layout.

  • Draw.io: Integrated visual designer for SVG-based labels.

  • Jinja: Logic and placeholders (e.g., {{ name }}) used to inject dynamic data.

4. Datasource (Connector)

A Datasource is a configuration that tells Thoth how to fetch data from an external system.

  • JDBC: SQL queries against databases like PostgreSQL, SQL Server, etc.

  • REST: API calls to internal or external services.

  • SCRIPT: Custom Groovy scripts for data generation or transformation.

5. Renderer

The Renderer is the central "brain" that links one or more Datasources to a Template. It defines the Pipeline (how data flows between datasources) and the Mapping (which data field goes into which template placeholder).

6. Printing Client

The Printing Client is a small application that runs within your local network (e.g., in a warehouse or office). It connects to Thoth via a secure outbound connection (polling) to receive and execute print jobs on local physical or virtual printers.

7. Print Job

A Print Job represents an execution request. It tracks the status of a rendering and printing operation, from "Pending" to "Completed" or "Failed".