Skip to content

Drahten is an open-source project utilizing a microservices architecture written in .NET Core 8.0.

License

Notifications You must be signed in to change notification settings

JivkoSp/Drahten

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

CodeQL

⚠️ Important Notice

Be aware that this project is under development, has some bugs, and some of the features mentioned in the Architecture Overview are not yet finished.

If you decide to fork it, you will need a machine with parameters similar to these:

  • RAM: 64GB (The Search Service, in particular, consumes a lot of RAM)
  • GPU: At least 8GB of RAM
  • CPU: Currently tested with Ryzen 5 generation

What is Drahten?

Drahten is an open-source project utilizing a microservices architecture written in .NET Core 8.0. The project focuses on creating a secure application that encompasses:

  • Access control
  • Information retrieval
  • Data encryption

Architecture Overview

Architecture Overview

Why Security Matters

In the realm of computer systems and networks, defining "absolute security" is impossible. The rapid evolution of information technologies, the reduced timeframes for comprehensive testing of information systems, the increasing capabilities of individual users, and the potential for human errors (such as non-compliance with organizational security policies, configuration mistakes, and missed updates of critical applications and systems) are just some of the challenges that make "absolute security" unattainable. Therefore, the goal is to achieve "sufficient security."

Achieving Sufficient Security

In this project, "sufficient security" is accomplished through the following measures:

  • Microservice Architecture: The entire application is built using microservices, with each service running in a separate container and having its own database;
  • User Authentication: Users are authenticated via an authentication server that operates as an independent service within a container;
  • Reverse Proxy Server: A reverse proxy server acts as a single entry point for client applications, enforcing authentication and authorization policies for backend services;
  • Data Encryption: Information transmitted between services and the database is encrypted;
  • Event Logging System: An event logging system captures events occurring within the application's services, providing a clear overview of the system's activities from a centralized location.