Integrations

KeyValue
StatusActive
OwnerQA Automation
Updated2026-03-26
ScopeExternal systems that PW-Tests reads from, writes to, or publishes through

PW-Tests is useful on a laptop, but it becomes an operational system because of its integrations. Slack gives runs a voice, OpenSearch gives them memory, Grafana gives them shape, GitLab gives them schedules, and Confluence gives the team a readable long-term home for how everything works.

Integration Map

IntegrationMain Use
Slackfailure alerts, summaries, weekly reports, recovery replies
Grafanadashboards, trend reading, investigation links, dashboard validation
OpenSearchstructured records, screenshots, step records, history queries
GitLabscheduled runs, post-deploy checks, manual jobs, artifacts
Confluencepublished human documentation

Slack

Slack is where most people first encounter the system. That makes message quality important.

What Slack Handles

Slack OutputWhy It Exists
failure alertsimmediate run awareness
success summarieslow-noise reassurance after scheduled runs
weekly and monthly reportsbroader operational summary
visual notificationsspecialized visual-suite outcomes
recovery repliescloses the loop when a failure stops repeating

Current Slack Direction

The system now aims for calmer, more useful alerts:

  • short headline first
  • stats and failed tests second
  • a human-style “Initial read” instead of raw classifier dump
  • investigation threads with Assessment, Why, and Next
  • grouped failures when several tests clearly share one cause

Slack Credentials

VariablePurpose
SLACK_WEBHOOK_URLbasic delivery path
SLACK_BOT_TOKENricher posting, threading, uploads
SLACK_CHANNELprimary alerts destination
SLACK_REPORTS_CHANNELweekly and monthly report destination
SLACK_ALERTSCI-level alert toggle
%%{init: {'theme':'base', 'themeVariables': {'primaryColor': '#4a90d9', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2c6fad', 'lineColor': '#555', 'fontFamily': 'sans-serif'}}}%%
flowchart TD
    CI["CI nightly run fails"] --> ALERT["Main Slack alert\nheadline + stats + failed tests + Initial read"]
    ALERT --> THREAD["Investigation thread reply\nAssessment / Why / Next per failure or cluster"]
    THREAD --> WATCH["Operator watches next run"]
    WATCH --> PASS["Failure stops repeating"]
    WATCH --> PERSIST["Failure repeats → investigate"]
    PASS --> RECOVERY["Recovery reply posted\nto original thread"]
    RECOVERY --> CLOSED["Thread closed with context"]

The diagram shows the full lifecycle of a Slack failure alert from initial notification through investigation thread to recovery reply.

Grafana

Grafana is where operators go when they need to understand patterns instead of one run.

What Grafana Covers Today

Dashboard AreaTypical Use
Statuscurrent health and recent run summaries
Investigatefailure triage and drill-down
Trendspass rate, recurrence, and site/suite history

Important Supporting Workflows

WorkflowWhy It Matters
dashboard-as-codedashboards are reviewed and versioned like code
query validationbroken queries can be caught without opening the UI manually
visual monitoringdashboards are checked in a browser for empty or broken panels
observability verificationhealth and data quality can be checked by script

OpenSearch

OpenSearch is the durable telemetry layer behind dashboards and many analysis workflows.

What It Stores

Record TypeWhy It Exists
test recordshuman-facing dashboard and report data
event recordsmachine-facing event stream
screenshot recordsinvestigation evidence
step recordsdeeper debugging context

Operational Reality

There are both shared-writer and admin-level access patterns in this repo. That distinction matters for retention setup, mappings, and direct-write paths.

GitLab

GitLab is the scheduler and transport layer for most production-facing behavior.

GitLab Handles

GitLab RoleExamples
schedulesnightly, visual, performance, monitor runs
manual jobsvisual baseline updates, dashboard deploys, targeted runs
artifactsblob reports, test results, traces, screenshots
CI variablescredentials, flags, schedule type
deployment-adjacent safetyPDT, reports, visual notifications

Confluence

Confluence is where the system is explained for humans. The source lives in this repo:

Source PathPurpose
docs/wiki/main wiki tree
docs/confluence/standalone Confluence pages
.confluence/publishing scripts and writing rules

Important rule: these pages should read like operating documentation, not like generated command dumps.

Local Dashboard

The repo also has a local Next.js control center. It is not a hosted integration in the same sense as Slack or Grafana, but it is part of the operator experience.

CapabilityWhy People Use It
run overviewfast local triage
artifacts and logsconvenient local inspection
trends and flaky viewsquicker than raw log reading
docs browserlocal access to operational docs

Teams usually wire integrations in this order:

  1. Slack, so failures are visible
  2. Grafana and OpenSearch, so failures are explainable
  3. GitLab schedules, so checks run automatically
  4. Confluence publishing, so the docs stay aligned with the codebase
NeedGo To
env vars and credentialsConfiguration Guide
alert and report behaviorReporting
telemetry modelLogging System
publishable docs rules.confluence/WRITING_RULES.md in the repo