platforms.tsx 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666
  1. import type {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. export 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://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. {
  266. id: 'javascript-astro',
  267. name: 'Astro',
  268. type: 'framework',
  269. language: 'javascript',
  270. link: 'https://docs.sentry.io/platforms/javascript/guides/astro/',
  271. },
  272. {
  273. id: 'javascript-ember',
  274. name: 'Ember',
  275. type: 'framework',
  276. language: 'javascript',
  277. link: 'https://docs.sentry.io/platforms/javascript/guides/ember/',
  278. },
  279. {
  280. id: 'javascript-gatsby',
  281. name: 'Gatsby',
  282. type: 'framework',
  283. language: 'javascript',
  284. link: 'https://docs.sentry.io/platforms/javascript/guides/gatsby/',
  285. },
  286. {
  287. id: 'javascript-nextjs',
  288. name: 'Next.js',
  289. type: 'framework',
  290. language: 'javascript',
  291. link: 'https://docs.sentry.io/platforms/javascript/guides/nextjs/',
  292. },
  293. {
  294. id: 'javascript-react',
  295. name: 'React',
  296. type: 'framework',
  297. language: 'javascript',
  298. link: 'https://docs.sentry.io/platforms/javascript/guides/react/',
  299. },
  300. {
  301. id: 'javascript-remix',
  302. name: 'Remix',
  303. type: 'framework',
  304. language: 'javascript',
  305. link: 'https://docs.sentry.io/platforms/javascript/guides/remix/',
  306. },
  307. {
  308. id: 'javascript-svelte',
  309. name: 'Svelte',
  310. type: 'framework',
  311. language: 'javascript',
  312. link: 'https://docs.sentry.io/platforms/javascript/guides/svelte/',
  313. },
  314. {
  315. id: 'javascript-sveltekit',
  316. name: 'SvelteKit',
  317. type: 'framework',
  318. language: 'javascript',
  319. link: 'https://docs.sentry.io/platforms/javascript/guides/sveltekit/',
  320. },
  321. {
  322. id: 'javascript-vue',
  323. name: 'Vue',
  324. type: 'framework',
  325. language: 'javascript',
  326. link: 'https://docs.sentry.io/platforms/javascript/guides/vue/',
  327. },
  328. {
  329. id: 'kotlin',
  330. name: 'Kotlin',
  331. type: 'language',
  332. language: 'kotlin',
  333. link: 'https://docs.sentry.io/platforms/kotlin/',
  334. },
  335. {
  336. id: 'minidump',
  337. name: 'Minidump',
  338. type: 'framework',
  339. language: 'minidump',
  340. link: 'https://docs.sentry.io/platforms/native/minidump/',
  341. },
  342. {
  343. id: 'native',
  344. name: 'Native',
  345. type: 'language',
  346. language: 'native',
  347. link: 'https://docs.sentry.io/platforms/native/',
  348. },
  349. {
  350. id: 'native-qt',
  351. name: 'Qt',
  352. type: 'framework',
  353. language: 'native',
  354. link: 'https://docs.sentry.io/platforms/native/guides/qt/',
  355. },
  356. {
  357. id: 'nintendo-switch',
  358. name: 'Nintendo Switch',
  359. type: 'framework',
  360. language: 'native',
  361. link: 'https://docs.sentry.io/platforms/nintendo-switch/',
  362. },
  363. {
  364. id: 'node',
  365. name: 'Node.js',
  366. type: 'language',
  367. language: 'node',
  368. link: 'https://docs.sentry.io/platforms/node/',
  369. },
  370. {
  371. id: 'node-awslambda',
  372. name: 'AWS Lambda (Node)',
  373. type: 'framework',
  374. language: 'node',
  375. link: 'https://docs.sentry.io/platforms/node/guides/aws-lambda/',
  376. },
  377. {
  378. id: 'node-azurefunctions',
  379. name: 'Azure Functions (Node)',
  380. type: 'framework',
  381. language: 'node',
  382. link: 'https://docs.sentry.io/platforms/node/guides/azure-functions/',
  383. },
  384. {
  385. id: 'node-connect',
  386. name: 'Connect',
  387. type: 'framework',
  388. language: 'node',
  389. link: 'https://docs.sentry.io/platforms/node/guides/connect/',
  390. },
  391. {
  392. id: 'node-express',
  393. name: 'Express',
  394. type: 'framework',
  395. language: 'node',
  396. link: 'https://docs.sentry.io/platforms/node/guides/express/',
  397. },
  398. {
  399. id: 'node-gcpfunctions',
  400. name: 'Google Cloud Functions (Node)',
  401. type: 'framework',
  402. language: 'node',
  403. link: 'https://docs.sentry.io/platforms/node/guides/gcp-functions/',
  404. },
  405. {
  406. id: 'node-koa',
  407. name: 'Koa',
  408. type: 'framework',
  409. language: 'node',
  410. link: 'https://docs.sentry.io/platforms/node/guides/koa/',
  411. },
  412. {
  413. id: 'node-serverlesscloud',
  414. name: 'Serverless (Node)',
  415. type: 'framework',
  416. language: 'node',
  417. link: 'https://docs.sentry.io/platforms/node/guides/serverless-cloud/',
  418. },
  419. {
  420. id: 'php',
  421. name: 'PHP',
  422. type: 'language',
  423. language: 'php',
  424. link: 'https://docs.sentry.io/platforms/php/',
  425. },
  426. {
  427. id: 'php-laravel',
  428. name: 'Laravel',
  429. type: 'framework',
  430. language: 'php',
  431. link: 'https://docs.sentry.io/platforms/php/guides/laravel/',
  432. },
  433. {
  434. id: 'php-symfony',
  435. name: 'Symfony',
  436. type: 'framework',
  437. language: 'php',
  438. link: 'https://docs.sentry.io/platforms/php/guides/symfony/',
  439. },
  440. {
  441. id: 'python',
  442. name: 'Python',
  443. type: 'language',
  444. language: 'python',
  445. link: 'https://docs.sentry.io/platforms/python/',
  446. },
  447. {
  448. id: 'python-aiohttp',
  449. name: 'AIOHTTP',
  450. type: 'framework',
  451. language: 'python',
  452. link: 'https://docs.sentry.io/platforms/python/guides/aiohttp/',
  453. },
  454. {
  455. id: 'python-asgi',
  456. name: 'ASGI',
  457. type: 'framework',
  458. language: 'python',
  459. link: 'https://docs.sentry.io/platforms/python/guides/asgi/',
  460. },
  461. {
  462. id: 'python-awslambda',
  463. name: 'AWS Lambda (Python)',
  464. type: 'framework',
  465. language: 'python',
  466. link: 'https://docs.sentry.io/platforms/python/guides/aws-lambda/',
  467. },
  468. {
  469. id: 'python-bottle',
  470. name: 'Bottle',
  471. type: 'framework',
  472. language: 'python',
  473. link: 'https://docs.sentry.io/platforms/python/guides/bottle/',
  474. },
  475. {
  476. id: 'python-celery',
  477. name: 'Celery',
  478. type: 'library',
  479. language: 'python',
  480. link: 'https://docs.sentry.io/platforms/python/guides/celery/',
  481. },
  482. {
  483. id: 'python-chalice',
  484. name: 'Chalice',
  485. type: 'framework',
  486. language: 'python',
  487. link: 'https://docs.sentry.io/platforms/python/guides/chalice/',
  488. },
  489. {
  490. id: 'python-django',
  491. name: 'Django',
  492. type: 'framework',
  493. language: 'python',
  494. link: 'https://docs.sentry.io/platforms/python/guides/django/',
  495. },
  496. {
  497. id: 'python-falcon',
  498. name: 'Falcon',
  499. type: 'framework',
  500. language: 'python',
  501. link: 'https://docs.sentry.io/platforms/python/guides/falcon/',
  502. },
  503. {
  504. id: 'python-fastapi',
  505. name: 'FastAPI',
  506. type: 'framework',
  507. language: 'python',
  508. link: 'https://docs.sentry.io/platforms/python/guides/fastapi/',
  509. },
  510. {
  511. id: 'python-flask',
  512. name: 'Flask',
  513. type: 'framework',
  514. language: 'python',
  515. link: 'https://docs.sentry.io/platforms/python/guides/flask/',
  516. },
  517. {
  518. id: 'python-gcpfunctions',
  519. name: 'Google Cloud Functions (Python)',
  520. type: 'framework',
  521. language: 'python',
  522. link: 'https://docs.sentry.io/platforms/python/guides/gcp-functions/',
  523. },
  524. {
  525. id: 'python-pylons',
  526. name: 'Pylons',
  527. type: 'framework',
  528. language: 'python',
  529. link: 'https://docs.sentry.io/platforms/python/legacy-sdk/integrations/pylons/',
  530. },
  531. {
  532. id: 'python-pymongo',
  533. name: 'PyMongo',
  534. type: 'library',
  535. language: 'python',
  536. link: 'https://docs.sentry.io/platforms/python/guides/pymongo/',
  537. },
  538. {
  539. id: 'python-pyramid',
  540. name: 'Pyramid',
  541. type: 'framework',
  542. language: 'python',
  543. link: 'https://docs.sentry.io/platforms/python/pyramid/',
  544. },
  545. {
  546. id: 'python-quart',
  547. name: 'Quart',
  548. type: 'framework',
  549. language: 'python',
  550. link: 'https://docs.sentry.io/platforms/python/guides/quart/',
  551. },
  552. {
  553. id: 'python-rq',
  554. name: 'RQ (Redis Queue)',
  555. type: 'library',
  556. language: 'python',
  557. link: 'https://docs.sentry.io/platforms/python/guides/rq/',
  558. },
  559. {
  560. id: 'python-sanic',
  561. name: 'Sanic',
  562. type: 'framework',
  563. language: 'python',
  564. link: 'https://docs.sentry.io/platforms/python/guides/sanic/',
  565. },
  566. {
  567. id: 'python-serverless',
  568. name: 'Serverless (Python)',
  569. type: 'framework',
  570. language: 'python',
  571. link: 'https://docs.sentry.io/platforms/python/guides/serverless/',
  572. },
  573. {
  574. id: 'python-starlette',
  575. name: 'Starlette',
  576. type: 'framework',
  577. language: 'python',
  578. link: 'https://docs.sentry.io/platforms/python/guides/starlette/',
  579. },
  580. {
  581. id: 'python-tornado',
  582. name: 'Tornado',
  583. type: 'framework',
  584. language: 'python',
  585. link: 'https://docs.sentry.io/platforms/python/guides/tornado/',
  586. },
  587. {
  588. id: 'python-tryton',
  589. name: 'Tryton',
  590. type: 'framework',
  591. language: 'python',
  592. link: 'https://docs.sentry.io/platforms/python/guides/tryton/',
  593. },
  594. {
  595. id: 'python-wsgi',
  596. name: 'WSGI',
  597. type: 'framework',
  598. language: 'python',
  599. link: 'https://docs.sentry.io/platforms/python/guides/wsgi/',
  600. },
  601. {
  602. id: 'react-native',
  603. name: 'React Native',
  604. type: 'language',
  605. language: 'react-native',
  606. link: 'https://docs.sentry.io/platforms/react-native/',
  607. },
  608. {
  609. id: 'ruby',
  610. name: 'Ruby',
  611. type: 'language',
  612. language: 'ruby',
  613. link: 'https://docs.sentry.io/platforms/ruby/',
  614. },
  615. {
  616. id: 'ruby-rack',
  617. name: 'Rack Middleware',
  618. type: 'framework',
  619. language: 'ruby',
  620. link: 'https://docs.sentry.io/platforms/ruby/guides/rack/',
  621. },
  622. {
  623. id: 'ruby-rails',
  624. name: 'Rails',
  625. type: 'framework',
  626. language: 'ruby',
  627. link: 'https://docs.sentry.io/platforms/ruby/guides/rails/',
  628. },
  629. {
  630. id: 'rust',
  631. name: 'Rust',
  632. type: 'language',
  633. language: 'rust',
  634. link: 'https://docs.sentry.io/platforms/rust/',
  635. },
  636. {
  637. id: 'unity',
  638. name: 'Unity',
  639. type: 'framework',
  640. language: 'unity',
  641. link: 'https://docs.sentry.io/platforms/unity/',
  642. },
  643. {
  644. id: 'unreal',
  645. name: 'Unreal Engine',
  646. type: 'framework',
  647. language: 'unreal',
  648. link: 'https://docs.sentry.io/platforms/unreal/',
  649. },
  650. ];
  651. export const otherPlatform: PlatformIntegration = {
  652. id: 'other',
  653. name: 'Other',
  654. type: 'language',
  655. language: 'other',
  656. link: 'https://docs.sentry.io/platforms/',
  657. };
  658. /**
  659. * Array of all platforms that are displayed in the project creation flow.
  660. */
  661. const allPlatforms = [...platforms, otherPlatform];
  662. export default allPlatforms;