From e95e5c3fe8de3becdee0dc6b5d8f5ef383cf0450 Mon Sep 17 00:00:00 2001 From: Michael Quigley Date: Wed, 5 Feb 2025 11:05:42 -0500 Subject: [PATCH] frontendToken; frontend description (#834) --- cmd/zrok/accessPrivate.go | 8 +++++ controller/frontendDetail.go | 13 ++++---- controller/orgAccountOverview.go | 10 +++---- controller/overview.go | 10 +++---- controller/updateAccess.go | 2 +- rest_model_zrok/frontend.go | 4 +-- rest_server_zrok/embedded_spec.go | 4 +-- sdk/nodejs/sdk/src/zrok/api/model/frontend.ts | 6 ++-- sdk/python/sdk/zrok/docs/Frontend.md | 2 +- .../sdk/zrok/zrok_api/models/frontend.py | 30 +++++++++---------- specs/zrok.yml | 2 +- ui/src/AccessPanel.tsx | 3 +- ui/src/ReleaseAccessModal.tsx | 16 +++++----- ui/src/api/models/Frontend.ts | 6 ++-- ui/src/model/graph.ts | 4 +-- 15 files changed, 65 insertions(+), 55 deletions(-) diff --git a/cmd/zrok/accessPrivate.go b/cmd/zrok/accessPrivate.go index d5534b818..6051396f7 100644 --- a/cmd/zrok/accessPrivate.go +++ b/cmd/zrok/accessPrivate.go @@ -138,6 +138,14 @@ func (cmd *accessPrivateCommand) accessLocal(args []string, root env_core.Root) 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://" switch accessResp.Payload.BackendMode { case "tcpTunnel": diff --git a/controller/frontendDetail.go b/controller/frontendDetail.go index 25357b37a..fd51237e6 100644 --- a/controller/frontendDetail.go +++ b/controller/frontendDetail.go @@ -46,11 +46,14 @@ func (h *getFrontendDetailHandler) Handle(params metadata.GetFrontendDetailParam return metadata.NewGetFrontendDetailNotFound() } payload := &rest_model_zrok.Frontend{ - ID: int64(fe.Id), - FeToken: fe.Token, - ZID: fe.ZId, - CreatedAt: fe.CreatedAt.UnixMilli(), - UpdatedAt: fe.UpdatedAt.UnixMilli(), + ID: int64(fe.Id), + FrontendToken: fe.Token, + ZID: fe.ZId, + CreatedAt: fe.CreatedAt.UnixMilli(), + UpdatedAt: fe.UpdatedAt.UnixMilli(), + } + if fe.Description != nil { + payload.Description = *fe.Description } if fe.PrivateShareId != nil { shr, err := str.GetShare(*fe.PrivateShareId, trx) diff --git a/controller/orgAccountOverview.go b/controller/orgAccountOverview.go index fb837105f..d5d27e967 100644 --- a/controller/orgAccountOverview.go +++ b/controller/orgAccountOverview.go @@ -120,11 +120,11 @@ func (h *orgAccountOverviewHandler) Handle(params metadata.OrgAccountOverviewPar } for _, fe := range fes { envFe := &rest_model_zrok.Frontend{ - ID: int64(fe.Id), - FeToken: fe.Token, - ZID: fe.ZId, - CreatedAt: fe.CreatedAt.UnixMilli(), - UpdatedAt: fe.UpdatedAt.UnixMilli(), + ID: int64(fe.Id), + FrontendToken: fe.Token, + ZID: fe.ZId, + CreatedAt: fe.CreatedAt.UnixMilli(), + UpdatedAt: fe.UpdatedAt.UnixMilli(), } if fe.PrivateShareId != nil { feShr, err := str.GetShare(*fe.PrivateShareId, trx) diff --git a/controller/overview.go b/controller/overview.go index 39644a792..e10f403dc 100644 --- a/controller/overview.go +++ b/controller/overview.go @@ -86,11 +86,11 @@ func (h *overviewHandler) Handle(_ metadata.OverviewParams, principal *rest_mode } for _, fe := range fes { envFe := &rest_model_zrok.Frontend{ - ID: int64(fe.Id), - FeToken: fe.Token, - ZID: fe.ZId, - CreatedAt: fe.CreatedAt.UnixMilli(), - UpdatedAt: fe.UpdatedAt.UnixMilli(), + ID: int64(fe.Id), + FrontendToken: fe.Token, + ZID: fe.ZId, + CreatedAt: fe.CreatedAt.UnixMilli(), + UpdatedAt: fe.UpdatedAt.UnixMilli(), } if fe.PrivateShareId != nil { feShr, err := str.GetShare(*fe.PrivateShareId, trx) diff --git a/controller/updateAccess.go b/controller/updateAccess.go index bbc29e986..b58ac7e91 100644 --- a/controller/updateAccess.go +++ b/controller/updateAccess.go @@ -56,11 +56,11 @@ func (h *updateAccessHandler) Handle(params share.UpdateAccessParams, principal logrus.Errorf("error updating frontend '%v': %v", feToken, err) return share.NewUpdateAccessInternalServerError() } + logrus.Warnf("updated frontend '%v' description to '%v'", feToken, *fe.Description) if err := trx.Commit(); err != nil { logrus.Errorf("error committing transaction for frontend '%v': %v", feToken, err) return share.NewUpdateAccessInternalServerError() } - return share.NewUpdateAccessOK() } diff --git a/rest_model_zrok/frontend.go b/rest_model_zrok/frontend.go index 71c8e2e28..341a0b970 100644 --- a/rest_model_zrok/frontend.go +++ b/rest_model_zrok/frontend.go @@ -23,8 +23,8 @@ type Frontend struct { // description Description string `json:"description,omitempty"` - // fe token - FeToken string `json:"feToken,omitempty"` + // frontend token + FrontendToken string `json:"frontendToken,omitempty"` // id ID int64 `json:"id,omitempty"` diff --git a/rest_server_zrok/embedded_spec.go b/rest_server_zrok/embedded_spec.go index 626fd0d39..cc34a789d 100644 --- a/rest_server_zrok/embedded_spec.go +++ b/rest_server_zrok/embedded_spec.go @@ -1999,7 +1999,7 @@ func init() { "description": { "type": "string" }, - "feToken": { + "frontendToken": { "type": "string" }, "id": { @@ -4248,7 +4248,7 @@ func init() { "description": { "type": "string" }, - "feToken": { + "frontendToken": { "type": "string" }, "id": { diff --git a/sdk/nodejs/sdk/src/zrok/api/model/frontend.ts b/sdk/nodejs/sdk/src/zrok/api/model/frontend.ts index dbae7eadd..6d98209c2 100644 --- a/sdk/nodejs/sdk/src/zrok/api/model/frontend.ts +++ b/sdk/nodejs/sdk/src/zrok/api/model/frontend.ts @@ -14,7 +14,7 @@ import { RequestFile } from './models'; export class Frontend { 'id'?: number; - 'feToken'?: string; + 'frontendToken'?: string; 'shareToken'?: string; 'description'?: string; 'zId'?: string; @@ -30,8 +30,8 @@ export class Frontend { "type": "number" }, { - "name": "feToken", - "baseName": "feToken", + "name": "frontendToken", + "baseName": "frontendToken", "type": "string" }, { diff --git a/sdk/python/sdk/zrok/docs/Frontend.md b/sdk/python/sdk/zrok/docs/Frontend.md index 79aa0d658..4d0f1e5c8 100644 --- a/sdk/python/sdk/zrok/docs/Frontend.md +++ b/sdk/python/sdk/zrok/docs/Frontend.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **int** | | [optional] -**fe_token** | **str** | | [optional] +**frontend_token** | **str** | | [optional] **share_token** | **str** | | [optional] **description** | **str** | | [optional] **z_id** | **str** | | [optional] diff --git a/sdk/python/sdk/zrok/zrok_api/models/frontend.py b/sdk/python/sdk/zrok/zrok_api/models/frontend.py index 289f9acc6..95827ca97 100644 --- a/sdk/python/sdk/zrok/zrok_api/models/frontend.py +++ b/sdk/python/sdk/zrok/zrok_api/models/frontend.py @@ -29,7 +29,7 @@ class Frontend(object): """ swagger_types = { 'id': 'int', - 'fe_token': 'str', + 'frontend_token': 'str', 'share_token': 'str', 'description': 'str', 'z_id': 'str', @@ -39,7 +39,7 @@ class Frontend(object): attribute_map = { 'id': 'id', - 'fe_token': 'feToken', + 'frontend_token': 'frontendToken', 'share_token': 'shareToken', 'description': 'description', 'z_id': 'zId', @@ -47,10 +47,10 @@ class Frontend(object): '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 self._id = None - self._fe_token = None + self._frontend_token = None self._share_token = None self._description = None self._z_id = None @@ -59,8 +59,8 @@ def __init__(self, id=None, fe_token=None, share_token=None, description=None, z self.discriminator = None if id is not None: self.id = id - if fe_token is not None: - self.fe_token = fe_token + if frontend_token is not None: + self.frontend_token = frontend_token if share_token is not None: self.share_token = share_token if description is not None: @@ -94,25 +94,25 @@ def id(self, id): self._id = id @property - def fe_token(self): - """Gets the fe_token of this Frontend. # noqa: E501 + def frontend_token(self): + """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 """ - return self._fe_token + return self._frontend_token - @fe_token.setter - def fe_token(self, fe_token): - """Sets the fe_token of this Frontend. + @frontend_token.setter + def frontend_token(self, frontend_token): + """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 """ - self._fe_token = fe_token + self._frontend_token = frontend_token @property def share_token(self): diff --git a/specs/zrok.yml b/specs/zrok.yml index 8bcf1558c..0ff8e0090 100644 --- a/specs/zrok.yml +++ b/specs/zrok.yml @@ -1241,7 +1241,7 @@ definitions: properties: id: type: integer - feToken: + frontendToken: type: string shareToken: type: string diff --git a/ui/src/AccessPanel.tsx b/ui/src/AccessPanel.tsx index 1b208e65a..a8a764156 100644 --- a/ui/src/AccessPanel.tsx +++ b/ui/src/AccessPanel.tsx @@ -25,7 +25,7 @@ const AccessPanel = ({ access }: AccessPanelProps) => { } useEffect(() => { - getMetadataApi(user).getFrontendDetail({feId: access.data.feId as number}) + getMetadataApi(user).getFrontendDetail({frontendId: access.data.feId as number}) .then(d => { delete d.id; delete d.zId; @@ -43,7 +43,6 @@ const AccessPanel = ({ access }: AccessPanelProps) => { const labels = { createdAt: "Created", - feToken: "Frontend Token", updatedAt: "Updated", } diff --git a/ui/src/ReleaseAccessModal.tsx b/ui/src/ReleaseAccessModal.tsx index f40b7aae2..ec1337ce9 100644 --- a/ui/src/ReleaseAccessModal.tsx +++ b/ui/src/ReleaseAccessModal.tsx @@ -16,7 +16,7 @@ interface ReleaseAccessProps { const ReleaseAccessModal = ({ close, isOpen, user, access, detail }: ReleaseAccessProps) => { const [errorMessage, setErrorMessage] = useState(null); - const [feToken, setFeToken] = useState(""); + const [frontendToken, setFrontendToken] = useState(""); const [checked, setChecked] = useState(false); const checkedRef = useRef(checked); @@ -30,17 +30,17 @@ const ReleaseAccessModal = ({ close, isOpen, user, access, detail }: ReleaseAcce }, [isOpen]); useEffect(() => { - if(detail && detail.feToken) { - setFeToken(detail.feToken); + if(detail && detail.frontendToken) { + setFrontendToken(detail.frontendToken); } }, [detail]); const releaseAccess = () => { setErrorMessage(null); - if(detail && detail.feToken) { + if(detail && detail.frontendToken) { getShareApi(user).unaccess({ body: { - frontendToken: detail.feToken, + frontendToken: detail.frontendToken, envZId: access.data.envZId as string, shareToken: detail.shareToken } @@ -52,7 +52,7 @@ const ReleaseAccessModal = ({ close, isOpen, user, access, detail }: ReleaseAcce e.response.json().then(ex => { console.log("releaseAccess", ex.message); }); - setErrorMessage(An error occurred releasing your access {detail.feToken}!); + setErrorMessage(An error occurred releasing your access {detail.frontendToken}!); setTimeout(() => { setErrorMessage(null); setChecked(false); @@ -68,10 +68,10 @@ const ReleaseAccessModal = ({ close, isOpen, user, access, detail }: ReleaseAcce Release Access - Would you like to release the access {feToken} ? + Would you like to release the access {frontendToken} ? - } label={

I confirm the release of {feToken}

} sx={{ mt: 2 }} /> + } label={

I confirm the release of {frontendToken}

} sx={{ mt: 2 }} />
{ errorMessage ? {errorMessage} : null} diff --git a/ui/src/api/models/Frontend.ts b/ui/src/api/models/Frontend.ts index 5509b51d4..8a0cea438 100644 --- a/ui/src/api/models/Frontend.ts +++ b/ui/src/api/models/Frontend.ts @@ -30,7 +30,7 @@ export interface Frontend { * @type {string} * @memberof Frontend */ - feToken?: string; + frontendToken?: string; /** * * @type {string} @@ -81,7 +81,7 @@ export function FrontendFromJSONTyped(json: any, ignoreDiscriminator: boolean): return { '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'], 'description': json['description'] == null ? undefined : json['description'], 'zId': json['zId'] == null ? undefined : json['zId'], @@ -97,7 +97,7 @@ export function FrontendToJSON(value?: Frontend | null): any { return { 'id': value['id'], - 'feToken': value['feToken'], + 'frontendToken': value['frontendToken'], 'shareToken': value['shareToken'], 'description': value['description'], 'zId': value['zId'], diff --git a/ui/src/model/graph.ts b/ui/src/model/graph.ts index 3d8241ff3..498dc4d71 100644 --- a/ui/src/model/graph.ts +++ b/ui/src/model/graph.ts @@ -78,9 +78,9 @@ export const mergeGraph = (oldVov: Graph, u: User, limited: boolean, newOv: Over envNode.data.empty = false; env.frontends.forEach(fe => { let feNode = { - id: fe.feToken!, + id: fe.frontendToken!, data: { - label: fe.feToken!, + label: fe.frontendToken!, feId: fe.id, target: fe.shareToken, envZId: fe.zId,