diff --git a/dashboard/v1/dashboard.pb.go b/dashboard/v1/dashboard.pb.go new file mode 100644 index 00000000..d5fcd6e3 --- /dev/null +++ b/dashboard/v1/dashboard.pb.go @@ -0,0 +1,179 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: dashboard.proto + +package v1 + +import ( + context "context" + fmt "fmt" + v1 "github.com/arangodb-managed/apis/common/v1" + proto "github.com/golang/protobuf/proto" + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +func init() { proto.RegisterFile("dashboard.proto", fileDescriptor_9b97678da3a35dfb) } + +var fileDescriptor_9b97678da3a35dfb = []byte{ + // 252 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4f, 0x49, 0x2c, 0xce, + 0x48, 0xca, 0x4f, 0x2c, 0x4a, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x4e, 0x2c, 0x4a, + 0xcc, 0x4b, 0xcf, 0x4f, 0x49, 0xd2, 0x4b, 0xce, 0xc9, 0x2f, 0x4d, 0xd1, 0x43, 0xc8, 0x97, 0x19, + 0x4a, 0x89, 0x25, 0xe7, 0xe7, 0xe6, 0xe6, 0xe7, 0xe9, 0x97, 0x19, 0xea, 0x43, 0x58, 0x10, 0x4d, + 0x52, 0x32, 0xe9, 0xf9, 0xf9, 0xe9, 0x39, 0xa9, 0xfa, 0x89, 0x05, 0x99, 0xfa, 0x89, 0x79, 0x79, + 0xf9, 0x25, 0x89, 0x25, 0x99, 0xf9, 0x79, 0xc5, 0x10, 0x59, 0xa3, 0x66, 0x26, 0x2e, 0x01, 0x17, + 0x98, 0x31, 0xc1, 0xa9, 0x45, 0x65, 0x99, 0xc9, 0xa9, 0x42, 0x55, 0x5c, 0xbc, 0xee, 0xa9, 0x25, + 0x8e, 0x01, 0x9e, 0x61, 0xa9, 0x45, 0xc5, 0x99, 0xf9, 0x79, 0x42, 0xf2, 0x7a, 0x68, 0x36, 0x43, + 0x6d, 0x28, 0x33, 0xd4, 0x73, 0xcd, 0x2d, 0x28, 0xa9, 0x94, 0x52, 0xc4, 0xad, 0x00, 0x6a, 0x86, + 0x92, 0x6a, 0xd3, 0xe5, 0x27, 0x93, 0x99, 0xe4, 0x85, 0x64, 0xc1, 0x2e, 0x81, 0x3b, 0x1d, 0xe4, + 0xde, 0xc4, 0x82, 0x4c, 0xdd, 0x32, 0xa8, 0x55, 0xc5, 0x5c, 0x5c, 0xee, 0xa9, 0x25, 0xd4, 0xb4, + 0x58, 0x11, 0x6c, 0xb1, 0xb4, 0x90, 0x24, 0xa6, 0xc5, 0x50, 0x4b, 0x9d, 0xec, 0x4f, 0x3c, 0x92, + 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x19, 0x8f, 0xe5, 0x18, 0xa2, 0x74, + 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0x40, 0xc6, 0xe9, 0xc3, 0x6c, 0xd0, 0xcd, 0x4d, 0xcc, 0x4b, + 0x4c, 0x4f, 0x4d, 0x01, 0x99, 0x53, 0x8c, 0x62, 0x50, 0x12, 0x1b, 0x38, 0x34, 0x8d, 0x01, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x67, 0x6c, 0xda, 0xfa, 0xb3, 0x01, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// DashboardServiceClient is the client API for DashboardService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type DashboardServiceClient interface { + // Get the current API version of this service. + // Required permissions: + // - None (authenticated only) + GetAPIVersion(ctx context.Context, in *v1.Empty, opts ...grpc.CallOption) (*v1.Version, error) + // Get the runtime version of this service. + // This is the same info as we expose on window.VERSION and can be used to see if the latest version is loaded in the browser. + // Required permissions: + // - None (authenticated only) + GetVersion(ctx context.Context, in *v1.Empty, opts ...grpc.CallOption) (*v1.Version, error) +} + +type dashboardServiceClient struct { + cc *grpc.ClientConn +} + +func NewDashboardServiceClient(cc *grpc.ClientConn) DashboardServiceClient { + return &dashboardServiceClient{cc} +} + +func (c *dashboardServiceClient) GetAPIVersion(ctx context.Context, in *v1.Empty, opts ...grpc.CallOption) (*v1.Version, error) { + out := new(v1.Version) + err := c.cc.Invoke(ctx, "/arangodb.cloud.dashboard.v1.DashboardService/GetAPIVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dashboardServiceClient) GetVersion(ctx context.Context, in *v1.Empty, opts ...grpc.CallOption) (*v1.Version, error) { + out := new(v1.Version) + err := c.cc.Invoke(ctx, "/arangodb.cloud.dashboard.v1.DashboardService/GetVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// DashboardServiceServer is the server API for DashboardService service. +type DashboardServiceServer interface { + // Get the current API version of this service. + // Required permissions: + // - None (authenticated only) + GetAPIVersion(context.Context, *v1.Empty) (*v1.Version, error) + // Get the runtime version of this service. + // This is the same info as we expose on window.VERSION and can be used to see if the latest version is loaded in the browser. + // Required permissions: + // - None (authenticated only) + GetVersion(context.Context, *v1.Empty) (*v1.Version, error) +} + +// UnimplementedDashboardServiceServer can be embedded to have forward compatible implementations. +type UnimplementedDashboardServiceServer struct { +} + +func (*UnimplementedDashboardServiceServer) GetAPIVersion(ctx context.Context, req *v1.Empty) (*v1.Version, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAPIVersion not implemented") +} +func (*UnimplementedDashboardServiceServer) GetVersion(ctx context.Context, req *v1.Empty) (*v1.Version, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetVersion not implemented") +} + +func RegisterDashboardServiceServer(s *grpc.Server, srv DashboardServiceServer) { + s.RegisterService(&_DashboardService_serviceDesc, srv) +} + +func _DashboardService_GetAPIVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(v1.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DashboardServiceServer).GetAPIVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/arangodb.cloud.dashboard.v1.DashboardService/GetAPIVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DashboardServiceServer).GetAPIVersion(ctx, req.(*v1.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _DashboardService_GetVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(v1.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DashboardServiceServer).GetVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/arangodb.cloud.dashboard.v1.DashboardService/GetVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DashboardServiceServer).GetVersion(ctx, req.(*v1.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +var _DashboardService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "arangodb.cloud.dashboard.v1.DashboardService", + HandlerType: (*DashboardServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAPIVersion", + Handler: _DashboardService_GetAPIVersion_Handler, + }, + { + MethodName: "GetVersion", + Handler: _DashboardService_GetVersion_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "dashboard.proto", +} diff --git a/dashboard/v1/dashboard.pb.gw.go b/dashboard/v1/dashboard.pb.gw.go new file mode 100644 index 00000000..5cd7e642 --- /dev/null +++ b/dashboard/v1/dashboard.pb.gw.go @@ -0,0 +1,210 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: dashboard.proto + +/* +Package v1 is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package v1 + +import ( + "context" + "io" + "net/http" + + "github.com/arangodb-managed/apis/common/v1" + "github.com/golang/protobuf/descriptor" + "github.com/golang/protobuf/proto" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "github.com/grpc-ecosystem/grpc-gateway/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/status" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = descriptor.ForMessage + +func request_DashboardService_GetAPIVersion_0(ctx context.Context, marshaler runtime.Marshaler, client DashboardServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq v1.Empty + var metadata runtime.ServerMetadata + + msg, err := client.GetAPIVersion(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_DashboardService_GetAPIVersion_0(ctx context.Context, marshaler runtime.Marshaler, server DashboardServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq v1.Empty + var metadata runtime.ServerMetadata + + msg, err := server.GetAPIVersion(ctx, &protoReq) + return msg, metadata, err + +} + +func request_DashboardService_GetVersion_0(ctx context.Context, marshaler runtime.Marshaler, client DashboardServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq v1.Empty + var metadata runtime.ServerMetadata + + msg, err := client.GetVersion(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_DashboardService_GetVersion_0(ctx context.Context, marshaler runtime.Marshaler, server DashboardServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq v1.Empty + var metadata runtime.ServerMetadata + + msg, err := server.GetVersion(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterDashboardServiceHandlerServer registers the http handlers for service DashboardService to "mux". +// UnaryRPC :call DashboardServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +func RegisterDashboardServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server DashboardServiceServer) error { + + mux.Handle("GET", pattern_DashboardService_GetAPIVersion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_DashboardService_GetAPIVersion_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_DashboardService_GetAPIVersion_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_DashboardService_GetVersion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_DashboardService_GetVersion_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_DashboardService_GetVersion_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterDashboardServiceHandlerFromEndpoint is same as RegisterDashboardServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterDashboardServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterDashboardServiceHandler(ctx, mux, conn) +} + +// RegisterDashboardServiceHandler registers the http handlers for service DashboardService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterDashboardServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterDashboardServiceHandlerClient(ctx, mux, NewDashboardServiceClient(conn)) +} + +// RegisterDashboardServiceHandlerClient registers the http handlers for service DashboardService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "DashboardServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "DashboardServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "DashboardServiceClient" to call the correct interceptors. +func RegisterDashboardServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client DashboardServiceClient) error { + + mux.Handle("GET", pattern_DashboardService_GetAPIVersion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_DashboardService_GetAPIVersion_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_DashboardService_GetAPIVersion_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_DashboardService_GetVersion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_DashboardService_GetVersion_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_DashboardService_GetVersion_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_DashboardService_GetAPIVersion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "dashboard", "v1", "api-version"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_DashboardService_GetVersion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "dashboard", "v1", "version"}, "", runtime.AssumeColonVerbOpt(true))) +) + +var ( + forward_DashboardService_GetAPIVersion_0 = runtime.ForwardResponseMessage + + forward_DashboardService_GetVersion_0 = runtime.ForwardResponseMessage +) diff --git a/dashboard/v1/dashboard.proto b/dashboard/v1/dashboard.proto new file mode 100644 index 00000000..ec1b06d8 --- /dev/null +++ b/dashboard/v1/dashboard.proto @@ -0,0 +1,52 @@ +// +// DISCLAIMER +// +// Copyright 2023 ArangoDB GmbH, Cologne, Germany +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Copyright holder is ArangoDB GmbH, Cologne, Germany +// + +syntax = "proto3"; + +package arangodb.cloud.dashboard.v1; + +option go_package = "github.com/arangodb-managed/apis/dashboard/v1"; + +import "common/v1/common.proto"; + +import "google/api/annotations.proto"; + +// DashboardService is the API used for the dashboard. +service DashboardService { + // Get the current API version of this service. + // Required permissions: + // - None (authenticated only) + rpc GetAPIVersion(common.v1.Empty) returns (common.v1.Version) { + option (google.api.http) = { + get: "/api/dashboard/v1/api-version" + }; + } + + // Get the runtime version of this service. + // This is the same info as we expose on window.VERSION and can be used to see if the latest version is loaded in the browser. + // Required permissions: + // - None (authenticated only) + rpc GetVersion(arangodb.cloud.common.v1.Empty) returns (arangodb.cloud.common.v1.Version) { + option (google.api.http) = { + get: "/api/dashboard/v1/version" + }; + } + +} \ No newline at end of file diff --git a/dashboard/v1/doc.go b/dashboard/v1/doc.go new file mode 100644 index 00000000..7c0f03e3 --- /dev/null +++ b/dashboard/v1/doc.go @@ -0,0 +1,24 @@ +// +// DISCLAIMER +// +// Copyright 2023 ArangoDB GmbH, Cologne, Germany +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Copyright holder is ArangoDB GmbH, Cologne, Germany +// + +// Package dashboard/v1 contains the API of Dashboard. +package v1 + +//go:generate protoc -I .:../../:../../vendor/:../../vendor/googleapis/:../../vendor/github.com/gogo/protobuf/protobuf/ --gofast_out=Mgithub.com/golang/protobuf/ptypes/duration/duration.proto=github.com/gogo/protobuf/types,Mgithub.com/golang/protobuf/ptypes/timestamp/timestamp.proto=github.com/gogo/protobuf/types,plugins=grpc,paths=source_relative:. --grpc-gateway_out=paths=source_relative,logtostderr=true,allow_delete_body=true:. ./dashboard.proto diff --git a/dashboard/v1/version.go b/dashboard/v1/version.go new file mode 100644 index 00000000..6f40ced5 --- /dev/null +++ b/dashboard/v1/version.go @@ -0,0 +1,32 @@ +// +// DISCLAIMER +// +// Copyright 2023 ArangoDB GmbH, Cologne, Germany +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Copyright holder is ArangoDB GmbH, Cologne, Germany +// + +package v1 + +const ( + // APIID contains identifier of this API + APIID = "dashboard/v1" + // APIMajorVersion contains major version of this API + APIMajorVersion = 1 + // APIMinorVersion contains minor version of this API + APIMinorVersion = 0 + // APIPatchVersion contains patch version of this API + APIPatchVersion = 0 +) diff --git a/docs/index.html b/docs/index.html index 9c21b899..f7eeb853 100644 --- a/docs/index.html +++ b/docs/index.html @@ -714,6 +714,21 @@
DashboardService is the API used for the dashboard.
+Method Name | Request Type | Response Type | Description |
GetAPIVersion | +.arangodb.cloud.common.v1.Empty | +.arangodb.cloud.common.v1.Version | +Get the current API version of this service. +Required permissions: +- None (authenticated only) |
+
GetVersion | +.arangodb.cloud.common.v1.Empty | +.arangodb.cloud.common.v1.Version | +Get the runtime version of this service. +This is the same info as we expose on window.VERSION and can be used to see if the latest version is loaded in the browser. +Required permissions: +- None (authenticated only) |
+
Method Name | +Method | +Pattern | +Body | +
GetAPIVersion | +GET | +/api/dashboard/v1/api-version | ++ |
GetVersion | +GET | +/api/dashboard/v1/version | ++ |