Skip to content

docs: the new credential dialog asks where the secret is kept first - #233

Open
blaipr wants to merge 1 commit into
mainfrom
docs/credential-store-first
Open

blaipr wants to merge 1 commit into
mainfrom
docs/credential-store-first

Conversation

@blaipr

@blaipr blaipr commented Nov 3, 2026

Copy link
Copy Markdown
Member

What this changes

The credentials list page, in English and the 10 translations:

  • The dialog's steps are listed in their new order: Store before Login.
  • The Store row says the Reference shows once a store is chosen, and that its example follows the store (a HashiCorp Vault path, a CyberArk account).
  • A paragraph under the Login fields: with Secret store, no user nor password is asked. The Login step keeps only the type's address fields, and a plain login has no Login step at all.

Why

Documents ansibleforms/ansibleforms#1314 and its pull request. To be merged once the app release that has it is out.

blaipr added a commit to ansibleforms/ansibleforms that referenced this pull request Nov 3, 2026
…1316)

## What this changes

Closes #1314.

In the **New credential** dialog (Connections > Credentials > Add credential):

- **Store before Login.** The steps are Credential, Type, Store, Login: where the user and password are kept is asked before them.
- **Nothing to type for a secret store.** With **Secret store** chosen, the Login step asks no user nor password; it says they are read from the store. Nothing typed is thrown away on Save any more.
- **No empty Login step.** A plain login read from a store (User and password, Git, API) has no Login step at all, and its Save comes with the Store step. An SSH, database, mail, directory or server-address credential keeps its Login step, with its address fields only. Which fields a step shows is read from the fields' own rules (`fieldShownFor`), so a new type follows them.
- **Reference after the store.** **Reference** shows once a secret store is chosen, and its example and help follow the store: a HashiCorp Vault path, or a CyberArk account (`Safe=Linux;Object=srv01`). The credential's page, its Store tab, does the same. `AppAdminMulti` hands a field's help and placeholder rules the dialog's lists for that.
- **CyberArk and HashiCorp Vault logins.** These are how a secret store logs in, so they never read from a store. A store choice left from another type no longer hides their AppID or token.

## Why

The dialog asked for the user and password first and where they are kept second. Choosing a secret store then silently dropped what was typed, while the save still said the credential was created. One could believe the typed password was now in the secret store.

## How it was verified

- New `client/tests/credential-store-first.test.js` covers the step order, the Login step skipped or kept by type, the fields shown with each choice, the reference's text per store, a CyberArk login ignoring a left store choice, and what is saved.
- Checked on a dev server: a User and password credential read from a CyberArk store saves from the Store step, with the CyberArk account example.

- [x] `cd client && npm run lint:check && npm run format:check && npm run test`
- [x] `cd server && npm run lint:check && npm run test` (no server change)

BEGIN_COMMIT_OVERRIDE
fix: a new credential asks where its secret is kept before its login, and asks nothing a secret store gives (#1314)
END_COMMIT_OVERRIDE

Website PR: ansibleforms/website#233

## Checklist

- [x] Branch is named `<type>/<description>` and the title is a Conventional Commit that reads well as a changelog line
- [x] `CHANGELOG.md` is NOT edited - it is generated from the title on release
- [x] UI strings added to **all** locale files (`en`, `de`, `fr`, `it`, `es`, `nl`, `ca`, `pt`, `ja`, `zh`, `pl`)
- [ ] New page has a router entry with a `beforeEnter` guard, and a matching sidebar `permission:` (no new page)
- [ ] New database column is in **both** the schema patch and `create_schema_and_tables.sql`, plus `SCHEMA_MANIFEST` (no new column)
- [ ] A new or changed table or column that holds configuration is covered by the config seed (no change to what is stored)
- [ ] New environment variable has a `server/help.yaml` entry (no environment variable)

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant