* chore: 🤖 remove packageManager field from package.json
* chore: 🤖 migrate yarn resolutions to pnpm overrides
* chore: 🤖 generate pnpm-lock.yml by using: pnpm import yarn.lock
* chore: 🤖 remove yarn.lock file
* chore: 🤖 migrate workspace configuration
* chore: 🤖 remove .yarn and .yarnrc.yml config
* chore: 🤖 update .copyright.hcl to ignore root pnpm files
* chore: 🤖 migrate husky pre-commit hook from yarn to pnpm
* chore: 🤖 migrate package.json scripts from yarn to pnpm
* chore: 🤖 update rose package.json & build to use explicit deps
* chore: 🤖 remove unused cp metadata.json command in pjson script
The cp metadata.json to dist was added in:
d19a251
The addons/rose/metadata.json no longer exists so it can't be copied
* chore: 🤖 migrate electron-app package.json scripts to pnpm
* chore: 🤖 create pnpm workspace for electron-app w/ hoisted deps
* chore: 🤖 migrate electron-app yarn lockfile to pnpm lockfile
Used "pnpm import yarn.lock"
* chore: 🤖 migrate electron-app overrides
node-gyp isn't needed since the fork is used via @electron/node-gyp
see: https://github.com/electron/node-gyp?tab=readme-ov-file#node-gyp---nodejs-native-addon-build-tool
* chore: 🤖 add trusted deps to be built to onlyBuiltDependencies
This is a pnpm feature that increases security. By defining these
dependencies they are being trusted to allow install hooks,
including postinstall. See:
https://pnpm.io/settings#onlybuiltdependencies
* chore: 🤖 add electron-app pnpm files to copyright header ignore
* chore: 🤖 remove yarn references from .*ignore files
* chore: 🤖 migrate --yarn to --pnpm for ember-cli-update.json
This isn't clearly documented but something that is supported
and can be found in other ember apps:
https://github.com/search?q=--pnpm+ember-cli-update.json&type=code
* chore: 🤖 migrate ci and related scripts to use pnpm
The cache is migrated to use the cache supported by
actions/setup-node@v4, an action we are already using. This is the
recommended way by pnpm:
https://pnpm.io/continuous-integration#github-actions
This commit also ensures that all github actions are using
consistent versions of actions/setup-node and pnpm/action-setup
* docs: ✏️ update documentation to use pnpm instead of yarn
* chore: 🤖 use explicit asciinema-player dependency
Because we override styles on asciinema-player we depend on their
styles. What might be a minor non-breaking change in their version could
(and did) break our style expectations in our overrides.
* chore: 🤖 run pnpm install and commit lockfile changes
* chore: 🤖 Remove ember-inflector from being overidden
https://github.com/hashicorp/boundary-ui/pull/2828#discussion_r2110380711
* chore: 🤖 remove highlight.js from pnpm overrides
https://github.com/hashicorp/boundary-ui/pull/2828#discussion_r2109847938
* chore: 🤖 remove additional unnecessary files from ignore files
* docs: ✏️ fix pnpm doc links
* chore: 🤖 use corepack to specify packageManager in package.json
* chore: 🤖 let pnpm action in ci use packageManager for version
https://github.com/pnpm/action-setup?tab=readme-ov-file#version
* docs: ✏️ fix broken pnpm website links
110 lines
3.7 KiB
Markdown
110 lines
3.7 KiB
Markdown
# Admin UI
|
|
|
|
The Admin UI for Boundary.
|
|
|
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
|
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
|
|
|
|
- [Prerequisites](#prerequisites)
|
|
- [Installation](#installation)
|
|
- [Pnpm Commands](#pnpm-commands)
|
|
- [Running / Development](#running--development)
|
|
- [Building for Production](#building-for-production)
|
|
- [Environment Variables](#environment-variables)
|
|
- [Running Tests](#running-tests)
|
|
- [Deploying](#deploying)
|
|
- [Further Reading / Useful Links](#further-reading--useful-links)
|
|
|
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
|
|
|
## Prerequisites
|
|
|
|
You will need the following things properly installed on your computer.
|
|
|
|
* [Git](https://git-scm.com/)
|
|
* [Node.js](https://nodejs.org/)
|
|
* [Pnpm](https://pnpm.io/)
|
|
* [Ember CLI](https://ember-cli.com/)
|
|
* [Google Chrome](https://google.com/chrome/)
|
|
* [Firefox](https://www.mozilla.org/firefox)
|
|
|
|
## Installation
|
|
|
|
See monorepo README for installation instructions.
|
|
|
|
## Pnpm Commands
|
|
|
|
List of available project commands. `pnpm run <command-name>`
|
|
|
|
| Command | Description |
|
|
| ------- | ----------- |
|
|
| build:development | Builds the Admin UI in development mode. |
|
|
| build | Builds the Admin UI for production. |
|
|
| lint | Runs all lint commands. |
|
|
| lint:hbs | Lints `hbs` template files. |
|
|
| lint:js | Lints `js` files. |
|
|
| lint:sass | Lints `scss` files. |
|
|
| format | Runs all auto-formatters. |
|
|
| format:js | Auto-formats `js` files using Prettier. |
|
|
| format:sass | Auto-formats `scss` files using Prettier. |
|
|
| start | Runs the dummy app local server. |
|
|
| test | Runs all tests in random order, with coverage reporting. |
|
|
| doc:toc | Automatically generates a table of contents for this README file. |
|
|
|
|
## Running / Development
|
|
|
|
- `ember serve`
|
|
- Visit your app at [http://localhost:4200](http://localhost:4200).
|
|
- Visit your tests at [http://localhost:4200/tests](http://localhost:4200/tests).
|
|
|
|
### Building for Production
|
|
|
|
Before executing a build, be sure to set any environment variables necessary
|
|
for your target environment (see next section). To build this UI for
|
|
production, run the following commads from this folder:
|
|
|
|
```bash
|
|
pnpm install
|
|
pnpm build
|
|
```
|
|
|
|
The static production assets are saved into the `dist/` folder.
|
|
|
|
#### Environment Variables
|
|
|
|
These environment variables may be used to customized the build.
|
|
|
|
| Variable | Default Value | Description |
|
|
| -------- | ------------- | ----------- |
|
|
| `APP_NAME` | Application Name | The user-facing name of the application, appearing in titles, etc. |
|
|
| `API_HOST` | | The host of the API, if different than UI (e.g. https://example.net:1234). |
|
|
|
|
### Running Tests
|
|
|
|
* `npm test` runs full tests in random order with coverage
|
|
* `ember test --server`
|
|
|
|
Keep in mind that tests are executed in random order. This is intentional
|
|
and helps to prevent hard-to-debug order dependencies among tests.
|
|
|
|
Please also note that we report test coverage. We strive for "the right amount
|
|
of testing". Use test coverage as a guide to help you identify untested
|
|
high-value code.
|
|
|
|
We rely on `ember-a11y-testing` to validate accessibility in acceptance tests.
|
|
If you write acceptance tests, please ensure at least one validation per
|
|
route using `await a11yAudit();`.
|
|
|
|
### Deploying
|
|
|
|
Specify what it takes to deploy your app.
|
|
|
|
## Further Reading / Useful Links
|
|
|
|
- [ember.js](https://emberjs.com/)
|
|
- [ember-cli](https://cli.emberjs.com/release/)
|
|
- Development Browser Extensions
|
|
- [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
|
|
- [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
|