TODOΒΆ
tasks/01_admin.yml:8hands the administrator password to the container as-e ADMIN_PASSWORD=β¦on thecontainer execcommand line, so it is readable in the process list of the stack host while the task runs and in the taskβscmdwhereverMASK_CREDENTIALS_IN_LOGSis off (read from the role file, not measured in a process list). Options: write the value to the stdin of the script together with the script body, or pass--env-filewith a0600file that the task removes again.files/shell/admin/user.sh:18passes that password tobin/console user:createas--password="$ADMIN_PASSWORD", so it is in the argument list of the PHP process inside the web container (read from the role file). Options: letuser:createprompt and feed the prompt through stdin, or create the user with a random throwaway password and set the real one through the Admin API.files/shell/admin/user.sh:23passes the same password tobin/console user:change-passwordas--password=β¦(read from the role file). Options: feed the interactive prompt ofuser:change-passwordthrough stdin, or update the password throughPATCH /api/user/<id>with the body on stdin.tasks/setup/oidc.yml:25hands the administrator password andtasks/setup/oidc.yml:30the Keycloak client secret tofiles/php/oidc/client.phpas-e ADMIN_PASSWORD=β¦and-e OIDC_CLIENT_SECRET=β¦on thecontainer execcommand line (read from the role file;ssowas disabled on the stack of the design pass). Options: send both as a JSON document on stdin after the script, or mount them through--env-filewith a0600file.files/shell/init.sh:110-112generates the lock password of the installerβsadminaccount and passes it tobin/console user:change-password admin --password=β¦, so it is in the argument list of that process during the first start (read from the role file). Options: feed the prompt ofuser:change-passwordthrough stdin, or deactivate the account with oneUPDATEthrough the existing PDO connection instead of setting a password.Every fresh load of
/adminby a signed-in administrator is redirected to#/sw/first/run/wizard/index/(measured on the compose stack: the dashboard URL ends on the wizard route until a hash navigation leaves it), becausefiles/shell/init.shinstalls with--basic-setupand never completes the first-run wizard. Options: add--skip-first-run-wizardtosystem:installfor new installations, or setcore.frw.completedAtthroughbin/console system:config:setfor existing ones.The administration sign-in page names
https://login-image.shopware.com/login/login.jpgas its first background image, a request to the vendor on every visit (read from the administration stylesheet, rule.sw-login .sw-login__image; whether the content security policy lets the request through was not measured, and the design stylesheet removes the image, so this only concerns deployments withdesigndisabled). Options: keep the host out ofimg-srcinmeta/csp.ymlso the bundled fallback image is used, or allow the request and document it.