Skip to main content

Application types

Application types is a catalog of the kinds of service an application can represent: HTTP, HTTPS, SSH, MySQL, and so on.

Every provider sees a single catalog. Most of it is the standard (built-in) set of application types that ships with Customer Connect. Any application in the provider whose type is set to custom also appears in the catalog as a type of its own. Both kinds of entries are returned by the same endpoint. A custom boolean on each row tells you which is which.

Fields

FieldDescriptionExample
idUnique ID. Standard rows have a fixed catalog id; custom rows are computed deterministically from the address tuple4ec0a1b2-3c4d-4e5f-6789-0abcdef01234
nameType name (e.g. HTTP, HTTPS, SSH). 1–100 charsHTTPS
protocolTransport protocol — TCP, UDP, or TCP_UDPTCP
listenAddressListen address. null for standard rows; populated for custom rows from the application's service address10.10.1.2
listenPortListen port or port range (e.g. 443, 67-68)443
forwardAddressBoolean flag. true = forward the listened-on address through; false = use the fixed targetAddressfalse
targetAddressFixed target address. Required when forwardAddress=false; must be null/absent when forwardAddress=true127.0.0.1
allowedAddressesPermitted forward addresses (IPs, CIDR blocks, or hostnames). Required non-empty list when forwardAddress=true; must be empty/absent when forwardAddress=false["10.0.0.1","10.0.0.2"]
forwardPortBoolean flag. true = forward the listened-on port through; false = use the fixed targetPortfalse
targetPortFixed target port as an integer. Required when forwardPort=false; must be null/absent when forwardPort=true. Seeded equal to listenPort for standard rows443
allowedPortsPermitted forward ports or port ranges. Required non-empty list when forwardPort=true; must be empty/absent when forwardPort=false["80","443","8080-8090"]
customfalse for standard rows; true for rows derived from a custom applicationfalse

Standard catalog

Customer Connect defines standard application types covering the most common services (HTTP/80, HTTPS/443, SSH/22, MySQL/3306, …). When you set the type on an application, it must match the name of one of these standard types (case-insensitive), or be set to custom.

Each standard row has:

  • id, name, protocol
  • listenPort, plus forwardPort=false and targetPort seeded equal to listenPort
  • listenAddress and targetAddress set to null (standard rows have no fixed target until a custom application supplies one); forwardAddress=false
  • allowedAddresses and allowedPorts are null on standard rows

Custom types from a provider's applications

Any application in the provider whose type is custom also appears in the application-types list, one row per unique (listenAddress, listenPort, targetAddress, targetPort, protocol) tuple. This lets a provider see, at a glance, every non-standard application address combination in use.

The custom boolean distinguishes the two:

  • custom: false: A standard, built-in type.
  • custom: true: A row derived from an application whose type is custom.

Pass include=STANDARD to exclude the custom rows, or include=CUSTOM to return only custom rows. The default is include=ALL.

Filter behavior

Filters on protocol, listenAddress, listenPort, targetAddress, targetPort, allowedAddress, allowedPort apply to both kinds of rows, so irrelevant applications are never even loaded. The forwardAddress and forwardPort filters take a boolean (true/false) and match the corresponding flag.

Validation of Application.type

Every application's type value must be:

  • A standard application-type name (case-insensitive), or
  • The value custom.

Anything else returns 400 Bad Request at the API boundary.

More info