Jira Governance & Admin Helper / Settings & FAQ v3.1 Docs

Organization API Key

Most things work without the key. You can do Work Item Configuration scanning and cleanup, scheme management, role assignments, user listing, board management, attachments, components, releases, and the audit log analyser all without it. The key is optional — it unlocks a specific set of features that use the Atlassian Organization Admin API.

Without API Key

  • Work Item Configuration — all tabs, full scan and bulk delete
  • Jira Audit Log Analyser — search, filter, export
  • Scheme management — all 4 scheme types
  • Bulk role assignment and role membership report
  • User listing, space overview, CSV export
  • Board management, attachments, components, releases
  • Automation Rules (uses a separate email + API token)

With API Key — additional features

  • Suspend user access at the organization level
  • Delete users via the Admin API
  • Last Active dates per Atlassian product
  • Inactive owner detection for dashboards and filters
  • Group Management — bulk add/remove members, delete groups, usage analysis
  • Product access revocation

How to configure

The key comes from admin.atlassian.com — not from id.atlassian.com. This is a frequent source of confusion. The token at id.atlassian.com is a personal API token for your individual account; what you need here is an Org-level API key, and only Organization Admins can create one.

  1. Log in to admin.atlassian.com as an Org Admin If you can see the Settings menu there, you're an org admin. If you only see a list of sites without Settings, you're a site admin only — ask your org admin to create the key.
  2. Create the key Go to Settings > API keys > Create API key. Name it something descriptive and set an expiry date. The app doesn't auto-rotate keys — set a calendar reminder to renew before the expiry, or key-dependent features will quietly stop working.
  3. Copy the key immediately You only see it once. Copy it before closing the dialog.
  4. Find your Organization ID It's in the URL at admin.atlassian.com — a UUID that looks like d90a038j-62jc-18a6-jka2-1jjc17d23d75.
  5. Enter both in the app Go to Settings in the app, paste the key and Org ID, click Save. The app validates the key, shows whether it worked, and auto-detects your primary user directory.
⚠️

The key is shared

All admins on the site share this key. If you delete it in Settings, everyone loses access to suspend/delete, last-active dates, and group management until a new key is configured. Don't remove it without a plan to replace it immediately.

Once saved, the key is encrypted in Forge's secret storage. The browser never sees the raw key — Settings only shows a "Configured" status indicator. The key isn't included in any server logs.

Bulk Operation Limits

Two settings control how many items can be processed per bulk operation:

  • Max Delete — maximum items per delete operation (default 10, max 200)
  • Max Update — maximum items per update or assign operation (default 10, max 200)

The default of 10 is conservative — it's there to prevent accidental large-scale deletions. For most admins who've spent a few sessions with the app, it's too low for actual cleanup work. Bumping it to 50 or 100 is reasonable once you're comfortable with how the confirmation dialogs work and what "In Use / Not In Use" means in context. Both the frontend and the server enforce the limit, so you can't bypass it from the browser console.

You can lower the limit back at any time. There's no penalty for changing it, and it only applies to operations going forward — it doesn't affect anything already done.

Activity Log Settings

The Activity Log is the app's own internal record of actions performed through this app: user deletes, suspends, board deletions, access revocations, scheme assignments. It's stored in Forge SQL (TiDB, MySQL-compatible) and has a configurable retention period — default 90 days, adjustable from 1 to 365 days. Entries older than the retention period are automatically cleaned up.

It's worth being clear about the difference between this and the Jira Audit Log Analyser:

  • Activity Log (under Help & Settings) — this app's own history. Tracks what admins did specifically through this app. Stored in Forge SQL with configurable retention.
  • Jira Audit Log Analyser (under Governance) — Jira's built-in audit log. Tracks everything that happened in the entire Jira instance from any source, including native Jira UI actions, API calls, other apps. Read-only via the app; not stored by the app.

Both are useful, but they answer different questions. "Did I bulk-delete those old workflows last month?" → Activity Log. "Who changed the permission scheme on PROJECT-X on March 15th?" → Jira Audit Log Analyser.

Privacy Policy

What Data We Access

Access Level Data
Read Spaces, workflows, statuses, resolutions, fields, screens, priorities, schemes, agile boards, attachments, components, versions
Read Users, groups, application roles, space roles, dashboards, filters
Read Jira audit log records — read-only via Audit Log Analyser, no storage
Read Organization data via Admin API (last-active dates, product access, directories) — only when API key configured
Write Scheme assignments, role assignments, dashboard/filter ownership changes, automation rule enable/disable/transfer
Delete Workflows, schemes, fields, screens, statuses, priorities, resolutions, users, dashboards, filters, boards, attachments, automation rules, components, versions, teams
Suspend User access via Org API or JSM API

What We Store

Type Data Storage
Encrypted Organization API key Forge secret storage (setSecret)
Encrypted Account ID of admin who configured the key Forge secret storage (for GDPR deletion)
Config Organization ID, directory ID, access level, bulk limits, audit retention Forge KVS (not PII)
Audit Activity Log entries (admin account ID, action type, target IDs, timestamp) Forge SQL (TiDB) — configurable retention, default 90 days
Temporary CSV export files Forge KVS, 10-minute expiry, single-use, auto-deleted after download
Temporary Scan caches (user setup, product group mapping) Forge KVS, 5–10 minute TTL, auto-cleaned
Temporary Nonce tokens for replay protection Forge KVS — consumed immediately on use, ~50 bytes each

No user data (names, emails, profile information) is permanently stored by this app. All scan data — spaces, users, schemes, boards, attachments, automation rules — lives in browser memory and disappears when you close the tab. The Jira Audit Log Analyser reads Jira's audit log live and stores nothing. Uninstalling the app automatically removes all stored data — both KVS and SQL are wiped on uninstall.

Security Practices

How the app is built to be safe

  • Forge-native — runs entirely on Atlassian infrastructure, no external servers, no data leaves Atlassian's cloud except for optional Org Admin API calls to api.atlassian.com
  • Server-side auth on every call — every resolver checks admin permission via asUser() + mypermissions API before doing anything; there's no way to bypass this at the UI level
  • Replay protection — all destructive operations require a one-time UUID nonce; submitting the same delete request twice rejects the second one
  • Actions attributed to your account — write and delete operations run via asUser() context, so they appear in Jira's audit log under your name, not the app's identity
  • API keys encrypted at rest — stored via Forge's setSecret, never sent to the browser, never included in logs
  • Secure CSV exports — random UUID filenames, 10-minute TTL, single-use, deleted after download, 5MB maximum
  • Formula injection prevention — CSV values starting with =, +, -, or @ are prefixed with a tab to prevent spreadsheet execution
  • No tracking — no third-party analytics, no cookies, no telemetry of any kind

External API Connections

API Purpose When Used
Jira REST API v3 All core operations Always, within Forge sandbox
JSM REST API Portal customer suspend When suspending JSM customer accounts
Agile REST API Board scanning, deletion, filter analysis When using Agile Boards feature
Automation REST API (api.atlassian.com) Scan, enable/disable, delete, transfer automation rules When using Automation Rules (requires email + API token, per-session only)
Teams Public REST API (api.atlassian.com) List, manage, archive, delete Atlassian teams When using Teams feature (requires email + API token, per-session only)
Org Admin API (api.atlassian.com) User suspend/delete, last active, groups, directories Only when API key is configured

GDPR Compliance

  • Implements Atlassian's report:personal-data lifecycle event scope
  • Personal data report: Returns any API key config record tied to the requesting user's account, and any Activity Log entries in both KVS and SQL that reference their account ID
  • Personal data delete: If the requesting user configured the API key, it removes it. Redacts their account ID from all Activity Log entries. Cleans up any temporary caches that reference them.
  • Uninstalling the app automatically removes all stored data — KVS and SQL are completely wiped on uninstall, with no manual cleanup needed

Frequently Asked Questions

General

Q: Who can access this app?

Jira site admins only. That means you need the global ADMINISTER permission — not just project admin, not just JSM agent. The distinction that confuses people most: "project admin" in Jira is a per-project role, and it doesn't give you access to this app. You need site-level admin, which is what lets you into Jira's top-level Settings. If you can navigate to Jira Settings from the main nav (the gear icon at the top), you're a site admin and you'll have access.

Q: Does the app work without the API key?

Yes, most features work fine without it. You can do all of Work Item Configuration, Audit Log Analyser, scheme management, role assignment, user listing, board management, attachments, components, and releases. The key adds user suspend/delete, last-active dates, inactive owner detection, and group management. If you don't need those, skip the key setup.

Q: What's the difference between the Activity Log and the Jira Audit Log Analyser?

They track different things. The Activity Log (under Help & Settings) is this app's own record — it shows actions performed through this app specifically: user deletes, suspends, board deletions, access revocations. It's stored in Forge SQL with configurable retention and is useful for "what did I do through this app last month?" The Jira Audit Log Analyser (under Governance) reads Jira's built-in audit log — everything that happened in your entire Jira instance from any source, including native Jira UI actions, API calls, and other apps. The app reads that log live and doesn't store any of it.

Q: Is my API key stored securely?

Yes. It's stored using Forge's setSecret — encrypted at rest, never sent to the browser, not included in logs. The browser only ever sees a "Configured" status indicator, not the key itself. It's shared across all admins on the site, so treat it like any other privileged credential.

Work Item Configuration

Q: How are the tabs organized?

The main Work Item Configuration view has tabs for Workflows, Work Types, Fields, Permissions, Priorities, Notifications, and Screens. Each tab has an Overview sub-tab (summary stats) and a Details sub-tab (full list with search, filter, sort, and bulk delete). Additional sections — Spaces, Dashboards & Filters, Agile Boards, Attachments, Components, Releases, Automation Rules — are in the sidebar under their respective groups and work the same way.

Q: Why can't I delete some items?

Items marked "In Use" can't be deleted because they're still referenced by an active configuration. Check the Lookup dropdown or expand the row to see what's referencing them — usually it's a scheme that's assigned to a space, or another item further up the dependency chain. Fix the reference first (reassign the space, delete the parent scheme, etc.), then the item will show as "Not In Use" and can be deleted.

Q: How does "Last Used" work for custom fields?

It uses Jira's built-in field usage tracking via the field search API. The date reflects the last time a value was written to that field on any issue. Not all field types are tracked by Jira's API — fields that aren't tracked show a dash. For the ones that are tracked, it's reliable: if a field shows Last Used in 2020 on an active instance, it genuinely hasn't been updated since then.

Q: What happens when I permanently delete trashed projects?

Jira processes the permanent deletion in the background — it's not instant. Projects with many issues can take several minutes to fully delete. You can monitor progress at Jira Settings > Projects > Trash. Once the deletion completes, rescan your workflow and scheme tabs — things that showed as "In Use" because of those trashed spaces will now show as unused and become eligible for cleanup.

Jira Audit Log Analyser

Q: What data does the Audit Log Analyser read?

It reads Jira's built-in audit log via the /rest/api/3/auditing/record API. That includes all configuration changes: scheme updates, workflow modifications, user management actions, permission changes, and more — anything Jira itself records. It doesn't read content (issue fields, comments, attachments) — only configuration and admin actions.

Q: Does it store any audit data?

No. Records are fetched live on each search. User display names are cached in server memory for 10 minutes to avoid redundant API calls during a session, but nothing is persisted to any storage. When you close the tab, it's all gone.

Q: How many records can I export?

CSV export is capped at 5,000 records per export. For date ranges that produce more than 5,000 events, narrow the filters — add a category filter, reduce the date range, or search for a specific user or object type. You can run multiple exports and combine them in a spreadsheet if needed.

Scheme Management

Q: Why are team-managed spaces skipped?

Team-managed spaces control their own configuration — they don't participate in the global scheme library that company-managed spaces use. Jira's REST API doesn't support bulk scheme assignment for them. They show up in the space list so you can see them, but during Apply they're marked Skipped. To change scheme-equivalent settings on a team-managed space, do it from within that space's own Project Settings.

Q: What happens when I change a workflow scheme on a space with issues?

Jira requires a migration step. Each issue has a current status, and if the new workflow scheme has different statuses, Jira needs you to map old statuses to new ones. The app surfaces Jira's native migration page for that space — you complete the mapping there. Empty spaces update immediately without any migration. This is a Jira platform requirement; there's no way to skip it for spaces with issues.

Q: Why does notification scheme assignment show manual links instead of auto-applying?

Jira's REST API doesn't support notification scheme reassignment via REST for most scheme types — the endpoint simply doesn't exist. The app identifies which spaces need updating and provides direct links to each space's notification settings page so you can apply the change with one click in each space. It's an API limitation on Jira's side, not the app's side.

User Management

Q: The Load Access & Activity scan is taking forever — is something wrong?

Probably not — that scan is genuinely slow on large instances because it has to check every user's product access and last login date. On 15,000 users expect about 8 minutes. The progress bar shows where it is, so you can tell whether it's still moving. As long as the counter is incrementing ("Scanning 4,500 of 15,000 users"), it's working. Don't close the tab while it's running — you'd lose all the data and have to start over.

Q: What's the difference between Suspend and Delete?

Suspend blocks login while keeping the account and all its data intact — it's reversible by re-activating the account in Atlassian admin. Delete permanently removes the user from your directory — it's not reversible, and it affects them across all Atlassian products in your org, not just Jira. For someone who's left the company, suspend is usually the right first step; delete can come later once you've confirmed there's no data recovery needed.

Automation Rules

Q: Why do I need to enter email and API token for Automation Rules?

The Atlassian Automation REST API requires Basic authentication — your Atlassian email address and an API token generated at id.atlassian.com (not the Org API key). These credentials are used only for your current browser session and are never stored anywhere. When you close the tab or the session ends, they're gone. You'll need to re-enter them next time you use the Automation Rules feature.

Q: Can I transfer rules to the "Automation for Jira" app user?

Yes. Use the Transfer Ownership action and enter the account ID of the app user directly in the text field — don't use the dropdown, which only shows regular user accounts. App user account IDs usually look like 557058:f58131cb-b67d-43c7-b30d-6b58d40bd077 and can be found in Jira's audit log or by checking the automation rule's current owner in Jira's native Automation settings.

Q: Why can't I delete some automation rules?

Jira only allows deletion of disabled rules. If you try to delete an active rule, it'll fail. Disable it first, then delete. If you're bulk-cleaning up rules, the typical workflow is: filter to the rules you want to remove, bulk-disable them, then bulk-delete. The app handles this in sequence if you select "disable and delete."

Teams

Q: Why do I need email and API token for Teams?

The Teams Public REST API requires Basic authentication with your Atlassian email and an API token from id.atlassian.com. Same pattern as Automation Rules — per-session only, never stored. The credentials are only sent to Atlassian's Teams API endpoint, nowhere else.

Q: What are external teams?

External teams are managed by an identity provider via SCIM. They show up in the team list as read-only — you can see their members but can't change them through the app. Changes to SCIM-managed teams have to be made in the identity provider (Azure AD, Okta, etc.), not in Jira or this app.

Components & Releases

Q: What does Check Usage do for components and versions?

For components, it checks whether any issues in the space are currently assigned to that component. For versions, it checks both fixVersion and affectedVersion fields across all issues in the space. Once checked, items with no issue assignments are marked "Not In Use" and become eligible for bulk deletion. The check has to be run before deletion — the app won't let you delete items you haven't checked yet.

Q: How does version deletion work when some issues still reference the version?

Version deletion uses Jira's removeAndSwap API. If any issues reference the version being deleted, Jira removes those references from the issues rather than blocking the deletion. You won't get stuck trying to clean up a version that a few old issues are still using.

Attachments

Q: How many attachments can I search at once?

Up to 5,000 per JQL search — that's a Forge platform constraint. For instances with more attachments than that in a given search, break it up: search by project, by date range, or by file type. For example, search for just PDFs in a project first, then images, then all other types. The client-side filters (file type, size range, author) let you narrow results further after each search loads without making additional API calls.

Dashboards & Filters

Q: How does inactive owner detection work?

After loading dashboards or filters, the app checks each owner's account status via the Jira user API. Accounts that are deactivated get flagged as "Inactive" in the Owner Status column. Filter the list to "Inactive owners" to see the full set, then select them all and use Change Owner to bulk-transfer to an active admin.

Troubleshooting

Problem Solution
App not visible in Apps menu You need Jira site admin permissions — the app is hidden from non-admins by Atlassian's platform condition. If you are an admin, try refreshing the page — Forge apps sometimes take a minute to appear after a fresh install.
"You don't have permission to view this app" You need the global ADMINISTER permission in Jira. Project admin doesn't qualify. Contact your site admin to confirm your access level.
"License Required" screen The app needs an active Marketplace subscription. Go to Apps > Manage apps to start or renew a trial, or purchase a subscription.
Scan is running slowly Expected on large instances. The chunked scanning approach keeps the app within Forge's limits but takes longer proportionally. The progress bar tells you where it is. Don't close the tab while a scan is running.
API key errors or "API key invalid" Double-check it's the Org API key from admin.atlassian.com (not a personal API token from id.atlassian.com). Check whether the key has expired — expired keys fail silently. Make sure both the key and Org ID are entered correctly in Settings.
Can't delete an item The item is "In Use" — it's referenced by a space, scheme, or another configuration item. Use the Lookup dropdown or expand the row to see what's referencing it. Remove those references first.
CSV download fails or shows "expired" Download links expire after 10 minutes and are single-use. Export again to get a fresh link.
Group operations fail Confirm the Primary Directory is set in Settings (it should auto-detect on API key save, but can be changed manually). SCIM/IdP-managed groups are read-only — changes must go through the identity provider.
Audit Log Analyser shows no results Try expanding the date range or clearing filters. Jira only retains audit log records for a limited period depending on your plan — older records may not be available regardless of what you search for.
"This operation was already executed" Each delete operation can only be executed once (replay protection via one-time nonces). If you see this, the operation already ran. Refresh the page and check whether the items were deleted. If not, start a new operation.
Automation Rules not loading Confirm you've entered a valid Atlassian email and an API token from id.atlassian.com (not the Org API key). These credentials are session-only and may need to be re-entered if the session has expired.

Support

Email support@techclimbs.com for bug reports, feature requests, or questions. Response is typically within 24 hours on business days.

When you email, it helps to include:

  • Your Jira instance URL (e.g., yourcompany.atlassian.net)
  • What you were trying to do
  • What happened instead
  • Any error messages you saw (screenshots are helpful)
  • App version (shown in the top-right badge of every page)