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
- Host: GitHub
- URL: https://github.com/psmith0000/ignivault
- Owner: PSmith0000
- Created: 2025-08-25T01:54:35.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-27T01:34:24.000Z (9 months ago)
- Last Synced: 2025-09-27T03:26:28.259Z (9 months ago)
- Topics: blazor, blazor-webassembly, csharp, dotnet, syncfusion
- Language: C#
- Homepage:
- Size: 171 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.