Commit Graph
285 Commits
Author SHA1 Message Date
Jeff Mitchell b73d4bd0d2 Add note about 0.12.3 not having an OSS tag 2023-05-30 21:40:02 -04:00
Jeff Mitchell 7bdbe8ab8e Update changelog (#3250) 2023-05-30 16:16:31 -04:00
Irena Rindos 6b00f69e58 chore: backport 0.12.2 release (#3220) 2023-05-15 13:05:18 -04:00
Jeff Mitchell 869310d7da Only create WithAutomaticVersioning if versioning is used (#3210)
This option did not respect whether or not versioning was enabled when
writing it out during generation.

This does mean that there is a breaking change for auth tokens, but as
it was a no-op anyways it's easy to fix and not something I want to /v2
about.
2023-05-09 11:12:03 -04:00
Jeff Mitchell 20391e3503 Add default client port to targets and use in connect command (#2767) 2023-04-21 06:50:53 -04:00
Jeff MitchellandIrena Rindos bdf7bf7702 Do not allow PKI-KMS workers to have names updated via API (#3143)
Do not allow PKI-KMS workers to have names updated via API

This would cause their public IDs to change, which we do not want.

Descriptions are also disallowed, since those come from the config file.

This also adds logic to allow upgrading from old KMS method to new, with
a test.

Co-authored-by: Irena Rindos <irenarindos@users.noreply.github.com>
2023-04-03 17:44:41 -04:00
Jeff Mitchell 163ce184b8 KMS-PKI Workers (#3101)
This adds a new mechanism for worker authentication that uses the
third-party arbitration of the original KMS flow by leveraging
recently-added capabilities in nodeenrollment to support a registration
wrapper. This allows for workers to be registered to the system with
just a name and a matching wrapper, while at the same time allowing
these workers to be used for private Vault access and multi-hop as they
contain per-worker encryption keys and support rotation.

Nodes using this mode will generate and rotate credentials in-memory
(using another recently added nodeenrollment capability) so will have a
new set of keys on every startup. This has the side effect of ensuring
that there is never a conflict or re-use of these credentials.

Note that the normal test worker flow was using the now-deprecated KMS
method; there is still a test that uses this (explicitly) but all other
tests using test workers that did not specify a specific PKI flow now
actually use this mechanism. This means there is fairly decent test
coverage in a general sense, plus the specific tests updated/added for
this feature.

This also adds a new KMS type that can be used to have
distinct KMSes for upstream authentication vs. accepting from
downstream.
2023-03-30 16:20:28 -04:00
Jeff Mitchell 6fd740d619 Update changelog 2023-03-16 10:19:27 -04:00
Damian Debkowski bbbd6b1e51 backport 0.12.1 release (#3079)
* chore: update version

* fix(tests): break out of infinite loop for bats tests

* chore: update changelog

* fix: make-gen-delta check
2023-03-14 10:19:11 -07:00
Irena Rindos 1821cb4631 Use tofu token from controller (#3064)
* initial commit
2023-03-08 13:49:57 -05:00
Zhihe Li 21e73e4b17 Update changelog and UI commitish (#3052) (#3053) 2023-03-02 17:34:50 -05:00
Timothy Messier b69d1c2e2e fix(cli): Fallback parsing of un-typed credentials (#2989)
The `boundary connect` subcommands attempt to parse the credentials to
use for brokering. This allows the subcommands to insert the credentials
automatically into the process called by the subcommand, i.e. `ssh` or
`psql`. There is some fallback logic to try a best attempt at parsing
the credential in cases where a credential type has not be set on the
credential source.

The bug was introduced with the recent change to the vault credential
library subtype being renamed from `vault` to `vault-generic`. This
fallback logic would only run if the credential source type was "vault"
or "static", so if the vault credential library was created without
specifying a credential-type, the credential would not be parsed and
automatically passed to the sub-process.

This fix removes the additional check on the credential source's type,
instead it will attempt to parse the credential, relying just on the
structure of the credential.

This also fixes a similar bug in the table output of secrets when using
`boundary connect` without a subcommand. The parsing of the credentials
for display in the table was only running for `vault` or `static`.

Blame: db42eafd7a
2023-02-21 16:38:42 -05:00
Cameron Perera 313316ecd2 chore: update CHANGELOG to include UI managed group feature (#2969) 2023-02-14 20:51:40 -06:00
claire labry d611ce8fd6 add changelog update for vendor label for linux packaging (#2921) 2023-02-09 15:46:09 -06:00
Johan Brandhorst-Satzkorn 501761a564 chore: Add changelog entry for job_run fix (#2897) 2023-02-03 14:57:33 -05:00
Timothy Messier e66ea15fef fix(cli): Status code on api error
When using the json output of the cli (`-format=json`), a successful
call to the controller API would place the HTTP status code in the JSON
as `status_code`. However, if there was an error from the API the status
code would be placed in the JSON as `status`. In order to be consistent,
this adds a `status_code` field to the error response case. For
backwards compatibility it still populates `status` in the error case.

This inconsistency was missed partially due to a bug in the CLI tests.
The assertion on status code was not valid and would always be
successful. Thus this also fixes the assertions and tests.
2023-02-03 17:00:34 +00:00
Timothy Messier 862481960d chore(CHANGELOG): Add items for vault ssh certificate cred library 2023-02-02 17:43:17 +00:00
Jeff MitchellandJohan Brandhorst-Satzkorn 19180af0eb Fix target port handling (#2846)
* Fix target port handling

This fixes two issues that compounded on each other (see the Changelog
update for more information):

* The verification logic for hosts was not correct for update operations
(in multiple ways) which meant that a host could be updated after
creation to have a port. Targets had a previously fixed bug where they
did not require a default port, which meant that ports could be used
from hosts
* A recent (unreleased) change had prioritized any port coming from the
host over the default port, which would mean there was no way if a
host had a port specified to use it in multiple targets.

This fixes the update verification logic, and strikes a middle ground
between breaking things and not by allowing existing addresses with
ports to be used with targets but ignoring that port, instead requiring
targets to have default port set at authorize time (currently there is
backwards compat that does not require this due to the original optional
port bug).

* Update CHANGELOG.md

Co-authored-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
2023-01-26 13:35:29 -05:00
irenarindos 8c33582627 update changelog 2023-01-24 15:02:39 -05:00
Irena Rindos 03a456c733 update changelog for multi-hop (#2834) 2023-01-24 09:25:33 -05:00
Irena Rindos 00a73f64d9 bug(sessions): Fix authorizeSession race conditions in handleProxy (#2795)
* initial commit
2023-01-24 09:24:03 -05:00
Timothy Messier e2248c1360 fix(wh): Associate session fact with credential dimensions (#2787)
The wh_upsert_credential_group function was incorrectly attempting to
update the session connection fact table. There are a couple problems
with this:

1. At the time that this runs, there would be no session connection facts
   for this session.
2. This function is meant to update the session fact table, there is a
   separate function that associates the credential group with the
   session connection facts.

This also fixes another bug that was causing expired rows of the
credential dimension to be included in the group membership. And finally
it fixes a typo in the function name.
2023-01-13 11:24:32 -05:00
Hugo Vieira 1f9063e042 docs(target): Introduce direct address targets and explain tradeoffs 2023-01-09 15:39:55 +00:00
Louis Ruch 595a576caa chore: update changelog 2022-12-09 12:05:28 -08:00
Jeff Mitchell 3fa866e6bf Update host plugin mains against SIGHUP swallowing sdk 2022-12-06 15:29:58 -05:00
Haotian fbd0a8272b feat(metric): adds accepted/closed connections counters to worker and controller servers (#2668)
* adds counters and changelog entry
2022-12-06 10:13:44 -08:00
Pradeep Sekarandprsekar 8b5c8e8b7a chore: Update changelog with bytes up and down changes (#2673)
Co-authored-by: prsekar <pradeep.sekar@hashicorp.com>
2022-12-05 17:21:45 +00:00
Danielle 601be14c12 move custom response headers to next in changelog (#2667) 2022-12-01 14:01:05 -05:00
Johan Brandhorst-Satzkorn 6d25b35b4e Add KMS rotation/destruction feature to the changelog and docs (#2600)
* Add initial changelog entry

* feat(docs): Add initial stab at docs for KMS rotation/destruction

* fixup! Add initial changelog entry

* Review comments
2022-12-01 13:32:35 -05:00
Danielle 5f8d292ea1 Inject Custom Response Headers By Status (#2587)
* add custom ResponseWriter struct to inject custom response headers based on status code

* docs

* upgrade listenerutil

* fix config tests

* replace all instances of "data:*" with "data:" to reflect changes to listenerutil

* swapping strings.HasPrefix in favor of mux.Handler for ui request matching

* set ui path as const

* add custom response headers to changelog
2022-12-01 13:15:53 -05:00
Hugo 4b03a39958 chore: Update changelog with bytes up and down changes (#2665) 2022-12-01 18:15:08 +00:00
Louis Ruch aca22cacb9 chore: Update changelog 2022-11-29 13:57:20 -08:00
Johan Brandhorst-SatzkornandDan Heath df02501dcc Create new "previous-root" key purpose for root key migrations (#2639) (#2648)
* Update go-kms-wrapping dependency

* Apply changes suggested by Jeff

* Fix listener test

* Add note about config fix to CHANGELOG

* Review comments

Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com>

Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com>
2022-11-24 20:07:37 -05:00
Dan Heath 066e184bf6 Fix changelog typos (#2636) 2022-11-21 16:24:28 -05:00
Johan Brandhorst-Satzkorn 8908dccf6d Forward port some release fixes (#2631)
* fix(worker): Verify contents of loaded session (#2629)

* fix(worker): Verify contents of loaded session

Previously, it was possible for an empty private key to be used
when the session had no user or project associated with it.
The new checks guarantee that we will fail gracefully in these
cases.

* Check against len instead of nil

* Add CHANGELOG

* fix(session): Always invoke all parts of session cancel trigger

The session cancelation trigger would not set the key_id to null
appropriately if another one of the fields on the session was
already null, since that case statement would be matched first.
The new structure matches all statements, in case any of them have
special logic (such as in the project case).
2022-11-17 18:21:20 -05:00
Todd 426e6aaa79 Check that the returned resources before referencing them (#2612) 2022-11-14 13:23:56 -08:00
Jeff Mitchell cede1aec93 Add initial templating support to Vault credential libraries (#2569) (#2575)
Add initial templating support to Vault credential libraries

This adds support for templating various account and user values into
Vault dynamic credential library POST bodies and GET/POST paths.

It also unifies how parameters are used in grants, with backwards
compatibility.
2022-10-27 09:01:05 -04:00
Todd 73f7004c74 Add RLocks for all read access to s.connInfoMaps in a session (#2553)
* Add RLocks for all read access to s.connInfoMaps in a session
2022-10-20 14:05:27 -07:00
Jeff Mitchell 37273d7a9c Fix two items: (#2544)
* Randomize order of worker output. This uses the standard
  rand.Shuffle() call; cribbed from
  https://pkg.go.dev/math/rand#example-Shuffle
* Have some error/eventing in the worker status path use the base
  context instead of the status-call-specific context to allow eventing
  after a timeout event
2022-10-18 16:57:07 -04:00
Todd fa39fe5b0f Delete the base auth account when a concrete auth account is deleted (#2528) 2022-10-11 16:59:52 -07:00
irenarindos 7cae733945 Bump changelog 2022-09-29 12:03:07 -04:00
Irena Rindos 2dfa1bb149 Update changelog (#2485)
* update changelog
2022-09-26 14:01:28 -04:00
Zhihe Li bbd006db85 Update changelog (#2482) 2022-09-21 16:04:22 -04:00
Timothy Messier a2ef14283b fix(org): Address bug that prevented deleting an org (#2465)
The schema changes introduced in 0.10.2 introduced a bug where an org
could not be deleted if there was a session for an org scoped user. It
would result in an error like:

    scope.(Service).deleteFromRepo: unable to delete scope: \
        iam.(Repository).DeleteScope: failed for o_VkNy46KwfS: \
        iam.(Repository).delete: db.DoTx: iam.(Repository).delete: \
        db.Delete: insert or update on table "session" violates foreign key constraint "target_fkey": integrity violation: error #1003

A worker around would be to first delete all projects in the org, then
finally delete the org.

This fix adds a regression test to the sqltests and updates several
constraints on the session table to be deferrable. Since the org delete
is a single transaction, this allows all of the necessary resources to
be deleted before attempting to enforce these constrains.

See: https://www.postgresql.org/docs/current/sql-set-constraints.html
Blame: 3a28ab614
2022-09-19 09:47:52 -04:00
Jeff Mitchell 53b5e532d5 Remove deprecated methods/fields on targets (#2393) 2022-09-15 09:20:08 -04:00
Jeff Mitchell 37fb9815ce Add session endpoint test for #2448 (#2450) 2022-09-13 20:29:58 -04:00
Louis Ruch b908cfb860 chore: prep for next release 2022-09-13 10:16:48 -07:00
Timothy Messier d0a61b29b8 chore: Add missing items to changelog (#2440)
Add items for SIGHUP database reload and performance improvements.
2022-09-13 07:55:39 -04:00
Jeff Mitchell 8e969787f9 Update CHANGELOG.md
Fix 0.10 -> 0.10.0.
2022-09-12 12:32:01 -04:00
Irena Rindos 18dff62b7b Merge BYOW GA branch to main (#2398)
* feat(workers): Add ability to read and reinitialize cert authority (#2312)

* feat(workers): Return Release Version on worker list and read (#2377)

* feat(cli): Read and reinitialize worker certificate authority (#2387)
2022-09-08 13:19:21 -04:00