@ -101,19 +101,40 @@ Any session recording metadata that is attached to the storage bucket is deleted
The BSR (Boundary Session Recording) defines a hierarchical directory structure of files and a binary file format.
The BSR (Boundary Session Recording) defines a hierarchical directory structure of files and a binary file format.
It contains all the data transmitted between a user and a target during a single session.
It contains all the data transmitted between a user and a target during a single session.
Boundary creates the top-level directory of the BSR as `<sessionID>.bsr`. This top level directory contains session summary information and subdirectories for connections.
Boundary creates the top-level directory of the BSR as `<sessionRecordingID>.bsr`. This top level directory contains session summary
information and subdirectories for connections.
A BSR connections directory contains a summary of connections, as well as inbound and outbound requests.
A BSR connections directory contains a summary of connections, as well as inbound and outbound requests.
If you use a multiplexed protocol, there are subdirectories for the channels.
If you use a multiplexed protocol, there are subdirectories for the channels.
Every directory contains a SHA256SUMS and SHA256SUMS.sig file, to be used for cryptographically verifying the contents of
that directory. The SHA256SUMS file contains rows of file names paired with a checksum for file contents. The
SHA256SUMS.sign is a copy of the SHA256SUMS file, signed with the BSR’s private key. For more information on verifying a
session recording, refer to [Validating the integrity of session recordings](/boundary/docs/operations/session-recordings/validate-session-recordings).
The example BSR below is for a multiplexed session recording with the ID `sr_iNCdGSREeX`. The session recording contains one connection,
`cr_3bB78W53Y9`. Connection `cr_3bB78W53Y9` contains two channels, `chr_VUnVuVnITu` and `chr_nITuVUnVuV`.
The files in each directory are explained in the following sections.
```
```
└── sr_iNCdGSREeX.bsr
└── sr_iNCdGSREeX.bsr
├── SHA256SUM
├── SHA256SUM
├── SHA256SUM.sig
├── SHA256SUM.sig
├── bsrKey.pub
├── bsrKey.pub
├── pubKeyBsrSignature.sign
├── pubKeySelfSignature.sign
├── session-meta.json
├── session-recording-summary.json
├── session-recording.meta
├── wrappedBsrKey
├── wrappedPrivKey
├── cr_3bB78W53Y9.connection
├── cr_3bB78W53Y9.connection
│ ├── SHA256SUM
│ ├── SHA256SUM
│ ├── SHA256SUM.sig
│ ├── SHA256SUM.sig
│ ├── connection-recording-summary.json
│ ├── connection-recording.meta
│ ├── requests-inbound.data
│ ├── requests-outbound.data
│ ├── chr_VUnVuVnITu.channel
│ ├── chr_VUnVuVnITu.channel
│ │ ├── SHA256SUM
│ │ ├── SHA256SUM
│ │ ├── SHA256SUM.sig
│ │ ├── SHA256SUM.sig
@ -132,50 +153,29 @@ If you use a multiplexed protocol, there are subdirectories for the channels.
│ │ ├── messages-outbound.data
│ │ ├── messages-outbound.data
│ │ ├── requests-inbound.data
│ │ ├── requests-inbound.data
│ │ └── requests-outbound.data
│ │ └── requests-outbound.data
│ ├── connection-recording-summary.json
│ └──
│ ├── connection-recording.meta
└──
│ ├── requests-inbound.data
│ └── requests-outbound.data
├── cr_W53Y93bB78.connection
│ ├── SHA256SUM
│ ├── SHA256SUM.sig
│ ├── chr_uVVuUITnVn.channel
│ │ ├── SHA256SUM
│ │ ├── SHA256SUM.sig
│ │ ├── channel-recording-summary.json
│ │ ├── channel-recording.meta
│ │ ├── messages-inbound.data
│ │ ├── messages-outbound.data
│ │ ├── requests-inbound.data
│ │ └── requests-outbound.data
│ ├── connection-recording-summary.json
│ ├── connection-recording.meta
│ ├── requests-inbound.data
│ └── requests-outbound.data
├── pubKeyBsrSignature.sign
├── pubKeySelfSignature.sign
├── session-meta.json
├── session-recording-summary.json
├── session-recording.meta
├── wrappedBsrKey
└── wrappedPrivKey
```
```
### BSR Session folder
### BSR Session folder
```
A BSR session folder contains the following files:
└── sr_iNCdGSREeX.bsr
- `SHA256SUM.sig` is a plaintext file that contains rows of file names paired with a checksum for file contents.
├── SHA256SUM
- `SHA256SUM.sig` is a signature of the plaintext `SHA256SUM` file created with the private key.
├── SHA256SUM.sig
- `bsrKey.pub` is the public ed25519 key.
├── bsrKey.pub
- `pubKeySelfSignature.sign` is a self-signature of the plaintext public ed25519 key created with its private key.
├── cr_3bB78W53Y9.connection
- `pubKeyBsrSignature.sign` is a signature of the plaintext public ed25519 key created with the BSR key.
├── pubKeyBsrSignature.sign
- `wrappedBsrKey` is the BSR key wrapped by the external KMS AES-GCM key that you configure.
├── pubKeySelfSignature.sign
- `wrappedPrivKey` is the private ed25519 key wrapped by the external KMS AES-GCM key that you configure.
├── session-meta.json
- `session-meta.json` is a JSON file that contains metadata about the session, including the session id, endpoint,
├── session-recording-summary.json
user, target, host, worker, and credentials used to access the target. The intention of this file is to provide all information
├── session-recording.meta
relevant to the recorded session so that the BSR provides a complete snapshot of a session even in the absence of the Boundary
├── wrappedBsrKey
control plane.
└── wrappedPrivKey
- `session-recording.meta` is a plaintext file that contains metadata about the session, including the session id, protocol,
```
and a connection ids. For each connection id listed, there should be a corresponding connection directory in the session directory.
- `session-recording-summary.json` is a JSON file that contains a summary of the session recording, including the session id, connection count,
start time, end time, and any errors encountered during recording of the session.
`SHA256SUM` and `SHA256SUM.sig` files are used for cryptographically verifying the contents of this directory.
For more information on `*.sign`, `bsrKey.pub`, `wrappedBsrKey`, and `wrappedPrivKey` files, refer to [Validating the integrity of session recordings](/boundary/docs/operations/session-recordings/validate-session-recordings).
### BSR Connection folder
### BSR Connection folder
A BSR connection folder contains the following files:
```
- `SHA256SUM.sig` is a plaintext file that contains rows of file names paired with a checksum for file contents.
└── cr_W53Y93bB78.connection
- `SHA256SUM.sig` is a signature of the plaintext `SHA256SUM` file created with the private key.
├── SHA256SUM
- `connection-recording.meta` is a plaintext file that contains metadata about the connection, including the connection id,
├── SHA256SUM.sig
requests seen, channel ids, and any errors seen. For each channel id listed, there should be a corresponding channel directory in the connection directory.
├── chr_uVVuUITnVn.channel
- `connection-recording-summary.json` is a JSON file that contains a summary of the connection, including the connection id,
├── connection-recording-summary.json
start time, end time, bytes up, bytes down, and any errors encountered during recording the connection.
├── connection-recording.meta
- `requests-inbound.data` is a binary file containing all inbound SSH request messages transmitted for the connection.
├── requests-inbound.data
- `requests-outbound.data` is a binary file containing all outbound SSH request messages transmitted for the connection.