An open API service indexing awesome lists of open source software.

https://github.com/psmith0000/ignivault

full-stack, password and file vault built with .NET, Blazor WASM
https://github.com/psmith0000/ignivault

blazor blazor-webassembly csharp dotnet syncfusion

Last synced: 2 months ago
JSON representation

full-stack, password and file vault built with .NET, Blazor WASM

Awesome Lists containing this project

README

          

Ignivault 🔑


A secure, full-stack zero-knowledge password and file vault built with .NET, Blazor WebAssembly, and Syncfusion components.



Doxygen Docs



https://psmith0000.github.io/ignivault-docs/



## Core Concept: Zero-Knowledge Architecture

The security of this vault relies on a zero-knowledge model. The user's master password is never sent to the server. Instead, it is combined with a unique salt to derive a master encryption key directly in the user's browser using the Web Crypto API. This key is used to encrypt and decrypt vault items with **AES-GCM**. The server only ever stores opaque, encrypted blobs of data.

---
## ✨ Features

- **Secure User Authentication:**
- Registration and a multi-step login flow.
- **Two-Factor Authentication (2FA)** with TOTP and recovery codes.
- Password reset via secure email links.
- **Vault Management Dashboard:**
- A central dashboard with **Syncfusion Charts and Grids**.
- Client-side search and date-range filtering.
- **Client-Side Cryptography:**
- Full CRUD (Create, Read, Update, Delete) with end-to-end encryption.
- Secure, streaming uploads and downloads of large files.
- A standalone utility page for decrypting downloaded files.
- **Role-Based Access Control (RBAC):**
- A clear distinction between `User` and `Admin` roles.
- **Admin-Only Features:**
- A **Reports Page** for application-wide statistics.
- A **User Management Page** to view, lock, unlock, and manage roles.
- A detailed audit trail of significant user actions.

---
## 💻 Technology Stack



Area
Technology




Backend
ASP.NET Core Web API (.NET 9)


Frontend
Blazor WebAssembly (.NET 9)


UI Components
Syncfusion Blazor


Database
Entity Framework Core & SQL Server


Authentication
ASP.NET Core Identity & JWT


Email
SendGrid


Deployment
Microsoft Azure

---
## 🚀 Getting Started

Click to view setup instructions

### Prerequisites
- .NET 9 SDK
- Visual Studio 2022 or later
- SQL Server (LocalDB, Express, or full version)

### Configuration
1. Clone the repository.
2. In the `ignivault.WebAPI` project, rename `appsettings.Example.json` to `appsettings.Development.json`.
3. Fill in the required values:
- `ConnectionStrings:DefaultConnection`
- `Jwt:Key`
- `SendGrid:ApiKey`
- `AdminUsers`
4. In the `ignivault.App` project's `wwwroot` folder, rename `appsettings.Example.json` to `appsettings.Development.json`.
5. Fill in the required values:
- `ApiBaseAddress`
- `SyncfusionLicenseKey`

### Running the Application
1. Open the solution (`.sln`) in Visual Studio.
2. In the **Package Manager Console**, set the "Default project" to `ignivault.WebAPI`.
3. Run the command `Update-Database`.
4. Set `ignivault.WebAPI` as the startup project and run the application (F5).

---
## ☁️ Deployment

The application is designed to be deployed to **Microsoft Azure**. The process involves creating an **Azure SQL Database** and an **Azure App Service**, and configuring all production secrets in the App Service Configuration.

---
## 📜 License

This project is licensed under the MIT License.