Sign inSign up

josealmeidajr/kongroo-identity

By josealmeidajr

•Updated about 1 month ago

Identity & access management API for the Kongroo platform (.NET / ASP.NET Core, JWT auth).

Image
Security
API management
0

845

josealmeidajr/kongroo-identity repository overview

⁠Kongroo Identity

User registration, authentication, and JWT issuance microservice for the Kongroo platform. Built with ASP.NET Core and PostgreSQL, following Domain-Driven Design with a transactional outbox that reliably publishes integration events (e.g. UserCreatedIntegrationEvent) to RabbitMQ via MassTransit.

⁠Tags

  • latest — most recent stable release
  • x.y.z — specific version (e.g. 0.0.2)
  • dev — in-progress development build

⁠Quick start

The container listens on port 8080 and requires a PostgreSQL database and a RabbitMQ broker.

docker run -p 8080:8080 \
  -e ConnectionStrings__Database="Host=postgres;Database=kongroo_identity;Username=kongroo;Password=development" \
  -e RabbitMq__Host="rabbitmq" \
  -e RabbitMq__User="kongroo" \
  -e RabbitMq__Pass="development" \
  -e Jwt__Issuer="kongroo" \
  -e Jwt__Audience="kongroo" \
  -e Jwt__SigningKey="<a-secret-key-at-least-32-characters-long>" \
  josealmeidajr/kongroo-identity:latest

⁠Endpoints

Method & pathDescription
POST /usersRegister user
POST /tokensAuthenticate and get a JWT
GET /users/meGet authenticated user profile
GET /usersList all users (Admin only)
GET /users/{id}Get user by ID (Admin only)
PUT /users/{id}/roleChange user role (Admin only)
GET /healthHealth check

⁠Configuration

Configured via environment variables. The double underscore (__) maps to nested configuration sections.

VariableDescription
ConnectionStrings__DatabasePostgreSQL connection string
RabbitMq__HostRabbitMQ broker hostname
RabbitMq__UserRabbitMQ username
RabbitMq__PassRabbitMQ password
Jwt__IssuerJWT issuer
Jwt__AudienceJWT audience
Jwt__SigningKeyJWT signing key (min 32 chars)
Jwt__AccessTokenLifetimeMinutesAccess token lifetime in minutes
BootstrapAdmin__UsernameSeed admin username
BootstrapAdmin__EmailSeed admin email
BootstrapAdmin__PasswordSeed admin password
BootstrapAdmin__NameSeed admin display name

The bootstrap admin account is created on startup only when the users table is empty.

⁠Requirements

  • A reachable PostgreSQL database
  • A reachable RabbitMQ broker

⁠Source

Part of the Kongroo platform.

Tag summary

Content type

Image

Digest

sha256:2fbcc9780…

Size

101.1 MB

Last updated

3 months ago

docker pull josealmeidajr/kongroo-identity