Commit Graph
2531 Commits
Author SHA1 Message Date
Johan Brandhorst-Satzkorn a1391db090 internal/cmd: rename ferry files to client_agent (#4815)
This was missed in the big rename PR
2024-05-22 13:49:06 -07:00
Johan Brandhorst-SatzkornandRobin Beck e64443c66f Rename daemon CLI command to cache (#4808)
* internal/cmd/wrapper: add deprecation wrapper

The deprecation wrapper can be used to display a warning to callers
when a command is deprecated.

* all: rename daemon to cache

Rename the boundary daemon command to boundary cache. This
avoids confusion with future client/daemons.

* changes daemon to cache in nav

---------

Co-authored-by: Robin Beck <stellarsquall@protonmail.ch>
2024-05-22 11:11:48 -07:00
Todd 6936a5448c update status cli to optionally return some fields (#4810) 2024-05-22 09:51:58 -07:00
Johan Brandhorst-Satzkorn 8ff18f6c3c internal/cmd: rename ferry to client-agent
Renames the ferry command and related flags and env vars to
client-agent following the new naming decision.
2024-05-22 09:51:58 -07:00
Hugo 9b44974524 docs: Add CHANGELOG entry 2024-05-20 16:06:35 +01:00
Hugo 2983f80eaa fix(cmd): Support account attribute maps 2024-05-20 16:06:35 +01:00
Hugo 61e2056ef4 fix(auth/ldap): Take user attrs into account when authenticating 2024-05-20 16:06:35 +01:00
Timothy Messier a2c529b9d1 fix(controller): Use max request duration cluster listener (#4805)
The cluster listener supports a `max_request_duration` option, and
defaults to 90 seconds. However, this configuration was not being use
when processing grpc requests from the listener. This meant that
requests from worker to controller could hang indefinitely and
contributed to the recently fixed issue with database connections being
stuck in `idle in transaction`.

This commit adds a grpc interceptor that ensures each request has a
deadline set to the max request duration for the listener.

Refs: 29cd7bc9d6
2024-05-17 11:59:50 -04:00
Timothy Messier 29cd7bc9d6 fix(session): Move encryption/decryption out of database transactions (#4803)
Several session.Repository methods need to encrypt or decrypt fields
when persisting or retrieving a Session. These encrypt/decrypt
operations where being performed while within a database transaction.

The first step in the encrypt/decrypt operation is to retrieve the
kms.Wrapper. While the wrappers get cached in memory, the retrieval
still results in a database query to check that the kms collection
version has not changed. This query happens with a separate db.Reader,
and therefore uses a separate database connection from the transaction
being used by the session.Repository.

If the controllers are configured with a relatively low
`max_open_connections`, and be under sufficient load interactive with
sessions, the controller can consume all of the available database
connections, and get stuck with open transactions while waiting for a
database connection to execute the kms related queries. This can be see
by checking pg_stat_activity and seeing transactions stuck in `idle in
transaction` with a wait_event of ClientRead.

This commit changes all of the Repository methods the perform any
encryption or decryption operations, including the retrieval of the
kms.Wrapper, outside of a database transaction. An alternative approach
would be to unsure that the kms.Wrapper retrieval happens within the
same database transaction. However, it seems preferable to avoid doing
these relatively expensive operations within a transaction when it is
not necessary.

As part of this fix, it also eliminates some logic that is no longer
needed. During previous would with KMS wrapping, the method of how
sessions were encrypted was changed, and some logic to lazily re-encrypt
sessions was introduced. However, given that terminated sessions are
deleted, and the KMS changes was introduced several versions ago
(0.13.0), this lazy re-encrypt logic should no longer be necessary.

Refs: edd323b73a
See:
    https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW
    https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-IDLE-IN-TRANSACTION-SESSION-TIMEOUT
    https://developer.hashicorp.com/boundary/docs/configuration/controller#max_open_connections
2024-05-16 08:45:45 -04:00
Johan Brandhorst-Satzkorn 111b8fbecf internal/cmd/ferry: add sessions command (#4800) 2024-05-15 13:10:18 -07:00
Todd 5a06e4fe66 Auto generate the permissions pages. (#4786)
* Auto generate the permissions pages.

* Add add- set- remove- auto descriptions. Hide scope line when no scope provided

* Document the resource info struct
2024-05-10 12:49:48 -07:00
Todd c3f9fde5d7 Wait to select tokens until we know we need to (#4794)
AuthToken selection involves checking to seeing if the one we are picking has been canceled or expired on the boundary controller. If we are only searching locally and not performing a refresh, there is no need to check if the tokens have expired or not.
2024-05-10 09:38:30 -07:00
Irena Rindos 6f09819e9f chore: fix workers tag cmd help strings (#4780) 2024-05-08 11:52:16 -04:00
Irena Rindos 325949c23a chore: removed commented out time.sleep calls (#4770) 2024-05-07 12:22:15 -04:00
Michael Milton f7e59d5d04 Add hidden ferry pause and resume commands (#4771)
* Add hidden ferry pause and resume functions

* add check for 200 status

* include pause/resume status in ferry status, fix output

* put error string back to previous state
2024-05-06 17:54:27 -04:00
Irena Rindos 52f53a149c bug: test fails on end of month (#4748) 2024-05-06 09:03:01 -04:00
Kerim Satirli e54519975b adds missing space in mlock warning (#4286) 2024-05-02 17:36:45 -04:00
Stan Ryzhov 99f7e470f2 test(bats): Verify alias can be created with host id 2024-05-02 10:59:08 -04:00
Stan Ryzhov 60706a49e5 test(bats): Verify invalid inputs for aliases 2024-05-02 10:58:30 -04:00
Cameron Perera e0306293be chore: bump ui commit to dd92321 (#4745) 2024-04-29 14:13:57 -05:00
Lisbet Alvarez 5876b29758 bump ui commit (#4740) 2024-04-29 07:30:40 -07:00
Todd 3cae272c27 Hide ferry specific flags (#4737) 2024-04-26 13:48:56 -07:00
Zhihe Li 3b66f0651c chore: bump ui commit (#4734) 2024-04-26 14:08:42 -04:00
Irena Rindos 16d23fa55f bug(scopes): scopes list returns 500 without perms (#4731) 2024-04-26 11:55:30 -04:00
Todd 7ccc099807 Use the default retry limit across client cache (#4727) 2024-04-25 15:18:23 -07:00
Cameron Perera e792dd0ea5 chore: bump ui commit to dccf06c (#4724) 2024-04-25 11:57:18 -05:00
Cameron Perera 7018234724 chore: bump ui commit to 5ae490c (#4713) 2024-04-24 13:48:58 -05:00
Lisbet Alvarez a73076d666 bump ui commit to a6bdc4f (#4707) 2024-04-24 08:41:21 -07:00
Cameron Perera 4b48943c12 chore: bump ui commit to 3e9a06a (#4702) 2024-04-23 11:10:38 -05:00
Timothy MessierandSorawis Nilparuk 7c14aeaf41 fix(session): Use active transaction (#4592)
When closing orphaned connections and checking if a session is not
active, the repository was opening a transaction, but then calling the
original reader instead of using the reader/writer from the transaction.
This would result in a transaction being opend, then a separate
transaction being used to run the query, and finally the original
transaction would commit without any statements being executed.

Co-authored-by: Sorawis Nilparuk (Bo) <sorawis.nilparuk@hashicorp.com>
2024-04-19 10:40:42 -07:00
Sorawis Nilparuk (Bo) 8f457c9c93 make newSendCtx also handle context.DeadlineExceeded (#4603)
* make newSendCtx also handle context.DeadlineExceeded

* add assertion to check that context is valid
2024-04-19 09:23:40 -07:00
Todd 7df9144fbf Fix typos in request validation errors for aliases (#4671)
* Fix typos in request validation errors for aliases

* Add format validation for destination id field.
2024-04-19 07:49:11 -07:00
Michael LiandElim Tsiagbey ca1196cdc9 test(worker): Address flake in TestMonitorUpstreamConnectionState (#4668)
* test(worker): Address flake

* test(worker): refactor `TestMonitorUpstreamConnectionState` tests

* test(worker): remove assertion for grpc shutdown state

---------

Co-authored-by: Elim Tsiagbey <elim.tsiagbey@hashicorp.com>
2024-04-19 10:38:03 -04:00
Carlos Alcaide Corvo db2a4d9015 Bump UI version (#4664) 2024-04-18 11:00:01 -07:00
Todd 55cf055285 Fix build and test breakage. (#4659) 2024-04-17 14:02:31 -07:00
Cameron Perera 15737b0ca8 chore: bump ui commit to f9cd1c3 (#4658) 2024-04-17 15:31:53 -05:00
Todd adea8e0f14 Change aliases to resolvable aliases in client cache (#4656) 2024-04-17 12:37:42 -07:00
Irena Rindos 0160258bb5 bug: fix data race in hclogger (#4645)
* bug: fix data race in hclogger
2024-04-17 14:53:24 -04:00
Todd 608b6bb2b7 Add ListResolvableAliases SDK changes (#4653)
* Add API changs for list resolvable aliases
2024-04-17 11:13:08 -07:00
Todd 0d67b86543 Add ListResolvableAliases to the user service (#4609)
* Add ListResolvableAliases to the user service

There are a few non common ways this method uses our ACL
and grant system. A user is able to list resolvable
aliases for another user if they are granted permission
to do so. That means we had to load the grants for
the user being listed for and not the requester when
determining if an alias is able to resolve to a destination
for which the requested user has permission.

Similarly, the grant hash used for the list pagination
is required to be that of the user being listed and not
the requester.
2024-04-17 08:26:46 -07:00
Carlos Alcaide Corvo 267b8ab972 Bump UI version to include MinIO support (#4650) 2024-04-16 15:02:07 -07:00
Cameron Perera 87b0866d8f chore: bump ui commit to 98c16ad (#4647) 2024-04-16 12:19:19 -05:00
Cameron Perera 200524126d chore: bump ui commit to 80b633a (#4642) 2024-04-15 12:05:15 -05:00
dani 1a77e4da86 Boundary Plugin MinIO (#4621)
feat(storage): Add storage support for MinIO via new built-in plugin
2024-04-12 11:28:40 -04:00
Louis Ruch 2e6edb843d feat(vault): Add headers to client interface 2024-04-11 09:08:49 -07:00
Louis Ruch 0cfca44cf5 fix(vault): Fixes credential_vault_credential_private view
The worker_filter column was dropped from the
credential_vault_credential_private view in the
56/02_add_data_key_foreign_key_references.up.sql migration.
Any credential renewal/revocations that relied on the worker filter
would not successfully renew.
2024-04-11 09:08:49 -07:00
Louis Ruch c376d06355 feat: Add support for correlationId 2024-04-11 09:08:45 -07:00
Johan Brandhorst-Satzkorn 31f4b73584 proto/api: improve auth method service API docs (#4616) 2024-04-09 14:14:30 -07:00
6b53766aa6 internal/proto: improvements to OpenAPIv2 spec (#4555)
* internal/gen: better API docs

Add various pieces of metadata that can be used by the API docs renderer.
Improve the service labels by specifying explicit tags.
Specify error responses. Specify version at generation time.

* internal/gen: add better errors

The default error entry is now used to cover all errors, as
adding a new error for every possible status code was a bit much.
This also properly includes the real error type now!

* Add various pieces of metadata that can be used by the API docs renderer. Improve the service labels by specifying explicit tags.

* make auth method API docs

* make API docs better

* make auth methods API docs nicer

* internal/gen: better attribute examples

Replace Output Only comments with a field behavior annotation in accounts.
Mark some fields as required.
Add elaborate description for attributes.

* Make API docs better

* Make API docs better

* Make API docs better

* internal/proto: regenerate files

* internal/proto: finish off account service

* Make API docs better

* internal/proto: add better API docs for aliases

* Tidy up service descriptions

* Added description for Boundary controller  API doc

* internal/gen: add better API intro

Copy parts of the API docs into the description

* sdk: add openapi dependency

* internal/gen: move global API doc to separate file

* internal/gen: remove required annotations

Unfortunately, while these help with the creating of resources, they still
appear required in contexts where they are not, such as when
updating a resource.

* Review comments

---------

Co-authored-by: jigar-hashicorp <jigar.shah@hashicorp.com>
Co-authored-by: Isaac Christian (he/him) <112639904+isaacchristian@users.noreply.github.com>
2024-04-08 13:55:17 -07: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