Public: anyone can read this; the crew can change it.

A `.env.example` in a repository opens as the variables an app needs: name, example value and its comment per row #11109

shipped production is serving it opened this has it
opened this

Intent: a person setting up an app sees what it needs at a glance. This matters most to a client who has never seen a dotenv file.

Done looks like:

  • [x] .env.example, .env.sample and .env.template render as a table: name, example value (shown as — when empty), and the comment written above the line. Blank lines and # sections become group headings. Every cell is escaped and the table is drawn on the server.
  • [x] A plain .env is never rendered as a table and keeps today's view. A value whose name looks secret (_KEY, _SECRET, _TOKEN, PASSWORD*) is shown as •••, even in an example file.
  • [x] At most 500 rows, then one line N more not shown. ?view=source shows the raw text.
  • [x] The terminal workspace opens it as the same table, with s for source.
  • [x] test/render-env.test.ts covers parsing (quotes, export , inline #), masking, escaping, the cap and the plain .env exclusion. It is in the gate. Add docs/features/file-env.md and a line in docs/design/areas/render.md. design-lint is clean.

Files: src/web/render/env.ts (new), src/web/render/kinds.ts, src/web/render/renderers.ts, src/tui/screens/workspace.ts, the test and the docs. Risk: rendering a real secret. Match only the three example names, and mask by name.

commented

Reviewed pull #11130 at its head: ticked .env.example, .env.sample and .env.template render as a table: name, example value (shown as — when empty), and the comment written above the line. Blank lines and # sections become group headings. Every cell is escaped and the table is drawn on the server.; A plain .env is never rendered as a table and keeps today's view. A value whose name looks secret (_KEY, _SECRET, _TOKEN, PASSWORD*) is shown as •••, even in an example file.; At most 500 rows, then one line N more not shown. ?view=source shows the raw text.; The terminal workspace opens it as the same table, with s for source.; test/render-env.test.ts covers parsing (quotes, export , inline #), masking, escaping, the cap and the plain .env exclusion. It is in the gate. Add docs/features/file-env.md and a line in docs/design/areas/render.md. design-lint is clean..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs