Follow-up from https://github.com/orgs/ricochet-rs/discussions/9.
Depends on ricochet-rs/ricochet#1228.
Env vars can only be supplied while deploying: ricochet app deploy --env resolves them (src/env_vars.rs), RSA-encrypts them against the server public key (src/crypto.rs) and sends them as a multipart field.
There is no way to list, change or remove them afterwards.
ricochet app settings update does not cover them either, since compute_patch (src/item/settings.rs:152) only diffs _ricochet.toml fields and env vars are deliberately not part of that file.
Proposal
Add a dedicated command group once the API sub-resource exists:
# list variable names, never values
ricochet app env list <item>
# set or update variables
ricochet app env set <item> KEY=value --env-file .env
# remove a variable
ricochet app env unset <item> KEY
Reuse parse_dotenv / resolve_env_vars and encrypt_env_vars so values are RSA-encrypted client-side and plaintext never reaches a request body or a log.
Tasks
Follow-up from https://github.com/orgs/ricochet-rs/discussions/9.
Depends on ricochet-rs/ricochet#1228.
Env vars can only be supplied while deploying:
ricochet app deploy --envresolves them (src/env_vars.rs), RSA-encrypts them against the server public key (src/crypto.rs) and sends them as a multipart field.There is no way to list, change or remove them afterwards.
ricochet app settings updatedoes not cover them either, sincecompute_patch(src/item/settings.rs:152) only diffs_ricochet.tomlfields and env vars are deliberately not part of that file.Proposal
Add a dedicated command group once the API sub-resource exists:
Reuse
parse_dotenv/resolve_env_varsandencrypt_env_varsso values are RSA-encrypted client-side and plaintext never reaches a request body or a log.Tasks
src/client.rs.envsubcommand group withlist,setandunset, reusing the existing dotenv parsing and encryption helpers.--env-filealongside inlineKEY=valuepairs, matchingdeploy --env.list, and say so in the help text.settings updatedocs.