# szischerkibs/cogs-api architecture

> Architecture diagram of the GitHub repository szischerkibs/cogs-api, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/szischerkibs/cogs-api
- Repository: https://github.com/szischerkibs/cogs-api

## Overview

CodeMash Cogs is an ASP.NET API for user, application, and authentication operations. The visible login workflow accepts credentials, checks them through the authentication repository, then loads the user and returns a JWT with user details; user and application controllers expose separate API workflows. Repositories execute stored procedures through shared SQL access, while Startup wires services. The README gives little product detail, and several controller and configuration files were not excerpted, so only evidenced links are shown.

Main entry points: [`cogs-api/Controllers/AuthController.cs`](https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Controllers/AuthController.cs) (Authentication API), [`cogs-api/Repositories/BaseSqlRepository.cs`](https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Repositories/BaseSqlRepository.cs) (SQL access), [`cogs-api/Startup.cs`](https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Startup.cs) (Service wiring), [`cogs-api/Repositories/UserRepository.cs`](https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Repositories/UserRepository.cs) (User repository)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API workflows"]
  node_auth["Authentication API<br/>[AuthController.cs]"]
  node_users["User API<br/>[UsersController.cs]"]
  node_applications["Application API"]
end

subgraph group_data["Persistence"]
  node_userrepo["User repository<br/>[UserRepository.cs]"]
  node_authrepo["Auth repository<br/>[AuthRepository.cs]"]
  node_apprepo["Application repository"]
  node_sqlaccess["SQL access"]
  node_database[("Cogs database")]
end

subgraph group_domain["Domain and wiring"]
  node_contracts["Repository contracts"]
  node_dtos["API DTOs"]
  node_models["Domain models"]
  node_startup["Service wiring<br/>[Startup.cs]"]
end

node_client(("API client"))

node_client -->|"submits login"| node_auth
node_auth -->|"checks credentials"| node_authrepo
node_auth -->|"loads user"| node_userrepo
node_users -->|"uses user contract"| node_contracts
node_applications -->|"uses application contract"| node_contracts
node_authrepo -->|"executes queries"| node_sqlaccess
node_userrepo -->|"executes queries"| node_sqlaccess
node_apprepo -->|"executes queries"| node_sqlaccess
node_sqlaccess -->|"runs SQL commands"| node_database
node_startup -->|"registers service"| node_authrepo
node_startup -->|"registers service"| node_userrepo
node_startup -->|"registers service"| node_apprepo
node_contracts -->|"exposes models"| node_models
node_auth -->|"accepts and returns"| node_dtos

click node_auth "https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Controllers/AuthController.cs"
click node_users "https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Controllers/UsersController.cs"
click node_applications "https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Controllers/ApplicationController.cs"
click node_userrepo "https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Repositories/UserRepository.cs"
click node_authrepo "https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Repositories/AuthRepository.cs"
click node_apprepo "https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Repositories/ApplicationRepository.cs"
click node_sqlaccess "https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Repositories/BaseSqlRepository.cs"
click node_database "https://github.com/szischerkibs/cogs-api/tree/main/cogs-api/Scripts"
click node_contracts "https://github.com/szischerkibs/cogs-api/tree/main/cogs-api/Interfaces"
click node_dtos "https://github.com/szischerkibs/cogs-api/tree/main/cogs-api/Dtos"
click node_models "https://github.com/szischerkibs/cogs-api/tree/main/cogs-api/Models"
click node_startup "https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Startup.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_auth,node_users,node_applications,node_client toneBlue
class node_userrepo,node_authrepo,node_apprepo,node_sqlaccess,node_database toneAmber
class node_contracts,node_dtos,node_models,node_startup toneMint
```

## Components

### API workflows

- [Authentication API](https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Controllers/AuthController.cs): `cogs-api/Controllers/AuthController.cs`
- [User API](https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Controllers/UsersController.cs): `cogs-api/Controllers/UsersController.cs`
- [Application API](https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Controllers/ApplicationController.cs): `cogs-api/Controllers/ApplicationController.cs`

### Persistence

- [User repository](https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Repositories/UserRepository.cs): `cogs-api/Repositories/UserRepository.cs`
- [Auth repository](https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Repositories/AuthRepository.cs): `cogs-api/Repositories/AuthRepository.cs`
- [Application repository](https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Repositories/ApplicationRepository.cs): `cogs-api/Repositories/ApplicationRepository.cs`
- [SQL access](https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Repositories/BaseSqlRepository.cs): `cogs-api/Repositories/BaseSqlRepository.cs`
- [Cogs database](https://github.com/szischerkibs/cogs-api/tree/main/cogs-api/Scripts): `cogs-api/Scripts`

### Domain and wiring

- [Repository contracts](https://github.com/szischerkibs/cogs-api/tree/main/cogs-api/Interfaces): `cogs-api/Interfaces`
- [API DTOs](https://github.com/szischerkibs/cogs-api/tree/main/cogs-api/Dtos): `cogs-api/Dtos`
- [Domain models](https://github.com/szischerkibs/cogs-api/tree/main/cogs-api/Models): `cogs-api/Models`
- [Service wiring](https://github.com/szischerkibs/cogs-api/blob/main/cogs-api/Startup.cs): `cogs-api/Startup.cs`

### Other components

- **API client**

## Connections

- API client → Authentication API: submits login (evidence: `cogs-api/Controllers/AuthController.cs`)
- Authentication API → Auth repository: checks credentials (evidence: `cogs-api/Controllers/AuthController.cs`)
- Authentication API → User repository: loads user (evidence: `cogs-api/Controllers/AuthController.cs`)
- User API → Repository contracts: uses user contract (evidence: `cogs-api/Controllers/UsersController.cs`)
- Application API → Repository contracts: uses application contract (evidence: `cogs-api/Controllers/ApplicationController.cs`)
- Auth repository → SQL access: executes queries (evidence: `cogs-api/Repositories/AuthRepository.cs`)
- User repository → SQL access: executes queries (evidence: `cogs-api/Repositories/UserRepository.cs`)
- Application repository → SQL access: executes queries (evidence: `cogs-api/Repositories/ApplicationRepository.cs`)
- SQL access → Cogs database: runs SQL commands (evidence: `cogs-api/Repositories/BaseSqlRepository.cs`)
- Service wiring → Auth repository: registers service (evidence: `cogs-api/Startup.cs`)
- Service wiring → User repository: registers service (evidence: `cogs-api/Startup.cs`)
- Service wiring → Application repository: registers service (evidence: `cogs-api/Startup.cs`)
- Repository contracts → Domain models: exposes models (evidence: `cogs-api/Interfaces/IUserRepository.cs`)
- Authentication API → API DTOs: accepts and returns (evidence: `cogs-api/Controllers/AuthController.cs`)
