@atlassian/clientside-extensions-docs
Advanced tools
Changelog
[2.0.0] - 2021-02-18
The Client-Side Extensions 2.0 introduces a new schema validation based on the GraphQL syntax. The previously used JSON schema syntax wasn't good enough to validate the extension points' more complex structures.
The extension developers are not directly affected by this change and can continue using the CSE 1.x. The new schema format and validation tooling are breaking changes for the extension owners only. The existing owners are mostly the Atlassian product developers.
However, if you are a plugin developer, we recommend you upgrade to the latest CSE version so that you can get better support for TypeScript.
You can read more about the GraphQL schemas on the documentation page:
FEP-765: Introduce a new validation based on GraphQL schema. We added a new @atlassian/clientside-extensions-schema
package that provides:
.graphql
files that generate React components and hooks that can be used to display extension points*.graphl
files that generate validators and React componentsCSE-75: Some of the extensions handlers are now more useful, and it is encouraged to use them:
ButtonHandler
can now be used to render a properly styled ButtonLinkHandler
can now be used to render a properly styled LinkSectionHandler
can now be used to render a sectionCSE-75: A new convenience handler for Modals
was introduced that renders an action handler, either a button
or a link
,
that will take care of the lifecycle of the modal. It is exported as ModalWithActionHandler
.
CSE-75: A ExtensionType
enum is exported containing the named identifiers for extensions.
This can be used to check if a extension descriptor is of a certain type. It can be imported as import { ExtensionType } from '@atlassian/clientside-extensions-components';
.
Currently, it supports:
ExtensionType.asyncPanel
ExtensionType.button
ExtensionType.link
ExtensionType.modal
ExtensionType.page
ExtensionType.panel
ExtensionType.section
FEP-765: We removed the support for JSON schema used to document and validate extension points APIs. Use the GraphQL based schema instead.
CSE-44 [BREAKING CHANGE]: We dropped support for Node 10. The CSE Node packages requires a Node version 12.19 or newer.
CSE-4 [BREAKING CHANGE]: We removed the MountProps
types from the PanelExtension
and ModalExtension
types. The MountProps
types used to be an empty interfaces that are no longer needed.
CSE-75 [BREAKING CHANGE]: The handlers no longer export the constant type
.
This has been moved to an enum called ExtensionType
which can be accessed from the package directly. See Added section
CSE-79 [BREAKING CHANGE]: We updated the supported version of JavaScript in generated code. All the Node and NPM packages are now compiled to ES9 (ES2018).
CSE-75 [BREAKING CHANGE]: Some of the TypeScript components within the
@atlassian/clientside-extensions-components
package were renamed.
ButtonHandler.ButtonRenderer
=> ButtonHandler
LinkHandler.LinkRenderer
=> LinkHandler
PanelHandler.PanelRenderer
=> PanelHandler
ModalHandler.ModalRenderer
=> ModalHandler
AsyncPanelHandler.AsyncPanelRenderer
=> AsyncPanelHandler
SectionHandler.SectionRenderer
=> SectionHandler
CSE-4 [BREAKING CHANGE]: The renderElementAsReact
utility function was moved from
the @atlassian/clientside-extensions
to the @atlassian/clientside-extensions-components
package. Please update your imports.
Example:
import { renderElementAsReact } from '@atlassian/clientside-extensions'
becomes
import { renderElementAsReact } from '@atlassian/clientside-extensions-components'
CSE-4 [BREAKING CHANGE]: Some of the TypeScript types were moved from
@atlassian/clientside-extensions
to the @atlassian/clientside-extensions-components
package or vice versa. If you are using
TypeScript in your project please update the types. Example:
PanelHandler.PanelRenderExtension
=> PanelExtension.PanelRenderExtension
ModalHandler.ModalRenderExtension
=> ModalExtension.ModalRenderExtension
ModalHandler.ModalAction
=> ModalExtension.ModalAction
CSE-23: WRM webpack plugin is now a peer dependency of CSE webpack plugin. This will prevent CSE from installing its own version of the plugin, causing issues in build time if the consumer uses a non-compatible version.
CSE-8 [BREAKING CHANGE]: Renamed the remaining plugin*
keywords to extension*
in
TypeScript types and internal code.
Changelog
[0.9.0] - 2020-02-18
setActions
and onClose
methods has been added to the top level ModalAPI. They will replace the ones provided as "options" in onMount modal method.setWidth
and setAppearance
methods have been added to ModalAPI.setAction
ModalAPI now can an accept a new testId
property. You can use this property to write unique selectors while working on the e2e tests.label
, url
, title
are not getting overwritten with default values.updateAttributes
.useDebug
, useValidation
, useLogging
, useDiscovery
React hooks were removed from the
@atlassian/clientside-extensions-debug
package and moved to the @atlassian/clientside-extensions-components
package.setActions
and onClose
Modal Options API is deprecated in favor for their counterparts in ModalAPI. They are still available
for you to use, but will be removed on a later version.Changelog
[1.2.0] - 2020-09-08
You can now use Client-Side Extensions to create custom pages in server products. We added a new PageExtension
extension that allows
creating custom web pages and will render a navigation link in the product UI.
Refer to the guides of creating a new page
and the guide of installing the page-bootstrapper
package.