Satz is an API builder with ready-to-use authentication and authorization.
It combines a modular .NET API with a Mainz-based web UI for authentication and administration.
src/Satz.Application: application use cases and orchestration.src/Satz.Domain: core domain model and business concepts.src/Satz.Infrastructure: EF Core persistence and infrastructure concerns.src/Satz.Infrastructure.Auth: identity, token issuance, and authorization infrastructure.src/Satz.WebAPI: ASP.NET Core API host.ui: Mainz-based web UI for sign-in and administration.tests: automated test projects.
The repository includes a PostgreSQL development environment powered by Docker Compose.
Start the database with:
docker compose -f docker-compose.dev.yml up -dDefault local PostgreSQL settings:
- Host:
localhost - Port:
5432 - Username:
postgres - Password:
postgres
Development databases used by the solution:
satzsatz_dev
Start the API from the repository root:
dotnet run --project .\src\Satz.WebAPI\Satz.WebAPI.csprojBy default, the local API is available at:
https://localhost:7177http://localhost:5161
Useful local endpoints:
- Swagger UI:
https://localhost:7177/swagger - Platform token endpoint:
https://localhost:7177/api/platform/connect/token - Current platform user:
https://localhost:7177/api/platform/auth/me
In development, the API seeds a default platform admin account:
- Username:
admin - Password:
Admin1234
The web UI lives in ui and runs alongside the API.
Install dependencies:
cd .\ui
npm installStart the UI:
npm run dev -- --target appThe UI includes:
/: public landing page/login: public sign-in page/admin: protected client-side admin route
The sign-in flow uses the platform token endpoint from the API and stores the access token locally so the UI can resolve the current principal for protected client-side routes.
- Start PostgreSQL.
- Start
Satz.WebAPI. - Start the web UI from
ui. - Open the UI login page and sign in with the local development account.
Minimal local workflow:
docker compose -f .\docker-compose.dev.yml up -d
dotnet run --project .\src\Satz.WebAPI\Satz.WebAPI.csproj
cd .\ui
npm install
npm run dev -- --target appThen open the UI in the browser and use:
- API base URL:
https://localhost:7177/api - Username:
admin - Password:
Admin1234
Expected local flow:
- Open
/login - Sign in with the development account
- Land on
/admin
Build the .NET solution:
dotnet build .\Satz.slnxBuild the UI:
cd .\ui
npm run build -- --target appEF Core migrations are managed from the .NET projects under src.
Once dotnet-ef is available in your environment, create and apply migrations
from the repository root or from the relevant infrastructure project.