diff --git a/packages/teleport/src/Nodes/NodeAdd/ByScript.tsx b/packages/teleport/src/Nodes/NodeAdd/ByScript.tsx
index d03c825e2..857945e20 100644
--- a/packages/teleport/src/Nodes/NodeAdd/ByScript.tsx
+++ b/packages/teleport/src/Nodes/NodeAdd/ByScript.tsx
@@ -15,6 +15,7 @@
*/
import React from 'react';
+import moment from 'moment';
import { NodeAdd } from './NodeAdd';
import { useTheme } from 'styled-components';
import TextSelectCopy from 'teleport/components/TextSelectCopy';
@@ -22,7 +23,10 @@ import { Alert, Text, Indicator, Box, ButtonLink } from 'design';
export default function ByScript(props: Props) {
const monoFont = useTheme().fonts.mono;
- const { script, expires, getJoinToken, attempt, ...style } = props;
+ const { script, expiry, getJoinToken, attempt, ...style } = props;
+
+ const duration = moment(new Date()).diff(expiry);
+ const expiresText = moment.duration(duration).humanize();
if (attempt.status === 'processing') {
return (
@@ -39,11 +43,11 @@ export default function ByScript(props: Props) {
return (
<>
- Use the auto installer script to add a server to your cluster.
+ Use below script to add a server to your cluster.
- Script will be valid for{' '}
+ The script will be valid for{' '}
- {expires}.
+ {expiresText}.
@@ -58,7 +62,7 @@ type PropTypes = Parameters[0];
type Props = {
script: string;
- expires: string;
+ expiry: PropTypes['expiry'];
getJoinToken: PropTypes['createJoinToken'];
attempt: PropTypes['attempt'];
// handles styles
diff --git a/packages/teleport/src/Nodes/NodeAdd/NodeAdd.story.tsx b/packages/teleport/src/Nodes/NodeAdd/NodeAdd.story.tsx
index 5e2d42eca..1334edbb3 100644
--- a/packages/teleport/src/Nodes/NodeAdd/NodeAdd.story.tsx
+++ b/packages/teleport/src/Nodes/NodeAdd/NodeAdd.story.tsx
@@ -50,7 +50,7 @@ const sample = {
isEnterprise: true,
canCreateToken: true,
script: 'some bash script',
- expires: '4h0m0s',
+ expiry: new Date('3000-10-14'),
attempt: {
status: 'success',
statusText: '',
diff --git a/packages/teleport/src/Nodes/NodeAdd/NodeAdd.tsx b/packages/teleport/src/Nodes/NodeAdd/NodeAdd.tsx
index 73d70593c..66a013ce8 100644
--- a/packages/teleport/src/Nodes/NodeAdd/NodeAdd.tsx
+++ b/packages/teleport/src/Nodes/NodeAdd/NodeAdd.tsx
@@ -34,7 +34,7 @@ export function NodeAdd(props: ReturnType) {
onClose,
createJoinToken,
script,
- expires,
+ expiry,
attempt,
} = props;
@@ -46,7 +46,7 @@ export function NodeAdd(props: ReturnType) {
isEnterprise={isEnterprise}
onClose={onClose}
script={script}
- expires={expires}
+ expiry={expiry}
createJoinToken={createJoinToken}
attempt={attempt}
/>
diff --git a/packages/teleport/src/Nodes/NodeAdd/NodeAddEnterprise.tsx b/packages/teleport/src/Nodes/NodeAdd/NodeAddEnterprise.tsx
index d5ba1ca4e..c009bba59 100644
--- a/packages/teleport/src/Nodes/NodeAdd/NodeAddEnterprise.tsx
+++ b/packages/teleport/src/Nodes/NodeAdd/NodeAddEnterprise.tsx
@@ -31,7 +31,7 @@ import NodeAddDefault from './NodeAddOSS';
export default function NodeAddEnterprise({
onClose,
script,
- expires,
+ expiry,
createJoinToken,
canCreateToken,
version,
@@ -87,7 +87,7 @@ export default function NodeAddEnterprise({
{activeTab.title === 'Automatically' ? (
- Use the auto installer script to add a server to your cluster.
+ Use below script to add a server to your cluster.
- Script will be valid for
+ The script will be valid for
- 4h0m0s
+ 980 years
.
diff --git a/packages/teleport/src/Nodes/NodeAdd/useNodeAdd.ts b/packages/teleport/src/Nodes/NodeAdd/useNodeAdd.ts
index 9822cbae2..e0ac2815b 100644
--- a/packages/teleport/src/Nodes/NodeAdd/useNodeAdd.ts
+++ b/packages/teleport/src/Nodes/NodeAdd/useNodeAdd.ts
@@ -26,7 +26,7 @@ export default function useNodeAdd(ctx: TeleportContext, onClose: () => void) {
const isEnterprise = cfg.isEnterprise;
const [script, setScript] = useState('');
- const [expires, setExpires] = useState('');
+ const [expiry, setExpiry] = useState(null);
useEffect(() => {
if (isEnterprise && canCreateToken) {
@@ -36,7 +36,7 @@ export default function useNodeAdd(ctx: TeleportContext, onClose: () => void) {
function createJoinToken() {
return ctx.nodeService.createNodeJoinToken().then(token => {
- setExpires(token.expires);
+ setExpiry(token.expiry);
setScript(
`sudo bash -c "$(curl -sSL ${cfg.getNodeJoinScriptUrl(token.id)})"`
);
@@ -50,7 +50,7 @@ export default function useNodeAdd(ctx: TeleportContext, onClose: () => void) {
onClose,
createJoinToken,
script,
- expires,
+ expiry,
attempt,
};
}
diff --git a/packages/teleport/src/services/nodes/makeNodeJoinToken.ts b/packages/teleport/src/services/nodes/makeNodeJoinToken.ts
index a931ceb28..9973b1553 100644
--- a/packages/teleport/src/services/nodes/makeNodeJoinToken.ts
+++ b/packages/teleport/src/services/nodes/makeNodeJoinToken.ts
@@ -18,10 +18,10 @@ import { at } from 'lodash';
import { NodeJoinToken } from './types';
export default function makeToken(json): NodeJoinToken {
- const [id, expires] = at(json, ['id', 'expires']);
+ const [id, expiry] = at(json, ['id', 'expiry']);
return {
id,
- expires,
+ expiry: new Date(expiry),
};
}
diff --git a/packages/teleport/src/services/nodes/types.ts b/packages/teleport/src/services/nodes/types.ts
index 80fe5783b..445c99393 100644
--- a/packages/teleport/src/services/nodes/types.ts
+++ b/packages/teleport/src/services/nodes/types.ts
@@ -30,5 +30,5 @@ export interface Node {
export interface NodeJoinToken {
id: string;
- expires: string;
+ expiry: Date;
}