Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 21 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -324,15 +324,30 @@ Start with the simple API. Drop down to UltimateAuth's extensibility points when

---

## Documentation
## Documentation & Examples

Two documentation experiences are provided:
UltimateAuth provides three ways to learn, explore, and experience the framework.

### **1) Classic Documentation**
Guides, API reference, tutorials - https://ultimateauth.com
### **1) Documentation**
Comprehensive guides, API references, tutorials, and architectural explanations to help you understand and integrate UltimateAuth.

### **2) Interactive Identity Sandbox** (Available Soon)
Create accounts, simulate devices, test auth flows, and observe UltimateAuth in action.
📖 **[Explore Documentation](https://ultimateauth.com/docs)**

### **2) Runnable Samples**
Go beyond code snippets. UltimateAuth includes multiple complete, ready-to-run sample applications covering different hosting models, authentication flows, and integration scenarios.

Clone the repository, open the solution in your IDE, and run the samples directly. No need to build a demo application from scratch.

💻 **[Explore Samples](https://github.com/CodeBeamOrg/UltimateAuth/tree/dev/samples)**

### **3) Identity Lab — Interactive Sandbox**
Experience UltimateAuth directly in your browser through a free, interactive sandbox.

Create test accounts, manage identities and sessions, explore roles and permissions, and experiment with real authentication and authorization flows.

**Powered by UltimateAuth, not simulated.** The demonstrated identity capabilities use the framework itself, so you can see what UltimateAuth can do before integrating it into your own application.

🧪 **Identity Lab — Interactive Sandbox** *(Link coming soon)*

---

Expand Down
107 changes: 103 additions & 4 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,109 @@
# UltimateAuth Roadmap
> The project roadmap is actively maintained as a GitHub issue:

👉 https://github.com/CodeBeamOrg/UltimateAuth/issues/8
> **The detailed and actively maintained roadmap is available on GitHub:**
>
> 👉 **[UltimateAuth Roadmap — Issue #8](https://github.com/CodeBeamOrg/UltimateAuth/issues/8)**
>
> This document provides a high-level overview of our development direction, major milestones, and long-term goals. For detailed tasks, progress tracking, and planned deliverables, see the GitHub issue above.

---

UltimateAuth is developed openly and shaped by community feedback.
## Our Direction

Thank you for helping us build the next-generation authentication framework for .NET.
UltimateAuth aims to become a modern, unified, and extensible authentication and authorization framework for .NET.

Our development approach prioritizes **security, architectural consistency, developer experience, and real-world usability**.

We are building UltimateAuth incrementally, starting with a reliable authentication foundation and expanding toward production-ready infrastructure, advanced security capabilities, and a broader .NET ecosystem.

## Development Milestones

### Phase 0 — Foundation

**Status: Completed**

Establish the core authentication architecture, including sessions, authentication chains, tokens, flows, persistence abstractions, and server infrastructure.

The foundation provides the architectural basis for future capabilities without requiring fundamental redesigns as the framework evolves.

### Phase 1 — First Public Release (v0.1.0)

**Focus: A working, tested and documented end-to-end auth framework**

**Status: Completed**

Deliver the first usable version of UltimateAuth, including core authentication workflows, session management, user and authorization fundamentals, client integrations, and persistence support.

Provide comprehensive documentation, runnable samples, and practical examples to help developers understand and evaluate the framework.

### Phase 2 — Broader Adoption (v0.2.0)

**Focus: Complete product fundamentals**

Improve the stability and usability of public APIs while expanding authentication modes, credential policies, security controls, and integration testing.

Strengthen developer experience across supported .NET application models and make UltimateAuth easier to adopt in real applications.

### Phase 3 — Production Expansion (v0.3.0–v0.8.0)

**Focus: Security, scalability, and ecosystem growth**

Progressively introduce advanced authentication security, multi-factor authentication, improved infrastructure integrations, distributed persistence, and enhanced multi-tenancy.

Expand observability, audit capabilities, performance optimization, platform support, and migration tooling.

Each release will focus on a defined area while preserving architectural consistency across the framework.

### Phase 4 — Stable Contracts (v1.0.0)

**Focus: Long-term API stability and production confidence**

Establish a stable public API contract backed by comprehensive security reviews, integration and regression testing, hardened authentication flows, and mature documentation.

The goal of v1.0.0 is to provide a dependable foundation for applications that require predictable behavior and long-term maintainability.

### Phase 5 — Long-Term Evolution

**Focus: Advanced capabilities and community-driven growth**

Continue evolving UltimateAuth through advanced authorization policies, external identity integrations, extensible authentication providers, enterprise observability, and long-term support planning.

Our long-term vision is to make UltimateAuth a first-class authentication framework within the .NET ecosystem.

---

## Documentation, Samples & Identity Lab

Developer experience remains a priority throughout the roadmap.

UltimateAuth provides multiple ways to learn and evaluate the framework:

- **Documentation:** Architecture, concepts, integration guides, and API references.
- **Runnable Samples:** Complete applications that developers can clone, run, inspect, and modify in their own development environments.
- **Identity Lab:** An interactive sandbox designed to demonstrate real UltimateAuth authentication and authorization capabilities directly in the browser.

These resources will continue to evolve alongside the framework.

## An Open and Evolving Roadmap

**This roadmap is a direction, not a fixed commitment.**

Priorities, implementation details, release scope, and timelines may change based on security findings, technical requirements, real-world adoption, and community feedback.

Features may be introduced earlier, postponed, redesigned, or reconsidered when doing so improves the overall quality and sustainability of UltimateAuth.

We value architectural consistency and reliability over rushing features to meet arbitrary deadlines.

## Community & Contributions

UltimateAuth is developed openly, and community participation plays an important role in shaping its future.

We welcome bug reports, feature requests, architectural discussions, documentation improvements, and code contributions.

If you have an idea or a use case that could improve UltimateAuth, join the conversation through GitHub Issues and Discussions.

**[View the Detailed Roadmap](https://github.com/CodeBeamOrg/UltimateAuth/issues/8)** · **[Explore the Repository](https://github.com/CodeBeamOrg/UltimateAuth)**

---

*Building a modern authentication framework for .NET, together.*
3 changes: 3 additions & 0 deletions UltimateAuth.slnx
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
<Solution>
<Folder Name="/Apps/">
<Project Path="apps/identity-lab/CodeBeam.UltimateAuth.IdentityLab/CodeBeam.UltimateAuth.IdentityLab.csproj" Id="ae45cd5c-2a32-42d2-aad8-f10c4bb9fba3" />
</Folder>
<Folder Name="/Docs/">
<Project Path="docs/website/CodeBeam.UltimateAuth.Docs.Wasm/CodeBeam.UltimateAuth.Docs.Wasm.Client/CodeBeam.UltimateAuth.Docs.Wasm.Client.csproj" Id="1976793c-a84c-4009-96c5-1fb8c7657c5e" />
<Project Path="docs/website/CodeBeam.UltimateAuth.Docs.Wasm/CodeBeam.UltimateAuth.Docs.Wasm/CodeBeam.UltimateAuth.Docs.Wasm.csproj" Id="629c8d74-d253-4ef2-9f26-47a405d9d7a6" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<BlazorDisableThrowNavigationException>true</BlazorDisableThrowNavigationException>
<IsPackable>false</IsPackable>
<UserSecretsId>4f9706a0-d4d2-476c-bd8f-9bd1cd4f6f0e</UserSecretsId>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="CodeBeam.MudBlazor.Extensions" Version="9.2.0" />
<PackageReference Include="MudBlazor" Version="9.11.0" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.12">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.12">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\samples\CodeBeam.UltimateAuth.Sample.Seed\CodeBeam.UltimateAuth.Sample.Seed.csproj" />
<ProjectReference Include="..\..\..\samples\CodeBeam.UltimateAuth.Sample.Shared\CodeBeam.UltimateAuth.Sample.Shared.csproj" />
<ProjectReference Include="..\..\..\src\bundle\CodeBeam.UltimateAuth.EntityFrameworkCore.Bundle\CodeBeam.UltimateAuth.EntityFrameworkCore.Bundle.csproj" />
<ProjectReference Include="..\..\..\src\client\CodeBeam.UltimateAuth.Client.Blazor\CodeBeam.UltimateAuth.Client.Blazor.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base href="/" />
<ResourcePreloader />
<link rel="stylesheet" href="@Assets["app.css"]" />
<link rel="stylesheet" href="@Assets["CodeBeam.UltimateAuth.IdentityLab.styles.css"]" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&amp;display=swap" />
<link href="@Assets["_content/MudBlazor/MudBlazor.min.css"]" rel="stylesheet" />
<link href="@Assets["_content/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css"]" rel="stylesheet" />
<link href="@Assets["_content/CodeBeam.UltimateAuth.Sample.Shared/uauth-dialogs.css"]" rel="stylesheet" />

<ImportMap />
<link rel="icon" type="image/png" href="identity-lab.png" />
<HeadOutlet @rendermode="InteractiveServer" />
</head>

<body>
<Routes @rendermode="InteractiveServer" />
<ReconnectModal />
<script src="@Assets["_framework/blazor.web.js"]"></script>
<script src="@Assets["_content/CodeBeam.UltimateAuth.Client.Blazor/uauth.min.js"]"></script>
<script src="@Assets["_content/MudBlazor/MudBlazor.min.js"]"></script>
<script src="@Assets["_content/CodeBeam.MudBlazor.Extensions/MudExtensions.min.js"]"></script>
</body>

</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<MudNavMenu>
<MudText Typo="Typo.overline" Class="px-4 pt-4 pb-2">
SANDBOX
</MudText>

<MudNavLink Href="/dashboard"
Match="NavLinkMatch.All"
Icon="@Icons.Material.Filled.Dashboard">
Overview
</MudNavLink>

<MudNavLink Href="/dashboard/members"
Icon="@Icons.Material.Filled.People">
Members
</MudNavLink>

<MudNavLink Href="/dashboard/sessions"
Icon="@Icons.Material.Filled.Devices">
Sessions & Devices
</MudNavLink>

<MudNavLink Href="/dashboard/authorization"
Icon="@Icons.Material.Filled.AdminPanelSettings">
Roles & Permissions
</MudNavLink>

<MudDivider Class="my-4" />

<MudNavLink Href="/"
Icon="@Icons.Material.Filled.Home">
Back to Home
</MudNavLink>
</MudNavMenu>
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<footer class="lab-footer">
<MudContainer MaxWidth="MaxWidth.Large">

<div class="lab-footer-main">
<div class="lab-footer-brand">
<span class="lab-footer-symbol">
<MudIcon Icon="@Icons.Material.Filled.Science"
Size="Size.Medium" />
</span>

<div class="lab-footer-brand-text">
<strong>Identity Lab</strong>
<span>Explore identity. Understand security.</span>
</div>
</div>

<div class="lab-footer-links">
<MudTooltip Text="UltimateAuth Documentation" Delay="300">
<MudIconButton Icon="@Icons.Material.Filled.MenuBook"
Href="https://ultimateauth.com/docs"
Target="_blank"
Color="Color.Inherit"
aria-label="Documentation" />
</MudTooltip>

<MudTooltip Text="UltimateAuth on GitHub" Delay="300">
<MudIconButton Icon="@Icons.Custom.Brands.GitHub"
Href="https://github.com/CodeBeamOrg/UltimateAuth"
Target="_blank"
Color="Color.Inherit"
aria-label="GitHub" />
</MudTooltip>

<MudTooltip Text="UltimateAuth Website" Delay="300">
<MudIconButton Icon="@Icons.Material.Filled.Language"
Href="https://ultimateauth.com"
Target="_blank"
Color="Color.Inherit"
aria-label="UltimateAuth Website" />
</MudTooltip>
</div>
</div>

<div class="lab-footer-bottom">
<span>
© @DateTime.UtcNow.Year
<a href="https://github.com/CodeBeamOrg"
target="_blank"
rel="noopener noreferrer">CodeBeam</a>.
Free & OpenSource.
</span>

<span class="lab-footer-powered">
Built with
<a href="https://ultimateauth.com"
target="_blank"
rel="noopener noreferrer">UltimateAuth</a>
<MudIcon Icon="@Icons.Material.Filled.Favorite"
Size="Size.Small"
Color="Color.Primary" />
</span>
</div>

</MudContainer>
</footer>
Loading
Loading