Persisting Sensitive Data
The Credentials Store API allows you to store sensitive user data securely, like passwords, server URLs, etc.
How to Use
Use PasswordSafe to work with credentials.
Common Utility Method:
The generateServiceName() function helps name credentials in a consistent way so that they can be easily recognized in password managers and when users are asked to allow the IDE to access a secret. Consider passing a subsystem name that identifies the plugin or its area of functionality, and a key that identifies the specific secret (for example, account name for password, server name for access token, etc.). Examples:
Subsystem | Key | Generated Service Name |
|---|---|---|
MyService API | joe.doe | IntelliJ Platform MyService API — joe.doe |
Acme Repository | example.com/repo | IntelliJ Platform Acme Repository — example.com/repo |
Retrieve Stored Credentials
Retrieving Credentials in Remote Development Context
Since 2025.3, a new method was introduced in PasswordSafe:
Besides being coroutine-friendly, it returns "ephemeral" credentials that are valid only while the client is connected to the backend in the Remote Development context. When the client disconnects, the credentials are erased so that nothing can be done on the user's behalf without the user.
Store Credentials
To remove stored credentials, pass null for the credentials parameter.
Storage
The default storage format depends on the OS.
OS | Storage |
|---|---|
Windows | File in KeePass format |
macOS | Keychain using Security Framework |
Linux | Secret Service API using libsecret |
Users can override the default behavior in .
Storage in Remote Development Context
Before 2025.3, passwords were stored on the backend side in plain text.
Since 2025.3, they are being transparently redirected to the frontend and are stored according to the local environment and settings (KeePass, keychain, etc.).