We are pleased to announce availability of the Bitbucket Data Center 9.0 Early Access Program (EAP) release.
This EAP release allows partners and customers who have written in-house apps to update their apps before the public release of Bitbucket 9.0.
Due no earlier than 23 July, Bitbucket 9.0 is our next platform release and will contain breaking changes.
Important things to note about this EAP release:
- The general availability release is still underway and may contain some minor API changes. However, this EAP release is intended to contain a complete picture of Bitbucket 9.0’s API.
- Do not use this EAP release in production environments. For all production use and testing of Bitbucket, use the latest official release instead.
Using the EAP
You can test your app against the EAP with Atlassian Maven Plugin Suite (AMPS) 8.16.0 or later by running the following command with the Atlassian Plugin SDK: atlas-run-standalone --product bitbucket --version 9.0.0-eap06
.
You can also build against Bitbucket version 9.0.0-eap06
.
The EAP is available as a standalone download in the following formats:
Overview of changes in the EAP
Supported platform changes
With this release, Bitbucket will require Java 17. Support for running on Java 8 and 11 has been removed.
Bitbucket 9.0 also changes support for the following platforms:
- Postgres 10, 11 and 12 are no longer supported.
- Microsoft SQL Server 2014 and 2016 are no longer supported.
- Oracle 12c R2 and 18c are no longer supported.
- Git version 2.34 or later is required.
- OpenSearch 2.11 is required.
- Elasticsearch is no longer supported.
Platform 7 upgrade
Bitbucket 9.0 includes an upgrade to Atlassian Data Center Platform 7.0. This upgrade puts us in a better position to respond to security changes with reduced disruption and breaking changes for your apps.
As part of this work, we have upgraded numerous Atlassian and third-party components to benefit from the latest security patches and bug fixes.
The Prepare your Data Center app for Platform 7 page contains an extensive list of the changes in Platform 7 and guides on how to migrate your app to Platform 7.
REST v2
Platform 7 and Bitbucket 9.0 have rearchitected the Java APIs used to implement REST resources, which we’re calling REST v2.
Note that this isn’t a change to Bitbucket’s REST API, which remains largely unchanged. These changes will only impact app developers. The underlying libraries, Jackson and Jersey, have been upgraded to the latest versions. REST v2 also makes use of JAX-RS 2.
The REST v2 upgrade guide contains advice and examples on how to upgrade your app to use REST v2.
This EAP currently has both the original REST API and REST v2 enabled. This allows app developers to focus on the API and Platform 7 changes before migrating REST resources to REST v2. A future EAP will remove support for the original REST API. The final version of Bitbucket 9.0 will only support REST v2.
Endpoint default security annotations
Bitbucket 9.0 introduces changes for improved endpoint security where you can better control access to endpoints with new annotations. Important annotations to review are @AdminOnly
, @AnonymousSiteAccess
, @LicensedOnly
, @SystemAdminOnly
, @UnlicensedSiteAccess
, and @UnrestrictedAccess
. They’ve been revised to ensure only the intended users access your application endpoints.
Starting from Bitbucket 9.0, only licensed users can access resources without specified access criteria annotations.
Check this page for more details: Prepare your Data Center app to comply with secure endpoint defaults.
WebSudo support
Bitbucket 9.0 adds support for WebSudo to further protect admin pages against malicious access.
Apps can add the @WebSudoRequired
annotation to REST APIs that require admin access. Similarly, servlets that require admin access should call WebSudoManager.enforceWebSudoProtection
. More details can be found on Adding WebSudo support to your app.
Third-party library removals
Platform 7 and Bitbucket 9.0 have removed the ability for your apps to load many third-party libraries, as well as a few Atlassian-specific libraries, from the Bitbucket application. This group of libraries are called “gray APIs”, as they were never intended to become part of the product’s API.
You will need to start bundling your own copies of these libraries with your apps if you wish to continue using them.
This change will allow us to improve Bitbucket more frequently without breaking your app or requiring you to do significant testing and rework when things change.
Deprecated Java APIs removed
We have removed Interfaces, classes, and methods in the Bitbucket Java API that were marked as deprecated in Bitbucket 8.x.
Apps that use any of these interfaces generally won’t build with Bitbucket 9.0.
Precompiled apps that used any of the removed interfaces will fail to install or run in Bitbucket 9.0, typically with java.lang.NoSuchMethodError
or java.lang.ClassNotFoundExceptions
.
Frontend: Source view plugin points
Web Fragments on the source view page have been converted to Client Side Extensions (CSEs). Apps that want to extend the source view page should move the React-based CSE framework. You can read more about using CSEs here. We also have an example plugin that uses CSEs.
The following plugin points have been migrated to CSEs:
bitbucket.file-content.source.toolbar.primary
bitbucket.file-content.source.toolbar.secondary
bitbucket.file-content.diff.toolbar.primary
bitbucket.file-content.diff.toolbar.secondary
bitbucket.file-content.diff-view.options
bitbucket.branch.layout.actions.dropdown
Frontend: jQuery update
jQuery has been updated to version 3.6.0 and jQuery Migrate to version 3.4.1. If your app uses jQuery, we recommend upgrading to version 3.6.0 for best performance and compatibility going forward.
Important things to note about the frontend API changes:
- All jQuery version 1.0 code is not backward compatible with jQuery Migrate 3.4.1. You must upgrade to a minimum of jQuery 2.0.
- Keep in mind that we plan to remove jQuery Migrate in a future Bitbucket 9.x release. Check the jQuery migration guides for more details.
Known issues
Atlassian Troubleshooting and Support Tools is not currently included in the EAP and will be bundled in a future EAP.