Sign inSign up

josealmeidajr/kongroo-catalog

By josealmeidajr

•Updated about 1 month ago

Game catalog, promotions, ordering & library ownership microservice for the Kongroo platform.

Image
API management
0

596

josealmeidajr/kongroo-catalog repository overview

⁠Kongroo Catalog

Game catalog, promotions, ordering, and library ownership 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. OrderPlacedIntegrationEvent) 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_catalog;Username=kongroo;Password=development" \
  -e RabbitMq__Host="rabbitmq" \
  -e RabbitMq__User="kongroo" \
  -e RabbitMq__Pass="development" \
  -e Jwt__Issuer="Kongroo.Identity.Api" \
  -e Jwt__Audience="Kongroo.Identity.Api" \
  -e Jwt__SigningKey="<a-secret-key-at-least-32-characters-long>" \
  josealmeidajr/kongroo-catalog:latest

⁠Endpoints

Method & pathDescription
POST /gamesCreate a game (Admin only)
GET /gamesGet games
GET /games/{gameId}Get a game
PUT /games/{gameId}Update a game (Admin only)
POST /games/{gameId}/promotionsCreate a promotion (Admin only)
DELETE /games/{gameId}Delete a game (Admin only)
GET /ordersGet the authenticated user's orders
GET /orders/{orderId}Get an order
POST /ordersPlace an order
GET /ownershipsGet the authenticated user's library ownerships
GET /ownerships/{ownershipId}Get an ownership
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 (must match the Identity service)
Jwt__AudienceJWT audience (must match the Identity service)
Jwt__SigningKeyJWT signing key (min 32 chars, must match the Identity service)
Jwt__AccessTokenLifetimeMinutesAccess token lifetime in minutes
OutboxProcessing__PollingIntervalOutbox poll interval (e.g. 00:00:05)
OutboxProcessing__BatchSizeOutbox messages processed per poll

This service validates tokens it did not issue; Jwt__Issuer, Jwt__Audience, and Jwt__SigningKey must match the Kongroo Identity service exactly.

⁠Requirements

  • A reachable PostgreSQL database
  • A reachable RabbitMQ broker

⁠Source

Part of the Kongroo platform.

Tag summary

Content type

Image

Digest

sha256:7a60b0663…

Size

101.2 MB

Last updated

3 months ago

docker pull josealmeidajr/kongroo-catalog