Skip to Content
ReferenceArtifacts

Artifacts

Artifacts are derived files: they are produced by runs, scans, or projections. They are useful for CI, Cloud upload, debugging, and agents, but they are not the source of truth. The authored source stays in TypeScript contracts, workflows, raw tests, load plans, and config.

If an artifact looks wrong, fix the authored source or run configuration, then regenerate the artifact. Do not treat generated JSON, metadata, or projection files as the place to patch API behavior.

Authored vs derived

LayerExamplesShould you edit it?
Authored sourcecontracts/*.contract.ts, workflow() exports, tests/*.test.ts, *.load.ts, glubean.yamlYes. This is the source of truth.
Run evidence.glubean/last-run.result.json, JUnit XML, load artifacts, traces, screenshotsNo. Recreate it by running the source.
Projection artifactsmetadata.json, OpenAPI-shaped output, Markdown/spec projectionsUsually no. Regenerate from contracts/workflows.
Cloud recordsuploaded Runs, Specifications, Performance, BenchmarksNo. They are derived from source + uploaded evidence.

Standard artifacts

ArtifactTypical pathProduced byUse it for
Latest result JSON.glubean/last-run.result.jsonevery glubean run / glubean ci runLocal debugging, rerun-failed, upload inspection, agent context
Explicit result JSONa chosen --result-json or reporters.resultJson pathglubean run --result-json ... or a profile reporterStable CI artifacts and tool handoff
Result history.glubean/results/{fileName}/{testId}/{timestamp}.result.jsonVS Code / local runsResult Viewer history and quick comparison
JUnit XML.glubean/results/junit.xmlreporters.junit or --reporter junit:...CI dashboards
Metadata scan outputmetadata.jsonglubean scanDiscovery, editor tooling, and metadata validation
Load artifact.glubean/{runnerId}.load.result.jsonglubean loadPerformance debugging and Cloud load evidence
Trace files.glubean/traces/...--emit-full-traceFull request/response debugging
glubean run --profile local

This always writes .glubean/last-run.result.json. Add an explicit result path when another tool needs a stable artifact in a known location:

glubean run --profile local --result-json .glubean/results/local.result.json

For CI, prefer putting the artifact paths in glubean.yaml:

profiles: ci: reporters: resultJson: .glubean/results/ci.result.json junit: .glubean/results/junit.xml

How to read result JSON

Functional result JSON is structured evidence for test(), contract, browser, and workflow runs. Depending on what ran, it can contain:

  • run summary and status
  • test, contract, browser, or workflow results
  • requests, responses, assertions, warnings, logs, traces, metrics, and timing
  • artifacts such as screenshots, browser evidence, or schema inference
  • upload metadata when the run is sent to Cloud

Load artifacts use the glubean.load.v1 schema. They contain aggregate concurrency evidence: endpoint and step summaries, latency distributions, timelines, thresholds, custom metrics, and bounded failure/slow samples.

Before sharing a result file outside the project, run it through redaction:

glubean redact --input .glubean/last-run.result.json --output redacted.result.json
  • glubean run
  • glubean load
  • glubean scan
  • glubean validate-metadata
Last updated on