test: backfill raw/global/computed report triplet coverage across plugins

The bats coverage for plugin :report keys has been uneven since the raw/global/computed split landed in PR #8640. This commit adds a single combined triplet test per settable property across app-json, builder, builder-dockerfile, builder-herokuish, builder-lambda, builder-nixpacks, builder-pack, builder-railpack, buildpacks, cron (maintenance), git (keep-git-dir, rev-env-var, source-image), logs (vector-sink, vector-global-image, vector-global-networks), network (attach-post-create, attach-post-deploy, initial-network), proxy (per-app type), ps (stop-timeout-seconds), registry (image-repo, push-on-release, push-extra-tags), storage (build/deploy/run mounts), and adds a new tests/unit/scheduler.bats and tests/unit/nginx-vhosts_properties.bats. Brings ps `procfile-path` and `stop-timeout-seconds` global getters in line with the #8640 convention (raw global, default resolved in computed). Documents the read-only and internal properties that surface in `:report` (or are written by Dokku) but cannot be managed by `:set` in a new `## Internal properties` section appended to each affected plugin's docs page.
This commit is contained in:
Jose Diaz-Gonzalez
2026-05-21 23:59:14 -04:00
parent 2bdf7b59c9
commit cdcf1fc669
35 changed files with 1332 additions and 28 deletions

View File

@@ -511,3 +511,12 @@ You can pass flags which will output only the value of the specific information
```shell
dokku network:report node-js-app --network-bind-all-interfaces
```
## Internal properties
The following properties surface in `network:report` but are not managed by `network:set` - they are derived from the running app state:
| Property | Kind | Description | Source |
|---|---|---|---|
| `--network-web-listeners` | read-only | Current `web` process listeners (host:port) for the deployed app | derived from running container inspection |
| `--network-static-web-listener` | read-only | Static listener override used when no container is running | derived from app config |

View File

@@ -220,3 +220,11 @@ You can pass flags which will output only the value of the specific information
```shell
dokku ports:report node-js-app --ports-map
```
## Internal properties
The following properties surface in `ports:report` but are not managed by `ports:set` - they are derived from the deploy:
| Property | Kind | Description | Source |
|---|---|---|---|
| `--ports-map-detected` | read-only | Port mapping inferred from `EXPOSE` directives or the running container | `builder-dockerfile` detection on deploy |

View File

@@ -265,3 +265,11 @@ You can pass flags which will output only the value of the specific information
```shell
dokku caddy:report node-js-app --caddy-computed-image
```
## Internal properties
The following properties are not managed by `caddy:set` but are recorded internally by the plugin:
| Property | Kind | Description | Source |
|---|---|---|---|
| `proxy-status` | internal | `started`/`stopped` state of the caddy compose project | `cmd-caddy-start`/`cmd-caddy-stop` in `plugins/caddy-vhosts/command-functions` |

View File

@@ -244,3 +244,11 @@ You can pass flags which will output only the value of the specific information
```shell
dokku haproxy:report node-js-app --haproxy-computed-image
```
## Internal properties
The following properties are not managed by `haproxy:set` but are recorded internally by the plugin:
| Property | Kind | Description | Source |
|---|---|---|---|
| `proxy-status` | internal | `started`/`stopped` state of the haproxy compose project | `cmd-haproxy-start`/`cmd-haproxy-stop` in `plugins/haproxy-vhosts/command-functions` |

View File

@@ -620,3 +620,13 @@ See the [ports documentation](/docs/networking/port-management.md) for more info
### Regenerating nginx config
See the [proxy documentation](/docs/networking/proxy-management.md#regenerating-proxy-config) for more information on how to rebuild the nginx proxy configuration for your app.
## Internal properties
The following properties surface in `nginx:report` but are not managed by `nginx:set`, or are recorded internally by the plugin:
| Property | Kind | Description | Source |
|---|---|---|---|
| `--nginx-last-visited-at` | read-only | UNIX timestamp of the last request served by nginx for the app | log-tailer writes the property on every request batch |
| `proxy-status` | internal | `started`/`stopped` state of the nginx system service | `cmd-nginx-start`/`cmd-nginx-stop` |
| `nginx-conf-sigil-migrated` | internal | Migration sentinel set the first time a v1 template is rewritten to the current schema | `plugins/nginx-vhosts/install` writes `"true"` once the install-time migration runs |

View File

@@ -390,3 +390,11 @@ You can pass flags which will output only the value of the specific information
```shell
dokku traefik:report node-js-app --traefik-computed-api-enabled
```
## Internal properties
The following properties are not managed by `traefik:set` but are recorded internally by the plugin:
| Property | Kind | Description | Source |
|---|---|---|---|
| `proxy-status` | internal | `started`/`stopped` state of the traefik compose project | `cmd-traefik-start`/`cmd-traefik-stop` in `plugins/traefik-vhosts/command-functions` |

View File

@@ -236,3 +236,11 @@ Proxy implementations may decide to omit some functionality here, or use plugin
Individual proxy implementations _may_ trigger app rebuilds, depending on how proxy metadata is exposed for the proxy implementation.
Finally, proxy implementations _may_ install extra software needed for the proxy itself in whatever manner deemed fit. Proxy software can run on the host itself or within a running Docker container with either exposed ports or host networking.
## Internal properties
The following properties surface in `proxy:report` but are not managed by `proxy:set`:
| Property | Kind | Description | Source |
|---|---|---|---|
| `--proxy-enabled` | read-only | `true` when the app's `disabled` property is not `true` | `plugins/proxy/proxy.go::IsAppProxyEnabled` |