Reports & sharing

Saved evidence windows, bundle rollups across collections, dedicated snapshot pages, PDF export, workspace embed, and password-gated public links.

For Matrix vs Reports vs Trends, see Concepts → which view?. For day-to-day flows that touch Reports briefly, see Guides.

When to use Reports

Need Use
Run-level proof for one collection over a calendar range (jobs did not share one collection-run batch) Collection window — one collection
Rollup across several collections (for example many APIs in one product project) Bundle — multi-collection
Persist a point-in-time snapshot for audits or release notes Save snapshotSaved tab
Share a frozen snapshot outside the workspace (stakeholders, status page, wiki) Public link + password unlock → 24h embed
Embed inside Spanline for signed-in teammates Workspace embed (report id path)

Matrix remains the right tool when you executed spanline test collection-run once and need per-job evidence for that single batch id.

Open Reports

  1. Sign in at https://app.spanline.dev.
  2. Open Performance → Reports (/performance/reports).
  3. Use the tabs:
    - Collection window — build or export a live window (not persisted until you save).
    - Saved — stored snapshots (title, template, scope, author, Open).
Reports collection window with runs and gaps
Collection window — KPI strip, evidence grid, gaps, Export, Save snapshot.

One collection vs Bundle

At the top of Collection window, choose the scope:

Mode UI label What it does
Single One collection Same as classic collection window — one collection + date range
Bundle Bundle Select up to 20 collections (often filtered by Project) and see a rollup KPI plus accordion sections per collection

One collection workflow

  1. Stay on One collection (or scope=single in the URL).
  2. Pick a collection.
  3. Set From / To (calendar days in your workspace data).
  4. Optionally filter Status (* = all finished states).
  5. Review KPIs (runs, pass/fail, worst p95 / error rate, gaps).
  6. Scan the evidence grid — each row is a run; gaps list scenarios with no run in the window.
  7. Export downloads CSV, or Save snapshot stores JSON for the Saved tab.

Typical case: smoke jobs ran at 08:00 and 09:00 as separate spanline test run invocations — Matrix for a non-existent batch stays empty; Reports with dates fills the window.

Bundle workflow (multi-collection)

Use Bundle when one product surface spans multiple collections (for example several HTTP APIs each modeled as its own collection).

  1. Switch to Bundle.
  2. Filter by Project when collections are linked to a project (toolbar Project filter).
  3. In Collections, multi-select the collections to include (max 20).
  4. Set From / To and optional Status and Environment — environment filters runs in the window (scenario default env or run env).
  5. Review the rollup KPI strip at the top (collections count, scenarios, runs, worst latency/error).
  6. Open accordion sections per collection name — each section is a mini collection-window grid (scenarios, gaps, evidence links). Large interactive bundles open the first section by default; print/embed keep all sections expanded.
  7. Save snapshot stores a collection_set report; the Saved tab opens the dedicated viewer page for that snapshot.

Bundle presets (workspace server): after selecting collections, name the preset and use Save preset / Update preset / Save as new — stored per workspace (not browser-only). Load preset applies collections, optional project, and optional environment filter. Deleting a preset asks for confirmation; saved snapshots are unaffected. Deep link example:

https://app.spanline.dev/performance/reports?scope=bundle&projectSlug=discount&bundlePreset={presetId}

Org Groups are not used for report bundles — use presets instead. Project and Environment filters are optional narrowing aids, not required.

Reports Saved tab with stored snapshots
Saved — persisted snapshots; **Open** goes to the full-page viewer.

View layouts (list / group / charts)

On the collection window and saved snapshots, use View pills:

Layout Best for
List Flat evidence grid (default for one collection)
By environment Sections grouped by environment name
By collection Accordion per collection (default for bundles)
Charts Pass/fail split and worst p95 bars by scenario

URL param: viewLayout=list|group-env|accordion|charts (bundle defaults to accordion).

Reports Charts layout with pass fail and p95 bars
View → Charts — scenario pass/fail and latency overview for the window.

Save snapshot

Save snapshot captures the current window (single or bundle) as JSON inside the report record.

Field Meaning
Snapshot title Optional UI field — empty uses a default from collection/preset + date range
Preset name Separate from snapshot title — only for saving/updating a workspace bundle preset
Template collection_window or collection_set
Scope Collection id, or comma-separated ids for bundle
Generated by Username of the member who saved

Snapshots are workspace-scoped. Viewers with Performance access can open them; members can create shares from the viewer toolbar.

Snapshot viewer (Saved → Open)

Open on a Saved row goes to the dedicated page:

https://app.spanline.dev/performance/reports/view/{reportId}

There is no modal viewer anymore — you always land on this page inside the app shell (Back to Saved, Export PDF, Embed & share).

Full-page saved report viewer with toolbar
Report viewer — title, snapshot body, and toolbar actions.
Control Action
Back Return to Performance → Reports → Saved
Export PDF Opens a print-only tab (?print=1) with Spanline brand chrome, then the browser print dialog — choose Save as PDF. The tab closes when print finishes.
Embed & share Workspace embed snippet + public link controls

Print mode strips app navigation and keeps report content only, wrapped with Spanline brand header and footer so exported PDFs stay on-brand.

Workspace vs public routes

Audience View URL Embed URL
Signed-in workspace /performance/reports/view/{reportId} /performance/reports/embed/{reportId}

Workspace embed requires a normal Spanline session and workspace membership — same rules as viewing the report in the app.

For stakeholders without Spanline accounts, create a public link from Embed & share on the snapshot toolbar.

What the owner does

  1. Open a saved snapshot (Open → viewer page).
  2. Click Embed & share (code icon).
  3. Under Public link, click Create link or Rotate link — the link is always an unlisted URL + password (anyone who has both can unlock).
  4. Copy from the popover:
    - Generated password — six characters (0–9 and A–Z).
    - View URLhttps://app.spanline.dev/p/r/view/{gateToken} — this is not the embed secret.
Embed and share popover with public link and password
Embed & share — workspace iframe snippet and public View URL + password.

Reopen credentials: while the share stays active, workspace members can reopen Embed & share and see the password and View URL again (they are stored for the workspace until you Revoke). Prefer Rotate if either may have leaked.

The popover does not show a long-lived public embed URL. Recipients unlock on the view page; a short-lived embed token is issued after a successful password.

Rotate invalidates the previous gate token. Revoke disables public access and clears outstanding embed tokens for that report.

What the recipient sees (unlock gate)

  1. Open the view URL (no embed token in the address bar).
  2. A branded unlock screen asks for the password.
  3. Use language / theme controls if needed, then click Unlock.
Public password unlock screen for a shared report
Public unlock — Spanline brand panel and password form.
  1. On success:
    - A slim top bar shows Spanline, plus Copy link, Copy embed code, and Show code for the 24-hour embed.
    - The report renders below in an iframe at /p/r/embed/{embedToken} (Spanline brand appears in the outer bar; the iframe content focuses on the report title and body).
    - Use View inside the report — List, By environment, or Charts — same layouts as the in-app snapshot viewer.
Unlocked public report List view with embed actions
After unlock — List view (default) with embed actions on top.
Unlocked public report By environment view
After unlock — View → By environment.
Unlocked public report Charts view
After unlock — View → Charts.

If the password is wrong, stay on the unlock form with an inline error. If the gate link was revoked or rotated, unlock fails with a load/error message.

Embed URL (24-hour token)

URL Purpose
https://app.spanline.dev/p/r/embed/{embedToken} Minimal report chrome for <iframe>no password; the token is the secret
Expiry 24 hours after unlock — then embed shows expired; unlock again on the view URL

Embed tokens are not the same as the view gate token. Treat embed URLs like short-lived credentials: do not commit them to git, tickets, or long-lived wiki pages.

Legacy path

Older links https://app.spanline.dev/p/r/{gateToken} redirect to /p/r/view/{gateToken}.

URL quick reference

Path Auth Password Typical use
/performance/reports Workspace Build window, Saved list
/performance/reports/view/{id} Workspace Full-page snapshot
/performance/reports/embed/{id} Workspace iframe for teammates
/p/r/view/{gateToken} None Required on page External stakeholder unlock
/p/r/embed/{embedToken} None None (token) iframe after unlock; expires in 24h

API equivalents (for integrators): POST /api/share/performance/reports/{gateToken}/unlock{ embedToken, expiresAt }; GET /api/share/performance/reports/embed/{embedToken} → report JSON.

Roles

Action Minimum role
View Reports, open snapshots Viewer
Export CSV, save snapshot Member
Create / rotate / revoke public link Member (via snapshot toolbar on the viewer)

Org owner / admin manage workspace membership; platform operators do not gain org admin writes through system_admin — see Access & secrets.

Hygiene