T-2YHP-app-state-overrides-follow-fleet
State: planning/proposed · Impact: medium · Complexity: medium
Some Determined state roots read their own env variable before fleet. While set, that variable
wins over FLEET_ROOT, so one override no longer moves every root. Decide each variable’s fate so
FLEET_ROOT alone isolates the app, as P-0017-scratch-root-isolation requires.
| Location | Role today |
|---|---|
solutions/determined/crates/determined-core/src/models.rs | models_root() reads DETERMINED_MODELS_DIR first. The platform stamps it and NUXT_MODELS_DIR onto sidecars |
solutions/determined/crates/determined-backup/src/config.rs | The store path reads VAULT_BACKUP_STORE first, relative to the repo root |
solutions/determined/crates/determined-platform/src/services.rs | connector_pidfile() reads CONNECTOR_STATE_DIR first. apps/connector/src/paths.ts matches it |
solutions/determined/crates/determined-platform/src/bin/platform-server.rs | --state-dir / PLATFORM_STATE_DIR move the settings and roster root |
solutions/determined/tests/ui/harness/platform.ts | The e2e adapter unsets all of these, and GET /api/diagnostics/paths reports each resolved root, so the harness catches a leak |
Proposed
Section titled “Proposed”Each variable is either removed, with its callers moved to FLEET_ROOT or FLEET_<HOME>_DIR, or
kept with a written reason. A kept variable stays reported by the diagnostics endpoint.
Approach
Section titled “Approach”- List every reader of each variable, Rust and TS, including tests and docs.
- Per variable, choose remove or keep.
DETERMINED_MODELS_DIRpoints tests at a downloaded pack, so aFLEET_DURABLE_DIRreplacement must still serve that case. - Remove the chosen variables and update their callers and docs.
- Record the kept ones, with reasons, in S-0011-application-state-locations’s overrides section.
| Area | Note |
|---|---|
solutions/determined/crates/determined-core/ | Models root |
solutions/determined/crates/determined-backup/ | Store path |
solutions/determined/crates/determined-platform/ | Connector dir, --state-dir, sidecar env |
solutions/determined/apps/connector/ | TS twin of the connector dir |
docs/planning/standards/S-0011-application-state-locations.md | Kept overrides |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: Each of
DETERMINED_MODELS_DIR,NUXT_MODELS_DIR,VAULT_BACKUP_STORE,CONNECTOR_STATE_DIRandPLATFORM_STATE_DIRis removed or listed in S-0011 with a reason. - AC-2: With only
FLEET_ROOTset, every pathGET /api/diagnostics/pathsreports lies under the root, asplatform_server_paths.rsasserts.
Out of scope
Section titled “Out of scope”SDF_FLEET_ROOT, whichT-JPFCretires.
Dependencies
Section titled “Dependencies”- none
Discovery context
Section titled “Discovery context”- Review of the scratch-root e2e plan and harness found these variables unplanned.