diff --git a/.github/workflows/ui-release-trigger.yml b/.github/workflows/ui-release-trigger.yml
index 0181ed3ac..62c2d3616 100644
--- a/.github/workflows/ui-release-trigger.yml
+++ b/.github/workflows/ui-release-trigger.yml
@@ -14,7 +14,9 @@ jobs:
- name: Trigger Release job
env:
TAG: ${{ github.event.release.tag_name }}
+ TEST_REF: ${{ github.ref }}
run: |
+ echo "($TAG), ($TEST_REF)"
curl -u ${{ secrets.CIRCLE_TOKEN }}: -X POST --header "Content-Type: application/json" \
- -d '{ "branch": "main", "parameters": {"TAG": "${TAG}" }}' \
+ -d '{ "branch": "main", "parameters": {"TAG": "'${TAG}'" }}' \
https://circleci.com/api/v2/project/github/hashicorp/boundary-ui-releases/pipeline
diff --git a/README.md b/README.md
index af9ca0b99..71733826a 100644
--- a/README.md
+++ b/README.md
@@ -120,7 +120,7 @@ To provide a signing identify for macOS build, use `BOUNDARY_DESKTOP_SIGNING_IDE
environment variable to set signing certificate name (e.g Developer ID Application: * (*)).
Assets are saved to `ui/desktop/electron-app/out/make/`.
-DMG packaged desktop UI is available at asset location as `Boundary Desktop.dmg`.
+DMG packaged desktop UI is available at asset location as `boundary.dmg`.
### Committing
diff --git a/ui/admin/app/routes/application.js b/ui/admin/app/routes/application.js
index a4d4cc6ef..be7f8b034 100644
--- a/ui/admin/app/routes/application.js
+++ b/ui/admin/app/routes/application.js
@@ -1,20 +1,14 @@
import Route from '@ember/routing/route';
-/* eslint-disable-next-line ember/no-mixins */
-import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin';
-import Ember from 'ember';
import { getOwner } from '@ember/application';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
-import { later } from '@ember/runloop';
import loading from 'ember-loading/decorator';
import { A } from '@ember/array';
/**
* Entry route for the application.
*/
-export default class ApplicationRoute extends Route.extend(
- ApplicationRouteMixin
-) {
+export default class ApplicationRoute extends Route {
// =services
@service session;
@@ -31,34 +25,6 @@ export default class ApplicationRoute extends Route.extend(
this.toggleTheme(theme);
}
- /**
- * After becoming authenticated, does nothing. This overrides the default
- * behavior of the ApplicationRouteMixin, which is to redirect after auth.
- * We'll handle this redirect manually in sub routes.
- * @override
- */
- sessionAuthenticated() {
- // no op
- }
-
- /**
- * When the session ends, redirect to authenticate and reload the page to
- * purge any in-memory state.
- */
- async sessionInvalidated() {
- // Catch error in this transition, since it will be aborted by the
- // scope auth route when it redirects to the first auth method.
- await this.transitionTo(this.routeIfUnauthenticated).catch(() => {});
- // The Ember way of accessing globals...
- const document = getOwner(this).lookup('service:-document').documentElement;
- // defaultView === window, but without using globals directly
- const { location } = document.parentNode.defaultView;
- // Wait a beat, then reload the page...
- // This is mostly to give the deauth request a chance to fire.
- /* istanbul ignore if */
- if (!Ember.testing) later(location, location.reload, 150);
- }
-
// =actions
/**
diff --git a/ui/admin/tests/acceptance/authentication-test.js b/ui/admin/tests/acceptance/authentication-test.js
index 872d99d83..502e684af 100644
--- a/ui/admin/tests/acceptance/authentication-test.js
+++ b/ui/admin/tests/acceptance/authentication-test.js
@@ -5,7 +5,7 @@ import {
fillIn,
click,
find,
- findAll,
+ //findAll,
getRootElement,
//setupOnerror,
} from '@ember/test-helpers';
@@ -282,23 +282,26 @@ module('Acceptance | authentication', function (hooks) {
assert.ok(currentSession().isAuthenticated);
});
- test('deauthentication redirects to first global authenticate method', async function (assert) {
- assert.expect(3);
- await visit(authMethodAuthenticateURL);
- await fillIn('[name="identification"]', 'test');
- await fillIn('[name="password"]', 'test');
- await click('[type="submit"]');
- assert.ok(currentSession().isAuthenticated);
- // Open header utilities dropdown
- await click('.rose-header-utilities .rose-dropdown summary');
- // Find and click on last element in dropdown - should be deauthenticate button
- const menu = findAll(
- '.rose-header-utilities .rose-dropdown .rose-dropdown-content button'
- );
- await click(menu[menu.length - 1]);
- assert.notOk(currentSession().isAuthenticated);
- assert.equal(currentURL(), authMethodGlobalAuthenticateURL);
- });
+ // This test is disabled because it is no longer relevant. On deauth,
+ // the page is reloaded. If the user was viewing a route requiring
+ // authentication, they will be redirected accordingly.
+ // test('deauthentication redirects to first global authenticate method', async function (assert) {
+ // assert.expect(3);
+ // await visit(authMethodAuthenticateURL);
+ // await fillIn('[name="identification"]', 'test');
+ // await fillIn('[name="password"]', 'test');
+ // await click('[type="submit"]');
+ // assert.ok(currentSession().isAuthenticated);
+ // // Open header utilities dropdown
+ // await click('.rose-header-utilities .rose-dropdown summary');
+ // // Find and click on last element in dropdown - should be deauthenticate button
+ // const menu = findAll(
+ // '.rose-header-utilities .rose-dropdown .rose-dropdown-content button'
+ // );
+ // await click(menu[menu.length - 1]);
+ // assert.notOk(currentSession().isAuthenticated);
+ // assert.equal(currentURL(), authMethodGlobalAuthenticateURL);
+ // });
test('401 responses result in deauthentication', async function (assert) {
assert.expect(2);
diff --git a/ui/desktop/CHANGELOG.md b/ui/desktop/CHANGELOG.md
index 6491ca19a..e34a1edd7 100644
--- a/ui/desktop/CHANGELOG.md
+++ b/ui/desktop/CHANGELOG.md
@@ -11,6 +11,7 @@ Canonical reference for changes, improvements, and bugfixes for Boundary Desktop
### Changes/Deprecations
+- Boundary Desktop is now simply "Boundary". This change affects macOS asset filenames, as well as the title used within the application. Documentation will continue to refer to "Boundary Desktop" to avoid confusion with the core binary. ([PR](https://github.com/hashicorp/boundary-ui/pull/481))
- Boundary origin validation now occurs via Electron's built-in net request module, ensuring the validation request is made via chromium's networking library rather than Node's. ([PR](https://github.com/hashicorp/boundary-ui/pull/480))
## v1.0.0-alpha (2021.02.16)
diff --git a/ui/desktop/app/routes/application.js b/ui/desktop/app/routes/application.js
index be807e246..27493eb33 100644
--- a/ui/desktop/app/routes/application.js
+++ b/ui/desktop/app/routes/application.js
@@ -1,18 +1,12 @@
import Route from '@ember/routing/route';
-import Ember from 'ember';
import jQuery from 'jquery';
-/* eslint-disable-next-line ember/no-mixins */
-import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
import { A } from '@ember/array';
import { getOwner } from '@ember/application';
-import { later } from '@ember/runloop';
import loading from 'ember-loading/decorator';
-export default class ApplicationRoute extends Route.extend(
- ApplicationRouteMixin
-) {
+export default class ApplicationRoute extends Route {
// =services
@service session;
@@ -49,34 +43,6 @@ export default class ApplicationRoute extends Route.extend(
});
}
- /**
- * After becoming authenticated, does nothing. This overrides the default
- * behavior of the ApplicationRouteMixin, which is to redirect after auth.
- * We'll handle this redirect manually in sub routes.
- * @override
- */
- sessionAuthenticated() {
- // no op
- }
-
- /**
- * When the session ends, redirect to authenticate and reload the page to
- * purge any in-memory state.
- */
- async sessionInvalidated() {
- // Catch error in this transition, since it will be aborted by the
- // scope auth route when it redirects to the first auth method.
- await this.transitionTo(this.routeIfUnauthenticated).catch(() => {});
- // The Ember way of accessing globals...
- const document = getOwner(this).lookup('service:-document').documentElement;
- // defaultView === window, but without using globals directly
- const { location } = document.parentNode.defaultView;
- // Wait a beat, then reload the page...
- // This is mostly to give the deauth request a chance to fire.
- /* istanbul ignore if */
- if (!Ember.testing) later(location, location.reload, 150);
- }
-
// =actions
/**
diff --git a/ui/desktop/electron-app/config/cli.js b/ui/desktop/electron-app/config/cli.js
index 2e6858008..b3a24e434 100644
--- a/ui/desktop/electron-app/config/cli.js
+++ b/ui/desktop/electron-app/config/cli.js
@@ -10,7 +10,7 @@ const artifactDestination = path.resolve(__dirname, '..', 'cli');
const downloadArtifact = version => {
const url = `https://releases.hashicorp.com/boundary/${version}/boundary_${version}_darwin_amd64.zip`;
return new Promise((resolve, reject) => {
- const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'boundary-desktop-artifact-'))
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'boundary-artifact-'))
console.log('Create tmp artifact directory: ', tmpDir);
const artifactFileName = url.split('/').pop();
diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js
index 5eb335012..092522ce1 100644
--- a/ui/desktop/electron-app/config/forge.config.js
+++ b/ui/desktop/electron-app/config/forge.config.js
@@ -25,7 +25,7 @@ module.exports = {
"/ember-test(/|$)",
"/tests(/|$)"
],
- name: "Boundary Desktop",
+ name: "Boundary",
appBundleId: "com.electron.boundary",
// TODO: where should the client version number come from?
appVersion: `${formattedAppVersion}${formattedCLIVersion}\n`,
@@ -44,7 +44,7 @@ module.exports = {
name: "@electron-forge/maker-dmg",
config: {
title: "Boundary",
- name: "boundary-desktop",
+ name: "boundary",
icon: "./config/macos/disk.icns",
background: "./config/macos/background.png"
}
diff --git a/ui/desktop/electron-app/package.json b/ui/desktop/electron-app/package.json
index 931719eb8..58952f380 100644
--- a/ui/desktop/electron-app/package.json
+++ b/ui/desktop/electron-app/package.json
@@ -1,6 +1,6 @@
{
"name": "desktop",
- "productName": "Boundary Desktop",
+ "productName": "Boundary",
"version": "0.0.0",
"private": true,
"description": "Electron UI for client for Boundary.",
diff --git a/ui/desktop/electron-app/src/menu.js b/ui/desktop/electron-app/src/menu.js
index 8e37595bc..1047bb8a6 100644
--- a/ui/desktop/electron-app/src/menu.js
+++ b/ui/desktop/electron-app/src/menu.js
@@ -4,7 +4,7 @@ const generateMenuTemplate = () => {
return [
// { role: 'appMenu' }
{
- label: 'Boundary Desktop',
+ label: 'Boundary',
submenu: [
{ role: 'about' },
{ type: 'separator' },
@@ -86,4 +86,4 @@ const generateMenuTemplate = () => {
module.exports = {
generateMenuTemplate: generateMenuTemplate
-};
\ No newline at end of file
+};
diff --git a/ui/desktop/public/brand-background.svg b/ui/desktop/public/brand-background.svg
index 050bb59e7..1896291af 100644
--- a/ui/desktop/public/brand-background.svg
+++ b/ui/desktop/public/brand-background.svg
@@ -9,64 +9,64 @@
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+