Developers paste API keys into Jira every day. SecretSentry catches them there: it scans every issue and comment for leaked secrets, flags them in the issue panel, and lets a Rovo agent answer "what leaked in this project?" — all without a single byte leaving Atlassian.

SecretSentry finds leaked secrets where developers actually discuss work: in Jira. API keys, tokens, passwords, and private keys end up in Jira tickets all the time — in an issue description, in a "try this key" comment, in a pasted error log. Once a secret is in Jira it spreads to search indexes, exports, and screenshots, and teams usually only notice after the credential is abused. Existing secret scanners run in repos and CI, not where people talk. SecretSentry closes that gap, as a native Forge app: - Automatic scanning. Every time an issue is created, updated, or commented on, a Forge trigger scans its description and comments. A daily re-scan catches edits the trigger missed and re-scores findings if detection patterns change. - Deterministic detection. Known-format patterns (AWS Access Key and Secret Key, GitHub Personal Access and OAuth tokens, Slack tokens, private keys, generic API keys and passwords) plus a Shannon-entropy heuristic for long random tokens no known pattern covers. Each finding carries a severity (CRITICAL / HIGH / MEDIUM / LOW), a location (description or comment, with line number), and a redacted preview. - Issue panel. Findings appear directly in the Jira issue panel, with severity, last-scan time, and a "Scan again" button. - Rovo agent. Ask in chat: "Are there any leaked secrets in this project?" The SecretSentry agent answers from three read-only actions (scan-issue, get-findings, list-project-findings) and is prompted never to show, repeat, or reconstruct a secret value. Security is the product, not a feature: Findings store only a redacted preview — the first 4 and last 4 characters (AKIA...MPLE). Full secret values are never stored, never shown, and never sent to the agent. Zero egress: the app declares no external fetch permission, so it cannot call any outside API. Secrets never leave Atlassian's platform. Least privilege: only read:jira-work and storage:app scopes. The deployed version is eligible for the Runs on Atlassian program. Verified live on Jira Cloud: a fake GitHub token was flagged CRITICAL — GitHub Personal Access Token, description line 1, preview ghp_...AAAA; a fake AWS key was auto-scanned on issue creation (CRITICAL, AKIA...MPLE); a fake Slack token on line 3 of a 4-line description was flagged HIGH on line 3 (xoxb...IJKL). Findings persisted across reloads, while a clean issue correctly shows "No leaked secrets found". Only fake/test secrets were used for testing.

Install on your own Jira site: https://developer.atlassian.com/console/install/a22ffbb5-838f-4704-b23b-5d5e228c69d1?signature=AYABeLLoKfy9AgilFS89MyaGbN8AAAADAAdhd3Mta21zAEthcm46YXdzOmttczp1cy13ZXN0LTI6NzA5NTg3ODM1MjQzOmtleS83MDVlZDY3MC1mNTdjLTQxYjUtOWY5Yi1lM2YyZGNjMTQ2ZTcAuAECAQB4CxqLTo9l4lqXuFjNim1xJM%2Bp%2F3TVP9xHS2BrU5DRRucBOBiPUHJdeY06hghXM%2FxBOQAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDAj8spNgYCRIaQgqYQIBEIA7GmkQqEwBD5wSWPxYr2%2BE76A6oEBSzQ2L04GORWnV1u5vvjb8b13XS7BJFQ5LuLMWQs1Bwp4GwlErb%2FUAB2F3cy1rbXMAS2Fybjphd3M6a21zOmV1LXdlc3QtMTo3MDk1ODc4MzUyNDM6a2V5LzQ2MzBjZTZiLTAwYzMtNGRlMi04NzdiLTYyN2UyMDYwZTVjYwC4AQICAHi9bVMAkme4qVQX1fQHo6ePw3H40A7cGfz7yrmSfBWMXgGzangWo9zzpjf8naclxf3eAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMU8LgkHSqwFrTF43bAgEQgDtFGePxx02Bt1WxIOzYFSTOuL3QxCGeEDY1C2qAj%2B9R8XAfzmfb%2BlGqg6Qwp9KKjX0y4MAnbO%2Bvs9wktAAHYXdzLWttcwBLYXJuOmF3czprbXM6dXMtZWFzdC0xOjcwOTU4NzgzNTI0MzprZXkvNmMxMjBiYTAtNGNkNS00OTg1LWI4MmUtNDBhMDQ5NTJjYzU3ALgBAgIAeDYASx0XCjkny4iLV6vz%2BKtEGSGT6kdt0QRpkn6D%2FlVEAShlkVm15NykjmoT5CzlajsAAAB%2BMHwGCSqGSIb3DQEHBqBvMG0CAQAwaAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAyc8gyrgcYqMVfaNgYCARCAOxf7y9dPokZ2km5eViR3kwwPuwH%2BILqKyfJIMJUnLRSZBahESv%2BFoctT3DRI9jR%2FyQoCqspdcqY%2FGypdAgAAAAAMAAAQAAAAAAAAAAAAAAAAAEwB2BUsvlBeuWI3pDIfhRb%2F%2F%2F%2F%2FAAAAAQAAAAAAAAAAAAAAAQAAADJooGCE0Baz9%2BlHZydf%2BhxSLc9eubf4rNJ9NOAzeFxB%2B2cnWTZm%2BywOvg%2FzhH91B%2B8EBf2xQC3hKw9%2F9FMfkF%2BJRFY%3D&product=jira

Built With

Share this project:

Updates

Submission history