* fix: 🐛 add model hook to host route for dynamic host catalogs (#1659) * fix: 🐛 add model hook to host route for dynamic host catalogs ✅ Closes: ICU-8594 * refactor: 💡 remove page formatting for host route * [COMPLIANCE] Add Copyright and License Headers (#1660) Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com> Co-authored-by: Carlos Alcaide Corvo <ccorvo@hashicorp.com> * chore(deps-dev): bump webpack from 5.59.1 to 5.76.0 (#1654) Bumps [webpack](https://github.com/webpack/webpack) from 5.59.1 to 5.76.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.59.1...v5.76.0) --- updated-dependencies: - dependency-name: webpack dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Randall Morey <randall@randallmorey.com> Co-authored-by: Carlos Alcaide Corvo <ccorvo@hashicorp.com> * Feature metadata (#1661) * feat: 🎸 load edition from controller-metadata.json * refactor: 💡 rename edition and add licensed features support * chore: 🤖 support dev toggling of licensed features * chore: 🤖 rename ent edition * Update ui/admin/app/services/feature-edition.js * Update ui/admin/app/instance-initializers/feature-edition.js Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com> * chore: 🤖 cleanup * chore: 🤖 feature edition disabled in tests / fix test cases * test: 💍 remove feature disable calls in tests * test: 💍 fix broken tests * fix: 🐛 fix config bug * fix: 🐛 fix broken test due to feature flags --------- Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com> * fix: 🐛 Fix missing translation (#1662) Fix missing translation on the toggle color theme selector * Resolutions audit: Delete 3 oldest resolutions (#1663) * Delete bl from resolutions * Delete tough-cookie from resolutions * Delete npm from resolutions * chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 (#1665) Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1. - [Release notes](https://github.com/kornelski/http-cache-semantics/releases) - [Commits](https://github.com/kornelski/http-cache-semantics/compare/v4.1.0...v4.1.1) --- updated-dependencies: - dependency-name: http-cache-semantics dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: 🤖 Update electron-forge/* packages (#1666) Update electron-forge/* packages * feat: 🎸 Add support to display external name for dynamic hosts (#1664) * feat: 🎸 Add support to display external name for dynamic hosts ✅ Closes: ICU-8795 * test(admin/e2e): Add create target with address test (#1667) * chore: 🤖 update design system package (#1668) * test(admin/e2e): Define expected private key for vault credential store test (#1671) * test: 💍 (admin-e2e): Add test to create different credentials (#1670) * chore: 🤖 add json5 to resolutions per dependabot alerts (#1672) * chore: 🤖 add json5 to resolutions per dependabot alerts * fix: 🐛 remove unecessary resolutions * chore: 🤖 upgrade @storybook/ember-cli-storybook to 0.6.0 (#1669) * chore: 🤖 update @storybook/ember-cli-storybook to 0.6.0 ✅ Closes: ICU-6588 * chore: 🤖 remove css-what from resolutions * refactor: 💡 update selector for delete storage bucket test * chore: 🤖 fix yarn.lock --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: lisbet-alvarez <107949262+lisbet-alvarez@users.noreply.github.com> Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com> Co-authored-by: Carlos Alcaide Corvo <ccorvo@hashicorp.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Randall Morey <randall@randallmorey.com> Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com> Co-authored-by: github-team-secure-boundary <hc-github-team-secure-boundary@hashicorp.com> Co-authored-by: hc-github-team-secure-boundary <82989682+hc-github-team-secure-boundary@users.noreply.github.com> Co-authored-by: Stan Ryzhov <60649800+stasryzhov@users.noreply.github.com> Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
Boundary UI Monorepo
This monorepo contains multiple projects, including UIs and addons, used by Boundary.
This top-level repository provides limited common tasks, such as installation and commit assistance. However, most tasks must be executed from within a subproject, e.g. running or testing.
Table of Contents generated with DocToc
Prerequisites
You will need the following things properly installed on your computer.
- Git
- Node.js
- Supported versions:
v12,v14andv16. - Apple Silicon Users: if you experience problems building or running Boundary UIs, try Node v14.
- Supported versions:
- Yarn installed globally
- Google Chrome
- Firefox
Installation
git clone <repository-url>this repositorycd boundary-uiyarn install
Yarn Commands
List of available project commands. yarn run <command-name>
| Command | Description |
|---|---|
| build | Builds Admin UI. |
| test | Runs tests in CI mode. |
| lint | Runs ember-template-lint on all of the hbs, js, and sass files. |
| compliance:audit | Checks for issues using yarn audit with moderate and above criticality. |
| compliance:licenses | Checks that all dependencies have OSS-compatible licenses. |
| doc:toc | Automatically generates a table of contents for the README file. |
Contributing
Branching
We follow GitHub Flow.
Building ToC
To autogenerate a ToC (table of contents) for this README,
run yarn doc:toc. Please update the ToC whenever editing the structure
of README.
Building Admin UI for Production
See ui/admin/README.md Building for Production for more information on how to build the Admin UI. Be sure to set build-related environment variables as necessary for your target environment, as described in the Admin UI readme.
To quickly produce a production build of Admin UI, run from this folder:
yarn install
yarn build
Assets are saved to ui/admin/dist/.
Building with a Container
Optionally, you may build the UI within a container. Execute the following command:
docker-compose -f docker-compose-embedding.yml run build
Assets are saved to ui/admin/dist/.
Building Desktop UI for Production
See ui/desktop/README.md Building for Production for more information on how to build the Desktop UI. Be sure to set build-related environment variables as necessary for your target environment, as described in the Desktop UI readme.
To quickly produce a production build of Desktop UI, run from this folder:
yarn install
yarn build:ui:desktop
In windows, UI is generated using docker to provide a stable UI across platforms.
yarn install
docker-compose -f docker-compose-embedding.yml run build-desktop-production
yarn build:ui:desktop:app
To provide a signing identify for macOS build, use BOUNDARY_DESKTOP_SIGNING_IDENTITY
environment variable to set signing certificate name (e.g Developer ID Application: * (*)) when building desktop app using yarn build:ui:desktop:app.
Assets are saved to ui/desktop/electron-app/out/make/.
DMG packaged desktop UI is available at asset location as boundary.dmg.
EXE archived desktop UI is available at asset location under zip folder.
Connect Boundary UI to Boundary local instance
This describes how to connect local Boundary UI to your local instance of Boundary.
This assumes you already have up and running a Boundary dev instance in your local environment with a listener 127.0.0.1:9200 (default behaviour). Learn how to start a local Boundary dev instance.
For admin
This assumes you are within boundary-ui/ui/admin.
You will need to turn off mirage, tell the UI where to find Boundary and run it: $ ENABLE_MIRAGE=false API_HOST=http://localhost:9200 yarn start.
Following terminal instructions, open in your browser: http://localhost:4200/.
Once you open the UI you will see the login screen, authenticate using generated admin login name and password.
For desktop
This assumes you are within boundary-ui/ui/desktop.
You will need to turn off mirage and run it: $ ENABLE_MIRAGE=false yarn start:desktop.
In login screen, authenticate using generated admin login name and password.
Enter the cluster URL of your Boundary dev instance, by default is: http://localhost:9200.
Committing
We use husky and lint-staged to ensure linting and other checks pass before a
commit is completed. Simply do a yarn install to make sure the hooks are installed.
Use a normal git commit to go through the checks, if you need to skip these checks,
use git commit --no-verify to bypass them. However, a consistent commit message will
still be enforced even if you use --no-verify.
License Checking
The licenses of dependencies are checking against an allowlist before every
commit. This helps catch undesirable licenses sooner (e.g. GPL). If your
commit fails due to a non-allowlisted license, you may add it to the allowlist
in package.json as long as it is not a GPL variant or UNLICENSED.
The change will be verified upon PR. GPL variants and UNLICENSED dependencies
will not be accepted.
