mcp4openapi 0.2.7 → 0.3.0

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 (317) hide show
  1. package/README.md +147 -63
  2. package/dist/scripts/validate-profile.js +3 -3
  3. package/dist/scripts/validate-profile.js.map +1 -1
  4. package/dist/src/{oauth-provider.d.ts → auth/oauth-provider.d.ts} +7 -2
  5. package/dist/src/auth/oauth-provider.d.ts.map +1 -0
  6. package/dist/src/{oauth-provider.js → auth/oauth-provider.js} +30 -2
  7. package/dist/src/auth/oauth-provider.js.map +1 -0
  8. package/dist/src/core/cli-config.d.ts +9 -0
  9. package/dist/src/core/cli-config.d.ts.map +1 -0
  10. package/dist/src/core/cli-config.js +124 -0
  11. package/dist/src/core/cli-config.js.map +1 -0
  12. package/dist/src/{constants.d.ts → core/constants.d.ts} +1 -0
  13. package/dist/src/core/constants.d.ts.map +1 -0
  14. package/dist/src/{constants.js → core/constants.js} +1 -0
  15. package/dist/src/core/constants.js.map +1 -0
  16. package/dist/src/{errors.d.ts → core/errors.d.ts} +6 -0
  17. package/dist/src/core/errors.d.ts.map +1 -0
  18. package/dist/src/{errors.js → core/errors.js} +15 -6
  19. package/dist/src/core/errors.js.map +1 -0
  20. package/dist/src/core/filtering.d.ts +19 -0
  21. package/dist/src/core/filtering.d.ts.map +1 -0
  22. package/dist/src/core/filtering.js +292 -0
  23. package/dist/src/core/filtering.js.map +1 -0
  24. package/dist/src/core/index.d.ts +26 -0
  25. package/dist/src/core/index.d.ts.map +1 -0
  26. package/dist/src/core/index.js +275 -0
  27. package/dist/src/core/index.js.map +1 -0
  28. package/dist/src/core/lib.d.ts +8 -0
  29. package/dist/src/core/lib.d.ts.map +1 -0
  30. package/dist/src/core/lib.js +7 -0
  31. package/dist/src/core/lib.js.map +1 -0
  32. package/dist/src/{logger.d.ts → core/logger.d.ts} +6 -13
  33. package/dist/src/core/logger.d.ts.map +1 -0
  34. package/dist/src/core/logger.js +197 -0
  35. package/dist/src/core/logger.js.map +1 -0
  36. package/dist/src/{metrics.d.ts → core/metrics.d.ts} +11 -0
  37. package/dist/src/core/metrics.d.ts.map +1 -0
  38. package/dist/src/{metrics.js → core/metrics.js} +61 -0
  39. package/dist/src/core/metrics.js.map +1 -0
  40. package/dist/src/core/naming-warnings.d.ts.map +1 -0
  41. package/dist/src/{naming-warnings.js → core/naming-warnings.js} +6 -6
  42. package/dist/src/core/naming-warnings.js.map +1 -0
  43. package/dist/src/core/naming.d.ts.map +1 -0
  44. package/dist/src/core/naming.js.map +1 -0
  45. package/dist/src/generated-schemas.d.ts +281 -79
  46. package/dist/src/generated-schemas.d.ts.map +1 -1
  47. package/dist/src/generated-schemas.js +17 -3
  48. package/dist/src/generated-schemas.js.map +1 -1
  49. package/dist/src/index.d.ts +1 -6
  50. package/dist/src/index.d.ts.map +1 -1
  51. package/dist/src/index.js +1 -156
  52. package/dist/src/index.js.map +1 -1
  53. package/dist/src/lib.d.ts +1 -7
  54. package/dist/src/lib.d.ts.map +1 -1
  55. package/dist/src/lib.js +1 -6
  56. package/dist/src/lib.js.map +1 -1
  57. package/dist/src/mcp/mcp-server-manager.d.ts +20 -0
  58. package/dist/src/mcp/mcp-server-manager.d.ts.map +1 -0
  59. package/dist/src/mcp/mcp-server-manager.js +38 -0
  60. package/dist/src/mcp/mcp-server-manager.js.map +1 -0
  61. package/dist/src/{mcp-server.d.ts → mcp/mcp-server.d.ts} +43 -3
  62. package/dist/src/mcp/mcp-server.d.ts.map +1 -0
  63. package/dist/src/{mcp-server.js → mcp/mcp-server.js} +639 -123
  64. package/dist/src/mcp/mcp-server.js.map +1 -0
  65. package/dist/src/{openapi-parser.d.ts → openapi/openapi-parser.d.ts} +1 -1
  66. package/dist/src/openapi/openapi-parser.d.ts.map +1 -0
  67. package/dist/src/{openapi-parser.js → openapi/openapi-parser.js} +2 -2
  68. package/dist/src/openapi/openapi-parser.js.map +1 -0
  69. package/dist/src/{profile-loader.d.ts → profile/profile-loader.d.ts} +3 -2
  70. package/dist/src/profile/profile-loader.d.ts.map +1 -0
  71. package/dist/src/{profile-loader.js → profile/profile-loader.js} +17 -6
  72. package/dist/src/profile/profile-loader.js.map +1 -0
  73. package/dist/src/profile/profile-registry.d.ts +18 -0
  74. package/dist/src/profile/profile-registry.d.ts.map +1 -0
  75. package/dist/src/profile/profile-registry.js +26 -0
  76. package/dist/src/profile/profile-registry.js.map +1 -0
  77. package/dist/src/profile/profile-resolver.d.ts +25 -0
  78. package/dist/src/profile/profile-resolver.d.ts.map +1 -0
  79. package/dist/src/profile/profile-resolver.js +204 -0
  80. package/dist/src/profile/profile-resolver.js.map +1 -0
  81. package/dist/src/profile/startup-profile.d.ts +17 -0
  82. package/dist/src/profile/startup-profile.d.ts.map +1 -0
  83. package/dist/src/profile/startup-profile.js +30 -0
  84. package/dist/src/profile/startup-profile.js.map +1 -0
  85. package/dist/src/profile/startup-validation.d.ts +11 -0
  86. package/dist/src/profile/startup-validation.d.ts.map +1 -0
  87. package/dist/src/profile/startup-validation.js +21 -0
  88. package/dist/src/profile/startup-validation.js.map +1 -0
  89. package/dist/src/testing/dynamic-mock-server.d.ts +24 -0
  90. package/dist/src/testing/dynamic-mock-server.d.ts.map +1 -0
  91. package/dist/src/testing/dynamic-mock-server.js +138 -0
  92. package/dist/src/testing/dynamic-mock-server.js.map +1 -0
  93. package/dist/src/testing/listen-support.d.ts +3 -0
  94. package/dist/src/testing/listen-support.d.ts.map +1 -0
  95. package/dist/src/testing/listen-support.js +50 -0
  96. package/dist/src/testing/listen-support.js.map +1 -0
  97. package/dist/src/testing/request-assertions.d.ts +5 -0
  98. package/dist/src/testing/request-assertions.d.ts.map +1 -0
  99. package/dist/src/testing/request-assertions.js +165 -0
  100. package/dist/src/testing/request-assertions.js.map +1 -0
  101. package/dist/src/testing/template-utils.d.ts +10 -0
  102. package/dist/src/testing/template-utils.d.ts.map +1 -0
  103. package/dist/src/testing/template-utils.js +72 -0
  104. package/dist/src/testing/template-utils.js.map +1 -0
  105. package/dist/src/testing/test-http-utils.d.ts +1 -1
  106. package/dist/src/testing/test-http-utils.d.ts.map +1 -1
  107. package/dist/src/testing/test-http-utils.js +1 -1
  108. package/dist/src/testing/test-http-utils.js.map +1 -1
  109. package/dist/src/testing/test-loader.d.ts +6 -0
  110. package/dist/src/testing/test-loader.d.ts.map +1 -0
  111. package/dist/src/testing/test-loader.js +212 -0
  112. package/dist/src/testing/test-loader.js.map +1 -0
  113. package/dist/src/testing/test-schema.d.ts +1270 -0
  114. package/dist/src/testing/test-schema.d.ts.map +1 -0
  115. package/dist/src/testing/test-schema.js +76 -0
  116. package/dist/src/testing/test-schema.js.map +1 -0
  117. package/dist/src/tool-filter/compat.d.ts +49 -0
  118. package/dist/src/tool-filter/compat.d.ts.map +1 -0
  119. package/dist/src/tool-filter/compat.js +72 -0
  120. package/dist/src/tool-filter/compat.js.map +1 -0
  121. package/dist/src/tool-filter/config/env-config-parser.d.ts +38 -0
  122. package/dist/src/tool-filter/config/env-config-parser.d.ts.map +1 -0
  123. package/dist/src/tool-filter/config/env-config-parser.js +103 -0
  124. package/dist/src/tool-filter/config/env-config-parser.js.map +1 -0
  125. package/dist/src/tool-filter/config/header-config-parser.d.ts +37 -0
  126. package/dist/src/tool-filter/config/header-config-parser.d.ts.map +1 -0
  127. package/dist/src/tool-filter/config/header-config-parser.js +118 -0
  128. package/dist/src/tool-filter/config/header-config-parser.js.map +1 -0
  129. package/dist/src/tool-filter/errors.d.ts +18 -0
  130. package/dist/src/tool-filter/errors.d.ts.map +1 -0
  131. package/dist/src/tool-filter/errors.js +21 -0
  132. package/dist/src/tool-filter/errors.js.map +1 -0
  133. package/dist/src/tool-filter/filter/filter-engine.d.ts +45 -0
  134. package/dist/src/tool-filter/filter/filter-engine.d.ts.map +1 -0
  135. package/dist/src/tool-filter/filter/filter-engine.js +94 -0
  136. package/dist/src/tool-filter/filter/filter-engine.js.map +1 -0
  137. package/dist/src/tool-filter/filter/filter-rules.d.ts +44 -0
  138. package/dist/src/tool-filter/filter/filter-rules.d.ts.map +1 -0
  139. package/dist/src/tool-filter/filter/filter-rules.js +72 -0
  140. package/dist/src/tool-filter/filter/filter-rules.js.map +1 -0
  141. package/dist/src/tool-filter/filter/global-tool-filter.d.ts +40 -0
  142. package/dist/src/tool-filter/filter/global-tool-filter.d.ts.map +1 -0
  143. package/dist/src/tool-filter/filter/global-tool-filter.js +92 -0
  144. package/dist/src/tool-filter/filter/global-tool-filter.js.map +1 -0
  145. package/dist/src/tool-filter/filter/session-tool-filter.d.ts +29 -0
  146. package/dist/src/tool-filter/filter/session-tool-filter.d.ts.map +1 -0
  147. package/dist/src/tool-filter/filter/session-tool-filter.js +69 -0
  148. package/dist/src/tool-filter/filter/session-tool-filter.js.map +1 -0
  149. package/dist/src/tool-filter/index.d.ts +25 -0
  150. package/dist/src/tool-filter/index.d.ts.map +1 -0
  151. package/dist/src/tool-filter/index.js +30 -0
  152. package/dist/src/tool-filter/index.js.map +1 -0
  153. package/dist/src/tool-filter/integration/tool-filter-service.d.ts +44 -0
  154. package/dist/src/tool-filter/integration/tool-filter-service.d.ts.map +1 -0
  155. package/dist/src/tool-filter/integration/tool-filter-service.js +68 -0
  156. package/dist/src/tool-filter/integration/tool-filter-service.js.map +1 -0
  157. package/dist/src/tool-filter/operation/operation-classifier.d.ts +20 -0
  158. package/dist/src/tool-filter/operation/operation-classifier.d.ts.map +1 -0
  159. package/dist/src/tool-filter/operation/operation-classifier.js +26 -0
  160. package/dist/src/tool-filter/operation/operation-classifier.js.map +1 -0
  161. package/dist/src/tool-filter/operation/operation-detector.d.ts +30 -0
  162. package/dist/src/tool-filter/operation/operation-detector.d.ts.map +1 -0
  163. package/dist/src/tool-filter/operation/operation-detector.js +96 -0
  164. package/dist/src/tool-filter/operation/operation-detector.js.map +1 -0
  165. package/dist/src/tool-filter/operation/operation-resolver.d.ts +22 -0
  166. package/dist/src/tool-filter/operation/operation-resolver.d.ts.map +1 -0
  167. package/dist/src/tool-filter/operation/operation-resolver.js +32 -0
  168. package/dist/src/tool-filter/operation/operation-resolver.js.map +1 -0
  169. package/dist/src/tool-filter/regex/regex-compiler.d.ts +22 -0
  170. package/dist/src/tool-filter/regex/regex-compiler.d.ts.map +1 -0
  171. package/dist/src/tool-filter/regex/regex-compiler.js +56 -0
  172. package/dist/src/tool-filter/regex/regex-compiler.js.map +1 -0
  173. package/dist/src/tool-filter/regex/regex-validator.d.ts +24 -0
  174. package/dist/src/tool-filter/regex/regex-validator.d.ts.map +1 -0
  175. package/dist/src/tool-filter/regex/regex-validator.js +58 -0
  176. package/dist/src/tool-filter/regex/regex-validator.js.map +1 -0
  177. package/dist/src/tool-filter/types.d.ts +92 -0
  178. package/dist/src/tool-filter/types.d.ts.map +1 -0
  179. package/dist/src/tool-filter/types.js +5 -0
  180. package/dist/src/tool-filter/types.js.map +1 -0
  181. package/dist/src/tool-filter/utils.d.ts +11 -0
  182. package/dist/src/tool-filter/utils.d.ts.map +1 -0
  183. package/dist/src/tool-filter/utils.js +13 -0
  184. package/dist/src/tool-filter/utils.js.map +1 -0
  185. package/dist/src/{composite-executor.d.ts → tooling/composite-executor.d.ts} +3 -3
  186. package/dist/src/tooling/composite-executor.d.ts.map +1 -0
  187. package/dist/src/{composite-executor.js → tooling/composite-executor.js} +1 -1
  188. package/dist/src/tooling/composite-executor.js.map +1 -0
  189. package/dist/src/{dag-executor.d.ts → tooling/dag-executor.d.ts} +1 -1
  190. package/dist/src/tooling/dag-executor.d.ts.map +1 -0
  191. package/dist/src/tooling/dag-executor.js.map +1 -0
  192. package/dist/src/{proxy-executor.d.ts → tooling/proxy-executor.d.ts} +19 -4
  193. package/dist/src/tooling/proxy-executor.d.ts.map +1 -0
  194. package/dist/src/tooling/proxy-executor.js +497 -0
  195. package/dist/src/tooling/proxy-executor.js.map +1 -0
  196. package/dist/src/{tool-generator.d.ts → tooling/tool-generator.d.ts} +4 -3
  197. package/dist/src/tooling/tool-generator.d.ts.map +1 -0
  198. package/dist/src/{tool-generator.js → tooling/tool-generator.js} +23 -7
  199. package/dist/src/tooling/tool-generator.js.map +1 -0
  200. package/dist/src/{http-client-factory.d.ts → transport/http-client-factory.d.ts} +4 -1
  201. package/dist/src/transport/http-client-factory.d.ts.map +1 -0
  202. package/dist/src/{http-client-factory.js → transport/http-client-factory.js} +13 -3
  203. package/dist/src/transport/http-client-factory.js.map +1 -0
  204. package/dist/src/transport/http-transport-config.d.ts +6 -0
  205. package/dist/src/transport/http-transport-config.d.ts.map +1 -0
  206. package/dist/src/transport/http-transport-config.js +62 -0
  207. package/dist/src/transport/http-transport-config.js.map +1 -0
  208. package/dist/src/{http-transport.d.ts → transport/http-transport.d.ts} +72 -14
  209. package/dist/src/transport/http-transport.d.ts.map +1 -0
  210. package/dist/src/transport/http-transport.js +2522 -0
  211. package/dist/src/transport/http-transport.js.map +1 -0
  212. package/dist/src/{interceptors.d.ts → transport/interceptors.d.ts} +6 -2
  213. package/dist/src/transport/interceptors.d.ts.map +1 -0
  214. package/dist/src/{interceptors.js → transport/interceptors.js} +77 -46
  215. package/dist/src/transport/interceptors.js.map +1 -0
  216. package/dist/src/types/http-transport.d.ts +25 -0
  217. package/dist/src/types/http-transport.d.ts.map +1 -1
  218. package/dist/src/types/profile.d.ts +31 -1
  219. package/dist/src/types/profile.d.ts.map +1 -1
  220. package/dist/src/validation/argument-normalizer.d.ts +6 -0
  221. package/dist/src/validation/argument-normalizer.d.ts.map +1 -0
  222. package/dist/src/validation/argument-normalizer.js +70 -0
  223. package/dist/src/validation/argument-normalizer.js.map +1 -0
  224. package/dist/src/validation/jsonrpc-validator.d.ts.map +1 -0
  225. package/dist/src/validation/jsonrpc-validator.js.map +1 -0
  226. package/dist/src/{schema-validator.d.ts → validation/schema-validator.d.ts} +2 -2
  227. package/dist/src/validation/schema-validator.d.ts.map +1 -0
  228. package/dist/src/validation/schema-validator.js.map +1 -0
  229. package/dist/src/validation/validation-utils.d.ts.map +1 -0
  230. package/dist/src/validation/validation-utils.js.map +1 -0
  231. package/package.json +9 -3
  232. package/profile-schema.json +75 -3
  233. package/profiles/gitlab/developer-profile-oauth.json +1520 -0
  234. package/profiles/gitlab/developer-profile-oauth.test.json +3432 -0
  235. package/profiles/gitlab/openapi.yaml +6891 -0
  236. package/profiles/n8n/openapi.yaml +2441 -0
  237. package/profiles/n8n/profile-optimized.json +965 -0
  238. package/profiles/n8n/profile-optimized.test.json +1078 -0
  239. package/profiles/n8n/profile.json +1033 -0
  240. package/profiles/n8n/profile.test.json +983 -0
  241. package/profiles/n8n-nodes/openapi.yaml +24 -0
  242. package/profiles/n8n-nodes/profile-nodes.json +44 -0
  243. package/profiles/n8n-nodes/profile-nodes.test.json +91 -0
  244. package/profiles/semgrep/openapi.yaml +4706 -0
  245. package/profiles/semgrep/profile.json +692 -0
  246. package/profiles/semgrep/profile.test.json +471 -0
  247. package/profiles/youtrack/openapi.json +16976 -0
  248. package/profiles/youtrack/profile.json +608 -0
  249. package/profiles/youtrack/profile.test.json +1926 -0
  250. package/dist/src/composite-executor.d.ts.map +0 -1
  251. package/dist/src/composite-executor.js.map +0 -1
  252. package/dist/src/constants.d.ts.map +0 -1
  253. package/dist/src/constants.js.map +0 -1
  254. package/dist/src/dag-executor.d.ts.map +0 -1
  255. package/dist/src/dag-executor.js.map +0 -1
  256. package/dist/src/errors.d.ts.map +0 -1
  257. package/dist/src/errors.js.map +0 -1
  258. package/dist/src/http-client-factory.d.ts.map +0 -1
  259. package/dist/src/http-client-factory.js.map +0 -1
  260. package/dist/src/http-transport.d.ts.map +0 -1
  261. package/dist/src/http-transport.js +0 -1826
  262. package/dist/src/http-transport.js.map +0 -1
  263. package/dist/src/interceptors.d.ts.map +0 -1
  264. package/dist/src/interceptors.js.map +0 -1
  265. package/dist/src/jsonrpc-validator.d.ts.map +0 -1
  266. package/dist/src/jsonrpc-validator.js.map +0 -1
  267. package/dist/src/logger.d.ts.map +0 -1
  268. package/dist/src/logger.js +0 -177
  269. package/dist/src/logger.js.map +0 -1
  270. package/dist/src/mcp-server.d.ts.map +0 -1
  271. package/dist/src/mcp-server.js.map +0 -1
  272. package/dist/src/metrics.d.ts.map +0 -1
  273. package/dist/src/metrics.js.map +0 -1
  274. package/dist/src/naming-warnings.d.ts.map +0 -1
  275. package/dist/src/naming-warnings.js.map +0 -1
  276. package/dist/src/naming.d.ts.map +0 -1
  277. package/dist/src/naming.js.map +0 -1
  278. package/dist/src/oauth-provider.d.ts.map +0 -1
  279. package/dist/src/oauth-provider.js.map +0 -1
  280. package/dist/src/openapi-parser.d.ts.map +0 -1
  281. package/dist/src/openapi-parser.js.map +0 -1
  282. package/dist/src/profile-loader.d.ts.map +0 -1
  283. package/dist/src/profile-loader.js.map +0 -1
  284. package/dist/src/proxy-executor.d.ts.map +0 -1
  285. package/dist/src/proxy-executor.js +0 -240
  286. package/dist/src/proxy-executor.js.map +0 -1
  287. package/dist/src/schema-validator.d.ts.map +0 -1
  288. package/dist/src/schema-validator.js.map +0 -1
  289. package/dist/src/testing/fixtures.d.ts +0 -684
  290. package/dist/src/testing/fixtures.d.ts.map +0 -1
  291. package/dist/src/testing/fixtures.js +0 -528
  292. package/dist/src/testing/fixtures.js.map +0 -1
  293. package/dist/src/testing/mock-gitlab-server.d.ts +0 -43
  294. package/dist/src/testing/mock-gitlab-server.d.ts.map +0 -1
  295. package/dist/src/testing/mock-gitlab-server.js +0 -1026
  296. package/dist/src/testing/mock-gitlab-server.js.map +0 -1
  297. package/dist/src/testing/mock-semgrep-server.d.ts +0 -32
  298. package/dist/src/testing/mock-semgrep-server.d.ts.map +0 -1
  299. package/dist/src/testing/mock-semgrep-server.js +0 -213
  300. package/dist/src/testing/mock-semgrep-server.js.map +0 -1
  301. package/dist/src/testing/mock-youtrack-server.d.ts +0 -11
  302. package/dist/src/testing/mock-youtrack-server.d.ts.map +0 -1
  303. package/dist/src/testing/mock-youtrack-server.js +0 -138
  304. package/dist/src/testing/mock-youtrack-server.js.map +0 -1
  305. package/dist/src/tool-generator.d.ts.map +0 -1
  306. package/dist/src/tool-generator.js.map +0 -1
  307. package/dist/src/validation-utils.d.ts.map +0 -1
  308. package/dist/src/validation-utils.js.map +0 -1
  309. /package/dist/src/{naming-warnings.d.ts → core/naming-warnings.d.ts} +0 -0
  310. /package/dist/src/{naming.d.ts → core/naming.d.ts} +0 -0
  311. /package/dist/src/{naming.js → core/naming.js} +0 -0
  312. /package/dist/src/{dag-executor.js → tooling/dag-executor.js} +0 -0
  313. /package/dist/src/{jsonrpc-validator.d.ts → validation/jsonrpc-validator.d.ts} +0 -0
  314. /package/dist/src/{jsonrpc-validator.js → validation/jsonrpc-validator.js} +0 -0
  315. /package/dist/src/{schema-validator.js → validation/schema-validator.js} +0 -0
  316. /package/dist/src/{validation-utils.d.ts → validation/validation-utils.d.ts} +0 -0
  317. /package/dist/src/{validation-utils.js → validation/validation-utils.js} +0 -0
@@ -0,0 +1,4706 @@
1
+ components:
2
+ schemas:
3
+ protos.ai.v1.Autotriage:
4
+ properties:
5
+ feedback:
6
+ $ref: '#/components/schemas/protos.ai.v1.AutotriageFeedback'
7
+ id:
8
+ type: string
9
+ issueId:
10
+ type: string
11
+ matchBasedId:
12
+ type: string
13
+ memoryIdsReferenced:
14
+ items:
15
+ type: string
16
+ type: array
17
+ memoryIdsRendered:
18
+ items:
19
+ type: string
20
+ type: array
21
+ reason:
22
+ description: The reasoning for a false positive verdict, explaining why
23
+ you might want to ignore the finding. Empty string if verdict is true
24
+ positive.
25
+ type: string
26
+ verdict:
27
+ description: '
28
+
29
+ | value | description |
30
+
31
+ |-------|---------------|
32
+
33
+ | VERDICT_TRUE_POSITIVE | |
34
+
35
+ | VERDICT_FALSE_POSITIVE | |
36
+
37
+ | VERDICT_NO_VERDICT | |
38
+
39
+
40
+ '
41
+ enum:
42
+ - VERDICT_TRUE_POSITIVE
43
+ - VERDICT_FALSE_POSITIVE
44
+ - VERDICT_NO_VERDICT
45
+ format: enum
46
+ type: string
47
+ type: object
48
+ protos.ai.v1.AutotriageFeedback:
49
+ properties:
50
+ autotriageId:
51
+ type: string
52
+ rating:
53
+ description: '
54
+
55
+ | value | description |
56
+
57
+ |-------|---------------|
58
+
59
+ | RATING_GOOD | Autotriage rated positively by a user. |
60
+
61
+ | RATING_BAD | Autotriage rated negatively by a user. |
62
+
63
+
64
+ '
65
+ enum:
66
+ - RATING_GOOD
67
+ - RATING_BAD
68
+ format: enum
69
+ type: string
70
+ type: object
71
+ protos.common.v1.FloatRange:
72
+ properties:
73
+ max:
74
+ description: End of the range
75
+ format: float
76
+ type: number
77
+ min:
78
+ description: Start of the range
79
+ format: float
80
+ type: number
81
+ title: Float Range
82
+ type: object
83
+ protos.common.v1.Policy:
84
+ properties:
85
+ id:
86
+ description: ID of the Policy.
87
+ example: '1'
88
+ format: uint64
89
+ type: string
90
+ isDefault:
91
+ description: When True, the Policy applies to all repositories.
92
+ example: true
93
+ type: boolean
94
+ name:
95
+ description: Name of the Policy.
96
+ example: Global Policy
97
+ type: string
98
+ productType:
99
+ description: 'Product type the Policy applies to.
100
+
101
+
102
+ | value | description |
103
+
104
+ |-------|---------------|
105
+
106
+ | PRODUCT_TYPE_SAST | The product type for Code rules. |
107
+
108
+ | PRODUCT_TYPE_SECRETS | The product type for Secrets rules. |
109
+
110
+
111
+ '
112
+ enum:
113
+ - PRODUCT_TYPE_SAST
114
+ - PRODUCT_TYPE_SECRETS
115
+ example: PRODUCT_TYPE_SAST
116
+ format: enum
117
+ type: string
118
+ slug:
119
+ description: Sanitized machine-readable name of the Policy.
120
+ example: global_policy
121
+ type: string
122
+ title: Policy
123
+ type: object
124
+ protos.common.v1.ReviewComment:
125
+ properties:
126
+ externalDiscussionId:
127
+ description: External ID of the review comment or discussion thread.
128
+ type: string
129
+ externalNoteId:
130
+ description: External ID of the specific note in the review comment discussion
131
+ thread. Only applicable for GitLab.com, GitLab Self-Managed and Azure
132
+ DevOps.
133
+ type: string
134
+ type: object
135
+ protos.common.v1.Rule:
136
+ properties:
137
+ category:
138
+ description: Category the Rule is associated with.
139
+ example: security
140
+ type: string
141
+ confidence:
142
+ description: 'Confidence based on the Rule''s false-positive rate.
143
+
144
+
145
+ | value | description |
146
+
147
+ |-------|---------------|
148
+
149
+ | CONFIDENCE_HIGH | |
150
+
151
+ | CONFIDENCE_MEDIUM | |
152
+
153
+ | CONFIDENCE_LOW | |
154
+
155
+
156
+ '
157
+ enum:
158
+ - CONFIDENCE_HIGH
159
+ - CONFIDENCE_MEDIUM
160
+ - CONFIDENCE_LOW
161
+ example: CONFIDENCE_HIGH
162
+ format: enum
163
+ type: string
164
+ cweCategories:
165
+ description: The CWE associated with the Rule.
166
+ example:
167
+ - 'CWE-918: Server-Side Request Forgery (SSRF)'
168
+ items:
169
+ type: string
170
+ type: array
171
+ hasValidators:
172
+ description: When True, the secrets rule has validators.
173
+ type: boolean
174
+ id:
175
+ description: ID of the Rule.
176
+ format: uint64
177
+ type: string
178
+ languages:
179
+ description: Languages the Rule applies to.
180
+ example:
181
+ - python
182
+ items:
183
+ type: string
184
+ type: array
185
+ lastChangeAt:
186
+ description: Timestamp of when the Rule was last changed.
187
+ example: 2024-07-29 22:33:37.380293+00:00
188
+ format: date-time
189
+ type: string
190
+ lastChangeBy:
191
+ description: Username of who last changed the Rule.
192
+ type: string
193
+ owaspCategories:
194
+ description: Owasp categories the Rule is associated with.
195
+ example:
196
+ - 'A07: Cross-Site Scripting (XSS)'
197
+ items:
198
+ type: string
199
+ type: array
200
+ path:
201
+ description: Full path of the Rule.
202
+ example: python.rule.1
203
+ type: string
204
+ policyMode:
205
+ description: 'Mode behavior: Monitor / Comment / Block / Disabled
206
+ | value | description |
207
+ |-------|-------------|
208
+ | MODE_MONITOR | Monitor mode, silently report findings |
209
+ | MODE_COMMENT | Comment mode, leaves PR comments but does not block |
210
+ | MODE_BLOCK | Block mode, leaves PR comments and blocks PR |
211
+ | MODE_DISABLED | Disabled mode, not active |
212
+ '
213
+ enum:
214
+ - MODE_MONITOR
215
+ - MODE_COMMENT
216
+ - MODE_BLOCK
217
+ - MODE_DISABLED
218
+ example: MODE_BLOCK
219
+ format: enum
220
+ type: string
221
+ registryMaintainer:
222
+ description: The Registry maintainer associated with the Rule (if applicable).
223
+ example: semgrep
224
+ type: string
225
+ rulesets:
226
+ description: Rulesets to which the Rule belongs (if applicable).
227
+ example: []
228
+ items:
229
+ type: string
230
+ type: array
231
+ secretType:
232
+ description: The secret type (if applicable).
233
+ type: string
234
+ severity:
235
+ description: 'Severity level ("seriousness" of the finding)
236
+ | value | description |
237
+ |-------|-------------|
238
+ | SEVERITY_HIGH | |
239
+ | SEVERITY_MEDIUM | |
240
+ | SEVERITY_LOW | |
241
+ | SEVERITY_CRITICAL | |
242
+ '
243
+ enum:
244
+ - SEVERITY_HIGH
245
+ - SEVERITY_MEDIUM
246
+ - SEVERITY_LOW
247
+ - SEVERITY_CRITICAL
248
+ example: SEVERITY_HIGH
249
+ format: enum
250
+ type: string
251
+ source:
252
+ description: 'Source of the Rule
253
+
254
+
255
+ | value | description |
256
+
257
+ |-------|---------------|
258
+
259
+ | SOURCE_PRO | From Pro rules |
260
+
261
+ | SOURCE_COMMUNITY | From Semgrep Community rules |
262
+
263
+ | SOURCE_CUSTOM | From Custom rules |
264
+
265
+
266
+ '
267
+ enum:
268
+ - SOURCE_PRO
269
+ - SOURCE_COMMUNITY
270
+ - SOURCE_CUSTOM
271
+ example: SOURCE_COMMUNITY
272
+ format: enum
273
+ type: string
274
+ technologies:
275
+ description: Technologies the Rule is associated with.
276
+ example:
277
+ - django
278
+ - flask
279
+ items:
280
+ type: string
281
+ type: array
282
+ url:
283
+ description: The URL of the Rule.
284
+ type: string
285
+ vulnerabilityClass:
286
+ description: Vulnerability classes the Rule is associated with.
287
+ example: Improper Authentication
288
+ items:
289
+ type: string
290
+ type: array
291
+ title: Rule
292
+ type: object
293
+ protos.openapi.v1.AddProjectTagsResponse:
294
+ description: Successfully added tags to project.
295
+ properties:
296
+ project:
297
+ $ref: '#/components/schemas/protos.openapi.v1.Project'
298
+ required:
299
+ - projects
300
+ title: Add Project Tags Response
301
+ type: object
302
+ protos.openapi.v1.Assistant_Autofix:
303
+ description: Fix data generated by Semgrep Assistant
304
+ properties:
305
+ explanation:
306
+ description: 'DEPRECATED: This field is deprecated and will always be an
307
+ empty string. Find a description of how this fix works under `assistant.guidance`'
308
+ example: null
309
+ type: string
310
+ fix_code:
311
+ description: Source code that replaces all matched lines to fix this finding.
312
+ AI generated content, review carefully
313
+ example: cookie.setHttpOnly(true);\nresponse.addCookie(cookie);
314
+ type: string
315
+ title: Autofix
316
+ type: object
317
+ protos.openapi.v1.Assistant_Autotriage:
318
+ description: Triage recommendation generated by Semgrep Assistant
319
+ properties:
320
+ reason:
321
+ description: The reasoning for a `false_positive` verdict; this explains
322
+ why you might want to ignore the finding. Empty string if verdict is `true_positive`
323
+ example: The matched code is used for a non-security related feature.
324
+ type: string
325
+ verdict:
326
+ description: The verdict is `true_positive` if Assistant recommends fixing,
327
+ `false_positive` if Assistant recommends ignoring this finding. AI generated
328
+ decision, review carefully
329
+ enum:
330
+ - false_positive
331
+ - true_positive
332
+ example: false_positive
333
+ type: string
334
+ title: Autotriage
335
+ type: object
336
+ protos.openapi.v1.Assistant_Component:
337
+ description: Semgrep Assistant's guess as for what the matched source code's
338
+ purpose is
339
+ properties:
340
+ risk:
341
+ description: Component risk level
342
+ enum:
343
+ - high
344
+ - low
345
+ - neutral
346
+ example: high
347
+ type: string
348
+ tag:
349
+ description: Component tag
350
+ example: user data
351
+ type: string
352
+ title: Component
353
+ type: object
354
+ protos.openapi.v1.Assistant_Guidance:
355
+ description: Remediation guidance generated by Semgrep Assistant
356
+ properties:
357
+ instructions:
358
+ description: Step-by-step instructions explaining to a developer how to
359
+ fix the finding. AI generated content, review carefully
360
+ example: null
361
+ type: string
362
+ summary:
363
+ description: Short title explaining to a developer how to fix the finding.
364
+ AI generated content, review carefully
365
+ example: Use a template rendering engine such as EJS instead of string concatenation.
366
+ type: string
367
+ title: Guidance
368
+ type: object
369
+ protos.openapi.v1.BulkTriageRequest:
370
+ properties:
371
+ autotriage_verdict:
372
+ description: The autotriage verdict to filter by
373
+ enum:
374
+ - true_positive
375
+ - false_positive
376
+ example: true_positive
377
+ type: string
378
+ categories:
379
+ description: List of categories to filter by
380
+ example:
381
+ - security
382
+ - performance
383
+ items:
384
+ type: string
385
+ type: array
386
+ component_tags:
387
+ description: List of component tags to filter by
388
+ example:
389
+ - user authentication
390
+ - user data
391
+ items:
392
+ type: string
393
+ type: array
394
+ confidence:
395
+ description: List of confidence levels to filter by
396
+ enum:
397
+ - low
398
+ - medium
399
+ - high
400
+ example: high
401
+ type: string
402
+ dependencies:
403
+ description: Filter by dependency name. Only applies for sca findings.
404
+ example:
405
+ - lodash
406
+ - express
407
+ items:
408
+ type: string
409
+ type: array
410
+ deploymentSlug:
411
+ description: Deployment slug. Can be found at /deployments, or in your Settings
412
+ in the web UI.
413
+ type: string
414
+ epss_probability:
415
+ description: Filter by EPSS probability (likelihood of exploit). Only applies
416
+ for sca findings.
417
+ enum:
418
+ - low
419
+ - medium
420
+ - high
421
+ - none
422
+ example:
423
+ - high
424
+ - medium
425
+ items:
426
+ type: string
427
+ type: array
428
+ exposures:
429
+ description: Filter by exposure (reachability type). Only applies for sca
430
+ findings. Reachability is the ability of an attacker to access a vulnerability
431
+ in a system.
432
+ enum:
433
+ - reachable
434
+ - always_reachable
435
+ - conditionally_reachable
436
+ - unreachable
437
+ - unknown
438
+ example:
439
+ - reachable
440
+ - always_reachable
441
+ items:
442
+ type: string
443
+ type: array
444
+ include_historical:
445
+ description: Whether to include historical findings. Only applies for secrets
446
+ findings. Defaults to true.
447
+ example: true
448
+ type: boolean
449
+ issue_ids:
450
+ description: An array of issue IDs to act on. If this is not provided, an
451
+ issue filter should be provided.
452
+ example:
453
+ - 123
454
+ - 456
455
+ items:
456
+ format: uint32
457
+ type: integer
458
+ type: array
459
+ issue_type:
460
+ description: Type of findings to bulk triage.
461
+ enum:
462
+ - sast
463
+ - sca
464
+ - secrets
465
+ example: sca
466
+ type: string
467
+ limit:
468
+ default: 3000.0
469
+ description: Max number of issues to triage. Must be an integer between
470
+ 1 and 3000. Defaults to 3000. When selecting findings to triage, Semgrep
471
+ will also triage findings with the same fingerprint on other branches.
472
+ As a result, the list of triaged issue_ids returned in the response may
473
+ be higher than the specified limit.
474
+ example: 100
475
+ format: uint32
476
+ type: integer
477
+ new_note:
478
+ description: The note to attach to the bulk triaged findings.
479
+ example: some note here
480
+ type: string
481
+ new_triage_reason:
482
+ description: The reason for triaging to a given triage state.
483
+ enum:
484
+ - acceptable_risk
485
+ - false_positive
486
+ - no_time
487
+ - no_triage_reason
488
+ example: acceptable_risk
489
+ type: string
490
+ new_triage_state:
491
+ description: The triage state you would like to bulk triage your findings
492
+ to.
493
+ enum:
494
+ - ignored
495
+ - reviewing
496
+ - fixing
497
+ - reopened
498
+ example: reopened
499
+ type: string
500
+ policies:
501
+ description: List of policy modes to filter by
502
+ example:
503
+ - rule-board-block
504
+ - rule-board-pr-comments
505
+ - rule-board-audit
506
+ items:
507
+ type: string
508
+ type: array
509
+ policy_mode:
510
+ description: List of policy modes to filter by
511
+ enum:
512
+ - monitor
513
+ - comment
514
+ - block
515
+ example:
516
+ - monitor
517
+ - block
518
+ items:
519
+ type: string
520
+ type: array
521
+ pro_only:
522
+ description: Filter by whether a finding is only available with Semgrep
523
+ Pro features. Only applies for sast findings.
524
+ example: true
525
+ type: boolean
526
+ project_tags:
527
+ description: List of project tags to filter by
528
+ example:
529
+ - my_project_tag_1
530
+ - my_project_tag_2
531
+ items:
532
+ type: string
533
+ type: array
534
+ ref:
535
+ description: Branch reference to filter by
536
+ example: refs/pull/1234/merge
537
+ type: string
538
+ repos:
539
+ description: List of repository names to filter by
540
+ example:
541
+ - myorg/repo1
542
+ - myorg/repo2
543
+ items:
544
+ type: string
545
+ type: array
546
+ repository_visibility:
547
+ description: Filter by repository visibility. Only applies for secrets findings.
548
+ enum:
549
+ - public
550
+ - private
551
+ - unknown
552
+ example:
553
+ - public
554
+ - private
555
+ items:
556
+ type: string
557
+ type: array
558
+ rules:
559
+ description: List of rule names to filter by
560
+ example:
561
+ - typescript.react.security.audit.react-no-refs.react-no-refs
562
+ - ajinabraham.njsscan.hardcoded_secrets.node_username
563
+ items:
564
+ type: string
565
+ type: array
566
+ ruleset:
567
+ description: List of Semgrep Registry rulesets to filter by
568
+ example:
569
+ - owasp-top-ten
570
+ - default
571
+ items:
572
+ type: string
573
+ type: array
574
+ secret_types:
575
+ description: Filter by type of secret (typically provider-related). Only
576
+ applies for secrets findings.
577
+ example:
578
+ - Github
579
+ - Heroku
580
+ - AWS
581
+ items:
582
+ type: string
583
+ type: array
584
+ severities:
585
+ description: List of severities to filter by
586
+ enum:
587
+ - low
588
+ - medium
589
+ - high
590
+ - critical
591
+ example:
592
+ - low
593
+ - high
594
+ items:
595
+ type: string
596
+ type: array
597
+ since:
598
+ description: 'Epoch timestamp in seconds. Filters using the relevant_since
599
+ field: the timestamp when this finding was detected by Semgrep (the first
600
+ time, or when reintroduced).'
601
+ example: 1717334400
602
+ type: string
603
+ status:
604
+ description: The status to filter by
605
+ enum:
606
+ - open
607
+ - fixed
608
+ - ignored
609
+ - reviewing
610
+ - fixing
611
+ example: open
612
+ type: string
613
+ transitivities:
614
+ description: Filter by transitivity of a dependency. Only applies for sca
615
+ findings.
616
+ enum:
617
+ - direct
618
+ - transitive
619
+ - unknown
620
+ example:
621
+ - transitive
622
+ - direct
623
+ items:
624
+ type: string
625
+ type: array
626
+ triage_reasons:
627
+ description: List of triage reasons to filter by
628
+ enum:
629
+ - acceptable_risk
630
+ - false_positive
631
+ - no_time
632
+ - no_triage_reason
633
+ example:
634
+ - acceptable_risk
635
+ - false_positive
636
+ items:
637
+ type: string
638
+ type: array
639
+ validation_state:
640
+ description: Filter by whether a secret could be validated. Only applies
641
+ for secrets findings.
642
+ enum:
643
+ - confirmed_valid
644
+ - confirmed_invalid
645
+ - validation_error
646
+ - no_validator
647
+ example:
648
+ - valid
649
+ - invalid
650
+ items:
651
+ type: string
652
+ type: array
653
+ required:
654
+ - deploymentSlug
655
+ - issue_type
656
+ title: Bulk Triage Request
657
+ type: object
658
+ protos.openapi.v1.BulkTriageResponse:
659
+ properties:
660
+ num_triaged:
661
+ description: Number of items updated
662
+ format: uint32
663
+ type: integer
664
+ triaged_issues:
665
+ description: List of triaged issue IDs
666
+ items:
667
+ format: uint32
668
+ type: integer
669
+ type: array
670
+ required:
671
+ - num_triaged
672
+ - triaged_issues
673
+ title: Bulk Triage Response
674
+ type: object
675
+ protos.openapi.v1.CreateSbomExportRequest:
676
+ properties:
677
+ deploymentId:
678
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
679
+ or in your Settings in the web UI.'
680
+ example: 123
681
+ format: uint64
682
+ type: string
683
+ formatVersion:
684
+ $ref: '#/components/schemas/protos.sca.v1.SbomFormatVersion'
685
+ metadataComponentType:
686
+ default: SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_APPLICATION
687
+ description: 'Metadata component type for the SBOM export.
688
+
689
+
690
+ | value | description |
691
+
692
+ |-------|---------------|
693
+
694
+ | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_APPLICATION | |
695
+
696
+ | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FRAMEWORK | |
697
+
698
+ | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_LIBRARY | |
699
+
700
+ | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_CONTAINER | |
701
+
702
+ | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_PLATFORM | |
703
+
704
+ | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_OPERATING_SYSTEM | |
705
+
706
+ | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DEVICE | |
707
+
708
+ | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DEVICE_DRIVER | |
709
+
710
+ | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FIRMWARE | |
711
+
712
+ | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FILE | |
713
+
714
+ | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_MACHINE_LEARNING_MODEL | |
715
+
716
+ | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DATA | |
717
+
718
+
719
+ '
720
+ enum:
721
+ - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_APPLICATION
722
+ - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FRAMEWORK
723
+ - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_LIBRARY
724
+ - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_CONTAINER
725
+ - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_PLATFORM
726
+ - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_OPERATING_SYSTEM
727
+ - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DEVICE
728
+ - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DEVICE_DRIVER
729
+ - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FIRMWARE
730
+ - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FILE
731
+ - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_MACHINE_LEARNING_MODEL
732
+ - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DATA
733
+ example: SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_APPLICATION
734
+ format: enum
735
+ type: string
736
+ metadataSupplier:
737
+ $ref: '#/components/schemas/protos.sca.v1.SbomMetadataSupplier'
738
+ ref:
739
+ description: Branch to export SBOM for (Ex. ref=`refs/pull/1234/merge`).
740
+ example: refs/pull/1234/merge
741
+ type: string
742
+ repositoryId:
743
+ description: Repository ID to export SBOM for.
744
+ example: 123
745
+ format: uint64
746
+ type: string
747
+ sbomOutputFormat:
748
+ description: 'SBOM output format for the SBOM export.
749
+
750
+
751
+ | value | description |
752
+
753
+ |-------|---------------|
754
+
755
+ | SBOM_OUTPUT_FORMAT_JSON | |
756
+
757
+
758
+ '
759
+ enum:
760
+ - SBOM_OUTPUT_FORMAT_JSON
761
+ - SBOM_OUTPUT_FORMAT_CYCLONEDX
762
+ example: SBOM_OUTPUT_FORMAT_JSON
763
+ format: enum
764
+ type: string
765
+ required:
766
+ - deployment_id
767
+ title: Create Sbom Export Request
768
+ type: object
769
+ protos.openapi.v1.CreateSbomExportResponse:
770
+ properties:
771
+ taskToken:
772
+ description: Task token for the SBOM export job.
773
+ type: string
774
+ required:
775
+ - task_token
776
+ title: Create Sbom Export Response
777
+ type: object
778
+ protos.openapi.v1.CreateTicketRequest:
779
+ description: Create ticket request
780
+ properties:
781
+ autotriage_verdict:
782
+ description: The autotriage verdict to filter by
783
+ enum:
784
+ - true_positive
785
+ - false_positive
786
+ example: true_positive
787
+ type: string
788
+ categories:
789
+ description: List of categories to filter by
790
+ example:
791
+ - security
792
+ - performance
793
+ items:
794
+ type: string
795
+ type: array
796
+ component_tags:
797
+ description: List of component tags to filter by
798
+ example:
799
+ - user authentication
800
+ - user data
801
+ items:
802
+ type: string
803
+ type: array
804
+ confidence:
805
+ description: List of confidence levels to filter by
806
+ enum:
807
+ - low
808
+ - medium
809
+ - high
810
+ example: high
811
+ type: string
812
+ dependencies:
813
+ description: Filter by dependency name. Only applies for sca findings.
814
+ example:
815
+ - lodash
816
+ - express
817
+ items:
818
+ type: string
819
+ type: array
820
+ deploymentSlug:
821
+ description: Deployment slug. Can be found at `/deployments`, or in your
822
+ Settings in the web UI.
823
+ type: string
824
+ epss_probability:
825
+ description: Filter by EPSS probability (likelihood of exploit). Only applies
826
+ for sca findings.
827
+ enum:
828
+ - low
829
+ - medium
830
+ - high
831
+ - none
832
+ example:
833
+ - high
834
+ - medium
835
+ items:
836
+ type: string
837
+ type: array
838
+ exposures:
839
+ description: Filter by exposure (reachability type). Only applies for sca
840
+ findings. Reachability is the ability of an attacker to access a vulnerability
841
+ in a system.
842
+ enum:
843
+ - reachable
844
+ - always_reachable
845
+ - conditionally_reachable
846
+ - unreachable
847
+ - unknown
848
+ example:
849
+ - reachable
850
+ - always_reachable
851
+ items:
852
+ type: string
853
+ type: array
854
+ group_issues:
855
+ default: 'true'
856
+ description: Whether or not to group findings from the same rule and repository
857
+ into a single ticket. Defaults to true.
858
+ example: true
859
+ type: boolean
860
+ include_historical:
861
+ description: Whether to include historical findings. Only applies for secrets
862
+ findings. Defaults to true.
863
+ example: true
864
+ type: boolean
865
+ issue_ids:
866
+ description: An array of issue IDs to act on. If this is not provided, an
867
+ issue filter should be provided.
868
+ example:
869
+ - 123
870
+ - 456
871
+ items:
872
+ type: string
873
+ type: array
874
+ issue_type:
875
+ description: Type of findings to create tickets for.
876
+ enum:
877
+ - sast
878
+ - sca
879
+ - secrets
880
+ example: sca
881
+ type: string
882
+ jira_project_id:
883
+ description: Optional numeric Jira project ID to associate with the created
884
+ tickets. If not specified, defaults to the project configured in your
885
+ integration settings. You can fetch this ID using the Jira API.
886
+ example: 12345
887
+ type: string
888
+ limit:
889
+ default: 20.0
890
+ description: Max number of tickets to create. Must be an integer between
891
+ 1 and 20. Defaults to 20
892
+ example: 20
893
+ format: uint32
894
+ type: integer
895
+ policies:
896
+ description: List of policy modes to filter by
897
+ example:
898
+ - rule-board-block
899
+ - rule-board-pr-comments
900
+ - rule-board-audit
901
+ items:
902
+ type: string
903
+ type: array
904
+ policy_mode:
905
+ description: List of policy modes to filter by
906
+ enum:
907
+ - monitor
908
+ - comment
909
+ - block
910
+ example:
911
+ - monitor
912
+ - block
913
+ items:
914
+ type: string
915
+ type: array
916
+ pro_only:
917
+ description: Filter by whether a finding is only available with Semgrep
918
+ Pro features. Only applies for sast findings.
919
+ example: true
920
+ type: boolean
921
+ project_tags:
922
+ description: List of project tags to filter by
923
+ example:
924
+ - my_project_tag_1
925
+ - my_project_tag_2
926
+ items:
927
+ type: string
928
+ type: array
929
+ ref:
930
+ description: Branch reference to filter by
931
+ example: refs/pull/1234/merge
932
+ type: string
933
+ repos:
934
+ description: List of repository names to filter by
935
+ example:
936
+ - myorg/repo1
937
+ - myorg/repo2
938
+ items:
939
+ type: string
940
+ type: array
941
+ repository_visibility:
942
+ description: Filter by repository visibility. Only applies for secrets findings.
943
+ enum:
944
+ - public
945
+ - private
946
+ - unknown
947
+ example:
948
+ - public
949
+ - private
950
+ items:
951
+ type: string
952
+ type: array
953
+ rules:
954
+ description: List of rule names to filter by
955
+ example:
956
+ - typescript.react.security.audit.react-no-refs.react-no-refs
957
+ - ajinabraham.njsscan.hardcoded_secrets.node_username
958
+ items:
959
+ type: string
960
+ type: array
961
+ ruleset:
962
+ description: List of Semgrep Registry rulesets to filter by
963
+ example:
964
+ - owasp-top-ten
965
+ - default
966
+ items:
967
+ type: string
968
+ type: array
969
+ secret_types:
970
+ description: Filter by type of secret (typically provider-related). Only
971
+ applies for secrets findings.
972
+ example:
973
+ - Github
974
+ - Heroku
975
+ - AWS
976
+ items:
977
+ type: string
978
+ type: array
979
+ severities:
980
+ description: List of severities to filter by
981
+ enum:
982
+ - low
983
+ - medium
984
+ - high
985
+ - critical
986
+ example:
987
+ - low
988
+ - high
989
+ items:
990
+ type: string
991
+ type: array
992
+ since:
993
+ description: 'Epoch timestamp in seconds. Filters using the relevant_since
994
+ field: the timestamp when this finding was detected by Semgrep (the first
995
+ time, or when reintroduced).'
996
+ example: 1717334400
997
+ type: string
998
+ status:
999
+ description: The status to filter by
1000
+ enum:
1001
+ - open
1002
+ - fixed
1003
+ - ignored
1004
+ - reviewing
1005
+ - fixing
1006
+ example: open
1007
+ type: string
1008
+ transitivities:
1009
+ description: Filter by transitivity of a dependency. Only applies for sca
1010
+ findings.
1011
+ enum:
1012
+ - direct
1013
+ - transitive
1014
+ - unknown
1015
+ example:
1016
+ - transitive
1017
+ - direct
1018
+ items:
1019
+ type: string
1020
+ type: array
1021
+ triage_reasons:
1022
+ description: List of triage reasons to filter by
1023
+ enum:
1024
+ - acceptable_risk
1025
+ - false_positive
1026
+ - no_time
1027
+ - no_triage_reason
1028
+ example:
1029
+ - acceptable_risk
1030
+ - false_positive
1031
+ items:
1032
+ type: string
1033
+ type: array
1034
+ validation_state:
1035
+ description: Filter by whether a secret could be validated. Only applies
1036
+ for secrets findings.
1037
+ enum:
1038
+ - confirmed_valid
1039
+ - confirmed_invalid
1040
+ - validation_error
1041
+ - no_validator
1042
+ example:
1043
+ - valid
1044
+ - invalid
1045
+ items:
1046
+ type: string
1047
+ type: array
1048
+ required:
1049
+ - deployment_slug
1050
+ - issue_type
1051
+ title: Create Ticket Request
1052
+ type: object
1053
+ protos.openapi.v1.CreateTicketResponse:
1054
+ properties:
1055
+ failed:
1056
+ description: List of issues where ticket creation failed. This list may
1057
+ include issues that were skipped because they exceed the specified limit.
1058
+ items:
1059
+ $ref: '#/components/schemas/protos.openapi.v1.CreateTicketResponse_TicketCreationFailed'
1060
+ type: array
1061
+ skipped:
1062
+ description: List of issues that were skipped
1063
+ items:
1064
+ $ref: '#/components/schemas/protos.openapi.v1.CreateTicketResponse_TicketCreationSkipped'
1065
+ type: array
1066
+ succeeded:
1067
+ description: List of successfully created tickets
1068
+ items:
1069
+ $ref: '#/components/schemas/protos.openapi.v1.CreateTicketResponse_TicketCreationSuccess'
1070
+ type: array
1071
+ type: object
1072
+ protos.openapi.v1.CreateTicketResponse_TicketCreationFailed:
1073
+ properties:
1074
+ error:
1075
+ description: The error message for the failure
1076
+ type: string
1077
+ issue_ids:
1078
+ description: List of issue IDs
1079
+ items:
1080
+ format: uint32
1081
+ type: integer
1082
+ type: array
1083
+ type: object
1084
+ protos.openapi.v1.CreateTicketResponse_TicketCreationSkipped:
1085
+ properties:
1086
+ issue_ids:
1087
+ description: List of issue IDs
1088
+ items:
1089
+ format: uint32
1090
+ type: integer
1091
+ type: array
1092
+ reason:
1093
+ description: The reason why the issue was skipped
1094
+ type: string
1095
+ type: object
1096
+ protos.openapi.v1.CreateTicketResponse_TicketCreationSuccess:
1097
+ properties:
1098
+ external_slug:
1099
+ description: The external slug identifier for the ticket
1100
+ type: string
1101
+ issue_ids:
1102
+ description: List of issue IDs
1103
+ items:
1104
+ format: uint32
1105
+ type: integer
1106
+ type: array
1107
+ ticket_id:
1108
+ description: The ID of the created ticket
1109
+ format: uint32
1110
+ type: integer
1111
+ ticket_url:
1112
+ description: The URL of the created ticket
1113
+ type: string
1114
+ type: object
1115
+ protos.openapi.v1.DeleteProjectResponse:
1116
+ description: Successfully deleted the project.
1117
+ properties:
1118
+ project_name:
1119
+ description: The name of the deleted project.
1120
+ example: organization/project
1121
+ type: string
1122
+ required:
1123
+ - projects
1124
+ title: Delete Project Response
1125
+ type: object
1126
+ protos.openapi.v1.DeleteProjectTagsResponse:
1127
+ description: Successfully removed tags from project.
1128
+ properties:
1129
+ project:
1130
+ $ref: '#/components/schemas/protos.openapi.v1.Project'
1131
+ required:
1132
+ - projects
1133
+ title: Delete Project Tags Response
1134
+ type: object
1135
+ protos.openapi.v1.DeleteTicketResponse:
1136
+ properties:
1137
+ issueIds:
1138
+ description: List of issue IDs unlinked from ticket
1139
+ example:
1140
+ - '18759'
1141
+ - '18760'
1142
+ items:
1143
+ type: string
1144
+ type: array
1145
+ type: object
1146
+ protos.openapi.v1.Deployment:
1147
+ description: Deployment record, with relevant meta-data and further accesses.
1148
+ properties:
1149
+ findings:
1150
+ $ref: '#/components/schemas/protos.openapi.v1.EndpointReference'
1151
+ id:
1152
+ description: Unique numerical identifier of the deployment.
1153
+ example: 120
1154
+ format: uint32
1155
+ type: number
1156
+ name:
1157
+ description: Human readable name.
1158
+ example: Your Deployment
1159
+ type: string
1160
+ slug:
1161
+ description: Sanitized machine-readable name. Used as primary identifier
1162
+ through the web API.
1163
+ example: your-deployment
1164
+ type: string
1165
+ required:
1166
+ - slug
1167
+ - id
1168
+ - name
1169
+ title: Deployment
1170
+ type: object
1171
+ protos.openapi.v1.DiffScan:
1172
+ properties:
1173
+ enabled:
1174
+ description: When true, diff-aware scans are enabled for the project.
1175
+ type: boolean
1176
+ type: object
1177
+ protos.openapi.v1.EndpointReference:
1178
+ properties:
1179
+ url:
1180
+ description: URL that the reference is pointing to.
1181
+ example: https://semgrep.dev/api/v1/deployments/123/findings
1182
+ type: string
1183
+ required:
1184
+ - url
1185
+ title: Endpoint Reference
1186
+ type: object
1187
+ protos.openapi.v1.ExternalTicket:
1188
+ description: External ticket associated with finding
1189
+ properties:
1190
+ externalSlug:
1191
+ description: Identifier of the external ticket
1192
+ example: OPS-158
1193
+ type: string
1194
+ id:
1195
+ description: External ticket id
1196
+ format: uint32
1197
+ type: integer
1198
+ linkedIssueIds:
1199
+ description: Semgrep issue ids that are linked to this external ticket
1200
+ items:
1201
+ format: uint32
1202
+ type: integer
1203
+ type: array
1204
+ url:
1205
+ description: URL of the external ticket
1206
+ type: string
1207
+ title: External Ticket
1208
+ type: object
1209
+ protos.openapi.v1.FindingLocation:
1210
+ description: Location of the record in a file, as reported by Semgrep. If null,
1211
+ then the information does not exist or lacks integrity (older or broken scans)
1212
+ properties:
1213
+ column:
1214
+ description: Column at which the target starts
1215
+ example: 8
1216
+ format: uint32
1217
+ type: integer
1218
+ endColumn:
1219
+ description: Column at which the target ends
1220
+ example: 16
1221
+ format: uint32
1222
+ type: integer
1223
+ endLine:
1224
+ description: Line at which the target ends
1225
+ example: 124
1226
+ format: uint32
1227
+ type: integer
1228
+ filePath:
1229
+ description: File path of the relevant line and column numbers
1230
+ example: frontend/src/corpComponents/Code.tsx
1231
+ type: string
1232
+ line:
1233
+ description: Line at which the target starts
1234
+ example: 120
1235
+ format: uint32
1236
+ type: integer
1237
+ title: Finding Location
1238
+ type: object
1239
+ protos.openapi.v1.FindingRepository:
1240
+ description: Which repository this finding was identified in
1241
+ properties:
1242
+ name:
1243
+ description: The repository or named project that the finding is associated
1244
+ with
1245
+ example: semgrep
1246
+ type: string
1247
+ url:
1248
+ description: The source URL from which this repository last scanned
1249
+ example: https://github.com/semgrep/semgrep
1250
+ type: string
1251
+ title: Finding Repository
1252
+ type: object
1253
+ protos.openapi.v1.FindingRule:
1254
+ description: Rule that applies to this finding
1255
+ properties:
1256
+ category:
1257
+ description: Category the rule is associated with
1258
+ example: security
1259
+ type: string
1260
+ confidence:
1261
+ description: Confidence level of the rule
1262
+ enum:
1263
+ - low
1264
+ - medium
1265
+ - high
1266
+ example: high
1267
+ type: string
1268
+ cweNames:
1269
+ description: CWE names associated with the rule
1270
+ example:
1271
+ - 'CWE-319: Cleartext Transmission of Sensitive Information'
1272
+ items:
1273
+ type: string
1274
+ type: array
1275
+ message:
1276
+ description: Rule message
1277
+ example: This link points to a plaintext HTTP URL. Prefer an encrypted HTTPS
1278
+ URL if possible.
1279
+ type: string
1280
+ name:
1281
+ description: Name of the rule
1282
+ example: html.security.plaintext-http-link.plaintext-http-link
1283
+ type: string
1284
+ owaspNames:
1285
+ description: OWASP names associated with the rule
1286
+ example:
1287
+ - A03:2017 - Sensitive Data Exposure
1288
+ - A02:2021 - Cryptographic Failures
1289
+ items:
1290
+ type: string
1291
+ type: array
1292
+ subcategories:
1293
+ description: Subcategories of the rule
1294
+ example:
1295
+ - vuln
1296
+ items:
1297
+ type: string
1298
+ type: array
1299
+ vulnerabilityClasses:
1300
+ description: Vulnerability classes the rule is associated with
1301
+ example:
1302
+ - Mishandled Sensitive Information
1303
+ items:
1304
+ type: string
1305
+ type: array
1306
+ title: Finding Rule
1307
+ type: object
1308
+ protos.openapi.v1.FullScan:
1309
+ properties:
1310
+ enabled:
1311
+ description: When true, weekly full scans are enabled.
1312
+ type: boolean
1313
+ type: object
1314
+ protos.openapi.v1.GetBootstrapSmsVpcResponse:
1315
+ properties:
1316
+ AWSTemplateFormatVersion:
1317
+ description: The AWSTemplateFormatVersion that the template conforms to
1318
+ type: string
1319
+ Description:
1320
+ description: Template description
1321
+ type: string
1322
+ Metadata:
1323
+ description: Template metadata including version and last updated date
1324
+ type: object
1325
+ Outputs:
1326
+ description: Output values of the stack
1327
+ type: object
1328
+ Parameters:
1329
+ description: Template parameters
1330
+ type: object
1331
+ Resources:
1332
+ description: Declaration of AWS resources
1333
+ type: object
1334
+ type: object
1335
+ protos.openapi.v1.GetProjectResponse:
1336
+ description: Successfully retrieved details for the project.
1337
+ properties:
1338
+ project:
1339
+ $ref: '#/components/schemas/protos.openapi.v1.Project'
1340
+ required:
1341
+ - projects
1342
+ title: Get Project Response
1343
+ type: object
1344
+ protos.openapi.v1.GetSbomExportResponse:
1345
+ properties:
1346
+ downloadUrl:
1347
+ description: URL to download the SBOM when status is COMPLETED.
1348
+ type: string
1349
+ errorMessage:
1350
+ description: Error message when status is FAILED.
1351
+ type: string
1352
+ status:
1353
+ description: 'Status of the SBOM export job.
1354
+
1355
+
1356
+ | value | description |
1357
+
1358
+ |-------|---------------|
1359
+
1360
+ | SBOM_EXPORT_STATUS_IN_PROGRESS | The SBOM export job is in progress.
1361
+ |
1362
+
1363
+ | SBOM_EXPORT_STATUS_COMPLETED | The SBOM export job has completed. |
1364
+
1365
+ | SBOM_EXPORT_STATUS_FAILED | The SBOM export job has failed. |
1366
+
1367
+
1368
+ '
1369
+ enum:
1370
+ - SBOM_EXPORT_STATUS_IN_PROGRESS
1371
+ - SBOM_EXPORT_STATUS_COMPLETED
1372
+ - SBOM_EXPORT_STATUS_FAILED
1373
+ format: enum
1374
+ type: string
1375
+ required:
1376
+ - status
1377
+ title: Get Sbom Export Response
1378
+ type: object
1379
+ protos.openapi.v1.GetScanResponse:
1380
+ properties:
1381
+ completed_at:
1382
+ description: imestamp of when the scan started.
1383
+ example: 2023-11-18 23:28:12.391807+00:00
1384
+ type: string
1385
+ deployment_id:
1386
+ description: The unique ID of the deployment associated with the scanned
1387
+ repository.
1388
+ example: 120
1389
+ format: uint32
1390
+ type: integer
1391
+ enabled_products:
1392
+ description: The products used when running the scan.
1393
+ example:
1394
+ - secrets
1395
+ items:
1396
+ type: string
1397
+ type: array
1398
+ exit_code:
1399
+ format: uint32
1400
+ type: integer
1401
+ has_logs:
1402
+ type: boolean
1403
+ id:
1404
+ description: The unique ID representing this scan.
1405
+ example: 123
1406
+ format: uint32
1407
+ type: integer
1408
+ meta:
1409
+ $ref: '#/components/schemas/protos.openapi.v1.GetScanResponse_ScanMeta'
1410
+ repository_id:
1411
+ description: The unique ID of the repository that was scanned.
1412
+ example: 1234567
1413
+ format: uint32
1414
+ type: integer
1415
+ started_at:
1416
+ description: when the scan was started
1417
+ example: 2023-11-18 23:28:12.391807+00:00
1418
+ type: string
1419
+ stats:
1420
+ description: Miscellaneous statistics about the scan, like number of findings
1421
+ found and scan duration.
1422
+ example:
1423
+ findings: 5
1424
+ total_time: 100
1425
+ type: object
1426
+ type: object
1427
+ protos.openapi.v1.GetScanResponse_ScanMeta:
1428
+ properties:
1429
+ true:
1430
+ description: What triggered this scan, if applicable.
1431
+ example: pull_request
1432
+ type: string
1433
+ branch:
1434
+ description: The branch that was scanned, if applicable.
1435
+ example: refs/heads/main
1436
+ type: string
1437
+ commit:
1438
+ description: The commit SHA associated with the scan, if applicable.
1439
+ example: 94c5be1312a9da03b7c4bfcc1c50b4379c83412
1440
+ type: string
1441
+ config:
1442
+ description: The path of the configuration file used for this scan, if applicable.
1443
+ example: r/python
1444
+ type: string
1445
+ repo_url:
1446
+ description: The URL of the scanned repository, if applicable.
1447
+ example: https://github.com/semgrep/semgrep
1448
+ type: string
1449
+ ci_job_url:
1450
+ description: The URL of the CI job that ran the scan, if applicable.
1451
+ example: https://github.com/semgrep/semgrep/actions/runs/12345
1452
+ type: string
1453
+ repository:
1454
+ description: The name and organization of the scanned repository, if applicable.
1455
+ example: semgrep/semgrep
1456
+ type: string
1457
+ commit_title:
1458
+ description: The commit message associated with the scan, if applicable.
1459
+ example:
1460
+ fix(feature): Added XYZ component
1461
+ type: string
1462
+ pull_request_id:
1463
+ description: The ID of the pull request associated with the scan, if applicable.
1464
+ example: 12345
1465
+ type: string
1466
+ pull_request_title:
1467
+ description: The title of the pull request associated with the scan if applicable.
1468
+ example:
1469
+ fix(feature): Added XYZ component
1470
+ type: string
1471
+ commit_author_name:
1472
+ description: The name of the author of the commit associated with the scan,
1473
+ if applicable.
1474
+ example: Sven Greppe
1475
+ type: string
1476
+ commit_author_image_url:
1477
+ description: The avatar image url of the author of the commit associated
1478
+ with the scan, if applicable.
1479
+ example: https://github.com/link/to/avatar.png
1480
+ type: string
1481
+ commit_author_email:
1482
+ description: The email of the author of the commit associated with the scan,
1483
+ if applicable.
1484
+ example: sven.greppe@semgrep.com
1485
+ type: string
1486
+ commit_author_username:
1487
+ description: The username of the author of the commit associated with the
1488
+ scan, if applicable.
1489
+ example: SvenGreppe
1490
+ type: string
1491
+ pull_request_author_username:
1492
+ description: The username of the author of the pull request associated with
1493
+ the scan, if applicable.
1494
+ example: SvenGreppe
1495
+ type: string
1496
+ pull_request_author_image_url:
1497
+ description: The avatar image url of the author of the pull request associated
1498
+ with the scan, if applicable.
1499
+ example: https://github.com/link/to/avatar.png
1500
+ type: string
1501
+ type: object
1502
+ protos.openapi.v1.ListDependenciesRequest:
1503
+ properties:
1504
+ cursor:
1505
+ description: Cursor to paginate through the dependencies. Provide a cursor
1506
+ value from the response to retrieve the next page.
1507
+ format: uint64
1508
+ type: string
1509
+ dependencyFilter:
1510
+ $ref: '#/components/schemas/protos.sca.v1.DependencyFilter'
1511
+ deploymentId:
1512
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
1513
+ or in your Settings in the web UI.'
1514
+ example: 123
1515
+ format: uint64
1516
+ type: string
1517
+ pageSize:
1518
+ description: 'Number of dependencies per page. Default: 1000, min: 1, max:
1519
+ 10000.'
1520
+ example: 1000
1521
+ format: int64
1522
+ maximum: 10000.0
1523
+ minimum: 1.0
1524
+ type: integer
1525
+ required:
1526
+ - deployment_id
1527
+ title: List Dependencies Request
1528
+ type: object
1529
+ protos.openapi.v1.ListDependenciesResponse:
1530
+ properties:
1531
+ cursor:
1532
+ description: Pass to next request to get next page of results.
1533
+ format: uint64
1534
+ type: string
1535
+ dependencies:
1536
+ description: List of dependencies.
1537
+ example:
1538
+ - id: '1'
1539
+ name: dependency1
1540
+ version: 1.0.0
1541
+ - id: '2'
1542
+ name: dependency2
1543
+ version: 2.0.0
1544
+ items:
1545
+ $ref: '#/components/schemas/protos.sca.v1.FoundDependency'
1546
+ type: array
1547
+ hasMore:
1548
+ description: True if there are more dependencies to get.
1549
+ type: boolean
1550
+ required:
1551
+ - dependencies
1552
+ - has_more
1553
+ title: List Dependencies Response
1554
+ type: object
1555
+ protos.openapi.v1.ListDeploymentsResponse:
1556
+ properties:
1557
+ deployments:
1558
+ description: Return the deployment the supplied token can access.
1559
+ items:
1560
+ $ref: '#/components/schemas/protos.openapi.v1.Deployment'
1561
+ type: array
1562
+ type: object
1563
+ protos.openapi.v1.ListFindingsResponse:
1564
+ description: Response containing a paginated list of findings (either Code or
1565
+ Supply Chain findings) with optional filtering applied
1566
+ properties:
1567
+ sastFindings:
1568
+ $ref: '#/components/schemas/protos.openapi.v1.ListFindingsResponse_SastFindings'
1569
+ scaFindings:
1570
+ $ref: '#/components/schemas/protos.openapi.v1.ListFindingsResponse_ScaFindings'
1571
+ title: List Findings Response
1572
+ type: object
1573
+ protos.openapi.v1.ListFindingsResponse_SastFindings:
1574
+ description: A list of Code findings that Semgrep has identified in your organization
1575
+ properties:
1576
+ findings:
1577
+ description: A list of Code findings.
1578
+ items:
1579
+ $ref: '#/components/schemas/protos.openapi.v1.SastFinding'
1580
+ type: array
1581
+ title: Sast Findings
1582
+ type: object
1583
+ protos.openapi.v1.ListFindingsResponse_ScaFindings:
1584
+ description: A list of Supply Chain findings that Semgrep has identified in
1585
+ your organization
1586
+ properties:
1587
+ findings:
1588
+ description: A list of Supply Chain findings.
1589
+ items:
1590
+ $ref: '#/components/schemas/protos.openapi.v1.ScaFinding'
1591
+ type: array
1592
+ title: Sca Findings
1593
+ type: object
1594
+ protos.openapi.v1.ListLockfilesForDependenciesRequest:
1595
+ properties:
1596
+ cursor:
1597
+ description: Use cursor in response to get next page of results.
1598
+ type: string
1599
+ dependencyFilter:
1600
+ $ref: '#/components/schemas/protos.sca.v1.DependencyFilter'
1601
+ deploymentId:
1602
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
1603
+ or in your Settings in the web UI.'
1604
+ format: uint64
1605
+ type: string
1606
+ pageSize:
1607
+ default: 5.0
1608
+ description: 'Number of repositories per page. Default: 5, min: 1, max:
1609
+ 100.'
1610
+ example: 100
1611
+ format: uint32
1612
+ maximum: 100.0
1613
+ minimum: 1.0
1614
+ type: integer
1615
+ repositoryId:
1616
+ description: Repository ID to filter by. Use Projects endpoints to retrieve
1617
+ repository IDs.
1618
+ format: uint64
1619
+ type: string
1620
+ required:
1621
+ - deployment_id
1622
+ - repository_id
1623
+ title: List Lockfiles For Dependencies Request
1624
+ type: object
1625
+ protos.openapi.v1.ListLockfilesForDependenciesResponse:
1626
+ properties:
1627
+ cursor:
1628
+ description: Pass to next request to get next page of results.
1629
+ type: string
1630
+ hasMore:
1631
+ description: True if there are more lockfiles to get.
1632
+ type: boolean
1633
+ lockfileSummaries:
1634
+ description: List of lockfiles.
1635
+ items:
1636
+ $ref: '#/components/schemas/protos.sca.v1.LockfileDependencySummary'
1637
+ type: array
1638
+ required:
1639
+ - has_more
1640
+ - lockfile_summaries
1641
+ title: List Lockfiles For Dependencies Response
1642
+ type: object
1643
+ protos.openapi.v1.ListPoliciesResponse:
1644
+ properties:
1645
+ policies:
1646
+ description: List of Policies associated with the given Deployment.
1647
+ example:
1648
+ - id: '1'
1649
+ isDefault: true
1650
+ name: Global Policy
1651
+ productType: PRODUCT_TYPE_SAST
1652
+ slug: global_policy
1653
+ - id: '2'
1654
+ isDefault: false
1655
+ name: Semgrep test
1656
+ productType: PRODUCT_TYPE_SAST
1657
+ slug: semgrep_test
1658
+ - id: '3'
1659
+ isDefault: true
1660
+ name: Global Secrets Policy
1661
+ productType: PRODUCT_TYPE_SECRETS
1662
+ slug: global_secrets_policy
1663
+ items:
1664
+ $ref: '#/components/schemas/protos.common.v1.Policy'
1665
+ type: array
1666
+ type: object
1667
+ protos.openapi.v1.ListPolicyRulesResponse:
1668
+ properties:
1669
+ cursor:
1670
+ description: Cursor to paginate through the rules.
1671
+ example: Pm0ROjIwMjQtMDItMDYgMjA6MDQ6NDguMEDzNzk2fmk6NYTM2zUxOTI
1672
+ type: string
1673
+ policy:
1674
+ $ref: '#/components/schemas/protos.common.v1.Policy'
1675
+ rules:
1676
+ description: List of Rules for the given Policy.
1677
+ example:
1678
+ - category: security
1679
+ confidence: CONFIDENCE_HIGH
1680
+ cweCategories:
1681
+ - 'CWE-918: Server-Side Request Forgery (SSRF)'
1682
+ id: '1'
1683
+ languages:
1684
+ - python
1685
+ lastChangeAt: '2024-07-29T22:33:37.380293Z'
1686
+ owaspCategories:
1687
+ - 'A07: Cross-Site Scripting (XSS)'
1688
+ path: python.rule.1
1689
+ policyMode: MODE_MONITOR
1690
+ registryMaintainer: semgrep
1691
+ rulesets: []
1692
+ severity: SEVERITY_HIGH
1693
+ source: SOURCE_COMMUNITY
1694
+ technologies:
1695
+ - django
1696
+ - flask
1697
+ url: https://semgrep.com/r/123/python.rule.1
1698
+ vulnerabilityClass:
1699
+ - Improper Authentication
1700
+ - category: security
1701
+ confidence: CONFIDENCE_HIGH
1702
+ cweCategories:
1703
+ - 'CWE-918: Server-Side Request Forgery (SSRF)'
1704
+ id: '2'
1705
+ languages:
1706
+ - python
1707
+ lastChangeAt: '2024-07-29T22:33:37.380293Z'
1708
+ owaspCategories:
1709
+ - A01:2021 - Broken Access Control
1710
+ - 'A07: Cross-Site Scripting (XSS)'
1711
+ path: python.rule.shared
1712
+ policyMode: MODE_COMMENT
1713
+ registryMaintainer: semgrep
1714
+ rulesets:
1715
+ - comment
1716
+ - default
1717
+ severity: SEVERITY_MEDIUM
1718
+ source: SOURCE_PRO
1719
+ technologies:
1720
+ - django
1721
+ - flask
1722
+ url: https://semgrep.com/r/123/python.rule.shared
1723
+ vulnerabilityClass:
1724
+ - Improper Authentication
1725
+ - category: best-practice
1726
+ confidence: CONFIDENCE_HIGH
1727
+ cweCategories: []
1728
+ id: '3'
1729
+ languages:
1730
+ - python
1731
+ lastChangeAt: '2024-07-29T22:33:37.380293Z'
1732
+ lastChangeBy: example-user
1733
+ owaspCategories: []
1734
+ path: python.rule.custom_rule
1735
+ policyMode: MODE_BLOCK
1736
+ registryMaintainer: semgrep
1737
+ rulesets: []
1738
+ severity: SEVERITY_MEDIUM
1739
+ source: SOURCE_CUSTOM
1740
+ technologies:
1741
+ - django
1742
+ - flask
1743
+ url: https://semgrep.com/r/123/python.rule.custom_rule
1744
+ vulnerabilityClass:
1745
+ - Improper Authentication
1746
+ items:
1747
+ $ref: '#/components/schemas/protos.common.v1.Rule'
1748
+ type: array
1749
+ type: object
1750
+ protos.openapi.v1.ListProjectsResponse:
1751
+ description: Return the list of projects in an organization.
1752
+ properties:
1753
+ projects:
1754
+ items:
1755
+ $ref: '#/components/schemas/protos.openapi.v1.Project'
1756
+ type: array
1757
+ required:
1758
+ - projects
1759
+ title: List Projects Response
1760
+ type: object
1761
+ protos.openapi.v1.ListRepositoriesForDependenciesRequest:
1762
+ properties:
1763
+ cursor:
1764
+ description: Use cursor in response to get next page of results.
1765
+ format: uint32
1766
+ type: number
1767
+ dependencyFilter:
1768
+ $ref: '#/components/schemas/protos.sca.v1.DependencyFilter'
1769
+ deploymentId:
1770
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
1771
+ or in your Settings in the web UI.'
1772
+ format: uint64
1773
+ type: string
1774
+ pageSize:
1775
+ default: 5.0
1776
+ description: 'Number of repositories per page. Default: 5, min: 1, max:
1777
+ 100.'
1778
+ example: 100
1779
+ format: uint32
1780
+ maximum: 100.0
1781
+ minimum: 1.0
1782
+ type: number
1783
+ required:
1784
+ - deployment_id
1785
+ title: List Repositories For Dependencies Request
1786
+ type: object
1787
+ protos.openapi.v1.ListRepositoriesForDependenciesResponse:
1788
+ properties:
1789
+ cursor:
1790
+ description: Pass to next request to get next page of results.
1791
+ format: uint32
1792
+ type: number
1793
+ hasMore:
1794
+ description: True if there are more repositories to get.
1795
+ type: boolean
1796
+ repositorySummaries:
1797
+ description: List of repositories.
1798
+ items:
1799
+ $ref: '#/components/schemas/protos.sca.v1.RepositoryDependencySummary'
1800
+ type: array
1801
+ required:
1802
+ - has_more
1803
+ - repository_summaries
1804
+ title: List Repositories For Dependencies Response
1805
+ type: object
1806
+ protos.openapi.v1.ListSecretsPathResponse:
1807
+ properties:
1808
+ cursor:
1809
+ description: Cursor to paginate through the results.
1810
+ type: string
1811
+ findings:
1812
+ description: List of Secrets associated with the given Deployment.
1813
+ example:
1814
+ cursor: Pm0ROjIwMjQtMDItMDYgMjA6MDQ6NDguMEDzNzk2fmk6NYTM2zUxOTI=
1815
+ findings:
1816
+ - confidence: CONFIDENCE_HIGH
1817
+ createdAt: '2024-06-17T17:23:01.901204Z'
1818
+ findingPath: src/ai.py:232
1819
+ findingPathUrl: https://github.com/foo/bar/blob/6ad16b240d4b6ae5bd6e326dd71053c21344e311/src/ai.py#L232
1820
+ id: '691234'
1821
+ mode: MODE_MONITOR
1822
+ ref: refs/pull/148/merge
1823
+ refUrl: https://github.com/foo/bar/pull/148
1824
+ repository:
1825
+ name: foo/bar
1826
+ scmType: SCM_TYPE_GITHUB
1827
+ url: https://github.com/foo/bar
1828
+ visibility: REPOSITORY_VISIBILITY_PRIVATE
1829
+ reviewComments:
1830
+ - externalDiscussionId: af0433345acfb74c8f9
1831
+ externalNoteId: '5678'
1832
+ ruleHashId: lBU41LA
1833
+ severity: SEVERITY_HIGH
1834
+ status: FINDING_STATUS_FIXED
1835
+ type: OpenAI
1836
+ updatedAt: '2024-06-20T17:33:00.669343Z'
1837
+ validationState: VALIDATION_STATE_CONFIRMED_VALID
1838
+ - confidence: CONFIDENCE_MEDIUM
1839
+ createdAt: '2024-06-08T11:01:23.380293Z'
1840
+ findingPath: config.yaml:801
1841
+ findingPathUrl: https://github.com/foo/baz/blob/e2b6d5ca75d830e10f5f617481a66a981bd093c0/config.yaml#L801
1842
+ id: '6881234'
1843
+ mode: MODE_COMMENT
1844
+ ref: develop
1845
+ refUrl: https://github.com/foo/baz/tree/develop
1846
+ repository:
1847
+ name: foo/baz
1848
+ scmType: SCM_TYPE_GITHUB
1849
+ url: https://github.com/foo/baz
1850
+ visibility: REPOSITORY_VISIBILITY_PRIVATE
1851
+ reviewComments:
1852
+ - externalDiscussionId: af0476223423b74c8f9
1853
+ externalNoteId: '6789'
1854
+ ruleHashId: pKUYdA
1855
+ severity: SEVERITY_HIGH
1856
+ status: FINDING_STATUS_IGNORED
1857
+ type: Heroku
1858
+ updatedAt: '2024-06-22T11:07:02.384500Z'
1859
+ validationState: VALIDATION_STATE_CONFIRMED_INVALID
1860
+ items:
1861
+ $ref: '#/components/schemas/protos.secrets.v1.SecretsFinding'
1862
+ type: array
1863
+ previous:
1864
+ description: Cursor to paginate backwards through the results.
1865
+ type: string
1866
+ type: object
1867
+ protos.openapi.v1.ManagedScanConfig:
1868
+ description: '[Beta] Configuration of Semgrep Managed Scans for the project,
1869
+ if relevant.'
1870
+ properties:
1871
+ diff_scan:
1872
+ $ref: '#/components/schemas/protos.openapi.v1.DiffScan'
1873
+ full_scan:
1874
+ $ref: '#/components/schemas/protos.openapi.v1.FullScan'
1875
+ title: Managed Scan Config
1876
+ type: object
1877
+ protos.openapi.v1.PingResponse:
1878
+ description: OK
1879
+ properties: {}
1880
+ title: Ping Response
1881
+ type: object
1882
+ protos.openapi.v1.Project:
1883
+ description: A project in your organization that uses Semgrep.
1884
+ properties:
1885
+ created_at:
1886
+ description: Time when this project was created.
1887
+ example: 2020-11-18 23:28:12.391807+00:00
1888
+ type: string
1889
+ default_branch:
1890
+ description: The default branch in the SCM.
1891
+ example: refs/heads/main
1892
+ type: string
1893
+ id:
1894
+ description: Unique ID of this project.
1895
+ example: 1234567
1896
+ format: uint32
1897
+ type: number
1898
+ latest_scan_at:
1899
+ description: Time of latest scan, if there is one.
1900
+ example: 2023-01-13 20:51:51.449081+00:00
1901
+ type: string
1902
+ managed_scan_config:
1903
+ $ref: '#/components/schemas/protos.openapi.v1.ManagedScanConfig'
1904
+ name:
1905
+ description: Name of the project.
1906
+ example: returntocorp/semgrep
1907
+ type: string
1908
+ primary_branch:
1909
+ description: The primary branch of the project, if known.
1910
+ example: refs/heads/custom-main
1911
+ type: string
1912
+ tags:
1913
+ description: Tags associated to this project.
1914
+ example:
1915
+ - tag
1916
+ items:
1917
+ type: string
1918
+ type: string
1919
+ url:
1920
+ description: URL of the project, if there is one.
1921
+ example: https://github.com/returntocorp/semgrep
1922
+ type: string
1923
+ required:
1924
+ - id
1925
+ - name
1926
+ - tags
1927
+ title: Project
1928
+ type: object
1929
+ protos.openapi.v1.ReviewComment:
1930
+ description: External review comment information associated with a finding
1931
+ properties:
1932
+ externalDiscussionId:
1933
+ description: External ID of the review comment or discussion thread
1934
+ example: af04762b69acfb74c8f9
1935
+ type: string
1936
+ externalNoteId:
1937
+ description: External ID of the specific note in the review comment discussion
1938
+ thread. Only applicable for GitLab.com, GitLab Self-Managed and Azure
1939
+ DevOps
1940
+ example: 123523
1941
+ type: string
1942
+ title: Review Comment
1943
+ type: object
1944
+ protos.openapi.v1.SastFinding:
1945
+ description: A Code finding that Semgrep has identified in your organization
1946
+ properties:
1947
+ assistant:
1948
+ $ref: '#/components/schemas/protos.openapi.v1.SastFinding_Assistant'
1949
+ categories:
1950
+ description: The categories of the finding as classified by the associated
1951
+ rule metadata
1952
+ example:
1953
+ - security
1954
+ items:
1955
+ type: string
1956
+ type: array
1957
+ confidence:
1958
+ description: Confidence of the finding, derived from the rule that triggered
1959
+ it
1960
+ enum:
1961
+ - low
1962
+ - medium
1963
+ - high
1964
+ example: medium
1965
+ type: string
1966
+ created_at:
1967
+ description: The timestamp when this finding was created
1968
+ example: 2020-11-18 23:28:12.391807+00:00
1969
+ type: string
1970
+ external_ticket:
1971
+ $ref: '#/components/schemas/protos.openapi.v1.ExternalTicket'
1972
+ first_seen_scan_id:
1973
+ description: Unique ID of the Semgrep scan that first identified this finding
1974
+ example: 1234
1975
+ format: uint32
1976
+ type: integer
1977
+ id:
1978
+ description: Unique ID of this finding
1979
+ example: 1234567
1980
+ format: uint32
1981
+ type: integer
1982
+ line_of_code_url:
1983
+ description: The source URL including file and line number
1984
+ example: https://github.com/semgrep/semgrep/blob/39f95450a7d4d70e54c9edbd109bed8210a36889/src/core_cli/Core_CLI.ml#L1
1985
+ type: string
1986
+ location:
1987
+ $ref: '#/components/schemas/protos.openapi.v1.FindingLocation'
1988
+ match_based_id:
1989
+ description: ID calculated based on a finding's file path, rule identifier
1990
+ and pattern, and index
1991
+ example: 0f8c79a6f7e0ff2f908ff5bc366ae1548465069bae8892088051e1c3b4b12c6b8df37d5bcbb181eb868aa79f81f239d14bf2336d552786ab8ccdc7279adf07a6_1
1992
+ type: string
1993
+ ref:
1994
+ description: External reference to the source of this finding (e.g. PR)
1995
+ example: refs/pull/1234/merge
1996
+ type: string
1997
+ relevant_since:
1998
+ description: The timestamp when this finding was detected by Semgrep (the
1999
+ first time, or when reintroduced)
2000
+ example: 2020-11-18 23:28:12.391807+00:00
2001
+ type: string
2002
+ repository:
2003
+ $ref: '#/components/schemas/protos.openapi.v1.FindingRepository'
2004
+ review_comments:
2005
+ description: List of external review comment information associated with
2006
+ a finding
2007
+ items:
2008
+ $ref: '#/components/schemas/protos.openapi.v1.ReviewComment'
2009
+ type: array
2010
+ rule:
2011
+ $ref: '#/components/schemas/protos.openapi.v1.FindingRule'
2012
+ rule_message:
2013
+ description: Deprecated in favor of rule.message. Rule message at the time
2014
+ of finding identification. Older findings may not have a value for this
2015
+ field
2016
+ example: null
2017
+ type: string
2018
+ rule_name:
2019
+ description: Deprecated in favor of rule.name
2020
+ example: typescript.react.security.audit.react-no-refs.react-no-refs
2021
+ type: string
2022
+ severity:
2023
+ description: Severity of the finding, derived from the rule that triggered
2024
+ it. Low is equivalent to INFO, Medium to WARNING, and High to ERROR
2025
+ enum:
2026
+ - low
2027
+ - medium
2028
+ - high
2029
+ - critical
2030
+ example: medium
2031
+ type: string
2032
+ sourcing_policy:
2033
+ $ref: '#/components/schemas/protos.openapi.v1.SastFinding_PolicyReference'
2034
+ state:
2035
+ description: The finding's resolution state. Managed only by changes detected
2036
+ at scan time, the `state` is combined with `triage_state` to ultimately
2037
+ determine a final `status` which is exposed in the UI and API
2038
+ enum:
2039
+ - fixed
2040
+ - muted
2041
+ - removed
2042
+ - unresolved
2043
+ example: unresolved
2044
+ type: string
2045
+ state_updated_at:
2046
+ description: When this issue's `state` (resolution state) was last updated,
2047
+ as distinct from when the issue was triaged (`triaged_at`)
2048
+ example: 2020-11-19 23:28:12.391807+00:00
2049
+ type: string
2050
+ status:
2051
+ description: The finding's status as exposed in the UI. Status is a derived
2052
+ property combining information from the finding `state` and `triage_state`.
2053
+ The `triage_state` can be used to override the scan state if the finding
2054
+ is still detected
2055
+ enum:
2056
+ - open
2057
+ - fixed
2058
+ - ignored
2059
+ - reviewing
2060
+ - fixing
2061
+ - provisionally_ignored
2062
+ example: open
2063
+ type: string
2064
+ syntactic_id:
2065
+ description: ID calculated based on a finding's file path, rule identifier
2066
+ and matched code, and index. Prefer `match_based_id`
2067
+ example: 440eeface888e78afceac3dc7d4cc2cf
2068
+ type: string
2069
+ triage_comment:
2070
+ description: The detailed comment provided during triage
2071
+ example: This finding is from the test repo
2072
+ type: string
2073
+ triage_reason:
2074
+ description: Reason provided when this issue was triaged
2075
+ enum:
2076
+ - acceptable_risk
2077
+ - false_positive
2078
+ - no_time
2079
+ example: acceptable_risk
2080
+ type: string
2081
+ triage_state:
2082
+ description: 'The finding''s triage state. Note: "reviewing" and "fixing"
2083
+ are only in private beta. Set by the user and used along with state to
2084
+ generate the final "status" viewable in the UI'
2085
+ enum:
2086
+ - untriaged
2087
+ - ignored
2088
+ - reopened
2089
+ - reviewing
2090
+ - fixing
2091
+ - provisionally_ignored
2092
+ example: untriaged
2093
+ type: string
2094
+ triaged_at:
2095
+ description: When the finding was triaged
2096
+ example: 2020-11-19 23:28:12.391807+00:00
2097
+ type: string
2098
+ title: Sast Finding
2099
+ type: object
2100
+ protos.openapi.v1.SastFinding_Assistant:
2101
+ description: Semgrep Assistant data. Only present if Assistant is enabled
2102
+ properties:
2103
+ autofix:
2104
+ $ref: '#/components/schemas/protos.openapi.v1.Assistant_Autofix'
2105
+ autotriage:
2106
+ $ref: '#/components/schemas/protos.openapi.v1.Assistant_Autotriage'
2107
+ component:
2108
+ $ref: '#/components/schemas/protos.openapi.v1.Assistant_Component'
2109
+ guidance:
2110
+ $ref: '#/components/schemas/protos.openapi.v1.Assistant_Guidance'
2111
+ title: Assistant
2112
+ type: object
2113
+ protos.openapi.v1.SastFinding_PolicyReference:
2114
+ description: Reference to a policy, with some basic information. If null, then
2115
+ the information does not exist or lacks integrity (older or broken scans)
2116
+ properties:
2117
+ id:
2118
+ description: Unique numerical identifier of the policy
2119
+ example: 120
2120
+ format: uint32
2121
+ type: integer
2122
+ name:
2123
+ description: Human readable name
2124
+ example: Default Policy
2125
+ type: string
2126
+ slug:
2127
+ description: Sanitized machine-readable name
2128
+ example: default-policy
2129
+ type: string
2130
+ title: Policy Reference
2131
+ type: object
2132
+ protos.openapi.v1.ScaFinding:
2133
+ description: A Supply Chain finding that Semgrep has identified in your organization
2134
+ properties:
2135
+ categories:
2136
+ description: The categories of the finding as classified by the associated
2137
+ rule metadata
2138
+ example:
2139
+ - security
2140
+ items:
2141
+ type: string
2142
+ type: array
2143
+ confidence:
2144
+ description: Confidence of the finding, derived from the rule that triggered
2145
+ it
2146
+ enum:
2147
+ - low
2148
+ - medium
2149
+ - high
2150
+ example: medium
2151
+ type: string
2152
+ created_at:
2153
+ description: The timestamp when this finding was created
2154
+ example: 2020-11-18 23:28:12.391807+00:00
2155
+ type: string
2156
+ epss_score:
2157
+ $ref: '#/components/schemas/protos.openapi.v1.ScaFinding_EpssScore'
2158
+ external_ticket:
2159
+ $ref: '#/components/schemas/protos.openapi.v1.ExternalTicket'
2160
+ first_seen_scan_id:
2161
+ description: Unique ID of the Semgrep scan that first identified this finding
2162
+ example: 1234
2163
+ format: uint32
2164
+ type: integer
2165
+ fix_recommendations:
2166
+ description: Recommendations for fixing the vulnerability
2167
+ items:
2168
+ $ref: '#/components/schemas/protos.openapi.v1.ScaFinding_FixRecommendation'
2169
+ type: array
2170
+ found_dependency:
2171
+ $ref: '#/components/schemas/protos.openapi.v1.ScaFinding_FoundDependency'
2172
+ id:
2173
+ description: Unique ID of this finding
2174
+ example: 1234567
2175
+ format: uint32
2176
+ type: integer
2177
+ is_malicious:
2178
+ description: True if the finding is from a malicious dependency
2179
+ example: true
2180
+ type: bool
2181
+ line_of_code_url:
2182
+ description: The source URL including file and line number
2183
+ example: https://github.com/semgrep/semgrep/blob/39f95450a7d4d70e54c9edbd109bed8210a36889/src/core_cli/Core_CLI.ml#L1
2184
+ type: string
2185
+ location:
2186
+ $ref: '#/components/schemas/protos.openapi.v1.FindingLocation'
2187
+ match_based_id:
2188
+ description: ID calculated based on a finding's file path, rule identifier
2189
+ and pattern, and index
2190
+ example: 0f8c79a6f7e0ff2f908ff5bc366ae1548465069bae8892088051e1c3b4b12c6b8df37d5bcbb181eb868aa79f81f239d14bf2336d552786ab8ccdc7279adf07a6_1
2191
+ type: string
2192
+ reachability:
2193
+ description: Indicates whether the vulnerable code is reachable
2194
+ enum:
2195
+ - no reachability analysis
2196
+ - reachable
2197
+ - always reachable
2198
+ - conditionally reachable
2199
+ - unreachable
2200
+ example: reachable
2201
+ type: string
2202
+ reachable_condition:
2203
+ description: Description of the condition under which the vulnerability
2204
+ becomes reachable. Applies to conditionally reachable findings
2205
+ example: you use the package on a host running Linux or MacOS
2206
+ type: string
2207
+ ref:
2208
+ description: External reference to the source of this finding (e.g. PR)
2209
+ example: refs/pull/1234/merge
2210
+ type: string
2211
+ relevant_since:
2212
+ description: The timestamp when this finding was detected by Semgrep (the
2213
+ first time, or when reintroduced)
2214
+ example: 2020-11-18 23:28:12.391807+00:00
2215
+ type: string
2216
+ repository:
2217
+ $ref: '#/components/schemas/protos.openapi.v1.FindingRepository'
2218
+ review_comments:
2219
+ description: List of external review comment information associated with
2220
+ a finding
2221
+ items:
2222
+ $ref: '#/components/schemas/protos.openapi.v1.ReviewComment'
2223
+ type: array
2224
+ rule:
2225
+ $ref: '#/components/schemas/protos.openapi.v1.FindingRule'
2226
+ rule_message:
2227
+ description: Deprecated in favor of rule.message. Rule message at the time
2228
+ of finding identification. Older findings may not have a value for this
2229
+ field
2230
+ example: null
2231
+ type: string
2232
+ rule_name:
2233
+ description: Deprecated in favor of rule.name
2234
+ example: typescript.react.security.audit.react-no-refs.react-no-refs
2235
+ type: string
2236
+ severity:
2237
+ description: Severity of the finding, derived from the rule that triggered
2238
+ it. Low is equivalent to INFO, Medium to WARNING, and High to ERROR
2239
+ enum:
2240
+ - low
2241
+ - medium
2242
+ - high
2243
+ - critical
2244
+ example: medium
2245
+ type: string
2246
+ state:
2247
+ description: The finding's resolution state. Managed only by changes detected
2248
+ at scan time, the `state` is combined with `triage_state` to ultimately
2249
+ determine a final `status` which is exposed in the UI and API
2250
+ enum:
2251
+ - fixed
2252
+ - muted
2253
+ - removed
2254
+ - unresolved
2255
+ example: unresolved
2256
+ type: string
2257
+ state_updated_at:
2258
+ description: When this issue's `state` (resolution state) was last updated,
2259
+ as distinct from when the issue was triaged (`triaged_at`)
2260
+ example: 2020-11-19 23:28:12.391807+00:00
2261
+ type: string
2262
+ status:
2263
+ description: The finding's status as exposed in the UI. Status is a derived
2264
+ property combining information from the finding `state` and `triage_state`.
2265
+ The `triage_state` can be used to override the scan state if the finding
2266
+ is still detected
2267
+ enum:
2268
+ - open
2269
+ - fixed
2270
+ - ignored
2271
+ - reviewing
2272
+ - fixing
2273
+ - provisionally_ignored
2274
+ example: open
2275
+ type: string
2276
+ syntactic_id:
2277
+ description: ID calculated based on a finding's file path, rule identifier
2278
+ and matched code, and index. Prefer `match_based_id`
2279
+ example: 440eeface888e78afceac3dc7d4cc2cf
2280
+ type: string
2281
+ triage_comment:
2282
+ description: The detailed comment provided during triage
2283
+ example: This finding is from the test repo
2284
+ type: string
2285
+ triage_reason:
2286
+ description: Reason provided when this issue was triaged
2287
+ enum:
2288
+ - acceptable_risk
2289
+ - false_positive
2290
+ - no_time
2291
+ example: acceptable_risk
2292
+ type: string
2293
+ triage_state:
2294
+ description: 'The finding''s triage state. Note: "reviewing" and "fixing"
2295
+ are only in private beta. Set by the user and used along with state to
2296
+ generate the final "status" viewable in the UI'
2297
+ enum:
2298
+ - untriaged
2299
+ - ignored
2300
+ - reopened
2301
+ - reviewing
2302
+ - fixing
2303
+ - provisionally_ignored
2304
+ example: untriaged
2305
+ type: string
2306
+ triaged_at:
2307
+ description: When the finding was triaged
2308
+ example: 2020-11-19 23:28:12.391807+00:00
2309
+ type: string
2310
+ usage:
2311
+ $ref: '#/components/schemas/protos.openapi.v1.ScaFinding_Usage'
2312
+ vulnerability_identifier:
2313
+ description: Identifier of the vulnerability in the vulnerability database
2314
+ example: CVE-2021-24112
2315
+ type: string
2316
+ title: Sca Finding
2317
+ type: object
2318
+ protos.openapi.v1.ScaFinding_EpssScore:
2319
+ description: The score assigned by FIRST.org's Exploitation Probability Scoring
2320
+ System
2321
+ properties:
2322
+ percentile:
2323
+ description: This EPSS score's percentile among all EPSS scores, from 0
2324
+ to 1
2325
+ example: 0.994
2326
+ format: float
2327
+ type: number
2328
+ score:
2329
+ description: The explotation probability, from 0 to 1
2330
+ example: 0.97
2331
+ format: float
2332
+ type: number
2333
+ title: Epss Score
2334
+ type: object
2335
+ protos.openapi.v1.ScaFinding_FixRecommendation:
2336
+ description: Recommendation for fixing the vulnerability
2337
+ properties:
2338
+ package:
2339
+ description: The package for which a fix is recommended
2340
+ example: System.Drawing.Common
2341
+ type: string
2342
+ version:
2343
+ description: The recommended version of the package
2344
+ example: 5.0.3
2345
+ type: string
2346
+ title: Fix Recommendation
2347
+ type: object
2348
+ protos.openapi.v1.ScaFinding_FoundDependency:
2349
+ description: Information about the vulnerable package that was found in the
2350
+ codebase
2351
+ properties:
2352
+ ecosystem:
2353
+ default: no_package_manager
2354
+ description: Ecosystem of the package
2355
+ enum:
2356
+ - no_package_manager
2357
+ - npm
2358
+ - pypi
2359
+ - gomod
2360
+ - cargo
2361
+ - maven
2362
+ - gem
2363
+ - composer
2364
+ - nuget
2365
+ - pub
2366
+ - swiftpm
2367
+ - hex
2368
+ example: npm
2369
+ type: string
2370
+ lockfile_line_url:
2371
+ description: URL to the specific line in the lockfile where the dependency
2372
+ is listed
2373
+ example: https://github.com/yourorg/yourrepo/blob/main/package-lock.json#L25
2374
+ type: string
2375
+ package:
2376
+ description: Name of the package that contains the vulnerability
2377
+ example: System.Drawing.Common
2378
+ type: string
2379
+ transitivity:
2380
+ description: Indicates whether the dependency is direct or transitive
2381
+ enum:
2382
+ - direct
2383
+ - transitive
2384
+ - unknown
2385
+ example: direct
2386
+ type: string
2387
+ version:
2388
+ description: Version of the package that was found to be vulnerable
2389
+ example: 5.0.0
2390
+ type: string
2391
+ title: Found Dependency
2392
+ type: object
2393
+ protos.openapi.v1.ScaFinding_Usage:
2394
+ description: Usage of the vulnerable package in the codebase. Applies to reachable
2395
+ findings
2396
+ properties:
2397
+ external_ticket:
2398
+ $ref: '#/components/schemas/protos.openapi.v1.ExternalTicket'
2399
+ location:
2400
+ $ref: '#/components/schemas/protos.openapi.v1.FindingLocation'
2401
+ title: Usage
2402
+ type: object
2403
+ protos.openapi.v1.SearchScansRequest:
2404
+ properties:
2405
+ branch:
2406
+ description: Only get scans from the specified branch
2407
+ type: string
2408
+ cursor:
2409
+ description: Cursor to paginate through the results
2410
+ type: string
2411
+ deploymentId:
2412
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
2413
+ or in your Settings in the web UI.'
2414
+ example: 123
2415
+ format: uint64
2416
+ type: string
2417
+ is_full_scan:
2418
+ description: Only get scans that are full scans (if false, only get diff
2419
+ scans)
2420
+ type: integer
2421
+ limit:
2422
+ description: Page size to paginate through the results (default is 100,
2423
+ max is 500)
2424
+ type: integer
2425
+ products:
2426
+ description: 'Only get scans that have these enabled products
2427
+
2428
+
2429
+ | value | description |
2430
+
2431
+ |-------|---------------|
2432
+
2433
+ | PRODUCT_SAST | |
2434
+
2435
+ | PRODUCT_SCA | |
2436
+
2437
+ | PRODUCT_SECRETS | |
2438
+
2439
+ | PRODUCT_AI_SAST | |
2440
+
2441
+
2442
+ '
2443
+ enum:
2444
+ - PRODUCT_SAST
2445
+ - PRODUCT_SCA
2446
+ - PRODUCT_SECRETS
2447
+ - PRODUCT_AI_SAST
2448
+ items:
2449
+ enum:
2450
+ - PRODUCT_UNSPECIFIED
2451
+ - PRODUCT_SAST
2452
+ - PRODUCT_SCA
2453
+ - PRODUCT_SECRETS
2454
+ - PRODUCT_AI_SAST
2455
+ format: enum
2456
+ type: string
2457
+ type: array
2458
+ repository_id:
2459
+ description: Only get scans for this repo
2460
+ type: integer
2461
+ since:
2462
+ description: Only get scans created after this time. Provide time in ISO
2463
+ 8601 format.
2464
+ format: date-time
2465
+ type: string
2466
+ statuses:
2467
+ description: 'Only get scans that have one of these statuses
2468
+
2469
+
2470
+ | value | description |
2471
+
2472
+ |-------|---------------|
2473
+
2474
+ | SCAN_STATUS_RUNNING | The scan is currently running |
2475
+
2476
+ | SCAN_STATUS_COMPLETED | The scan has completed successfully (0 or 1
2477
+ exit code) |
2478
+
2479
+ | SCAN_STATUS_ERROR | The scan has exited with a failure (exit code not
2480
+ 0 or 1) |
2481
+
2482
+ | SCAN_STATUS_NEVER_FINISHED | The scan did not report an error or success
2483
+ after over an hour |
2484
+
2485
+
2486
+ '
2487
+ enum:
2488
+ - SCAN_STATUS_RUNNING
2489
+ - SCAN_STATUS_COMPLETED
2490
+ - SCAN_STATUS_ERROR
2491
+ - SCAN_STATUS_NEVER_FINISHED
2492
+ items:
2493
+ enum:
2494
+ - SCAN_STATUS_UNSPECIFIED
2495
+ - SCAN_STATUS_RUNNING
2496
+ - SCAN_STATUS_COMPLETED
2497
+ - SCAN_STATUS_ERROR
2498
+ - SCAN_STATUS_NEVER_FINISHED
2499
+ format: enum
2500
+ type: string
2501
+ type: integer
2502
+ total_time:
2503
+ $ref: '#/components/schemas/protos.common.v1.FloatRange'
2504
+ required:
2505
+ - deployment_id
2506
+ title: Search Scans Request
2507
+ type: object
2508
+ protos.openapi.v1.SearchScansResponse:
2509
+ properties:
2510
+ cursor:
2511
+ description: Cursor to retrieve the next page of results.
2512
+ type: string
2513
+ scans:
2514
+ description: List of scans.
2515
+ items:
2516
+ $ref: '#/components/schemas/protos.scan.v1.ScanPublic'
2517
+ type: array
2518
+ type: object
2519
+ protos.openapi.v1.ToggleProjectManagedScanResponse:
2520
+ description: Successfully updated managed scan settings for project.
2521
+ properties:
2522
+ project:
2523
+ $ref: '#/components/schemas/protos.openapi.v1.Project'
2524
+ required:
2525
+ - projects
2526
+ title: Toggle Project Managed Scan Response
2527
+ type: object
2528
+ protos.openapi.v1.UpdatePolicyResponse:
2529
+ properties:
2530
+ policyId:
2531
+ description: 'Policy ID (numeric). Example: `456`. Can be found at `/deployments/{deploymentId}/policies`.'
2532
+ example: '1'
2533
+ format: uint64
2534
+ type: string
2535
+ updatedRule:
2536
+ $ref: '#/components/schemas/protos.common.v1.Rule'
2537
+ type: object
2538
+ protos.openapi.v1.UpdateProjectResponse:
2539
+ description: Successfully updated details for the project.
2540
+ properties:
2541
+ project:
2542
+ $ref: '#/components/schemas/protos.openapi.v1.Project'
2543
+ required:
2544
+ - projects
2545
+ title: Update Project Response
2546
+ type: object
2547
+ protos.sca.v1.CodeLocation:
2548
+ description: Specific location in a file.
2549
+ properties:
2550
+ committedAt:
2551
+ description: Timestamp when code file was last modified, if available.
2552
+ format: date-time
2553
+ type: string
2554
+ endCol:
2555
+ description: Ending column number (1 indexed).
2556
+ type: string
2557
+ endLine:
2558
+ description: Ending line number (1 indexed).
2559
+ type: string
2560
+ path:
2561
+ description: Path to a file.
2562
+ type: string
2563
+ startCol:
2564
+ description: Starting column number (1 indexed).
2565
+ type: string
2566
+ startLine:
2567
+ description: Starting line number (1 indexed).
2568
+ type: string
2569
+ url:
2570
+ description: URL to code location if available, otherwise empty.
2571
+ type: string
2572
+ type: object
2573
+ protos.sca.v1.Dependency:
2574
+ description: A specific dependency.
2575
+ properties:
2576
+ name:
2577
+ description: String identifier of dependency
2578
+ type: string
2579
+ versionSpecifier:
2580
+ description: Version specifier of dependency.
2581
+ type: string
2582
+ type: object
2583
+ protos.sca.v1.DependencyFilter:
2584
+ description: Object to provide dependency details to filter by.
2585
+ properties:
2586
+ ecosystem:
2587
+ description: 'Filter by ecosystem (e.g. npm, pypi, etc).
2588
+
2589
+
2590
+ | value | description |
2591
+
2592
+ |-------|---------------|
2593
+
2594
+ | no_package_manager | |
2595
+
2596
+ | npm | |
2597
+
2598
+ | pypi | |
2599
+
2600
+ | gomod | |
2601
+
2602
+ | cargo | |
2603
+
2604
+ | maven | |
2605
+
2606
+ | gem | |
2607
+
2608
+ | composer | |
2609
+
2610
+ | nuget | |
2611
+
2612
+ | pub | |
2613
+
2614
+ | swiftpm | |
2615
+
2616
+ | hex | |
2617
+
2618
+
2619
+ '
2620
+ enum:
2621
+ - no_package_manager
2622
+ - npm
2623
+ - pypi
2624
+ - gomod
2625
+ - cargo
2626
+ - maven
2627
+ - gem
2628
+ - composer
2629
+ - nuget
2630
+ - pub
2631
+ - swiftpm
2632
+ - hex
2633
+ items:
2634
+ enum:
2635
+ - no_package_manager
2636
+ - npm
2637
+ - pypi
2638
+ - gomod
2639
+ - cargo
2640
+ - maven
2641
+ - gem
2642
+ - composer
2643
+ - nuget
2644
+ - pub
2645
+ - swiftpm
2646
+ - hex
2647
+ format: enum
2648
+ type: string
2649
+ type: array
2650
+ license:
2651
+ description: Filter by license (e.g. MIT).
2652
+ items:
2653
+ type: string
2654
+ type: array
2655
+ licensePolicySetting:
2656
+ description: 'Filter by license policy setting outcome. DEPRECATED -- use
2657
+ license_policy_settings instead.
2658
+
2659
+
2660
+ | value | description |
2661
+
2662
+ |-------|---------------|
2663
+
2664
+ | LICENSE_POLICY_SETTING_ALLOW | |
2665
+
2666
+ | LICENSE_POLICY_SETTING_COMMENT | |
2667
+
2668
+ | LICENSE_POLICY_SETTING_BLOCK | |
2669
+
2670
+
2671
+ '
2672
+ enum:
2673
+ - LICENSE_POLICY_SETTING_ALLOW
2674
+ - LICENSE_POLICY_SETTING_COMMENT
2675
+ - LICENSE_POLICY_SETTING_BLOCK
2676
+ format: enum
2677
+ type: string
2678
+ licensePolicySettings:
2679
+ description: 'Filter by license policy setting outcome.
2680
+
2681
+
2682
+ | value | description |
2683
+
2684
+ |-------|---------------|
2685
+
2686
+ | LICENSE_POLICY_SETTING_ALLOW | |
2687
+
2688
+ | LICENSE_POLICY_SETTING_COMMENT | |
2689
+
2690
+ | LICENSE_POLICY_SETTING_BLOCK | |
2691
+
2692
+
2693
+ '
2694
+ enum:
2695
+ - LICENSE_POLICY_SETTING_ALLOW
2696
+ - LICENSE_POLICY_SETTING_COMMENT
2697
+ - LICENSE_POLICY_SETTING_BLOCK
2698
+ items:
2699
+ enum:
2700
+ - LICENSE_POLICY_SETTING_UNSPECIFIED
2701
+ - LICENSE_POLICY_SETTING_ALLOW
2702
+ - LICENSE_POLICY_SETTING_COMMENT
2703
+ - LICENSE_POLICY_SETTING_BLOCK
2704
+ format: enum
2705
+ type: string
2706
+ type: array
2707
+ lockfilePath:
2708
+ description: Filter by path to the lockfile (e.g. `foo/bar/package-lock.json`).
2709
+ type: string
2710
+ name:
2711
+ description: Filter by dependency name (e.g. lodash).
2712
+ type: string
2713
+ repositoryId:
2714
+ description: "Repository IDs (numeric) to filter by. Omit if the endpoint
2715
+ has Repository ID as a path parameter.\n Use Projects endpoints to retrieve
2716
+ Repository IDs."
2717
+ items:
2718
+ format: uint32
2719
+ type: integer
2720
+ type: array
2721
+ transitivity:
2722
+ description: 'Filter by transitivity.
2723
+
2724
+
2725
+ | value | description |
2726
+
2727
+ |-------|---------------|
2728
+
2729
+ | UNKNOWN_TRANSITIVITY | |
2730
+
2731
+ | TRANSITIVE | |
2732
+
2733
+ | DIRECT | |
2734
+
2735
+
2736
+ '
2737
+ enum:
2738
+ - UNKNOWN_TRANSITIVITY
2739
+ - TRANSITIVE
2740
+ - DIRECT
2741
+ items:
2742
+ enum:
2743
+ - UNKNOWN_TRANSITIVITY
2744
+ - TRANSITIVE
2745
+ - DIRECT
2746
+ format: enum
2747
+ type: string
2748
+ type: array
2749
+ version:
2750
+ description: Filter by dependency version (e.g. 1.0.1).
2751
+ type: string
2752
+ type: object
2753
+ protos.sca.v1.FoundDependency:
2754
+ properties:
2755
+ definedAt:
2756
+ allOf:
2757
+ - $ref: '#/components/schemas/protos.sca.v1.CodeLocation'
2758
+ description: Path and line number dependency is declared in.
2759
+ ecosystem:
2760
+ description: 'The ecosystem the dependency is in (e.g. pypi, npm, etc).
2761
+
2762
+
2763
+ | value | description |
2764
+
2765
+ |-------|---------------|
2766
+
2767
+ | no_package_manager | |
2768
+
2769
+ | npm | |
2770
+
2771
+ | pypi | |
2772
+
2773
+ | gomod | |
2774
+
2775
+ | cargo | |
2776
+
2777
+ | maven | |
2778
+
2779
+ | gem | |
2780
+
2781
+ | composer | |
2782
+
2783
+ | nuget | |
2784
+
2785
+ | pub | |
2786
+
2787
+ | swiftpm | |
2788
+
2789
+ | hex | |
2790
+
2791
+
2792
+ '
2793
+ enum:
2794
+ - no_package_manager
2795
+ - npm
2796
+ - pypi
2797
+ - gomod
2798
+ - cargo
2799
+ - maven
2800
+ - gem
2801
+ - composer
2802
+ - nuget
2803
+ - pub
2804
+ - swiftpm
2805
+ - hex
2806
+ format: enum
2807
+ type: string
2808
+ licenses:
2809
+ description: Licenses the dependency is using.
2810
+ items:
2811
+ type: string
2812
+ type: array
2813
+ manifestDefinition:
2814
+ allOf:
2815
+ - $ref: '#/components/schemas/protos.sca.v1.CodeLocation'
2816
+ description: Path to the manifest file that defines the subproject containing
2817
+ this dependency
2818
+ package:
2819
+ allOf:
2820
+ - $ref: '#/components/schemas/protos.sca.v1.Dependency'
2821
+ description: What the dependency is.
2822
+ repositoryId:
2823
+ description: ID of repository dependency is found in.
2824
+ type: string
2825
+ resolvedUrl:
2826
+ description: The resolved URL of the dependency. Could point to a compressed
2827
+ source code directory (e.g. tarball), source code repository, or a package
2828
+ manager cache directory. May be empty if the package manager doesn't supply
2829
+ a URL.
2830
+ type: string
2831
+ transitivity:
2832
+ description: 'Whether dependency is direct or transitive.
2833
+
2834
+
2835
+ | value | description |
2836
+
2837
+ |-------|---------------|
2838
+
2839
+ | UNKNOWN_TRANSITIVITY | |
2840
+
2841
+ | TRANSITIVE | |
2842
+
2843
+ | DIRECT | |
2844
+
2845
+
2846
+ '
2847
+ enum:
2848
+ - UNKNOWN_TRANSITIVITY
2849
+ - TRANSITIVE
2850
+ - DIRECT
2851
+ format: enum
2852
+ type: string
2853
+ type: object
2854
+ protos.sca.v1.LockfileDependencySummary:
2855
+ properties:
2856
+ lockfilePath:
2857
+ description: Path to lockfile (e.g. foo/bar/package-lock.json).
2858
+ type: string
2859
+ numDependencies:
2860
+ description: Total number of dependencies in the lockfile.
2861
+ format: uint32
2862
+ type: integer
2863
+ type: object
2864
+ protos.sca.v1.RepositoryDependencySummary:
2865
+ properties:
2866
+ hasDependencyPathScan:
2867
+ description: "True if the repository has been scanned with the `hasPathToTransitivityInScans`
2868
+ feature flag\n which means it will have dependency graph data in DGraph
2869
+ available to query"
2870
+ type: boolean
2871
+ id:
2872
+ description: ID of repository.
2873
+ format: uint32
2874
+ type: integer
2875
+ name:
2876
+ description: Name of repository.
2877
+ type: string
2878
+ numDependencies:
2879
+ description: Total number of dependencies in the repository.
2880
+ format: uint32
2881
+ type: integer
2882
+ type: object
2883
+ protos.sca.v1.SbomFormatVersion:
2884
+ properties:
2885
+ format:
2886
+ default: SBOM_FORMAT_CYCLONEDX
2887
+ description: 'Format for the SBOM export.
2888
+
2889
+
2890
+ | value | description |
2891
+
2892
+ |-------|---------------|
2893
+
2894
+ | SBOM_FORMAT_CYCLONEDX | |
2895
+
2896
+
2897
+ '
2898
+ enum:
2899
+ - SBOM_FORMAT_CYCLONEDX
2900
+ format: enum
2901
+ type: string
2902
+ version:
2903
+ default: '1.5'
2904
+ description: Version of the SBOM format.
2905
+ type: string
2906
+ type: object
2907
+ protos.sca.v1.SbomMetadataContact:
2908
+ properties:
2909
+ email:
2910
+ type: string
2911
+ name:
2912
+ type: string
2913
+ phone:
2914
+ type: string
2915
+ type: object
2916
+ protos.sca.v1.SbomMetadataSupplier:
2917
+ properties:
2918
+ contact:
2919
+ $ref: '#/components/schemas/protos.sca.v1.SbomMetadataContact'
2920
+ name:
2921
+ type: string
2922
+ url:
2923
+ type: string
2924
+ type: object
2925
+ protos.scan.v1.ScanFindingsCounts:
2926
+ properties:
2927
+ code:
2928
+ description: Total number of Code findings in the scan
2929
+ example: 2
2930
+ format: uint64
2931
+ type: string
2932
+ secrets:
2933
+ description: Total number of Secrets findings in the scan
2934
+ example: 1
2935
+ format: uint64
2936
+ type: string
2937
+ supply_chain:
2938
+ description: Total number of Supply Chain findings in the scan
2939
+ example: 1
2940
+ format: uint64
2941
+ type: string
2942
+ total:
2943
+ description: Total number of findings in the scan
2944
+ example: 4
2945
+ format: uint64
2946
+ type: string
2947
+ type: object
2948
+ protos.scan.v1.ScanPublic:
2949
+ properties:
2950
+ branch:
2951
+ description: The scanned branch
2952
+ example: main
2953
+ type: string
2954
+ commit:
2955
+ description: The commit hash that was scanned
2956
+ example: 6d3de02545f820febf2af9820568fa5f697d4087
2957
+ type: string
2958
+ completed_at:
2959
+ description: The timestamp when this scan completed (if it has completed).
2960
+ example: 2020-11-18 23:30:10.216670+00:00
2961
+ format: date-time
2962
+ type: string
2963
+ deployment_id:
2964
+ description: Unique identifier for the deployment of the scan.
2965
+ format: uint64
2966
+ type: string
2967
+ enabled_products:
2968
+ description: The products used when running the scan.
2969
+ example:
2970
+ - secrets
2971
+ items:
2972
+ type: string
2973
+ type: array
2974
+ exit_code:
2975
+ description: The exit_code of the scan (see https://semgrep.dev/docs/cli-reference#exit-codes)
2976
+ example: 0
2977
+ format: int64
2978
+ type: string
2979
+ findings_counts:
2980
+ $ref: '#/components/schemas/protos.scan.v1.ScanFindingsCounts'
2981
+ id:
2982
+ description: ID of the scan.
2983
+ format: uint64
2984
+ type: string
2985
+ is_full_scan:
2986
+ description: Whether the scan was a full scan (true) or a diff scan (false)
2987
+ example: true
2988
+ type: boolean
2989
+ repository_id:
2990
+ description: Unique identifier for the repository of the scan.
2991
+ format: uint64
2992
+ type: string
2993
+ started_at:
2994
+ description: The timestamp when this scan started.
2995
+ example: 2020-11-18 23:28:12.391807+00:00
2996
+ format: date-time
2997
+ type: string
2998
+ status:
2999
+ description: 'The current status of the scan
3000
+
3001
+
3002
+ | value | description |
3003
+
3004
+ |-------|---------------|
3005
+
3006
+ | SCAN_STATUS_RUNNING | The scan is currently running |
3007
+
3008
+ | SCAN_STATUS_COMPLETED | The scan has completed successfully (0 or 1
3009
+ exit code) |
3010
+
3011
+ | SCAN_STATUS_ERROR | The scan has exited with a failure (exit code not
3012
+ 0 or 1) |
3013
+
3014
+ | SCAN_STATUS_NEVER_FINISHED | The scan did not report an error or success
3015
+ after over an hour |
3016
+
3017
+
3018
+ '
3019
+ enum:
3020
+ - SCAN_STATUS_RUNNING
3021
+ - SCAN_STATUS_COMPLETED
3022
+ - SCAN_STATUS_ERROR
3023
+ - SCAN_STATUS_NEVER_FINISHED
3024
+ example: SCAN_STATUS_RUNNING
3025
+ format: enum
3026
+ type: string
3027
+ total_time:
3028
+ description: Duration of scan, in seconds
3029
+ example: 17.32
3030
+ format: float
3031
+ type: number
3032
+ type: object
3033
+ protos.secrets.v1.HistoricalInfo:
3034
+ properties:
3035
+ gitBlob:
3036
+ description: "Git blob at which the finding is present. Sent in addition
3037
+ to the commit\n since some SCMs have permalinks which use the blob sha,
3038
+ so this information\n is useful when generating links back to the SCM."
3039
+ type: string
3040
+ gitCommit:
3041
+ description: "Git commit at which the finding is present. Used by \"historical\"
3042
+ scans,\n which scan non-HEAD commits in the git history. Relevant for
3043
+ finding, e.g.,\n secrets which are buried in the git history which we
3044
+ wouldn't find at HEAD"
3045
+ type: string
3046
+ gitCommitTimestamp:
3047
+ format: date-time
3048
+ type: string
3049
+ type: object
3050
+ protos.secrets.v1.SecretsFinding:
3051
+ description: A Finding represents a single secret finding.
3052
+ properties:
3053
+ autotriage:
3054
+ allOf:
3055
+ - $ref: '#/components/schemas/protos.ai.v1.Autotriage'
3056
+ description: "* Autotriage info for the finding.\n This is used for the
3057
+ Generic Secrets Detection project, for\n autotriaging secrets findings
3058
+ with LLMs"
3059
+ confidence:
3060
+ description: 'Confidence of the finding.
3061
+
3062
+
3063
+ | value | description |
3064
+
3065
+ |-------|---------------|
3066
+
3067
+ | CONFIDENCE_HIGH | |
3068
+
3069
+ | CONFIDENCE_MEDIUM | |
3070
+
3071
+ | CONFIDENCE_LOW | |
3072
+
3073
+
3074
+ '
3075
+ enum:
3076
+ - CONFIDENCE_HIGH
3077
+ - CONFIDENCE_MEDIUM
3078
+ - CONFIDENCE_LOW
3079
+ format: enum
3080
+ type: string
3081
+ createdAt:
3082
+ description: Creation timestamp.
3083
+ format: date-time
3084
+ type: string
3085
+ externalTicket:
3086
+ allOf:
3087
+ - $ref: '#/components/schemas/protos.ticketing.v1.ExternalTicket'
3088
+ description: The external ticket reference
3089
+ findingPath:
3090
+ description: File path where the finding was detected.
3091
+ type: string
3092
+ findingPathUrl:
3093
+ description: URL to the file where the finding was detected.
3094
+ type: string
3095
+ historicalInfo:
3096
+ allOf:
3097
+ - $ref: '#/components/schemas/protos.secrets.v1.HistoricalInfo'
3098
+ description: Historical scanning info for the finding.
3099
+ id:
3100
+ description: ID of the finding.
3101
+ type: string
3102
+ mode:
3103
+ description: 'The behavior of the finding reporting: Monitor / Comment /
3104
+ Block.
3105
+
3106
+
3107
+ | value | description |
3108
+
3109
+ |-------|---------------|
3110
+
3111
+ | MODE_MONITOR | Monitor mode, silently report findings |
3112
+
3113
+ | MODE_COMMENT | Comment mode, leaves PR comments but does not block |
3114
+
3115
+ | MODE_BLOCK | Block mode, leaves PR comments and blocks PR |
3116
+
3117
+ | MODE_DISABLED | Disabled mode, not active |
3118
+
3119
+
3120
+ '
3121
+ enum:
3122
+ - MODE_MONITOR
3123
+ - MODE_COMMENT
3124
+ - MODE_BLOCK
3125
+ - MODE_DISABLED
3126
+ format: enum
3127
+ type: string
3128
+ ref:
3129
+ description: Branch where the finding was detected.
3130
+ type: string
3131
+ refUrl:
3132
+ description: URL to the branch where the finding was detected.
3133
+ type: string
3134
+ repository:
3135
+ allOf:
3136
+ - $ref: '#/components/schemas/protos.secrets.v1.SecretsFinding_Repository'
3137
+ description: Repository where the finding was detected.
3138
+ reviewComments:
3139
+ description: List of external review comment information associated with
3140
+ a finding
3141
+ items:
3142
+ $ref: '#/components/schemas/protos.common.v1.ReviewComment'
3143
+ type: array
3144
+ ruleHashId:
3145
+ description: ID of the rule that triggered the finding.
3146
+ type: string
3147
+ severity:
3148
+ description: 'Severity of the finding.
3149
+
3150
+
3151
+ | value | description |
3152
+
3153
+ |-------|---------------|
3154
+
3155
+ | SEVERITY_HIGH | |
3156
+
3157
+ | SEVERITY_MEDIUM | |
3158
+
3159
+ | SEVERITY_LOW | |
3160
+
3161
+ | SEVERITY_CRITICAL | |
3162
+
3163
+
3164
+ '
3165
+ enum:
3166
+ - SEVERITY_HIGH
3167
+ - SEVERITY_MEDIUM
3168
+ - SEVERITY_LOW
3169
+ - SEVERITY_CRITICAL
3170
+ format: enum
3171
+ type: string
3172
+ status:
3173
+ description: 'Status of the finding.
3174
+
3175
+
3176
+ | value | description |
3177
+
3178
+ |-------|---------------|
3179
+
3180
+ | FINDING_STATUS_OPEN | |
3181
+
3182
+ | FINDING_STATUS_IGNORED | |
3183
+
3184
+ | FINDING_STATUS_FIXED | |
3185
+
3186
+ | FINDING_STATUS_REMOVED | |
3187
+
3188
+ | FINDING_STATUS_UNKNOWN | |
3189
+
3190
+ | FINDING_STATUS_PROVISIONALLY_IGNORED | |
3191
+
3192
+
3193
+ '
3194
+ enum:
3195
+ - FINDING_STATUS_OPEN
3196
+ - FINDING_STATUS_IGNORED
3197
+ - FINDING_STATUS_FIXED
3198
+ - FINDING_STATUS_REMOVED
3199
+ - FINDING_STATUS_UNKNOWN
3200
+ - FINDING_STATUS_PROVISIONALLY_IGNORED
3201
+ format: enum
3202
+ type: string
3203
+ type:
3204
+ description: Service type for the secrets finding (e.g. AWS, GitHub, GitLab,
3205
+ etc).
3206
+ type: string
3207
+ updatedAt:
3208
+ description: Update timestamp.
3209
+ format: date-time
3210
+ type: string
3211
+ validationState:
3212
+ description: 'Whether the finding was validated or not.
3213
+
3214
+
3215
+ | value | description |
3216
+
3217
+ |-------|---------------|
3218
+
3219
+ | VALIDATION_STATE_CONFIRMED_VALID | |
3220
+
3221
+ | VALIDATION_STATE_CONFIRMED_INVALID | |
3222
+
3223
+ | VALIDATION_STATE_VALIDATION_ERROR | |
3224
+
3225
+ | VALIDATION_STATE_NO_VALIDATOR | |
3226
+
3227
+
3228
+ '
3229
+ enum:
3230
+ - VALIDATION_STATE_CONFIRMED_VALID
3231
+ - VALIDATION_STATE_CONFIRMED_INVALID
3232
+ - VALIDATION_STATE_VALIDATION_ERROR
3233
+ - VALIDATION_STATE_NO_VALIDATOR
3234
+ format: enum
3235
+ type: string
3236
+ type: object
3237
+ protos.secrets.v1.SecretsFinding_Repository:
3238
+ description: Repository where the finding was detected.
3239
+ properties:
3240
+ name:
3241
+ description: Repository name
3242
+ type: string
3243
+ scmType:
3244
+ description: 'Provider for the finding (e.g. GitHub, GitLab, GHE, etc).
3245
+
3246
+
3247
+ | value | description |
3248
+
3249
+ |-------|---------------|
3250
+
3251
+ | SCM_TYPE_GITHUB | |
3252
+
3253
+ | SCM_TYPE_GITLAB | |
3254
+
3255
+ | SCM_TYPE_GITHUB_ENTERPRISE | |
3256
+
3257
+ | SCM_TYPE_GITLAB_SELFMANAGED | |
3258
+
3259
+ | SCM_TYPE_BITBUCKET | |
3260
+
3261
+ | SCM_TYPE_AZURE_DEVOPS | |
3262
+
3263
+ | SCM_TYPE_UNKNOWN | |
3264
+
3265
+ | SCM_TYPE_BITBUCKET_DATACENTER | |
3266
+
3267
+
3268
+ '
3269
+ enum:
3270
+ - SCM_TYPE_GITHUB
3271
+ - SCM_TYPE_GITLAB
3272
+ - SCM_TYPE_GITHUB_ENTERPRISE
3273
+ - SCM_TYPE_GITLAB_SELFMANAGED
3274
+ - SCM_TYPE_BITBUCKET
3275
+ - SCM_TYPE_AZURE_DEVOPS
3276
+ - SCM_TYPE_UNKNOWN
3277
+ - SCM_TYPE_BITBUCKET_DATACENTER
3278
+ format: enum
3279
+ type: string
3280
+ url:
3281
+ description: URL to the repository where the finding was detected.
3282
+ type: string
3283
+ visibility:
3284
+ description: 'Repository visbility (e.g. public, private, unknown).
3285
+
3286
+
3287
+ | value | description |
3288
+
3289
+ |-------|---------------|
3290
+
3291
+ | REPOSITORY_VISIBILITY_PUBLIC | |
3292
+
3293
+ | REPOSITORY_VISIBILITY_PRIVATE | |
3294
+
3295
+ | REPOSITORY_VISIBILITY_UNKNOWN | |
3296
+
3297
+
3298
+ '
3299
+ enum:
3300
+ - REPOSITORY_VISIBILITY_PUBLIC
3301
+ - REPOSITORY_VISIBILITY_PRIVATE
3302
+ - REPOSITORY_VISIBILITY_UNKNOWN
3303
+ format: enum
3304
+ type: string
3305
+ type: object
3306
+ protos.ticketing.v1.ExternalTicket:
3307
+ properties:
3308
+ externalSlug:
3309
+ description: Identifier of the external ticket (e.g. for Jira, something
3310
+ like OPS-158).
3311
+ type: string
3312
+ id:
3313
+ description: Nango ticket id
3314
+ type: string
3315
+ linkedIssueIds:
3316
+ description: Semgrep issue ids that are linked to this external ticket
3317
+ items:
3318
+ type: string
3319
+ type: array
3320
+ url:
3321
+ description: URL of the external ticket.
3322
+ type: string
3323
+ type: object
3324
+ securitySchemes:
3325
+ SemgrepAdminJWT:
3326
+ bearerFormat: string
3327
+ description: Get access to data with a Semgrep Admin JSON Web Token.
3328
+ scheme: bearer
3329
+ type: http
3330
+ SemgrepJWT:
3331
+ bearerFormat: string
3332
+ description: Get access to data with your user's JSON Web Token.
3333
+ scheme: bearer
3334
+ type: http
3335
+ SemgrepWebToken:
3336
+ bearerFormat: string
3337
+ description: 'Get access to data with your API token. Example header:
3338
+
3339
+
3340
+ `Authorization: Bearer 2991e2fb4b540fe75b8f90677b0b892b6314e4961cb001fe6eb452eee248a628`
3341
+
3342
+
3343
+ The token can be provisioned from the Tokens section in your Settings, and
3344
+ requires explicitly enabling `Web API` access.'
3345
+ scheme: bearer
3346
+ type: http
3347
+ info:
3348
+ description: '
3349
+
3350
+ Welcome to Semgrep''s portal for the Semgrep AppSec Platform web API.
3351
+
3352
+
3353
+ # Introduction
3354
+
3355
+ Semgrep is a fast, open-source, static analysis tool for finding bugs and enforcing
3356
+ code standards at editor,
3357
+
3358
+ commit, and CI time. [Get started.](https://semgrep.dev/docs/getting-started/)
3359
+
3360
+
3361
+ Semgrep analyzes code locally on your computer or in your build environment: **code
3362
+ is never uploaded.**
3363
+
3364
+
3365
+ This API is documented in the **OpenAPI format**.
3366
+
3367
+
3368
+ # Terms of Use
3369
+
3370
+
3371
+ Please note, the materials made available herein are subject to the
3372
+
3373
+ [Semgrep Terms of Use](https://semgrep.dev/resources/website-terms/), and your
3374
+
3375
+ access or use of any of the same is your acknowledgment and acceptance of the
3376
+
3377
+ such terms.
3378
+
3379
+ <br>
3380
+
3381
+
3382
+ # Authentication
3383
+
3384
+ The API supports authentication with an API token with the "Web API" permission,
3385
+ without limited
3386
+
3387
+ scopes of access.
3388
+
3389
+
3390
+ You can provision an API token [from the Settings page](https://semgrep.dev/orgs/-/settings/tokens).
3391
+
3392
+
3393
+ <br>
3394
+
3395
+ '
3396
+ title: Semgrep Web App
3397
+ version: 1.0.0
3398
+ openapi: 3.0.3
3399
+ paths:
3400
+ /api/v1/bootstrap-sms-vpc:
3401
+ get:
3402
+ description: 'VPC support for Managed Scans is in private beta.
3403
+
3404
+
3405
+ Returns the Managed Scans VPC Bootstrap CloudFormation template in JSON format
3406
+ for setting up cross-account infrastructure.
3407
+
3408
+
3409
+ This template creates IAM roles and policies needed for Semgrep Managed Scanning
3410
+ (SMS) VPC infrastructure automation,
3411
+
3412
+ including the semgrep-sms-vpc-automation role and EC2 Image Builder distribution
3413
+ roles for gVisor container runtime.
3414
+
3415
+
3416
+ See the original AWS cloudformation template format at https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-formats.html
3417
+
3418
+ '
3419
+ operationId: MiscService_GetBootstrapSmsVpc
3420
+ responses:
3421
+ '200':
3422
+ content:
3423
+ application/json:
3424
+ schema:
3425
+ $ref: '#/components/schemas/protos.openapi.v1.GetBootstrapSmsVpcResponse'
3426
+ description: OK
3427
+ summary: '[Beta] Get SMS VPC Bootstrap CloudFormation Template'
3428
+ tags:
3429
+ - MiscService
3430
+ x-badges: []
3431
+ /api/v1/deployments:
3432
+ get:
3433
+ description: 'Request the deployments your auth can access.
3434
+
3435
+
3436
+ Currently available auth scope does not extend over more than one deployment.
3437
+ This endpoint returns the single deployment your token can access. The endpoint
3438
+ additionally returns links to related resources available on this API.'
3439
+ operationId: DeploymentsService_ListDeployments
3440
+ responses:
3441
+ '200':
3442
+ content:
3443
+ application/json:
3444
+ schema:
3445
+ $ref: '#/components/schemas/protos.openapi.v1.ListDeploymentsResponse'
3446
+ description: OK
3447
+ security:
3448
+ - SemgrepWebToken: []
3449
+ summary: List deployments
3450
+ tags:
3451
+ - DeploymentsService
3452
+ x-badges: []
3453
+ /api/v1/deployments/{deploymentId}/dependencies:
3454
+ post:
3455
+ operationId: SupplyChainService_ListDependencies
3456
+ parameters:
3457
+ - in: path
3458
+ name: deploymentId
3459
+ required: true
3460
+ schema:
3461
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
3462
+ or in your Settings in the web UI.'
3463
+ example: 123
3464
+ format: uint64
3465
+ type: string
3466
+ requestBody:
3467
+ content:
3468
+ application/json:
3469
+ schema:
3470
+ $ref: '#/components/schemas/protos.openapi.v1.ListDependenciesRequest'
3471
+ required: true
3472
+ responses:
3473
+ '200':
3474
+ content:
3475
+ application/json:
3476
+ schema:
3477
+ $ref: '#/components/schemas/protos.openapi.v1.ListDependenciesResponse'
3478
+ description: OK
3479
+ security:
3480
+ - SemgrepWebToken: []
3481
+ summary: List dependencies
3482
+ tags:
3483
+ - SupplyChainService
3484
+ x-badges: []
3485
+ /api/v1/deployments/{deploymentId}/dependencies/repositories:
3486
+ post:
3487
+ operationId: SupplyChainService_ListRepositoriesForDependencies
3488
+ parameters:
3489
+ - in: path
3490
+ name: deploymentId
3491
+ required: true
3492
+ schema:
3493
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
3494
+ or in your Settings in the web UI.'
3495
+ format: uint64
3496
+ type: string
3497
+ requestBody:
3498
+ content:
3499
+ application/json:
3500
+ schema:
3501
+ $ref: '#/components/schemas/protos.openapi.v1.ListRepositoriesForDependenciesRequest'
3502
+ required: true
3503
+ responses:
3504
+ '200':
3505
+ content:
3506
+ application/json:
3507
+ schema:
3508
+ $ref: '#/components/schemas/protos.openapi.v1.ListRepositoriesForDependenciesResponse'
3509
+ description: OK
3510
+ security:
3511
+ - SemgrepWebToken: []
3512
+ summary: List repositories with dependencies
3513
+ tags:
3514
+ - SupplyChainService
3515
+ x-badges: []
3516
+ /api/v1/deployments/{deploymentId}/dependencies/repositories/{repositoryId}/lockfiles:
3517
+ post:
3518
+ operationId: SupplyChainService_ListLockfilesForDependencies
3519
+ parameters:
3520
+ - in: path
3521
+ name: deploymentId
3522
+ required: true
3523
+ schema:
3524
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
3525
+ or in your Settings in the web UI.'
3526
+ format: uint64
3527
+ type: string
3528
+ - in: path
3529
+ name: repositoryId
3530
+ required: true
3531
+ schema:
3532
+ description: Repository ID to filter by. Use Projects endpoints to retrieve
3533
+ repository IDs.
3534
+ format: uint64
3535
+ type: string
3536
+ requestBody:
3537
+ content:
3538
+ application/json:
3539
+ schema:
3540
+ $ref: '#/components/schemas/protos.openapi.v1.ListLockfilesForDependenciesRequest'
3541
+ required: true
3542
+ responses:
3543
+ '200':
3544
+ content:
3545
+ application/json:
3546
+ schema:
3547
+ $ref: '#/components/schemas/protos.openapi.v1.ListLockfilesForDependenciesResponse'
3548
+ description: OK
3549
+ security:
3550
+ - SemgrepWebToken: []
3551
+ summary: List lockfiles in a given repository with dependencies
3552
+ tags:
3553
+ - SupplyChainService
3554
+ x-badges: []
3555
+ /api/v1/deployments/{deploymentId}/policies:
3556
+ get:
3557
+ operationId: PoliciesService_ListPolicies
3558
+ parameters:
3559
+ - in: path
3560
+ name: deploymentId
3561
+ required: true
3562
+ schema:
3563
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
3564
+ or in your Settings in the web UI.'
3565
+ example: 123
3566
+ format: uint64
3567
+ type: string
3568
+ responses:
3569
+ '200':
3570
+ content:
3571
+ application/json:
3572
+ schema:
3573
+ $ref: '#/components/schemas/protos.openapi.v1.ListPoliciesResponse'
3574
+ description: OK
3575
+ security:
3576
+ - SemgrepWebToken: []
3577
+ summary: List policies
3578
+ tags:
3579
+ - PoliciesService
3580
+ x-badges: []
3581
+ /api/v1/deployments/{deploymentId}/policies/{policyId}:
3582
+ get:
3583
+ operationId: PoliciesService_ListPolicyRules
3584
+ parameters:
3585
+ - in: path
3586
+ name: deploymentId
3587
+ required: true
3588
+ schema:
3589
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
3590
+ or in your Settings in the web UI.'
3591
+ example: 123
3592
+ format: uint64
3593
+ type: string
3594
+ - in: path
3595
+ name: policyId
3596
+ required: true
3597
+ schema:
3598
+ description: 'Policy ID (numeric). Example: `456`. Can be found at `/deployments/{deploymentId}/policies`.'
3599
+ example: 456
3600
+ format: uint64
3601
+ type: string
3602
+ - in: query
3603
+ name: cursor
3604
+ schema:
3605
+ description: Cursor to paginate through the rules. Provide a cursor value
3606
+ from the response to retrieve the next page.
3607
+ type: string
3608
+ - in: query
3609
+ name: limit
3610
+ schema:
3611
+ description: Page size to paginate through the rules. The default page size
3612
+ is `500` and the maximum allowed page size is `2000`.
3613
+ format: uint32
3614
+ type: integer
3615
+ responses:
3616
+ '200':
3617
+ content:
3618
+ application/json:
3619
+ schema:
3620
+ $ref: '#/components/schemas/protos.openapi.v1.ListPolicyRulesResponse'
3621
+ description: OK
3622
+ security:
3623
+ - SemgrepWebToken: []
3624
+ summary: List policy rules
3625
+ tags:
3626
+ - PoliciesService
3627
+ x-badges: []
3628
+ put:
3629
+ operationId: PoliciesService_UpdatePolicy
3630
+ parameters:
3631
+ - in: path
3632
+ name: deploymentId
3633
+ required: true
3634
+ schema:
3635
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
3636
+ or in your Settings in the web UI.'
3637
+ example: 123
3638
+ format: uint64
3639
+ type: string
3640
+ - in: path
3641
+ name: policyId
3642
+ required: true
3643
+ schema:
3644
+ description: 'Policy ID (numeric). Example: `456`. Can be found at `/deployments/{deploymentId}/policies`.'
3645
+ example: 456
3646
+ format: uint64
3647
+ type: string
3648
+ - in: query
3649
+ name: rulePath
3650
+ schema:
3651
+ description: Full path of the Rule.
3652
+ type: string
3653
+ - in: query
3654
+ name: policyMode
3655
+ schema:
3656
+ description: "New policy mode to set for the Rule.\n\n - MODE_MONITOR: Monitor
3657
+ mode, silently report findings\n - MODE_COMMENT: Comment mode, leaves
3658
+ PR comments but does not block\n - MODE_BLOCK: Block mode, leaves PR comments
3659
+ and blocks PR\n - MODE_DISABLED: Disabled mode, not active"
3660
+ enum:
3661
+ - MODE_UNSPECIFIED
3662
+ - MODE_MONITOR
3663
+ - MODE_COMMENT
3664
+ - MODE_BLOCK
3665
+ - MODE_DISABLED
3666
+ format: enum
3667
+ type: string
3668
+ responses:
3669
+ '200':
3670
+ content:
3671
+ application/json:
3672
+ schema:
3673
+ $ref: '#/components/schemas/protos.openapi.v1.UpdatePolicyResponse'
3674
+ description: OK
3675
+ security:
3676
+ - SemgrepWebToken: []
3677
+ summary: Update policy
3678
+ tags:
3679
+ - PoliciesService
3680
+ x-badges: []
3681
+ /api/v1/deployments/{deploymentId}/sbom/export:
3682
+ post:
3683
+ operationId: SupplyChainService_CreateSbomExport
3684
+ parameters:
3685
+ - in: path
3686
+ name: deploymentId
3687
+ required: true
3688
+ schema:
3689
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
3690
+ or in your Settings in the web UI.'
3691
+ example: 123
3692
+ format: uint64
3693
+ type: string
3694
+ requestBody:
3695
+ content:
3696
+ application/json:
3697
+ schema:
3698
+ $ref: '#/components/schemas/protos.openapi.v1.CreateSbomExportRequest'
3699
+ required: true
3700
+ responses:
3701
+ '200':
3702
+ content:
3703
+ application/json:
3704
+ schema:
3705
+ $ref: '#/components/schemas/protos.openapi.v1.CreateSbomExportResponse'
3706
+ description: OK
3707
+ security:
3708
+ - SemgrepWebToken: []
3709
+ summary: Create a new SBOM export job
3710
+ tags:
3711
+ - SupplyChainService
3712
+ x-badges: []
3713
+ /api/v1/deployments/{deploymentId}/sbom/export/{taskToken}:
3714
+ get:
3715
+ operationId: SupplyChainService_GetSbomExport
3716
+ parameters:
3717
+ - in: path
3718
+ name: deploymentId
3719
+ required: true
3720
+ schema:
3721
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
3722
+ or in your Settings in the web UI.'
3723
+ example: 123
3724
+ format: int64
3725
+ type: string
3726
+ - in: path
3727
+ name: taskToken
3728
+ required: true
3729
+ schema:
3730
+ description: Task token for the SBOM export job.
3731
+ type: string
3732
+ responses:
3733
+ '200':
3734
+ content:
3735
+ application/json:
3736
+ schema:
3737
+ $ref: '#/components/schemas/protos.openapi.v1.GetSbomExportResponse'
3738
+ description: OK
3739
+ security:
3740
+ - SemgrepWebToken: []
3741
+ summary: Get the status of a SBOM export job
3742
+ tags:
3743
+ - SupplyChainService
3744
+ x-badges: []
3745
+ /api/v1/deployments/{deploymentId}/scan/{scanId}:
3746
+ get:
3747
+ description: Request the details of a scan including the associated deployment,
3748
+ repository, and commit information.
3749
+ operationId: ScansService_GetScan
3750
+ parameters:
3751
+ - in: path
3752
+ name: deploymentId
3753
+ required: true
3754
+ schema:
3755
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
3756
+ or in your Settings in the web UI.'
3757
+ example: 123
3758
+ format: uint64
3759
+ type: string
3760
+ - in: path
3761
+ name: scanId
3762
+ required: true
3763
+ schema:
3764
+ description: 'Scan ID (numeric). Example: `456`. Can be found at `/deployments/{deploymentId}/scans/search`.'
3765
+ example: 456
3766
+ format: uint64
3767
+ type: string
3768
+ responses:
3769
+ '200':
3770
+ content:
3771
+ application/json:
3772
+ schema:
3773
+ $ref: '#/components/schemas/protos.openapi.v1.GetScanResponse'
3774
+ description: OK
3775
+ security:
3776
+ - SemgrepWebToken: []
3777
+ summary: Get scan details
3778
+ tags:
3779
+ - ScansService
3780
+ x-badges: []
3781
+ /api/v1/deployments/{deploymentId}/scans/search:
3782
+ post:
3783
+ description: List the scans associated with a particular repository over the
3784
+ past 30 days.
3785
+ operationId: ScansService_SearchScans
3786
+ parameters:
3787
+ - in: path
3788
+ name: deploymentId
3789
+ required: true
3790
+ schema:
3791
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
3792
+ or in your Settings in the web UI.'
3793
+ example: 123
3794
+ format: uint64
3795
+ type: string
3796
+ requestBody:
3797
+ content:
3798
+ application/json:
3799
+ schema:
3800
+ $ref: '#/components/schemas/protos.openapi.v1.SearchScansRequest'
3801
+ required: true
3802
+ responses:
3803
+ '200':
3804
+ content:
3805
+ application/json:
3806
+ schema:
3807
+ $ref: '#/components/schemas/protos.openapi.v1.SearchScansResponse'
3808
+ description: OK
3809
+ security:
3810
+ - SemgrepWebToken: []
3811
+ summary: List scans (beta)
3812
+ tags:
3813
+ - ScansService
3814
+ x-badges: []
3815
+ /api/v1/deployments/{deploymentId}/secrets:
3816
+ get:
3817
+ operationId: SecretsService_ListSecretsPath
3818
+ parameters:
3819
+ - in: path
3820
+ name: deploymentId
3821
+ required: true
3822
+ schema:
3823
+ description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
3824
+ or in your Settings in the web UI.'
3825
+ example: 123
3826
+ format: uint64
3827
+ type: string
3828
+ - in: query
3829
+ name: cursor
3830
+ schema:
3831
+ description: Cursor to paginate through the rules. Provide a cursor value
3832
+ from the response to retrieve the next page.
3833
+ type: string
3834
+ - in: query
3835
+ name: limit
3836
+ schema:
3837
+ description: Page size to paginate through the results.
3838
+ format: uint32
3839
+ type: integer
3840
+ - in: query
3841
+ name: since
3842
+ schema:
3843
+ format: date-time
3844
+ type: string
3845
+ - in: query
3846
+ name: validationState
3847
+ schema:
3848
+ description: "Whether the finding was validated or not.\n\n - VALIDATION_STATE_UNSPECIFIED:
3849
+ Return results for all validation states (can also omit this parameter).\n-
3850
+ VALIDATION_STATE_CONFIRMED_VALID: Secret has been tested and is confirmed
3851
+ valid.\n - VALIDATION_STATE_CONFIRMED_INVALID: Secret has been tested
3852
+ and is confirmed invalid.\n - VALIDATION_STATE_VALIDATION_ERROR: Secret
3853
+ test was attempted and there was an error.\n - VALIDATION_STATE_NO_VALIDATOR:
3854
+ There is no validator for this secret."
3855
+ format: string
3856
+ items:
3857
+ enum:
3858
+ - VALIDATION_STATE_UNSPECIFIED
3859
+ - VALIDATION_STATE_CONFIRMED_VALID
3860
+ - VALIDATION_STATE_CONFIRMED_INVALID
3861
+ - VALIDATION_STATE_VALIDATION_ERROR
3862
+ - VALIDATION_STATE_NO_VALIDATOR
3863
+ format: enum
3864
+ type: string
3865
+ type: array
3866
+ - in: query
3867
+ name: status
3868
+ schema:
3869
+ default: FINDING_STATUS_UNSPECIFIED
3870
+ description: "Status of the finding.\n\n - FINDING_STATUS_UNSPECIFIED: Return
3871
+ results for all finding statuses (if used as a parameter).\n - FINDING_STATUS_OPEN:
3872
+ Finding is open and needs to be triaged\n - FINDING_STATUS_IGNORED: Finding
3873
+ has been triaged and is being ignored\n - FINDING_STATUS_FIXED: Finding
3874
+ has been fixed\n - FINDING_STATUS_REMOVED: Finding has been removed\n
3875
+ - FINDING_STATUS_UNKNOWN: Finding status is unknown"
3876
+ enum:
3877
+ - FINDING_STATUS_UNSPECIFIED
3878
+ - FINDING_STATUS_OPEN
3879
+ - FINDING_STATUS_IGNORED
3880
+ - FINDING_STATUS_FIXED
3881
+ - FINDING_STATUS_REMOVED
3882
+ - FINDING_STATUS_UNKNOWN
3883
+ - FINDING_STATUS_PROVISIONALLY_IGNORED
3884
+ format: enum
3885
+ type: string
3886
+ - in: query
3887
+ name: severity
3888
+ schema:
3889
+ description: "Severity of the finding.\n\n - SEVERITY_UNSPECIFIED: Return
3890
+ results for all severities (if used as a parameter)."
3891
+ format: string
3892
+ items:
3893
+ enum:
3894
+ - SEVERITY_UNSPECIFIED
3895
+ - SEVERITY_HIGH
3896
+ - SEVERITY_MEDIUM
3897
+ - SEVERITY_LOW
3898
+ - SEVERITY_CRITICAL
3899
+ format: enum
3900
+ type: string
3901
+ type: array
3902
+ - in: query
3903
+ name: repo
3904
+ schema:
3905
+ description: Repositories to view results for. If not specified, returns
3906
+ all.
3907
+ format: string
3908
+ items:
3909
+ type: string
3910
+ type: array
3911
+ responses:
3912
+ '200':
3913
+ content:
3914
+ application/json:
3915
+ schema:
3916
+ $ref: '#/components/schemas/protos.openapi.v1.ListSecretsPathResponse'
3917
+ description: OK
3918
+ security:
3919
+ - SemgrepWebToken: []
3920
+ summary: List secrets
3921
+ tags:
3922
+ - SecretsService
3923
+ x-badges: []
3924
+ /api/v1/deployments/{deploymentId}/ticketing/v2/tickets/{externalTicketId}:
3925
+ delete:
3926
+ description: Unlink a Jira ticket by its ID
3927
+ operationId: TicketingService_DeleteTicket
3928
+ parameters:
3929
+ - in: path
3930
+ name: deploymentId
3931
+ required: true
3932
+ schema:
3933
+ description: Deployment ID. Can be found at /deployments, or in your Settings
3934
+ in the web UI.
3935
+ example: 123
3936
+ type: string
3937
+ - in: path
3938
+ name: externalTicketId
3939
+ required: true
3940
+ schema:
3941
+ description: The ID of the external ticket
3942
+ example: 456
3943
+ format: uint32
3944
+ type: integer
3945
+ responses:
3946
+ '200':
3947
+ content:
3948
+ application/json:
3949
+ schema:
3950
+ $ref: '#/components/schemas/protos.openapi.v1.DeleteTicketResponse'
3951
+ description: OK
3952
+ security:
3953
+ - SemgrepWebToken: []
3954
+ summary: Unlink a Jira ticket
3955
+ tags:
3956
+ - TicketingService
3957
+ x-badges: []
3958
+ /api/v1/deployments/{deploymentSlug}/findings:
3959
+ get:
3960
+ description: 'Request the list of code or supply chain findings in an organization,
3961
+ paginated in pages of 100 entries and limited by the `since` timestamp. Findings
3962
+ are returned by `relevant_since` descending (see `since` in the Query Parameters
3963
+ list). Examples: List SAST findings with pagination, List SCA findings since
3964
+ timestamp, List findings with filters.'
3965
+ operationId: FindingsService_ListFindings
3966
+ parameters:
3967
+ - in: path
3968
+ name: deploymentSlug
3969
+ required: true
3970
+ schema:
3971
+ description: Slug of the deployment name. Can be found at `/deployments`,
3972
+ or in your Settings in the web UI.
3973
+ example: your-deployment
3974
+ type: string
3975
+ - in: query
3976
+ name: issue_type
3977
+ schema:
3978
+ default: sast
3979
+ description: 'Type of findings to return. If not specified, returns `sast`
3980
+ (Code) findings. Can either be `sast` (Code) or `sca` (Supply Chain).
3981
+ Valid values: sast, sca'
3982
+ enum:
3983
+ - sast
3984
+ - sca
3985
+ example: sca
3986
+ type: string
3987
+ - in: query
3988
+ name: since
3989
+ schema:
3990
+ description: 'What timestamp should the results start at? If not specified,
3991
+ returns results from all timestamps. Provide epoch timestamp in seconds.
3992
+ Filters using the `relevant_since` field: the timestamp when this finding
3993
+ was detected by Semgrep (the first time, or when reintroduced).'
3994
+ example: 1636942398.45
3995
+ format: double
3996
+ type: number
3997
+ - in: query
3998
+ name: page
3999
+ schema:
4000
+ default: '0'
4001
+ description: Which page of the results do you require? If not specified,
4002
+ returns first page. Pages are numbered from zero (0).
4003
+ example: 1
4004
+ format: uint32
4005
+ type: integer
4006
+ - in: query
4007
+ name: dedup
4008
+ schema:
4009
+ default: false
4010
+ description: Deduplicates findings across all your refs/branches if true.
4011
+ If not specified, returns all findings across all refs/branches without
4012
+ deduplicating them. Set this to `true` if you are not filtering for a
4013
+ particular set of refs/branches in order to match the counts listed in
4014
+ the Semgrep UI.
4015
+ example: true
4016
+ type: boolean
4017
+ - in: query
4018
+ name: page_size
4019
+ schema:
4020
+ default: '100'
4021
+ description: 'Maximum number of records per returned page. If not specified,
4022
+ defaults to 100 records. Minimum: 100, Maximum: 3000'
4023
+ example: 100
4024
+ format: uint32
4025
+ maximum: 3000.0
4026
+ minimum: 100.0
4027
+ type: integer
4028
+ - in: query
4029
+ name: repos
4030
+ schema:
4031
+ description: Which repositories (by name) do you want to include? If not
4032
+ specified, includes all.
4033
+ example:
4034
+ - myorg/repo1
4035
+ - myorg/repo2
4036
+ items:
4037
+ type: string
4038
+ type: array
4039
+ - in: query
4040
+ name: repository_ids
4041
+ schema:
4042
+ description: Which repositories (by ID) do you want to include? If not specified,
4043
+ includes all.
4044
+ example:
4045
+ - 1
4046
+ - 2
4047
+ - 3
4048
+ items:
4049
+ format: uint32
4050
+ type: integer
4051
+ type: array
4052
+ - in: query
4053
+ name: status
4054
+ schema:
4055
+ description: 'Which status do you want to include? If not specified, includes
4056
+ all. Valid values: open, fixed, ignored, reviewing, fixing'
4057
+ enum:
4058
+ - open
4059
+ - fixed
4060
+ - ignored
4061
+ - reviewing
4062
+ - fixing
4063
+ example: open
4064
+ type: string
4065
+ - in: query
4066
+ name: triage_reasons
4067
+ schema:
4068
+ description: 'Which triage reasons do you want to include? If not specified,
4069
+ includes all. This filter is applicable when `status` is `ignored`. Valid
4070
+ values: acceptable_risk, false_positive, no_time, no_triage_reason'
4071
+ enum:
4072
+ - acceptable_risk
4073
+ - false_positive
4074
+ - no_time
4075
+ - no_triage_reason
4076
+ example:
4077
+ - acceptable_risk
4078
+ - false_positive
4079
+ items:
4080
+ type: string
4081
+ type: array
4082
+ - in: query
4083
+ name: severities
4084
+ schema:
4085
+ description: 'What severities of issues do you want to include? If not specified,
4086
+ returns all. Valid values: low, medium, high, critical'
4087
+ enum:
4088
+ - low
4089
+ - medium
4090
+ - high
4091
+ - critical
4092
+ example:
4093
+ - low
4094
+ - high
4095
+ items:
4096
+ type: string
4097
+ type: array
4098
+ - in: query
4099
+ name: ref
4100
+ schema:
4101
+ description: Which ref (branch) do you want to filter for?
4102
+ example: refs/pull/1234/merge
4103
+ type: string
4104
+ - in: query
4105
+ name: policies
4106
+ schema:
4107
+ description: 'Which policy modes do you want to include? If not specified,
4108
+ includes all. Monitor: `rule-board-audit`, Comment: `rule-board-pr-comments`,
4109
+ Block: `rule-board-block`. This filter is applicable when `issue_type`
4110
+ is `sast` or unspecified.'
4111
+ example:
4112
+ - rule-board-block
4113
+ - rule-board-pr-comments
4114
+ - rule-board-audit
4115
+ items:
4116
+ type: string
4117
+ type: array
4118
+ - in: query
4119
+ name: rules
4120
+ schema:
4121
+ description: Which rule names do you want to include? If not specified,
4122
+ includes all. This filter is applicable when `issue_type` is `sast` or
4123
+ unspecified.
4124
+ example:
4125
+ - typescript.react.security.audit.react-no-refs.react-no-refs
4126
+ - ajinabraham.njsscan.hardcoded_secrets.node_username
4127
+ items:
4128
+ type: string
4129
+ type: array
4130
+ - in: query
4131
+ name: categories
4132
+ schema:
4133
+ description: Which categories of findings do you want to include? If not
4134
+ specified, includes all. This filter is applicable when `issue_type` is
4135
+ `sast` or unspecified.
4136
+ example:
4137
+ - security
4138
+ - correctness
4139
+ - caching
4140
+ items:
4141
+ type: string
4142
+ type: array
4143
+ - in: query
4144
+ name: confidence
4145
+ schema:
4146
+ description: 'Which rule confidence level do you want to include? If not
4147
+ specified, includes all. This filter is applicable when `issue_type` is
4148
+ `sast` or unspecified. Valid values: low, medium, high'
4149
+ enum:
4150
+ - low
4151
+ - medium
4152
+ - high
4153
+ example: high
4154
+ type: string
4155
+ - in: query
4156
+ name: autotriage_verdict
4157
+ schema:
4158
+ description: 'Which autotriage verdict do you want to include? If not specified,
4159
+ includes all. This filter is applicable when `issue_type` is `sast` or
4160
+ unspecified. Valid values: true_positive, false_positive'
4161
+ enum:
4162
+ - true_positive
4163
+ - false_positive
4164
+ example: true_positive
4165
+ type: string
4166
+ - in: query
4167
+ name: component_tags
4168
+ schema:
4169
+ description: Which component tags do you want to include? If not specified,
4170
+ includes all.
4171
+ example:
4172
+ - user authentication
4173
+ - user data
4174
+ items:
4175
+ type: string
4176
+ type: array
4177
+ - in: query
4178
+ name: exposures
4179
+ schema:
4180
+ description: 'List of exposures or reachability types to filter by. If not
4181
+ specified, returns findings across all exposures. This filter is applicable
4182
+ when `issue_type=sca` is specified. Valid values: reachable, always_reachable,
4183
+ conditionally_reachable, unreachable, unknown'
4184
+ enum:
4185
+ - reachable
4186
+ - always_reachable
4187
+ - conditionally_reachable
4188
+ - unreachable
4189
+ - unknown
4190
+ example:
4191
+ - reachable
4192
+ - always_reachable
4193
+ items:
4194
+ type: string
4195
+ type: array
4196
+ - in: query
4197
+ name: transitivities
4198
+ schema:
4199
+ description: 'List of transitivities to filter by. If not specified, returns
4200
+ all transitivities. This filter is applicable when `issue_type=sca` is
4201
+ specified. Valid values: direct, transitive, unknown'
4202
+ enum:
4203
+ - direct
4204
+ - transitive
4205
+ - unknown
4206
+ example:
4207
+ - transitive
4208
+ items:
4209
+ type: string
4210
+ type: array
4211
+ - in: query
4212
+ name: is_malicious
4213
+ schema:
4214
+ description: 'Filter SCA findings by whether they are from malicious dependencies.
4215
+ If not specified, returns all SCA findings. This filter is only applicable
4216
+ when `issue_type=sca` is specified.
4217
+
4218
+ - true: Returns only findings from malicious dependencies
4219
+
4220
+ - false: Returns only findings from all other reachabilities (reachable
4221
+ in code, always reachable, conditionally reachable, etc.)'
4222
+ example: true
4223
+ type: bool
4224
+ responses:
4225
+ '200':
4226
+ content:
4227
+ application/json:
4228
+ schema:
4229
+ $ref: '#/components/schemas/protos.openapi.v1.ListFindingsResponse'
4230
+ description: OK
4231
+ default:
4232
+ content:
4233
+ application/json:
4234
+ schema:
4235
+ properties:
4236
+ findings:
4237
+ items:
4238
+ oneOf:
4239
+ - $ref: '#/components/schemas/protos.openapi.v1.SastFinding'
4240
+ summary: Sast Finding
4241
+ - $ref: '#/components/schemas/protos.openapi.v1.ScaFinding'
4242
+ summary: Sca Finding
4243
+ type: array
4244
+ type: object
4245
+ description: OK
4246
+ security:
4247
+ - SemgrepWebToken: []
4248
+ summary: List code or supply chain findings
4249
+ tags:
4250
+ - FindingsService
4251
+ x-badges: []
4252
+ /api/v1/deployments/{deploymentSlug}/projects:
4253
+ get:
4254
+ description: Request the list of projects that have been scanned or onboarded
4255
+ to Managed Scans. Does not return archived repositories. Returns 100 projects
4256
+ per page by default.
4257
+ operationId: ProjectsService_ListProjects
4258
+ parameters:
4259
+ - in: path
4260
+ name: deploymentSlug
4261
+ required: true
4262
+ schema:
4263
+ description: Slug of the deployment name. Can be found at `/deployments`,
4264
+ or in your Settings in the web UI.
4265
+ example: your-deployment
4266
+ type: string
4267
+ - in: query
4268
+ name: page
4269
+ schema:
4270
+ description: Which page of the results do you require? If not specified,
4271
+ returns first page. Pages are numbered from zero (0).
4272
+ example: 1
4273
+ format: uint32
4274
+ type: number
4275
+ - in: query
4276
+ name: page_size
4277
+ schema:
4278
+ default: 100.0
4279
+ description: Maximum number of records per returned page. If not specified,
4280
+ defaults to 100 records.
4281
+ example: 100
4282
+ format: uint32
4283
+ type: number
4284
+ responses:
4285
+ '200':
4286
+ content:
4287
+ application/json:
4288
+ schema:
4289
+ $ref: '#/components/schemas/protos.openapi.v1.ListProjectsResponse'
4290
+ description: OK
4291
+ security:
4292
+ - SemgrepWebToken: []
4293
+ summary: List all projects
4294
+ tags:
4295
+ - ProjectsService
4296
+ x-badges: []
4297
+ /api/v1/deployments/{deploymentSlug}/projects/{projectName}:
4298
+ delete:
4299
+ description: Delete a project for a deployment you have access to. This will
4300
+ also delete all of the associated findings.
4301
+ operationId: ProjectsService_DeleteProject
4302
+ parameters:
4303
+ - in: path
4304
+ name: deploymentSlug
4305
+ required: true
4306
+ schema:
4307
+ description: Slug of the deployment name. Can be found at `/deployments`,
4308
+ or in your Settings in the web UI.
4309
+ example: your-deployment
4310
+ type: string
4311
+ - in: path
4312
+ name: projectName
4313
+ required: true
4314
+ schema:
4315
+ description: Name of the project, typically the repository formatted as
4316
+ a path.
4317
+ example: organization/project
4318
+ type: string
4319
+ responses:
4320
+ '200':
4321
+ content:
4322
+ application/json:
4323
+ schema:
4324
+ $ref: '#/components/schemas/protos.openapi.v1.DeleteProjectResponse'
4325
+ description: OK
4326
+ security:
4327
+ - SemgrepWebToken: []
4328
+ summary: Delete project
4329
+ tags:
4330
+ - ProjectsService
4331
+ x-badges: []
4332
+ get:
4333
+ description: Retrieve details for a single project associated with a deployment
4334
+ that you have access to.
4335
+ operationId: ProjectsService_GetProject
4336
+ parameters:
4337
+ - in: path
4338
+ name: deploymentSlug
4339
+ required: true
4340
+ schema:
4341
+ description: Slug of the deployment name. Can be found at `/deployments`,
4342
+ or in your Settings in the web UI.
4343
+ example: your-deployment
4344
+ type: string
4345
+ - in: path
4346
+ name: projectName
4347
+ required: true
4348
+ schema:
4349
+ description: Name of the project, typically the repository formatted as
4350
+ a path.
4351
+ example: organization/project
4352
+ type: string
4353
+ responses:
4354
+ '200':
4355
+ content:
4356
+ application/json:
4357
+ schema:
4358
+ $ref: '#/components/schemas/protos.openapi.v1.GetProjectResponse'
4359
+ description: OK
4360
+ security:
4361
+ - SemgrepWebToken: []
4362
+ summary: Get project details
4363
+ tags:
4364
+ - ProjectsService
4365
+ x-badges: []
4366
+ patch:
4367
+ description: 'Update attributes for the project using the value passed in to
4368
+ the request body.
4369
+
4370
+
4371
+ Note: The only attribute that is supported as of January 2023 is `tags`.'
4372
+ operationId: ProjectsService_UpdateProject
4373
+ parameters:
4374
+ - in: path
4375
+ name: deploymentSlug
4376
+ required: true
4377
+ schema:
4378
+ description: Slug of the deployment name. Can be found at `/deployments`,
4379
+ or in your Settings in the web UI.
4380
+ example: your-deployment
4381
+ type: string
4382
+ - in: path
4383
+ name: projectName
4384
+ required: true
4385
+ schema:
4386
+ description: Name of the project, typically the repository formatted as
4387
+ a path.
4388
+ example: organization/project
4389
+ type: string
4390
+ - in: query
4391
+ name: tags
4392
+ schema:
4393
+ description: Tags associated to this project.
4394
+ example:
4395
+ - tag
4396
+ items:
4397
+ type: string
4398
+ type: string
4399
+ - in: query
4400
+ name: primary_branch
4401
+ schema:
4402
+ description: The full name of the branch you would like to set as primary.
4403
+ Use "None" if default_branch is known and you wish to set primary to always
4404
+ be the default branch.
4405
+ example: refs/heads/develop
4406
+ type: string
4407
+ - in: query
4408
+ name: managed_scan_config.diff_scan.enabled
4409
+ schema:
4410
+ description: When true, diff-aware scans are enabled for the project.
4411
+ type: boolean
4412
+ - in: query
4413
+ name: managed_scan_config.full_scan.enabled
4414
+ schema:
4415
+ description: When true, weekly full scans are enabled.
4416
+ type: boolean
4417
+ responses:
4418
+ '200':
4419
+ content:
4420
+ application/json:
4421
+ schema:
4422
+ $ref: '#/components/schemas/protos.openapi.v1.UpdateProjectResponse'
4423
+ description: OK
4424
+ security:
4425
+ - SemgrepWebToken: []
4426
+ summary: Update project details
4427
+ tags:
4428
+ - ProjectsService
4429
+ x-badges: []
4430
+ /api/v1/deployments/{deploymentSlug}/projects/{projectName}/managed-scan:
4431
+ patch:
4432
+ description: 'Enable or disable
4433
+
4434
+ [Semgrep Managed Scans](/docs/deployment/managed-scanning/overview)
4435
+
4436
+ for a project.'
4437
+ operationId: ProjectsService_ToggleProjectManagedScan
4438
+ parameters:
4439
+ - in: path
4440
+ name: deploymentSlug
4441
+ required: true
4442
+ schema:
4443
+ description: Slug of the deployment name. Can be found at `/deployments`,
4444
+ or in your Settings in the web UI.
4445
+ example: your-deployment
4446
+ type: string
4447
+ - in: path
4448
+ name: projectName
4449
+ required: true
4450
+ schema:
4451
+ description: Name of the project, typically the repository formatted as
4452
+ a path.
4453
+ example: organization/project
4454
+ type: string
4455
+ - in: query
4456
+ name: diff_scan.enabled
4457
+ schema:
4458
+ description: When true, diff-aware scans are enabled for the project.
4459
+ type: boolean
4460
+ - in: query
4461
+ name: full_scan.enabled
4462
+ schema:
4463
+ description: When true, weekly full scans are enabled.
4464
+ type: boolean
4465
+ responses:
4466
+ '200':
4467
+ content:
4468
+ application/json:
4469
+ schema:
4470
+ $ref: '#/components/schemas/protos.openapi.v1.ToggleProjectManagedScanResponse'
4471
+ description: OK
4472
+ security:
4473
+ - SemgrepWebToken: []
4474
+ summary: Toggle Managed Scans for a project
4475
+ tags:
4476
+ - ProjectsService
4477
+ x-badges: []
4478
+ /api/v1/deployments/{deploymentSlug}/projects/{projectName}/tags:
4479
+ delete:
4480
+ description: 'Remove tags from a project for a deployment you have access to.
4481
+
4482
+
4483
+ This request will not delete project tags from the deployment and will only
4484
+ remove
4485
+
4486
+ them from the requested project. Any other projects associated with the requested
4487
+
4488
+ tag will remain unaffected.'
4489
+ operationId: ProjectsService_DeleteProjectTags
4490
+ parameters:
4491
+ - in: path
4492
+ name: deploymentSlug
4493
+ required: true
4494
+ schema:
4495
+ description: Slug of the deployment name. Can be found at `/deployments`,
4496
+ or in your Settings in the web UI.
4497
+ example: your-deployment
4498
+ type: string
4499
+ - in: path
4500
+ name: projectName
4501
+ required: true
4502
+ schema:
4503
+ description: Name of the project, typically the repository formatted as
4504
+ a path.
4505
+ example: organization/project
4506
+ type: string
4507
+ - in: query
4508
+ name: tags
4509
+ schema:
4510
+ example:
4511
+ - tag
4512
+ items:
4513
+ type: string
4514
+ type: array
4515
+ responses:
4516
+ '200':
4517
+ content:
4518
+ application/json:
4519
+ schema:
4520
+ $ref: '#/components/schemas/protos.openapi.v1.DeleteProjectTagsResponse'
4521
+ description: OK
4522
+ security:
4523
+ - SemgrepWebToken: []
4524
+ summary: Remove tags from project
4525
+ tags:
4526
+ - ProjectsService
4527
+ x-badges: []
4528
+ put:
4529
+ description: 'Add tags to a project for a deployment you have access to.
4530
+
4531
+
4532
+ Any project tags that do not already exist for the deployment will be created
4533
+ automatically and associated with the project.'
4534
+ operationId: ProjectsService_AddProjectTags
4535
+ parameters:
4536
+ - in: path
4537
+ name: deploymentSlug
4538
+ required: true
4539
+ schema:
4540
+ description: Slug of the deployment name. Can be found at `/deployments`,
4541
+ or in your Settings in the web UI.
4542
+ example: your-deployment
4543
+ type: string
4544
+ - in: path
4545
+ name: projectName
4546
+ required: true
4547
+ schema:
4548
+ description: Name of the project, typically the repository formatted as
4549
+ a path.
4550
+ example: organization/project
4551
+ type: string
4552
+ - in: query
4553
+ name: tags
4554
+ schema:
4555
+ example:
4556
+ - tag
4557
+ items:
4558
+ type: string
4559
+ type: array
4560
+ responses:
4561
+ '200':
4562
+ content:
4563
+ application/json:
4564
+ schema:
4565
+ $ref: '#/components/schemas/protos.openapi.v1.AddProjectTagsResponse'
4566
+ description: OK
4567
+ security:
4568
+ - SemgrepWebToken: []
4569
+ summary: Add tags to project
4570
+ tags:
4571
+ - ProjectsService
4572
+ x-badges: []
4573
+ /api/v1/deployments/{deploymentSlug}/tickets:
4574
+ post:
4575
+ description: Create Jira tickets for your findings. You can create tickets by
4576
+ passing in a list of issue_ids or by passing in filter query parameters to
4577
+ dynamically select findings. If passing in filters, Semgrep will skip already
4578
+ ticketed findings. This endpoint is synchronous, so it may take some time
4579
+ for your request to resolve. Unlike creating tickets in-app, if ticket creation
4580
+ fails we won't automatically retry. This endpoint accepts a limit parameter
4581
+ (defaulting to 20) to limit the number of tickets created per request. If
4582
+ you specify a list of issue_ids greater than this limit, or your selected
4583
+ filters match on a number of issues greater than this limit, issues that were
4584
+ not ticketed are included in the Failed part of the response object. You can
4585
+ send another request to create tickets for these skipped issues. By default,
4586
+ findings belonging to the same repository and the same rule will be grouped
4587
+ together into a single Jira ticket. You can override this using the group_issues
4588
+ query parameter. Up to 50 issues can be grouped into a single ticket. You
4589
+ can optionally override the Jira project you create tickets in by passing
4590
+ in a Jira project ID as jira_project_id (the numeric ID rather than the project
4591
+ key). You can fetch this ID using the Jira API.
4592
+ operationId: TicketingService_CreateTicket
4593
+ parameters:
4594
+ - in: path
4595
+ name: deploymentSlug
4596
+ required: true
4597
+ schema:
4598
+ description: Deployment slug. Can be found at `/deployments`, or in your
4599
+ Settings in the web UI.
4600
+ type: string
4601
+ requestBody:
4602
+ content:
4603
+ application/json:
4604
+ schema:
4605
+ $ref: '#/components/schemas/protos.openapi.v1.CreateTicketRequest'
4606
+ required: true
4607
+ responses:
4608
+ '200':
4609
+ content:
4610
+ application/json:
4611
+ schema:
4612
+ $ref: '#/components/schemas/protos.openapi.v1.CreateTicketResponse'
4613
+ description: OK
4614
+ security:
4615
+ - SemgrepWebToken: []
4616
+ summary: Create Jira tickets
4617
+ tags:
4618
+ - TicketingService
4619
+ x-badges: []
4620
+ /api/v1/deployments/{deploymentSlug}/triage:
4621
+ post:
4622
+ description: Bulk triage your findings. You can select the findings to triage
4623
+ by passing in a list of finding IDs as issue_ids, or by passing in filter
4624
+ query parameters. You must specify the issue_type of the findings you want
4625
+ to bulk triage. One of new_triage_state or new_note is required. If specifying
4626
+ a new_triage_reason, you must also use new_triage_state=ignored. Some filters
4627
+ only apply for findings associated with a given product.
4628
+ operationId: TriageService_BulkTriage
4629
+ parameters:
4630
+ - in: path
4631
+ name: deploymentSlug
4632
+ required: true
4633
+ schema:
4634
+ description: Deployment slug. Can be found at /deployments, or in your Settings
4635
+ in the web UI.
4636
+ type: string
4637
+ requestBody:
4638
+ content:
4639
+ application/json:
4640
+ schema:
4641
+ $ref: '#/components/schemas/protos.openapi.v1.BulkTriageRequest'
4642
+ required: true
4643
+ responses:
4644
+ '200':
4645
+ content:
4646
+ application/json:
4647
+ schema:
4648
+ $ref: '#/components/schemas/protos.openapi.v1.BulkTriageResponse'
4649
+ description: OK
4650
+ security:
4651
+ - SemgrepWebToken: []
4652
+ summary: Bulk triage
4653
+ tags:
4654
+ - TriageService
4655
+ x-badges: []
4656
+ /api/v1/ping:
4657
+ get:
4658
+ description: Use to ping the server and assert liveness.
4659
+ operationId: MiscService_Ping
4660
+ responses:
4661
+ '200':
4662
+ content:
4663
+ application/json:
4664
+ schema:
4665
+ $ref: '#/components/schemas/protos.openapi.v1.PingResponse'
4666
+ description: OK
4667
+ summary: Ping
4668
+ tags:
4669
+ - MiscService
4670
+ x-badges: []
4671
+ tags:
4672
+ - description: Deployments encapsulate your organization's security organization,
4673
+ with multiple projects, policies, and integrations. As the root object of the
4674
+ organization, they're similarly the root object of the API.
4675
+ name: DeploymentsService
4676
+ x-displayName: Deployment
4677
+ - description: Manage and retrieve code and supply chain security findings from Semgrep
4678
+ scans
4679
+ name: FindingsService
4680
+ x-displayName: Code and Supply Chain
4681
+ - description: Utility endpoints.
4682
+ name: MiscService
4683
+ x-displayName: Other
4684
+ - description: View and manage the Policies of your organization.
4685
+ name: PoliciesService
4686
+ x-displayName: Policies
4687
+ - name: ProjectsService
4688
+ x-displayName: Projects
4689
+ - description: View details of scans associated with projects in your organization.
4690
+ name: ScansService
4691
+ x-displayName: Scans
4692
+ - description: View and manage the Secrets of your organization.
4693
+ name: SecretsService
4694
+ x-displayName: Secrets
4695
+ - description: 'Manage the Supply Chain findings and dependencies of your organization.
4696
+
4697
+
4698
+ A request body is required, but may be an empty object.'
4699
+ name: SupplyChainService
4700
+ x-displayName: Supply Chain
4701
+ - description: Create and manage external tickets
4702
+ name: TicketingService
4703
+ x-displayName: Ticketing
4704
+ - description: View and manage the triage of your organization.
4705
+ name: TriageService
4706
+ x-displayName: Triage