lens file viewer for confluence
Atlassian Marketplacein reviewruns on Atlassian
Data files pile up on Confluence pages: an export, an event log, a sample, a table of results. Reading one has meant downloading it and opening something else. Lens File Viewer opens it on the page instead. Insert the macro and it lists the page's data file attachments; pick one and it renders as a paged table right there. The macro opens CSV and TSV, JSONL and NDJSON, Parquet and Excel workbooks. Version 2.4.0, the one in review, adds .log, .txt and .out files with the level of each line detected and counted in chips, gzipped JSONL, NDJSON, CSV and TSV, and an Export CSV button. The bytes arrive in small ranges through the Confluence API, as the person viewing the page, so the first rows are on screen before the file has been read through, and anyone who cannot download an attachment cannot read it through the viewer either. Search covers the whole file and counts the hits. An Excel workbook opens on its first visible sheet with the headers detected and the date and number formats applied, every sheet listed in the schema view, and a Parquet file gets a schema tab with types, codecs and per-column statistics.
- opens
- CSV and TSV, JSONL and NDJSON, Parquet with snappy, gzip, zstd or lz4 columns, and Excel .xlsx and .xlsm attachments; in 2.4.0, the version in review, .log, .txt and .out attachments and gzipped JSONL, NDJSON, CSV and TSV as well
- runs on
- Confluence Cloud, on Atlassian, with no vendor servers
- store
- in review on the Atlassian Marketplace; the listing is not public yet
- version
- 2.4.0, resubmitted 2026-09-11, in review

what it does
- The macro: type /lens in the editor to insert it; it lists the page's data file attachments, and a click opens one as a table
- CSV and TSV: delimiter sniffing, header detection and quoted fields, numbers right aligned
- JSONL and NDJSON: records indexed in the background while the first rows render, columns sampled from the data
- Parquet: row groups loaded on demand, and a Schema tab with column types, codecs, encodings and min and max per column
- Excel: the first visible sheet with headers detected and date and number formats applied, every sheet listed in the schema view with row counts, cached formula results shown without evaluation
- Search: scans the whole file and reports a hit count; the arrows jump between matches and Aa toggles case
- Row detail: any row opens as JSON, with a copy button
- Pinned file: pick an attachment in the macro configuration and the page opens straight into it for every reader
- Logs and plain text, from 2.4.0: a .log, .txt or .out attachment opens as a table of lines, each line with a level chip; plain, JSONL, logfmt and ANSI logs are recognized
- Gzip, from 2.4.0: gzipped JSONL, NDJSON, CSV and TSV open in place, inflated as a stream up to 384 MB unpacked
- Export CSV, from 2.4.0: the open file written to a download, every row, with a progress line and Cancel in the status bar
- A second page, from 2.4.0: the macro configuration can name another page by id or exact title, and its data files list beside this page's, marked with the page
what it asks for
- read:page:confluence, to list the data file attachments of the one page the macro sits on
- read:attachment:confluence, to fetch byte ranges of the file you open, 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: its own settings inside the page the macro sits on, and one small record in your browser storage, the counter behind the one-time request for a review
- Permissions follow Confluence: a reader who cannot download an attachment cannot see it here either
- The list: shows the first 50 attachments of a page

what's new
- 2.4.0resubmitted 2026-09-11
Four additions and one fix. Gzipped JSONL, NDJSON, CSV and TSV attachments open in place; the gzip is inflated as a stream, up to 384 MB unpacked. A .log, .txt or .out attachment opens as a table of lines, each line carrying a level chip; plain, JSONL, logfmt and ANSI logs are recognised. Export CSV writes the open file to a download, every row, with a progress line and Cancel in the status bar. In the macro configuration you can name a second page by id or exact title; its data files then appear beside this page's, marked with the page, and a pinned file may come from either. The fix: the toolbar wraps at the macro width instead of clipping, and the grid takes its height after the frame settles. Nothing else moved: two read scopes, byte-range reads as the viewing user, no egress, nothing stored outside your site.
- 2.3.0resubmitted 2026-09-11
Excel support lands: .xlsx and .xlsm attachments open as paged tables with headers detected, dates and number formats rendered, and search across the sheet. The first visible sheet renders and every sheet is listed in the schema view with row counts. Cached formula results display without evaluation, and unusual number formats fall back to the stored text rather than guessing. Same trust line as every Lens viewer: byte-range reads as the viewing user, no egress, nothing stored outside your site.
more
- reading data attachments in Confluence and Jira
- every format, every product
- the Jira edition
- security policy
- support
Pricing, invoices and licensing questions go to [email protected]; anything else about the product to [email protected].