Documentation

TestHub — centralized test report hub for CI/CD pipelines

Overview

TestHub stores and serves Allure 3 test reports published from CI pipelines or local execution. Reports are published using Allure 3 native publishing — set publish: true in your allure config and run npx allure generate. Allure CLI handles everything automatically. Static assets (~1.5 MB) are stored once per Allure version; each run uploads only dynamic data (~10-50 KB) — saving ~98% storage.

Quick Start

  1. Get an ars1 token from your TestHub admin (generated via POST /api/token)
  2. Add allurerc.mjs to your project root:
// allurerc.mjs
import { defineConfig } from "allure";

export default defineConfig({
  name: "My Project",
  plugins: {
    awesome: { options: { publish: true } },
  },
  allureService: {
    accessToken: process.env.TESTHUB_TOKEN,
  },
});
  1. Store your token as TESTHUB_TOKEN in CI secrets (or env var locally)
  2. Publish: npx allure@^3 generate allure-results

The report URL is printed in the console. Reports appear in the dashboard automatically.

CI Examples

Jenkins

stage('Publish Report') {
  steps {
    withCredentials([string(
      credentialsId: 'testhub-token',
      variable: 'TESTHUB_TOKEN')]) {
      bat 'npx allure@^3 generate build/allure-results'
    }
  }
}

GitHub Actions

- name: Publish Allure report
  if: always()
  env:
    TESTHUB_TOKEN: ${{ secrets.TESTHUB_TOKEN }}
  run: npx allure@^3 generate allure-results

How It Works

When you run npx allure generate with publish: true, Allure CLI automatically:

  1. Creates a draft report on TestHub
  2. Uploads shared static assets (JS/CSS/fonts) — skipped if already uploaded for this Allure version
  3. Uploads report-specific data (index.html, test results, widgets)
  4. Completes the report with statistics and history

The ars1 token is self-describing — it contains the server URL. No separate URL configuration needed.

Authentication

Dashboard access is protected by Cloudflare Access. Sign in with your email to view the dashboard and reports.

Report publishing uses ars1 tokens. Your admin generates these via the POST /api/token endpoint. Store the token as TESTHUB_TOKEN in your CI secrets. The token embeds the server URL — no additional configuration needed.

Dashboard API tokens (from API Keys) are for querying runs, apps, and history from scripts. They are not used for publishing reports.

Roles & Permissions

TestHub has four roles with configurable permissions:

RoleDefault Access
AdminFull access. Manages users, roles, and settings.
ManagerCreate/delete projects, jobs, runs. Manage CI providers and settings.
UserCreate projects and jobs, dispatch test runs. Cannot delete.
ViewerView-only access to dashboards and reports.

Admins can customize per role in Settings → Role Permissions.

Troubleshooting

ProblemFix
allure generate doesn't publishCheck publish: true in allurerc.mjs and TESTHUB_TOKEN env var
Unauthorized errorToken is invalid or expired. Get a new ars1 token from admin.
Report shows blank pageStatic assets may be missing. Re-publish or check browser console for 404 errors.
Can't create/deleteYour role may not have permission. Ask admin to check Role Permissions.

Open interactive API docs (Swagger) →