Skip to content

Conversation

cablehead
Copy link
Contributor

corresponding PR: nushell/nushell#16821

fdncred pushed a commit to nushell/nushell that referenced this pull request Oct 8, 2025
## Release notes summary - What our users need to know

This PR adds two related features:

1. Custom metadata via `metadata set --merge`: Attach arbitrary metadata
to pipeline data:

```nushell
"data" | metadata set --merge {custom_key: "value"} | metadata | get custom_key
```

2. Automatic HTTP response metadata: All HTTP commands now attach
response metadata under `http_response`:
   - `status` - HTTP status code
   - `headers` - Response headers as `[{name, value}, ...]`
   - `urls` - Redirect history

Access metadata after the response completes:
```nushell
http get https://api.example.com | metadata | get http_response.status
# => 200
```

Or access metadata while streaming the response body using `metadata
access`:
```nushell
http get https://api.example.com/events.jsonl
| metadata access {|meta|
    if $meta.http_response.status != 200 {
        error make {msg: "failed"}
    } else { }
  }
| lines
| each { from json }
| where event_type == "error"
```

Unlike `--full`, which consumes the entire response body, this allows
streaming while accessing metadata.

## Breaking changes

`collect` now removes `FilePath` data_source even when `content_type` is
set. Previously: both preserved. Now: `content_type` preserved,
`FilePath` cleared.

corresponding PR: nushell/nushell.github.io#2051
@cablehead
Copy link
Contributor Author

github is being weird, there should be one more commit on this PR:

main...cablehead:nushell.github.io:http-response-metadata

image

@fdncred
Copy link
Contributor

fdncred commented Oct 9, 2025

i'm not sure what's going on with the commits. that's weird.

@cablehead
Copy link
Contributor Author

github was struggling this morning; looks like that commit has been pulled in now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants