* docs: IA reorganization * docs: Updates * docs: Updates * docs: Fix links * docs: Updates * docs: Fix a typo * docs: Fix client agent topic * docs: Update Client Agent nav * docs: Fix conflict * docs: Fix a typo in Client Agent docs (#5853) * docs: Fix client agent topic * docs: Updates * docs: Updates * docs: Updates * docs: Updates * docs: Fixes get started and operations links * docs: Update nav * docs: Partials * docs: Unix partials * docs: Worker partials * docs: Updates * docs: Update workers and targets * docs: Updates * docs: Updates * docs: Fixes link * docs: Updates after sync review * docs: Updates from review feedback * docs: Move worker filter examples * docs: Fix links * docs: Updates for filters based on working session * docs: Fixes broken links * docs: Add links to other filter topics * docs: Update list intro * docs: Adds link * docs: Fixes redirects * docs: Fixes redirects * docs: Deleted mysql page from TOC * docs: Add versioned redirect * docs: Adds versioned redirects * docs: Adds versioned redirects * docs: Update redirects * docs: Update redirects * docs: Redirect fixes * docs: Update redirect format * docs: Fix a typo * docs: Fixes redirects * docs: Fixes redirect * docs: Adds links out to client agent troubleshooting * uses /etc/boundary.d/ as recommended installation directory (#6003) * docs: Updates legacy io links * docs: Fixes redirects * docs: Fix redirect * docs: Restoring deleted file --------- Co-authored-by: Robin Beck <stellarsquall@users.noreply.github.com>
32 lines
2.2 KiB
Plaintext
32 lines
2.2 KiB
Plaintext
---
|
||
layout: docs
|
||
page_title: Read a BSR file
|
||
description: >-
|
||
Learn how to read the data in Boundary's proprietary BSR file that stores session recording data.
|
||
---
|
||
|
||
# Read a BSR file
|
||
|
||
BSR data files are where all the data transmitted during a session is stored. BSR data files
|
||
have the file suffix `.data` and are binary files written in network byte or big-endian order. The first eight bytes of a
|
||
BSR data file always contains the following signature, which identifies the file as a BSR file: `"\x89BSR\r\n\x1a\n"`.
|
||
|
||
Following the BSR signature, a BSR file contains “chunks” of data. Each chunk contains the same basic metadata information:
|
||
length, protocol, chunk type, direction, and a timestamp. The chunk type indicates the expected data payload. The first
|
||
chunk in a BSR file is the header chunk, and the last chunk in a BSR file is the EOF chunk. The remaining
|
||
chunks in the file depend on the protocol identified in the BSR header.
|
||
|
||
The only protocol currently supported for session recording is SSH. Data files for SSH are prefixed with either `messages-`
|
||
or `requests-`, and suffixed with either `inbound` or `outbound` to indicate the direction the data came from. Message
|
||
files contain raw data from an SSH session and contain a header chunk, data chunks, and an EOF chunk. Request files
|
||
contain a header chunk, SSH request message chunks, and an EOF chunk.
|
||
|
||
SSH request message chunks follow the SSH connection and channel request definitions. Boundary populates these chunks
|
||
using a protobuf definition provided here: [SSH Chunks](https://github.com/hashicorp/boundary/blob/main/internal/bsr/proto/ssh/v1/ssh_chunks.proto).
|
||
|
||
Boundary session recording playback generates an asciinema from a session channel’s `messages-outbound.data` file. For more
|
||
information on finding and viewing BSR data using the asciinema, refer to [Find and view recorded sessions](/boundary/docs/session-recording/configuration/manage-recorded-sessions).
|
||
|
||
While Boundary does not currently provide tooling to read other BSR .data files, the BSR definition is available in our
|
||
[community repository](https://github.com/hashicorp/boundary/tree/main/internal/bsr), and you can use it to develop external tooling.
|