platforms.tsx 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660
  1. import {PlatformIntegration} from 'sentry/types';
  2. // If you update items of this list, please remember to update the "GETTING_STARTED_DOCS_PLATFORMS" list
  3. // in the 'src/sentry/models/project.py' file. This way, they'll work together correctly.
  4. // Otherwise, creating a project will cause an error in the backend, saying "Invalid platform".
  5. const platforms: PlatformIntegration[] = [
  6. {
  7. id: 'android',
  8. name: 'Android',
  9. type: 'framework',
  10. language: 'android',
  11. link: 'https://docs.sentry.io/platforms/android/',
  12. },
  13. {
  14. id: 'apple',
  15. name: 'Apple',
  16. type: 'language',
  17. language: 'apple',
  18. link: 'https://docs.sentry.io/platforms/apple/',
  19. },
  20. {
  21. id: 'apple-ios',
  22. name: 'iOS',
  23. type: 'language',
  24. language: 'apple',
  25. link: 'https://docs.sentry.io/platforms/apple/',
  26. },
  27. {
  28. id: 'apple-macos',
  29. name: 'macOS',
  30. type: 'language',
  31. language: 'apple',
  32. link: 'https://docs.sentry.io/platforms/apple/',
  33. },
  34. {
  35. id: 'bun',
  36. name: 'Bun',
  37. type: 'language',
  38. language: 'bun',
  39. link: 'https://docs.sentry.io/platforms/javascript/guides/bun/',
  40. },
  41. {
  42. id: 'capacitor',
  43. name: 'Capacitor',
  44. type: 'framework',
  45. language: 'capacitor',
  46. link: 'https://docs.sentry.io/platforms/javascript/guides/capacitor/',
  47. },
  48. {
  49. id: 'cordova',
  50. name: 'Cordova',
  51. type: 'language',
  52. language: 'cordova',
  53. link: 'https://docs.sentry.io/platforms/javascript/guides/cordova/',
  54. },
  55. {
  56. id: 'dart',
  57. name: 'Dart',
  58. type: 'framework',
  59. language: 'dart',
  60. link: 'https://docs.sentry.io/platforms/dart/',
  61. },
  62. {
  63. id: 'dotnet',
  64. name: '.NET',
  65. type: 'language',
  66. language: 'dotnet',
  67. link: 'https://docs.sentry.io/platforms/dotnet/',
  68. },
  69. {
  70. id: 'dotnet-aspnet',
  71. name: 'ASP.NET',
  72. type: 'framework',
  73. language: 'dotnet',
  74. link: 'https://docs.sentry.io/platforms/dotnet/guides/aspnet/',
  75. },
  76. {
  77. id: 'dotnet-aspnetcore',
  78. name: 'ASP.NET Core',
  79. type: 'framework',
  80. language: 'dotnet',
  81. link: 'https://docs.sentry.io/platforms/dotnet/guides/aspnetcore/',
  82. },
  83. {
  84. id: 'dotnet-awslambda',
  85. name: 'AWS Lambda (.NET)',
  86. type: 'framework',
  87. language: 'dotnet',
  88. link: 'https://docs.sentry.io/platforms/dotnet/guides/aws-lambda/',
  89. },
  90. {
  91. id: 'dotnet-gcpfunctions',
  92. name: 'Google Cloud Functions (.NET)',
  93. type: 'framework',
  94. language: 'dotnet',
  95. link: 'https://docs.sentry.io/platforms/dotnet/guides/google-cloud-functions/',
  96. },
  97. {
  98. id: 'dotnet-maui',
  99. name: 'Multi-platform App UI (MAUI)',
  100. type: 'framework',
  101. language: 'dotnet',
  102. link: 'https://docs.sentry.io/platforms/dotnet/guides/maui/',
  103. },
  104. {
  105. id: 'dotnet-uwp',
  106. name: 'UWP',
  107. type: 'framework',
  108. language: 'dotnet',
  109. link: 'https://docs.sentry.io/platforms/dotnet/guides/uwp/',
  110. },
  111. {
  112. id: 'dotnet-winforms',
  113. name: 'Windows Forms',
  114. type: 'framework',
  115. language: 'dotnet',
  116. link: 'https://docs.sentry.io/platforms/dotnet/guides/winforms/',
  117. },
  118. {
  119. id: 'dotnet-wpf',
  120. name: 'WPF',
  121. type: 'framework',
  122. language: 'dotnet',
  123. link: 'https://docs.sentry.io/platforms/dotnet/guides/wpf/',
  124. },
  125. {
  126. id: 'dotnet-xamarin',
  127. name: 'Xamarin',
  128. type: 'framework',
  129. language: 'dotnet',
  130. link: 'https://docs.sentry.io/platforms/dotnet/guides/xamarin/',
  131. },
  132. {
  133. id: 'electron',
  134. name: 'Electron',
  135. type: 'language',
  136. language: 'electron',
  137. link: 'https://docs.sentry.io/platforms/javascript/guides/electron/',
  138. },
  139. {
  140. id: 'elixir',
  141. name: 'Elixir',
  142. type: 'language',
  143. language: 'elixir',
  144. link: 'https://docs.sentry.io/platforms/elixir/',
  145. },
  146. {
  147. id: 'flutter',
  148. name: 'Flutter',
  149. type: 'framework',
  150. language: 'flutter',
  151. link: 'https://docs.sentry.io/platforms/flutter/',
  152. },
  153. {
  154. id: 'go',
  155. link: 'https://docs.sentry.io/platforms/go/',
  156. name: 'Go',
  157. type: 'language',
  158. language: 'go',
  159. },
  160. {
  161. link: 'https://docs.sentry.io/platforms/go/guides/echo/',
  162. type: 'framework',
  163. id: 'go-echo',
  164. name: 'Echo',
  165. language: 'go',
  166. },
  167. {
  168. link: 'https://docs.sentry.io/platforms/go/guides/fasthttp/',
  169. type: 'framework',
  170. id: 'go-fasthttp',
  171. name: 'FastHTTP',
  172. language: 'go',
  173. },
  174. {
  175. link: 'https://docs.sentry.io/platforms/go/guides/gin/',
  176. type: 'framework',
  177. id: 'go-gin',
  178. name: 'Gin',
  179. language: 'go',
  180. },
  181. {
  182. link: 'https://docs.sentry.io/platforms/go/guides/http/',
  183. type: 'framework',
  184. id: 'go-http',
  185. name: 'Net/Http',
  186. language: 'go',
  187. },
  188. {
  189. link: 'https://docs.sentry.io/platforms/go/guides/iris',
  190. type: 'framework',
  191. id: 'go-iris',
  192. name: 'Iris',
  193. language: 'go',
  194. },
  195. {
  196. link: 'https://docs.sentry.io/platforms/go/guides/martini/',
  197. type: 'framework',
  198. id: 'go-martini',
  199. name: 'Martini',
  200. language: 'go',
  201. },
  202. {
  203. link: 'https://docs.sentry.io/platforms/go/guides/negroni/',
  204. type: 'framework',
  205. id: 'go-negroni',
  206. name: 'Negroni',
  207. language: 'go',
  208. },
  209. {
  210. id: 'ionic',
  211. name: 'Ionic',
  212. type: 'framework',
  213. language: 'ionic',
  214. link: 'https://docs.sentry.io/platforms/javascript/guides/capacitor/',
  215. },
  216. {
  217. id: 'java',
  218. name: 'Java',
  219. type: 'language',
  220. language: 'java',
  221. link: 'https://docs.sentry.io/platforms/java/',
  222. },
  223. {
  224. id: 'java-log4j2',
  225. name: 'Log4j 2.x',
  226. type: 'framework',
  227. language: 'java',
  228. link: 'https://docs.sentry.io/platforms/java/guides/log4j2/',
  229. },
  230. {
  231. id: 'java-logback',
  232. name: 'Logback',
  233. type: 'framework',
  234. language: 'java',
  235. link: 'https://docs.sentry.io/platforms/java/guides/logback/',
  236. },
  237. {
  238. id: 'java-spring',
  239. name: 'Spring',
  240. type: 'framework',
  241. language: 'java',
  242. link: 'https://https://docs.sentry.io/platforms/java/guides/spring/',
  243. },
  244. {
  245. id: 'java-spring-boot',
  246. name: 'Spring Boot',
  247. type: 'framework',
  248. language: 'java',
  249. link: 'https://docs.sentry.io/platforms/java/guides/spring-boot/',
  250. },
  251. {
  252. id: 'javascript',
  253. name: 'Browser JavaScript',
  254. type: 'language',
  255. language: 'javascript',
  256. link: 'https://docs.sentry.io/platforms/javascript/',
  257. },
  258. {
  259. id: 'javascript-angular',
  260. name: 'Angular',
  261. type: 'framework',
  262. language: 'javascript',
  263. link: 'https://docs.sentry.io/platforms/javascript/guides/angular/',
  264. },
  265. // TODO: comment back in when we have a getting-started page for Astro
  266. // {
  267. // id: 'javascript-astro',
  268. // name: 'Astro',
  269. // type: 'framework',
  270. // language: 'javascript',
  271. // link: 'https://docs.sentry.io/platforms/javascript/guides/astro/',
  272. // },
  273. {
  274. id: 'javascript-ember',
  275. name: 'Ember',
  276. type: 'framework',
  277. language: 'javascript',
  278. link: 'https://docs.sentry.io/platforms/javascript/guides/ember/',
  279. },
  280. {
  281. id: 'javascript-gatsby',
  282. name: 'Gatsby',
  283. type: 'framework',
  284. language: 'javascript',
  285. link: 'https://docs.sentry.io/platforms/javascript/guides/gatsby/',
  286. },
  287. {
  288. id: 'javascript-nextjs',
  289. name: 'Next.js',
  290. type: 'framework',
  291. language: 'javascript',
  292. link: 'https://docs.sentry.io/platforms/javascript/guides/nextjs/',
  293. },
  294. {
  295. id: 'javascript-react',
  296. name: 'React',
  297. type: 'framework',
  298. language: 'javascript',
  299. link: 'https://docs.sentry.io/platforms/javascript/guides/react/',
  300. },
  301. {
  302. id: 'javascript-remix',
  303. name: 'Remix',
  304. type: 'framework',
  305. language: 'javascript',
  306. link: 'https://docs.sentry.io/platforms/javascript/guides/remix/',
  307. },
  308. {
  309. id: 'javascript-svelte',
  310. name: 'Svelte',
  311. type: 'framework',
  312. language: 'javascript',
  313. link: 'https://docs.sentry.io/platforms/javascript/guides/svelte/',
  314. },
  315. {
  316. id: 'javascript-sveltekit',
  317. name: 'SvelteKit',
  318. type: 'framework',
  319. language: 'javascript',
  320. link: 'https://docs.sentry.io/platforms/javascript/guides/sveltekit/',
  321. },
  322. {
  323. id: 'javascript-vue',
  324. name: 'Vue',
  325. type: 'framework',
  326. language: 'javascript',
  327. link: 'https://docs.sentry.io/platforms/javascript/guides/vue/',
  328. },
  329. {
  330. id: 'kotlin',
  331. name: 'Kotlin',
  332. type: 'language',
  333. language: 'kotlin',
  334. link: 'https://docs.sentry.io/platforms/kotlin/',
  335. },
  336. {
  337. id: 'minidump',
  338. name: 'Minidump',
  339. type: 'framework',
  340. language: 'minidump',
  341. link: 'https://docs.sentry.io/platforms/native/minidump/',
  342. },
  343. {
  344. id: 'native',
  345. name: 'Native',
  346. type: 'language',
  347. language: 'native',
  348. link: 'https://docs.sentry.io/platforms/native/',
  349. },
  350. {
  351. id: 'native-qt',
  352. name: 'Qt',
  353. type: 'framework',
  354. language: 'native',
  355. link: 'https://docs.sentry.io/platforms/native/guides/qt/',
  356. },
  357. {
  358. id: 'node',
  359. name: 'Node.js',
  360. type: 'language',
  361. language: 'node',
  362. link: 'https://docs.sentry.io/platforms/node/',
  363. },
  364. {
  365. id: 'node-awslambda',
  366. name: 'AWS Lambda (Node)',
  367. type: 'framework',
  368. language: 'node',
  369. link: 'https://docs.sentry.io/platforms/node/guides/aws-lambda/',
  370. },
  371. {
  372. id: 'node-azurefunctions',
  373. name: 'Azure Functions (Node)',
  374. type: 'framework',
  375. language: 'node',
  376. link: 'https://docs.sentry.io/platforms/node/guides/azure-functions/',
  377. },
  378. {
  379. id: 'node-connect',
  380. name: 'Connect',
  381. type: 'framework',
  382. language: 'node',
  383. link: 'https://docs.sentry.io/platforms/node/guides/connect/',
  384. },
  385. {
  386. id: 'node-express',
  387. name: 'Express',
  388. type: 'framework',
  389. language: 'node',
  390. link: 'https://docs.sentry.io/platforms/node/guides/express/',
  391. },
  392. {
  393. id: 'node-gcpfunctions',
  394. name: 'Google Cloud Functions (Node)',
  395. type: 'framework',
  396. language: 'node',
  397. link: 'https://docs.sentry.io/platforms/node/guides/gcp-functions/',
  398. },
  399. {
  400. id: 'node-koa',
  401. name: 'Koa',
  402. type: 'framework',
  403. language: 'node',
  404. link: 'https://docs.sentry.io/platforms/node/guides/koa/',
  405. },
  406. {
  407. id: 'node-serverlesscloud',
  408. name: 'Serverless (Node)',
  409. type: 'framework',
  410. language: 'node',
  411. link: 'https://docs.sentry.io/platforms/node/guides/serverless-cloud/',
  412. },
  413. {
  414. id: 'php',
  415. name: 'PHP',
  416. type: 'language',
  417. language: 'php',
  418. link: 'https://docs.sentry.io/platforms/php/',
  419. },
  420. {
  421. id: 'php-laravel',
  422. name: 'Laravel',
  423. type: 'framework',
  424. language: 'php',
  425. link: 'https://docs.sentry.io/platforms/php/guides/laravel/',
  426. },
  427. {
  428. id: 'php-symfony',
  429. name: 'Symfony',
  430. type: 'framework',
  431. language: 'php',
  432. link: 'https://docs.sentry.io/platforms/php/guides/symfony/',
  433. },
  434. {
  435. id: 'python',
  436. name: 'Python',
  437. type: 'language',
  438. language: 'python',
  439. link: 'https://docs.sentry.io/platforms/python/',
  440. },
  441. {
  442. id: 'python-aiohttp',
  443. name: 'AIOHTTP',
  444. type: 'framework',
  445. language: 'python',
  446. link: 'https://docs.sentry.io/platforms/python/guides/aiohttp/',
  447. },
  448. {
  449. id: 'python-asgi',
  450. name: 'ASGI',
  451. type: 'framework',
  452. language: 'python',
  453. link: 'https://docs.sentry.io/platforms/python/guides/asgi/',
  454. },
  455. {
  456. id: 'python-awslambda',
  457. name: 'AWS Lambda (Python)',
  458. type: 'framework',
  459. language: 'python',
  460. link: 'https://docs.sentry.io/platforms/python/guides/aws-lambda/',
  461. },
  462. {
  463. id: 'python-bottle',
  464. name: 'Bottle',
  465. type: 'framework',
  466. language: 'python',
  467. link: 'https://docs.sentry.io/platforms/python/guides/bottle/',
  468. },
  469. {
  470. id: 'python-celery',
  471. name: 'Celery',
  472. type: 'library',
  473. language: 'python',
  474. link: 'https://docs.sentry.io/platforms/python/guides/celery/',
  475. },
  476. {
  477. id: 'python-chalice',
  478. name: 'Chalice',
  479. type: 'framework',
  480. language: 'python',
  481. link: 'https://docs.sentry.io/platforms/python/guides/chalice/',
  482. },
  483. {
  484. id: 'python-django',
  485. name: 'Django',
  486. type: 'framework',
  487. language: 'python',
  488. link: 'https://docs.sentry.io/platforms/python/guides/django/',
  489. },
  490. {
  491. id: 'python-falcon',
  492. name: 'Falcon',
  493. type: 'framework',
  494. language: 'python',
  495. link: 'https://docs.sentry.io/platforms/python/guides/falcon/',
  496. },
  497. {
  498. id: 'python-fastapi',
  499. name: 'FastAPI',
  500. type: 'framework',
  501. language: 'python',
  502. link: 'https://docs.sentry.io/platforms/python/guides/fastapi/',
  503. },
  504. {
  505. id: 'python-flask',
  506. name: 'Flask',
  507. type: 'framework',
  508. language: 'python',
  509. link: 'https://docs.sentry.io/platforms/python/guides/flask/',
  510. },
  511. {
  512. id: 'python-gcpfunctions',
  513. name: 'Google Cloud Functions (Python)',
  514. type: 'framework',
  515. language: 'python',
  516. link: 'https://docs.sentry.io/platforms/python/guides/gcp-functions/',
  517. },
  518. {
  519. id: 'python-pylons',
  520. name: 'Pylons',
  521. type: 'framework',
  522. language: 'python',
  523. link: 'https://docs.sentry.io/platforms/python/legacy-sdk/integrations/pylons/',
  524. },
  525. {
  526. id: 'python-pymongo',
  527. name: 'PyMongo',
  528. type: 'library',
  529. language: 'python',
  530. link: 'https://docs.sentry.io/platforms/python/guides/pymongo/',
  531. },
  532. {
  533. id: 'python-pyramid',
  534. name: 'Pyramid',
  535. type: 'framework',
  536. language: 'python',
  537. link: 'https://docs.sentry.io/platforms/python/pyramid/',
  538. },
  539. {
  540. id: 'python-quart',
  541. name: 'Quart',
  542. type: 'framework',
  543. language: 'python',
  544. link: 'https://docs.sentry.io/platforms/python/guides/quart/',
  545. },
  546. {
  547. id: 'python-rq',
  548. name: 'RQ (Redis Queue)',
  549. type: 'library',
  550. language: 'python',
  551. link: 'https://docs.sentry.io/platforms/python/guides/rq/',
  552. },
  553. {
  554. id: 'python-sanic',
  555. name: 'Sanic',
  556. type: 'framework',
  557. language: 'python',
  558. link: 'https://docs.sentry.io/platforms/python/guides/sanic/',
  559. },
  560. {
  561. id: 'python-serverless',
  562. name: 'Serverless',
  563. type: 'framework',
  564. language: 'python',
  565. link: 'https://docs.sentry.io/platforms/python/guides/serverless/',
  566. },
  567. {
  568. id: 'python-starlette',
  569. name: 'Starlette',
  570. type: 'framework',
  571. language: 'python',
  572. link: 'https://docs.sentry.io/platforms/python/guides/starlette/',
  573. },
  574. {
  575. id: 'python-tornado',
  576. name: 'Tornado',
  577. type: 'framework',
  578. language: 'python',
  579. link: 'https://docs.sentry.io/platforms/python/guides/tornado/',
  580. },
  581. {
  582. id: 'python-tryton',
  583. name: 'Tryton',
  584. type: 'framework',
  585. language: 'python',
  586. link: 'https://docs.sentry.io/platforms/python/guides/tryton/',
  587. },
  588. {
  589. id: 'python-wsgi',
  590. name: 'WSGI',
  591. type: 'framework',
  592. language: 'python',
  593. link: 'https://docs.sentry.io/platforms/python/guides/wsgi/',
  594. },
  595. {
  596. id: 'react-native',
  597. name: 'React Native',
  598. type: 'language',
  599. language: 'react-native',
  600. link: 'https://docs.sentry.io/platforms/react-native/',
  601. },
  602. {
  603. id: 'ruby',
  604. name: 'Ruby',
  605. type: 'language',
  606. language: 'ruby',
  607. link: 'https://docs.sentry.io/platforms/ruby/',
  608. },
  609. {
  610. id: 'ruby-rack',
  611. name: 'Rack Middleware',
  612. type: 'framework',
  613. language: 'ruby',
  614. link: 'https://docs.sentry.io/platforms/ruby/guides/rack/',
  615. },
  616. {
  617. id: 'ruby-rails',
  618. name: 'Rails',
  619. type: 'framework',
  620. language: 'ruby',
  621. link: 'https://docs.sentry.io/platforms/ruby/guides/rails/',
  622. },
  623. {
  624. id: 'rust',
  625. name: 'Rust',
  626. type: 'language',
  627. language: 'rust',
  628. link: 'https://docs.sentry.io/platforms/rust/',
  629. },
  630. {
  631. id: 'unity',
  632. name: 'Unity',
  633. type: 'framework',
  634. language: 'unity',
  635. link: 'https://docs.sentry.io/platforms/unity/',
  636. },
  637. {
  638. id: 'unreal',
  639. name: 'Unreal Engine',
  640. type: 'framework',
  641. language: 'unreal',
  642. link: 'https://docs.sentry.io/platforms/unreal/',
  643. },
  644. ];
  645. export const otherPlatform: PlatformIntegration = {
  646. id: 'other',
  647. name: 'Other',
  648. type: 'language',
  649. language: 'other',
  650. link: 'https://docs.sentry.io/platforms/',
  651. };
  652. /**
  653. * Array of all platforms that are displayed in the project creation flow.
  654. */
  655. const allPlatforms = [...platforms, otherPlatform];
  656. export default allPlatforms;