[BUG] AppValidator._validateManifest has no validation branch for compose type #33

Closed
opened 2026-05-08 23:51:26 +00:00 by Mark · 0 comments
Owner

Problem

In launcher/validation/AppValidator.js, the _validateManifest method validates app manifests based on normalizedType. However, there is no validation branch for the "compose" type. When type: compose is specified, the validation falls through all mode-specific checks (node, dockerfile, image, replit, static) and only applies generic id/port validation at lines 379-391.

This means:

  1. Required compose fields like compose.proxyService are never validated
  2. Missing compose.yml is caught later in _validateStructure, but confusing error messages can occur
  3. The compose mode has no documented field requirements in the validation layer

Expected

Add a compose validation branch that:

  • Requires id, name, version, port (same as other modes)
  • Validates compose.proxyService if specified
  • Does NOT require entry.command (since compose file defines services)
  • Provides clear error messages for missing fields

Impact

  • Users get confusing validation errors when deploying compose apps (see issue #26)
  • No clear documentation of required fields for compose mode manifests

File

launcher/validation/AppValidator.js:281-377 - Missing compose case in the type switch

## Problem In `launcher/validation/AppValidator.js`, the `_validateManifest` method validates app manifests based on `normalizedType`. However, there is no validation branch for the `"compose"` type. When `type: compose` is specified, the validation falls through all mode-specific checks (node, dockerfile, image, replit, static) and only applies generic id/port validation at lines 379-391. This means: 1. Required compose fields like `compose.proxyService` are never validated 2. Missing compose.yml is caught later in `_validateStructure`, but confusing error messages can occur 3. The compose mode has no documented field requirements in the validation layer ## Expected Add a compose validation branch that: - Requires `id`, `name`, `version`, `port` (same as other modes) - Validates `compose.proxyService` if specified - Does NOT require `entry.command` (since compose file defines services) - Provides clear error messages for missing fields ## Impact - Users get confusing validation errors when deploying compose apps (see issue #26) - No clear documentation of required fields for compose mode manifests ## File `launcher/validation/AppValidator.js:281-377` - Missing compose case in the type switch
Mark closed this issue 2026-05-18 20:50:16 +00:00
Sign in to join this conversation.
No description provided.