From 0b0840d00516e8aca6c6f5c16e4b8dd9e3e3fe27 Mon Sep 17 00:00:00 2001 From: Andrew Brereton Date: Mon, 24 Aug 2026 01:18:10 +1000 Subject: [PATCH] Update zestly/dev-login-bundle recipe to use when@dev (#2030) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to the review feedback on #2026: env-scoped config/*/dev/ directories are the outdated approach. Both files move to flat paths guarded by a when@dev: block. The packages file is guarded too rather than left bare — the bundle is registered for dev only, so an unguarded zestly_dev_login: root key in config/packages/ has no extension to load it in prod and would break cache warmup. Claude-Session: https://claude.ai/code/session_01FtiTUbCskmCiy9k78vCL19 Co-authored-by: Claude Opus 5 (1M context) --- .../config/packages/dev/zestly_dev_login.yaml | 16 ---------------- .../0.1/config/packages/zestly_dev_login.yaml | 17 +++++++++++++++++ .../0.1/config/routes/dev/zestly_dev_login.yaml | 5 ----- .../0.1/config/routes/zestly_dev_login.yaml | 5 +++++ zestly/dev-login-bundle/0.1/manifest.json | 6 +++--- 5 files changed, 25 insertions(+), 24 deletions(-) delete mode 100644 zestly/dev-login-bundle/0.1/config/packages/dev/zestly_dev_login.yaml create mode 100644 zestly/dev-login-bundle/0.1/config/packages/zestly_dev_login.yaml delete mode 100644 zestly/dev-login-bundle/0.1/config/routes/dev/zestly_dev_login.yaml create mode 100644 zestly/dev-login-bundle/0.1/config/routes/zestly_dev_login.yaml diff --git a/zestly/dev-login-bundle/0.1/config/packages/dev/zestly_dev_login.yaml b/zestly/dev-login-bundle/0.1/config/packages/dev/zestly_dev_login.yaml deleted file mode 100644 index d10d200c..00000000 --- a/zestly/dev-login-bundle/0.1/config/packages/dev/zestly_dev_login.yaml +++ /dev/null @@ -1,16 +0,0 @@ -zestly_dev_login: - # The identities offered by GET /_dev/login and `bin/console dev:login`. - # - # There is no sensible default for this — it depends entirely on your fixtures — which is - # why it is the one setting this recipe writes. Everything else the bundle exposes already - # has a working default and is documented in the README. - # - # This is a convenience menu, not a whitelist: any identifier your application's user - # provider accepts will work, and listing one here grants nothing on its own. - # - # To build the list from your fixtures, a repository, or per-subdomain in a multi-tenant - # app, implement Zestly\DevLoginBundle\Identity\IdentityProviderInterface and alias it — - # it receives the current Request. - identities: [] - # - { identifier: 'admin@example.com', label: 'Admin', roles: ['ROLE_ADMIN'] } - # - { identifier: 'user@example.com', label: 'Regular user' } diff --git a/zestly/dev-login-bundle/0.1/config/packages/zestly_dev_login.yaml b/zestly/dev-login-bundle/0.1/config/packages/zestly_dev_login.yaml new file mode 100644 index 00000000..e13fe990 --- /dev/null +++ b/zestly/dev-login-bundle/0.1/config/packages/zestly_dev_login.yaml @@ -0,0 +1,17 @@ +when@dev: + zestly_dev_login: + # The identities offered by GET /_dev/login and `bin/console dev:login`. + # + # There is no sensible default for this — it depends entirely on your fixtures — which + # is why it is the one setting this recipe writes. Everything else the bundle exposes + # already has a working default and is documented in the README. + # + # This is a convenience menu, not a whitelist: any identifier your application's user + # provider accepts will work, and listing one here grants nothing on its own. + # + # To build the list from your fixtures, a repository, or per-subdomain in a multi-tenant + # app, implement Zestly\DevLoginBundle\Identity\IdentityProviderInterface and alias it — + # it receives the current Request. + identities: [] + # - { identifier: 'admin@example.com', label: 'Admin', roles: ['ROLE_ADMIN'] } + # - { identifier: 'user@example.com', label: 'Regular user' } diff --git a/zestly/dev-login-bundle/0.1/config/routes/dev/zestly_dev_login.yaml b/zestly/dev-login-bundle/0.1/config/routes/dev/zestly_dev_login.yaml deleted file mode 100644 index 2f1ea977..00000000 --- a/zestly/dev-login-bundle/0.1/config/routes/dev/zestly_dev_login.yaml +++ /dev/null @@ -1,5 +0,0 @@ -# Dev login endpoints. Loaded only because this file lives in config/routes/dev/ — that is -# one of the bundle's safety gates, so a production router never learns these paths exist. -# If you move this file out of a dev-scoped directory, you remove that gate. -zestly_dev_login: - resource: '@ZestlyDevLoginBundle/config/routes.php' diff --git a/zestly/dev-login-bundle/0.1/config/routes/zestly_dev_login.yaml b/zestly/dev-login-bundle/0.1/config/routes/zestly_dev_login.yaml new file mode 100644 index 00000000..eecf8da2 --- /dev/null +++ b/zestly/dev-login-bundle/0.1/config/routes/zestly_dev_login.yaml @@ -0,0 +1,5 @@ +# Dev login endpoints. The `when@dev:` guard is one of the bundle's safety gates — a production +# router never learns these paths exist. Drop the guard and you drop that gate. +when@dev: + zestly_dev_login: + resource: '@ZestlyDevLoginBundle/config/routes.php' diff --git a/zestly/dev-login-bundle/0.1/manifest.json b/zestly/dev-login-bundle/0.1/manifest.json index 076048f5..254961d7 100644 --- a/zestly/dev-login-bundle/0.1/manifest.json +++ b/zestly/dev-login-bundle/0.1/manifest.json @@ -15,11 +15,11 @@ "", " php bin/console dev:login", "", - " * Declare who shows up in that list in config/packages/dev/zestly_dev_login.yaml.", + " * Declare who shows up in that list in config/packages/zestly_dev_login.yaml.", "", " * This grants password-free login to any account your user provider accepts.", - " It registers no services outside the dev environment, and its routes live in", - " config/routes/dev/ so they do not exist in a production router.", + " It registers no services outside the dev environment, and its routes are imported", + " under when@dev: so they do not exist in a production router.", "", " * Docs: https://github.com/ZestlyDigital/dev-login-bundle" ]