2024.4
Web UI
Revamped the IDE Services dashboard.
Updated the Aggregated Settings tab on the User details page.
Updated the Automation Tokens tab on the Configuration page.
Added change history pages for users, licenses, and plugins.
Implemented a number of minor improvements to enhance the look and feel of the IDE Services Web UI.
Profiles
Added a setting to restrict access to JetBrains Marketplace.
AI Enterprise
Implemented the functionality for configuring multiple AI providers on the server. For more details, refer to Use custom OpenAI models.
Added an option to choose the default AI provider on a profile level.
API Changes
GET /api/authentication
: Added the endpointGET /api/authentication/identity-providers
: Added the endpointGET /api/automation-tokens
:Added the new optional
query
request parameterstate
Added the required property
/items/state
to the response with the200
status
POST /api/automation-tokens
: Added the required propertystate
to the response with the200
statusDELETE /api/automation-tokens/{id}
:Added the optional property
expireDate
to the response with the200
statusAdded the optional property
lastModifiedBy
to the response with the200
statusAdded the optional property
lastModifiedDate
to the response with the200
statusAdded the required property
clientId
to the response with the200
statusAdded the required property
createdBy
to the response with the200
statusAdded the required property
createdDate
to the response with the200
statusAdded the required property
id
to the response with the200
statusAdded the required property
isExpired
to the response with the200
statusAdded the required property
state
to the response with the200
statusAdded the required property
version
to the response with the200
status
GET /api/automation-tokens/{id}
: Added the required propertystate
to the response with the200
statusPATCH /api/automation-tokens/{id}
: Added the required propertystate
to the response with the200
statusGET /api/constituents/ai
:Added the optional property
provider/jetbrains/enableCloneFinder
to the response with the200
statusAdded the required property
allowDataCollection
to the response with the200
statusAdded the required property
availableProviders
to the response with the200
statusAdded the required property
defaultProvider
to the response with the200
status
POST /api/constituents/ai
:Added the new optional request property
allowDataCollection
Added the new optional request property
defaultProvider
Added the new optional request property
provider/jetbrains/enableCloneFinder
Added the new
jetbrains
enum value to the request propertyprovider/jetbrains/id
Added the new
jetbrains
enum value to the request propertyprovider/openai/id
Added the new
openai
enum value to the request propertyprovider/jetbrains/id
Added the new
openai
enum value to the request propertyprovider/openai/id
Added the optional property
provider/jetbrains/enableCloneFinder
to the response with the200
statusAdded the required property
allowDataCollection
to the response with the200
statusAdded the required property
availableProviders
to the response with the200
statusAdded the required property
defaultProvider
to the response with the200
status
PUT /api/constituents/ai
:Added the new optional request property
allowDataCollection
Added the new optional request property
defaultProvider
Added the new optional request property
provider/jetbrains/enableCloneFinder
Added the new
jetbrains
enum value to the request propertyprovider/jetbrains/id
Added the new
jetbrains
enum value to the request propertyprovider/openai/id
Added the new
openai
enum value to the request propertyprovider/jetbrains/id
Added the new
openai
enum value to the request propertyprovider/openai/id
Added the optional property
provider/jetbrains/enableCloneFinder
to the response with the200
statusAdded the required property
allowDataCollection
to the response with the200
statusAdded the required property
availableProviders
to the response with the200
statusAdded the required property
defaultProvider
to the response with the200
status
DELETE /api/constituents/ai/providers/{providerId}
: Added the endpoint.GET /api/constituents/ai/providers/{providerId}
: Added the endpoint.GET /api/constituents/cwm
: Added the required propertyactiveUsers
to the response with the200
statusPOST /api/constituents/cwm
: Added the required propertyactiveUsers
to the response with the200
statusPUT /api/constituents/cwm
: Added the required propertyactiveUsers
to the response with the200
statusPOST /api/idp/sync-status
: Added the required propertysyncType
to the response with the200
statusGET /api/license
:Breaking change! Removed the required property
activatedBy/role
from the response with the200
statusBreaking change! Removed the required property
activatedBy/username
from the response with the200
statusAdded the required property
activatedBy/name
to the response with the200
statusAdded the required property
activatedBy/type
to the response with the200
statusAdded the required property
constituents
to the response with the200
status
POST /api/license
:Breaking change! Removed the required property
activatedBy/role
from the response with the200
statusBreaking change! Removed the required property
activatedBy/username
from the response with the200
statusAdded the required property
activatedBy/name
to the response with the200
statusAdded the required property
activatedBy/type
to the response with the200
statusAdded the required property
constituents
to the response with the200
status
GET /api/license/audit-logs
:Breaking change! Removed the required property
items/items/author/role
from the response with the200
statusBreaking change! Removed the required property
items/items/author/username
from the response with the200
statusAdded the required property
items/items/author/name
to the response with the200
statusAdded the required property
items/items/author/type
to the response with the200
status
GET /api/plugins-audit-logs
:Added the optional property
items/items/createdBy/email
to the response with the200
statusAdded the required property
items/items/createdBy/id
to the response with the200
statusAdded the required property
items/items/createdBy/isActive
to the response with the200
statusAdded the required property
items/items/createdBy/name
to the response with the200
statusAdded the required property
items/items/createdBy/type
to the response with the200
status
GET /api/profiles/{profileId}/audit-logs
:Breaking change! Removed the required property
items/items/author/role
from the response with the200
statusBreaking change! Removed the required property
items/items/author/username
from the response with the200
statusBreaking change! Added the new
MARKETPLACE_SETTING
enum value to theitems/items/type
response property for the response status200
Added the new optional
query
request parameterlimit
Added the new optional
query
request parameteroffset
Added the new optional
query
request parameterorder
Added the new optional
query
request parameterpage
Added the new optional
query
request parametersort
Added the new enum value
MARKETPLACE_SETTING
to thequery
request parametertype
Added the required property
items/items/author/name
to the response with the200
statusAdded the required property
items/items/author/type
to the response with the200
status
GET /api/profiles/{profileId}/audit-logs/{eventId}
:Added the required property
author/name
to the response with the200
statusAdded the required property
author/type
to the response with the200
status
POST /api/tools/settings
:Added the new optional
header
request parameterX-IDES-USER-EMAIL
Added the new optional
header
request parameterX-IDES-USER-ID
Added the new optional
header
request parameterX-IDES-USER-SUBJECT
POST /api/tools/settings/ide-configuration
:Added the new optional
header
request parameterX-IDES-USER-EMAIL
Added the new optional
header
request parameterX-IDES-USER-ID
Added the new optional
header
request parameterX-IDES-USER-SUBJECT
GET /api/users
: Added the required propertyitems/items/isReadOnly
to the response with the200
statusPOST /api/users
:Added the required property
constituents
to the response with the200
statusAdded the required property
isReadOnly
to the response with the200
status
GET /api/users/{id}
:Added the required property
constituents
to the response with the200
statusAdded the required property
isReadOnly
to the response with the200
status
PATCH /api/users/{id}
:Added the required property
constituents
to the response with the200
statusAdded the required property
isReadOnly
to the response with the200
status
PUT /api/users/{id}
:Added the required property
constituents
to the response with the200
statusAdded the required property
isReadOnly
to the response with the200
status
GET /api/users/{userId}/audit-logs
: Added the endpointGET /api/users/{userId}/products
:Added the required property
items/items/appType
to the response with the200
statusAdded the required property
items/items/availableBuilds
to the response with the200
statusAdded the required property
items/items/unavailableBuilds
to the response with the200
status
GET /api/users/{userId}/settings
: Added the endpoint