Blogs

We regularly introduce fresh blog content and updates every few weeks. During our work, we frequently encounter unexpected challenges, and now and then, we stumble upon exciting Eureka moments that we're eager to share.

Enhancing Jira With Pocket Knife Query Dsl Solving Complex Sql Queries Beyond Active Objects

Introduction

As Atlassian App developers, we are well-versed in using ActiveObjects, which is the go-to ORM for handling most database operations in Jira plugin development. ActiveObjects makes it easy to perform basic CRUD operations, create tables etc. However, when it comes to more advanced querying, such as aggregating data with groupBy or performing complex SQL operations like joining multiple tables, ActiveObjects falls short. For example, if you want to retrieve a specific count of grouped results, ActiveObjects doesn’t offer the flexibility needed, often returning only the count of the first row or limiting you to entity-specific operations.

To overcome these limitations, Atlassian provides a powerful library called PocketKnife QueryDSL. This library enables us to perform complex queries that ActiveObjects can't handle, such as joining multiple tables, aggregating data, and retrieving specific column counts with groupBy. PocketKnife QueryDSL offers type-safe queries and provides greater control and flexibility over how data is retrieved and manipulated in Jira, opening up possibilities for more sophisticated database operations. Below is step by step tutorial of how to integrate PocketKnife QueryDSL to your plugin -

Read More

In the dynamic realm of software development, the choice of an Integrated Development Environment (IDE) is akin to selecting the perfect instrument for a craftsperson. It's a decision that profoundly influences productivity, workflow efficiency, and ultimately, the quality of the end product. Among the myriad of options available, IntelliJ IDEA stands out as a beacon for Java developers, offering a robust platform tailored to their specific needs.


“An IDE is not just a tool; it's a sanctuary where ideas take shape and dreams become code.”

Read More

Streamlining Atlassian Plugin Development With Webpack An Essential Guide For Developers

Webpack: Simplifying Asset Management for Atlassian Plugins

image-20240524-063234.png

Understanding Webpack

Read More

The Role Of Chat Gpt In Software Development A Tool Not A Crutch

Written by : Harshit Sharma on Sep 13, 2024

Artificial intelligence (AI) is rapidly transforming various industries, and software development is no exception. ChatGPT is helpful, but not an answer to every question. Developers should avoid too much reliance on ChatGPT. Developers should know how to use their skills and try to solve the complex problem first on their own to increase their knowledge and self-reliance, and also do research before using AI tools like ChatGPT.

Developers might become overly dependent on AI tools, leading to a decline in their problem-solving skills and deep understanding of programming concepts.

Read More

Understanding Atlassians Design System And Achieving Uniformity

A design system is like a blueprint for digital products. It's a set of rules and tools that teams use to keep the look and feel of products consistent. A design system streamlines your team's workflow by tackling repetitive tasks and addressing recurring issues, reclaiming valuable time. A design system aids in managing the complexity of product transitions between dark and light themes. A design system teaches new designers about the product and its rules, allowing them to get productive faster.

It has many advantages, but it does not come without some obstacles. One of the challenges is continuous maintenance. Like any other product, the design must be kept up to date to remain relevant.

Public design systems tackle the aforementioned problem in large part since they provide thorough documentation, pre-built components, and design principles. This can greatly minimize the time and effort necessary for the first setup when compared to creating your own system from scratch. Public design systems are often maintained by internal teams or even the open-source community. They frequently issue updates, upgrades, and bug fixes to keep the design system relevant and current with the newest design trends and best practices. This reduces the strain on your team to constantly monitor and update the design system. In this article, we will look at one of the public design systems, the Atlassian Design System.

Read More

Usage Of Dc Automated Testing With Python A Step By Step Selenium Tutorial For Hello World


Selenium is a powerful tool for web automation, and when combined with Python, it becomes an easy-to-use yet efficient framework for automating tasks on web applications. In this tutorial, we will walk you through automating a simple ‘Hello World’ task on Jira Data Center (DC) using Selenium in Python. We will cover how to detect web elements, execute JavaScript code, and even debug your automation script. Let’s dive in!

Prerequisites:

Read More

Why Website Speed Matters And How To Improve It

In today's digital World, website performance is directly linked to the success of your online business. Websites that load quickly retain users better than those with slower load times. For example, a case study on How The Economic Times passed Core Web Vitals thresholds and achieved an overall 43% better bounce rate ,demonstrates the real cost of website performance. In this blog, we'll explore the key factors that make a website faster and how you can improve your site's speed.


1. Reducing Time to First Byte(TTFB):

Read More

Atlassian Cloud Has Ai But What About Data Center Meet The Mcp Workaround

What is the Model Context Protocol?

The Model Context Protocol (MCP) is an open standard that connects AI models to your tools, databases, and services in a secure, controlled way. Think of it as a translator that helps AI understand and work with your systems.

AI models are powerful but often lack access to real-world data. MCP solves this by creating a secure bridge between AI and your existing tech, without giving up control over your data.

Read More

Beyond Tags Mastering Jira Labels For Smarter Project Management

Struggling to stay organized in your Jira projects? Whether it’s keeping track of issues, prioritizing tasks, or maintaining clarity across your workflows, Jira can feel overwhelming without the right tools. One simple yet powerful feature that can help is labels. Labels are custom tags you can attach to issues to highlight specific characteristics. They offer a flexible, informal way to classify and organize work—often more intuitively than using components or version numbers.

In this blog, we’ll cover:

Read More

How To Exclude Specific Branches Using Bitbucket Branch Permissions

Controlling who can create or modify branches in a repository is a critical part of maintaining code quality and workflow discipline — especially in large teams or regulated environments.

Bitbucket Cloud provides a powerful mechanism for managing this via Branch Permissions. But what if you want to allow a pattern, like release/*, but exclude a specific branch, say release/1.3.0?

Let’s explore how Bitbucket lets you do just that.

Read More