CShells.Providers.FluentStorage 0.0.11

CShells.Providers.FluentStorage

FluentStorage integration provider for CShells enabling shell configuration storage in various backends.

Purpose

This package provides a shell settings provider that uses FluentStorage to load and persist shell configurations from various storage backends including local disk, Azure Blob Storage, AWS S3, and more.

When to Use

  • Store shell configurations as individual JSON files instead of appsettings.json
  • Load shell configurations from cloud storage (Azure Blob, AWS S3)
  • Enable dynamic shell configuration updates without application restart
  • Separate shell configuration from application configuration
  • Multi-environment deployments with centralized configuration storage

Supported Storage Backends

FluentStorage supports numerous storage providers:

  • Local disk - Directory-based file storage
  • Azure Blob Storage - Azure cloud storage
  • AWS S3 - Amazon cloud storage
  • In-memory - Temporary storage for testing
  • And many more FluentStorage providers

Installation

dotnet add package CShells.Providers.FluentStorage
dotnet add package FluentStorage
# Add specific FluentStorage provider packages as needed
# e.g., FluentStorage.Azure.Blobs, FluentStorage.AWS

Quick Start

Local Disk Storage

Create JSON files in a Shells folder (e.g., Default.json, Admin.json):

Shells/Default.json:

{
  "Name": "Default",
  "Features": ["Core", "Weather"],
  "Configuration": {
    "WebRouting": {
      "Path": ""
    }
  }
}

Shells/Admin.json:

{
  "Name": "Admin",
  "Features": ["Core", "Admin"],
  "Configuration": {
    "WebRouting": {
      "Path": "admin",
      "RoutePrefix": "api/v1"
    }
  }
}

Program.cs:

using FluentStorage;
using CShells.Providers.FluentStorage;

var builder = WebApplication.CreateBuilder(args);

var shellsPath = Path.Combine(builder.Environment.ContentRootPath, "Shells");
var blobStorage = StorageFactory.Blobs.DirectoryFiles(shellsPath);

builder.AddShells(cshells =>
{
    cshells.WithFluentStorageProvider(blobStorage);
});

var app = builder.Build();
app.MapShells();
app.Run();

Azure Blob Storage

using FluentStorage;
using FluentStorage.Azure.Blobs;
using CShells.Providers.FluentStorage;

var builder = WebApplication.CreateBuilder(args);

var connectionString = builder.Configuration.GetConnectionString("AzureStorage");
var blobStorage = StorageFactory.Blobs.AzureBlobStorage(connectionString, "shells");

builder.AddShells(cshells =>
{
    cshells.WithFluentStorageProvider(blobStorage);
});

var app = builder.Build();
app.MapShells();
app.Run();

AWS S3 Storage

using FluentStorage;
using FluentStorage.AWS;
using CShells.Providers.FluentStorage;

var builder = WebApplication.CreateBuilder(args);

var blobStorage = StorageFactory.Blobs.AwsS3(
    accessKeyId: "your-access-key",
    secretAccessKey: "your-secret-key",
    bucketName: "shells",
    region: "us-east-1"
);

builder.AddShells(cshells =>
{
    cshells.WithFluentStorageProvider(blobStorage);
});

var app = builder.Build();
app.MapShells();
app.Run();

File Naming Convention

Shell configuration files should be named with the shell name followed by .json:

  • Default.json → Shell with Name: "Default"
  • Acme.json → Shell with Name: "Acme"
  • Contoso.json → Shell with Name: "Contoso"

Configuration Format

Each JSON file should contain a complete shell configuration:

{
  "Name": "ShellName",
  "Features": ["Feature1", "Feature2"],
  "Configuration": {
    "WebRouting": {
      "Path": "path",
      "Host": "example.com",
      "RoutePrefix": "api/v1"
    },
    "CustomSetting": "value"
  }
}

Benefits

  • Separation of concerns - Shell configurations separate from application settings
  • Dynamic updates - Update shell configurations without rebuilding or redeploying
  • Centralized management - Store configurations in cloud storage accessible across deployments
  • Version control friendly - Individual files are easier to track and manage
  • Environment-specific - Different storage backends for different environments

Learn More

No packages depend on CShells.Providers.FluentStorage.

.NET 8.0

.NET 9.0

.NET 10.0

Version Downloads Last updated
0.0.31 2 10/19/2026
0.0.30 6 10/17/2026
0.0.29 5 10/10/2026
0.0.28 5 09/29/2026
0.0.27 5 09/29/2026
0.0.26 5 09/29/2026
0.0.25 5 09/29/2026
0.0.24 5 09/29/2026
0.0.23 5 09/28/2026
0.0.22 5 09/29/2026
0.0.21 5 09/29/2026
0.0.20 5 09/28/2026
0.0.19 5 09/29/2026
0.0.18 5 09/29/2026
0.0.17 5 09/29/2026
0.0.16 5 09/29/2026
0.0.15 5 09/29/2026
0.0.14 5 09/29/2026
0.0.13 5 09/29/2026
0.0.12 5 09/29/2026
0.0.11 4 09/28/2026
0.0.10 5 09/29/2026
0.0.9 5 09/22/2026
0.0.8 4 09/22/2026
0.0.7 5 09/22/2026
0.0.6 5 09/22/2026