πŸŒ„Design Overview

A microservices based approach for a scalable architecture. (This project is a skeleton for experimental purpose only)

The project tries to build a simple Memories sharing app for cloud native practice and Dev-Ops. Focusing on both Dev and Ops of it.

The Solution has few basic components.

  • Uploader Api to be able to upload videos

  • Processor Api to process Videos and store

  • Identity Api to Authenticate and Authorize Users

  • Evolution Client on Blazor ? Need Discussion

Gateway

Soon...

Backend

The backend is built using .net5

We are trying to sperate individual domain in the complete work flow and we corrently have four major sevices

HTTP
HTTPS

Identity Service

1000

1443

Uploader Service

2000

2443

Processor Service

3000

3443

Identity Service (Identity Server 4)

This service is built using Identity server 4 and have uses SQLite for the Database and is built using a code first approach.

WellKnown Endpoint Exposed by identity server : https://localhost:5443/.well-known/openid-configuration
{
  "issuer": "https://localhost:5443",
  "jwks_uri": "https://localhost:5443/.well-known/openid-configuration/jwks",
  "authorization_endpoint": "https://localhost:5443/connect/authorize",
  "token_endpoint": "https://localhost:5443/connect/token",
  "userinfo_endpoint": "https://localhost:5443/connect/userinfo",
  "end_session_endpoint": "https://localhost:5443/connect/endsession",
  "check_session_iframe": "https://localhost:5443/connect/checksession",
  "revocation_endpoint": "https://localhost:5443/connect/revocation",
  "introspection_endpoint": "https://localhost:5443/connect/introspect",
  "device_authorization_endpoint": "https://localhost:5443/connect/deviceauthorization",
  "frontchannel_logout_supported": true,
  "frontchannel_logout_session_supported": true,
  "backchannel_logout_supported": true,
  "backchannel_logout_session_supported": true,
  "scopes_supported": [
    "profile",
    "openid",
    "role",
    "tripfeed.write",
    "tripfeed.read",
    "offline_access"
  ],
  "claims_supported": [
    "gender",
    "website",
    "picture",
    "profile",
    "preferred_username",
    "nickname",
    "middle_name",
    "given_name",
    "family_name",
    "name",
    "birthdate",
    "zoneinfo",
    "locale",
    "updated_at",
    "sub",
    "role"
  ],
  "grant_types_supported": [
    "authorization_code",
    "client_credentials",
    "refresh_token",
    "implicit",
    "password",
    "urn:ietf:params:oauth:grant-type:device_code"
  ],
  "response_types_supported": [
    "code",
    "token",
    "id_token",
    "id_token token",
    "code id_token",
    "code token",
    "code id_token token"
  ],
  "response_modes_supported": [
    "form_post",
    "query",
    "fragment"
  ],
  "token_endpoint_auth_methods_supported": [
    "client_secret_basic",
    "client_secret_post"
  ],
  "id_token_signing_alg_values_supported": [
    "RS256"
  ],
  "subject_types_supported": [
    "public"
  ],
  "code_challenge_methods_supported": [
    "plain",
    "S256"
  ],
  "request_parameter_supported": true
}

Uploader Service

This service is built using .net 5 and have uses SQLite for the Database and is built using a code first approach.

Processor Service

This service is built using .net 5 and have uses SQLite for the Database and is built using a code first approach.

Deployment

Learn how to Deploy this project to K8 Click here

Last updated