JQL Contract Tests
by ProfitSignal Labs

Setup and use

  1. Open JQL Contract Tests in Jira Apps. Enter the numeric project ID and load its suite. You need Browse Projects to see occupied slots.
  2. Choose a slot. A project administrator enters a short name, either a saved filter ID or literal draft JQL, and issue IDs that must be included or excluded.
  3. Use 1–50 distinct issue IDs from the selected project. Do not put the same ID in both lists. Optional minimum and maximum counts apply to the entire complete visible query result.
  4. Validate and save the contract. Reload its slot to recheck sources; saving creates an immutable suite revision.
  5. For a candidate query, change the draft inputs and choose Compare saved contract with current draft. This does not change the stored contract or native filter.
  6. Read again and prepare CSV generates quoted, copyable CSV text from current source reads.

Results

PASS means all tested expectations and count bounds matched a complete observed result. FAIL means an expectation or count bound was not met. QUERY_ERROR means Jira rejected the query. INCONCLUSIVE means access, coverage, limits or consistency could not be verified. STALE_RETRY requires a new check.

Results concern the current user and read time. currentUser(), relative dates, permissions, indexing and issue changes can affect membership without a filter edit. Comparison covers common tested reference IDs, not a full result-set diff or atomic snapshot.

Personal history and deletion

Run and save personal check stores the latest complete observation for the selected contract revision. Read my recent checks shows at most five recent revisions after rechecking their original sources. Records expire logically after 30 days. Deleting your project history hides it immediately; repeat bounded cleanup until two empty observations at least one minute apart confirm completion. Configuration erasure removes old query bodies and leaves version markers. Removing just one contract creates a new revision; its older revisions remain until full erasure. Jira records and exported copies are unchanged.

Limits

Ten contract slots per project, fifty distinct reference IDs per contract, JQL up to 8,000 characters, and at most 1,000 visible matches per scan. Queries must return only the selected project; they are not rewritten or broadened. Configurations support 128 revisions. Source operations share a 150-call and 20-second budget; comparison/history may hit this earlier than a single check. In-flight requests are not cancelled; late results are rejected. These are safety bounds, not demonstrated maximum throughput. Narrow the query or reference set if the check is incomplete.

Reports and CSV expire on-screen after 60 seconds. History reads scan at most 200 personal records per project and display up to five for the selected slot; erase history if that bound is exceeded. No automatic scans, alerts, filter editor, permission auditor, attachments, issue-value snapshots or transaction guarantee are included. Interface language: English.