Commit Graph
52 Commits
Author SHA1 Message Date
Hugo e8a5c5c80d feat(e2e): Common API/CLI functions for targets 2025-09-02 15:13:27 -04:00
Hugo 288f505482 refact(e2e): Modify CreateTargetApi to support different target types 2025-09-02 15:13:23 -04:00
Hugo 4de25bb70c refact(db): Implement target history base and subtype table design 2025-09-02 15:12:57 -04:00
Hugo 7a6c4eeb56 feat(target): Enrich CredentialLibrary object with credential type
This allows for registered subtype-specific functions to perform logic using a
credential library's credential types.
2025-09-02 15:12:46 -04:00
Hugo 0111123cac fix(proto): Make UPD domain field public + ensure consistency across API pkgs 2025-09-02 15:12:29 -04:00
Hugo fbcc256742 feat(handlers): Allow UPD brokered creds to be associated w/ Targets + Session auth 2025-09-02 15:12:25 -04:00
Hugo 2316fecbd6 Remove nhooyr.io/websocket from Boundary (#5992) 2025-08-20 16:28:07 +01:00
Hugo b8c8753582 chore(sdk): Update deprecated 'nhooyr.io/websocket' library (#5990) 2025-08-20 15:59:49 +01:00
Hugo 612e60f6e8 chore: Update nodeenrollment (#5863) 2025-06-19 12:55:12 +01:00
Hugo 08bd39f9fa fix(enos): Remove brackets from standalone IPv6 addresses (#5739) 2025-05-14 18:00:34 +01:00
Hugo a65d5d8573 feat: Normalize fields across various Boundary components (#5599)
Normalizes various IP/Address/Host fields across Boundary resources/components to comply with IPv6 specifications.
2025-05-13 16:55:28 +01:00
Hugo 1fb52206e2 chore: Update AWS and MinIO plugins (#5598) 2025-03-14 15:50:54 +00:00
HugoandJohan Brandhorst-Satzkorn dce336500e chore(plugins): Update AWS plugin to v0.5.0 (#5421)
* chore(plugins): Update AWS plugin to v0.5.0

* docs: Update CHANGELOG

* docs: Update CHANGELOG language

Co-authored-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>

---------

Co-authored-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
2025-01-08 17:33:33 +00:00
Hugo 346ac58fa3 feat(cmd): Default to azure plugin when performing db migration (#5422) 2025-01-08 17:25:13 +00:00
846c849589 Worker Domain Refactor (#5338)
* feat(server): Refactor LookupWorkerByName to be a test method

* feat(server): Split worker tags table

* refact(worker): Export api and config tags

* refact(server): Return worker id from UpsertWorkerStatus

* refact(server): Create ListWorkerStorageBucketUpdates domain function

* refact(server): Use dedicated HCPb-worker list func

* refact(server): Create ConnectionRoute domain function

* refact(handlers): Move worker selection logic to internal/server package

This commit moves all the logic to select a worker to handle a session
to the internal/server package. Most functions were moved to this
package with no changes, however, there are a couple of notable
exceptions:

- Given that we don't use GRPC errors in repos, all errors were adjusted
  to use the internal/errors package instead.
- StorageBucketFilterCredIdFn is now used to prevent the internal/server
  package from importing internal/storage/plugin, which would cause a
  dep cycle. Callers of SelectSessionWorkers must implement this func
  which is responsible for returning a storage bucket's worker filter as
  well as its associated credential id.
- authorizeSessionWithWorkerFilter now receives an
  internal/server.(*Repository) object when called. This is transparent
  to SelectSessionWorkers callers as it is handled internally.

* feat(server): Add FilteredWithFeatures fn and new server options

* refact(server): create new list and lookup worker queries

* test(server): Add WorkerList unit tests

* feat(server): Implement WorkerList randomness using crypto/rand pkg

* chore(db): add index to server_worker table

* refact(server): prefix test method with Test

* refact(server): rename Downstreamers interface to Graph

* chore(server): unexport and rename method

* chore: add doc string to WorkerAddress (#5420)

---------

Co-authored-by: Irena Rindos <irenarindos@users.noreply.github.com>
Co-authored-by: irenarindos <irena.rindos@gmail.com>
2025-01-08 15:18:03 +00:00
Hugo f227020b67 feat(scheduler): Use job table to select jobs to run
This commit changes the logic around selecting jobs to run. Before this,
Boundary used a view "job_jobs_to_run" which was a collation of all jobs
that were not running and scheduled to run. When jobs were requested to
run, Boundary would look at this view, grab a certain amount of jobs and
insert them into the "job_run" table. Importantly, while the amount of
jobs to be scheduled at once defaulted to 1 in the scheduler package,
this was entirely overriden in the controller package to -1 (no limit,
run all jobs that the query would return).

With this commit, Boundary now looks at the "job" table directly for
jobs to run, regardless of job run status. This was done to improve DB
performance as the view (which queried all "job_run" rows) was causing
significant DB contention.

Additionally, the option to limit job runs is now removed since it was
already hardcoded to -1 and not user-configurable anyways.

Should the need arise to implement this limit again, this will have to
be done in a different way since the new query does not account for
running jobs and limiting the rows returned after jobs are already
running would yield a no-op (the new query inserts nothing into
"job_run" if any given job is already running).
2024-11-06 16:15:49 +00:00
Hugo 27c432a748 feat(scheduler): Drop completed job runs as they complete
Before this change, upon the completion of a job run, the scheduler
would update a job_run entry with the completed status as well as the
number of objects affected by the run. Additionally, we then had a
cleaner job whose scope was deleting these completed entries from
job_run.

This commit changes this design to drop the cleaner job the and rolls
its functionality directly into the scheduler. Now, when any given job
run is complete, the scheduler will automatically delete it from the
job_run table itself.

In addition, the completed status has been removed as a valid status as
it is not set anymore.

This change follows a decision that given the data in these job_run
entries is already being deleted by the cleaner job, updating its state
when a job completes just to have it deleted is not efficient.
Additionally, no use-case for this data was surfaced.
2024-11-05 17:10:39 +00:00
Hugo d2cf26869c feat(plugins): Update MinIO Storage Plugin (#5145) 2024-10-01 15:36:17 +01:00
Hugo 6c70ca42b7 docs(CHANGELOG): Add changes related to AWS dynamic host catalogs (#5142) 2024-10-01 14:45:26 +01:00
Hugo 06f5f02cd4 chore(plugins): Update AWS plugin to v0.4.0 2024-09-30 21:24:18 +01:00
Hugo ec2d5d4285 feat(host/plugin): Support empty host catalog secrets 2024-09-30 21:24:18 +01:00
Hugo a5237cc171 feat(host/plugin): Use plugin client pkg func on job_set_sync 2024-09-30 21:24:18 +01:00
Hugo 5b5aa484da feat(host/plugin): Extract plugin client functionality to pkg func 2024-09-30 21:24:18 +01:00
Hugo ee9f9fb4a1 feat(worker): Support running AWS host plugin 2024-09-30 21:24:18 +01:00
Hugo 60dc0ec3ff feat(host/plugin): Always send plugin information on DHC requests 2024-09-30 21:24:18 +01:00
Hugo c3d03f69d8 feat(cmd): Support plugin host catalog worker filter 2024-09-30 21:24:18 +01:00
Hugo b8046a3ef3 feat(handlers/host_catalogs): Support plugin host catalog worker filter 2024-09-30 21:24:18 +01:00
Hugo 7449fd6f2a feat(host/plugin): Implement worker filter 2024-09-30 21:24:18 +01:00
Hugo 22b54c8b97 fix(event): Prevent eventer data races by removing shallow object copy (#5139)
This issue was surfaced through other changes (PR 5137).

Given that the eventer works in a singleton pattern (see sysEventer
global variable), performing this shallow object copy can cause a data
race because the copy operation reads the underlying eventer data
structures. At the same time, given the global nature of this eventer,
other goroutines can be writing to those same data structures.

Since we're already using a singleton pattern in this package, and given
that the current copy operation is shallow, copying the object doesn't
seem necessary, so this commit changes `StandardWriter` to build the
`logAdapter` with the `e` eventer directly instead of copying it.
2024-09-30 12:17:56 -07:00
Hugo 1c62470ba6 chore(cmd): Move FlagClientAgentPort and flagTargetDefaultPort to uint16 2024-08-21 13:55:58 +01:00
Hugo 3e3f2153c0 feat(cmd): New Uint16 flag type 2024-08-21 13:55:58 +01:00
Hugo bf9dbd818e chore(cmd): Remove IntVar and move to Int64Var 2024-08-21 13:55:58 +01:00
Hugo 3195dcba4e chore(cmd): Remove UintVar and move to Uint64Var 2024-08-21 13:55:58 +01:00
Hugo abb2d50494 fix(worker): Use 16-bit int parsing for TCP port 2024-08-21 13:55:58 +01:00
Hugo 6f370c1189 fix(api): Check MaxRetries integer bounds 2024-08-21 13:55:58 +01:00
Hugo 903039e885 fix(daemon): Return 404 if alias interceptor ResolveRequestIds fails (#5006) 2024-08-13 14:24:01 +01:00
Hugo aafdcd83f7 chore(plugins): Update Boundary AWS Plugin to v0.3.1 (#4927)
This updated version of the plugin removes AWS region verification.

Plugin release notes:
https://github.com/hashicorp/boundary-plugin-aws/releases/tag/v0.3.1
2024-07-15 17:25:47 +01:00
Hugo d788c9fd9d feat(plugins): Update MinIO plugin to v0.1.3 (#4887) 2024-06-10 17:39:30 +01: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
Hugo 0d71976437 feat(proto): Add RetainUntil and DeleteAfter timestamps on Session Recordings 2024-01-16 13:53:44 -08:00
Hugo 08e8d96514 feat(cmd): Policies 2024-01-16 13:53:44 -08:00
Hugo c9f1c53693 feat(api): Policies 2024-01-16 13:53:44 -08:00
Hugo edbb33de5b feat(handlers): Implement Policy Service
This also includes adding new grant and type primitives, as well as
package domain names.
2024-01-16 13:53:43 -08:00
Hugo 1c3b1b42f7 feat(proto): Create Policy SDK and API Service (#793) 2024-01-16 13:53:41 -08:00
Hugo e3971decf4 feat(policy): Create storage policies (#773) 2024-01-16 13:20:15 -08:00
Hugo cf71ae042c feat(github): Disable schema-diff for PRs in draft state (#4110) 2023-12-07 16:59:34 +00:00
Hugo b6debe93a5 chore: Bump Boundary version 2023-10-17 15:58:17 +01:00
Hugo 2afe33fb94 chore: Update CHANGELOG for v0.14.1 2023-10-17 15:58:17 +01:00
Hugo a6de891c53 chore: Bump gRPC to v1.58.3
gRPC v1.58.3 fixes a vulnerability in the HTTP stack where a malicious
HTTP/2 client which rapidly creates requests and immediately resets them
can cause excessive server resource consumption.

See https://github.com/grpc/grpc-go/pull/6708 for more details.
2023-10-17 15:58:17 +01:00
HugoandHugo 774832f23e chore: Bump to Go version 1.21.3 (#3820)
Go 1.21.3 fixes a vulnerability in the HTTP stack where a malicious
HTTP/2 client which rapidly creates requests and immediately resets them
can cause excessive server resource consumption.

More detail in https://groups.google.com/g/golang-announce/c/iNNxDTCjZvo

Co-authored-by: Hugo <hugoamvieira@users.noreply.github.com>
2023-10-12 17:17:25 +01:00