From aa478a7977de70db8e01195c8317257826b49be0 Mon Sep 17 00:00:00 2001 From: Alexander Matyushentsev Date: Wed, 10 Aug 2022 16:06:05 -0700 Subject: [PATCH] add links methods signature Signed-off-by: Alexander Matyushentsev --- docs/proposals/deep-links.md | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/docs/proposals/deep-links.md b/docs/proposals/deep-links.md index 2c96b7e0c5766..486f91f302e06 100644 --- a/docs/proposals/deep-links.md +++ b/docs/proposals/deep-links.md @@ -36,7 +36,6 @@ Argo CD UI with deep links to third-party integrations will provide a unified so ## Proposal - The configuration for Deep Links will be present in the `argocd-cm`, we will add new `.links` fields in the cm to list all the deep links that will be displayed in the provided location. The possible values for `` currently are : - `project` : all links under this field will show up in the project tab in the Argo CD UI. - `application` : all links under this field will show up in the application summary tab. @@ -101,6 +100,36 @@ stringData: The argocd server will expose new APIs for rendering deep links in the UI, the server will handle the templating and conditional rendering logic and will provide the UI with the final list of links that need to be displayed for a particular location/resource. +The following API methods are proposed: + +```protobuf +message LinkInfo { + required string name = 1; + required string url = 2; +} + +message LinksResponse { + repeated LinkInfo items = 1; +} + +service ApplicationService { + rpc ListLinks(google.protobuf.Empty) returns (LinksResponse) { + option (google.api.http).get = "/api/v1/applications/{name}/links"; + } + + rpc ListResourceLinks(ApplicationResourceRequest) returns (LinksResponse) { + option (google.api.http).get = "/api/v1/applications/{name}/resource/links"; + } +} + +service ProjectService { + + rpc ListLinks(google.protobuf.Empty) returns (LinksResponse) { + option (google.api.http).get = "/api/v1/projects/{name}/links"; + } +} +``` + ### Use cases Some examples of use cases this enhancement intends to take care of -