Commit Graph
69 Commits
Author SHA1 Message Date
Elim Tsiagbey 3ab6828a83 chore: bump sdk & api deps (#5539)
Post-release step: Bump`sdk` and `api` based off `0.19.0` release
2025-02-11 14:44:09 -05:00
Elim Tsiagbey 9e5c1b846f chore: Update changelog dates (#5536) 2025-02-11 10:52:59 -05:00
Elim Tsiagbey 777ea9199c docs: update changelog to include security dependency updates (#5529) 2025-02-10 13:10:00 -05:00
Elim Tsiagbey 207b02bf15 chore: Update changelog (#5527)
* chore: Update changelog

update changelog for  0.19.0, 0.17.4, 0.18.3 and add missing 0.17.3 entry
2025-02-07 17:00:17 -05:00
Elim Tsiagbey c5cc20c649 fix(worker): add GCP plugin support on the worker (#5484)
Enable worker to run GCP plugin
2025-01-28 09:35:14 -05:00
Elim Tsiagbey 5b802426fa chore: update changelog for version 0.19.0 and reorganize bug fixes (#5470) 2025-01-23 17:03:34 -05:00
Elim Tsiagbey 91c1308924 chore: Update boundary-plugin-gcp to version v0.1.0 (#5462)
Update the GCP plugin dependency to point the latest released version
2025-01-22 13:29:14 -05:00
Elim Tsiagbey 34d13a0aae chore: update boundary-plugin-gcp dependency to latest version (#5419)
* chore: update boundary-plugin-gcp dependency to latest version
2025-01-09 15:53:08 -05:00
Elim Tsiagbey e0eb393665 docs: Add docs for GCP DHC (#5364)
* docs: Add docs for GCP DHC

- Add documentation for GCP dynamic host catalog
- Add changelog for GCP dynamic host catalog
2024-12-18 15:20:19 -05:00
Elim Tsiagbey 090c1df06e chore: update boundary-plugin-gcp dependency to latest version (#5374) 2024-12-17 15:31:41 -05:00
Elim Tsiagbey a4f2a704fd test(e2e): add GCP dynamic host catalog e2e tests (#5294)
* test(e2e): add GCP infra resources and tests for enos testing

- add 1 new `gcp_target` module that creates a GCP VM instance with labels for filtering
- add GCP dynamic host catalog e2e tests
2024-12-17 14:06:14 -05:00
Elim Tsiagbey b6458732ed chore: update module name (#5282)
The module name for `go.mod` should be `gcp` not `aws` since it is in the `gcp` package
2024-11-25 15:55:40 -05:00
Elim Tsiagbey 194629488d chore: bump gcp plugin dependency (#5266)
This picks up latest GCP Plugin bug fixes
2024-11-20 16:59:29 -05:00
Elim Tsiagbey 514bcc19f6 feat(gcp): add GCP plugin (#5229)
Add GCP as a supported plugin for dynamic host catalogs
2024-11-08 11:09:29 -05:00
Elim Tsiagbey 306c722750 feat: Add support for capturing URL actions in request info (#5044)
* feat: Add support for capturing URL actions in request info

- Pass request context to services to validate actions.
- Validate actions for auth methods during authentication. `/v1/auth-methods/{{AUTH_METHOD_ID}}:authenticate:callback` is currently only supported on `OIDC` auth methods. An error is thrown if `:callback` is not supported
2024-08-29 17:14:42 -04:00
Elim Tsiagbey 84707c04cb feat: Disable path length fallback (#5050)
Add `WithDisablePathLengthFallback()` runtime option to the grpc-gateway mux HTTP server. This prevents the issue where the request method can be overridden with a `X-HTTP-Method-Override` header.
2024-08-28 09:30:05 -04:00
Elim Tsiagbey 123286cf94 feat: Validate LDAP URL port number (#5046)
Add validation for the port number in LDAP URLs. If a port number is provided, it is checked to ensure it is a valid integer and within the valid range. This validation helps prevent errors when configuring LDAP authentication.
2024-08-27 11:27:14 -04:00
Elim Tsiagbey 8885ce8528 Update changelog for 0.16.3 & 0.17.1 (#5032)
* Update changelog for `0.16.3` & `0.17.1`
2024-08-22 16:57:07 -04:00
Elim Tsiagbey e6d355b65a fix: constant-time comparison of grpc-gateway tickets (#5031)
Update GRPC Gateway tickets to compare tickets in constant-time
2024-08-21 12:26:22 -04:00
Elim Tsiagbey b0662dbf09 feat: add SBC state to feature manager (#4971) 2024-07-26 16:08:17 -04:00
Elim Tsiagbey f9c5d66dc4 bump aws plugin to fix SBC state error (#4963) 2024-07-24 12:35:21 -04:00
Elim Tsiagbey e76133e148 docs: remote storage state (#4949)
* docs: remote storage state

document new remote storage state on the worker
2024-07-23 12:07:25 -04:00
Elim Tsiagbey 11272b6c2a feat: update storage to support dependency calls 2024-07-17 14:23:11 -04:00
Elim Tsiagbey 130010a2ca feat(testing): add loopback plugin support for overriding the error state with SBC State 2024-07-17 14:23:11 -04:00
Elim TsiagbeyandDamian Debkowski 670a43ca22 feat(worker): set storage bucket states for worker status
Co-authored-by: Damian Debkowski <damian.debkowski@hashicorp.com>
2024-07-17 14:23:11 -04:00
Elim Tsiagbey 012ec400f0 feat: Update StorageBucketSecret to StorageBucketCredentialManagedSecret
Update domain code to replace references of `StorageBucketSecret` to `StorageBucketCredentialManagedSecret`
2024-07-17 14:23:11 -04:00
Elim Tsiagbey 93aae23895 chore: update change log (#4845) 2024-05-30 15:26:54 -04:00
Elim Tsiagbey a23c57e7c6 feat: add storageEventListener nil check
Only shutdown the storageEventListener if the storageEventListener is not nil
2024-04-05 17:27:20 -04:00
Elim Tsiagbey fae2149990 docs: Local Storage State
- add docs for local storage states
- add docs for `recording_storage_minimum_available_capacity` config field for workers
2024-04-05 16:47:35 -04:00
Elim Tsiagbey c67f468e94 test(e2e): add helper function for finding worker by filter
- Add `GetWorkerWithFilterCLI` helper function for finding a worker by Address
2024-04-05 16:47:28 -04:00
Elim Tsiagbey 2c140b1e09 feat: Local Storage State API & CLI
- add `local_storage_state` value to API & CLI
2024-04-05 16:47:22 -04:00
Elim Tsiagbey 3bef063c72 feat: Filter workers by local storage state function
- add functionality to filter worker by local storage state.
- add feature constraint for local storage state
2024-04-05 16:47:10 -04:00
Elim Tsiagbey 3f94c900f0 feat: Add worker event listener
- add worker event listener
- add worker event handler
- start event listener when a worker starts
2024-04-05 16:46:22 -04:00
Elim Tsiagbey 8506ed3e2c feat: Report Local Storage State Status
- add `LocalStorageState` to worker status reports
- update worker service handler to process `LocalStorageState`. If is empty for workers older workers, we set the `LocalStorageState` to `unknown`
- update field mask paths to support `LocalStorageState`
2024-04-05 16:46:06 -04:00
Elim Tsiagbey f483d1417c feat: Update Proto Definition for Local Storage State
Update `ServerWorkerStatus` Proto Definition to include Local Storage State
2024-04-05 16:45:35 -04:00
Elim Tsiagbey 79917f74b8 feat(worker): Worker Local Storage State DB Column
- Add new `local_storage_state` column to `server_worker` table which keeps track of the state of the local disk space.

- The valid values for `local_storage_state` are:
-- `available`: The worker local storage state is at an acceptable state
-- `lowStorage`: The worker is below the minimum threshold for local storage
-- `criticallyLowStorage`: The worker local storage state is below the critical minimum threshold for local storage
-- `outOfStorage`: The worker is out of local disk space
-- `notConfigured`: The worker does not have a local storage path configured
-- `unknown`: The default local storage state of a worker. Used when the local storage state of a worker is not yet known
2024-04-05 16:44:54 -04:00
Elim Tsiagbey 1b1c8b3bf9 fix: Proxy closing listener with 0 connections left (#4389)
* fix: Proxy closing listener with 0 connections left

A bug was introduced in `0.15.0` where sessions with max connection counts were closed when the connections left hit 0. This issue was highlighted by a user: https://github.com/hashicorp/boundary/issues/4364. What was happening was when we have zero connections left the proxy code was closing the listener which closed its connections

To fix this:
- `boundary connect  -target-id=xx -host-id=xx` command with no connections left will now wait for all connections to be closed and before exiting the session just like it did in `0.14.3`
- As soon as there are no more connections left, the listener will close to stop accepting new connections
- Fix issue where the websocket connection was throwing closing errors during the session teardown.
2024-02-09 18:15:00 -05: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 ac382da11f fix: initialize assert for withBuffer test 2024-01-11 09:58:32 -05:00
Elim Tsiagbey fd385089e8 feat: create default logical block 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
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
Elim Tsiagbey 366128f079 Update Storage options to support rolling buffer (#798)
Add new storage options:
- `WithBuffer`:  WithBuffer sets the buffer size. The value must be a factorial of 4KiB.
- `WithMinimumBuffer`: WithMinimumBuffer sets the threshold to enforce when the buffer expands back to its original size.
2024-01-11 09:58:32 -05:00
Elim Tsiagbey 053421600d feat(oidc-prompts): Add Validation for Prompts (#4130)
Add validation to prevent "none" from being combined with multiple prompts.

- Valid `["none"]`
- Invalid `["none", "select_account"]`
- Valid `["consent", "select_account"]`
2023-12-08 09:51:54 -05:00
Elim Tsiagbey 8b8d2822df feat(oidc): OIDC Prompt (#4053)
Boundary OIDC method does not currently support passing in prompts during authentication. This change adds the capability of passing OIDC prompts. Prompts are optional OIDC parameters that determine the behaviour of the authentication server: https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest

## Changes

- New `auth_oidc_prompt` table which contains all the prompts for OIDC auth method
- New `auth_oidc_prompt_enm` table which contains possible enum values for a prompt
  - Currently supported:
    - `none`: 
The Authorization Server MUST NOT display any authentication or consent user interface pages
    - `login`: The Authorization Server SHOULD prompt the End-User for reauthentication
    - `consent`: The Authorization Server SHOULD prompt the End-User for consent before returning information to the Client
    - `select_account`: The Authorization Server SHOULD prompt the End-User to select a user account
- `oidc_auth_method_with_value_obj` view has been updated to return `prompt` value
- Add `prompt` option for OIDC auth method CLI create and update
- Pass configured prompt during OIDC authentication
- Add `prompt` API validation for create and update
2023-11-21 11:30:02 -05:00
Elim Tsiagbey 4239f6d4a9 Update changelog (#3944)
* chore: Update changelog for 0.14.2 release
2023-11-02 14:17:57 -04:00
Elim Tsiagbey c95081dde9 chore: Update changelog for bug fix (#3904)
Update the changelog details for High CPU Utilization bug fix: https://github.com/hashicorp/boundary/pull/3884
2023-10-24 11:49:49 -04:00
Elim Tsiagbey 5741807b4a fix: monitorUpstreamConnectionState CPU consumption (#3884)
* fix: monitorUpstreamConnectionState CPU consumption

`monitorUpstreamConnectionState()` is a goroutine that listens for GRPC client connection changes using GRPC's `WaitForStateChange` method. `monitorUpstreamConnectionState()` was consuming the a lot of CPU. It was continuously running and not actually waiting for state changes. The `state` for `monitorUpstreamConnectionState()` was not getting correctly updated which caused the loop to continuously run instead of waiting for new state changes.

Update GRPC `WaitForStateChange` method to use the same `state` that gets updated.
2023-10-23 19:35:12 -04:00
Elim Tsiagbey 955f14d730 chore: update changelog with new worker upstream connection status (#3693)
Add missing changelog entry for https://github.com/hashicorp/boundary/pull/3650
2023-09-11 10:58:38 -04:00
Elim Tsiagbey d271025863 fix: Flakey upstream connection test (#3689)
The connectivity state changes for `upstream_connection_state` health field is causing the test to be flakey. Commenting out the field during assertions. `upstream_connection_state` health field is tested in other tests
2023-09-07 15:48:53 -04:00
Elim Tsiagbey fabd4093de feat: Worker Connectivity Health Check (#3650)
* feat: Worker Connectivity Health Check

Add worker upstream connection state. API calls to the worker's ops `/heath?worker_info=1` endpoint should now return a new filed called `upstream_connection_state`

```
{
   "worker_process_info":{
      "state":"active",
      "active_session_count":0,
      "upstream_connection_state":"READY"
   }
}
```

The states returned will be GRPC connection states: https://grpc.github.io/grpc/core/md_doc_connectivity-semantics-and-api.html

There could be multiple upstream addresses but GRPC manual resolver determines the state of the connection.
2023-09-01 13:42:41 -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
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
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 TsiagbeyandDan Heath 1822dc8e4f docs: Add page about session recording audit events (#3430)
* docs: Add page about session recording audit events

Add some of the event field types that are emitted by session recording actions. There are lot of fields so this just focuses on some of the important fields for users to know what to expect

---------

Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com>
2023-07-17 12:53:50 -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 b10a93d0e8 docs: Session Recording Requirements for Workers (#3414)
* docs: Session Recording Requirements for Workers

Clarify the requirements for Boundary workers used for session recording
2023-07-13 11:59:35 -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
Elim Tsiagbey 103b1e78aa docs: update NormalizeSetData comments (#3343)
* docs: update NormalizeSetData comments

Update comments for `NormalizeSetData` to include when `NormalizeSetData` could be useful and the non-obvious consequences of using it.
2023-06-20 16:11:04 -04:00
Elim Tsiagbey 15e7bbe816 fix: add plugin normalization for onCreate methods (#3338)
onUpdate for host catalog & host set make a call to the plugin to normalize attributes based in. This behavior was introduced [PR-2376](https://github.com/hashicorp/boundary/pull/2376) but was only applied on onUpdate. This created different data structures for onCreate calls and onUpdate calls.
2023-06-20 13:38:52 -04:00
Elim Tsiagbey a2f8d87bfb Add support for setting, adding & deleting LDAP account assoicated to a user (#3198) 2023-05-03 09:45:29 -04:00
Elim Tsiagbey 16f48686a7 Refactor Target Repository (#3092)
- Refactor the Target domain repository functions so that they no longer return 4 different types.

`Target` struct now contains `HostSource` & `CredentialSources` with Getters & Setters

- Extending `Target` to contain `HostSource` & `CredentialSources` enables `funcs` to just return `Target` instead of multiple return types.
This also allows easy future refactors and extensions of `Target`
2023-03-30 15:19:30 -04:00
Elim Tsiagbey b2376356dd Bats Tests: Target Host Sources (#3107)
* Bats Tests: Target Host Sources

- Add bats test coverage for adding a Host Source to a Target
- Create `target_host_sources.bash` file with helper functions for bats test file

## Considerations
Created new resources like a target & host catalog instead of using already created resources because the changes could affect existing tests and it made it easy to change the newly created resources
2023-03-24 17:38:39 -04:00