roles.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. export type KnownRole =
  2. | 'anon'
  3. | 'authenticated'
  4. | 'service_role'
  5. | 'postgres'
  6. | 'authenticator'
  7. | 'briven_auth_admin'
  8. | 'briven_storage_admin'
  9. | 'briven_etl_admin'
  10. | 'briven_realtime_admin'
  11. | 'briven_replication_admin'
  12. | 'briven_read_only_user'
  13. | 'dashboard_user'
  14. | 'briven_admin'
  15. export const APP_ACCESS_ROLES: KnownRole[] = ['anon', 'authenticated', 'service_role'] as const
  16. export const BRIVEN_SYSTEM_ROLES: KnownRole[] = [
  17. 'postgres',
  18. 'authenticator',
  19. 'briven_auth_admin',
  20. 'briven_storage_admin',
  21. 'briven_etl_admin',
  22. 'briven_realtime_admin',
  23. 'briven_replication_admin',
  24. 'briven_read_only_user',
  25. 'dashboard_user',
  26. 'briven_admin',
  27. ] as const
  28. export type RoleInfo = {
  29. displayName: string
  30. }
  31. export const ROLE_INFO: Record<KnownRole, RoleInfo> = {
  32. anon: {
  33. displayName: 'Anonymous (Logged Out)',
  34. },
  35. authenticated: {
  36. displayName: 'Authenticated (Logged In)',
  37. },
  38. service_role: {
  39. displayName: 'Service Role',
  40. },
  41. postgres: {
  42. displayName: 'Postgres',
  43. },
  44. authenticator: {
  45. displayName: 'Authenticator',
  46. },
  47. briven_auth_admin: {
  48. displayName: 'Auth Admin',
  49. },
  50. briven_storage_admin: {
  51. displayName: 'Storage Admin',
  52. },
  53. briven_etl_admin: {
  54. displayName: 'ETL Admin',
  55. },
  56. briven_realtime_admin: {
  57. displayName: 'Realtime Admin',
  58. },
  59. briven_replication_admin: {
  60. displayName: 'Replication Admin',
  61. },
  62. briven_read_only_user: {
  63. displayName: 'Read-Only User',
  64. },
  65. dashboard_user: {
  66. displayName: 'Dashboard User',
  67. },
  68. briven_admin: {
  69. displayName: 'Briven Admin',
  70. },
  71. }
  72. export function isKnownRole(role: string): role is KnownRole {
  73. return role in ROLE_INFO
  74. }
  75. export type RoleGroup = {
  76. name: string
  77. options: string[]
  78. }