// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; import { Dialog, DialogActions, DialogTitle, DialogContent, WithStyles, withStyles, StyleRulesCallback, Button, Typography, Paper } from '@material-ui/core'; import { ArvadosTheme } from '../../common/custom-theme'; type CssRules = 'link' | 'paper' | 'button'; const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({ link: { color: theme.palette.primary.main, textDecoration: 'none', margin: '0px 4px' }, paper: { padding: theme.spacing.unit, marginBottom: theme.spacing.unit * 2, backgroundColor: theme.palette.grey["200"], border: `1px solid ${theme.palette.grey["300"]}` }, button: { fontSize: '0.8125rem', fontWeight: 600 } }); interface CurrentTokenDataProps { currentToken?: string; open: boolean; } interface CurrentTokenActionProps { handleClose: () => void; } type CurrentTokenProps = CurrentTokenDataProps & CurrentTokenActionProps & WithStyles<CssRules>; export const CurrentTokenDialog = withStyles(styles)( class extends React.Component<CurrentTokenProps> { render() { const { classes, open, handleClose, currentToken } = this.props; return ( <Dialog open={open} onClose={handleClose} fullWidth={true} maxWidth='md'> <DialogTitle>Current Token</DialogTitle> <DialogContent> <Typography variant='body1' paragraph={true}> The Arvados API token is a secret key that enables the Arvados SDKs to access Arvados with the proper permissions. <Typography component='p'> For more information see <a href='http://doc.arvados.org/user/reference/api-tokens.html' target='blank' className={classes.link}> Getting an API token. </a> </Typography> </Typography> <Typography variant='body1' paragraph={true}> Paste the following lines at a shell prompt to set up the necessary environment for Arvados SDKs to authenticate to your klingenc account. </Typography> <Paper className={classes.paper} elevation={0}> <Typography variant='body1'> HISTIGNORE=$HISTIGNORE:'export ARVADOS_API_TOKEN=*' </Typography> <Typography variant='body1'> export ARVADOS_API_TOKEN={currentToken} </Typography> <Typography variant='body1'> export ARVADOS_API_HOST=api.ardev.roche.com </Typography> <Typography variant='body1'> unset ARVADOS_API_HOST_INSECURE </Typography> </Paper> <Typography variant='body1'> Arvados <a href='http://doc.arvados.org/user/reference/api-tokens.html' target='blank' className={classes.link}>virtual machines</a> do this for you automatically. This setup is needed only when you use the API remotely (e.g., from your own workstation). </Typography> </DialogContent> <DialogActions> <Button onClick={handleClose} className={classes.button} color="primary">CLOSE</Button> </DialogActions> </Dialog> ); } } );