twilight ventures

lens file viewer for jira

Atlassian Marketplacein reviewruns on Atlassian

The log from the failing node, the CSV export and the spreadsheet the customer sent all end up attached to the issue, where reading any of them has meant a download first. Lens File Viewer for Jira opens them on the issue. The panel lists the issue's data file attachments, and the one you pick renders as a paged table right there, its bytes fetched in small ranges through the Jira API as the person viewing the issue, so someone who cannot download an attachment cannot read it through the viewer either. It opens logs and plain text, CSV and TSV, JSONL and NDJSON, Parquet, Excel workbooks and the gzip-wrapped .log.gz, .jsonl.gz and .csv.gz. A log is line indexed and scanned for severity on the way in. ERROR, WARN, INFO, DEBUG and TRACE chips show the counts, and one click narrows the view to a level.

opens
logs and plain text (.log, .txt, .out), CSV and TSV, JSONL and NDJSON, Parquet with snappy, gzip, zstd or lz4 columns, Excel .xlsx and .xlsm, and the gzip-wrapped .log.gz, .jsonl.gz and .csv.gz
runs on
Jira Cloud, on Atlassian, with no vendor servers
store
in review on the Atlassian Marketplace; the listing is not public yet
version
2.1.0, submitted 2026-08-28, in review
Lens File Viewer on a Jira issue: a log attachment as a table with level chips above it
A 38 MB log opened in about three seconds: chips filter to one level in a click, and the footer keeps the full count, 14,326 ERROR and 28,652 WARN in this file.

what it does

  • The panel: press the app actions button under the issue title and choose Lens File Viewer; it lists the issue's data files, and when exactly one is a supported format it opens directly
  • Logs and plain text: line indexed; once the level scan finishes, chips show how many ERROR, WARN, INFO, DEBUG and TRACE lines the file has, one click filters to a level and a second click clears it; stack-trace continuation lines stay attached
  • CSV and TSV: delimiter sniffing, header detection and quoted fields
  • JSONL and NDJSON: records indexed in the background while the first rows render
  • Excel: the first sheet with headers detected and date and number formats applied, every sheet listed in the Schema tab, macros never run; a legacy .xls is refused with a plain message
  • Parquet: a Schema tab with column types, codecs, encodings and per-column statistics
  • Search: scans the whole file and reports a hit count; the arrows jump between matches and Aa toggles case
  • Gzip: .log.gz, .jsonl.gz and .csv.gz inflate in the browser under a 384 MB decompressed ceiling; a larger file asks for a download instead
  • Row detail: any row opens whole, with a copy button

what it asks for

  • read:jira-work, the classic read scope: the attachment list of the issue the panel is open on, then byte ranges of the one attachment you chose to open, fetched as you
  • No write scope: the app has no backend of its own, makes no request to any server outside Atlassian, and keeps no copy of your data anywhere
  • What it stores: one small record in your browser storage, the counter behind the one-time request for a review; nothing outside your site
  • Permissions follow Jira: someone who cannot download an attachment cannot see it through the viewer either
The Lens File Viewer panel on a Jira issue listing the data files attached to it
The panel lists every data file on the issue; CSV, JSONL and Parquet open as paged tables, and Parquet gets a schema tab with types and column statistics.

what's new

more

Pricing, invoices and licensing questions go to [email protected]; anything else about the product to [email protected].