60 lines
2.6 KiB
Markdown
60 lines
2.6 KiB
Markdown
# Tuitio
|
|
|
|
Tuitio is a simple identity server implementation focused strictly on the needs of my home lab.
|
|
At the moment it has a simple API consisting of only two methods:
|
|
* ```/identity/authenticate``` - handles user authentication using credentials and generates an access token.
|
|
* ```/identity/authorize``` - manages the authorization process for a token, including verification of its existence, validity, and authenticity.
|
|
|
|
***Tuitio*** is a latin word that encompasses meanings such as supervision, safeguarding, defense, guard duty, and protection.
|
|
|
|
## Database
|
|
Currently, the database server supported by the system is only Microsoft SQL Server. In the following versions, the system will also be compatible with PostgreSQL and SQLite.
|
|
|
|
## Logging
|
|
The logging functionality is managed with Serilog, and its configuration is done in the ```appsettings.json``` file. In addition to its standard configuration, Tuitio also has a preconfigured area where two destinations for logs are available: SqlServer database and Seq. Each of the destinations can be activated or not. If logging in the console is sufficient, all additional logging destinations can be disabled.
|
|
This configuration area is:
|
|
|
|
```
|
|
"Logs": {
|
|
"SqlServer": {
|
|
"Enabled": false,
|
|
"Connection": "Server=<server>;Database=<database>;User Id=<user>;Password=<password>;"
|
|
},
|
|
"Seq": {
|
|
"Enabled": false,
|
|
"Url": "",
|
|
"ApiKey": ""
|
|
}
|
|
}
|
|
```
|
|
|
|
## Hosting
|
|
The only hosting environment tested for this service is Docker, but considering that .NET 6 is cross platform, it can most likely be hosted in any environment.
|
|
|
|
## Stack
|
|
* .NET (C#)
|
|
* EntityFramework
|
|
* SQL Server
|
|
* Swagger
|
|
* Docker
|
|
* Seq
|
|
|
|
## Integrations
|
|
|
|
### Javascript
|
|
Tuitio can be integrated with any system written in javascript through the npm package [tuitio-client](https://lab.code-rove.com/gitea/bricks/tuitio-client#readme).
|
|
|
|
**Source code:** https://lab.code-rove.com/gitea/bricks/tuitio-client
|
|
**Registry:** https://lab.code-rove.com/public-node-registry/-/web/detail/@flare/tuitio-client
|
|
|
|
### React
|
|
Tuitio can be integrated with an application written in React both through the above package and through [tuitio-react-client](https://lab.code-rove.com/gitea/bricks/tuitio-react-client).
|
|
|
|
Tuitio react client uses [tuitio-client](https://lab.code-rove.com/gitea/bricks/tuitio-client#readme) internally and adds state management through a react context and various react hooks through which the user has access to data and actions.
|
|
|
|
**Source code:** https://lab.code-rove.com/gitea/bricks/tuitio-react-client
|
|
**Registry:** https://lab.code-rove.com/public-node-registry/-/web/detail/@flare/tuitio-react-client
|
|
|
|
### C#
|
|
|
|
In development |