Connectors

Connectors link a project to the outside world. Git providers give agents access to the source code behind your endpoints; observability connectors let them correlate load with what your servers were doing. Manage them per project under Connectors and Git providers, and attach them to individual tests.


Git providers

ProviderAuthentication
GitHubFine-grained personal access token — Contents: read, Metadata: read
GitLabPersonal access token with read_repository and api scopes
BitbucketAccess token with Repositories: read
Azure DevOpsPersonal access token with Code: read
  1. Open Git Providers in a project, choose a provider and enter a connection name and token. Bitbucket also asks for a workspace, and Azure DevOps for an organization. Straden checks the token and caches your repository list.
  2. In the repository picker, search your repositories (private and public are labelled) and press Add to use the default branch, or choose a branch. For Azure DevOps, select a project first.
  3. Press Sync on a repository. Straden makes a shallow clone (--depth 1) into the storage volume. Later syncs run git pull --ff-only. The file tree skips .git, node_modules, vendor and .env, and the commit SHA is recorded.
Sync statusMeaning
PendingAdded but not synced yet
SyncingClone or pull in progress (updates live)
SyncedReady for agents
FailedSync error, shown on the repository
Auth ErrorThe token was rejected, so reconnect the provider

Syncs only happen when you start them. Press Sync again to pick up new commits.

Local path repositories

Use Add Local Path to index a directory that already exists on the server (for example a volume mounted into the app and runner containers). The server needs read access to that path.

You can browse synced code in the Repositories view. Agents get read-only file tools for every repository attached to the test, prefixed repo_<id>_.

Observability connectors

Add connectors from a project's Connectors page, then attach them to tests.

TypeFields
PrometheusHost, port, optional bearer token
PostgreSQL / MySQL / MongoDBHost, port, database, username, password
RedisHost, port, database index (0–15), password
GrafanaHost, port, optional API token

Every type also has SSL enabled, Verify SSL certificate and Timeout (default 5 seconds, between 1 and 60) settings. Use Test connection to check a connector. Straden records when it was last tested and whether that succeeded.

Edit a connector from its row to change its settings (the type can't be changed once it's created), or remove it from that project. Removing asks for confirmation. Failed connections are written to the application log, so you can see why a connector couldn't be reached.

ConnectorDefault portWhat agents can read
Prometheus9090Instant and range PromQL queries, metric list and metadata
PostgreSQL5432Connection utilisation, active queries, cache hit ratio, transactions, deadlocks, temp files
MySQL3306Connections, running threads, slow queries, InnoDB buffer pool, lock contention
MongoDB27017Connections, operation throughput, cache usage
Redis6379Memory & fragmentation, hit ratio, evictions, clients, slow log
Grafana3000Connection for your existing dashboards

Use a read-only database user — Straden only reads statistics, never your data.

These connectors are available to the Test Agent, the Run Insight Agent and the MCP tools (prometheus-query, database-metrics, redis-metrics, …).

InfluxDB (system connector)

The bundled InfluxDB is registered automatically as a system connector and can't be removed. Every run writes to it with these tags:

TagValue
run_idThe run's ID
test_idThe test's ID
script_idThe script's ID

Because it's InfluxDB 1.8 with the standard k6 schema, you can point an existing Grafana instance at it (database k6) and use the community k6 dashboards filtered by run_id.

Network access

Connectors are reached from the app and runner containers. Make sure those containers can resolve and reach your Prometheus, databases and Git provider — on Linux, host.docker.internal requires extra_hosts: ["host.docker.internal:host-gateway"] in compose.yaml.

When Straden runs in Docker, localhost, 127.0.0.1 and ::1 mean the container itself, not your machine. To make local services reachable anyway:

  • A connector whose host is localhost, 127.0.0.1 or ::1 is reached through host.docker.internal.
  • During a run, k6 maps localhost to the Docker host, so a test whose target URL is http://localhost:… hits the service published on your machine.