Cостоит из слоев
- Транспортный - взаимодействие с внешним миром, обработка GRPC, роутинг запросов
- Сервисный - бизнес логика(auth, permissions)
- Работы с данными - работает с базами данных
- Приложение - запуск, остановка, хелсчеки
sso
├── cmd.............. Команды для запуска приложения и утилит
│ ├── migrator.... Утилита для миграций базы данных
│ └── sso......... Основная точка входа в сервис SSO
├── config........... Конфигурационные yaml-файлы
├── internal......... Внутренности проекта
│ ├── app.......... Код для запуска различных компонентов приложения
│ │ └── grpc.... Запуск gRPC-сервера
│ ├── config....... Загрузка конфигурации
│ ├── domain
│ │ └── models.. Структуры данных и модели домена
│ ├── grpc
│ │ └── auth.... gRPC-хэндлеры сервиса Auth
│ ├── lib.......... Общие вспомогательные утилиты и функции
│ ├── services..... Сервисный слой (бизнес-логика)
│ │ ├── auth
│ │ └── permissions
│ └── storage...... Слой хранения данных
│ └── sqlite.. Реализация на SQLite
├── migrations....... Миграции для базы данных
├── storage.......... Файлы хранилища, например SQLite базы данных
└── tests............ Функциональные тесты
go run cmd/sso/main.go --config=./config/local.yaml
или
task run
Запуск миграций (миграции хранятся в папке migrations
)
task migrate
internal/jwt
- пакет для генерации токенов по алгоритму HS256