Version 1.14
[1.14.0] - 2026-08-05
App .env / auth.json / Artisan, whitelisted app run, and structured deploy config. Requires Cipi CLI ≥ 5.0.3 (cipi self-update) for non-interactive flags and sudoers whitelist (app env, app artisan, app run, auth *, deploy-config).
Added
.envAPI —GET|PUT /api/apps/{name}/env(abilityapps-env): list variables; merge with{ "set": {…}, "unset": […] }. Sync. MCP:AppEnvShow,AppEnvUpdate(secrets redacted).auth.jsonAPI —GET|POST|PUT|DELETE /api/apps/{name}/auth(abilityapps-auth): shared Composer/structured JSON undershared/auth.json. Distinct from HTTP Basic Auth (apps-basicauth). MCP:AppAuthJson*.- Artisan REST —
POST /api/apps/{name}/artisanwith{ "command": "…" }→202job (app-artisan); pollGET /api/jobs/{id}foroutput/exit_code. Abilityapps-artisan. MCPAppArtisanremains synchronous. POST /api/apps/{name}/run— body{ "command": "composer install --no-dev" }→202job (app-run); pollGET /api/jobs/{id}for output. Abilityapps-run.GET /api/run-commands— list allowed binaries (composer, npm/npx/yarn/pnpm, ls/ll, cat/head/tail, mkdir/cp/mv/rm/…, tar/zip, git, php, node, find, …).- Guards — no editors/pagers/shells/REPLs (
nano,vim,less,bash,tinker, …); no interactive flags (tail -f,git -i,php -a,node -e, …); no shell metacharacters /..path traversal. GET|PUT /api/apps/{name}/deploy-config— structured Deployer recipe options (keep_releases, migrate/optimize/storage_link/queue_restart/horizon_terminate,node_build,predeploy_snapshot,extra_artisan). Regeneratesdeploy.phpfrom template (not a raw PHP upload). Abilityapps-deploy-config.- Token abilities —
apps-env,apps-auth,apps-artisan,apps-run,apps-deploy-configinconfig/cipi.php. - CLI whitelist —
app env,auth create|edit|show|deleteinCipiCliService::ALLOWED_COMMANDS. - MCP —
AppRun,AppRunCommands,AppDeployConfigShow,AppDeployConfigUpdate.
Changed
- OpenAPI —
info.version1.14.0; paths/schemas for env, auth.json, artisan, app-run, deploy-config; job typesapp-artisan,app-run.