---
title: "Shows the apps for that specific named cluster"
method: GET
path: "/api/clusters/{clusterName}/apps/{appName}"
tags: ["Apps"]
---

# Shows the apps for that specific named cluster

`GET /api/clusters/{clusterName}/apps/{appName}`

## Request

- The document declares no server URL.
- Auth: none declared. Required headers: `Authorization`

Shows the apps for that specific named cluster

## Path parameters

- `clusterName` string, required

## Headers

- `Authorization` string, required

## Response `200`

Server details retrieved successfully

- ClusterApp
  - `agent` string
  - `appClusterSubstitute` string
  - `config` ConfigAppConfig
    - `appConfigVersion` integer: AppConfigVersion is the explicit persisted migration marker stamped by cluster.CanonicalizeAppContent. 0/missing means unflagged legacy (V1) content; AppConfigVersionV2 means content already matches the V1 -> V2 migration baseline and does not need re-canonicalizing for shape alone.
    - `appDbAutoCreate` boolean: AppDbAutoCreate (#1870): the app asks the cluster for its own schema, user and password ({{app.db.*}} template keys); created at provision, never on foreign objects.
    - `appDbOwned` boolean: AppDbOwned: the ownership mark, set by the provision that created the schema and the user; without it an existing schema or user is never touched (APPERR008).
    - `appDbPass` string
    - `appDbSchema` string
    - `appDbUser` string
    - `appHost` string
    - `appHostsIpv6` string
    - `appMonitorMode` string: AppMonitorMode: how an app without a route is probed. "port" (default) connects to app-port over TCP; "ping" sends an ICMP echo to the app host, for a process that listens on nothing (ERPNext worker and scheduler, #1919). The port stays the identity.
    - `appPort` string
    - `appRandomPassword` string: generated when the template references {{app.randompassword}}, stored encrypted
    - `appS3Provider` boolean
    - `appStateful` boolean: AppStateful: the app holds data (minio, a storage service), so it is accounted on the Database profile as whole DBU (reserved in the DBU pool, billed at the DBU price), not as APU. A template default (cloud18-templates minio) inherited at creation, overridable per app in the GUI.
    - `deployment` ConfigDeployment
      - `paths` ConfigPathMapping[]
        - `dockerpath` string
        - `level` integer
        - `name` string
        - `parentname` string
        - `srcname` string
        - `srcpath` string
        - `srctype` 'volume' | 'git' | 's3'
        - `volumename` string
      - `primaryRoute` ConfigRoute
        - `cname` string: Existing host-route fields kept for backward compatibility.
        - `destPort` string
        - `mode` string: Explicit source/destination fields.
        - `monitor` ConfigRouteMonitor
          - `authSecretVar` string
          - `authType` string
          - `authUser` string
          - `expectStatus` string
          - `path` string
        - `name` string
        - `port` string
        - `primary` boolean
        - `protocol` string
        - `sourcePort` string
      - `routes` ConfigRoute[]
        - `cname` string: Existing host-route fields kept for backward compatibility.
        - `destPort` string
        - `mode` string: Explicit source/destination fields.
        - `monitor` ConfigRouteMonitor
          - `authSecretVar` string
          - `authType` string
          - `authUser` string
          - `expectStatus` string
          - `path` string
        - `name` string
        - `port` string
        - `primary` boolean
        - `protocol` string
        - `sourcePort` string
      - `storages` ConfigStorageMapping
        - `gitClones` ConfigGitClone[]
          - `branch` string
          - `name` string
          - `pass` string
          - `repo` string
          - `timeout` integer
          - `user` string
          - `volumedir` string
          - `volumename` string
        - `s3Mounts` ConfigS3Mount[]
          - `accesskey` string
          - `bucket` string
          - `endpoint` string
          - `gid` string
          - `mountdir` string
          - `name` string
          - `providerName` string
          - `region` string
          - `secretkey` string
          - `uid` string: Uid / Gid: the owner the mounted files are presented as inside the container (the mount sidecar's --uid/--gid); empty = 33 (www-data), the historical value.
          - `volumedir` string
          - `volumename` string
        - `volumes` ConfigVolume[]
          - `dirperm` string
          - `group` string
          - `name` string
          - `poolname` string
          - `size` string
          - `user` string: Owner of the volume directories (OpenSVC volume user/group/dirperm): images that run as a non-root user (rustfs 10001, frappe 1000) cannot write a root-owned directory (#1870).
          - `volumedir` string
      - `variables` ConfigVariableMapping[]
        - `conditional` ConfigAgentVariable[]: This is used to set the variable value only if the agent matches
          - `agent` string
          - `value` string
        - `locked` boolean
        - `name` string
        - `type` string
        - `value` string
    - `provAppAgents` string
    - `provAppAgentsFailover` string
    - `provAppConfigurator` string: engine whose moduleset (share/opensvc/moduleset_<engine>.svc.mrm.db.json) is rendered from the app plan and handed to the container (postgres); empty = none
    - `provAppCpuCores` string
    - `provAppDiskIops` string
    - `provAppDiskSize` string
    - `provAppDiskType` string
    - `provAppDockerCmd` string
    - `provAppDockerImg` string
    - `provAppHaTopology` string
    - `provAppMemory` string
    - `provAppRouteAddr` string
    - `provAppRouteMask` string
    - `provAppRoutePort` string
    - `provAppServiceType` string
    - `provAppSizingMode` string
    - `provAppStartTimeout` string: om3 start_timeout and pull_timeout of the app container (10m, 1h); empty = the cluster default
    - `provAppTemplate` string
  - `datadir` string
  - `dbProvisionError` string: last app database auto-create refusal (#1870), "" once one goes through
  - `failCount` integer
  - `host` string
  - `hostIPV6` string
  - `id` string
  - `isHashingTemplate` boolean
  - `lastRefreshDurationMs` integer
  - `lastRefreshEnd` string
  - `lastRefreshError` string
  - `lastRefreshStart` string: Per-app refresh freshness (cluster-level AppRefreshLast* on Cluster only shows batch-wide timing, not which app is actually slow). Set via SetRefreshInProgress/SetRefreshResult under app.Mutex -- read them the same way (App.Lock()/Unlock(), or GetAppAPIView) rather than directly: these are read from a different goroutine than the one that writes them (maybeRefreshAppsAsync's worker vs. any status/API reader).
  - `name` string
  - `port` string
  - `prevState` string
  - `refreshInProgress` boolean
  - `routeStatus` ConfigRouteStatus[]
    - `cname` string: Existing host-route fields kept for backward compatibility.
    - `destPort` string
    - `mode` string: Explicit source/destination fields.
    - `monitor` ConfigRouteMonitor
      - `authSecretVar` string
      - `authType` string
      - `authUser` string
      - `expectStatus` string
      - `path` string
    - `name` string
    - `port` string
    - `primary` boolean
    - `protocol` string
    - `sourcePort` string
    - `status` string
  - `serviceName` string
  - `slaposDatadir` string
  - `state` string
  - `templateMD5` string
  - `templateMD5Prov` string
  - `type` string
  - `url` string: https://<primary route cname>/ once routed, else the internal http://host:port/
  - `version` string
  - `weight` string

## Other responses

- `500`: Internal Server Error

## Changes

- **2026-07-17** `7465ea0ee21a`: 1 info
  - endpoint added
- **2023-03-31** `b57fc7b9446e`: 1 breaking
  - api path removed without deprecation

[Operation history](https://skmtc.dev/signal18/apis/signal-18-dashboard-api/changes/api/clusters/:clusterName/apps/:appName/get.md)

---

[API](https://skmtc.dev/signal18/apis/signal-18-dashboard-api.md) - [All operations](https://skmtc.dev/signal18/apis/signal-18-dashboard-api/llms.txt) - [OpenAPI document](https://skmtc.dev/signal18/apis/signal-18-dashboard-api/revisions/8ee8a1e31294?raw)
