The CLI's .env parser does not follow the same quoting rules as the Node processes it configures.
With this file:
readEnvFile(...).get("TOKEN") returns "abc#def" including the quote characters, while node --env-file exposes abc#def. The CLI uses readEnvFile when checking and pushing deployment secrets, so a normally quoted dotenv value can be uploaded with literal quotes even though local Node dotenv semantics remove them.
Unquoted # values have the inverse mismatch: the CLI retains the suffix while Node treats it as a comment.
Could the CLI use one dotenv parser/serializer compatible with the runtime, including qm secrets set and the setup writer?
The CLI's
.envparser does not follow the same quoting rules as the Node processes it configures.With this file:
readEnvFile(...).get("TOKEN")returns"abc#def"including the quote characters, whilenode --env-fileexposesabc#def. The CLI usesreadEnvFilewhen checking and pushing deployment secrets, so a normally quoted dotenv value can be uploaded with literal quotes even though local Node dotenv semantics remove them.Unquoted
#values have the inverse mismatch: the CLI retains the suffix while Node treats it as a comment.Could the CLI use one dotenv parser/serializer compatible with the runtime, including
qm secrets setand the setup writer?