{"_id":"@anura-gate/watcher-jira","_rev":"8-85afd9a3473d2901139b205c571ea901","name":"@anura-gate/watcher-jira","dist-tags":{"latest":"0.2.6"},"versions":{"0.1.0":{"name":"@anura-gate/watcher-jira","version":"0.1.0","keywords":["gate","watcher","jira","monitoring","self-hosted"],"license":"MIT","_id":"@anura-gate/watcher-jira@0.1.0","maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"homepage":"https://anuragate.com","bugs":{"url":"https://github.com/ahmad-ajmal/AnuraGate_Sample/issues"},"bin":{"gate-watcher-jira":"cli.js"},"dist":{"shasum":"173cccd27b27c8de242abfc5bdebf2e8bbac355a","tarball":"https://registry.npmjs.org/@anura-gate/watcher-jira/-/watcher-jira-0.1.0.tgz","fileCount":4,"integrity":"sha512-OUX6RggtcJKePX4Ks8ym9IVNK0XJf06GU6rj0T4kA0s/N+Zq2sFkTVWV+Me6e6g33dC4JWgtpYqloEdIEhpshQ==","signatures":[{"sig":"MEUCIQCHMOjuBrWjRA9lRVxXUnbx43lkNOGwhJMb+0E8WuYxRQIgSLGIlw28uvzTQ6wCoXdc8VGQqtjog1bBemH78j/TbhE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31660},"main":"index.js","engines":{"node":">=18"},"gitHead":"0e31fb80f0ebcfa8867e4393fab28e89a6f549d2","scripts":{"start":"node cli.js"},"_npmUser":{"name":"anuragate","email":"ahmadajmal1514@gmail.com"},"repository":{"url":"git+https://github.com/ahmad-ajmal/AnuraGate_Sample.git","type":"git"},"_npmVersion":"10.9.2","description":"GATE Watcher — Self-hosted Jira event monitor. API token never leaves your machine.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"dotenv":"^17.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/watcher-jira_0.1.0_1773135962661_0.6322570427089467","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@anura-gate/watcher-jira","version":"0.2.0","keywords":["gate","watcher","jira","monitoring","self-hosted"],"license":"MIT","_id":"@anura-gate/watcher-jira@0.2.0","maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"homepage":"https://anuragate.com","bugs":{"url":"https://github.com/ahmad-ajmal/AnuraGate_Sample/issues"},"bin":{"gate-watcher-jira":"cli.js"},"dist":{"shasum":"dedb5e650a94513baec3f8c83bbf37bfdebbd9be","tarball":"https://registry.npmjs.org/@anura-gate/watcher-jira/-/watcher-jira-0.2.0.tgz","fileCount":5,"integrity":"sha512-WuCiQYmWuqn19C5Gazuza2ItEg8ZGbyBQvGz9sSjRsD0LYs1i2YOhgFnZhTnAdWXlgo3bLykj8GWZ/sI30IMMQ==","signatures":[{"sig":"MEYCIQD7+QfRbSaUhBUttMUHNWQtLEzzJt9TDsw3V+dHfbAoAgIhAKh7YnyiiYqIC1zTTNpp3bL2mJ7Q19WHrfZaWRpLC2yf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46156},"main":"index.js","engines":{"node":">=18"},"gitHead":"36d0bf5ed11cd62b72ea994a6baa800016aa860d","scripts":{"start":"node cli.js"},"_npmUser":{"name":"anuragate","email":"ahmadajmal1514@gmail.com"},"repository":{"url":"git+https://github.com/ahmad-ajmal/AnuraGate_Sample.git","type":"git"},"_npmVersion":"10.9.2","description":"GATE Watcher — Self-hosted Jira event monitor with OAuth 2.0. Credentials never leave your machine.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"dotenv":"^17.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/watcher-jira_0.2.0_1773138358257_0.2613188345432407","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@anura-gate/watcher-jira","version":"0.2.1","keywords":["gate","watcher","jira","monitoring","self-hosted"],"license":"MIT","_id":"@anura-gate/watcher-jira@0.2.1","maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"homepage":"https://anuragate.com","bugs":{"url":"https://github.com/ahmad-ajmal/AnuraGate_Sample/issues"},"bin":{"gate-watcher-jira":"cli.js"},"dist":{"shasum":"6abad379f40adff8fceec5d1149c199fa420d406","tarball":"https://registry.npmjs.org/@anura-gate/watcher-jira/-/watcher-jira-0.2.1.tgz","fileCount":6,"integrity":"sha512-kIeQGGR4o20EWzJo6f7LHISOa4JpEWtGxBiF2lSTpfTyY5EhjvipqhZyXLO94lktmyb9h9fONC5Lvkzp3nwtuA==","signatures":[{"sig":"MEUCIFgxRArJcN06QvHsIcvdqSrifFCrXCQjUigmP3ubTWDiAiEAu0S8NYG9PUiQAcMkU73J4C6G2hEoN8AvZ3lokX8i7fI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53057},"main":"index.js","engines":{"node":">=18"},"gitHead":"06d0b08f31b5e5b8b6cd2ca1ce9dadad016cbf42","scripts":{"start":"node cli.js"},"_npmUser":{"name":"anuragate","email":"ahmadajmal1514@gmail.com"},"repository":{"url":"git+https://github.com/ahmad-ajmal/AnuraGate_Sample.git","type":"git"},"_npmVersion":"10.9.2","description":"GATE Watcher — Self-hosted Jira event monitor with OAuth 2.0. Credentials never leave your machine.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"dotenv":"^17.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/watcher-jira_0.2.1_1773138589175_0.5337998291984034","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@anura-gate/watcher-jira","version":"0.2.2","keywords":["gate","watcher","jira","monitoring","self-hosted"],"license":"MIT","_id":"@anura-gate/watcher-jira@0.2.2","maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"homepage":"https://anuragate.com","bugs":{"url":"https://github.com/ahmad-ajmal/AnuraGate_Sample/issues"},"bin":{"gate-watcher-jira":"cli.js"},"dist":{"shasum":"1207754fea5f74a827491b211a5c1437c111a9f1","tarball":"https://registry.npmjs.org/@anura-gate/watcher-jira/-/watcher-jira-0.2.2.tgz","fileCount":6,"integrity":"sha512-YejhaisGrSo/CMdMEauzogArfVsFc0jRN5+J2/TLhD0nz+a5L9y/BZdbT7itV2nrc8OC1rudGRgglXphXLiyMw==","signatures":[{"sig":"MEUCIQDNJeaz5BQkAwy4pLF2yVnQcCP7lUydZ5IhjQKAnGF+pgIgD2BguTWnwCPoywGVxBRkCfDM/BQT+HjMRw/gLPZxBds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53060},"main":"index.js","engines":{"node":">=18"},"gitHead":"e4f4fb57ce388a789a7b9423b001b7970bad723e","scripts":{"start":"node cli.js"},"_npmUser":{"name":"anuragate","email":"ahmadajmal1514@gmail.com"},"repository":{"url":"git+https://github.com/ahmad-ajmal/AnuraGate_Sample.git","type":"git"},"_npmVersion":"10.9.2","description":"GATE Watcher — Self-hosted Jira event monitor with OAuth 2.0. Credentials never leave your machine.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"dotenv":"^17.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/watcher-jira_0.2.2_1773139014965_0.28769503815402286","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@anura-gate/watcher-jira","version":"0.2.3","keywords":["gate","watcher","jira","monitoring","self-hosted"],"license":"MIT","_id":"@anura-gate/watcher-jira@0.2.3","maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"homepage":"https://anuragate.com","bugs":{"url":"https://github.com/ahmad-ajmal/AnuraGate_Sample/issues"},"bin":{"gate-watcher-jira":"cli.js"},"dist":{"shasum":"42bca9bacdd71ddc6280d08ccc4b984d3016e18f","tarball":"https://registry.npmjs.org/@anura-gate/watcher-jira/-/watcher-jira-0.2.3.tgz","fileCount":6,"integrity":"sha512-lrMpSplaz5zlg1k+4HT0k/AUk4yKwHvgJDn7XS8i+MN5dvUh6ZV5z2qI7VsheUtQlLuwfRUK1icXhjsIgKR0Ng==","signatures":[{"sig":"MEUCIAljQVHb8wN4J0CTR/nRrN1oKN4CxOZkhuk4En/JfpqNAiEAvlTg/b9i8ZzJhh2khhvcjjFlHgKDr+FjdRKIFUNlhtk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53707},"main":"index.js","engines":{"node":">=18"},"gitHead":"23ab32b5491e48f7d105e1d84a026ec1fbeafc1c","scripts":{"start":"node cli.js"},"_npmUser":{"name":"anuragate","email":"ahmadajmal1514@gmail.com"},"repository":{"url":"git+https://github.com/ahmad-ajmal/AnuraGate_Sample.git","type":"git"},"_npmVersion":"10.9.2","description":"GATE Watcher — Self-hosted Jira event monitor with OAuth 2.0. Credentials never leave your machine.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"dotenv":"^17.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/watcher-jira_0.2.3_1773141537422_0.9779448124511592","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@anura-gate/watcher-jira","version":"0.2.4","keywords":["gate","watcher","jira","monitoring","self-hosted"],"license":"MIT","_id":"@anura-gate/watcher-jira@0.2.4","maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"homepage":"https://anuragate.com","bugs":{"url":"https://github.com/ahmad-ajmal/AnuraGate_Sample/issues"},"bin":{"gate-watcher-jira":"cli.js"},"dist":{"shasum":"42ae04d8795d2b88f52ae809fc59b96e246a610e","tarball":"https://registry.npmjs.org/@anura-gate/watcher-jira/-/watcher-jira-0.2.4.tgz","fileCount":6,"integrity":"sha512-Zn1g+V6VEzlp3HXkBhS8TGlIaFsSjj1RC0YNZJPXt/WzDKdiisAtw+IbQ4y6uopL8SOUhf4+6JArFEib3SIDVQ==","signatures":[{"sig":"MEQCIFqIf5UfmNRQuOOI+qA3tJ87tkpBsb/7qT4iikj3dMHtAiAG8o+ek9rNFC3jws+EWw/cnSfaTysB2oIstAl1TSN21Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53711},"main":"index.js","engines":{"node":">=18"},"gitHead":"23ab32b5491e48f7d105e1d84a026ec1fbeafc1c","scripts":{"start":"node cli.js"},"_npmUser":{"name":"anuragate","email":"ahmadajmal1514@gmail.com"},"repository":{"url":"git+https://github.com/ahmad-ajmal/AnuraGate_Sample.git","type":"git"},"_npmVersion":"10.9.2","description":"GATE Watcher — Self-hosted Jira event monitor with OAuth 2.0. Credentials never leave your machine.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"dotenv":"^17.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/watcher-jira_0.2.4_1773141634382_0.22196366146362245","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@anura-gate/watcher-jira","version":"0.2.5","keywords":["gate","watcher","jira","monitoring","self-hosted"],"license":"MIT","_id":"@anura-gate/watcher-jira@0.2.5","maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"homepage":"https://anuragate.com","bugs":{"url":"https://github.com/ahmad-ajmal/AnuraGate_Sample/issues"},"bin":{"gate-watcher-jira":"cli.js"},"dist":{"shasum":"e8c83b93713c76f639e08cd0e34a0e2304f0cb1f","tarball":"https://registry.npmjs.org/@anura-gate/watcher-jira/-/watcher-jira-0.2.5.tgz","fileCount":6,"integrity":"sha512-jjQeN7o9BJFu35AW2LVYHUWcmfqc8xyCJXeoS3z83vARWWbOM0Ge/vND+StP+dSRo8ejHo0Af9HipvWrLPeH/Q==","signatures":[{"sig":"MEYCIQDn/Nv47CwSOvQF3CcmA+4wa2rXdED/FjsjACv6w548ZgIhAJm1oRQCr5n6NaqVS7W2rWkyjydeCrBh3wsAl8OKxtok","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57297},"main":"index.js","engines":{"node":">=18"},"gitHead":"1ca3514aead6ccbc34ebabbd487a07f0cc6d7d22","scripts":{"start":"node cli.js"},"_npmUser":{"name":"anuragate","email":"ahmadajmal1514@gmail.com"},"repository":{"url":"git+https://github.com/ahmad-ajmal/AnuraGate_Sample.git","type":"git"},"_npmVersion":"10.9.2","description":"GATE Watcher — Self-hosted Jira event monitor with OAuth 2.0. Credentials never leave your machine.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"dotenv":"^17.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/watcher-jira_0.2.5_1773141825968_0.2540333002365025","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@anura-gate/watcher-jira","version":"0.2.6","description":"GATE Watcher — Self-hosted Jira event monitor with OAuth 2.0. Credentials never leave your machine.","main":"index.js","bin":{"gate-watcher-jira":"cli.js"},"scripts":{"start":"node cli.js"},"keywords":["gate","watcher","jira","monitoring","self-hosted"],"license":"MIT","homepage":"https://anuragate.com","repository":{"type":"git","url":"git+https://github.com/ahmad-ajmal/AnuraGate_Sample.git"},"dependencies":{"dotenv":"^17.3.1"},"engines":{"node":">=18"},"_id":"@anura-gate/watcher-jira@0.2.6","gitHead":"cbf18e179fa0af3fd55d30696bef5358835cfd33","bugs":{"url":"https://github.com/ahmad-ajmal/AnuraGate_Sample/issues"},"_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-PPPOrMej00wrP6s+bwQ9++qhjhTwIkN3hxM1ZVy7CjVCbmjMkB0AgjkK1VdHGzYuXyacITMAdKrA875qJLGLSg==","shasum":"0b51f3a19f43e7731dd9a57f8354eb64c0f85927","tarball":"https://registry.npmjs.org/@anura-gate/watcher-jira/-/watcher-jira-0.2.6.tgz","fileCount":6,"unpackedSize":57297,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCXM4HagbjWgf1tFQWg0XAPRE82xVoMn8yx9a0Q1E0BsgIgAxMsxcK2WHEqUTVZ+to5Bm05JWXQoOvvTkxq6F0AX6Q="}]},"_npmUser":{"name":"anuragate","email":"ahmadajmal1514@gmail.com"},"directories":{},"maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/watcher-jira_0.2.6_1773158836573_0.2370092514675015"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-10T09:46:02.495Z","modified":"2026-03-10T16:07:16.845Z","0.1.0":"2026-03-10T09:46:02.815Z","0.2.0":"2026-03-10T10:25:58.398Z","0.2.1":"2026-03-10T10:29:49.388Z","0.2.2":"2026-03-10T10:36:55.156Z","0.2.3":"2026-03-10T11:18:57.564Z","0.2.4":"2026-03-10T11:20:34.539Z","0.2.5":"2026-03-10T11:23:46.122Z","0.2.6":"2026-03-10T16:07:16.705Z"},"bugs":{"url":"https://github.com/ahmad-ajmal/AnuraGate_Sample/issues"},"license":"MIT","homepage":"https://anuragate.com","keywords":["gate","watcher","jira","monitoring","self-hosted"],"repository":{"type":"git","url":"git+https://github.com/ahmad-ajmal/AnuraGate_Sample.git"},"description":"GATE Watcher — Self-hosted Jira event monitor with OAuth 2.0. Credentials never leave your machine.","maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"readme":"# GATE Watcher — Jira\n\nSelf-hosted daemon that monitors your Jira Cloud projects for issue updates, comments, and transitions, pushing them to GATE for security processing. **Your Jira credentials never leave your machine.**\n\n## How it works\n\n```\nYour Machine (Watcher)              GATE Cloud\n┌─────────────────────┐        ┌──────────────────┐\n│ Jira API polling     │───────>│ Security pipeline │\n│ (creds stay HERE)    │<───────│ (redact, policy,  │\n│                      │ poll   │  audit, forward)  │\n└─────────────────────┘        └──────────────────┘\n```\n\n## Quick Start (CLI)\n\n```bash\ncd gate-watcher-jira\nnpm install\n\n# Create .env (or pass env vars directly)\ncp .env.example .env\n# Fill in GATE_KEY, GATE_INTEGRATION_ID, and Jira credentials\n\nnpm start\n```\n\nOn first run with OAuth, the browser opens automatically — click **Allow**, and you're connected.\n\n## Auth Modes\n\n### OAuth 2.0 (recommended)\n\nBrowser-based authorization. No manual tokens or emails needed.\n\n1. Register an app at [developer.atlassian.com/console/myapps](https://developer.atlassian.com/console/myapps)\n2. Set callback URL to `http://localhost:*/callback`\n3. Enable scopes: `read:jira-work`, `write:jira-work`, `read:jira-user`, `offline_access`\n4. Set `JIRA_CLIENT_ID` and `JIRA_CLIENT_SECRET` in `.env`\n5. Run the watcher — browser opens, click Allow, done\n\nTokens are stored in `~/.gate/jira-oauth.json` and auto-refresh. Use `--auth` to re-authorize or `--logout` to clear stored tokens.\n\n### API Token (headless / CI)\n\nFor environments without a browser.\n\n1. Create an API token at [id.atlassian.com/manage-profile/security/api-tokens](https://id.atlassian.com/manage-profile/security/api-tokens)\n2. Set `JIRA_DOMAIN`, `JIRA_EMAIL`, and `JIRA_TOKEN` in `.env`\n\n## Embed in Your App (SDK)\n\n```bash\nnpm install @anura-gate/watcher-jira\n```\n\n### With OAuth\n\n```js\nconst { GateJiraWatcher } = require(\"@anura-gate/watcher-jira\");\n\nconst watcher = new GateJiraWatcher({\n  gateKey: \"gk-xxx\",\n  integrationId: \"int_xxx\",\n  oauth: {\n    accessToken: \"eyJ...\",\n    cloudId: \"abcd-1234-...\",\n    siteUrl: \"https://yourcompany.atlassian.net\",\n  },\n  projects: [\"PROJ\", \"ENG\"], // optional — omit to watch all projects\n});\n\nawait watcher.start();\n```\n\n### With API Token\n\n```js\nconst watcher = new GateJiraWatcher({\n  gateKey: \"gk-xxx\",\n  integrationId: \"int_xxx\",\n  jiraDomain: \"yourcompany.atlassian.net\",\n  jiraEmail: \"you@company.com\",\n  jiraToken: \"ATATT3x...\",\n  projects: [\"PROJ\", \"ENG\"],\n});\n\nawait watcher.start();\n```\n\n### Listening to Events\n\n```js\nwatcher.on(\"ready\", (displayName) => {\n  console.log(`Jira connected: ${displayName}`);\n});\n\nwatcher.on(\"event\", (event, result) => {\n  console.log(`Event: ${event.eventType}, Issue: ${event.content.metadata.issueKey}`);\n  console.log(`Security actions: ${result.securityActions}`);\n});\n\nwatcher.on(\"action_result\", ({ action, success, error }) => {\n  console.log(`${action}: ${success ? \"done\" : error}`);\n});\n\n// Later...\nawait watcher.stop();\n```\n\n## Detected Events\n\n| Event Type | Trigger |\n|---|---|\n| `issue_transitioned` | Status changed (e.g. To Do → In Progress) |\n| `issue_assigned` | Assignee changed |\n| `issue_resolved` | Resolution set (Done, Won't Fix, etc.) |\n| `comment_added` | New comment on an issue |\n| `priority_changed` | Priority changed |\n| `labels_changed` | Labels added or removed |\n| `sprint_changed` | Issue moved to a different sprint |\n| `issue_updated` | Summary, description, or other field changed |\n\n## Outbound Actions\n\nGATE can queue actions for the watcher to execute locally:\n\n| Action | Required Params | Optional Params |\n|---|---|---|\n| `create_issue` | `project`, `summary` | `description`, `issueType`, `assignee`, `priority`, `labels` |\n| `add_comment` | `issueKey`, `body` | — |\n| `transition_issue` | `issueKey`, `transition` | — |\n| `assign_issue` | `issueKey` | `accountId` (null = unassign) |\n| `update_issue` | `issueKey` | `summary`, `description`, `priority`, `labels` |\n\n## SDK Events\n\n| Event | Args | Description |\n|---|---|---|\n| `ready` | `(displayName)` | Connected to Jira |\n| `event` | `(event, result)` | Jira event processed by GATE |\n| `action` | `(action)` | Outbound action received from GATE queue |\n| `action_result` | `({ actionId, action, success, result, error })` | Outbound action completed |\n| `gate_error` | `({ path, status, error })` | GATE API call failed |\n| `jira_error` | `({ path, error })` | Jira API call failed |\n| `limit_reached` | `(type)` | Plan limit hit |\n| `stopped` | — | Watcher fully shut down |\n\n## SDK Options\n\n| Option | Required | Default | Description |\n|---|---|---|---|\n| `gateKey` | Yes | — | Virtual key (`gk-xxx`) |\n| `integrationId` | Yes | — | Integration ID (`int_xxx`) |\n| `oauth` | * | — | OAuth credentials (`{ accessToken, cloudId, siteUrl }`) |\n| `jiraDomain` | * | — | Jira Cloud domain (`yourcompany.atlassian.net`) |\n| `jiraEmail` | * | — | Atlassian account email |\n| `jiraToken` | * | — | Jira API token |\n| `gateUrl` | No | `\"https://anuragate.com\"` | GATE cloud URL |\n| `projects` | No | `[]` | Project keys to watch. Empty = all |\n| `pollInterval` | No | `30000` | ms between Jira API polls |\n| `heartbeatInterval` | No | `30000` | ms between heartbeats |\n| `sessionId` | No | — | Session ID for multi-tenant use |\n| `sessionLabel` | No | — | Human-readable session label |\n| `sessionMetadata` | No | `{}` | Arbitrary metadata for the session |\n\n\\* Either `oauth` or all three of `jiraDomain` + `jiraEmail` + `jiraToken` are required.\n\n## Environment Variables\n\n| Variable | Required | Description |\n|---|---|---|\n| `GATE_KEY` | Yes | Your GATE virtual key |\n| `GATE_INTEGRATION_ID` | Yes | Integration ID from the dashboard |\n| `JIRA_CLIENT_ID` | OAuth | Atlassian OAuth app client ID |\n| `JIRA_CLIENT_SECRET` | OAuth | Atlassian OAuth app client secret |\n| `JIRA_DOMAIN` | API Token | Jira Cloud domain (`yourcompany.atlassian.net`) |\n| `JIRA_EMAIL` | API Token | Atlassian account email |\n| `JIRA_TOKEN` | API Token | Jira API token |\n| `JIRA_PROJECTS` | No | Comma-separated project keys: `PROJ,ENG` |\n| `GATE_URL` | No | Custom GATE cloud URL |\n| `WEB_PORT` | No | Port for the dev dashboard (CLI only) |\n\n## CLI Flags\n\n| Flag | Description |\n|---|---|\n| `--auth` | Force re-authorization (discard stored OAuth tokens) |\n| `--logout` | Clear stored OAuth tokens and exit |\n\n## Security Model\n\n- Jira credentials stored locally on YOUR machine (`.env` or `~/.gate/jira-oauth.json`)\n- GATE cloud never sees or stores your Jira credentials\n- All event content passes through GATE's security pipeline (redaction, policies, audit)\n- Billing, limits, and security enforced server-side\n","readmeFilename":"README.md"}