Skip to content

refactor(jira): use OpenShell providers for triage and code credentials #1108

Description

@ralphbean

Jira support currently takes two different paths. The triage harness declares providers/jira-ro.yaml, but also expands the real JIRA_TOKEN into env.sandbox; the code harness keeps the token on the runner and prefetches the Jira issue into .issue-context.json.

Could we converge both agents on OpenShell provider-backed Jira access? The reason to do this is to let the agents query Jira when they need to while keeping the credential boundary at the gateway: the real API token should never appear in a sandbox environment variable, file, process argument, log, or generated context. The sandbox should only receive the provider's opaque placeholder, which OpenShell replaces at the HTTP layer.

Acceptance criteria:

  • The Jira overlays for both triage and code attach the appropriate Jira provider and OpenShell profile.
  • JIRA_TOKEN is not copied or expanded into either sandbox through env.sandbox, host_files, or generated issue context. Only an OpenShell provider placeholder is available to sandboxed Jira clients.
  • The code agent reads Jira source work items through provider-backed Jira API access instead of runner-side credential use and .issue-context.json prefetching.
  • Runner-side triage mutations can continue to use the real credential where needed, but the agent's sandboxed Jira reads use the provider boundary.
  • The Jira profiles restrict access to the required Jira Cloud hosts, HTTP methods and paths, and calling binaries. Read-only sandbox access should remain read-only.
  • Jira skills and scripts continue to authenticate successfully with Jira Cloud Basic auth without assuming that the sandbox-visible token is the real secret.
  • Tests verify provider/profile selection for Jira-triggered triage and code runs, verify the expected Jira behavior, and fail if the real token is present anywhere in the sandbox configuration or prepared files.
  • The triage and code documentation describes provider-backed Jira authentication and the credential boundary accurately.

This would bring Jira in line with the provider-based credential delivery model in fullsend ADR 0025 while preserving the split between sandboxed reads and trusted runner-side writes.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions