navigationConfiguration.tsx 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. import FeatureBadge from 'sentry/components/featureBadge';
  2. import {t} from 'sentry/locale';
  3. import type {NavigationSection} from 'sentry/views/settings/types';
  4. const pathPrefix = '/settings/:orgId';
  5. const organizationNavigation: NavigationSection[] = [
  6. {
  7. name: t('Organization'),
  8. items: [
  9. {
  10. path: `${pathPrefix}/`,
  11. title: t('General Settings'),
  12. index: true,
  13. description: t('Configure general settings for an organization'),
  14. id: 'general',
  15. },
  16. {
  17. path: `${pathPrefix}/projects/`,
  18. title: t('Projects'),
  19. description: t("View and manage an organization's projects"),
  20. id: 'projects',
  21. },
  22. {
  23. path: `${pathPrefix}/teams/`,
  24. title: t('Teams'),
  25. description: t("Manage an organization's teams"),
  26. id: 'teams',
  27. },
  28. {
  29. path: `${pathPrefix}/members/`,
  30. title: t('Members'),
  31. show: ({access}) => access!.has('member:read'),
  32. description: t('Manage user membership for an organization'),
  33. id: 'members',
  34. },
  35. {
  36. path: `${pathPrefix}/security-and-privacy/`,
  37. title: t('Security & Privacy'),
  38. description: t(
  39. 'Configuration related to dealing with sensitive data and other security settings. (Data Scrubbing, Data Privacy, Data Scrubbing)'
  40. ),
  41. id: 'security-and-privacy',
  42. },
  43. {
  44. path: `${pathPrefix}/auth/`,
  45. title: t('Auth'),
  46. description: t('Configure single sign-on'),
  47. id: 'sso',
  48. },
  49. {
  50. path: `${pathPrefix}/api-keys/`,
  51. title: t('API Keys'),
  52. show: ({access, features}) =>
  53. features!.has('api-keys') && access!.has('org:admin'),
  54. id: 'api-keys',
  55. },
  56. {
  57. path: `${pathPrefix}/audit-log/`,
  58. title: t('Audit Log'),
  59. show: ({access}) => access!.has('org:write'),
  60. description: t('View the audit log for an organization'),
  61. id: 'audit-log',
  62. },
  63. {
  64. path: `${pathPrefix}/rate-limits/`,
  65. title: t('Rate Limits'),
  66. show: ({access, features}) =>
  67. features!.has('legacy-rate-limits') && access!.has('org:write'),
  68. description: t('Configure rate limits for all projects in the organization'),
  69. id: 'rate-limits',
  70. },
  71. {
  72. path: `${pathPrefix}/relay/`,
  73. title: t('Relay'),
  74. description: t('Manage relays connected to the organization'),
  75. id: 'relay',
  76. },
  77. {
  78. path: `${pathPrefix}/repos/`,
  79. title: t('Repositories'),
  80. description: t('Manage repositories connected to the organization'),
  81. id: 'repos',
  82. },
  83. {
  84. path: `${pathPrefix}/integrations/`,
  85. title: t('Integrations'),
  86. description: t(
  87. 'Manage organization-level integrations, including: Slack, Github, Bitbucket, Jira, and Azure DevOps'
  88. ),
  89. id: 'integrations',
  90. recordAnalytics: true,
  91. },
  92. {
  93. path: `${pathPrefix}/early-features/`,
  94. title: t('Early Features'),
  95. description: t('Manage early access features'),
  96. badge: () => <FeatureBadge type="new" />,
  97. show: ({isSelfHosted}) => isSelfHosted || false,
  98. id: 'early-features',
  99. recordAnalytics: true,
  100. },
  101. ],
  102. },
  103. {
  104. name: t('Developer Settings'),
  105. items: [
  106. {
  107. path: `${pathPrefix}/auth-tokens/`,
  108. title: t('Auth Tokens'),
  109. description: t('Manage organization auth tokens'),
  110. id: 'auth-tokens',
  111. },
  112. {
  113. path: `${pathPrefix}/developer-settings/`,
  114. title: t('Custom Integrations'),
  115. description: t('Manage custom integrations'),
  116. id: 'developer-settings',
  117. },
  118. ],
  119. },
  120. ];
  121. export default organizationNavigation;