Public Pages
Public Pages

๐Ÿง‘โ€๐Ÿ’ป Technical Specifications

mamamamamam amamamm

Engineered for flexibility. Powered by Jira APIs.


โš™๏ธ Core Technologies

Dynamic Score is built using:

  • Atlassian Forge (Cloud Runtime)

  • React with Forge UI / Forge Custom UI

  • Jira REST API v3 for loading issue and project-level data

  • Issue Property API for saving scoring results

  • Project Property API for storing scoring configurations

  • Forge secure storage (optional for future features)

All calculations run on the client side for instant feedback.


๐Ÿงฌ Architecture Overview

A lightweight Forge app embedded directly in Jira:

  • Admin configuration lives in Space Settings → Apps → Dynamic Score

  • Issue-level scoring UI loads in the issue panel

  • Configurations and values are stored in Jira properties (no external DB)

Architecture is split into two main modules:

  1. Settings Page – where admins create and edit scoring configurations

  2. Issue Panel – where users interact with dropdowns and formulas


๐Ÿ” How It Works (Step by Step)

1. App loads inside the Jira issue panel

The Forge custom UI iframe initializes using the issue context.

2. Reads the current issue key

The app retrieves the issue ID via Forge bridge (view.getContext()).

3. Loads active scoring configuration

Fetches the project property:
/rest/api/3/project/{id}/properties/dynamic-scoring-config

Identifies which configuration is marked as active.

4. Renders scoring interface

Based on configuration, shows:

  • Dropdowns

  • Formula info

  • Thresholds

  • Score preview

5. User selects dropdown options

The app recalculates the score immediately based on:

  • Base scores

  • Formula preset

  • Weights

  • Rules

  • Thresholds

6. User clicks “Save”

App stores data in:
/rest/api/3/issue/{key}/properties/dynamic-scoring-values

Saved metadata includes:

  • Selected dropdown values

  • Final score

  • Risk label (Low/Medium/High)

  • Configuration ID

7. (Optional) User adds a comment

If enabled, the app posts:
/rest/api/3/issue/{key}/comment

Comment includes readable scoring summary.


๐Ÿ“ก APIs Used

API Endpoint

Purpose

/rest/api/3/project/{id}/properties/dynamic-scoring-config

Load and save scoring configurations

/rest/api/3/issue/{key}/properties/dynamic-scoring-values

Read/write saved scores on issues

/rest/api/3/issue/{key}

Read issue details if needed

/rest/api/3/issue/{key}/comment

Optional comment on save

Forge bridge (context)

Get current issue and project metadata


๐Ÿ’พ Data Storage

Dynamic Score does not use external servers or databases.
All data is stored inside Jira:

Project-level (Space Settings)

dynamic-scoring-config
Contains:

  • List of all configurations

  • Active config ID

  • Dropdown definitions

  • Base scores

  • Weights

  • Formula type

  • Rules

  • Thresholds

Issue-level

dynamic-scoring-values
Contains:

wide760

No data is sent outside your Jira instance.


๐Ÿš€ Performance

  • Loads configuration once per issue

  • All calculations run instantly in-memory

  • Values are stored efficiently in small JSON blobs

  • Saves only diffs, not full configuration

  • Minimal API calls (1 load, 1 save)


๐Ÿ›ก Security

Dynamic Score fully follows Forge security architecture:

  • Runs in an isolated sandbox

  • Cannot access data outside the current issue/project

  • Uses OAuth-scoped permissions

  • No external network calls

  • No persistent storage outside Jira

Permissions required:

  • read:jira-work

  • write:jira-work

  • read:jira-project

  • write:jira-project

  • read:jira-user (optional, for comments)


๐Ÿงช Test Coverage

Based on the real logic implemented:

  • Formula evaluation (unit-tested across all scoring types)

  • Fallback logic for invalid math (division by zero, nulls)

  • Rule evaluation for Basic Scoring

  • Threshold assignment (Low/Medium/High)

  • Configuration load/save operations

  • Issue property read/write scenarios

  • Comment creation flow

  • UI-state syncing between configurations and selected values


๐Ÿงฐ Dev Environment

  • Forge CLI v11+

  • Node.js 18+ runtime

  • Bundled React environment (Forge Custom UI)

  • ESLint for linting

  • Local development via forge tunnel

  • @forge/api for Jira REST calls

  • @forge/bridge for issue context and event interactions

Current page Main