platforms.tsx 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667
  1. import type {PlatformIntegration} from 'sentry/types/project';
  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/javascript/guides/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/javascript/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/javascript/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/javascript/guides/connect/',
  390. },
  391. {
  392. id: 'node-express',
  393. name: 'Express',
  394. type: 'framework',
  395. language: 'node',
  396. link: 'https://docs.sentry.io/platforms/javascript/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/javascript/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/javascript/guides/koa/',
  411. },
  412. {
  413. // this isn't supported anymore, not in docs, nor in project selector
  414. id: 'node-serverlesscloud',
  415. name: 'Serverless (Node)',
  416. type: 'framework',
  417. language: 'node',
  418. link: 'https://docs.sentry.io/platforms/javascript/guides/serverless-cloud/',
  419. },
  420. {
  421. id: 'php',
  422. name: 'PHP',
  423. type: 'language',
  424. language: 'php',
  425. link: 'https://docs.sentry.io/platforms/php/',
  426. },
  427. {
  428. id: 'php-laravel',
  429. name: 'Laravel',
  430. type: 'framework',
  431. language: 'php',
  432. link: 'https://docs.sentry.io/platforms/php/guides/laravel/',
  433. },
  434. {
  435. id: 'php-symfony',
  436. name: 'Symfony',
  437. type: 'framework',
  438. language: 'php',
  439. link: 'https://docs.sentry.io/platforms/php/guides/symfony/',
  440. },
  441. {
  442. id: 'python',
  443. name: 'Python',
  444. type: 'language',
  445. language: 'python',
  446. link: 'https://docs.sentry.io/platforms/python/',
  447. },
  448. {
  449. id: 'python-aiohttp',
  450. name: 'AIOHTTP',
  451. type: 'framework',
  452. language: 'python',
  453. link: 'https://docs.sentry.io/platforms/python/guides/aiohttp/',
  454. },
  455. {
  456. id: 'python-asgi',
  457. name: 'ASGI',
  458. type: 'framework',
  459. language: 'python',
  460. link: 'https://docs.sentry.io/platforms/python/guides/asgi/',
  461. },
  462. {
  463. id: 'python-awslambda',
  464. name: 'AWS Lambda (Python)',
  465. type: 'framework',
  466. language: 'python',
  467. link: 'https://docs.sentry.io/platforms/python/guides/aws-lambda/',
  468. },
  469. {
  470. id: 'python-bottle',
  471. name: 'Bottle',
  472. type: 'framework',
  473. language: 'python',
  474. link: 'https://docs.sentry.io/platforms/python/guides/bottle/',
  475. },
  476. {
  477. id: 'python-celery',
  478. name: 'Celery',
  479. type: 'library',
  480. language: 'python',
  481. link: 'https://docs.sentry.io/platforms/python/guides/celery/',
  482. },
  483. {
  484. id: 'python-chalice',
  485. name: 'Chalice',
  486. type: 'framework',
  487. language: 'python',
  488. link: 'https://docs.sentry.io/platforms/python/guides/chalice/',
  489. },
  490. {
  491. id: 'python-django',
  492. name: 'Django',
  493. type: 'framework',
  494. language: 'python',
  495. link: 'https://docs.sentry.io/platforms/python/guides/django/',
  496. },
  497. {
  498. id: 'python-falcon',
  499. name: 'Falcon',
  500. type: 'framework',
  501. language: 'python',
  502. link: 'https://docs.sentry.io/platforms/python/guides/falcon/',
  503. },
  504. {
  505. id: 'python-fastapi',
  506. name: 'FastAPI',
  507. type: 'framework',
  508. language: 'python',
  509. link: 'https://docs.sentry.io/platforms/python/guides/fastapi/',
  510. },
  511. {
  512. id: 'python-flask',
  513. name: 'Flask',
  514. type: 'framework',
  515. language: 'python',
  516. link: 'https://docs.sentry.io/platforms/python/guides/flask/',
  517. },
  518. {
  519. id: 'python-gcpfunctions',
  520. name: 'Google Cloud Functions (Python)',
  521. type: 'framework',
  522. language: 'python',
  523. link: 'https://docs.sentry.io/platforms/python/guides/gcp-functions/',
  524. },
  525. {
  526. id: 'python-pylons',
  527. name: 'Pylons',
  528. type: 'framework',
  529. language: 'python',
  530. link: 'https://docs.sentry.io/platforms/python/legacy-sdk/integrations/pylons/',
  531. },
  532. {
  533. id: 'python-pymongo',
  534. name: 'PyMongo',
  535. type: 'library',
  536. language: 'python',
  537. link: 'https://docs.sentry.io/platforms/python/guides/pymongo/',
  538. },
  539. {
  540. id: 'python-pyramid',
  541. name: 'Pyramid',
  542. type: 'framework',
  543. language: 'python',
  544. link: 'https://docs.sentry.io/platforms/python/pyramid/',
  545. },
  546. {
  547. id: 'python-quart',
  548. name: 'Quart',
  549. type: 'framework',
  550. language: 'python',
  551. link: 'https://docs.sentry.io/platforms/python/guides/quart/',
  552. },
  553. {
  554. id: 'python-rq',
  555. name: 'RQ (Redis Queue)',
  556. type: 'library',
  557. language: 'python',
  558. link: 'https://docs.sentry.io/platforms/python/guides/rq/',
  559. },
  560. {
  561. id: 'python-sanic',
  562. name: 'Sanic',
  563. type: 'framework',
  564. language: 'python',
  565. link: 'https://docs.sentry.io/platforms/python/guides/sanic/',
  566. },
  567. {
  568. id: 'python-serverless',
  569. name: 'Serverless (Python)',
  570. type: 'framework',
  571. language: 'python',
  572. link: 'https://docs.sentry.io/platforms/python/guides/serverless/',
  573. },
  574. {
  575. id: 'python-starlette',
  576. name: 'Starlette',
  577. type: 'framework',
  578. language: 'python',
  579. link: 'https://docs.sentry.io/platforms/python/guides/starlette/',
  580. },
  581. {
  582. id: 'python-tornado',
  583. name: 'Tornado',
  584. type: 'framework',
  585. language: 'python',
  586. link: 'https://docs.sentry.io/platforms/python/guides/tornado/',
  587. },
  588. {
  589. id: 'python-tryton',
  590. name: 'Tryton',
  591. type: 'framework',
  592. language: 'python',
  593. link: 'https://docs.sentry.io/platforms/python/guides/tryton/',
  594. },
  595. {
  596. id: 'python-wsgi',
  597. name: 'WSGI',
  598. type: 'framework',
  599. language: 'python',
  600. link: 'https://docs.sentry.io/platforms/python/guides/wsgi/',
  601. },
  602. {
  603. id: 'react-native',
  604. name: 'React Native',
  605. type: 'language',
  606. language: 'react-native',
  607. link: 'https://docs.sentry.io/platforms/react-native/',
  608. },
  609. {
  610. id: 'ruby',
  611. name: 'Ruby',
  612. type: 'language',
  613. language: 'ruby',
  614. link: 'https://docs.sentry.io/platforms/ruby/',
  615. },
  616. {
  617. id: 'ruby-rack',
  618. name: 'Rack Middleware',
  619. type: 'framework',
  620. language: 'ruby',
  621. link: 'https://docs.sentry.io/platforms/ruby/guides/rack/',
  622. },
  623. {
  624. id: 'ruby-rails',
  625. name: 'Rails',
  626. type: 'framework',
  627. language: 'ruby',
  628. link: 'https://docs.sentry.io/platforms/ruby/guides/rails/',
  629. },
  630. {
  631. id: 'rust',
  632. name: 'Rust',
  633. type: 'language',
  634. language: 'rust',
  635. link: 'https://docs.sentry.io/platforms/rust/',
  636. },
  637. {
  638. id: 'unity',
  639. name: 'Unity',
  640. type: 'framework',
  641. language: 'unity',
  642. link: 'https://docs.sentry.io/platforms/unity/',
  643. },
  644. {
  645. id: 'unreal',
  646. name: 'Unreal Engine',
  647. type: 'framework',
  648. language: 'unreal',
  649. link: 'https://docs.sentry.io/platforms/unreal/',
  650. },
  651. ];
  652. export const otherPlatform: PlatformIntegration = {
  653. id: 'other',
  654. name: 'Other',
  655. type: 'language',
  656. language: 'other',
  657. link: 'https://docs.sentry.io/platforms/',
  658. };
  659. /**
  660. * Array of all platforms that are displayed in the project creation flow.
  661. */
  662. const allPlatforms = [...platforms, otherPlatform];
  663. export default allPlatforms;