mirror of
https://github.com/openziti/zrok.git
synced 2025-06-24 03:31:57 +02:00
frontendToken; frontend description (#834)
This commit is contained in:
parent
5228e25fb7
commit
e95e5c3fe8
@ -138,6 +138,14 @@ func (cmd *accessPrivateCommand) accessLocal(args []string, root env_core.Root)
|
|||||||
bindAddress = autoAddress
|
bindAddress = autoAddress
|
||||||
}
|
}
|
||||||
|
|
||||||
|
upReq := share.NewUpdateAccessParams()
|
||||||
|
upReq.Body.FrontendToken = accessResp.Payload.FrontendToken
|
||||||
|
upReq.Body.Description = bindAddress
|
||||||
|
_, err = zrok.Share.UpdateAccess(upReq, auth)
|
||||||
|
if err != nil {
|
||||||
|
cmd.error(err)
|
||||||
|
}
|
||||||
|
|
||||||
protocol := "http://"
|
protocol := "http://"
|
||||||
switch accessResp.Payload.BackendMode {
|
switch accessResp.Payload.BackendMode {
|
||||||
case "tcpTunnel":
|
case "tcpTunnel":
|
||||||
|
@ -46,11 +46,14 @@ func (h *getFrontendDetailHandler) Handle(params metadata.GetFrontendDetailParam
|
|||||||
return metadata.NewGetFrontendDetailNotFound()
|
return metadata.NewGetFrontendDetailNotFound()
|
||||||
}
|
}
|
||||||
payload := &rest_model_zrok.Frontend{
|
payload := &rest_model_zrok.Frontend{
|
||||||
ID: int64(fe.Id),
|
ID: int64(fe.Id),
|
||||||
FeToken: fe.Token,
|
FrontendToken: fe.Token,
|
||||||
ZID: fe.ZId,
|
ZID: fe.ZId,
|
||||||
CreatedAt: fe.CreatedAt.UnixMilli(),
|
CreatedAt: fe.CreatedAt.UnixMilli(),
|
||||||
UpdatedAt: fe.UpdatedAt.UnixMilli(),
|
UpdatedAt: fe.UpdatedAt.UnixMilli(),
|
||||||
|
}
|
||||||
|
if fe.Description != nil {
|
||||||
|
payload.Description = *fe.Description
|
||||||
}
|
}
|
||||||
if fe.PrivateShareId != nil {
|
if fe.PrivateShareId != nil {
|
||||||
shr, err := str.GetShare(*fe.PrivateShareId, trx)
|
shr, err := str.GetShare(*fe.PrivateShareId, trx)
|
||||||
|
@ -120,11 +120,11 @@ func (h *orgAccountOverviewHandler) Handle(params metadata.OrgAccountOverviewPar
|
|||||||
}
|
}
|
||||||
for _, fe := range fes {
|
for _, fe := range fes {
|
||||||
envFe := &rest_model_zrok.Frontend{
|
envFe := &rest_model_zrok.Frontend{
|
||||||
ID: int64(fe.Id),
|
ID: int64(fe.Id),
|
||||||
FeToken: fe.Token,
|
FrontendToken: fe.Token,
|
||||||
ZID: fe.ZId,
|
ZID: fe.ZId,
|
||||||
CreatedAt: fe.CreatedAt.UnixMilli(),
|
CreatedAt: fe.CreatedAt.UnixMilli(),
|
||||||
UpdatedAt: fe.UpdatedAt.UnixMilli(),
|
UpdatedAt: fe.UpdatedAt.UnixMilli(),
|
||||||
}
|
}
|
||||||
if fe.PrivateShareId != nil {
|
if fe.PrivateShareId != nil {
|
||||||
feShr, err := str.GetShare(*fe.PrivateShareId, trx)
|
feShr, err := str.GetShare(*fe.PrivateShareId, trx)
|
||||||
|
@ -86,11 +86,11 @@ func (h *overviewHandler) Handle(_ metadata.OverviewParams, principal *rest_mode
|
|||||||
}
|
}
|
||||||
for _, fe := range fes {
|
for _, fe := range fes {
|
||||||
envFe := &rest_model_zrok.Frontend{
|
envFe := &rest_model_zrok.Frontend{
|
||||||
ID: int64(fe.Id),
|
ID: int64(fe.Id),
|
||||||
FeToken: fe.Token,
|
FrontendToken: fe.Token,
|
||||||
ZID: fe.ZId,
|
ZID: fe.ZId,
|
||||||
CreatedAt: fe.CreatedAt.UnixMilli(),
|
CreatedAt: fe.CreatedAt.UnixMilli(),
|
||||||
UpdatedAt: fe.UpdatedAt.UnixMilli(),
|
UpdatedAt: fe.UpdatedAt.UnixMilli(),
|
||||||
}
|
}
|
||||||
if fe.PrivateShareId != nil {
|
if fe.PrivateShareId != nil {
|
||||||
feShr, err := str.GetShare(*fe.PrivateShareId, trx)
|
feShr, err := str.GetShare(*fe.PrivateShareId, trx)
|
||||||
|
@ -56,11 +56,11 @@ func (h *updateAccessHandler) Handle(params share.UpdateAccessParams, principal
|
|||||||
logrus.Errorf("error updating frontend '%v': %v", feToken, err)
|
logrus.Errorf("error updating frontend '%v': %v", feToken, err)
|
||||||
return share.NewUpdateAccessInternalServerError()
|
return share.NewUpdateAccessInternalServerError()
|
||||||
}
|
}
|
||||||
|
logrus.Warnf("updated frontend '%v' description to '%v'", feToken, *fe.Description)
|
||||||
|
|
||||||
if err := trx.Commit(); err != nil {
|
if err := trx.Commit(); err != nil {
|
||||||
logrus.Errorf("error committing transaction for frontend '%v': %v", feToken, err)
|
logrus.Errorf("error committing transaction for frontend '%v': %v", feToken, err)
|
||||||
return share.NewUpdateAccessInternalServerError()
|
return share.NewUpdateAccessInternalServerError()
|
||||||
}
|
}
|
||||||
|
|
||||||
return share.NewUpdateAccessOK()
|
return share.NewUpdateAccessOK()
|
||||||
}
|
}
|
||||||
|
@ -23,8 +23,8 @@ type Frontend struct {
|
|||||||
// description
|
// description
|
||||||
Description string `json:"description,omitempty"`
|
Description string `json:"description,omitempty"`
|
||||||
|
|
||||||
// fe token
|
// frontend token
|
||||||
FeToken string `json:"feToken,omitempty"`
|
FrontendToken string `json:"frontendToken,omitempty"`
|
||||||
|
|
||||||
// id
|
// id
|
||||||
ID int64 `json:"id,omitempty"`
|
ID int64 `json:"id,omitempty"`
|
||||||
|
@ -1999,7 +1999,7 @@ func init() {
|
|||||||
"description": {
|
"description": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"feToken": {
|
"frontendToken": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
@ -4248,7 +4248,7 @@ func init() {
|
|||||||
"description": {
|
"description": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"feToken": {
|
"frontendToken": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
|
@ -14,7 +14,7 @@ import { RequestFile } from './models';
|
|||||||
|
|
||||||
export class Frontend {
|
export class Frontend {
|
||||||
'id'?: number;
|
'id'?: number;
|
||||||
'feToken'?: string;
|
'frontendToken'?: string;
|
||||||
'shareToken'?: string;
|
'shareToken'?: string;
|
||||||
'description'?: string;
|
'description'?: string;
|
||||||
'zId'?: string;
|
'zId'?: string;
|
||||||
@ -30,8 +30,8 @@ export class Frontend {
|
|||||||
"type": "number"
|
"type": "number"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "feToken",
|
"name": "frontendToken",
|
||||||
"baseName": "feToken",
|
"baseName": "frontendToken",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
Name | Type | Description | Notes
|
Name | Type | Description | Notes
|
||||||
------------ | ------------- | ------------- | -------------
|
------------ | ------------- | ------------- | -------------
|
||||||
**id** | **int** | | [optional]
|
**id** | **int** | | [optional]
|
||||||
**fe_token** | **str** | | [optional]
|
**frontend_token** | **str** | | [optional]
|
||||||
**share_token** | **str** | | [optional]
|
**share_token** | **str** | | [optional]
|
||||||
**description** | **str** | | [optional]
|
**description** | **str** | | [optional]
|
||||||
**z_id** | **str** | | [optional]
|
**z_id** | **str** | | [optional]
|
||||||
|
@ -29,7 +29,7 @@ class Frontend(object):
|
|||||||
"""
|
"""
|
||||||
swagger_types = {
|
swagger_types = {
|
||||||
'id': 'int',
|
'id': 'int',
|
||||||
'fe_token': 'str',
|
'frontend_token': 'str',
|
||||||
'share_token': 'str',
|
'share_token': 'str',
|
||||||
'description': 'str',
|
'description': 'str',
|
||||||
'z_id': 'str',
|
'z_id': 'str',
|
||||||
@ -39,7 +39,7 @@ class Frontend(object):
|
|||||||
|
|
||||||
attribute_map = {
|
attribute_map = {
|
||||||
'id': 'id',
|
'id': 'id',
|
||||||
'fe_token': 'feToken',
|
'frontend_token': 'frontendToken',
|
||||||
'share_token': 'shareToken',
|
'share_token': 'shareToken',
|
||||||
'description': 'description',
|
'description': 'description',
|
||||||
'z_id': 'zId',
|
'z_id': 'zId',
|
||||||
@ -47,10 +47,10 @@ class Frontend(object):
|
|||||||
'updated_at': 'updatedAt'
|
'updated_at': 'updatedAt'
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, id=None, fe_token=None, share_token=None, description=None, z_id=None, created_at=None, updated_at=None): # noqa: E501
|
def __init__(self, id=None, frontend_token=None, share_token=None, description=None, z_id=None, created_at=None, updated_at=None): # noqa: E501
|
||||||
"""Frontend - a model defined in Swagger""" # noqa: E501
|
"""Frontend - a model defined in Swagger""" # noqa: E501
|
||||||
self._id = None
|
self._id = None
|
||||||
self._fe_token = None
|
self._frontend_token = None
|
||||||
self._share_token = None
|
self._share_token = None
|
||||||
self._description = None
|
self._description = None
|
||||||
self._z_id = None
|
self._z_id = None
|
||||||
@ -59,8 +59,8 @@ class Frontend(object):
|
|||||||
self.discriminator = None
|
self.discriminator = None
|
||||||
if id is not None:
|
if id is not None:
|
||||||
self.id = id
|
self.id = id
|
||||||
if fe_token is not None:
|
if frontend_token is not None:
|
||||||
self.fe_token = fe_token
|
self.frontend_token = frontend_token
|
||||||
if share_token is not None:
|
if share_token is not None:
|
||||||
self.share_token = share_token
|
self.share_token = share_token
|
||||||
if description is not None:
|
if description is not None:
|
||||||
@ -94,25 +94,25 @@ class Frontend(object):
|
|||||||
self._id = id
|
self._id = id
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def fe_token(self):
|
def frontend_token(self):
|
||||||
"""Gets the fe_token of this Frontend. # noqa: E501
|
"""Gets the frontend_token of this Frontend. # noqa: E501
|
||||||
|
|
||||||
|
|
||||||
:return: The fe_token of this Frontend. # noqa: E501
|
:return: The frontend_token of this Frontend. # noqa: E501
|
||||||
:rtype: str
|
:rtype: str
|
||||||
"""
|
"""
|
||||||
return self._fe_token
|
return self._frontend_token
|
||||||
|
|
||||||
@fe_token.setter
|
@frontend_token.setter
|
||||||
def fe_token(self, fe_token):
|
def frontend_token(self, frontend_token):
|
||||||
"""Sets the fe_token of this Frontend.
|
"""Sets the frontend_token of this Frontend.
|
||||||
|
|
||||||
|
|
||||||
:param fe_token: The fe_token of this Frontend. # noqa: E501
|
:param frontend_token: The frontend_token of this Frontend. # noqa: E501
|
||||||
:type: str
|
:type: str
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self._fe_token = fe_token
|
self._frontend_token = frontend_token
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def share_token(self):
|
def share_token(self):
|
||||||
|
@ -1241,7 +1241,7 @@ definitions:
|
|||||||
properties:
|
properties:
|
||||||
id:
|
id:
|
||||||
type: integer
|
type: integer
|
||||||
feToken:
|
frontendToken:
|
||||||
type: string
|
type: string
|
||||||
shareToken:
|
shareToken:
|
||||||
type: string
|
type: string
|
||||||
|
@ -25,7 +25,7 @@ const AccessPanel = ({ access }: AccessPanelProps) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
getMetadataApi(user).getFrontendDetail({feId: access.data.feId as number})
|
getMetadataApi(user).getFrontendDetail({frontendId: access.data.feId as number})
|
||||||
.then(d => {
|
.then(d => {
|
||||||
delete d.id;
|
delete d.id;
|
||||||
delete d.zId;
|
delete d.zId;
|
||||||
@ -43,7 +43,6 @@ const AccessPanel = ({ access }: AccessPanelProps) => {
|
|||||||
|
|
||||||
const labels = {
|
const labels = {
|
||||||
createdAt: "Created",
|
createdAt: "Created",
|
||||||
feToken: "Frontend Token",
|
|
||||||
updatedAt: "Updated",
|
updatedAt: "Updated",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ interface ReleaseAccessProps {
|
|||||||
|
|
||||||
const ReleaseAccessModal = ({ close, isOpen, user, access, detail }: ReleaseAccessProps) => {
|
const ReleaseAccessModal = ({ close, isOpen, user, access, detail }: ReleaseAccessProps) => {
|
||||||
const [errorMessage, setErrorMessage] = useState<React.JSX.Element>(null);
|
const [errorMessage, setErrorMessage] = useState<React.JSX.Element>(null);
|
||||||
const [feToken, setFeToken] = useState<String>("");
|
const [frontendToken, setFrontendToken] = useState<String>("");
|
||||||
const [checked, setChecked] = useState<boolean>(false);
|
const [checked, setChecked] = useState<boolean>(false);
|
||||||
const checkedRef = useRef<boolean>(checked);
|
const checkedRef = useRef<boolean>(checked);
|
||||||
|
|
||||||
@ -30,17 +30,17 @@ const ReleaseAccessModal = ({ close, isOpen, user, access, detail }: ReleaseAcce
|
|||||||
}, [isOpen]);
|
}, [isOpen]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if(detail && detail.feToken) {
|
if(detail && detail.frontendToken) {
|
||||||
setFeToken(detail.feToken);
|
setFrontendToken(detail.frontendToken);
|
||||||
}
|
}
|
||||||
}, [detail]);
|
}, [detail]);
|
||||||
|
|
||||||
const releaseAccess = () => {
|
const releaseAccess = () => {
|
||||||
setErrorMessage(null);
|
setErrorMessage(null);
|
||||||
if(detail && detail.feToken) {
|
if(detail && detail.frontendToken) {
|
||||||
getShareApi(user).unaccess({
|
getShareApi(user).unaccess({
|
||||||
body: {
|
body: {
|
||||||
frontendToken: detail.feToken,
|
frontendToken: detail.frontendToken,
|
||||||
envZId: access.data.envZId as string,
|
envZId: access.data.envZId as string,
|
||||||
shareToken: detail.shareToken
|
shareToken: detail.shareToken
|
||||||
}
|
}
|
||||||
@ -52,7 +52,7 @@ const ReleaseAccessModal = ({ close, isOpen, user, access, detail }: ReleaseAcce
|
|||||||
e.response.json().then(ex => {
|
e.response.json().then(ex => {
|
||||||
console.log("releaseAccess", ex.message);
|
console.log("releaseAccess", ex.message);
|
||||||
});
|
});
|
||||||
setErrorMessage(<Typography color="red">An error occurred releasing your access <code>{detail.feToken}</code>!</Typography>);
|
setErrorMessage(<Typography color="red">An error occurred releasing your access <code>{detail.frontendToken}</code>!</Typography>);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
setErrorMessage(null);
|
setErrorMessage(null);
|
||||||
setChecked(false);
|
setChecked(false);
|
||||||
@ -68,10 +68,10 @@ const ReleaseAccessModal = ({ close, isOpen, user, access, detail }: ReleaseAcce
|
|||||||
<Typography variant="h5"><strong>Release Access</strong></Typography>
|
<Typography variant="h5"><strong>Release Access</strong></Typography>
|
||||||
</Grid2>
|
</Grid2>
|
||||||
<Grid2 container sx={{ flexGrow: 1, p: 1 }} alignItems="center">
|
<Grid2 container sx={{ flexGrow: 1, p: 1 }} alignItems="center">
|
||||||
<Typography variant="body1">Would you like to release the access <code>{feToken}</code> ?</Typography>
|
<Typography variant="body1">Would you like to release the access <code>{frontendToken}</code> ?</Typography>
|
||||||
</Grid2>
|
</Grid2>
|
||||||
<Grid2 container sx={{ flexGrow: 1, p: 1 }} alignItems="center">
|
<Grid2 container sx={{ flexGrow: 1, p: 1 }} alignItems="center">
|
||||||
<FormControlLabel control={<Checkbox checked={checked} onChange={toggleChecked} />} label={<p>I confirm the release of <code>{feToken}</code></p>} sx={{ mt: 2 }} />
|
<FormControlLabel control={<Checkbox checked={checked} onChange={toggleChecked} />} label={<p>I confirm the release of <code>{frontendToken}</code></p>} sx={{ mt: 2 }} />
|
||||||
</Grid2>
|
</Grid2>
|
||||||
{ errorMessage ? <Grid2 container sx={{ mb: 2, p: 1}}><Typography>{errorMessage}</Typography></Grid2> : null}
|
{ errorMessage ? <Grid2 container sx={{ mb: 2, p: 1}}><Typography>{errorMessage}</Typography></Grid2> : null}
|
||||||
<Grid2 container sx={{ flexGrow: 1 }} alignItems="center">
|
<Grid2 container sx={{ flexGrow: 1 }} alignItems="center">
|
||||||
|
@ -30,7 +30,7 @@ export interface Frontend {
|
|||||||
* @type {string}
|
* @type {string}
|
||||||
* @memberof Frontend
|
* @memberof Frontend
|
||||||
*/
|
*/
|
||||||
feToken?: string;
|
frontendToken?: string;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {string}
|
* @type {string}
|
||||||
@ -81,7 +81,7 @@ export function FrontendFromJSONTyped(json: any, ignoreDiscriminator: boolean):
|
|||||||
return {
|
return {
|
||||||
|
|
||||||
'id': json['id'] == null ? undefined : json['id'],
|
'id': json['id'] == null ? undefined : json['id'],
|
||||||
'feToken': json['feToken'] == null ? undefined : json['feToken'],
|
'frontendToken': json['frontendToken'] == null ? undefined : json['frontendToken'],
|
||||||
'shareToken': json['shareToken'] == null ? undefined : json['shareToken'],
|
'shareToken': json['shareToken'] == null ? undefined : json['shareToken'],
|
||||||
'description': json['description'] == null ? undefined : json['description'],
|
'description': json['description'] == null ? undefined : json['description'],
|
||||||
'zId': json['zId'] == null ? undefined : json['zId'],
|
'zId': json['zId'] == null ? undefined : json['zId'],
|
||||||
@ -97,7 +97,7 @@ export function FrontendToJSON(value?: Frontend | null): any {
|
|||||||
return {
|
return {
|
||||||
|
|
||||||
'id': value['id'],
|
'id': value['id'],
|
||||||
'feToken': value['feToken'],
|
'frontendToken': value['frontendToken'],
|
||||||
'shareToken': value['shareToken'],
|
'shareToken': value['shareToken'],
|
||||||
'description': value['description'],
|
'description': value['description'],
|
||||||
'zId': value['zId'],
|
'zId': value['zId'],
|
||||||
|
@ -78,9 +78,9 @@ export const mergeGraph = (oldVov: Graph, u: User, limited: boolean, newOv: Over
|
|||||||
envNode.data.empty = false;
|
envNode.data.empty = false;
|
||||||
env.frontends.forEach(fe => {
|
env.frontends.forEach(fe => {
|
||||||
let feNode = {
|
let feNode = {
|
||||||
id: fe.feToken!,
|
id: fe.frontendToken!,
|
||||||
data: {
|
data: {
|
||||||
label: fe.feToken!,
|
label: fe.frontendToken!,
|
||||||
feId: fe.id,
|
feId: fe.id,
|
||||||
target: fe.shareToken,
|
target: fe.shareToken,
|
||||||
envZId: fe.zId,
|
envZId: fe.zId,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user