Стоит ли данные авторизации главного администратора хранить в окружении?
Вот пример того пользователи хранятся в вордпрессе примерв целом как вариант можете загуглить rbac + ваш язык и посмотреть как реализована либа и как её используют. Еще будет полезно погуглить rbac design.
Мне пришла мысль, что можно указать логин и хэш пароля прямо в .env файлеНа самом деле немного странное решение, вполне нормально хранить эти данные в бд, если не ошибаюсь в wp так и делают.
К роуту авторизации этого пользователя можно предоставлять только с определённого пула IP-адресов, которые храним в этом же файле окружения вместе с ключами шифрования JWT.Так не стоит делать, если это нужно то лучше написать в отдельноё middleware, которое будет уметь это делать, эта задача к системе ролей никак не относится.
Раз в этом файле хранятся ключи шифрования, то полагаю место достаточно надёжное и почему бы так не поступить.Довольно неудобно менять пароль, по сути нужно перезапускать систему для этого
создать одного главного админа который будет либо единственным в своём роде, либо сможет раздавать такой же уровень правВообще это не такая и редкая ситуация когда только 1 человек знает все пароли, но стоит предусмотреть возможность чтобы была возможность того, чтобы админ мог создавать пользователей с любыми ролями и привилегиями. Я же правильно понял, что вы хотите создать систему ролей которую можно будет применить к любому проекту, то глупо ограничивать пользователя, пусть делает что ему нужно, с вашей стороны нужно обеспечить гибкую систему ролей.
Тут заметил одну проблему. Если появится потребность в изменении пула IP-адресов, или данных входа, придётся перезагружать сервак и на какое-то время ложить сервис. Может есть возможность подтягивать изменения в рантайме из файла окружения. Я только видел как меняют окружение из кода программы, а я подумал о возможности изменить .env и из терминала заставить сервер подтянуть изменения.

Сделай watcher для файла с секретами через fs.watch, тогда при изменение файла с данными сервер сможет их подхватить без перезапуска