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
| Provider | Authentication |
|---|---|
| GitHub | Fine-grained personal access token — Contents: read, Metadata: read |
| GitLab | Personal access token with read_repository and api scopes |
| Bitbucket | Access token with Repositories: read |
| Azure DevOps | Personal access token with Code: read |
- 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.
- 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.
- Press Sync on a repository. Straden makes a shallow clone (
--depth 1) into thestoragevolume. Later syncs rungit pull --ff-only. The file tree skips.git,node_modules,vendorand.env, and the commit SHA is recorded.
| Sync status | Meaning |
|---|---|
| Pending | Added but not synced yet |
| Syncing | Clone or pull in progress (updates live) |
| Synced | Ready for agents |
| Failed | Sync error, shown on the repository |
| Auth Error | The 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.
| Type | Fields |
|---|---|
| Prometheus | Host, port, optional bearer token |
| PostgreSQL / MySQL / MongoDB | Host, port, database, username, password |
| Redis | Host, port, database index (0–15), password |
| Grafana | Host, 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.
| Connector | Default port | What agents can read |
|---|---|---|
| Prometheus | 9090 | Instant and range PromQL queries, metric list and metadata |
| PostgreSQL | 5432 | Connection utilisation, active queries, cache hit ratio, transactions, deadlocks, temp files |
| MySQL | 3306 | Connections, running threads, slow queries, InnoDB buffer pool, lock contention |
| MongoDB | 27017 | Connections, operation throughput, cache usage |
| Redis | 6379 | Memory & fragmentation, hit ratio, evictions, clients, slow log |
| Grafana | 3000 | Connection 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:
| Tag | Value |
|---|---|
run_id | The run's ID |
test_id | The test's ID |
script_id | The 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.1or::1is reached throughhost.docker.internal. - During a run, k6 maps
localhostto the Docker host, so a test whose target URL ishttp://localhost:…hits the service published on your machine.