Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Satz

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.

Repository Layout

  • 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.

Local Database

The repository includes a PostgreSQL development environment powered by Docker Compose.

Start the database with:

docker compose -f docker-compose.dev.yml up -d

Default local PostgreSQL settings:

  • Host: localhost
  • Port: 5432
  • Username: postgres
  • Password: postgres

Development databases used by the solution:

  • satz
  • satz_dev

Run The API

Start the API from the repository root:

dotnet run --project .\src\Satz.WebAPI\Satz.WebAPI.csproj

By default, the local API is available at:

  • https://localhost:7177
  • http://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

Run The UI

The web UI lives in ui and runs alongside the API.

Install dependencies:

cd .\ui
npm install

Start the UI:

npm run dev -- --target app

The 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.

Run API And UI Together

  1. Start PostgreSQL.
  2. Start Satz.WebAPI.
  3. Start the web UI from ui.
  4. 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 app

Then 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

Build the .NET solution:

dotnet build .\Satz.slnx

Build the UI:

cd .\ui
npm run build -- --target app

Migrations

EF 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.

About

API builder with ready-to-use authN and authZ

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages