Protocol Documentation

Table of Contents

schema.proto

Top

App

App is an app/release created from a helm chart

FieldTypeLabelDescription
name string

name of the application

namespace string

namespace name the app belongs to(autocreated)

release Release

release holds information about the currently deployed release of the application

chart Chart

chart is the chart used to deploy the App

Validated Fields

Field Validations
name
  • regex: ^.{1,225}$
namespace
  • regex: ^.{1,225}$

AppFilter

AppFilter is used to list app/releases

FieldTypeLabelDescription
namespace string

search all namespaces if empty

selector string

k8s selector (ex: app = helmgate)

limit uint32

limit returned results

offset uint32

offset returned results (for pagination)

AppInput

AppInput is used to create/update an app

FieldTypeLabelDescription
namespace string

the namespace the app/release belongs to(autocreated)

chart string

the helm chart to use

app_name string

name of the app/release

config AppInput.ConfigEntry repeated

config values used to render the helm chart

Validated Fields

Field Validations
namespace
  • regex: ^.{1,225}$
chart
  • regex: ^.{1,225}$
app_name
  • regex: ^.{1,225}$
config
  • msg_exists: true

AppInput.ConfigEntry

FieldTypeLabelDescription
key string

value string

AppRef

AppRef is a generic structure for looking up apps/releases

FieldTypeLabelDescription
namespace string

namespace is the k8s namespace the app/release belongs to(autocreated)

name string

name is the name of the app/release

Validated Fields

Field Validations
namespace
  • regex: ^.{1,225}$
name
  • regex: ^.{1,225}$

Apps

Apps is a list of apps

FieldTypeLabelDescription
apps App repeated

Chart

Chart is a helm chart that may be used to deploy an app/release

FieldTypeLabelDescription
name string

name of the helm chart

home string

home page of the helm chart

description string

description of the helm chart

version string

version of the helm chart

sources string repeated

keywords string repeated

keywords associated with the helm chart

icon string

icon is an the icon/brand associated with the chart

deprecated bool

chart is not actively maintained if deprecated = true

dependencies Dependency repeated

extra charts that this chart depends on

maintainers Maintainer repeated

maintainers of this chart

metadata Chart.MetadataEntry repeated

arbitrary metadata associated with the chart

Validated Fields

Field Validations
name
  • regex: ^.{1,225}$

Chart.MetadataEntry

FieldTypeLabelDescription
key string

value string

ChartFilter

ChartFilter is used for filtering helm chart search results

FieldTypeLabelDescription
term string

term to search for

regex bool

term is a regex expression

Validated Fields

Field Validations
term
  • regex: ^.{1,225}$

Charts

Charts is a list of helm charts

FieldTypeLabelDescription
charts Chart repeated

Dependency

Dependency is a dependency required by a helm chart

FieldTypeLabelDescription
chart string

name of the chart dependency

version string

name of the chart version

repository string

the URL of the helm repository.

Validated Fields

Field Validations
chart
  • regex: ^.{1,225}$
version
  • regex: ^.{1,225}$
repository
  • regex: ^.{1,225}$

HistoryFilter

HistoryFilter is used to query a timeseries of releases for a specific app/release

FieldTypeLabelDescription
ref AppRef

limit uint32

Validated Fields

Field Validations
ref
  • msg_exists: true

Maintainer

Maintainer is the maintainer of a helm chart

FieldTypeLabelDescription
name string

name is the name of the maintainer

email string

email is the email of the maintainer

Validated Fields

Field Validations
name
  • regex: ^.{1,225}$
email
  • regex: ^.{1,225}$

NamespaceRef

NamespaceRef is a generic structure for looking up namespaces

FieldTypeLabelDescription
name string

name of the namespace

Validated Fields

Field Validations
name
  • regex: ^.{1,225}$

NamespaceRefs

NamespaceRefs is a list of NamespaceRef

FieldTypeLabelDescription
namespaces NamespaceRef repeated

Release

Release tracks the state of an app during the lifecycle of it's current deployment

FieldTypeLabelDescription
version uint32

version of the App. Iterates with each upgrade

config google.protobuf.Struct

config values

notes string

notes associated with the release

description string

description of the release

status string

status of the release

timestamps Timestamps

lifecycle timestamps related

Timestamps

Timestamps tracks timestamps related to a release

FieldTypeLabelDescription
created google.protobuf.Timestamp

when the release was first deployed

updated google.protobuf.Timestamp

when the release was last deployed

deleted google.protobuf.Timestamp

when the release was deleted

HelmProxyService

HelmProxyService is a secure API for easily deploying applications on Kubernetes with Helm charts

Method NameRequest TypeResponse TypeDescription
GetApp AppRef App

GetApp gets an app/release from the given namespace

GetHistory HistoryFilter Apps

GetHistory gets a list of previous versions of the app/release

SearchApps AppFilter Apps

SearchApps searchs for apps/releases

UninstallApp AppRef .google.protobuf.Empty

UninstallApp uninstalls an app/release from the given namespace

RollbackApp AppRef App

RollbackApp rolls the app/release back to the previous version in the given namespace

InstallApp AppInput App

InstallApp installs an app/release in the given namespace

UpdateApp AppInput App

UpdateApp updates an app/release in the given namespace

SearchCharts ChartFilter Charts

SearchCharts searches for a cached helm chart

Methods with HTTP bindings

Method Name Method Pattern Body
GetApp GET /apps/{namespace}
GetHistory GET /apps/{ref.namespace}/{ref.name}/history
SearchApps GET /apps/{namespace}
UninstallApp DELETE /apps/{namespace}/{name}
RollbackApp POST /apps/{namespace}/{name}/rollback *
InstallApp POST /apps/{namespace} *
UpdateApp PUT /apps/{namespace}/{app_name} *
SearchCharts GET /charts

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)