Skip to main content

App Server V3 Reference

Report an Issue

Kind: app_server
Version: v3

The app_server resource represents an application that has been registered with Teleport.

The Teleport Application Service creates an app_server in two situations:

  1. It reads information about the target application in its configuration file when it first starts.
  2. It fetches a dynamically registered app resource from the Teleport backend that matches its dynamic resource watchers.

There can be multiple instances of an app_server for a single application, each corresponding to a different Teleport Application Service instance that proxies the application. Read more about High Availability for the Teleport Application Service. Read the reference guide for the app resource.

Top-level fields

Example:

kind: "string"
sub_kind: "string"
version: "string"
metadata: # [...]
spec: # [...]
scope: "string"
Field NameDescriptionType
kindThe app server resource kind. Always "app_server".string
metadataThe app server metadata.Metadata
scopeThe advertized scope of the server which can not change once assigned.string
specThe app server spec.App Server Spec V3
sub_kindAn optional resource subkind.string
versionThe resource version.string

App AWS

Contains additional options for AWS applications.

Example:

external_id: "string"
roles_anywhere_profile: # [...]
Field NameDescriptionType
external_idThe AWS External ID used when assuming roles in this app.string
roles_anywhere_profileContains the IAM Roles Anywhere fields associated with this Application. These fields are set when performing the synchronization of AWS IAM Roles Anywhere Profiles into Teleport Apps.App AWS Roles Anywhere Profile

App AWS Roles Anywhere Profile

Contains the fields that represent an AWS IAM Roles Anywhere Profile.

Example:

profile_arn: "string"
accept_role_session_name: true
Field NameDescriptionType
accept_role_session_nameWhether this Roles Anywhere Profile accepts a custom role session name. When not supported, the AWS Session Name will be the X.509 certificate's serial number. When supported, the AWS Session Name will be the identity's username. This value comes from: https://docs.aws.amazon.com/rolesanywhere/latest/APIReference/API_ProfileDetail.html / acceptRoleSessionNameBoolean
profile_arnThe AWS IAM Roles Anywhere Profile ARN that originated this Teleport App.string

App Identity Center

Encapsulates information about an AWS Identity Center account application.

Example:

account_id: "string"
permission_sets: 
  - # [...]
  - # [...]
  - # [...]
Field NameDescriptionType
account_idAccount ID is the AWS-assigned ID of the accountstring
permission_setsLists the available permission sets on the given account[]Identity Center Permission Set

App Server Spec V3

The app access server spec.

Example:

version: "string"
hostname: "string"
host_id: "string"
rotation: # [...]
app: # [...]
proxy_ids: 
  - "string"
  - "string"
  - "string"
relay_group: "string"
relay_ids: 
  - "string"
  - "string"
  - "string"
component_features: # [...]
Field NameDescriptionType
appThe app proxied by this app server.App V3
component_featuresComponent_features contains features supported by this app server.Component Features
host_idThe app server host uuid.string
hostnameThe app server hostname.string
proxy_idsA list of proxy IDs this server is expected to be connected to.[]string
relay_groupThe name of the Relay group that the server is connected tostring
relay_idsThe list of Relay host IDs that the server is connected to[]string
rotationContains the app server CA rotation information.Rotation
versionThe Teleport version that the server is running.string

App Spec V3

The AppV3 resource spec.

Example:

uri: "string"
public_addr: "string"
dynamic_labels: 
  "string": # [...]
  "string": # [...]
  "string": # [...]
insecure_skip_verify: true
rewrite: # [...]
aws: # [...]
cloud: "string"
UserGroups: 
  - "string"
  - "string"
  - "string"
integration: "string"
required_app_names: 
  - "string"
  - "string"
  - "string"
cors: # [...]
identity_center: # [...]
tcp_ports: 
  - # [...]
  - # [...]
  - # [...]
use_any_proxy_public_addr: true
mcp: # [...]
Field NameDescriptionType
UserGroupsA list of user group IDs that this app is associated with.[]string
awsContains additional options for AWS applications.App AWS
cloudIdentifies the cloud instance the app represents.string
corsPolicy defines the Cross-Origin Resource Sharing settings for the app.CORS Policy
dynamic_labelsThe app's command labels.map[string]Command Label V2
identity_centerEncapsulates information specific to AWS IAM Identity Center. Only valid for Identity Center account apps.App Identity Center
insecure_skip_verifyDisables app's TLS certificate verification.Boolean
integrationThe integration name that must be used to access this Application. Only applicable to AWS App Access. If present, the Application must use the Integration's credentials instead of ambient credentials to access Cloud APIs.string
mcpContains MCP server related configurations.MCP
public_addrThe public address the application is accessible at.string
required_app_namesA list of app names that are required for this app to function. Any app listed here will be part of the authentication redirect flow and authenticate alongside this app.[]string
rewriteA list of rewriting rules to apply to requests and responses.Rewrite
tcp_portsA list of ports and port ranges that an app agent can forward connections to. Only applicable to TCP App Access. If this field is not empty, URI is expected to contain no port number and start with the tcp protocol.[]Port Range
uriThe web app endpoint.string
use_any_proxy_public_addrWill rebuild this app's fqdn based on the proxy public addr that the request originated from. This should be true if your proxy has multiple proxy public addrs and you want the app to be accessible from any of them. If public_addr is explicitly set in the app spec, setting this value to true will overwrite that public address in the web UI.Boolean

App V3

Represents an app resource.

Example:

kind: "string"
sub_kind: "string"
version: "string"
metadata: # [...]
spec: # [...]
Field NameDescriptionType
kindThe app resource kind. Always "app".string
metadataThe app resource metadata.Metadata
specThe app resource spec.App Spec V3
sub_kindAn optional resource subkind.string
versionThe resource version. It must be specified. Supported values are:v3.string

CORS Policy

Defines the CORS policy for AppSpecV3

Example:

allowed_origins: 
  - "string"
  - "string"
  - "string"
allowed_methods: 
  - "string"
  - "string"
  - "string"
allowed_headers: 
  - "string"
  - "string"
  - "string"
allow_credentials: true
max_age: 1
exposed_headers: 
  - "string"
  - "string"
  - "string"
Field NameDescriptionType
allow_credentialsAllow_credentials indicates whether credentials are allowed.Boolean
allowed_headersAllowed_headers specifies which headers can be used when accessing the app.[]string
allowed_methodsAllowed_methods specifies which methods are allowed when accessing the app.[]string
allowed_originsAllowed_origins specifies which origins are allowed to access the app.[]string
exposed_headersExposed_headers indicates which headers are made available to scripts via the browser.[]string
max_ageMax_age indicates how long (in seconds) the results of a preflight request can be cached.number

Command Label V2

A label that has a value as a result of the output generated by running command, e.g. hostname

Example:

period: # [...]
command: 
  - "string"
  - "string"
  - "string"
result: "string"
Field NameDescriptionType
commandA command to run[]string
periodA time between command runsDuration
resultCaptures standard outputstring

Component Feature ID

An identifier for a specific feature supported by a Teleport component.

Component Features

Represents a set of features supported by a given Teleport component.

Example:

features: 
  - # [...]
  - # [...]
  - # [...]
Field NameDescriptionType
featuresFeatures is a list of supported feature identifiers.[]Component Feature ID

Duration

A wrapper around duration to set up custom marshal/unmarshal

Represents a single HTTP header passed over to the proxied application.

Example:

name: "string"
value: "string"
Field NameDescriptionType
nameThe http header name.string
valueThe http header value.string

Identity Center Permission Set

Defines a permission set that is available on an IdentityCenter account app

Example:

arn: "string"
name: "string"
assignment_name: "string"
Field NameDescriptionType
arnThe fully-formed ARN of the Permission Set.string
assignment_nameThe ID of the Teleport Account Assignment resource that represents this permission being assigned on the enclosing Account.string
nameThe human-readable name of the Permission Set.string

MCP

Contains MCP server-related configurations.

Example:

command: "string"
args: 
  - "string"
  - "string"
  - "string"
run_as_host_user: "string"
Field NameDescriptionType
argsTo execute with the command.[]string
commandTo launch stdio-based MCP servers.string
run_as_host_userThe host user account under which the command will be executed. Required for stdio-based MCP servers.string

Metadata

Resource metadata

Example:

name: "string"
description: "string"
labels: 
  "string": "string"
  "string": "string"
  "string": "string"
expires: # See description
revision: "string"
Field NameDescriptionType
descriptionObject descriptionstring
expiresA global expiry time header can be set on any resource in the system.
labelsA set of labelsmap[string]string
nameAn object namestring
revisionAn opaque identifier which tracks the versions of a resource over time. Clients should ignore and not alter its value but must return the revision in any updates of a resource.string

Port Range

Describes a port range for TCP apps. The range starts with Port and ends with EndPort. PortRange can be used to describe a single port in which case the Port field is the port and the EndPort field is 0.

Example:

port: 1
end_port: 1
Field NameDescriptionType
end_portDescribes the end of the range, inclusive. If set, it must be between 2 and 65535 and be greater than Port when describing a port range. When omitted or set to zero, it signifies that the port range defines a single port.number
portDescribes the start of the range. It must be between 1 and 65535.number

Rewrite

A list of rewriting rules to apply to requests and responses.

Example:

redirect: 
  - "string"
  - "string"
  - "string"
headers: 
  - # [...]
  - # [...]
  - # [...]
jwt_claims: "string"
Field NameDescriptionType
headersA list of headers to inject when passing the request over to the application.[]Header
jwt_claimsConfigures whether roles/traits are included in the JWT token.string
redirectDefines a list of hosts which will be rewritten to the public address of the application if they occur in the "Location" header.[]string

Rotation

A status of the rotation of the certificate authority

Example:

state: "string"
phase: "string"
mode: "string"
current_id: "string"
started: # See description
grace_period: # [...]
last_rotated: # See description
schedule: # [...]
Field NameDescriptionType
current_idThe ID of the rotation operation to differentiate between rotation attempts.string
grace_periodA period during which old and new CA are valid for checking purposes, but only new CA is issuing certificates.Duration
last_rotatedSpecifies the last time of the completed rotation.
modeSets manual or automatic rotation mode.string
phaseThe current rotation phase.string
scheduleA rotation schedule - used in automatic mode to switch between phases.Rotation Schedule
startedSet to the time when rotation has been started in case if the state of the rotation is "in_progress".
stateCould be one of "init" or "in_progress".string

Rotation Schedule

A rotation schedule setting time switches for different phases.

Example:

update_clients: # See description
update_servers: # See description
standby: # See description
Field NameDescriptionType
standbySpecifies time to switch to the "Standby" phase.
update_clientsSpecifies time to switch to the "Update clients" phase
update_serversSpecifies time to switch to the "Update servers" phase.