RFCs are a way for Atlassian to share what we’re working on with our valued developer community.
It’s a document for building a shared understanding of a topic. It expresses a technical solution but can also communicate how it should be built or even document standards. The most important aspect of an RFC is that a written specification facilitates feedback and drives consensus. It is not a tool for approving or committing to ideas, but more so a collaborative practice to shape an idea and to find serious flaws early.
Please respect our community guidelines : keep it welcoming and safe by commenting on the idea not the people (especially the author); keep it tidy by keeping on topic; empower the community by keeping comments constructive. Thanks!
- Publish: 11 September 2023
- Discuss: 22 September 2023
- Resolve: 11 October 2023
Summary
Dear Marketplace Partners,
At Atlassian Data Center, we plan to modify the range of third-party party libraries available for the Marketplace apps.
Our objective is to achieve compliance with increasingly challenging security vulnerability resolution time standards. At the same time, we want to ensure that Marketplace apps remain unaffected by the library upgrades we need to perform to patch these vulnerabilities.
To achieve this, we plan to coordinate a Platform release across DC products in Q1/Q2 2024. We will provide technical details, such as the list of exported libraries, around Oct/Nov 2023.
With this RFC, we aim to engage with you early to explain the problem and gather feedback on the solution.
Problem
Currently, many third-party libraries are exposed to the ecosystem (aka Grey API). Any major upgrade to these libraries risks introducing changes that can break Marketplace apps that are dependent on them. In order to mitigate that risk, we at Atlassian Data Center have often held off from upgrading libraries. In the case of security issues, we have often had to create forks of no longer supported libraries and apply the patches to these manually.
This led us to have multiple libraries forked and out-of-date.
At the same time:
- In the last year, we observed increased demand from customers to quickly upgrade third-party libraries that carry any security issues (even those that are of low severity);
- Customers don’t trust the security of the forked libraries and require costly pen-test reports, which are not scalable for Atlassian;
- The fact that we are using an outdated dependency poses a risk that we may not be able to address security issues within a reasonable timeframe without adversely impacting our customers.
Solution
We need to improve our dependencies and processes to the point where we can confidently upgrade and release any dependency immediately while making sure the apps stay stable.
To achieve this we want to significantly reduce the set of third-party libraries available to the Marketplace apps. With this, we would declare the remaining list of libraries as an API. This aims to prevent any future breaking changes for Marketplace apps while Atlassian upgrades the third-party libraries. Marketplace partners will need to define these dependencies individually and will be responsible for upgrades in all non-public libraries at their own pace while adhering to the Atlassian Marketplace Security program requirements.
To introduce this change, we will coordinate a Platform release across DC products in Q1/Q2 2024 with a regular process of EAPs shipped before.
As the next step, Atlassian aims to continuously replace unsupported third-party libraries and get to the point of proactively upgrading libraries to the latest version. The proposed solution will allow the Marketplace apps to follow that path at their own pace.
Timeline
- Q4 2023 → Share technical project details, including a list of exported libraries
- Q4 2023/Q1 2024 → Ship the Early Access Preview (EAP) versions of all products
- Q1/Q2 2024 → Ship the new Platform version in a coordinated DC products release
This timeline is subject to change.
Actions
We acknowledge that Marketplace partners whose apps rely on the removed third-party libraries will need to start managing these dependencies themselves, including patching vulnerabilities.
We will monitor and ensure Marketplace apps security compliance through the AMS program.
We also understand that technical project details are required for you to fully understand and react to the impact of the proposed change.
At this stage, we want to understand better:
- Are any hard blockers preventing you from independently managing the dependencies (for example, JAR size limits)?
- How can Atlassian support you in this transition?
As always, please leave your feedback in the comments below. We will collect it by the end of September. At this time, we will also try to answer all the questions.