Script Studio: Security and Governance

    This page describes who may use Script Studio, what a script is permitted to do, the limits that apply to execution, and where information is stored. It is intended for administrators responsible for approving the application and for those carrying out reviews.

    1. Access

    Script Studio is available only to Jira site administrators. The permission of the person making the request is verified for every action, including reading and saving files, creating fields and issuing access tokens.

    Note: All site administrators share a single workspace, and there is no separate permission model within Script Studio. This reflects the fact that anyone able to administer the site can already perform any action a script could perform. What Script Studio provides is a record: every change is committed and every execution is retained. Advanced: how the permission check is applied

    The Jira administration interface makes Script Studio visible only to administrators, but this is not relied upon as the control. Each request independently verifies the caller's administer permission against Jira, on the server. A request originating from outside the intended interface is therefore rejected in the same way.

    2. What a script may do

    In Jira

    Scripts use the same permissions as Script Studio itself, which requests the following:

    PermissionAllows
    Read work itemsReading issues, comments, worklogs, attachments and links
    Write work itemsCreating, editing, commenting on and transitioning issues
    Read usersLooking up users
    Manage project configurationProjects, fields, screens, versions, components and roles
    Manage Jira configurationIssue types, workflows, filters and site settings
    Store application dataStoring the values of calculated fields

    A script cannot exceed these permissions. The editor identifies any endpoint outside them while a script is being written.

    Note: UI modification scripts are an exception. These run in the browser rather than on the server, and call Jira as the person filling in the form is permitted to, not as Script Studio is permitted to. A UI modification is therefore bounded by the permissions of whoever has the form open, which can be narrower, or broader in the specific sense of user-level access, than the application's own grant. See UI Modifications.

    Its own storage

    A script may create SQL tables of its own and read and write them between executions. This storage is separate from Jira and does not draw on the permissions above; see Script Storage (SQL). Table names that would collide with the application's own tables are refused.

    Outside Jira

    Server-side scripts have no general access to external networks. The only outbound communication performed is to the configured Git repository provider. Where an external system must be involved, the direction is reversed: a REST endpoint is published and the external system calls it.

    3. Script variables and who can see them

    A script variable is visible to context.variables according to how the script was started: a manual run sees every stored variable, while a schedule, an event, a field, a REST call or a workflow rule sees only the names the script has explicitly listed in an export const variables declaration. This is a deliberate allow-list, so that a secret set for one purpose cannot leak out through a script an administrator did not expect to have access to it. UI modification scripts, running in the browser, never receive variables at all. See Run Inputs and Script Variables.

    4. External access to Script Studio

    Two permissions govern external access to the Script Studio API, independently of the permissions held in Jira:

    PermissionAllows
    Run scriptsRunning a script that an administrator has published as a REST endpoint, and receiving its result
    Read run historyReading the execution history of such a script

    Nothing else is reachable through this route. Files and configuration are not accessible. An administrator must also authorise the calling application once, under Settings → Apps → Connected apps.

    Endpoints that do not use Atlassian authentication are protected by an access token issued for that endpoint. See REST Endpoints. Advanced: how access tokens are protected

    Each token is generated with 256 bits of randomness and is displayed only once. Only a cryptographic hash of the token is retained, and comparisons are performed in constant time so that no information is revealed by the time taken to reject an incorrect token. Tokens carry a recognisable prefix, so that one found in an external system's configuration can be identified as belonging to Script Studio.

    5. Execution limits

    Each way of starting a script has a time limit appropriate to the situation.

    Started byTime limitReason
    An administrator, from the editor8 secondsThe result is displayed immediately
    A field calculation5 secondsAn issue view is awaiting the value
    A workflow validator4 secondsA user is awaiting the transition
    A workflow post function20 secondsThe transition has already completed
    A scheduleScripts due at the same time share a period of 45 secondsPlatform limit
    A REST call, awaiting the result45 or 20 seconds, depending on the access methodPlatform limit
    A REST call, in background mode4 minutesThe caller has already received a response
    A UI modificationBounded by the browser session; not a server-side executionRuns on the issue form itself

    Resource limits

    LimitValue
    Jira API calls in a single execution50
    SQL statements in a single execution40
    Size of a single script32 KB
    Total size of a script and the files it references256 KB, across a maximum of 25 files
    Files per workspace100
    Files that are not source code5 MB each, 40 MB in total
    REST calls accepted per script60 per minute
    Output retained per execution80 lines
    Value returned, as retained4 KB
    Script variables50 per installation

    A script that exceeds its time limit is stopped and the execution is recorded as having timed out. Advanced: how a script is isolated

    A script executes in a restricted JavaScript context rather than as ordinary application code, with the usual routes out of that isolation — reaching a live function belonging to the host, or compiling new code from a string at run time — deliberately closed off. This is the level of isolation the underlying platform makes available; it is not a claim that a script runs in a separate operating-system process.

    6. Where information is stored

    InformationLocation
    Scripts, folders and other filesWithin the Atlassian tenant
    Version historyWithin the Atlassian tenant
    Schedules, event selections, field, endpoint, UI modification and workflow rule configurationWithin the Atlassian tenant
    Tables a script creates for its own useWithin the Atlassian tenant, in the same database as the application's own data, kept apart by name
    Run history and script outputWithin the Atlassian tenant, subject to the retention policy
    Script variablesStored encrypted; a value cannot be retrieved once saved, only replaced
    Endpoint access tokensStored only as a cryptographic hash
    The repository access tokenStored securely by the platform, encrypted
    Workflow definitionsIn Jira; not copied into Script Studio

    No information leaves the Atlassian data boundary other than what is deliberately sent: a push to a configured repository, a response to a call made to a published endpoint, or a call a UI modification script makes as the person using the form.

    7. Editor extensions

    The set of editor extensions is fixed by the vendor and ships with the application. An administrator cannot install additional extensions, from any source. Advanced: why this is fixed rather than configurable

    An earlier release allowed an administrator to install compatible extensions from a public registry. This has been removed: every extension available in the editor is now reviewed and bundled with the application ahead of time, closing off a class of third-party code that would otherwise run inside a Jira administration page. The set changes only when the vendor updates it.

    8. Personal data

    Script Studio records the Atlassian account identifier of whoever last changed a file and whoever ran a script manually, purely as an audit trail. In line with Atlassian's platform-wide requirement for any app that stores account identifiers, these are included in the site's personal data report, and are cleared automatically if the corresponding Atlassian account is deleted.

    9. Reviewing an instance

    QuestionWhere it is answered
    What has been written for this instance, and what is each item used for?The file tree, where each script carries an indicator of its purpose
    What is currently failing?The indicators in the file tree, and the Errors tab of the run history
    What did this script do overnight?The run history, including the complete output
    Who ran this manually?The run's detail pane, by name
    Who changed this, when, and why?Source control, including the description and the comparison
    Which transitions use this script?The Properties panel
    Which screens display this field, or run this UI modification?The field or UI modification configuration screen

    Note: 📹 Video placeholder — reviewing an instance: establishing what has been written using the file tree, the run history and the version history.

    Related pages