Commit Graph
96 Commits
Author SHA1 Message Date
Jeff MitchellandDamian Debkowski 014a5a7aae Vet/race fixes (#4421)
This addresses all found vet/race fixes in community edition.

---------

Co-authored-by: Damian Debkowski <damian.debkowski@hashicorp.com>
2024-02-21 16:32:26 -05:00
Jeff MitchellandDamian Debkowski 35cef97bd4 Linter fixes PR 3 (#4415)
* Linter fixes

* fix(bsr): update test to register TEST protocol once

---------

Co-authored-by: Damian Debkowski <damian.debkowski@hashicorp.com>
2024-02-16 08:30:16 -05:00
Jeff Mitchell 4068829509 Merge pull request #4401 from hashicorp/jefferai-linter-fixes
Fix linter warnings, parts 1 and 2
2024-02-14 17:55:41 -05:00
Damian Debkowski 29c09f5bc2 fix(bsr): resolve race condition errors in signature file (#4393)
* fix(bsr): resolve race condition errors in signature file

* chore(bsr): add comment to define purpose of mutex lock
2024-02-14 10:33:20 -08:00
Jeff Mitchell 25bce9e8ff Fix linter warnings 2024-02-13 15:50:11 -05:00
Jim 3af259ff69 chore: update deps (#4394)
* chore: update deps

* tests: update sqlmock tests for breaking chg

* tests (handlers): sort grants in checkEqualGrants(...)

sort the expected and got grants in
checkEqualGrants(...) to make the test more
deterministic.

* tests (asciicast): update backspace enc in TestEventMarshal(...)
2024-02-13 10:50:06 -05:00
Damian Debkowski d0b10b020e fix(bsr): acquire mutex lock on all methods of Sha256SumWriter (#4383) 2024-02-08 15:57:59 -08:00
Johan Brandhorst-Satzkorn d9c6de4e8b deps: update runc dependency (#4349)
Fixes GHSA-xr7r-f8xq-vfvv
2024-02-01 13:19:24 -08:00
Jeff Mitchell 8e71caa2e3 Address some review feedback 2024-01-26 18:24:27 -05:00
Danielle Miu e903947bef Create delete_session_recording job and associated infra 2024-01-16 15:47:09 -08:00
Elim Tsiagbey c28a8ecfeb fix(bsr): remove unnecessary WriteAndClose function in BSR Journal 2024-01-11 09:58:32 -05:00
Elim Tsiagbey e1ae3b0689 fix(bsr): log failure reason for encode benchmark tests and stop the tests 2024-01-11 09:58:32 -05:00
Elim Tsiagbey 17330e13df feat(bsr): use constant for BSR buffer size 2024-01-11 09:58:32 -05:00
Elim Tsiagbey dbb077e898 fix failing delta for sha256sums test (#852) 2024-01-11 09:58:32 -05:00
Damian Debkowski 7cdbcd71ca fix(bsr): missing buffer opts for channel writers 2024-01-11 09:58:32 -05:00
Damian Debkowski 208611ec3e feat(bsr): invoke writeAndClose() in encode 2024-01-11 09:58:32 -05:00
Damian Debkowski 2157a29e6e fix(fstest): return a LimitedSpaceFile on OpenFile() 2024-01-11 09:58:32 -05:00
Damian Debkowski 450da59686 feat(bsr): create checksum writer 2024-01-11 09:58:32 -05:00
Damian Debkowski 4f42dbf59f feat(bsr): utilize rolling buffer 2024-01-11 09:58:32 -05:00
Elim Tsiagbey 5a6a6a5198 remove WithMinimumBuffer for MemFile (#820) 2024-01-11 09:58:32 -05:00
Elim Tsiagbey cae97fcd2e feat: Add function that writes to a file without expanding the buffer and closes the file. 2024-01-11 09:58:32 -05:00
Jim 0d19892e03 fix (events): convert multierror to stdlib error (#3743)
* fix (events): convert multierror to stdlib error

multierror errors will be converted to a stdlib error (because
multierror doesn't support json marshaling).

* refact (errors): convert from multierror to stdlib errors.Join(...)

* refact: convert from pkg/errors to stdlib error wrapping
2023-09-17 19:35:43 -04:00
Jim d5411a26f6 chore: update protobuf dep (#3669) 2023-09-05 13:10:03 -04:00
hashicorp-copywrite[bot]andJohan Brandhorst-Satzkorn 29da0bcb92 [COMPLIANCE] License changes (#3567)
* Adding explicit MPL license for sub-package.

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Adding explicit MPL license for sub-package

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Updating the license from MPL to Business Source License

Going forward, this project will be licensed under the Business Source License v1.1. Please see our blog post for more details at https://hashi.co/bsl-blog, FAQ at www.hashicorp.com/licensing-faq, and details of the license at www.hashicorp.com/bsl.

* Update copyright file headers to BUS-1.1

* Rerun make gen

This will pick up the last of the license changes

* Revert "Rerun make gen"

This reverts commit dbe0968bffd92745d8663c6940debae098395a6b.

* Remove copywrite from generation script

The current version of copywrite is not sophisticated enough
to only apply the copywrite changes to certain subdirectories,
so to avoid accidentally relicensing our api and sdk modules,
we will stop running the copywrite script until such time
that it can do the right thing.

* License protobuf API as MPL

The protobuf API files are used to generate the SDK,
since we want the SDK to be MPL, the protobuf files
must also be MPL. This extends to all protobuf files
whose sources end up in the SDK directory, including:

- internal/proto/controller/api
- internal/proto/controller/custom_options
- internal/proto/plugin

It also includes the generated service directory in
internal/gen/controller/api/services, since they are
generated from the protobuf sources used for the SDK.

* Change website license file name

This makes the naming scheme consistent with the rest
of the repository.

* Add note on licensing to README

* Set copywrite license to BUSL

* Revert "Add note on licensing to README"

This reverts commit 4d865a91a7a4f11605f0dc4609355d7e3c3cfffe.

---------

Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
2023-08-11 10:31:53 -07:00
Irena Rindos 8396dff233 fix(session recording): correctly return and join errors (#3565)
* fix(session recording): correctly return and join errors
2023-08-10 09:01:55 -04:00
Elim Tsiagbey 4564d15901 feat: Validate BSR files (#3507)
* feat: Validate BSR files

Add support for validating all files in a Boundary Session Recording (BSR). All files and sub container files will be verified by comparing it against checksums for each file in `SHA256SUM` file

### Considerations
- Validation will continue even if there's an error encountered during validation. The validation error will be added to the Validation struct `Error` field
2023-08-04 14:31:20 -04:00
Irena Rindos 65f20f3d6f fix(bsr): limit chunk length (#3500)
* fix(bsr): limit chunk length
2023-08-03 13:57:49 -04:00
Elim Tsiagbey 91b74a04d6 chore: BSR container close check (#3528)
Add check to make sure container isn't nil before `container.close()` is called
2023-08-01 10:19:12 -04:00
Elim Tsiagbey 1548d48f00 fix: Close opened BSR files (#3519)
* fix: Close opened BSR files

- Add checks to close a file if it's not nil
- Close files opened during reads for `OpenSession`, `OpenConnection` & `OpenChannel`
- Close opened scanner readers
2023-07-31 17:13:24 -04:00
Damian Debkowski 0dcdee4758 feat(bsr): support container validation (#3504) 2023-07-28 13:38:51 -07:00
Damian Debkowski da7e8f7c1c fix(bsr): allow reading twice from the same fstest.MemFile (#3498) 2023-07-27 09:25:01 -07:00
Damian Debkowski a67e42b00f refactor(bsr): optimize ChunkEncoder.Encode() (#3476) 2023-07-26 09:12:19 -07:00
Irena Rindos dcdb257b93 fix(bsr): check nanosecond range during decoding (#3496) 2023-07-25 11:58:15 -04:00
Elim Tsiagbey 1482f33845 feat: Perform asciicast conversion sanity checks (#3481)
* feat: Perform asciicast conversion sanity checks

Check that the conversion to asciicast is done on `exec` or `shell` session program. Unsupported session programs will throw an error.
2023-07-20 09:58:52 -04:00
Elim Tsiagbey 6afd2c96a5 feat: Add custom summary error type (#3459)
Add custom error type to to decode and encode `Errors` field

Added some extra checks to handle existing BSR summary types with `Error` fields
2023-07-17 11:55:46 -04:00
Elim Tsiagbey 83d089ec9d chore: Change summary errors field type (#3447)
chore: Change summary errors field type

decoding summary `Errors` field currently fails with type `error`.  Using a string type to handle `Errors` field
2023-07-14 10:21:12 -04:00
Elim Tsiagbey ed7bc7cc4d chore: Add missing for summary interfaces (#3438)
Add missing `Errors` Getter & Setter for Session & Connection Summary interfaces
2023-07-13 15:48:27 -04:00
Elim Tsiagbey fd3091d8dc feat: Decode Summary File (#3408)
* feat: Decode Summary File

- Add support for decoding BSR session, connection and channel summary file
- Introduce base summary interfaces that other protocols can extend
- Add new SSH register allocation function for getting SSH Channel Summary Type
2023-07-13 10:25:01 -04:00
Irena Rindos be074ecbb3 chore: fix op for end chunk (#3370) 2023-06-28 08:38:57 -04:00
Timothy Messier 837734b745 test(bsr/fstest): Add new FS for testing out of space errors (#3305)
This provides a new storage.FS implementation that expands the on
fstest.MemFS by allowing tests to mark the filesystem as out of space.
When this happens any write/create operation will start returning an
error indicating that the filesystem is out of space.
2023-06-09 16:32:24 -04:00
Timothy Messier fe7c87dc82 feat(bsr/ssh): Add open failure details to ChannelSummary (#3297) 2023-06-08 11:17:32 -04:00
Timothy Messier 7e094d824f feat(bsr/convert): Remove asciicast minimum window size (#3287)
This removes the minimum on width and height, instead it will just used
the largest width, height seen as the initial size for the asciicast.
This also provides the ability to still set a minimum via options to
convert.ToAsciicast if the caller has a known minimum size. Also note
that in cases where there is no size information, ie if there was no pty
request, this will still pick a default size of 80x24.
2023-06-06 12:26:46 -04:00
Johan Brandhorst-Satzkorn 610df9892b all: propagate more history metadata (#3279)
A few target and host properties were missed when reading historical
data from the history tables.
2023-06-05 10:19:11 -07:00
Johan Brandhorst-Satzkorn 3e07b2ffaf bsr: rename fields and remove project id from meta 2023-05-31 12:18:24 +00:00
Johan Brandhorst-Satzkorn 64764e29e5 bsr: invert credential, cred store relationship
This lifts the credential sources up to the top of
the SessionMeta struct, avoiding indirection through
the credential stores.
2023-05-31 12:18:24 +00:00
Johan Brandhorst-Satzkorn e0700570a2 bsr: add endpoint to session meta
The endpoint stores the address of the host
the egress worker proxies to.
2023-05-31 12:18:24 +00:00
Timothy Messier 9f2c83f3b0 refact(bsr): Rename const to denote when interpolation is needed 2023-05-31 12:18:23 +00:00
Timothy Messier b88b4cce75 feat(bsr/ssh): Add file transfer direction to channel summary
When an SSH channel is used for a file transfer, the summary will report
the detected direction of the file transfer as either an upload or
download, relative to the end client.
2023-05-31 12:18:23 +00:00
Timothy Messier 78ea1a9f3a refact(bsr): Use JSON for session meta and summary data
The session metadata is provided all at once when a new bsr is opened.
While the session recording metadata records metadata about a recording
while the recording is happening, notably it records each time a new
connection occurs.

The nested structure of the session metadata does not lend itself to the
append-only syntax of the recording meta file. In addition we do not
want to mix different kinds of metadata together. Thus the session
metadata is now written to a separate file in the BSR, and is written as
JSON which better handles the nested structure and allows for simpler
encoding/decoding.

Similarly the summary files are intended to be written to as containers
close and have been switched to JSON.
2023-05-31 12:18:23 +00:00
irenarindos b57692f8fc chore(bsr): check index bounds for meta unmarshal 2023-05-31 12:18:22 +00:00