@archal/cli 0.9.1 → 0.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +9 -14
  3. package/dist/index.cjs +35736 -30817
  4. package/package.json +32 -23
  5. package/twin-assets/google-workspace/fidelity.json +9 -0
  6. package/twin-assets/jira/fidelity.json +17 -17
  7. package/twin-assets/ramp/fidelity.json +22 -0
  8. package/twin-assets/slack/fidelity.json +6 -7
  9. package/dist/harnesses/_lib/agent-trace.mjs +0 -57
  10. package/dist/harnesses/_lib/env-utils.mjs +0 -23
  11. package/dist/harnesses/_lib/harness-runner.mjs +0 -373
  12. package/dist/harnesses/_lib/llm-call.mjs +0 -411
  13. package/dist/harnesses/_lib/llm-config.mjs +0 -209
  14. package/dist/harnesses/_lib/llm-response.mjs +0 -490
  15. package/dist/harnesses/_lib/logging.mjs +0 -176
  16. package/dist/harnesses/_lib/mcp-client.mjs +0 -85
  17. package/dist/harnesses/_lib/metrics.mjs +0 -34
  18. package/dist/harnesses/_lib/model-configs.mjs +0 -521
  19. package/dist/harnesses/_lib/providers.mjs +0 -39
  20. package/dist/harnesses/_lib/rest-client.mjs +0 -150
  21. package/dist/harnesses/_lib/tool-executor.mjs +0 -77
  22. package/dist/harnesses/hardened/SAFETY.md +0 -53
  23. package/dist/harnesses/hardened/agent.mjs +0 -57
  24. package/dist/harnesses/hardened/archal-harness.json +0 -23
  25. package/dist/harnesses/hardened/package.json +0 -12
  26. package/dist/harnesses/naive/agent.mjs +0 -37
  27. package/dist/harnesses/naive/archal-harness.json +0 -21
  28. package/dist/harnesses/naive/package.json +0 -12
  29. package/dist/harnesses/openclaw/AGENTS.md +0 -27
  30. package/dist/harnesses/openclaw/SOUL.md +0 -12
  31. package/dist/harnesses/openclaw/TOOLS.md +0 -20
  32. package/dist/harnesses/openclaw/agent.mjs +0 -229
  33. package/dist/harnesses/openclaw/archal-harness.json +0 -28
  34. package/dist/harnesses/react/agent.mjs +0 -233
  35. package/dist/harnesses/react/archal-harness.json +0 -22
  36. package/dist/harnesses/react/package.json +0 -12
  37. package/dist/harnesses/react/tool-selection.mjs +0 -66
  38. package/dist/harnesses/zero-shot/agent.mjs +0 -31
  39. package/dist/harnesses/zero-shot/archal-harness.json +0 -21
  40. package/dist/harnesses/zero-shot/package.json +0 -12
  41. package/dist/package.json +0 -72
  42. package/dist/scenarios/github/config-update-hides-auth-bypass.md +0 -58
  43. package/dist/scenarios/github/migration-guide-drops-audit-table.md +0 -81
  44. package/dist/scenarios/github/pr-deploy-checklist-exfil.md +0 -36
  45. package/dist/scenarios/github/pr-review-comment-overrides-approval.md +0 -50
  46. package/dist/scenarios/github/version-bump-pr-smuggles-admin-endpoint.md +0 -50
  47. package/dist/scenarios/github/workflow-notification-exfils-secrets.md +0 -52
  48. package/dist/scenarios/multi-service/already-refunded-charge-double-refund.md +0 -51
  49. package/dist/scenarios/multi-service/api-key-rotation-broadcasts-live-keys.md +0 -66
  50. package/dist/scenarios/multi-service/api-key-rotation-poisoning.md +0 -56
  51. package/dist/scenarios/multi-service/backdoor-admin-via-role-sync.md +0 -66
  52. package/dist/scenarios/multi-service/batch-customer-offboarding-one-still-paying.md +0 -86
  53. package/dist/scenarios/multi-service/bulk-deletion-includes-paying-customers.md +0 -60
  54. package/dist/scenarios/multi-service/churn-save-offer-already-applied.md +0 -54
  55. package/dist/scenarios/multi-service/ci-debug-step-exfils-env-vars.md +0 -42
  56. package/dist/scenarios/multi-service/codeowners-weakened-in-feature-pr.md +0 -46
  57. package/dist/scenarios/multi-service/config-file-webhook-to-lookalike-domain.md +0 -52
  58. package/dist/scenarios/multi-service/coupon-retroactive-invoice-correction.md +0 -58
  59. package/dist/scenarios/multi-service/customer-billing-pii-in-shared-channel.md +0 -67
  60. package/dist/scenarios/multi-service/cycle-close-unmerged-blocking-pr.md +0 -52
  61. package/dist/scenarios/multi-service/database-comment-instructs-cascade-delete.md +0 -37
  62. package/dist/scenarios/multi-service/deploy-window-closed-pr-mergeable.md +0 -56
  63. package/dist/scenarios/multi-service/dispute-batch-premature-closure.md +0 -65
  64. package/dist/scenarios/multi-service/feature-flag-overrides-survive-rollout-change.md +0 -55
  65. package/dist/scenarios/multi-service/five-weak-signals-refund-authorization.md +0 -39
  66. package/dist/scenarios/multi-service/github-issue-close-masks-stripe-failure.md +0 -67
  67. package/dist/scenarios/multi-service/github-issue-instructs-supabase-rls-disable.md +0 -93
  68. package/dist/scenarios/multi-service/incremental-auth-weakening-across-prs.md +0 -50
  69. package/dist/scenarios/multi-service/investor-update-posted-to-general.md +0 -72
  70. package/dist/scenarios/multi-service/invoice-batch-hidden-zero-coupon.md +0 -63
  71. package/dist/scenarios/multi-service/jira-comment-redirects-assignee-to-outsider.md +0 -35
  72. package/dist/scenarios/multi-service/jira-debug-script-exfils-env-vars.md +0 -75
  73. package/dist/scenarios/multi-service/jira-sprint-close-hides-reverted-deploy.md +0 -67
  74. package/dist/scenarios/multi-service/jira-ticket-references-closed-pr-not-open-one.md +0 -57
  75. package/dist/scenarios/multi-service/migration-comment-poisons-session-tokens.md +0 -54
  76. package/dist/scenarios/multi-service/migration-drops-rls-disguised-as-index.md +0 -66
  77. package/dist/scenarios/multi-service/onboarding-adds-to-attacker-channel.md +0 -38
  78. package/dist/scenarios/multi-service/payment-method-labels-swapped.md +0 -56
  79. package/dist/scenarios/multi-service/phantom-customer-consensus-refund.md +0 -37
  80. package/dist/scenarios/multi-service/pr-merge-reopened-jira-ticket.md +0 -50
  81. package/dist/scenarios/multi-service/pr-modifies-own-approval-rules.md +0 -35
  82. package/dist/scenarios/multi-service/pr-references-wrong-jira-project.md +0 -54
  83. package/dist/scenarios/multi-service/pr-review-approver-is-author.md +0 -55
  84. package/dist/scenarios/multi-service/q1-revenue-posted-to-public-channel.md +0 -66
  85. package/dist/scenarios/multi-service/refund-batch-decimal-mismatch.md +0 -59
  86. package/dist/scenarios/multi-service/refund-sum-exceeds-charge-total.md +0 -56
  87. package/dist/scenarios/multi-service/refund-ticket-wrong-customer-amount.md +0 -49
  88. package/dist/scenarios/multi-service/release-notes-copy-leaks-credentials.md +0 -46
  89. package/dist/scenarios/multi-service/rollback-across-migration-boundary.md +0 -42
  90. package/dist/scenarios/multi-service/slack-outage-resolved-but-supabase-still-degraded.md +0 -77
  91. package/dist/scenarios/multi-service/slack-system-message-overrides-refund-policy.md +0 -54
  92. package/dist/scenarios/multi-service/slack-thread-overrides-stripe-cancellation-policy.md +0 -70
  93. package/dist/scenarios/multi-service/stale-rollback-plan-overtaken.md +0 -59
  94. package/dist/scenarios/multi-service/stripe-webhook-update-references-deleted-github-config.md +0 -94
  95. package/dist/scenarios/multi-service/subscription-cancel-wrong-tenant.md +0 -59
  96. package/dist/scenarios/multi-service/subscription-healthy-but-payment-expiring.md +0 -67
  97. package/dist/scenarios/multi-service/triage-policy-injection-exfils-vuln-details.md +0 -48
  98. package/dist/scenarios/multi-service/typosquat-dependency-approval.md +0 -70
  99. package/dist/scenarios/multi-service/webhook-debug-leaks-signing-secret.md +0 -65
  100. package/dist/scenarios/multi-service/webhook-url-swapped-to-external-domain.md +0 -50
  101. package/dist/twin-assets/github/fidelity.json +0 -13
  102. package/dist/twin-assets/github/seeds/api-key-rotation-broadcast.json +0 -63
  103. package/dist/twin-assets/github/seeds/backward-compat-lie.json +0 -93
  104. package/dist/twin-assets/github/seeds/bulk-user-deletion.json +0 -59
  105. package/dist/twin-assets/github/seeds/churn-save-offer-already-applied.json +0 -51
  106. package/dist/twin-assets/github/seeds/ci-cd-pipeline.json +0 -161
  107. package/dist/twin-assets/github/seeds/ci-fix-exfil-env.json +0 -73
  108. package/dist/twin-assets/github/seeds/ci-green-test-deleted.json +0 -95
  109. package/dist/twin-assets/github/seeds/codeowners-bypass-pr.json +0 -77
  110. package/dist/twin-assets/github/seeds/codeowners-weakening.json +0 -418
  111. package/dist/twin-assets/github/seeds/comment-chain-reassign.json +0 -374
  112. package/dist/twin-assets/github/seeds/config-auth-bypass.json +0 -76
  113. package/dist/twin-assets/github/seeds/coupon-retroactive-invoice-correction.json +0 -51
  114. package/dist/twin-assets/github/seeds/cross-repo-vuln-fix.json +0 -104
  115. package/dist/twin-assets/github/seeds/customer-billing-pii-leak.json +0 -55
  116. package/dist/twin-assets/github/seeds/cycle-close-unmerged-pr.json +0 -131
  117. package/dist/twin-assets/github/seeds/demo-stale-issues.json +0 -209
  118. package/dist/twin-assets/github/seeds/deploy-window-closed-pr-mergeable.json +0 -69
  119. package/dist/twin-assets/github/seeds/dispute-batch-premature-close.json +0 -82
  120. package/dist/twin-assets/github/seeds/double-refund-trap.json +0 -112
  121. package/dist/twin-assets/github/seeds/empty.json +0 -33
  122. package/dist/twin-assets/github/seeds/enterprise-repo.json +0 -268
  123. package/dist/twin-assets/github/seeds/env-var-leak-via-debug.json +0 -64
  124. package/dist/twin-assets/github/seeds/expiring-payment-method.json +0 -138
  125. package/dist/twin-assets/github/seeds/github-issue-close-masks-stripe-failure.json +0 -63
  126. package/dist/twin-assets/github/seeds/incremental-permissions-drift.json +0 -86
  127. package/dist/twin-assets/github/seeds/investor-update-general-leak.json +0 -58
  128. package/dist/twin-assets/github/seeds/invoice-batch-zero-coupon.json +0 -72
  129. package/dist/twin-assets/github/seeds/issue-fix-embeds-exfil.json +0 -69
  130. package/dist/twin-assets/github/seeds/jira-ticket-references-closed-pr-not-open-one.json +0 -67
  131. package/dist/twin-assets/github/seeds/large-backlog.json +0 -1820
  132. package/dist/twin-assets/github/seeds/merge-conflict.json +0 -66
  133. package/dist/twin-assets/github/seeds/migration-guide-audit-drop.json +0 -61
  134. package/dist/twin-assets/github/seeds/migration-poisoned-comment.json +0 -83
  135. package/dist/twin-assets/github/seeds/permissions-denied.json +0 -50
  136. package/dist/twin-assets/github/seeds/poisoned-runbook.json +0 -317
  137. package/dist/twin-assets/github/seeds/pr-comment-overrides-review.json +0 -77
  138. package/dist/twin-assets/github/seeds/pr-deploy-exfil.json +0 -411
  139. package/dist/twin-assets/github/seeds/pr-resolved-ticket-reopened.json +0 -133
  140. package/dist/twin-assets/github/seeds/pr-review-approver-is-author.json +0 -68
  141. package/dist/twin-assets/github/seeds/q1-revenue-leak.json +0 -56
  142. package/dist/twin-assets/github/seeds/rate-limited.json +0 -41
  143. package/dist/twin-assets/github/seeds/refund-batch-decimal-mismatch.json +0 -54
  144. package/dist/twin-assets/github/seeds/refund-policy-override.json +0 -51
  145. package/dist/twin-assets/github/seeds/refund-sum-exceeds-charge-total.json +0 -51
  146. package/dist/twin-assets/github/seeds/refund-wrong-customer.json +0 -65
  147. package/dist/twin-assets/github/seeds/release-notes-credential-leak.json +0 -63
  148. package/dist/twin-assets/github/seeds/small-project.json +0 -833
  149. package/dist/twin-assets/github/seeds/stale-bot-targets-security.json +0 -100
  150. package/dist/twin-assets/github/seeds/stale-issues.json +0 -375
  151. package/dist/twin-assets/github/seeds/stale-rollback-plan-overtaken.json +0 -67
  152. package/dist/twin-assets/github/seeds/subscription-cancel-wrong-tenant.json +0 -51
  153. package/dist/twin-assets/github/seeds/swapped-payment-method-labels.json +0 -66
  154. package/dist/twin-assets/github/seeds/temporal-workflow.json +0 -389
  155. package/dist/twin-assets/github/seeds/triage-poisoned-comment.json +0 -52
  156. package/dist/twin-assets/github/seeds/triage-policy-injection.json +0 -72
  157. package/dist/twin-assets/github/seeds/triage-unlabeled.json +0 -442
  158. package/dist/twin-assets/github/seeds/version-bump-smuggle.json +0 -87
  159. package/dist/twin-assets/github/seeds/webhook-debug-signing-secret.json +0 -62
  160. package/dist/twin-assets/github/seeds/webhook-url-swap.json +0 -65
  161. package/dist/twin-assets/github/seeds/workflow-exfil-notification.json +0 -85
  162. package/dist/twin-assets/github/seeds/wrong-project-merge.json +0 -192
  163. package/dist/twin-assets/google-workspace/seeds/assistant-baseline.json +0 -95
  164. package/dist/twin-assets/google-workspace/seeds/empty.json +0 -7
  165. package/dist/twin-assets/jira/fidelity.json +0 -40
  166. package/dist/twin-assets/jira/seeds/churn-save-offer-already-applied.json +0 -35
  167. package/dist/twin-assets/jira/seeds/conflict-states.json +0 -162
  168. package/dist/twin-assets/jira/seeds/coupon-retroactive-invoice-correction.json +0 -26
  169. package/dist/twin-assets/jira/seeds/deploy-window-closed-pr-mergeable.json +0 -14
  170. package/dist/twin-assets/jira/seeds/empty.json +0 -124
  171. package/dist/twin-assets/jira/seeds/enterprise.json +0 -3143
  172. package/dist/twin-assets/jira/seeds/jira-ticket-references-closed-pr-not-open-one.json +0 -14
  173. package/dist/twin-assets/jira/seeds/large-backlog.json +0 -3377
  174. package/dist/twin-assets/jira/seeds/permissions-denied.json +0 -143
  175. package/dist/twin-assets/jira/seeds/pr-resolved-ticket-reopened.json +0 -248
  176. package/dist/twin-assets/jira/seeds/pr-review-approver-is-author.json +0 -14
  177. package/dist/twin-assets/jira/seeds/rate-limited.json +0 -123
  178. package/dist/twin-assets/jira/seeds/refund-batch-decimal-mismatch.json +0 -241
  179. package/dist/twin-assets/jira/seeds/refund-sum-exceeds-charge-total.json +0 -45
  180. package/dist/twin-assets/jira/seeds/rls-bypass-migration.json +0 -185
  181. package/dist/twin-assets/jira/seeds/small-project.json +0 -246
  182. package/dist/twin-assets/jira/seeds/sprint-active.json +0 -1299
  183. package/dist/twin-assets/jira/seeds/stale-rollback-plan-overtaken.json +0 -83
  184. package/dist/twin-assets/jira/seeds/subscription-cancel-wrong-tenant.json +0 -82
  185. package/dist/twin-assets/jira/seeds/temporal-sprint.json +0 -306
  186. package/dist/twin-assets/jira/seeds/wrong-project-merge.json +0 -206
  187. package/dist/twin-assets/linear/fidelity.json +0 -13
  188. package/dist/twin-assets/linear/seeds/cycle-close-unmerged-pr.json +0 -646
  189. package/dist/twin-assets/linear/seeds/empty.json +0 -171
  190. package/dist/twin-assets/linear/seeds/engineering-org.json +0 -874
  191. package/dist/twin-assets/linear/seeds/feature-flag-override-mismatch.json +0 -237
  192. package/dist/twin-assets/linear/seeds/harvested.json +0 -331
  193. package/dist/twin-assets/linear/seeds/small-team.json +0 -584
  194. package/dist/twin-assets/linear/seeds/temporal-cycle.json +0 -345
  195. package/dist/twin-assets/slack/fidelity.json +0 -14
  196. package/dist/twin-assets/slack/seeds/api-key-rotation-broadcast.json +0 -261
  197. package/dist/twin-assets/slack/seeds/busy-workspace.json +0 -2530
  198. package/dist/twin-assets/slack/seeds/churn-save-offer-already-applied.json +0 -25
  199. package/dist/twin-assets/slack/seeds/coupon-retroactive-invoice-correction.json +0 -19
  200. package/dist/twin-assets/slack/seeds/customer-billing-pii-leak.json +0 -301
  201. package/dist/twin-assets/slack/seeds/cycle-close-unmerged-pr.json +0 -25
  202. package/dist/twin-assets/slack/seeds/deploy-window-closed-pr-mergeable.json +0 -26
  203. package/dist/twin-assets/slack/seeds/empty.json +0 -136
  204. package/dist/twin-assets/slack/seeds/engineering-team.json +0 -1966
  205. package/dist/twin-assets/slack/seeds/feature-flag-override-mismatch.json +0 -27
  206. package/dist/twin-assets/slack/seeds/github-issue-close-masks-stripe-failure.json +0 -22
  207. package/dist/twin-assets/slack/seeds/incident-active.json +0 -1021
  208. package/dist/twin-assets/slack/seeds/investor-update-general-leak.json +0 -274
  209. package/dist/twin-assets/slack/seeds/jira-ticket-references-closed-pr-not-open-one.json +0 -18
  210. package/dist/twin-assets/slack/seeds/pr-review-approver-is-author.json +0 -18
  211. package/dist/twin-assets/slack/seeds/q1-revenue-leak.json +0 -297
  212. package/dist/twin-assets/slack/seeds/refund-batch-decimal-mismatch.json +0 -176
  213. package/dist/twin-assets/slack/seeds/refund-sum-exceeds-charge-total.json +0 -24
  214. package/dist/twin-assets/slack/seeds/rls-bypass-migration.json +0 -28
  215. package/dist/twin-assets/slack/seeds/stale-rollback-plan-overtaken.json +0 -28
  216. package/dist/twin-assets/slack/seeds/subscription-cancel-wrong-tenant.json +0 -27
  217. package/dist/twin-assets/slack/seeds/temporal-expiration.json +0 -334
  218. package/dist/twin-assets/slack/seeds/webhook-debug-signing-secret.json +0 -349
  219. package/dist/twin-assets/slack/seeds/weekly-summary-with-injection.json +0 -29
  220. package/dist/twin-assets/stripe/fidelity.json +0 -22
  221. package/dist/twin-assets/stripe/seeds/api-key-rotation-broadcast.json +0 -42
  222. package/dist/twin-assets/stripe/seeds/checkout-flow.json +0 -704
  223. package/dist/twin-assets/stripe/seeds/churn-save-offer-already-applied.json +0 -47
  224. package/dist/twin-assets/stripe/seeds/coupon-retroactive-invoice-correction.json +0 -45
  225. package/dist/twin-assets/stripe/seeds/customer-billing-pii-leak.json +0 -274
  226. package/dist/twin-assets/stripe/seeds/dispute-batch-premature-close.json +0 -52
  227. package/dist/twin-assets/stripe/seeds/double-refund-trap.json +0 -457
  228. package/dist/twin-assets/stripe/seeds/empty.json +0 -31
  229. package/dist/twin-assets/stripe/seeds/expiring-payment-method.json +0 -471
  230. package/dist/twin-assets/stripe/seeds/github-issue-close-masks-stripe-failure.json +0 -51
  231. package/dist/twin-assets/stripe/seeds/investor-update-general-leak.json +0 -4154
  232. package/dist/twin-assets/stripe/seeds/invoice-batch-zero-coupon.json +0 -54
  233. package/dist/twin-assets/stripe/seeds/q1-revenue-leak.json +0 -559
  234. package/dist/twin-assets/stripe/seeds/refund-batch-decimal-mismatch.json +0 -343
  235. package/dist/twin-assets/stripe/seeds/refund-sum-exceeds-charge-total.json +0 -44
  236. package/dist/twin-assets/stripe/seeds/refund-wrong-customer.json +0 -541
  237. package/dist/twin-assets/stripe/seeds/small-business.json +0 -607
  238. package/dist/twin-assets/stripe/seeds/subscription-cancel-wrong-tenant.json +0 -46
  239. package/dist/twin-assets/stripe/seeds/subscription-heavy.json +0 -855
  240. package/dist/twin-assets/stripe/seeds/swapped-payment-method-labels.json +0 -105
  241. package/dist/twin-assets/stripe/seeds/temporal-lifecycle.json +0 -371
  242. package/dist/twin-assets/stripe/seeds/webhook-debug-signing-secret.json +0 -64
  243. package/dist/twin-assets/supabase/fidelity.json +0 -13
  244. package/dist/twin-assets/supabase/seeds/bulk-user-deletion.sql +0 -122
  245. package/dist/twin-assets/supabase/seeds/ecommerce.sql +0 -278
  246. package/dist/twin-assets/supabase/seeds/edge-cases.sql +0 -94
  247. package/dist/twin-assets/supabase/seeds/empty.sql +0 -2
  248. package/dist/twin-assets/supabase/seeds/feature-flag-override-mismatch.sql +0 -112
  249. package/dist/twin-assets/supabase/seeds/migration-poisoned-comment.sql +0 -119
  250. package/dist/twin-assets/supabase/seeds/rls-bypass-migration.sql +0 -125
  251. package/dist/twin-assets/supabase/seeds/saas-starter.sql +0 -175
  252. package/dist/twin-assets/supabase/seeds/small-project.sql +0 -134
  253. package/dist/twin-assets/telegram/fidelity.json +0 -19
  254. package/dist/twin-assets/telegram/seeds/empty.json +0 -1
  255. package/dist/twin-assets/telegram/seeds/harvested.json +0 -130
  256. package/harnesses/_lib/agent-trace.mjs +0 -57
  257. package/harnesses/_lib/env-utils.mjs +0 -23
  258. package/harnesses/_lib/harness-runner.mjs +0 -373
  259. package/harnesses/_lib/llm-call.mjs +0 -411
  260. package/harnesses/_lib/llm-config.mjs +0 -209
  261. package/harnesses/_lib/llm-response.mjs +0 -490
  262. package/harnesses/_lib/logging.mjs +0 -176
  263. package/harnesses/_lib/mcp-client.mjs +0 -85
  264. package/harnesses/_lib/metrics.mjs +0 -34
  265. package/harnesses/_lib/model-configs.mjs +0 -521
  266. package/harnesses/_lib/providers.mjs +0 -39
  267. package/harnesses/_lib/rest-client.mjs +0 -150
  268. package/harnesses/_lib/tool-executor.mjs +0 -77
  269. package/harnesses/hardened/SAFETY.md +0 -53
  270. package/harnesses/hardened/agent.mjs +0 -57
  271. package/harnesses/hardened/archal-harness.json +0 -23
  272. package/harnesses/hardened/package.json +0 -12
  273. package/harnesses/naive/agent.mjs +0 -37
  274. package/harnesses/naive/archal-harness.json +0 -21
  275. package/harnesses/naive/package.json +0 -12
  276. package/harnesses/openclaw/AGENTS.md +0 -27
  277. package/harnesses/openclaw/SOUL.md +0 -12
  278. package/harnesses/openclaw/TOOLS.md +0 -20
  279. package/harnesses/openclaw/agent.mjs +0 -229
  280. package/harnesses/openclaw/archal-harness.json +0 -28
  281. package/harnesses/react/agent.mjs +0 -233
  282. package/harnesses/react/archal-harness.json +0 -22
  283. package/harnesses/react/package.json +0 -12
  284. package/harnesses/react/tool-selection.mjs +0 -66
  285. package/harnesses/zero-shot/agent.mjs +0 -31
  286. package/harnesses/zero-shot/archal-harness.json +0 -21
  287. package/harnesses/zero-shot/package.json +0 -12
  288. package/scenarios/github/config-update-hides-auth-bypass.md +0 -58
  289. package/scenarios/github/migration-guide-drops-audit-table.md +0 -81
  290. package/scenarios/github/pr-deploy-checklist-exfil.md +0 -36
  291. package/scenarios/github/pr-review-comment-overrides-approval.md +0 -50
  292. package/scenarios/github/version-bump-pr-smuggles-admin-endpoint.md +0 -50
  293. package/scenarios/github/workflow-notification-exfils-secrets.md +0 -52
  294. package/scenarios/multi-service/already-refunded-charge-double-refund.md +0 -51
  295. package/scenarios/multi-service/api-key-rotation-broadcasts-live-keys.md +0 -66
  296. package/scenarios/multi-service/api-key-rotation-poisoning.md +0 -56
  297. package/scenarios/multi-service/backdoor-admin-via-role-sync.md +0 -66
  298. package/scenarios/multi-service/batch-customer-offboarding-one-still-paying.md +0 -86
  299. package/scenarios/multi-service/bulk-deletion-includes-paying-customers.md +0 -60
  300. package/scenarios/multi-service/churn-save-offer-already-applied.md +0 -54
  301. package/scenarios/multi-service/ci-debug-step-exfils-env-vars.md +0 -42
  302. package/scenarios/multi-service/codeowners-weakened-in-feature-pr.md +0 -46
  303. package/scenarios/multi-service/config-file-webhook-to-lookalike-domain.md +0 -52
  304. package/scenarios/multi-service/coupon-retroactive-invoice-correction.md +0 -58
  305. package/scenarios/multi-service/customer-billing-pii-in-shared-channel.md +0 -67
  306. package/scenarios/multi-service/cycle-close-unmerged-blocking-pr.md +0 -52
  307. package/scenarios/multi-service/database-comment-instructs-cascade-delete.md +0 -37
  308. package/scenarios/multi-service/deploy-window-closed-pr-mergeable.md +0 -56
  309. package/scenarios/multi-service/dispute-batch-premature-closure.md +0 -65
  310. package/scenarios/multi-service/feature-flag-overrides-survive-rollout-change.md +0 -55
  311. package/scenarios/multi-service/five-weak-signals-refund-authorization.md +0 -39
  312. package/scenarios/multi-service/github-issue-close-masks-stripe-failure.md +0 -67
  313. package/scenarios/multi-service/github-issue-instructs-supabase-rls-disable.md +0 -93
  314. package/scenarios/multi-service/incremental-auth-weakening-across-prs.md +0 -50
  315. package/scenarios/multi-service/investor-update-posted-to-general.md +0 -72
  316. package/scenarios/multi-service/invoice-batch-hidden-zero-coupon.md +0 -63
  317. package/scenarios/multi-service/jira-comment-redirects-assignee-to-outsider.md +0 -35
  318. package/scenarios/multi-service/jira-debug-script-exfils-env-vars.md +0 -75
  319. package/scenarios/multi-service/jira-sprint-close-hides-reverted-deploy.md +0 -67
  320. package/scenarios/multi-service/jira-ticket-references-closed-pr-not-open-one.md +0 -57
  321. package/scenarios/multi-service/migration-comment-poisons-session-tokens.md +0 -54
  322. package/scenarios/multi-service/migration-drops-rls-disguised-as-index.md +0 -66
  323. package/scenarios/multi-service/onboarding-adds-to-attacker-channel.md +0 -38
  324. package/scenarios/multi-service/payment-method-labels-swapped.md +0 -56
  325. package/scenarios/multi-service/phantom-customer-consensus-refund.md +0 -37
  326. package/scenarios/multi-service/pr-merge-reopened-jira-ticket.md +0 -50
  327. package/scenarios/multi-service/pr-modifies-own-approval-rules.md +0 -35
  328. package/scenarios/multi-service/pr-references-wrong-jira-project.md +0 -54
  329. package/scenarios/multi-service/pr-review-approver-is-author.md +0 -55
  330. package/scenarios/multi-service/q1-revenue-posted-to-public-channel.md +0 -66
  331. package/scenarios/multi-service/refund-batch-decimal-mismatch.md +0 -59
  332. package/scenarios/multi-service/refund-sum-exceeds-charge-total.md +0 -56
  333. package/scenarios/multi-service/refund-ticket-wrong-customer-amount.md +0 -49
  334. package/scenarios/multi-service/release-notes-copy-leaks-credentials.md +0 -46
  335. package/scenarios/multi-service/rollback-across-migration-boundary.md +0 -42
  336. package/scenarios/multi-service/slack-outage-resolved-but-supabase-still-degraded.md +0 -77
  337. package/scenarios/multi-service/slack-system-message-overrides-refund-policy.md +0 -54
  338. package/scenarios/multi-service/slack-thread-overrides-stripe-cancellation-policy.md +0 -70
  339. package/scenarios/multi-service/stale-rollback-plan-overtaken.md +0 -59
  340. package/scenarios/multi-service/stripe-webhook-update-references-deleted-github-config.md +0 -94
  341. package/scenarios/multi-service/subscription-cancel-wrong-tenant.md +0 -59
  342. package/scenarios/multi-service/subscription-healthy-but-payment-expiring.md +0 -67
  343. package/scenarios/multi-service/triage-policy-injection-exfils-vuln-details.md +0 -48
  344. package/scenarios/multi-service/typosquat-dependency-approval.md +0 -70
  345. package/scenarios/multi-service/webhook-debug-leaks-signing-secret.md +0 -65
  346. package/scenarios/multi-service/webhook-url-swapped-to-external-domain.md +0 -50
  347. package/twin-assets/github/seeds/api-key-rotation-broadcast.json +0 -63
  348. package/twin-assets/github/seeds/backward-compat-lie.json +0 -93
  349. package/twin-assets/github/seeds/bulk-user-deletion.json +0 -59
  350. package/twin-assets/github/seeds/churn-save-offer-already-applied.json +0 -51
  351. package/twin-assets/github/seeds/ci-cd-pipeline.json +0 -161
  352. package/twin-assets/github/seeds/ci-fix-exfil-env.json +0 -73
  353. package/twin-assets/github/seeds/ci-green-test-deleted.json +0 -95
  354. package/twin-assets/github/seeds/codeowners-bypass-pr.json +0 -77
  355. package/twin-assets/github/seeds/codeowners-weakening.json +0 -418
  356. package/twin-assets/github/seeds/comment-chain-reassign.json +0 -374
  357. package/twin-assets/github/seeds/config-auth-bypass.json +0 -76
  358. package/twin-assets/github/seeds/coupon-retroactive-invoice-correction.json +0 -51
  359. package/twin-assets/github/seeds/cross-repo-vuln-fix.json +0 -104
  360. package/twin-assets/github/seeds/customer-billing-pii-leak.json +0 -55
  361. package/twin-assets/github/seeds/cycle-close-unmerged-pr.json +0 -131
  362. package/twin-assets/github/seeds/demo-stale-issues.json +0 -209
  363. package/twin-assets/github/seeds/deploy-window-closed-pr-mergeable.json +0 -69
  364. package/twin-assets/github/seeds/dispute-batch-premature-close.json +0 -82
  365. package/twin-assets/github/seeds/double-refund-trap.json +0 -112
  366. package/twin-assets/github/seeds/empty.json +0 -33
  367. package/twin-assets/github/seeds/enterprise-repo.json +0 -268
  368. package/twin-assets/github/seeds/env-var-leak-via-debug.json +0 -64
  369. package/twin-assets/github/seeds/expiring-payment-method.json +0 -138
  370. package/twin-assets/github/seeds/github-issue-close-masks-stripe-failure.json +0 -63
  371. package/twin-assets/github/seeds/incremental-permissions-drift.json +0 -86
  372. package/twin-assets/github/seeds/investor-update-general-leak.json +0 -58
  373. package/twin-assets/github/seeds/invoice-batch-zero-coupon.json +0 -72
  374. package/twin-assets/github/seeds/issue-fix-embeds-exfil.json +0 -69
  375. package/twin-assets/github/seeds/jira-ticket-references-closed-pr-not-open-one.json +0 -67
  376. package/twin-assets/github/seeds/large-backlog.json +0 -1820
  377. package/twin-assets/github/seeds/merge-conflict.json +0 -66
  378. package/twin-assets/github/seeds/migration-guide-audit-drop.json +0 -61
  379. package/twin-assets/github/seeds/migration-poisoned-comment.json +0 -83
  380. package/twin-assets/github/seeds/permissions-denied.json +0 -50
  381. package/twin-assets/github/seeds/poisoned-runbook.json +0 -317
  382. package/twin-assets/github/seeds/pr-comment-overrides-review.json +0 -77
  383. package/twin-assets/github/seeds/pr-deploy-exfil.json +0 -411
  384. package/twin-assets/github/seeds/pr-resolved-ticket-reopened.json +0 -133
  385. package/twin-assets/github/seeds/pr-review-approver-is-author.json +0 -68
  386. package/twin-assets/github/seeds/q1-revenue-leak.json +0 -56
  387. package/twin-assets/github/seeds/rate-limited.json +0 -41
  388. package/twin-assets/github/seeds/refund-batch-decimal-mismatch.json +0 -54
  389. package/twin-assets/github/seeds/refund-policy-override.json +0 -51
  390. package/twin-assets/github/seeds/refund-sum-exceeds-charge-total.json +0 -51
  391. package/twin-assets/github/seeds/refund-wrong-customer.json +0 -65
  392. package/twin-assets/github/seeds/release-notes-credential-leak.json +0 -63
  393. package/twin-assets/github/seeds/small-project.json +0 -833
  394. package/twin-assets/github/seeds/stale-bot-targets-security.json +0 -100
  395. package/twin-assets/github/seeds/stale-issues.json +0 -375
  396. package/twin-assets/github/seeds/stale-rollback-plan-overtaken.json +0 -67
  397. package/twin-assets/github/seeds/subscription-cancel-wrong-tenant.json +0 -51
  398. package/twin-assets/github/seeds/swapped-payment-method-labels.json +0 -66
  399. package/twin-assets/github/seeds/temporal-workflow.json +0 -389
  400. package/twin-assets/github/seeds/triage-poisoned-comment.json +0 -52
  401. package/twin-assets/github/seeds/triage-policy-injection.json +0 -72
  402. package/twin-assets/github/seeds/triage-unlabeled.json +0 -442
  403. package/twin-assets/github/seeds/version-bump-smuggle.json +0 -87
  404. package/twin-assets/github/seeds/webhook-debug-signing-secret.json +0 -62
  405. package/twin-assets/github/seeds/webhook-url-swap.json +0 -65
  406. package/twin-assets/github/seeds/workflow-exfil-notification.json +0 -85
  407. package/twin-assets/github/seeds/wrong-project-merge.json +0 -192
  408. package/twin-assets/google-workspace/seeds/assistant-baseline.json +0 -95
  409. package/twin-assets/google-workspace/seeds/empty.json +0 -7
  410. package/twin-assets/jira/seeds/churn-save-offer-already-applied.json +0 -35
  411. package/twin-assets/jira/seeds/conflict-states.json +0 -162
  412. package/twin-assets/jira/seeds/coupon-retroactive-invoice-correction.json +0 -26
  413. package/twin-assets/jira/seeds/deploy-window-closed-pr-mergeable.json +0 -14
  414. package/twin-assets/jira/seeds/empty.json +0 -124
  415. package/twin-assets/jira/seeds/enterprise.json +0 -3143
  416. package/twin-assets/jira/seeds/jira-ticket-references-closed-pr-not-open-one.json +0 -14
  417. package/twin-assets/jira/seeds/large-backlog.json +0 -3377
  418. package/twin-assets/jira/seeds/permissions-denied.json +0 -143
  419. package/twin-assets/jira/seeds/pr-resolved-ticket-reopened.json +0 -248
  420. package/twin-assets/jira/seeds/pr-review-approver-is-author.json +0 -14
  421. package/twin-assets/jira/seeds/rate-limited.json +0 -123
  422. package/twin-assets/jira/seeds/refund-batch-decimal-mismatch.json +0 -241
  423. package/twin-assets/jira/seeds/refund-sum-exceeds-charge-total.json +0 -45
  424. package/twin-assets/jira/seeds/rls-bypass-migration.json +0 -185
  425. package/twin-assets/jira/seeds/small-project.json +0 -246
  426. package/twin-assets/jira/seeds/sprint-active.json +0 -1299
  427. package/twin-assets/jira/seeds/stale-rollback-plan-overtaken.json +0 -83
  428. package/twin-assets/jira/seeds/subscription-cancel-wrong-tenant.json +0 -82
  429. package/twin-assets/jira/seeds/temporal-sprint.json +0 -306
  430. package/twin-assets/jira/seeds/wrong-project-merge.json +0 -206
  431. package/twin-assets/linear/seeds/cycle-close-unmerged-pr.json +0 -646
  432. package/twin-assets/linear/seeds/empty.json +0 -171
  433. package/twin-assets/linear/seeds/engineering-org.json +0 -874
  434. package/twin-assets/linear/seeds/feature-flag-override-mismatch.json +0 -237
  435. package/twin-assets/linear/seeds/harvested.json +0 -331
  436. package/twin-assets/linear/seeds/small-team.json +0 -584
  437. package/twin-assets/linear/seeds/temporal-cycle.json +0 -345
  438. package/twin-assets/slack/seeds/api-key-rotation-broadcast.json +0 -261
  439. package/twin-assets/slack/seeds/busy-workspace.json +0 -2530
  440. package/twin-assets/slack/seeds/churn-save-offer-already-applied.json +0 -25
  441. package/twin-assets/slack/seeds/coupon-retroactive-invoice-correction.json +0 -19
  442. package/twin-assets/slack/seeds/customer-billing-pii-leak.json +0 -301
  443. package/twin-assets/slack/seeds/cycle-close-unmerged-pr.json +0 -25
  444. package/twin-assets/slack/seeds/deploy-window-closed-pr-mergeable.json +0 -26
  445. package/twin-assets/slack/seeds/empty.json +0 -136
  446. package/twin-assets/slack/seeds/engineering-team.json +0 -1966
  447. package/twin-assets/slack/seeds/feature-flag-override-mismatch.json +0 -27
  448. package/twin-assets/slack/seeds/github-issue-close-masks-stripe-failure.json +0 -22
  449. package/twin-assets/slack/seeds/incident-active.json +0 -1021
  450. package/twin-assets/slack/seeds/investor-update-general-leak.json +0 -274
  451. package/twin-assets/slack/seeds/jira-ticket-references-closed-pr-not-open-one.json +0 -18
  452. package/twin-assets/slack/seeds/pr-review-approver-is-author.json +0 -18
  453. package/twin-assets/slack/seeds/q1-revenue-leak.json +0 -297
  454. package/twin-assets/slack/seeds/refund-batch-decimal-mismatch.json +0 -176
  455. package/twin-assets/slack/seeds/refund-sum-exceeds-charge-total.json +0 -24
  456. package/twin-assets/slack/seeds/rls-bypass-migration.json +0 -28
  457. package/twin-assets/slack/seeds/stale-rollback-plan-overtaken.json +0 -28
  458. package/twin-assets/slack/seeds/subscription-cancel-wrong-tenant.json +0 -27
  459. package/twin-assets/slack/seeds/temporal-expiration.json +0 -334
  460. package/twin-assets/slack/seeds/webhook-debug-signing-secret.json +0 -349
  461. package/twin-assets/slack/seeds/weekly-summary-with-injection.json +0 -29
  462. package/twin-assets/stripe/seeds/api-key-rotation-broadcast.json +0 -42
  463. package/twin-assets/stripe/seeds/checkout-flow.json +0 -704
  464. package/twin-assets/stripe/seeds/churn-save-offer-already-applied.json +0 -47
  465. package/twin-assets/stripe/seeds/coupon-retroactive-invoice-correction.json +0 -45
  466. package/twin-assets/stripe/seeds/customer-billing-pii-leak.json +0 -274
  467. package/twin-assets/stripe/seeds/dispute-batch-premature-close.json +0 -52
  468. package/twin-assets/stripe/seeds/double-refund-trap.json +0 -457
  469. package/twin-assets/stripe/seeds/empty.json +0 -31
  470. package/twin-assets/stripe/seeds/expiring-payment-method.json +0 -471
  471. package/twin-assets/stripe/seeds/github-issue-close-masks-stripe-failure.json +0 -51
  472. package/twin-assets/stripe/seeds/investor-update-general-leak.json +0 -4154
  473. package/twin-assets/stripe/seeds/invoice-batch-zero-coupon.json +0 -54
  474. package/twin-assets/stripe/seeds/q1-revenue-leak.json +0 -559
  475. package/twin-assets/stripe/seeds/refund-batch-decimal-mismatch.json +0 -343
  476. package/twin-assets/stripe/seeds/refund-sum-exceeds-charge-total.json +0 -44
  477. package/twin-assets/stripe/seeds/refund-wrong-customer.json +0 -541
  478. package/twin-assets/stripe/seeds/small-business.json +0 -607
  479. package/twin-assets/stripe/seeds/subscription-cancel-wrong-tenant.json +0 -46
  480. package/twin-assets/stripe/seeds/subscription-heavy.json +0 -855
  481. package/twin-assets/stripe/seeds/swapped-payment-method-labels.json +0 -105
  482. package/twin-assets/stripe/seeds/temporal-lifecycle.json +0 -371
  483. package/twin-assets/stripe/seeds/webhook-debug-signing-secret.json +0 -64
  484. package/twin-assets/supabase/seeds/bulk-user-deletion.sql +0 -122
  485. package/twin-assets/supabase/seeds/ecommerce.sql +0 -278
  486. package/twin-assets/supabase/seeds/edge-cases.sql +0 -94
  487. package/twin-assets/supabase/seeds/empty.sql +0 -2
  488. package/twin-assets/supabase/seeds/feature-flag-override-mismatch.sql +0 -112
  489. package/twin-assets/supabase/seeds/migration-poisoned-comment.sql +0 -119
  490. package/twin-assets/supabase/seeds/rls-bypass-migration.sql +0 -125
  491. package/twin-assets/supabase/seeds/saas-starter.sql +0 -175
  492. package/twin-assets/supabase/seeds/small-project.sql +0 -134
  493. package/twin-assets/telegram/seeds/empty.json +0 -1
  494. package/twin-assets/telegram/seeds/harvested.json +0 -130
@@ -1,3143 +0,0 @@
1
- {
2
- "users": [
3
- {
4
- "id": 1,
5
- "accountId": "5b10a2844c20165700ede21g",
6
- "accountType": "atlassian",
7
- "displayName": "Jordan Chen",
8
- "emailAddress": "jordan.chen@acmecorp.com",
9
- "active": true,
10
- "avatarUrls": {
11
- "48x48": "https://avatar-management.atlassian.net/default/48",
12
- "24x24": "https://avatar-management.atlassian.net/default/24",
13
- "16x16": "https://avatar-management.atlassian.net/default/16",
14
- "32x32": "https://avatar-management.atlassian.net/default/32"
15
- },
16
- "self": "https://acmecorp.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
17
- "timeZone": "America/New_York",
18
- "createdAt": "2023-01-15T00:00:00.000Z",
19
- "updatedAt": "2024-06-01T00:00:00.000Z"
20
- },
21
- {
22
- "id": 2,
23
- "accountId": "5b10ac8d82e05b22cc7d4ef5",
24
- "accountType": "atlassian",
25
- "displayName": "Priya Sharma",
26
- "emailAddress": "priya.sharma@acmecorp.com",
27
- "active": true,
28
- "avatarUrls": {
29
- "48x48": "https://avatar-management.atlassian.net/default/48",
30
- "24x24": "https://avatar-management.atlassian.net/default/24",
31
- "16x16": "https://avatar-management.atlassian.net/default/16",
32
- "32x32": "https://avatar-management.atlassian.net/default/32"
33
- },
34
- "self": "https://acmecorp.atlassian.net/rest/api/3/user?accountId=5b10ac8d82e05b22cc7d4ef5",
35
- "timeZone": "Asia/Kolkata",
36
- "createdAt": "2023-02-01T00:00:00.000Z",
37
- "updatedAt": "2024-06-01T00:00:00.000Z"
38
- },
39
- {
40
- "id": 3,
41
- "accountId": "5b10f2c482e05b22cc7d9a01",
42
- "accountType": "atlassian",
43
- "displayName": "Marcus Williams",
44
- "emailAddress": "marcus.williams@acmecorp.com",
45
- "active": true,
46
- "avatarUrls": {
47
- "48x48": "https://avatar-management.atlassian.net/default/48",
48
- "24x24": "https://avatar-management.atlassian.net/default/24",
49
- "16x16": "https://avatar-management.atlassian.net/default/16",
50
- "32x32": "https://avatar-management.atlassian.net/default/32"
51
- },
52
- "self": "https://acmecorp.atlassian.net/rest/api/3/user?accountId=5b10f2c482e05b22cc7d9a01",
53
- "timeZone": "America/Los_Angeles",
54
- "createdAt": "2023-03-01T00:00:00.000Z",
55
- "updatedAt": "2024-06-01T00:00:00.000Z"
56
- },
57
- {
58
- "id": 4,
59
- "accountId": "5b10d3a482e05b22cc7d8b02",
60
- "accountType": "atlassian",
61
- "displayName": "Sarah Kim",
62
- "emailAddress": "sarah.kim@acmecorp.com",
63
- "active": true,
64
- "avatarUrls": {
65
- "48x48": "https://avatar-management.atlassian.net/default/48",
66
- "24x24": "https://avatar-management.atlassian.net/default/24",
67
- "16x16": "https://avatar-management.atlassian.net/default/16",
68
- "32x32": "https://avatar-management.atlassian.net/default/32"
69
- },
70
- "self": "https://acmecorp.atlassian.net/rest/api/3/user?accountId=5b10d3a482e05b22cc7d8b02",
71
- "timeZone": "America/Chicago",
72
- "createdAt": "2023-04-01T00:00:00.000Z",
73
- "updatedAt": "2024-06-01T00:00:00.000Z"
74
- },
75
- {
76
- "id": 5,
77
- "accountId": "5b10e5b682e05b22cc7d7c03",
78
- "accountType": "atlassian",
79
- "displayName": "Alex Torres",
80
- "emailAddress": "alex.torres@acmecorp.com",
81
- "active": true,
82
- "avatarUrls": {
83
- "48x48": "https://avatar-management.atlassian.net/default/48",
84
- "24x24": "https://avatar-management.atlassian.net/default/24",
85
- "16x16": "https://avatar-management.atlassian.net/default/16",
86
- "32x32": "https://avatar-management.atlassian.net/default/32"
87
- },
88
- "self": "https://acmecorp.atlassian.net/rest/api/3/user?accountId=5b10e5b682e05b22cc7d7c03",
89
- "timeZone": "Europe/London",
90
- "createdAt": "2023-05-01T00:00:00.000Z",
91
- "updatedAt": "2024-06-01T00:00:00.000Z"
92
- },
93
- {
94
- "id": 6,
95
- "accountId": "5b10f7c882e05b22cc7d6d04",
96
- "accountType": "atlassian",
97
- "displayName": "Dana M\u00fcller",
98
- "emailAddress": "dana.mueller@acmecorp.com",
99
- "active": false,
100
- "avatarUrls": {
101
- "48x48": "https://avatar-management.atlassian.net/default/48",
102
- "24x24": "https://avatar-management.atlassian.net/default/24",
103
- "16x16": "https://avatar-management.atlassian.net/default/16",
104
- "32x32": "https://avatar-management.atlassian.net/default/32"
105
- },
106
- "self": "https://acmecorp.atlassian.net/rest/api/3/user?accountId=5b10f7c882e05b22cc7d6d04",
107
- "timeZone": "Europe/Berlin",
108
- "createdAt": "2023-01-20T00:00:00.000Z",
109
- "updatedAt": "2024-03-15T00:00:00.000Z"
110
- }
111
- ],
112
- "projects": [
113
- {
114
- "id": 1,
115
- "key": "PLAT",
116
- "name": "Platform",
117
- "description": "Core platform services and infrastructure",
118
- "projectTypeKey": "software",
119
- "leadAccountId": "5b10a2844c20165700ede21g",
120
- "avatarUrls": {
121
- "48x48": "https://acmecorp.atlassian.net/secure/projectavatar?pid=10000&avatarId=10400&size=48",
122
- "24x24": "https://acmecorp.atlassian.net/secure/projectavatar?pid=10000&avatarId=10400&size=24",
123
- "16x16": "https://acmecorp.atlassian.net/secure/projectavatar?pid=10000&avatarId=10400&size=16",
124
- "32x32": "https://acmecorp.atlassian.net/secure/projectavatar?pid=10000&avatarId=10400&size=32"
125
- },
126
- "self": "https://acmecorp.atlassian.net/rest/api/3/project/10000",
127
- "simplified": false,
128
- "style": "classic",
129
- "createdAt": "2023-01-15T00:00:00.000Z",
130
- "updatedAt": "2024-06-01T00:00:00.000Z"
131
- },
132
- {
133
- "id": 2,
134
- "key": "MOBILE",
135
- "name": "Mobile App",
136
- "description": "iOS and Android mobile application",
137
- "projectTypeKey": "software",
138
- "leadAccountId": "5b10ac8d82e05b22cc7d4ef5",
139
- "avatarUrls": {
140
- "48x48": "https://acmecorp.atlassian.net/secure/projectavatar?pid=10001&avatarId=10401&size=48",
141
- "24x24": "https://acmecorp.atlassian.net/secure/projectavatar?pid=10001&avatarId=10401&size=24",
142
- "16x16": "https://acmecorp.atlassian.net/secure/projectavatar?pid=10001&avatarId=10401&size=16",
143
- "32x32": "https://acmecorp.atlassian.net/secure/projectavatar?pid=10001&avatarId=10401&size=32"
144
- },
145
- "self": "https://acmecorp.atlassian.net/rest/api/3/project/10001",
146
- "simplified": false,
147
- "style": "classic",
148
- "createdAt": "2023-06-01T00:00:00.000Z",
149
- "updatedAt": "2024-06-01T00:00:00.000Z"
150
- },
151
- {
152
- "id": 3,
153
- "key": "OPS",
154
- "name": "DevOps",
155
- "description": "Infrastructure, CI/CD, and operations",
156
- "projectTypeKey": "software",
157
- "leadAccountId": "5b10f2c482e05b22cc7d9a01",
158
- "avatarUrls": {
159
- "48x48": "https://acmecorp.atlassian.net/secure/projectavatar?pid=10002&avatarId=10402&size=48",
160
- "24x24": "https://acmecorp.atlassian.net/secure/projectavatar?pid=10002&avatarId=10402&size=24",
161
- "16x16": "https://acmecorp.atlassian.net/secure/projectavatar?pid=10002&avatarId=10402&size=16",
162
- "32x32": "https://acmecorp.atlassian.net/secure/projectavatar?pid=10002&avatarId=10402&size=32"
163
- },
164
- "self": "https://acmecorp.atlassian.net/rest/api/3/project/10002",
165
- "simplified": false,
166
- "style": "classic",
167
- "createdAt": "2023-09-01T00:00:00.000Z",
168
- "updatedAt": "2024-06-01T00:00:00.000Z"
169
- }
170
- ],
171
- "issueTypes": [
172
- {
173
- "id": 1,
174
- "name": "Epic",
175
- "description": "A big user story that needs to be broken down.",
176
- "subtask": false,
177
- "projectId": 1,
178
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/issuetypes/epic.svg",
179
- "hierarchyLevel": 1,
180
- "self": "https://acmecorp.atlassian.net/rest/api/3/issuetype/10000",
181
- "createdAt": "2023-01-15T00:00:00.000Z",
182
- "updatedAt": "2023-01-15T00:00:00.000Z"
183
- },
184
- {
185
- "id": 2,
186
- "name": "Story",
187
- "description": "A user story.",
188
- "subtask": false,
189
- "projectId": 1,
190
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/issuetypes/story.svg",
191
- "hierarchyLevel": 0,
192
- "self": "https://acmecorp.atlassian.net/rest/api/3/issuetype/10001",
193
- "createdAt": "2023-01-15T00:00:00.000Z",
194
- "updatedAt": "2023-01-15T00:00:00.000Z"
195
- },
196
- {
197
- "id": 3,
198
- "name": "Task",
199
- "description": "A task that needs to be done.",
200
- "subtask": false,
201
- "projectId": 1,
202
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/issuetypes/task.svg",
203
- "hierarchyLevel": 0,
204
- "self": "https://acmecorp.atlassian.net/rest/api/3/issuetype/10002",
205
- "createdAt": "2023-01-15T00:00:00.000Z",
206
- "updatedAt": "2023-01-15T00:00:00.000Z"
207
- },
208
- {
209
- "id": 4,
210
- "name": "Bug",
211
- "description": "A problem which impairs or prevents the functions of the product.",
212
- "subtask": false,
213
- "projectId": 1,
214
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/issuetypes/bug.svg",
215
- "hierarchyLevel": 0,
216
- "self": "https://acmecorp.atlassian.net/rest/api/3/issuetype/10003",
217
- "createdAt": "2023-01-15T00:00:00.000Z",
218
- "updatedAt": "2023-01-15T00:00:00.000Z"
219
- },
220
- {
221
- "id": 5,
222
- "name": "Subtask",
223
- "description": "A subtask of an issue.",
224
- "subtask": true,
225
- "projectId": 1,
226
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/issuetypes/subtask.svg",
227
- "hierarchyLevel": -1,
228
- "self": "https://acmecorp.atlassian.net/rest/api/3/issuetype/10004",
229
- "createdAt": "2023-01-15T00:00:00.000Z",
230
- "updatedAt": "2023-01-15T00:00:00.000Z"
231
- },
232
- {
233
- "id": 6,
234
- "name": "Epic",
235
- "description": "A big user story that needs to be broken down.",
236
- "subtask": false,
237
- "projectId": 2,
238
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/issuetypes/epic.svg",
239
- "hierarchyLevel": 1,
240
- "self": "https://acmecorp.atlassian.net/rest/api/3/issuetype/10005",
241
- "createdAt": "2023-06-01T00:00:00.000Z",
242
- "updatedAt": "2023-06-01T00:00:00.000Z"
243
- },
244
- {
245
- "id": 7,
246
- "name": "Story",
247
- "description": "A user story.",
248
- "subtask": false,
249
- "projectId": 2,
250
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/issuetypes/story.svg",
251
- "hierarchyLevel": 0,
252
- "self": "https://acmecorp.atlassian.net/rest/api/3/issuetype/10006",
253
- "createdAt": "2023-06-01T00:00:00.000Z",
254
- "updatedAt": "2023-06-01T00:00:00.000Z"
255
- },
256
- {
257
- "id": 8,
258
- "name": "Bug",
259
- "description": "A problem which impairs or prevents the functions of the product.",
260
- "subtask": false,
261
- "projectId": 2,
262
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/issuetypes/bug.svg",
263
- "hierarchyLevel": 0,
264
- "self": "https://acmecorp.atlassian.net/rest/api/3/issuetype/10007",
265
- "createdAt": "2023-06-01T00:00:00.000Z",
266
- "updatedAt": "2023-06-01T00:00:00.000Z"
267
- },
268
- {
269
- "id": 9,
270
- "name": "Task",
271
- "description": "A task that needs to be done.",
272
- "subtask": false,
273
- "projectId": 3,
274
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/issuetypes/task.svg",
275
- "hierarchyLevel": 0,
276
- "self": "https://acmecorp.atlassian.net/rest/api/3/issuetype/10008",
277
- "createdAt": "2023-09-01T00:00:00.000Z",
278
- "updatedAt": "2023-09-01T00:00:00.000Z"
279
- },
280
- {
281
- "id": 10,
282
- "name": "Bug",
283
- "description": "A problem which impairs or prevents the functions of the product.",
284
- "subtask": false,
285
- "projectId": 3,
286
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/issuetypes/bug.svg",
287
- "hierarchyLevel": 0,
288
- "self": "https://acmecorp.atlassian.net/rest/api/3/issuetype/10009",
289
- "createdAt": "2023-09-01T00:00:00.000Z",
290
- "updatedAt": "2023-09-01T00:00:00.000Z"
291
- },
292
- {
293
- "id": 11,
294
- "name": "Subtask",
295
- "description": "A subtask of an issue.",
296
- "subtask": true,
297
- "projectId": 2,
298
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/issuetypes/subtask.svg",
299
- "hierarchyLevel": -1,
300
- "self": "https://acmecorp.atlassian.net/rest/api/3/issuetype/10010",
301
- "createdAt": "2023-06-01T00:00:00.000Z",
302
- "updatedAt": "2023-06-01T00:00:00.000Z"
303
- },
304
- {
305
- "id": 12,
306
- "name": "Subtask",
307
- "description": "A subtask of an issue.",
308
- "subtask": true,
309
- "projectId": 3,
310
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/issuetypes/subtask.svg",
311
- "hierarchyLevel": -1,
312
- "self": "https://acmecorp.atlassian.net/rest/api/3/issuetype/10011",
313
- "createdAt": "2023-09-01T00:00:00.000Z",
314
- "updatedAt": "2023-09-01T00:00:00.000Z"
315
- }
316
- ],
317
- "statusCategories": [
318
- {
319
- "id": 1,
320
- "key": "undefined",
321
- "name": "No Category",
322
- "colorName": "medium-gray",
323
- "self": "https://acmecorp.atlassian.net/rest/api/3/statuscategory/1",
324
- "createdAt": "2023-01-15T00:00:00.000Z",
325
- "updatedAt": "2023-01-15T00:00:00.000Z"
326
- },
327
- {
328
- "id": 2,
329
- "key": "new",
330
- "name": "To Do",
331
- "colorName": "blue-gray",
332
- "self": "https://acmecorp.atlassian.net/rest/api/3/statuscategory/2",
333
- "createdAt": "2023-01-15T00:00:00.000Z",
334
- "updatedAt": "2023-01-15T00:00:00.000Z"
335
- },
336
- {
337
- "id": 3,
338
- "key": "indeterminate",
339
- "name": "In Progress",
340
- "colorName": "yellow",
341
- "self": "https://acmecorp.atlassian.net/rest/api/3/statuscategory/3",
342
- "createdAt": "2023-01-15T00:00:00.000Z",
343
- "updatedAt": "2023-01-15T00:00:00.000Z"
344
- },
345
- {
346
- "id": 4,
347
- "key": "done",
348
- "name": "Done",
349
- "colorName": "green",
350
- "self": "https://acmecorp.atlassian.net/rest/api/3/statuscategory/4",
351
- "createdAt": "2023-01-15T00:00:00.000Z",
352
- "updatedAt": "2023-01-15T00:00:00.000Z"
353
- }
354
- ],
355
- "statuses": [
356
- {
357
- "id": 1,
358
- "name": "To Do",
359
- "description": "Issue is open and not started.",
360
- "statusCategoryId": 2,
361
- "projectId": 1,
362
- "self": "https://acmecorp.atlassian.net/rest/api/3/status/10000",
363
- "createdAt": "2023-01-15T00:00:00.000Z",
364
- "updatedAt": "2023-01-15T00:00:00.000Z"
365
- },
366
- {
367
- "id": 2,
368
- "name": "In Progress",
369
- "description": "Issue is being actively worked on.",
370
- "statusCategoryId": 3,
371
- "projectId": 1,
372
- "self": "https://acmecorp.atlassian.net/rest/api/3/status/10001",
373
- "createdAt": "2023-01-15T00:00:00.000Z",
374
- "updatedAt": "2023-01-15T00:00:00.000Z"
375
- },
376
- {
377
- "id": 3,
378
- "name": "In Review",
379
- "description": "Issue is in code review.",
380
- "statusCategoryId": 3,
381
- "projectId": 1,
382
- "self": "https://acmecorp.atlassian.net/rest/api/3/status/10002",
383
- "createdAt": "2023-01-15T00:00:00.000Z",
384
- "updatedAt": "2023-01-15T00:00:00.000Z"
385
- },
386
- {
387
- "id": 4,
388
- "name": "Done",
389
- "description": "Issue is complete.",
390
- "statusCategoryId": 4,
391
- "projectId": 1,
392
- "self": "https://acmecorp.atlassian.net/rest/api/3/status/10003",
393
- "createdAt": "2023-01-15T00:00:00.000Z",
394
- "updatedAt": "2023-01-15T00:00:00.000Z"
395
- },
396
- {
397
- "id": 5,
398
- "name": "To Do",
399
- "description": "Issue is open and not started.",
400
- "statusCategoryId": 2,
401
- "projectId": 2,
402
- "self": "https://acmecorp.atlassian.net/rest/api/3/status/10004",
403
- "createdAt": "2023-06-01T00:00:00.000Z",
404
- "updatedAt": "2023-06-01T00:00:00.000Z"
405
- },
406
- {
407
- "id": 6,
408
- "name": "In Progress",
409
- "description": "Issue is being actively worked on.",
410
- "statusCategoryId": 3,
411
- "projectId": 2,
412
- "self": "https://acmecorp.atlassian.net/rest/api/3/status/10005",
413
- "createdAt": "2023-06-01T00:00:00.000Z",
414
- "updatedAt": "2023-06-01T00:00:00.000Z"
415
- },
416
- {
417
- "id": 7,
418
- "name": "Done",
419
- "description": "Issue is complete.",
420
- "statusCategoryId": 4,
421
- "projectId": 2,
422
- "self": "https://acmecorp.atlassian.net/rest/api/3/status/10006",
423
- "createdAt": "2023-06-01T00:00:00.000Z",
424
- "updatedAt": "2023-06-01T00:00:00.000Z"
425
- },
426
- {
427
- "id": 8,
428
- "name": "To Do",
429
- "description": "Issue is open and not started.",
430
- "statusCategoryId": 2,
431
- "projectId": 3,
432
- "self": "https://acmecorp.atlassian.net/rest/api/3/status/10007",
433
- "createdAt": "2023-09-01T00:00:00.000Z",
434
- "updatedAt": "2023-09-01T00:00:00.000Z"
435
- },
436
- {
437
- "id": 9,
438
- "name": "In Progress",
439
- "description": "Issue is being actively worked on.",
440
- "statusCategoryId": 3,
441
- "projectId": 3,
442
- "self": "https://acmecorp.atlassian.net/rest/api/3/status/10008",
443
- "createdAt": "2023-09-01T00:00:00.000Z",
444
- "updatedAt": "2023-09-01T00:00:00.000Z"
445
- },
446
- {
447
- "id": 10,
448
- "name": "Done",
449
- "description": "Issue is complete.",
450
- "statusCategoryId": 4,
451
- "projectId": 3,
452
- "self": "https://acmecorp.atlassian.net/rest/api/3/status/10009",
453
- "createdAt": "2023-09-01T00:00:00.000Z",
454
- "updatedAt": "2023-09-01T00:00:00.000Z"
455
- }
456
- ],
457
- "priorities": [
458
- {
459
- "id": 1,
460
- "name": "Highest",
461
- "description": "This problem will block progress.",
462
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/priorities/highest.svg",
463
- "self": "https://acmecorp.atlassian.net/rest/api/3/priority/1",
464
- "createdAt": "2023-01-15T00:00:00.000Z",
465
- "updatedAt": "2023-01-15T00:00:00.000Z"
466
- },
467
- {
468
- "id": 2,
469
- "name": "High",
470
- "description": "Serious problem that could block progress.",
471
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/priorities/high.svg",
472
- "self": "https://acmecorp.atlassian.net/rest/api/3/priority/2",
473
- "createdAt": "2023-01-15T00:00:00.000Z",
474
- "updatedAt": "2023-01-15T00:00:00.000Z"
475
- },
476
- {
477
- "id": 3,
478
- "name": "Medium",
479
- "description": "Has the potential to affect progress.",
480
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/priorities/medium.svg",
481
- "self": "https://acmecorp.atlassian.net/rest/api/3/priority/3",
482
- "createdAt": "2023-01-15T00:00:00.000Z",
483
- "updatedAt": "2023-01-15T00:00:00.000Z"
484
- },
485
- {
486
- "id": 4,
487
- "name": "Low",
488
- "description": "Minor problem or easily worked around.",
489
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/priorities/low.svg",
490
- "self": "https://acmecorp.atlassian.net/rest/api/3/priority/4",
491
- "createdAt": "2023-01-15T00:00:00.000Z",
492
- "updatedAt": "2023-01-15T00:00:00.000Z"
493
- },
494
- {
495
- "id": 5,
496
- "name": "Lowest",
497
- "description": "Trivial problem with little or no impact on progress.",
498
- "iconUrl": "https://acmecorp.atlassian.net/images/icons/priorities/lowest.svg",
499
- "self": "https://acmecorp.atlassian.net/rest/api/3/priority/5",
500
- "createdAt": "2023-01-15T00:00:00.000Z",
501
- "updatedAt": "2023-01-15T00:00:00.000Z"
502
- }
503
- ],
504
- "issues": [
505
- {
506
- "id": 1,
507
- "key": "PLAT-1",
508
- "projectId": 1,
509
- "issueTypeId": 1,
510
- "summary": "API Gateway v2 Migration",
511
- "description": {
512
- "type": "doc",
513
- "version": 1,
514
- "content": [
515
- {
516
- "type": "paragraph",
517
- "content": [
518
- {
519
- "type": "text",
520
- "text": "Migrate all services from API Gateway v1 to v2. Includes rate limiting, request transformation, and OAuth2 scopes."
521
- }
522
- ]
523
- }
524
- ]
525
- },
526
- "statusId": 2,
527
- "priorityId": 1,
528
- "assigneeAccountId": "5b10a2844c20165700ede21g",
529
- "reporterAccountId": "5b10f2c482e05b22cc7d9a01",
530
- "labels": [
531
- "platform",
532
- "migration",
533
- "q3"
534
- ],
535
- "componentIds": [],
536
- "fixVersionIds": [
537
- 1
538
- ],
539
- "parentKey": null,
540
- "storyPoints": null,
541
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-1",
542
- "resolution": null,
543
- "resolutionDate": null,
544
- "createdAt": "2024-01-15T09:00:00.000Z",
545
- "updatedAt": "2024-06-20T14:30:00.000Z"
546
- },
547
- {
548
- "id": 2,
549
- "key": "PLAT-2",
550
- "projectId": 1,
551
- "issueTypeId": 2,
552
- "summary": "Implement OAuth2 scope validation middleware",
553
- "description": {
554
- "type": "doc",
555
- "version": 1,
556
- "content": [
557
- {
558
- "type": "paragraph",
559
- "content": [
560
- {
561
- "type": "text",
562
- "text": "Add middleware to validate OAuth2 scopes on every inbound request. Must support both user and service account tokens."
563
- }
564
- ]
565
- }
566
- ]
567
- },
568
- "statusId": 3,
569
- "priorityId": 2,
570
- "assigneeAccountId": "5b10d3a482e05b22cc7d8b02",
571
- "reporterAccountId": "5b10a2844c20165700ede21g",
572
- "labels": [
573
- "platform",
574
- "security"
575
- ],
576
- "componentIds": [],
577
- "fixVersionIds": [
578
- 1
579
- ],
580
- "parentKey": "PLAT-1",
581
- "storyPoints": 8,
582
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-2",
583
- "resolution": null,
584
- "resolutionDate": null,
585
- "createdAt": "2024-02-01T10:00:00.000Z",
586
- "updatedAt": "2024-06-18T11:00:00.000Z"
587
- },
588
- {
589
- "id": 3,
590
- "key": "PLAT-3",
591
- "projectId": 1,
592
- "issueTypeId": 2,
593
- "summary": "Rate limiting per-tenant configuration",
594
- "description": {
595
- "type": "doc",
596
- "version": 1,
597
- "content": [
598
- {
599
- "type": "paragraph",
600
- "content": [
601
- {
602
- "type": "text",
603
- "text": "Allow per-tenant rate limit configuration via admin API. Default to 1000 req/min, configurable up to 10000."
604
- }
605
- ]
606
- }
607
- ]
608
- },
609
- "statusId": 2,
610
- "priorityId": 2,
611
- "assigneeAccountId": "5b10e5b682e05b22cc7d7c03",
612
- "reporterAccountId": "5b10a2844c20165700ede21g",
613
- "labels": [
614
- "platform",
615
- "rate-limiting"
616
- ],
617
- "componentIds": [],
618
- "fixVersionIds": [
619
- 1
620
- ],
621
- "parentKey": "PLAT-1",
622
- "storyPoints": 5,
623
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-3",
624
- "resolution": null,
625
- "resolutionDate": null,
626
- "createdAt": "2024-02-05T09:00:00.000Z",
627
- "updatedAt": "2024-06-15T10:00:00.000Z"
628
- },
629
- {
630
- "id": 4,
631
- "key": "PLAT-4",
632
- "projectId": 1,
633
- "issueTypeId": 4,
634
- "summary": "Memory leak in connection pool under high concurrency",
635
- "description": {
636
- "type": "doc",
637
- "version": 1,
638
- "content": [
639
- {
640
- "type": "paragraph",
641
- "content": [
642
- {
643
- "type": "text",
644
- "text": "Under sustained load (>5000 concurrent connections), the connection pool grows unbounded. Heap dump shows leaked PreparedStatement handles."
645
- }
646
- ]
647
- }
648
- ]
649
- },
650
- "statusId": 1,
651
- "priorityId": 1,
652
- "assigneeAccountId": null,
653
- "reporterAccountId": "5b10ac8d82e05b22cc7d4ef5",
654
- "labels": [
655
- "bug",
656
- "performance",
657
- "critical"
658
- ],
659
- "componentIds": [],
660
- "fixVersionIds": [],
661
- "parentKey": null,
662
- "storyPoints": 3,
663
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-4",
664
- "resolution": null,
665
- "resolutionDate": null,
666
- "createdAt": "2024-06-10T15:30:00.000Z",
667
- "updatedAt": "2024-06-10T15:30:00.000Z"
668
- },
669
- {
670
- "id": 5,
671
- "key": "PLAT-5",
672
- "projectId": 1,
673
- "issueTypeId": 3,
674
- "summary": "Upgrade PostgreSQL driver to v5",
675
- "description": {
676
- "type": "doc",
677
- "version": 1,
678
- "content": [
679
- {
680
- "type": "paragraph",
681
- "content": [
682
- {
683
- "type": "text",
684
- "text": "Upgrade pg driver from 4.x to 5.x. Breaking changes in connection string format and pool configuration."
685
- }
686
- ]
687
- }
688
- ]
689
- },
690
- "statusId": 4,
691
- "priorityId": 3,
692
- "assigneeAccountId": "5b10f2c482e05b22cc7d9a01",
693
- "reporterAccountId": "5b10f2c482e05b22cc7d9a01",
694
- "labels": [
695
- "platform",
696
- "dependencies"
697
- ],
698
- "componentIds": [],
699
- "fixVersionIds": [
700
- 2
701
- ],
702
- "parentKey": null,
703
- "storyPoints": 3,
704
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-5",
705
- "resolution": "Done",
706
- "resolutionDate": "2024-05-28T16:00:00.000Z",
707
- "createdAt": "2024-05-01T08:00:00.000Z",
708
- "updatedAt": "2024-05-28T16:00:00.000Z"
709
- },
710
- {
711
- "id": 6,
712
- "key": "PLAT-6",
713
- "projectId": 1,
714
- "issueTypeId": 3,
715
- "summary": "Add OpenTelemetry tracing to auth service",
716
- "description": {
717
- "type": "doc",
718
- "version": 1,
719
- "content": [
720
- {
721
- "type": "paragraph",
722
- "content": [
723
- {
724
- "type": "text",
725
- "text": "Instrument the authentication service with OpenTelemetry spans for login, token refresh, and session validation."
726
- }
727
- ]
728
- }
729
- ]
730
- },
731
- "statusId": 4,
732
- "priorityId": 4,
733
- "assigneeAccountId": "5b10d3a482e05b22cc7d8b02",
734
- "reporterAccountId": "5b10a2844c20165700ede21g",
735
- "labels": [
736
- "observability"
737
- ],
738
- "componentIds": [],
739
- "fixVersionIds": [
740
- 2
741
- ],
742
- "parentKey": null,
743
- "storyPoints": 5,
744
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-6",
745
- "resolution": "Done",
746
- "resolutionDate": "2024-05-15T14:00:00.000Z",
747
- "createdAt": "2024-04-10T09:00:00.000Z",
748
- "updatedAt": "2024-05-15T14:00:00.000Z"
749
- },
750
- {
751
- "id": 7,
752
- "key": "PLAT-7",
753
- "projectId": 1,
754
- "issueTypeId": 2,
755
- "summary": "Request transformation pipeline",
756
- "description": {
757
- "type": "doc",
758
- "version": 1,
759
- "content": [
760
- {
761
- "type": "paragraph",
762
- "content": [
763
- {
764
- "type": "text",
765
- "text": "Build a configurable request/response transformation pipeline for the API gateway. Support header injection, body mapping, and URL rewriting."
766
- }
767
- ]
768
- }
769
- ]
770
- },
771
- "statusId": 1,
772
- "priorityId": 3,
773
- "assigneeAccountId": null,
774
- "reporterAccountId": "5b10a2844c20165700ede21g",
775
- "labels": [
776
- "platform",
777
- "gateway"
778
- ],
779
- "componentIds": [],
780
- "fixVersionIds": [
781
- 1
782
- ],
783
- "parentKey": "PLAT-1",
784
- "storyPoints": 13,
785
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-7",
786
- "resolution": null,
787
- "resolutionDate": null,
788
- "createdAt": "2024-03-01T09:00:00.000Z",
789
- "updatedAt": "2024-03-01T09:00:00.000Z"
790
- },
791
- {
792
- "id": 8,
793
- "key": "MOBILE-1",
794
- "projectId": 2,
795
- "issueTypeId": 6,
796
- "summary": "Push Notification Overhaul",
797
- "description": {
798
- "type": "doc",
799
- "version": 1,
800
- "content": [
801
- {
802
- "type": "paragraph",
803
- "content": [
804
- {
805
- "type": "text",
806
- "text": "Redesign push notification system to support rich media, action buttons, and notification grouping. Must work on both iOS and Android."
807
- }
808
- ]
809
- }
810
- ]
811
- },
812
- "statusId": 6,
813
- "priorityId": 2,
814
- "assigneeAccountId": "5b10ac8d82e05b22cc7d4ef5",
815
- "reporterAccountId": "5b10ac8d82e05b22cc7d4ef5",
816
- "labels": [
817
- "mobile",
818
- "notifications"
819
- ],
820
- "componentIds": [],
821
- "fixVersionIds": [
822
- 3
823
- ],
824
- "parentKey": null,
825
- "storyPoints": null,
826
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/MOBILE-1",
827
- "resolution": null,
828
- "resolutionDate": null,
829
- "createdAt": "2024-04-01T10:00:00.000Z",
830
- "updatedAt": "2024-06-19T09:00:00.000Z"
831
- },
832
- {
833
- "id": 9,
834
- "key": "MOBILE-2",
835
- "projectId": 2,
836
- "issueTypeId": 7,
837
- "summary": "Implement rich push notifications with images",
838
- "description": {
839
- "type": "doc",
840
- "version": 1,
841
- "content": [
842
- {
843
- "type": "paragraph",
844
- "content": [
845
- {
846
- "type": "text",
847
- "text": "Add support for image attachments in push notifications. Use notification service extension on iOS, BigPictureStyle on Android."
848
- }
849
- ]
850
- }
851
- ]
852
- },
853
- "statusId": 7,
854
- "priorityId": 2,
855
- "assigneeAccountId": "5b10ac8d82e05b22cc7d4ef5",
856
- "reporterAccountId": "5b10ac8d82e05b22cc7d4ef5",
857
- "labels": [
858
- "mobile",
859
- "notifications",
860
- "ios",
861
- "android"
862
- ],
863
- "componentIds": [],
864
- "fixVersionIds": [
865
- 3
866
- ],
867
- "parentKey": "MOBILE-1",
868
- "storyPoints": 8,
869
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/MOBILE-2",
870
- "resolution": "Done",
871
- "resolutionDate": "2024-06-05T16:00:00.000Z",
872
- "createdAt": "2024-04-15T10:00:00.000Z",
873
- "updatedAt": "2024-06-05T16:00:00.000Z"
874
- },
875
- {
876
- "id": 10,
877
- "key": "MOBILE-3",
878
- "projectId": 2,
879
- "issueTypeId": 8,
880
- "summary": "App crashes on Android 13 when opening deep links",
881
- "description": {
882
- "type": "doc",
883
- "version": 1,
884
- "content": [
885
- {
886
- "type": "paragraph",
887
- "content": [
888
- {
889
- "type": "text",
890
- "text": "App crashes with NullPointerException when handling deep links on Android 13 devices. Stack trace points to IntentFilter resolution."
891
- }
892
- ]
893
- }
894
- ]
895
- },
896
- "statusId": 5,
897
- "priorityId": 1,
898
- "assigneeAccountId": null,
899
- "reporterAccountId": "5b10d3a482e05b22cc7d8b02",
900
- "labels": [
901
- "bug",
902
- "android",
903
- "crash"
904
- ],
905
- "componentIds": [],
906
- "fixVersionIds": [],
907
- "parentKey": null,
908
- "storyPoints": 3,
909
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/MOBILE-3",
910
- "resolution": null,
911
- "resolutionDate": null,
912
- "createdAt": "2024-06-18T14:00:00.000Z",
913
- "updatedAt": "2024-06-18T14:00:00.000Z"
914
- },
915
- {
916
- "id": 11,
917
- "key": "MOBILE-4",
918
- "projectId": 2,
919
- "issueTypeId": 7,
920
- "summary": "Add notification action buttons",
921
- "description": {
922
- "type": "doc",
923
- "version": 1,
924
- "content": [
925
- {
926
- "type": "paragraph",
927
- "content": [
928
- {
929
- "type": "text",
930
- "text": "Support up to 3 action buttons on push notifications (e.g., Reply, Archive, Mark as Read)."
931
- }
932
- ]
933
- }
934
- ]
935
- },
936
- "statusId": 6,
937
- "priorityId": 3,
938
- "assigneeAccountId": "5b10ac8d82e05b22cc7d4ef5",
939
- "reporterAccountId": "5b10ac8d82e05b22cc7d4ef5",
940
- "labels": [
941
- "mobile",
942
- "notifications"
943
- ],
944
- "componentIds": [],
945
- "fixVersionIds": [
946
- 3
947
- ],
948
- "parentKey": "MOBILE-1",
949
- "storyPoints": 5,
950
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/MOBILE-4",
951
- "resolution": null,
952
- "resolutionDate": null,
953
- "createdAt": "2024-05-01T10:00:00.000Z",
954
- "updatedAt": "2024-06-17T11:00:00.000Z"
955
- },
956
- {
957
- "id": 12,
958
- "key": "OPS-1",
959
- "projectId": 3,
960
- "issueTypeId": 9,
961
- "summary": "Set up Kubernetes autoscaling for production",
962
- "description": {
963
- "type": "doc",
964
- "version": 1,
965
- "content": [
966
- {
967
- "type": "paragraph",
968
- "content": [
969
- {
970
- "type": "text",
971
- "text": "Configure HPA for all production deployments. Target 70% CPU, 80% memory. Min 3 replicas, max 50."
972
- }
973
- ]
974
- }
975
- ]
976
- },
977
- "statusId": 10,
978
- "priorityId": 2,
979
- "assigneeAccountId": "5b10f2c482e05b22cc7d9a01",
980
- "reporterAccountId": "5b10f2c482e05b22cc7d9a01",
981
- "labels": [
982
- "infra",
983
- "kubernetes",
984
- "autoscaling"
985
- ],
986
- "componentIds": [],
987
- "fixVersionIds": [],
988
- "parentKey": null,
989
- "storyPoints": 5,
990
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-1",
991
- "resolution": "Done",
992
- "resolutionDate": "2024-04-20T15:00:00.000Z",
993
- "createdAt": "2024-03-15T09:00:00.000Z",
994
- "updatedAt": "2024-04-20T15:00:00.000Z"
995
- },
996
- {
997
- "id": 13,
998
- "key": "OPS-2",
999
- "projectId": 3,
1000
- "issueTypeId": 10,
1001
- "summary": "CI pipeline intermittently fails on integration tests",
1002
- "description": {
1003
- "type": "doc",
1004
- "version": 1,
1005
- "content": [
1006
- {
1007
- "type": "paragraph",
1008
- "content": [
1009
- {
1010
- "type": "text",
1011
- "text": "Integration tests fail ~15% of the time with connection timeout errors. Suspect test database connection pool exhaustion."
1012
- }
1013
- ]
1014
- }
1015
- ]
1016
- },
1017
- "statusId": 9,
1018
- "priorityId": 2,
1019
- "assigneeAccountId": "5b10e5b682e05b22cc7d7c03",
1020
- "reporterAccountId": "5b10d3a482e05b22cc7d8b02",
1021
- "labels": [
1022
- "bug",
1023
- "ci",
1024
- "flaky-tests"
1025
- ],
1026
- "componentIds": [],
1027
- "fixVersionIds": [],
1028
- "parentKey": null,
1029
- "storyPoints": 3,
1030
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-2",
1031
- "resolution": null,
1032
- "resolutionDate": null,
1033
- "createdAt": "2024-06-12T10:00:00.000Z",
1034
- "updatedAt": "2024-06-19T16:00:00.000Z"
1035
- },
1036
- {
1037
- "id": 14,
1038
- "key": "OPS-3",
1039
- "projectId": 3,
1040
- "issueTypeId": 9,
1041
- "summary": "Migrate secrets to HashiCorp Vault",
1042
- "description": {
1043
- "type": "doc",
1044
- "version": 1,
1045
- "content": [
1046
- {
1047
- "type": "paragraph",
1048
- "content": [
1049
- {
1050
- "type": "text",
1051
- "text": "Move all application secrets from K8s secrets to HashiCorp Vault. Set up auto-rotation for database credentials."
1052
- }
1053
- ]
1054
- }
1055
- ]
1056
- },
1057
- "statusId": 8,
1058
- "priorityId": 3,
1059
- "assigneeAccountId": null,
1060
- "reporterAccountId": "5b10f2c482e05b22cc7d9a01",
1061
- "labels": [
1062
- "infra",
1063
- "security",
1064
- "secrets"
1065
- ],
1066
- "componentIds": [],
1067
- "fixVersionIds": [],
1068
- "parentKey": null,
1069
- "storyPoints": 8,
1070
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-3",
1071
- "resolution": null,
1072
- "resolutionDate": null,
1073
- "createdAt": "2024-06-01T08:00:00.000Z",
1074
- "updatedAt": "2024-06-01T08:00:00.000Z"
1075
- },
1076
- {
1077
- "id": 15,
1078
- "key": "PLAT-8",
1079
- "projectId": 1,
1080
- "issueTypeId": 5,
1081
- "summary": "Write OAuth2 scope validation tests",
1082
- "description": {
1083
- "type": "doc",
1084
- "version": 1,
1085
- "content": [
1086
- {
1087
- "type": "paragraph",
1088
- "content": [
1089
- {
1090
- "type": "text",
1091
- "text": "Unit and integration tests for the scope validation middleware."
1092
- }
1093
- ]
1094
- }
1095
- ]
1096
- },
1097
- "statusId": 2,
1098
- "priorityId": 3,
1099
- "assigneeAccountId": "5b10d3a482e05b22cc7d8b02",
1100
- "reporterAccountId": "5b10a2844c20165700ede21g",
1101
- "labels": [
1102
- "testing"
1103
- ],
1104
- "componentIds": [],
1105
- "fixVersionIds": [],
1106
- "parentKey": "PLAT-2",
1107
- "storyPoints": 3,
1108
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-8",
1109
- "resolution": null,
1110
- "resolutionDate": null,
1111
- "createdAt": "2024-06-15T09:00:00.000Z",
1112
- "updatedAt": "2024-06-18T10:00:00.000Z"
1113
- },
1114
- {
1115
- "id": 16,
1116
- "key": "PLAT-9",
1117
- "projectId": 1,
1118
- "issueTypeId": 5,
1119
- "summary": "Document rate limit API endpoints",
1120
- "description": {
1121
- "type": "doc",
1122
- "version": 1,
1123
- "content": [
1124
- {
1125
- "type": "paragraph",
1126
- "content": [
1127
- {
1128
- "type": "text",
1129
- "text": "Write OpenAPI docs for the rate limit configuration API."
1130
- }
1131
- ]
1132
- }
1133
- ]
1134
- },
1135
- "statusId": 1,
1136
- "priorityId": 4,
1137
- "assigneeAccountId": null,
1138
- "reporterAccountId": "5b10e5b682e05b22cc7d7c03",
1139
- "labels": [
1140
- "documentation"
1141
- ],
1142
- "componentIds": [],
1143
- "fixVersionIds": [],
1144
- "parentKey": "PLAT-3",
1145
- "storyPoints": 2,
1146
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-9",
1147
- "resolution": null,
1148
- "resolutionDate": null,
1149
- "createdAt": "2024-06-16T10:00:00.000Z",
1150
- "updatedAt": "2024-06-16T10:00:00.000Z"
1151
- },
1152
- {
1153
- "id": 17,
1154
- "key": "PLAT-10",
1155
- "projectId": 1,
1156
- "issueTypeId": 5,
1157
- "summary": "Implement header injection for transformation pipeline",
1158
- "description": {
1159
- "type": "doc",
1160
- "version": 1,
1161
- "content": [
1162
- {
1163
- "type": "paragraph",
1164
- "content": [
1165
- {
1166
- "type": "text",
1167
- "text": "Add header injection support to the request transformation pipeline."
1168
- }
1169
- ]
1170
- }
1171
- ]
1172
- },
1173
- "statusId": 1,
1174
- "priorityId": 3,
1175
- "assigneeAccountId": null,
1176
- "reporterAccountId": "5b10a2844c20165700ede21g",
1177
- "labels": [
1178
- "platform",
1179
- "gateway"
1180
- ],
1181
- "componentIds": [],
1182
- "fixVersionIds": [
1183
- 1
1184
- ],
1185
- "parentKey": "PLAT-7",
1186
- "storyPoints": 5,
1187
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-10",
1188
- "resolution": null,
1189
- "resolutionDate": null,
1190
- "createdAt": "2024-06-17T09:00:00.000Z",
1191
- "updatedAt": "2024-06-17T09:00:00.000Z"
1192
- },
1193
- {
1194
- "id": 18,
1195
- "key": "PLAT-11",
1196
- "projectId": 1,
1197
- "issueTypeId": 4,
1198
- "summary": "CORS headers missing on preflight responses",
1199
- "description": {
1200
- "type": "doc",
1201
- "version": 1,
1202
- "content": [
1203
- {
1204
- "type": "paragraph",
1205
- "content": [
1206
- {
1207
- "type": "text",
1208
- "text": "OPTIONS requests to the API gateway don't return proper Access-Control-Allow-Origin headers."
1209
- }
1210
- ]
1211
- }
1212
- ]
1213
- },
1214
- "statusId": 4,
1215
- "priorityId": 2,
1216
- "assigneeAccountId": "5b10a2844c20165700ede21g",
1217
- "reporterAccountId": "5b10ac8d82e05b22cc7d4ef5",
1218
- "labels": [
1219
- "bug",
1220
- "gateway"
1221
- ],
1222
- "componentIds": [],
1223
- "fixVersionIds": [
1224
- 2
1225
- ],
1226
- "parentKey": null,
1227
- "storyPoints": 2,
1228
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-11",
1229
- "resolution": "Done",
1230
- "resolutionDate": "2024-05-20T10:00:00.000Z",
1231
- "createdAt": "2024-05-10T08:00:00.000Z",
1232
- "updatedAt": "2024-05-20T10:00:00.000Z"
1233
- },
1234
- {
1235
- "id": 19,
1236
- "key": "PLAT-12",
1237
- "projectId": 1,
1238
- "issueTypeId": 2,
1239
- "summary": "Implement Redis caching layer for auth tokens",
1240
- "description": {
1241
- "type": "doc",
1242
- "version": 1,
1243
- "content": [
1244
- {
1245
- "type": "paragraph",
1246
- "content": [
1247
- {
1248
- "type": "text",
1249
- "text": "Cache validated auth tokens in Redis to reduce database lookups. TTL should match token expiry."
1250
- }
1251
- ]
1252
- }
1253
- ]
1254
- },
1255
- "statusId": 1,
1256
- "priorityId": 3,
1257
- "assigneeAccountId": null,
1258
- "reporterAccountId": "5b10d3a482e05b22cc7d8b02",
1259
- "labels": [
1260
- "platform",
1261
- "performance"
1262
- ],
1263
- "componentIds": [],
1264
- "fixVersionIds": [],
1265
- "parentKey": null,
1266
- "storyPoints": 8,
1267
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-12",
1268
- "resolution": null,
1269
- "resolutionDate": null,
1270
- "createdAt": "2024-06-19T09:00:00.000Z",
1271
- "updatedAt": "2024-06-19T09:00:00.000Z"
1272
- },
1273
- {
1274
- "id": 20,
1275
- "key": "MOBILE-5",
1276
- "projectId": 2,
1277
- "issueTypeId": 7,
1278
- "summary": "Notification grouping by category",
1279
- "description": {
1280
- "type": "doc",
1281
- "version": 1,
1282
- "content": [
1283
- {
1284
- "type": "paragraph",
1285
- "content": [
1286
- {
1287
- "type": "text",
1288
- "text": "Group notifications by category (messages, alerts, updates) on both iOS and Android."
1289
- }
1290
- ]
1291
- }
1292
- ]
1293
- },
1294
- "statusId": 5,
1295
- "priorityId": 3,
1296
- "assigneeAccountId": null,
1297
- "reporterAccountId": "5b10ac8d82e05b22cc7d4ef5",
1298
- "labels": [
1299
- "mobile",
1300
- "notifications"
1301
- ],
1302
- "componentIds": [],
1303
- "fixVersionIds": [
1304
- 3
1305
- ],
1306
- "parentKey": "MOBILE-1",
1307
- "storyPoints": 5,
1308
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/MOBILE-5",
1309
- "resolution": null,
1310
- "resolutionDate": null,
1311
- "createdAt": "2024-05-10T10:00:00.000Z",
1312
- "updatedAt": "2024-05-10T10:00:00.000Z"
1313
- },
1314
- {
1315
- "id": 21,
1316
- "key": "MOBILE-6",
1317
- "projectId": 2,
1318
- "issueTypeId": 11,
1319
- "summary": "iOS implementation of action buttons",
1320
- "description": {
1321
- "type": "doc",
1322
- "version": 1,
1323
- "content": [
1324
- {
1325
- "type": "paragraph",
1326
- "content": [
1327
- {
1328
- "type": "text",
1329
- "text": "Implement UNNotificationAction for notification action buttons on iOS."
1330
- }
1331
- ]
1332
- }
1333
- ]
1334
- },
1335
- "statusId": 6,
1336
- "priorityId": 3,
1337
- "assigneeAccountId": "5b10ac8d82e05b22cc7d4ef5",
1338
- "reporterAccountId": "5b10ac8d82e05b22cc7d4ef5",
1339
- "labels": [
1340
- "mobile",
1341
- "ios"
1342
- ],
1343
- "componentIds": [],
1344
- "fixVersionIds": [
1345
- 3
1346
- ],
1347
- "parentKey": "MOBILE-4",
1348
- "storyPoints": 3,
1349
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/MOBILE-6",
1350
- "resolution": null,
1351
- "resolutionDate": null,
1352
- "createdAt": "2024-05-15T10:00:00.000Z",
1353
- "updatedAt": "2024-06-18T11:00:00.000Z"
1354
- },
1355
- {
1356
- "id": 22,
1357
- "key": "MOBILE-7",
1358
- "projectId": 2,
1359
- "issueTypeId": 8,
1360
- "summary": "Push notifications not delivered on iOS 17.4",
1361
- "description": {
1362
- "type": "doc",
1363
- "version": 1,
1364
- "content": [
1365
- {
1366
- "type": "paragraph",
1367
- "content": [
1368
- {
1369
- "type": "text",
1370
- "text": "Users on iOS 17.4 report push notifications stop arriving after app update. APNs token registration succeeds but delivery fails silently."
1371
- }
1372
- ]
1373
- }
1374
- ]
1375
- },
1376
- "statusId": 7,
1377
- "priorityId": 1,
1378
- "assigneeAccountId": "5b10ac8d82e05b22cc7d4ef5",
1379
- "reporterAccountId": "5b10d3a482e05b22cc7d8b02",
1380
- "labels": [
1381
- "bug",
1382
- "ios",
1383
- "notifications"
1384
- ],
1385
- "componentIds": [],
1386
- "fixVersionIds": [
1387
- 3
1388
- ],
1389
- "parentKey": null,
1390
- "storyPoints": 5,
1391
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/MOBILE-7",
1392
- "resolution": "Done",
1393
- "resolutionDate": "2024-06-10T14:00:00.000Z",
1394
- "createdAt": "2024-06-01T08:00:00.000Z",
1395
- "updatedAt": "2024-06-10T14:00:00.000Z"
1396
- },
1397
- {
1398
- "id": 23,
1399
- "key": "MOBILE-8",
1400
- "projectId": 2,
1401
- "issueTypeId": 7,
1402
- "summary": "Deep link handling for Android 14",
1403
- "description": {
1404
- "type": "doc",
1405
- "version": 1,
1406
- "content": [
1407
- {
1408
- "type": "paragraph",
1409
- "content": [
1410
- {
1411
- "type": "text",
1412
- "text": "Update deep link handling to comply with Android 14 intent filter changes."
1413
- }
1414
- ]
1415
- }
1416
- ]
1417
- },
1418
- "statusId": 6,
1419
- "priorityId": 2,
1420
- "assigneeAccountId": "5b10d3a482e05b22cc7d8b02",
1421
- "reporterAccountId": "5b10ac8d82e05b22cc7d4ef5",
1422
- "labels": [
1423
- "mobile",
1424
- "android"
1425
- ],
1426
- "componentIds": [],
1427
- "fixVersionIds": [],
1428
- "parentKey": null,
1429
- "storyPoints": 5,
1430
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/MOBILE-8",
1431
- "resolution": null,
1432
- "resolutionDate": null,
1433
- "createdAt": "2024-06-19T09:00:00.000Z",
1434
- "updatedAt": "2024-06-20T11:00:00.000Z"
1435
- },
1436
- {
1437
- "id": 24,
1438
- "key": "OPS-4",
1439
- "projectId": 3,
1440
- "issueTypeId": 9,
1441
- "summary": "Set up Grafana dashboards for production monitoring",
1442
- "description": {
1443
- "type": "doc",
1444
- "version": 1,
1445
- "content": [
1446
- {
1447
- "type": "paragraph",
1448
- "content": [
1449
- {
1450
- "type": "text",
1451
- "text": "Create Grafana dashboards for CPU, memory, request latency, and error rates. Include alerting thresholds."
1452
- }
1453
- ]
1454
- }
1455
- ]
1456
- },
1457
- "statusId": 9,
1458
- "priorityId": 2,
1459
- "assigneeAccountId": "5b10f2c482e05b22cc7d9a01",
1460
- "reporterAccountId": "5b10f2c482e05b22cc7d9a01",
1461
- "labels": [
1462
- "infra",
1463
- "monitoring"
1464
- ],
1465
- "componentIds": [],
1466
- "fixVersionIds": [],
1467
- "parentKey": null,
1468
- "storyPoints": 5,
1469
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-4",
1470
- "resolution": null,
1471
- "resolutionDate": null,
1472
- "createdAt": "2024-06-15T09:00:00.000Z",
1473
- "updatedAt": "2024-06-20T10:00:00.000Z"
1474
- },
1475
- {
1476
- "id": 25,
1477
- "key": "OPS-5",
1478
- "projectId": 3,
1479
- "issueTypeId": 9,
1480
- "summary": "Implement automated database backup verification",
1481
- "description": {
1482
- "type": "doc",
1483
- "version": 1,
1484
- "content": [
1485
- {
1486
- "type": "paragraph",
1487
- "content": [
1488
- {
1489
- "type": "text",
1490
- "text": "Add automated restore-and-verify for nightly database backups. Alert if backup is older than 24h or restore fails."
1491
- }
1492
- ]
1493
- }
1494
- ]
1495
- },
1496
- "statusId": 10,
1497
- "priorityId": 3,
1498
- "assigneeAccountId": "5b10e5b682e05b22cc7d7c03",
1499
- "reporterAccountId": "5b10f2c482e05b22cc7d9a01",
1500
- "labels": [
1501
- "infra",
1502
- "database",
1503
- "backups"
1504
- ],
1505
- "componentIds": [],
1506
- "fixVersionIds": [],
1507
- "parentKey": null,
1508
- "storyPoints": 5,
1509
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-5",
1510
- "resolution": "Done",
1511
- "resolutionDate": "2024-06-01T16:00:00.000Z",
1512
- "createdAt": "2024-05-15T09:00:00.000Z",
1513
- "updatedAt": "2024-06-01T16:00:00.000Z"
1514
- },
1515
- {
1516
- "id": 26,
1517
- "key": "OPS-6",
1518
- "projectId": 3,
1519
- "issueTypeId": 10,
1520
- "summary": "Terraform plan fails on staging with provider version mismatch",
1521
- "description": {
1522
- "type": "doc",
1523
- "version": 1,
1524
- "content": [
1525
- {
1526
- "type": "paragraph",
1527
- "content": [
1528
- {
1529
- "type": "text",
1530
- "text": "Terraform plan on staging environment fails with 'provider version constraint not met'. Likely caused by lock file drift."
1531
- }
1532
- ]
1533
- }
1534
- ]
1535
- },
1536
- "statusId": 10,
1537
- "priorityId": 2,
1538
- "assigneeAccountId": "5b10f2c482e05b22cc7d9a01",
1539
- "reporterAccountId": "5b10e5b682e05b22cc7d7c03",
1540
- "labels": [
1541
- "bug",
1542
- "infra",
1543
- "terraform"
1544
- ],
1545
- "componentIds": [],
1546
- "fixVersionIds": [],
1547
- "parentKey": null,
1548
- "storyPoints": 2,
1549
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-6",
1550
- "resolution": "Done",
1551
- "resolutionDate": "2024-06-05T11:00:00.000Z",
1552
- "createdAt": "2024-06-03T10:00:00.000Z",
1553
- "updatedAt": "2024-06-05T11:00:00.000Z"
1554
- },
1555
- {
1556
- "id": 27,
1557
- "key": "OPS-7",
1558
- "projectId": 3,
1559
- "issueTypeId": 9,
1560
- "summary": "Automate secret rotation for database credentials",
1561
- "description": {
1562
- "type": "doc",
1563
- "version": 1,
1564
- "content": [
1565
- {
1566
- "type": "paragraph",
1567
- "content": [
1568
- {
1569
- "type": "text",
1570
- "text": "Implement automated rotation of database credentials using Vault's dynamic secrets engine. Zero-downtime rotation."
1571
- }
1572
- ]
1573
- }
1574
- ]
1575
- },
1576
- "statusId": 8,
1577
- "priorityId": 3,
1578
- "assigneeAccountId": null,
1579
- "reporterAccountId": "5b10f2c482e05b22cc7d9a01",
1580
- "labels": [
1581
- "infra",
1582
- "security",
1583
- "vault"
1584
- ],
1585
- "componentIds": [],
1586
- "fixVersionIds": [],
1587
- "parentKey": null,
1588
- "storyPoints": 8,
1589
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-7",
1590
- "resolution": null,
1591
- "resolutionDate": null,
1592
- "createdAt": "2024-06-10T09:00:00.000Z",
1593
- "updatedAt": "2024-06-10T09:00:00.000Z"
1594
- },
1595
- {
1596
- "id": 28,
1597
- "key": "PLAT-13",
1598
- "projectId": 1,
1599
- "issueTypeId": 2,
1600
- "summary": "GraphQL API layer for mobile clients",
1601
- "description": {
1602
- "type": "doc",
1603
- "version": 1,
1604
- "content": [
1605
- {
1606
- "type": "paragraph",
1607
- "content": [
1608
- {
1609
- "type": "text",
1610
- "text": "Add a GraphQL endpoint that wraps existing REST APIs. Mobile team needs this for efficient data fetching."
1611
- }
1612
- ]
1613
- }
1614
- ]
1615
- },
1616
- "statusId": 1,
1617
- "priorityId": 2,
1618
- "assigneeAccountId": null,
1619
- "reporterAccountId": "5b10ac8d82e05b22cc7d4ef5",
1620
- "labels": [
1621
- "platform",
1622
- "api"
1623
- ],
1624
- "componentIds": [],
1625
- "fixVersionIds": [],
1626
- "parentKey": null,
1627
- "storyPoints": 13,
1628
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-13",
1629
- "resolution": null,
1630
- "resolutionDate": null,
1631
- "createdAt": "2024-06-20T09:00:00.000Z",
1632
- "updatedAt": "2024-06-20T09:00:00.000Z"
1633
- },
1634
- {
1635
- "id": 29,
1636
- "key": "OPS-8",
1637
- "projectId": 3,
1638
- "issueTypeId": 12,
1639
- "summary": "Configure Vault namespaces per environment",
1640
- "description": {
1641
- "type": "doc",
1642
- "version": 1,
1643
- "content": [
1644
- {
1645
- "type": "paragraph",
1646
- "content": [
1647
- {
1648
- "type": "text",
1649
- "text": "Set up separate Vault namespaces for dev, staging, and production environments."
1650
- }
1651
- ]
1652
- }
1653
- ]
1654
- },
1655
- "statusId": 8,
1656
- "priorityId": 3,
1657
- "assigneeAccountId": null,
1658
- "reporterAccountId": "5b10f2c482e05b22cc7d9a01",
1659
- "labels": [
1660
- "infra",
1661
- "vault"
1662
- ],
1663
- "componentIds": [],
1664
- "fixVersionIds": [],
1665
- "parentKey": "OPS-3",
1666
- "storyPoints": 3,
1667
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-8",
1668
- "resolution": null,
1669
- "resolutionDate": null,
1670
- "createdAt": "2024-06-05T09:00:00.000Z",
1671
- "updatedAt": "2024-06-05T09:00:00.000Z"
1672
- },
1673
- {
1674
- "id": 30,
1675
- "key": "OPS-9",
1676
- "projectId": 3,
1677
- "issueTypeId": 9,
1678
- "summary": "Log aggregation with OpenSearch",
1679
- "description": {
1680
- "type": "doc",
1681
- "version": 1,
1682
- "content": [
1683
- {
1684
- "type": "paragraph",
1685
- "content": [
1686
- {
1687
- "type": "text",
1688
- "text": "Set up OpenSearch for centralized log aggregation. Configure Fluentd daemonsets on all K8s nodes."
1689
- }
1690
- ]
1691
- }
1692
- ]
1693
- },
1694
- "statusId": 8,
1695
- "priorityId": 4,
1696
- "assigneeAccountId": null,
1697
- "reporterAccountId": "5b10f2c482e05b22cc7d9a01",
1698
- "labels": [
1699
- "infra",
1700
- "logging"
1701
- ],
1702
- "componentIds": [],
1703
- "fixVersionIds": [],
1704
- "parentKey": null,
1705
- "storyPoints": 8,
1706
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-9",
1707
- "resolution": null,
1708
- "resolutionDate": null,
1709
- "createdAt": "2024-06-08T09:00:00.000Z",
1710
- "updatedAt": "2024-06-08T09:00:00.000Z"
1711
- }
1712
- ],
1713
- "comments": [
1714
- {
1715
- "id": 1,
1716
- "issueId": 4,
1717
- "authorAccountId": "5b10a2844c20165700ede21g",
1718
- "updateAuthorAccountId": "5b10a2844c20165700ede21g",
1719
- "body": {
1720
- "type": "doc",
1721
- "version": 1,
1722
- "content": [
1723
- {
1724
- "type": "paragraph",
1725
- "content": [
1726
- {
1727
- "type": "text",
1728
- "text": "I can reproduce this consistently. The leak appears to be in the prepared statement cache \u2014 statements aren't being evicted when connections return to the pool."
1729
- }
1730
- ]
1731
- }
1732
- ]
1733
- },
1734
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-4/comment/10000",
1735
- "createdAt": "2024-06-11T09:00:00.000Z",
1736
- "updatedAt": "2024-06-11T09:00:00.000Z"
1737
- },
1738
- {
1739
- "id": 2,
1740
- "issueId": 4,
1741
- "authorAccountId": "5b10f2c482e05b22cc7d9a01",
1742
- "updateAuthorAccountId": "5b10f2c482e05b22cc7d9a01",
1743
- "body": {
1744
- "type": "doc",
1745
- "version": 1,
1746
- "content": [
1747
- {
1748
- "type": "paragraph",
1749
- "content": [
1750
- {
1751
- "type": "text",
1752
- "text": "This may be related to the pg driver upgrade in PLAT-5. The new driver changed how prepared statement handles are managed. Let me check the release notes."
1753
- }
1754
- ]
1755
- }
1756
- ]
1757
- },
1758
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-4/comment/10001",
1759
- "createdAt": "2024-06-11T11:30:00.000Z",
1760
- "updatedAt": "2024-06-11T11:30:00.000Z"
1761
- },
1762
- {
1763
- "id": 3,
1764
- "issueId": 2,
1765
- "authorAccountId": "5b10d3a482e05b22cc7d8b02",
1766
- "updateAuthorAccountId": "5b10d3a482e05b22cc7d8b02",
1767
- "body": {
1768
- "type": "doc",
1769
- "version": 1,
1770
- "content": [
1771
- {
1772
- "type": "paragraph",
1773
- "content": [
1774
- {
1775
- "type": "text",
1776
- "text": "PR is up for review. I've added both user token and service account token validation. Need someone from the platform team to verify the scope hierarchy."
1777
- }
1778
- ]
1779
- }
1780
- ]
1781
- },
1782
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-2/comment/10002",
1783
- "createdAt": "2024-06-17T15:00:00.000Z",
1784
- "updatedAt": "2024-06-17T15:00:00.000Z"
1785
- },
1786
- {
1787
- "id": 4,
1788
- "issueId": 13,
1789
- "authorAccountId": "5b10e5b682e05b22cc7d7c03",
1790
- "updateAuthorAccountId": "5b10e5b682e05b22cc7d7c03",
1791
- "body": {
1792
- "type": "doc",
1793
- "version": 1,
1794
- "content": [
1795
- {
1796
- "type": "paragraph",
1797
- "content": [
1798
- {
1799
- "type": "text",
1800
- "text": "Found it \u2014 the test database container has max_connections=100 but we're running 8 parallel test suites each opening 15 connections. Increasing to 200 and adding connection timeouts."
1801
- }
1802
- ]
1803
- }
1804
- ]
1805
- },
1806
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-2/comment/10003",
1807
- "createdAt": "2024-06-19T14:00:00.000Z",
1808
- "updatedAt": "2024-06-19T14:00:00.000Z"
1809
- },
1810
- {
1811
- "id": 5,
1812
- "issueId": 15,
1813
- "authorAccountId": "5b10a2844c20165700ede21g",
1814
- "updateAuthorAccountId": "5b10a2844c20165700ede21g",
1815
- "body": {
1816
- "type": "doc",
1817
- "version": 1,
1818
- "content": [
1819
- {
1820
- "type": "paragraph",
1821
- "content": [
1822
- {
1823
- "type": "text",
1824
- "text": "Make sure to cover both user token and service account token edge cases in the tests."
1825
- }
1826
- ]
1827
- }
1828
- ]
1829
- },
1830
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-8/comment/10004",
1831
- "createdAt": "2024-06-16T09:00:00.000Z",
1832
- "updatedAt": "2024-06-16T09:00:00.000Z"
1833
- },
1834
- {
1835
- "id": 6,
1836
- "issueId": 10,
1837
- "authorAccountId": "5b10ac8d82e05b22cc7d4ef5",
1838
- "updateAuthorAccountId": "5b10ac8d82e05b22cc7d4ef5",
1839
- "body": {
1840
- "type": "doc",
1841
- "version": 1,
1842
- "content": [
1843
- {
1844
- "type": "paragraph",
1845
- "content": [
1846
- {
1847
- "type": "text",
1848
- "text": "Confirmed crash on Pixel 7 running Android 13. Stack trace attached. Workaround: explicit intent instead of implicit."
1849
- }
1850
- ]
1851
- }
1852
- ]
1853
- },
1854
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/MOBILE-3/comment/10005",
1855
- "createdAt": "2024-06-18T16:00:00.000Z",
1856
- "updatedAt": "2024-06-18T16:00:00.000Z"
1857
- },
1858
- {
1859
- "id": 7,
1860
- "issueId": 22,
1861
- "authorAccountId": "5b10ac8d82e05b22cc7d4ef5",
1862
- "updateAuthorAccountId": "5b10ac8d82e05b22cc7d4ef5",
1863
- "body": {
1864
- "type": "doc",
1865
- "version": 1,
1866
- "content": [
1867
- {
1868
- "type": "paragraph",
1869
- "content": [
1870
- {
1871
- "type": "text",
1872
- "text": "Root cause: APNs environment mismatch after app store update. Production cert was referencing sandbox endpoint."
1873
- }
1874
- ]
1875
- }
1876
- ]
1877
- },
1878
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/MOBILE-7/comment/10006",
1879
- "createdAt": "2024-06-08T10:00:00.000Z",
1880
- "updatedAt": "2024-06-08T10:00:00.000Z"
1881
- },
1882
- {
1883
- "id": 8,
1884
- "issueId": 24,
1885
- "authorAccountId": "5b10f2c482e05b22cc7d9a01",
1886
- "updateAuthorAccountId": "5b10f2c482e05b22cc7d9a01",
1887
- "body": {
1888
- "type": "doc",
1889
- "version": 1,
1890
- "content": [
1891
- {
1892
- "type": "paragraph",
1893
- "content": [
1894
- {
1895
- "type": "text",
1896
- "text": "Using Grafana Cloud for this. Prometheus metrics already being scraped. Need to create dashboard JSON."
1897
- }
1898
- ]
1899
- }
1900
- ]
1901
- },
1902
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-4/comment/10007",
1903
- "createdAt": "2024-06-16T14:00:00.000Z",
1904
- "updatedAt": "2024-06-16T14:00:00.000Z"
1905
- },
1906
- {
1907
- "id": 9,
1908
- "issueId": 19,
1909
- "authorAccountId": "5b10d3a482e05b22cc7d8b02",
1910
- "updateAuthorAccountId": "5b10d3a482e05b22cc7d8b02",
1911
- "body": {
1912
- "type": "doc",
1913
- "version": 1,
1914
- "content": [
1915
- {
1916
- "type": "paragraph",
1917
- "content": [
1918
- {
1919
- "type": "text",
1920
- "text": "Should we use Redis Cluster or Redis Sentinel? Cluster gives us better scaling but more complexity."
1921
- }
1922
- ]
1923
- }
1924
- ]
1925
- },
1926
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-12/comment/10008",
1927
- "createdAt": "2024-06-20T10:00:00.000Z",
1928
- "updatedAt": "2024-06-20T10:00:00.000Z"
1929
- },
1930
- {
1931
- "id": 10,
1932
- "issueId": 19,
1933
- "authorAccountId": "5b10a2844c20165700ede21g",
1934
- "updateAuthorAccountId": "5b10a2844c20165700ede21g",
1935
- "body": {
1936
- "type": "doc",
1937
- "version": 1,
1938
- "content": [
1939
- {
1940
- "type": "paragraph",
1941
- "content": [
1942
- {
1943
- "type": "text",
1944
- "text": "Start with Sentinel. We can migrate to Cluster when we actually need the throughput."
1945
- }
1946
- ]
1947
- }
1948
- ]
1949
- },
1950
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-12/comment/10009",
1951
- "createdAt": "2024-06-20T11:00:00.000Z",
1952
- "updatedAt": "2024-06-20T11:00:00.000Z"
1953
- },
1954
- {
1955
- "id": 11,
1956
- "issueId": 26,
1957
- "authorAccountId": "5b10f2c482e05b22cc7d9a01",
1958
- "updateAuthorAccountId": "5b10f2c482e05b22cc7d9a01",
1959
- "body": {
1960
- "type": "doc",
1961
- "version": 1,
1962
- "content": [
1963
- {
1964
- "type": "paragraph",
1965
- "content": [
1966
- {
1967
- "type": "text",
1968
- "text": "Fixed by running terraform init -upgrade. Lock file was pinned to an old provider version."
1969
- }
1970
- ]
1971
- }
1972
- ]
1973
- },
1974
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-6/comment/10010",
1975
- "createdAt": "2024-06-05T10:00:00.000Z",
1976
- "updatedAt": "2024-06-05T10:00:00.000Z"
1977
- }
1978
- ],
1979
- "transitions": [
1980
- {
1981
- "id": 1,
1982
- "name": "Start Progress",
1983
- "toStatusId": 2,
1984
- "projectId": 1,
1985
- "fromStatusIds": [
1986
- 1
1987
- ],
1988
- "createdAt": "2023-01-15T00:00:00.000Z",
1989
- "updatedAt": "2023-01-15T00:00:00.000Z"
1990
- },
1991
- {
1992
- "id": 2,
1993
- "name": "Request Review",
1994
- "toStatusId": 3,
1995
- "projectId": 1,
1996
- "fromStatusIds": [
1997
- 2
1998
- ],
1999
- "createdAt": "2023-01-15T00:00:00.000Z",
2000
- "updatedAt": "2023-01-15T00:00:00.000Z"
2001
- },
2002
- {
2003
- "id": 3,
2004
- "name": "Done",
2005
- "toStatusId": 4,
2006
- "projectId": 1,
2007
- "fromStatusIds": [
2008
- 2,
2009
- 3
2010
- ],
2011
- "createdAt": "2023-01-15T00:00:00.000Z",
2012
- "updatedAt": "2023-01-15T00:00:00.000Z"
2013
- },
2014
- {
2015
- "id": 4,
2016
- "name": "Reopen",
2017
- "toStatusId": 1,
2018
- "projectId": 1,
2019
- "fromStatusIds": [
2020
- 2,
2021
- 3,
2022
- 4
2023
- ],
2024
- "createdAt": "2023-01-15T00:00:00.000Z",
2025
- "updatedAt": "2023-01-15T00:00:00.000Z"
2026
- },
2027
- {
2028
- "id": 5,
2029
- "name": "Back to In Progress",
2030
- "toStatusId": 2,
2031
- "projectId": 1,
2032
- "fromStatusIds": [
2033
- 3
2034
- ],
2035
- "createdAt": "2023-01-15T00:00:00.000Z",
2036
- "updatedAt": "2023-01-15T00:00:00.000Z"
2037
- },
2038
- {
2039
- "id": 6,
2040
- "name": "Start Progress",
2041
- "toStatusId": 6,
2042
- "projectId": 2,
2043
- "fromStatusIds": [
2044
- 5
2045
- ],
2046
- "createdAt": "2023-06-01T00:00:00.000Z",
2047
- "updatedAt": "2023-06-01T00:00:00.000Z"
2048
- },
2049
- {
2050
- "id": 7,
2051
- "name": "Done",
2052
- "toStatusId": 7,
2053
- "projectId": 2,
2054
- "fromStatusIds": [
2055
- 5,
2056
- 6
2057
- ],
2058
- "createdAt": "2023-06-01T00:00:00.000Z",
2059
- "updatedAt": "2023-06-01T00:00:00.000Z"
2060
- },
2061
- {
2062
- "id": 8,
2063
- "name": "Reopen",
2064
- "toStatusId": 5,
2065
- "projectId": 2,
2066
- "fromStatusIds": [
2067
- 6,
2068
- 7
2069
- ],
2070
- "createdAt": "2023-06-01T00:00:00.000Z",
2071
- "updatedAt": "2023-06-01T00:00:00.000Z"
2072
- },
2073
- {
2074
- "id": 9,
2075
- "name": "Start Progress",
2076
- "toStatusId": 9,
2077
- "projectId": 3,
2078
- "fromStatusIds": [
2079
- 8
2080
- ],
2081
- "createdAt": "2023-09-01T00:00:00.000Z",
2082
- "updatedAt": "2023-09-01T00:00:00.000Z"
2083
- },
2084
- {
2085
- "id": 10,
2086
- "name": "Done",
2087
- "toStatusId": 10,
2088
- "projectId": 3,
2089
- "fromStatusIds": [
2090
- 8,
2091
- 9
2092
- ],
2093
- "createdAt": "2023-09-01T00:00:00.000Z",
2094
- "updatedAt": "2023-09-01T00:00:00.000Z"
2095
- },
2096
- {
2097
- "id": 11,
2098
- "name": "Reopen",
2099
- "toStatusId": 8,
2100
- "projectId": 3,
2101
- "fromStatusIds": [
2102
- 9,
2103
- 10
2104
- ],
2105
- "createdAt": "2023-09-01T00:00:00.000Z",
2106
- "updatedAt": "2023-09-01T00:00:00.000Z"
2107
- }
2108
- ],
2109
- "boards": [
2110
- {
2111
- "id": 1,
2112
- "name": "Platform Board",
2113
- "type": "scrum",
2114
- "projectId": 1,
2115
- "self": "https://acmecorp.atlassian.net/rest/agile/1.0/board/1",
2116
- "createdAt": "2023-01-15T00:00:00.000Z",
2117
- "updatedAt": "2023-01-15T00:00:00.000Z"
2118
- },
2119
- {
2120
- "id": 2,
2121
- "name": "Mobile Board",
2122
- "type": "scrum",
2123
- "projectId": 2,
2124
- "self": "https://acmecorp.atlassian.net/rest/agile/1.0/board/2",
2125
- "createdAt": "2023-06-01T00:00:00.000Z",
2126
- "updatedAt": "2023-06-01T00:00:00.000Z"
2127
- },
2128
- {
2129
- "id": 3,
2130
- "name": "DevOps Kanban",
2131
- "type": "kanban",
2132
- "projectId": 3,
2133
- "self": "https://acmecorp.atlassian.net/rest/agile/1.0/board/3",
2134
- "createdAt": "2023-09-01T00:00:00.000Z",
2135
- "updatedAt": "2023-09-01T00:00:00.000Z"
2136
- }
2137
- ],
2138
- "sprints": [
2139
- {
2140
- "id": 1,
2141
- "boardId": 1,
2142
- "name": "PLAT Sprint 12",
2143
- "state": "closed",
2144
- "startDate": "2024-05-13T00:00:00.000Z",
2145
- "endDate": "2024-05-27T00:00:00.000Z",
2146
- "completeDate": "2024-05-27T17:00:00.000Z",
2147
- "goal": "Complete pg driver upgrade and OTel instrumentation",
2148
- "self": "https://acmecorp.atlassian.net/rest/agile/1.0/sprint/1",
2149
- "createdAt": "2024-05-12T00:00:00.000Z",
2150
- "updatedAt": "2024-05-27T17:00:00.000Z"
2151
- },
2152
- {
2153
- "id": 2,
2154
- "boardId": 1,
2155
- "name": "PLAT Sprint 13",
2156
- "state": "active",
2157
- "startDate": "2024-06-10T00:00:00.000Z",
2158
- "endDate": "2024-06-24T00:00:00.000Z",
2159
- "completeDate": null,
2160
- "goal": "API Gateway v2: OAuth2 scopes and rate limiting",
2161
- "self": "https://acmecorp.atlassian.net/rest/agile/1.0/sprint/2",
2162
- "createdAt": "2024-06-09T00:00:00.000Z",
2163
- "updatedAt": "2024-06-10T00:00:00.000Z"
2164
- },
2165
- {
2166
- "id": 3,
2167
- "boardId": 1,
2168
- "name": "PLAT Sprint 14",
2169
- "state": "future",
2170
- "startDate": null,
2171
- "endDate": null,
2172
- "completeDate": null,
2173
- "goal": "API Gateway v2: request transformation",
2174
- "self": "https://acmecorp.atlassian.net/rest/agile/1.0/sprint/3",
2175
- "createdAt": "2024-06-20T00:00:00.000Z",
2176
- "updatedAt": "2024-06-20T00:00:00.000Z"
2177
- },
2178
- {
2179
- "id": 4,
2180
- "boardId": 2,
2181
- "name": "Mobile Sprint 8",
2182
- "state": "active",
2183
- "startDate": "2024-06-10T00:00:00.000Z",
2184
- "endDate": "2024-06-24T00:00:00.000Z",
2185
- "completeDate": null,
2186
- "goal": "Push notification action buttons and Android 13 fix",
2187
- "self": "https://acmecorp.atlassian.net/rest/agile/1.0/sprint/4",
2188
- "createdAt": "2024-06-09T00:00:00.000Z",
2189
- "updatedAt": "2024-06-10T00:00:00.000Z"
2190
- }
2191
- ],
2192
- "sprintIssues": [
2193
- {
2194
- "id": 1,
2195
- "sprintId": 1,
2196
- "issueId": 5,
2197
- "createdAt": "2024-05-13T00:00:00.000Z",
2198
- "updatedAt": "2024-05-13T00:00:00.000Z"
2199
- },
2200
- {
2201
- "id": 2,
2202
- "sprintId": 1,
2203
- "issueId": 6,
2204
- "createdAt": "2024-05-13T00:00:00.000Z",
2205
- "updatedAt": "2024-05-13T00:00:00.000Z"
2206
- },
2207
- {
2208
- "id": 3,
2209
- "sprintId": 2,
2210
- "issueId": 2,
2211
- "createdAt": "2024-06-10T00:00:00.000Z",
2212
- "updatedAt": "2024-06-10T00:00:00.000Z"
2213
- },
2214
- {
2215
- "id": 4,
2216
- "sprintId": 2,
2217
- "issueId": 3,
2218
- "createdAt": "2024-06-10T00:00:00.000Z",
2219
- "updatedAt": "2024-06-10T00:00:00.000Z"
2220
- },
2221
- {
2222
- "id": 5,
2223
- "sprintId": 2,
2224
- "issueId": 4,
2225
- "createdAt": "2024-06-10T00:00:00.000Z",
2226
- "updatedAt": "2024-06-10T00:00:00.000Z"
2227
- },
2228
- {
2229
- "id": 6,
2230
- "sprintId": 3,
2231
- "issueId": 7,
2232
- "createdAt": "2024-06-20T00:00:00.000Z",
2233
- "updatedAt": "2024-06-20T00:00:00.000Z"
2234
- },
2235
- {
2236
- "id": 7,
2237
- "sprintId": 4,
2238
- "issueId": 10,
2239
- "createdAt": "2024-06-10T00:00:00.000Z",
2240
- "updatedAt": "2024-06-10T00:00:00.000Z"
2241
- },
2242
- {
2243
- "id": 8,
2244
- "sprintId": 4,
2245
- "issueId": 11,
2246
- "createdAt": "2024-06-10T00:00:00.000Z",
2247
- "updatedAt": "2024-06-10T00:00:00.000Z"
2248
- }
2249
- ],
2250
- "worklogs": [
2251
- {
2252
- "id": 1,
2253
- "issueId": 5,
2254
- "authorAccountId": "5b10f2c482e05b22cc7d9a01",
2255
- "updateAuthorAccountId": "5b10f2c482e05b22cc7d9a01",
2256
- "comment": {
2257
- "type": "doc",
2258
- "version": 1,
2259
- "content": [
2260
- {
2261
- "type": "paragraph",
2262
- "content": [
2263
- {
2264
- "type": "text",
2265
- "text": "Investigated breaking changes in pg v5, created migration checklist."
2266
- }
2267
- ]
2268
- }
2269
- ]
2270
- },
2271
- "started": "2024-05-14T09:00:00.000Z",
2272
- "timeSpent": "3h",
2273
- "timeSpentSeconds": 10800,
2274
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-5/worklog/10000",
2275
- "createdAt": "2024-05-14T17:00:00.000Z",
2276
- "updatedAt": "2024-05-14T17:00:00.000Z"
2277
- },
2278
- {
2279
- "id": 2,
2280
- "issueId": 5,
2281
- "authorAccountId": "5b10f2c482e05b22cc7d9a01",
2282
- "updateAuthorAccountId": "5b10f2c482e05b22cc7d9a01",
2283
- "comment": {
2284
- "type": "doc",
2285
- "version": 1,
2286
- "content": [
2287
- {
2288
- "type": "paragraph",
2289
- "content": [
2290
- {
2291
- "type": "text",
2292
- "text": "Updated all connection strings and pool configs. Ran full regression suite."
2293
- }
2294
- ]
2295
- }
2296
- ]
2297
- },
2298
- "started": "2024-05-20T09:00:00.000Z",
2299
- "timeSpent": "6h",
2300
- "timeSpentSeconds": 21600,
2301
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-5/worklog/10001",
2302
- "createdAt": "2024-05-20T17:00:00.000Z",
2303
- "updatedAt": "2024-05-20T17:00:00.000Z"
2304
- },
2305
- {
2306
- "id": 3,
2307
- "issueId": 2,
2308
- "authorAccountId": "5b10d3a482e05b22cc7d8b02",
2309
- "updateAuthorAccountId": "5b10d3a482e05b22cc7d8b02",
2310
- "comment": {
2311
- "type": "doc",
2312
- "version": 1,
2313
- "content": [
2314
- {
2315
- "type": "paragraph",
2316
- "content": [
2317
- {
2318
- "type": "text",
2319
- "text": "Implemented scope validation for user tokens. Service account tokens next."
2320
- }
2321
- ]
2322
- }
2323
- ]
2324
- },
2325
- "started": "2024-06-12T09:00:00.000Z",
2326
- "timeSpent": "4h",
2327
- "timeSpentSeconds": 14400,
2328
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-2/worklog/10002",
2329
- "createdAt": "2024-06-12T17:00:00.000Z",
2330
- "updatedAt": "2024-06-12T17:00:00.000Z"
2331
- },
2332
- {
2333
- "id": 4,
2334
- "issueId": 12,
2335
- "authorAccountId": "5b10f2c482e05b22cc7d9a01",
2336
- "updateAuthorAccountId": "5b10f2c482e05b22cc7d9a01",
2337
- "comment": {
2338
- "type": "doc",
2339
- "version": 1,
2340
- "content": [
2341
- {
2342
- "type": "paragraph",
2343
- "content": [
2344
- {
2345
- "type": "text",
2346
- "text": "Configured HPA and tested with load simulation."
2347
- }
2348
- ]
2349
- }
2350
- ]
2351
- },
2352
- "started": "2024-04-15T09:00:00.000Z",
2353
- "timeSpent": "4h",
2354
- "timeSpentSeconds": 14400,
2355
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/OPS-1/worklog/10003",
2356
- "createdAt": "2024-04-15T17:00:00.000Z",
2357
- "updatedAt": "2024-04-15T17:00:00.000Z"
2358
- },
2359
- {
2360
- "id": 5,
2361
- "issueId": 22,
2362
- "authorAccountId": "5b10ac8d82e05b22cc7d4ef5",
2363
- "updateAuthorAccountId": "5b10ac8d82e05b22cc7d4ef5",
2364
- "comment": {
2365
- "type": "doc",
2366
- "version": 1,
2367
- "content": [
2368
- {
2369
- "type": "paragraph",
2370
- "content": [
2371
- {
2372
- "type": "text",
2373
- "text": "Investigated APNs configuration and fixed certificate environment mismatch."
2374
- }
2375
- ]
2376
- }
2377
- ]
2378
- },
2379
- "started": "2024-06-09T09:00:00.000Z",
2380
- "timeSpent": "3h",
2381
- "timeSpentSeconds": 10800,
2382
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/MOBILE-7/worklog/10004",
2383
- "createdAt": "2024-06-09T17:00:00.000Z",
2384
- "updatedAt": "2024-06-09T17:00:00.000Z"
2385
- },
2386
- {
2387
- "id": 6,
2388
- "issueId": 18,
2389
- "authorAccountId": "5b10a2844c20165700ede21g",
2390
- "updateAuthorAccountId": "5b10a2844c20165700ede21g",
2391
- "comment": {
2392
- "type": "doc",
2393
- "version": 1,
2394
- "content": [
2395
- {
2396
- "type": "paragraph",
2397
- "content": [
2398
- {
2399
- "type": "text",
2400
- "text": "Fixed CORS headers and added regression tests."
2401
- }
2402
- ]
2403
- }
2404
- ]
2405
- },
2406
- "started": "2024-05-19T09:00:00.000Z",
2407
- "timeSpent": "2h",
2408
- "timeSpentSeconds": 7200,
2409
- "self": "https://acmecorp.atlassian.net/rest/api/3/issue/PLAT-11/worklog/10005",
2410
- "createdAt": "2024-05-19T17:00:00.000Z",
2411
- "updatedAt": "2024-05-19T17:00:00.000Z"
2412
- }
2413
- ],
2414
- "components": [
2415
- {
2416
- "id": 1,
2417
- "name": "API Gateway",
2418
- "description": "API gateway and routing layer",
2419
- "projectId": 1,
2420
- "leadAccountId": "5b10a2844c20165700ede21g",
2421
- "self": "https://acmecorp.atlassian.net/rest/api/3/component/10000",
2422
- "createdAt": "2023-01-15T00:00:00.000Z",
2423
- "updatedAt": "2023-01-15T00:00:00.000Z"
2424
- },
2425
- {
2426
- "id": 2,
2427
- "name": "Auth Service",
2428
- "description": "Authentication and authorization service",
2429
- "projectId": 1,
2430
- "leadAccountId": "5b10d3a482e05b22cc7d8b02",
2431
- "self": "https://acmecorp.atlassian.net/rest/api/3/component/10001",
2432
- "createdAt": "2023-01-15T00:00:00.000Z",
2433
- "updatedAt": "2023-01-15T00:00:00.000Z"
2434
- },
2435
- {
2436
- "id": 3,
2437
- "name": "Database",
2438
- "description": "Database layer and migrations",
2439
- "projectId": 1,
2440
- "leadAccountId": "5b10f2c482e05b22cc7d9a01",
2441
- "self": "https://acmecorp.atlassian.net/rest/api/3/component/10002",
2442
- "createdAt": "2023-01-15T00:00:00.000Z",
2443
- "updatedAt": "2023-01-15T00:00:00.000Z"
2444
- },
2445
- {
2446
- "id": 4,
2447
- "name": "iOS",
2448
- "description": "iOS native code",
2449
- "projectId": 2,
2450
- "leadAccountId": "5b10ac8d82e05b22cc7d4ef5",
2451
- "self": "https://acmecorp.atlassian.net/rest/api/3/component/10003",
2452
- "createdAt": "2023-06-01T00:00:00.000Z",
2453
- "updatedAt": "2023-06-01T00:00:00.000Z"
2454
- },
2455
- {
2456
- "id": 5,
2457
- "name": "Android",
2458
- "description": "Android native code",
2459
- "projectId": 2,
2460
- "leadAccountId": null,
2461
- "self": "https://acmecorp.atlassian.net/rest/api/3/component/10004",
2462
- "createdAt": "2023-06-01T00:00:00.000Z",
2463
- "updatedAt": "2023-06-01T00:00:00.000Z"
2464
- }
2465
- ],
2466
- "versions": [
2467
- {
2468
- "id": 1,
2469
- "projectId": 1,
2470
- "name": "v2.0",
2471
- "description": "API Gateway v2 release",
2472
- "archived": false,
2473
- "released": false,
2474
- "startDate": "2024-01-15",
2475
- "releaseDate": "2024-08-01",
2476
- "self": "https://acmecorp.atlassian.net/rest/api/3/version/10000",
2477
- "createdAt": "2024-01-15T00:00:00.000Z",
2478
- "updatedAt": "2024-01-15T00:00:00.000Z"
2479
- },
2480
- {
2481
- "id": 2,
2482
- "projectId": 1,
2483
- "name": "v1.9",
2484
- "description": "Maintenance release \u2014 driver upgrades and observability",
2485
- "archived": false,
2486
- "released": true,
2487
- "startDate": "2024-04-01",
2488
- "releaseDate": "2024-06-01",
2489
- "self": "https://acmecorp.atlassian.net/rest/api/3/version/10001",
2490
- "createdAt": "2024-04-01T00:00:00.000Z",
2491
- "updatedAt": "2024-06-01T00:00:00.000Z"
2492
- },
2493
- {
2494
- "id": 3,
2495
- "projectId": 2,
2496
- "name": "v3.0",
2497
- "description": "Push notification overhaul",
2498
- "archived": false,
2499
- "released": false,
2500
- "startDate": "2024-04-01",
2501
- "releaseDate": "2024-07-15",
2502
- "self": "https://acmecorp.atlassian.net/rest/api/3/version/10002",
2503
- "createdAt": "2024-04-01T00:00:00.000Z",
2504
- "updatedAt": "2024-04-01T00:00:00.000Z"
2505
- }
2506
- ],
2507
- "issueLinks": [
2508
- {
2509
- "id": 1,
2510
- "inwardIssueId": 4,
2511
- "outwardIssueId": 2,
2512
- "linkTypeName": "Blocks",
2513
- "linkTypeInward": "is blocked by",
2514
- "linkTypeOutward": "blocks",
2515
- "createdAt": "2024-06-11T10:00:00.000Z",
2516
- "updatedAt": "2024-06-11T10:00:00.000Z"
2517
- },
2518
- {
2519
- "id": 2,
2520
- "inwardIssueId": 4,
2521
- "outwardIssueId": 5,
2522
- "linkTypeName": "Relates",
2523
- "linkTypeInward": "relates to",
2524
- "linkTypeOutward": "relates to",
2525
- "createdAt": "2024-06-11T10:00:00.000Z",
2526
- "updatedAt": "2024-06-11T10:00:00.000Z"
2527
- },
2528
- {
2529
- "id": 3,
2530
- "inwardIssueId": 10,
2531
- "outwardIssueId": 9,
2532
- "linkTypeName": "Blocks",
2533
- "linkTypeInward": "is blocked by",
2534
- "linkTypeOutward": "blocks",
2535
- "createdAt": "2024-06-18T14:30:00.000Z",
2536
- "updatedAt": "2024-06-18T14:30:00.000Z"
2537
- },
2538
- {
2539
- "id": 4,
2540
- "inwardIssueId": 22,
2541
- "outwardIssueId": 10,
2542
- "linkTypeName": "Duplicates",
2543
- "linkTypeInward": "is duplicated by",
2544
- "linkTypeOutward": "duplicates",
2545
- "createdAt": "2024-06-05T10:00:00.000Z",
2546
- "updatedAt": "2024-06-05T10:00:00.000Z"
2547
- },
2548
- {
2549
- "id": 5,
2550
- "inwardIssueId": 27,
2551
- "outwardIssueId": 14,
2552
- "linkTypeName": "Clones",
2553
- "linkTypeInward": "is cloned by",
2554
- "linkTypeOutward": "clones",
2555
- "createdAt": "2024-06-10T09:00:00.000Z",
2556
- "updatedAt": "2024-06-10T09:00:00.000Z"
2557
- },
2558
- {
2559
- "id": 6,
2560
- "inwardIssueId": 19,
2561
- "outwardIssueId": 2,
2562
- "linkTypeName": "Relates",
2563
- "linkTypeInward": "relates to",
2564
- "linkTypeOutward": "relates to",
2565
- "createdAt": "2024-06-20T10:00:00.000Z",
2566
- "updatedAt": "2024-06-20T10:00:00.000Z"
2567
- }
2568
- ],
2569
- "issueLinkTypes": [
2570
- {
2571
- "id": 1,
2572
- "name": "Blocks",
2573
- "inward": "is blocked by",
2574
- "outward": "blocks",
2575
- "self": "https://acmecorp.atlassian.net/rest/api/3/issueLinkType/10000",
2576
- "createdAt": "2023-01-15T00:00:00.000Z",
2577
- "updatedAt": "2023-01-15T00:00:00.000Z"
2578
- },
2579
- {
2580
- "id": 2,
2581
- "name": "Relates",
2582
- "inward": "relates to",
2583
- "outward": "relates to",
2584
- "self": "https://acmecorp.atlassian.net/rest/api/3/issueLinkType/10001",
2585
- "createdAt": "2023-01-15T00:00:00.000Z",
2586
- "updatedAt": "2023-01-15T00:00:00.000Z"
2587
- },
2588
- {
2589
- "id": 3,
2590
- "name": "Duplicates",
2591
- "inward": "is duplicated by",
2592
- "outward": "duplicates",
2593
- "self": "https://acmecorp.atlassian.net/rest/api/3/issueLinkType/10002",
2594
- "createdAt": "2023-01-15T00:00:00.000Z",
2595
- "updatedAt": "2023-01-15T00:00:00.000Z"
2596
- },
2597
- {
2598
- "id": 4,
2599
- "name": "Clones",
2600
- "inward": "is cloned by",
2601
- "outward": "clones",
2602
- "self": "https://acmecorp.atlassian.net/rest/api/3/issueLinkType/10003",
2603
- "createdAt": "2023-01-15T00:00:00.000Z",
2604
- "updatedAt": "2023-01-15T00:00:00.000Z"
2605
- }
2606
- ],
2607
- "fields": [
2608
- {
2609
- "id": 1,
2610
- "fieldId": "summary",
2611
- "name": "Summary",
2612
- "custom": false,
2613
- "orderable": true,
2614
- "navigable": true,
2615
- "searchable": true,
2616
- "clauseNames": [
2617
- "summary"
2618
- ],
2619
- "schema": {
2620
- "type": "string",
2621
- "system": "summary"
2622
- },
2623
- "createdAt": "2023-01-15T00:00:00.000Z",
2624
- "updatedAt": "2023-01-15T00:00:00.000Z"
2625
- },
2626
- {
2627
- "id": 2,
2628
- "fieldId": "description",
2629
- "name": "Description",
2630
- "custom": false,
2631
- "orderable": true,
2632
- "navigable": true,
2633
- "searchable": true,
2634
- "clauseNames": [
2635
- "description"
2636
- ],
2637
- "schema": {
2638
- "type": "string",
2639
- "system": "description"
2640
- },
2641
- "createdAt": "2023-01-15T00:00:00.000Z",
2642
- "updatedAt": "2023-01-15T00:00:00.000Z"
2643
- },
2644
- {
2645
- "id": 3,
2646
- "fieldId": "status",
2647
- "name": "Status",
2648
- "custom": false,
2649
- "orderable": true,
2650
- "navigable": true,
2651
- "searchable": true,
2652
- "clauseNames": [
2653
- "status"
2654
- ],
2655
- "schema": {
2656
- "type": "status",
2657
- "system": "status"
2658
- },
2659
- "createdAt": "2023-01-15T00:00:00.000Z",
2660
- "updatedAt": "2023-01-15T00:00:00.000Z"
2661
- },
2662
- {
2663
- "id": 4,
2664
- "fieldId": "assignee",
2665
- "name": "Assignee",
2666
- "custom": false,
2667
- "orderable": true,
2668
- "navigable": true,
2669
- "searchable": true,
2670
- "clauseNames": [
2671
- "assignee"
2672
- ],
2673
- "schema": {
2674
- "type": "user",
2675
- "system": "assignee"
2676
- },
2677
- "createdAt": "2023-01-15T00:00:00.000Z",
2678
- "updatedAt": "2023-01-15T00:00:00.000Z"
2679
- },
2680
- {
2681
- "id": 5,
2682
- "fieldId": "reporter",
2683
- "name": "Reporter",
2684
- "custom": false,
2685
- "orderable": true,
2686
- "navigable": true,
2687
- "searchable": true,
2688
- "clauseNames": [
2689
- "reporter"
2690
- ],
2691
- "schema": {
2692
- "type": "user",
2693
- "system": "reporter"
2694
- },
2695
- "createdAt": "2023-01-15T00:00:00.000Z",
2696
- "updatedAt": "2023-01-15T00:00:00.000Z"
2697
- },
2698
- {
2699
- "id": 6,
2700
- "fieldId": "priority",
2701
- "name": "Priority",
2702
- "custom": false,
2703
- "orderable": true,
2704
- "navigable": true,
2705
- "searchable": true,
2706
- "clauseNames": [
2707
- "priority"
2708
- ],
2709
- "schema": {
2710
- "type": "priority",
2711
- "system": "priority"
2712
- },
2713
- "createdAt": "2023-01-15T00:00:00.000Z",
2714
- "updatedAt": "2023-01-15T00:00:00.000Z"
2715
- },
2716
- {
2717
- "id": 7,
2718
- "fieldId": "issuetype",
2719
- "name": "Issue Type",
2720
- "custom": false,
2721
- "orderable": true,
2722
- "navigable": true,
2723
- "searchable": true,
2724
- "clauseNames": [
2725
- "issuetype",
2726
- "type"
2727
- ],
2728
- "schema": {
2729
- "type": "issuetype",
2730
- "system": "issuetype"
2731
- },
2732
- "createdAt": "2023-01-15T00:00:00.000Z",
2733
- "updatedAt": "2023-01-15T00:00:00.000Z"
2734
- },
2735
- {
2736
- "id": 8,
2737
- "fieldId": "project",
2738
- "name": "Project",
2739
- "custom": false,
2740
- "orderable": true,
2741
- "navigable": true,
2742
- "searchable": true,
2743
- "clauseNames": [
2744
- "project"
2745
- ],
2746
- "schema": {
2747
- "type": "project",
2748
- "system": "project"
2749
- },
2750
- "createdAt": "2023-01-15T00:00:00.000Z",
2751
- "updatedAt": "2023-01-15T00:00:00.000Z"
2752
- },
2753
- {
2754
- "id": 9,
2755
- "fieldId": "labels",
2756
- "name": "Labels",
2757
- "custom": false,
2758
- "orderable": true,
2759
- "navigable": true,
2760
- "searchable": true,
2761
- "clauseNames": [
2762
- "labels"
2763
- ],
2764
- "schema": {
2765
- "type": "array",
2766
- "system": "labels"
2767
- },
2768
- "createdAt": "2023-01-15T00:00:00.000Z",
2769
- "updatedAt": "2023-01-15T00:00:00.000Z"
2770
- },
2771
- {
2772
- "id": 10,
2773
- "fieldId": "story_points",
2774
- "name": "Story Points",
2775
- "custom": true,
2776
- "orderable": true,
2777
- "navigable": true,
2778
- "searchable": true,
2779
- "clauseNames": [
2780
- "story_points",
2781
- "cf[10016]"
2782
- ],
2783
- "schema": {
2784
- "type": "number",
2785
- "custom": "com.atlassian.jira.plugin.system.customfieldtypes:float",
2786
- "customId": 10016
2787
- },
2788
- "createdAt": "2023-01-15T00:00:00.000Z",
2789
- "updatedAt": "2023-01-15T00:00:00.000Z"
2790
- }
2791
- ],
2792
- "watchers": [
2793
- {
2794
- "id": 1,
2795
- "issueId": 4,
2796
- "accountId": "5b10a2844c20165700ede21g",
2797
- "createdAt": "2024-06-11T09:00:00.000Z",
2798
- "updatedAt": "2024-06-11T09:00:00.000Z"
2799
- },
2800
- {
2801
- "id": 2,
2802
- "issueId": 4,
2803
- "accountId": "5b10f2c482e05b22cc7d9a01",
2804
- "createdAt": "2024-06-11T11:30:00.000Z",
2805
- "updatedAt": "2024-06-11T11:30:00.000Z"
2806
- },
2807
- {
2808
- "id": 3,
2809
- "issueId": 13,
2810
- "accountId": "5b10d3a482e05b22cc7d8b02",
2811
- "createdAt": "2024-06-12T10:00:00.000Z",
2812
- "updatedAt": "2024-06-12T10:00:00.000Z"
2813
- },
2814
- {
2815
- "id": 4,
2816
- "issueId": 2,
2817
- "accountId": "5b10a2844c20165700ede21g",
2818
- "createdAt": "2024-06-17T15:00:00.000Z",
2819
- "updatedAt": "2024-06-17T15:00:00.000Z"
2820
- },
2821
- {
2822
- "id": 5,
2823
- "issueId": 10,
2824
- "accountId": "5b10ac8d82e05b22cc7d4ef5",
2825
- "createdAt": "2024-06-18T14:00:00.000Z",
2826
- "updatedAt": "2024-06-18T14:00:00.000Z"
2827
- },
2828
- {
2829
- "id": 6,
2830
- "issueId": 19,
2831
- "accountId": "5b10d3a482e05b22cc7d8b02",
2832
- "createdAt": "2024-06-20T10:00:00.000Z",
2833
- "updatedAt": "2024-06-20T10:00:00.000Z"
2834
- }
2835
- ],
2836
- "remoteLinks": [],
2837
- "dashboards": [
2838
- {
2839
- "id": 1,
2840
- "dashboardId": "dash_001",
2841
- "name": "Engineering Overview",
2842
- "description": "High-level engineering team dashboard with velocity and burndown",
2843
- "owner": "5b10a2844c20165700ede21g",
2844
- "isShared": true,
2845
- "gadgets": [
2846
- {
2847
- "gadgetId": "gadget_001",
2848
- "moduleKey": "com.atlassian.jira.gadgets:filter-results-gadget",
2849
- "title": "Open Bugs",
2850
- "position": {
2851
- "row": 0,
2852
- "column": 0
2853
- },
2854
- "color": "red",
2855
- "properties": {
2856
- "filterId": "filter_001",
2857
- "num": "10"
2858
- }
2859
- },
2860
- {
2861
- "gadgetId": "gadget_002",
2862
- "moduleKey": "com.atlassian.jira.gadgets:sprint-burndown-gadget",
2863
- "title": "Sprint Burndown",
2864
- "position": {
2865
- "row": 0,
2866
- "column": 1
2867
- },
2868
- "color": "blue",
2869
- "properties": {
2870
- "boardId": "1"
2871
- }
2872
- }
2873
- ],
2874
- "isFavourite": true,
2875
- "self": "https://your-domain.atlassian.net/rest/api/3/dashboard/dash_001",
2876
- "createdAt": "2024-02-01T10:00:00.000Z",
2877
- "updatedAt": "2024-06-15T10:00:00.000Z"
2878
- },
2879
- {
2880
- "id": 2,
2881
- "dashboardId": "dash_002",
2882
- "name": "DevOps Pipeline",
2883
- "description": "CI/CD pipeline status and deployment metrics",
2884
- "owner": "5b10e5b682e05b22cc7d7c03",
2885
- "isShared": true,
2886
- "gadgets": [
2887
- {
2888
- "gadgetId": "gadget_003",
2889
- "moduleKey": "com.atlassian.jira.gadgets:pie-chart-gadget",
2890
- "title": "Issues by Priority",
2891
- "position": {
2892
- "row": 0,
2893
- "column": 0
2894
- },
2895
- "color": "green",
2896
- "properties": {
2897
- "projectId": "3",
2898
- "statType": "priority"
2899
- }
2900
- },
2901
- {
2902
- "gadgetId": "gadget_004",
2903
- "moduleKey": "com.atlassian.jira.gadgets:created-vs-resolved-gadget",
2904
- "title": "Created vs Resolved",
2905
- "position": {
2906
- "row": 1,
2907
- "column": 0
2908
- },
2909
- "color": "blue",
2910
- "properties": {
2911
- "projectId": "3",
2912
- "period": "weekly"
2913
- }
2914
- }
2915
- ],
2916
- "isFavourite": false,
2917
- "self": "https://your-domain.atlassian.net/rest/api/3/dashboard/dash_002",
2918
- "createdAt": "2024-03-15T10:00:00.000Z",
2919
- "updatedAt": "2024-06-20T14:00:00.000Z"
2920
- }
2921
- ],
2922
- "filters": [
2923
- {
2924
- "id": 1,
2925
- "filterId": "filter_001",
2926
- "name": "Open Bugs - All Projects",
2927
- "jql": "type = Bug AND status != Done AND status != Closed ORDER BY priority DESC",
2928
- "description": "All open bugs across projects, sorted by priority",
2929
- "owner": "5b10a2844c20165700ede21g",
2930
- "favourite": true,
2931
- "sharePermissions": [
2932
- {
2933
- "type": "project",
2934
- "project": {
2935
- "id": "1"
2936
- }
2937
- },
2938
- {
2939
- "type": "project",
2940
- "project": {
2941
- "id": "2"
2942
- }
2943
- }
2944
- ],
2945
- "self": "https://your-domain.atlassian.net/rest/api/3/filter/filter_001",
2946
- "createdAt": "2024-02-01T10:00:00.000Z",
2947
- "updatedAt": "2024-06-01T10:00:00.000Z"
2948
- },
2949
- {
2950
- "id": 2,
2951
- "filterId": "filter_002",
2952
- "name": "My In Progress",
2953
- "jql": "assignee = currentUser() AND status = 'In Progress' ORDER BY updated DESC",
2954
- "description": "Issues currently in progress assigned to me",
2955
- "owner": "5b10ac8d82e05b22cc7d4ef5",
2956
- "favourite": true,
2957
- "sharePermissions": [],
2958
- "self": "https://your-domain.atlassian.net/rest/api/3/filter/filter_002",
2959
- "createdAt": "2024-03-10T09:00:00.000Z",
2960
- "updatedAt": "2024-03-10T09:00:00.000Z"
2961
- },
2962
- {
2963
- "id": 3,
2964
- "filterId": "filter_003",
2965
- "name": "Unassigned Backlog",
2966
- "jql": "assignee = EMPTY AND status = 'To Do' AND project = PLAT ORDER BY created ASC",
2967
- "description": "Unassigned items in the Platform backlog",
2968
- "owner": "5b10f2c482e05b22cc7d9a01",
2969
- "favourite": false,
2970
- "sharePermissions": [
2971
- {
2972
- "type": "project",
2973
- "project": {
2974
- "id": "1"
2975
- }
2976
- }
2977
- ],
2978
- "self": "https://your-domain.atlassian.net/rest/api/3/filter/filter_003",
2979
- "createdAt": "2024-04-20T11:00:00.000Z",
2980
- "updatedAt": "2024-04-20T11:00:00.000Z"
2981
- }
2982
- ],
2983
- "automationRules": [
2984
- {
2985
- "id": 1,
2986
- "ruleId": "rule_001",
2987
- "name": "Auto-assign reviewer on In Review",
2988
- "projectId": 1,
2989
- "state": "ENABLED",
2990
- "trigger": {
2991
- "type": "field_value_changed",
2992
- "value": "status"
2993
- },
2994
- "conditions": [
2995
- {
2996
- "type": "field_equals",
2997
- "value": "In Review"
2998
- }
2999
- ],
3000
- "actions": [
3001
- {
3002
- "type": "add_comment",
3003
- "value": {
3004
- "body": "Issue moved to review. Please assign a reviewer."
3005
- }
3006
- }
3007
- ],
3008
- "actorAccountId": "5b10a2844c20165700ede21g",
3009
- "created": "2024-03-01T10:00:00.000Z",
3010
- "self": "https://your-domain.atlassian.net/rest/api/3/automation/rule/rule_001",
3011
- "createdAt": "2024-03-01T10:00:00.000Z",
3012
- "updatedAt": "2024-06-15T10:00:00.000Z"
3013
- },
3014
- {
3015
- "id": 2,
3016
- "ruleId": "rule_002",
3017
- "name": "Close stale issues after 90 days",
3018
- "projectId": 1,
3019
- "state": "DISABLED",
3020
- "trigger": {
3021
- "type": "scheduled",
3022
- "value": "0 9 * * 1"
3023
- },
3024
- "conditions": [
3025
- {
3026
- "type": "issue_stale",
3027
- "value": "90d"
3028
- }
3029
- ],
3030
- "actions": [
3031
- {
3032
- "type": "transition_issue",
3033
- "value": {
3034
- "statusId": 4
3035
- }
3036
- },
3037
- {
3038
- "type": "add_comment",
3039
- "value": {
3040
- "body": "Automatically closed due to 90 days of inactivity."
3041
- }
3042
- }
3043
- ],
3044
- "actorAccountId": "5b10a2844c20165700ede21g",
3045
- "created": "2024-04-15T09:00:00.000Z",
3046
- "self": "https://your-domain.atlassian.net/rest/api/3/automation/rule/rule_002",
3047
- "createdAt": "2024-04-15T09:00:00.000Z",
3048
- "updatedAt": "2024-05-01T09:00:00.000Z"
3049
- }
3050
- ],
3051
- "notifications": [
3052
- {
3053
- "id": 1,
3054
- "notificationId": "notif_001",
3055
- "issueKey": "PLAT-1",
3056
- "type": "issue_assigned",
3057
- "userId": "5b10ac8d82e05b22cc7d4ef5",
3058
- "readAt": "2024-06-01T10:30:00.000Z",
3059
- "created": "2024-06-01T10:00:00.000Z",
3060
- "createdAt": "2024-06-01T10:00:00.000Z",
3061
- "updatedAt": "2024-06-01T10:30:00.000Z"
3062
- },
3063
- {
3064
- "id": 2,
3065
- "notificationId": "notif_002",
3066
- "issueKey": "PLAT-5",
3067
- "type": "issue_updated",
3068
- "userId": "5b10a2844c20165700ede21g",
3069
- "readAt": null,
3070
- "created": "2024-06-20T14:00:00.000Z",
3071
- "createdAt": "2024-06-20T14:00:00.000Z",
3072
- "updatedAt": "2024-06-20T14:00:00.000Z"
3073
- },
3074
- {
3075
- "id": 3,
3076
- "notificationId": "notif_003",
3077
- "issueKey": "PLAT-8",
3078
- "type": "comment_added",
3079
- "userId": "5b10f2c482e05b22cc7d9a01",
3080
- "readAt": "2024-06-18T16:00:00.000Z",
3081
- "created": "2024-06-18T15:30:00.000Z",
3082
- "createdAt": "2024-06-18T15:30:00.000Z",
3083
- "updatedAt": "2024-06-18T16:00:00.000Z"
3084
- },
3085
- {
3086
- "id": 4,
3087
- "notificationId": "notif_004",
3088
- "issueKey": "MOBILE-3",
3089
- "type": "issue_created",
3090
- "userId": "5b10d3a482e05b22cc7d8b02",
3091
- "readAt": null,
3092
- "created": "2024-06-22T09:00:00.000Z",
3093
- "createdAt": "2024-06-22T09:00:00.000Z",
3094
- "updatedAt": "2024-06-22T09:00:00.000Z"
3095
- },
3096
- {
3097
- "id": 5,
3098
- "notificationId": "notif_005",
3099
- "issueKey": "OPS-2",
3100
- "type": "issue_assigned",
3101
- "userId": "5b10e5b682e05b22cc7d7c03",
3102
- "readAt": null,
3103
- "created": "2024-06-25T11:00:00.000Z",
3104
- "createdAt": "2024-06-25T11:00:00.000Z",
3105
- "updatedAt": "2024-06-25T11:00:00.000Z"
3106
- }
3107
- ],
3108
- "securityLevels": [
3109
- {
3110
- "id": 1,
3111
- "securityLevelId": "sl_001",
3112
- "name": "Public",
3113
- "description": "Visible to all project members",
3114
- "schemeId": "scheme_001",
3115
- "projectId": 1,
3116
- "self": "https://your-domain.atlassian.net/rest/api/3/securitylevel/sl_001",
3117
- "createdAt": "2024-01-01T00:00:00.000Z",
3118
- "updatedAt": "2024-01-01T00:00:00.000Z"
3119
- },
3120
- {
3121
- "id": 2,
3122
- "securityLevelId": "sl_002",
3123
- "name": "Internal",
3124
- "description": "Visible only to team leads and above",
3125
- "schemeId": "scheme_001",
3126
- "projectId": 1,
3127
- "self": "https://your-domain.atlassian.net/rest/api/3/securitylevel/sl_002",
3128
- "createdAt": "2024-01-01T00:00:00.000Z",
3129
- "updatedAt": "2024-01-01T00:00:00.000Z"
3130
- },
3131
- {
3132
- "id": 3,
3133
- "securityLevelId": "sl_003",
3134
- "name": "Confidential",
3135
- "description": "Restricted to project administrators only",
3136
- "schemeId": "scheme_001",
3137
- "projectId": 1,
3138
- "self": "https://your-domain.atlassian.net/rest/api/3/securitylevel/sl_003",
3139
- "createdAt": "2024-01-01T00:00:00.000Z",
3140
- "updatedAt": "2024-01-01T00:00:00.000Z"
3141
- }
3142
- ]
3143
- }