The previous PR only initialized plugins if they were required, which
meant that there may not actually be a plugin manager running because a
second node would not actually create the dev database, which is where
the plugin was being added. The assumption that a plugin manager is
running is still a fine one at the moment, but we just need to make sure
it's running in _all_ cases.
The embed package always uses Unix-style forward slashes. filepath.Join
utilization looking for files would cause the slashes to be the wrong
direction on Windows and result in the files not being found.
This updates the API generation code to allow the same option names to
be used in subtype-scoped options. This means if we have attribute
structs with the same fields, they won't overwrite each other, but will
instead create attribute-specific options.
Trying to run the docker image built with `make docker-build-dev` would
result in an error at startup:
standard_init_linux.go:228: exec user process caused: no such file or directory
This was due to the dev docker image lacking `dumb-init` which is used
by `docker-entrypoint.sh`.
This commit updates the dev dockerfile to add dumb-init. It also adds
additional packages so that the dev image aligns with the release image.
* Add plugin-based host entry to CHANGELOG.md
* Amend to de-emphasize domain language
This should hopefully make it more obvious that the plugin system is
currently internal and one cannot yet write 3rd party plugins for
Boundary.
Currently host does not use a version, which means it's not protected
against race conditions of either itself or its value objects. This adds
and plumbs through version to ensure that if a host or its value objects
change that they are not going to be affected by a race condition.
* Update sync interval seconds field.
* If the sync interval was updated, schedule the next sync job wakeup immediately.
* Calculate the next sync time for the scheduler should wake up if we only updated the sync interval.