Skip to content

Conversation

@timja
Copy link
Member

@timja timja commented Dec 29, 2025

  • Adds a "New credentials" link to Credentials page.
  • Improves UX of selecting a credentials type
  • Uses dialogs when creating credentials to improve the experience.

Part of #986

Fixes #939

TODO:

  • Global domain doesn't seem to work right anymore
  • No create button on c:select Add - i.e. adding a credential from a credential chooser dropdown
  • c:select needs migrating to wizard, i.e. overflow button needs to give domains in overflow...
  • Don't redirect to store after creation of credentials if on root page
  • Convert domain add credentials to use wizard
  • Do we want to constrain width of domain selector for descriptions?
  • Review if WrappedCredentialsStore still needs to exist
  • Empty state for main page should have add credentials added
  • Fix integration tests
  • ATH
  • PCT
  • Take a video once we're happy with it
  • Empty scope
  • Review TODO items in code

Screenshots

image image image

Testing done

Submitter checklist

  • Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
  • Ensure that the pull request title represents the desired changelog entry
  • Please describe what you did
  • Link to relevant issues in GitHub or Jira
  • Link to relevant pull requests, esp. upstream and downstream changes
  • Ensure you have provided tests that demonstrate the feature works or the issue is fixed

@timja
Copy link
Member Author

timja commented Jan 4, 2026

I've added an empty state with button for the main page, it doesn't match the link button you did as its an overflow button. Take a look when you get a chance

@timja timja mentioned this pull request Jan 5, 2026
6 tasks
@jtnord
Copy link
Member

jtnord commented Jan 5, 2026

built locally and tried to test it - the add credential button spawns an empty diaglog when trying to create folder based credentials?

image

works when creating the credential in the global store, but there is an annoying "flash" when hitting next and going to the certificate credentials. (possibly the dialog resizing and the animation being too quick or not quick enough?)

@jtnord
Copy link
Member

jtnord commented Jan 5, 2026

possibly not this PR but #984 but the "folder store icon" (and the system store icon!) is clickable and tab-able. (The screenshot shows it with, the icon with the focus border)

image

@timja
Copy link
Member Author

timja commented Jan 5, 2026

built locally and tried to test it - the add credential button spawns an empty diaglog when trying to create folder based credentials?

Any idea why? The dialog jelly file is in the same place newCredentials was and is 404'ing =/

Edit: Its missing this prefix: /job/folder

@timja
Copy link
Member Author

timja commented Jan 5, 2026

Working on the folder issue, seems relative path is calculating from the dialog path but form submission is to the current path so its calculating the wrong path, something like that...

@timja timja mentioned this pull request Jan 10, 2026
6 tasks
@timja
Copy link
Member Author

timja commented Jan 11, 2026

I've noticed a couple of times in ATH that behaviour isn't running in time and the scope dropdown is empty:

image

Would be good to fix this

@timja
Copy link
Member Author

timja commented Jan 11, 2026

Example here I think:
https://ci.jenkins.io/job/Core/job/acceptance-test-harness/job/PR-2565/5/testReport/plugins/GitPluginTest/latest_linux_jdk21_firefox_split6___custom_name_and_email/

aster200632705|Caused: java.lang.IllegalArgumentException: Failed to instantiate class com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey from {"stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey","scope":"","id":"","description":"","username":"gitplugin","usernameSecret":false,"privateKeySource":{"value":"0","privateKey":"[value redacted]","$redact":"privateKey","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource"},"passphrase":"[value redacted]","$redact":"passphrase"}
master200632705|	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:870)
master200632705|	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:633)
master200632705|	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:628)
master200632705|	at hudson.model.Descriptor.bindJSON(Descriptor.java:662)
master200632705|	at hudson.model.Descriptor.newInstanceImpl(Descriptor.java:620)
master200632705|Caused: java.lang.LinkageError: Failed to instantiate class com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey from {"stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey","scope":"","id":"","description":"","username":"gitplugin","usernameSecret":false,"privateKeySource":{"value":"0","privateKey":"[value redacted]","$redact":"privateKey","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource"},"passphrase":"[value redacted]","$redact":"passphrase"}

@timja
Copy link
Member Author

timja commented Jan 13, 2026

That was resolved, main thing left is ATH to sort.... taking quite awhile...

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[JENKINS-71109] CSS misalignment of nested form entries when editing credentials

3 participants