Lyo.FileStorage.Web.Components 1.0.1

dotnet add package Lyo.FileStorage.Web.Components --version 1.0.1
                    
NuGet\Install-Package Lyo.FileStorage.Web.Components -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Lyo.FileStorage.Web.Components" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Lyo.FileStorage.Web.Components" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Lyo.FileStorage.Web.Components" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Lyo.FileStorage.Web.Components --version 1.0.1
                    
#r "nuget: Lyo.FileStorage.Web.Components, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Lyo.FileStorage.Web.Components@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Lyo.FileStorage.Web.Components&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Lyo.FileStorage.Web.Components&version=1.0.1
                    
Install as a Cake Tool

Lyo.FileStorage.Web.Components

Blazor (Server / Interactive) UI for Lyo.FileStorage — workbench grids and dialogs for exploring file metadata, expected storage keys, generating download access links, and managing two-key encryption keys.

Two integration modes are supported, controlled by FileStorageWorkbenchOptions:

  1. Proxy mode — talks to a backend host (typically Lyo.Gateway.Api, or Lyo.TestApi for kitchen-sink) over Lyo.Api.Client.IApiClient. The workbench never sees raw storage credentials. 2. In-process mode — host auto-registers a keyed file-storage stack (S3 + AWS Secrets Manager keystore + Postgres metadata) directly inside the Blazor app.

Components

Component Role
FileStorageWorkbench (FileStorageWorkbench.razor / .razor.cs) Top-level workbench surface with Files / Browser / Keys tabs and registration sanity checks.
FileStorageWorkbenchHeader Title bar + tab selector.
FileStorageRegistrationAlerts Warns when required services (IFileStorageService, IKeyStore, IFileStorageWorkbenchQueryService, IApiClient) are missing or misconfigured.
FileStoreFilesTab (.razor, .razor.cs, .razor.css) Upload/save plus DEK/KEK migrate and rotate. File listing lives on the Browser tab.
FileStorageBrowser (.razor, .razor.cs, .razor.css) Two LyoDataGridProjected views over QueryProject file metadata: operator columns, and expected storage keys from CloudObjectKeyBuilder.FromMetadata. Row and bulk actions (view, access link, download, move, copy, rename, rotate DEK, delete). Optional Exists chip when the storage service implements IFileStorageDiagnosticsService.
FileStorageBrowserActions Shared handlers and dialogs used by both Browser grids.
FileStoreKeysTab (.razor, .razor.cs) Keystore listing with current-version highlighting, file count per key, and DEK migrate / rotate controls.
FileStoreAccessLinkDialog Confirms link parameters and shows the issued token + expiry.
FileStoreMetadataDialog Read-only metadata viewer (encryption header, hashes, audit fields, deletion state).
FileStoreMoveDialog, FileStoreCopyDialog, FileStoreRenameDialog, FileStoreRotateDekDialog Path-prefix, display-name, and DEK rotation prompts for Browser row/bulk actions.
FileStorageGridRowHelper Projected-row helpers (file id, deleted-at, expected storage key) for the Browser grids.

Services

Type Purpose
IFileStorageWorkbenchQueryService Searches files (FileStorageWorkbenchFileQuery) and keys (FileStorageWorkbenchKeyQuery) and projects to FileStoreResult / FileStorageWorkbenchKeyRecord. The Test Gateway ships an HTTP-backed implementation in Lyo.TestGateway.
FileStorageWorkbenchServiceResolver Centralises lookup of IFileStorageService and IKeyStore against the configured key names so the rest of the UI is decoupled from keyed-DI mechanics.
FileStorageWorkbenchOptions Binds the FileStorageWorkbench configuration section.

FileStorageWorkbenchAccessLinkApiModels.cs defines the request/response shapes the workbench uses to call the host's access-link endpoint (implemented by * Lyo.FileMetadataStore.Postgres.IFileDownloadAccessService* in proxy mode): - FileStorageWorkbenchCreateAccessLinkRequestFileId, optional ExpiresIn, audit fields (Actor, Reason). - FileStorageWorkbenchAccessLinkResponse — opaque token, absolute download URL, UTC expiry.

Options — FileStorageWorkbenchOptions

Default section: FileStorageWorkbench.

Property Default Notes
UseRemoteApiServices true Resolve the workbench through HTTP calls to a remote API via Lyo.Api.Client.IApiClient. Legacy alias: UseTestApiServices.
AutoRegisterS3Services false Host auto-registers AWS Secrets Manager keystore + S3 file storage stack from configuration.
ApiRoutePrefix Workbench/FileStorage Route prefix on the API used for the workbench endpoints.
StreamUploadRelativePath upload/file Endpoint for multipart streaming uploads; set empty to fall back to {ApiRoutePrefix}/files/save-stream.
FileStorageServiceKey gateway-filestorage Keyed service name used when resolving IFileStorageService.
KeyStoreServiceKey gateway-filestorage Keyed service name used when resolving IKeyStore.
MetadataStoreKey gateway-filestorage-metadata Keyed metadata store name used when auto-registering the S3 stack.
AwsKeyStoreConfigSection AwsKeyStore Configuration section for AWS Secrets Manager keystore settings.
S3FileStorageConfigSection S3FileStorageOptions Configuration section that binds S3FileStorageOptions.
MetadataStoreConfigSection PostgresFileMetadataStore Configuration section for the backing metadata store.

Host integration

  • Binds FileStorageWorkbenchOptions from configuration.
  • Registers an IApiClient (proxy mode) or registers keyed IFileStorageService + IKeyStore + IFileMetadataStore (in-process mode).
  • Registers an implementation of IFileStorageWorkbenchQueryService — the Gateway provides TestApiFileStorageWorkbenchQueryService for proxy mode.
  • Adds MudBlazor (AddMudServices) and the Lyo.Web.Components dialog/snackbar plumbing.
  • Mounts <FileStorageWorkbench /> on a route.

Dependencies

Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).

  • Lyo.Api.Client — (direct, lyo)
  • Lyo.Common — (direct, lyo)
  • Lyo.FileMetadataStore — (direct, lyo)
  • Lyo.FileStorage — (direct, lyo)
  • Lyo.Hashing — (direct, lyo)
  • Lyo.IO.Temp — (direct, lyo)
  • Lyo.KeyStore — (direct, lyo)
  • Lyo.Web.Components — (direct, lyo)
  • MudBlazor 9.3 — (direct, third-party)
  • Lyo.Api.Models — (transitive, lyo)
  • Lyo.Compression — (transitive, lyo)
  • Lyo.ContentThreatScan — (transitive, lyo)
  • Lyo.DataTable.Models — (transitive, lyo)
  • Lyo.DateAndTime — (transitive, lyo)
  • Lyo.Diagnostic — (transitive, lyo)
  • Lyo.Encryption — (transitive, lyo)
  • Lyo.Exceptions — (transitive, lyo)
  • Lyo.Health — (transitive, lyo)
  • Lyo.Metrics — (transitive, lyo)
  • Lyo.PackageMetadata — (transitive, lyo)
  • Lyo.Query.Models — (transitive, lyo)
  • Lyo.Result — (transitive, lyo)
  • Lyo.Streams — (transitive, lyo)
  • Lyo.Validation — (transitive, lyo)
  • Blazored.LocalStorage 4.5.0 — (transitive, third-party)
  • BouncyCastle.Cryptography 2.6.2 — (transitive, third-party, netstandard2.0)
  • EasyCompressor 2.1.0 — (transitive, third-party)
  • Konscious.Security.Cryptography.Argon2 1.3.1 — (transitive, third-party)
  • Microsoft.Bcl.AsyncInterfaces 10.0.5 — (transitive, microsoft, netstandard2.0)
  • Microsoft.Extensions.Configuration.Binder 10.0.5 — (transitive, microsoft)
  • Microsoft.Extensions.DependencyInjection.Abstractions 10.0.5 — (transitive, microsoft, net10.0, netstandard2.0)
  • Microsoft.Extensions.Hosting.Abstractions 10.0.5 — (transitive, microsoft)
  • Microsoft.Extensions.Http 10.0.5 — (transitive, microsoft)
  • Microsoft.Extensions.Logging.Abstractions 10.0.5 — (transitive, microsoft)
  • Microsoft.Extensions.Options.ConfigurationExtensions 10.0.5 — (transitive, microsoft)
  • Microsoft.Extensions.Options.DataAnnotations 10.0.5 — (transitive, microsoft)
  • System.Buffers 4.6.1 — (transitive, microsoft, netstandard2.0)
  • System.ComponentModel.Annotations 5.0.0 — (transitive, microsoft)
  • System.IO.Hashing 10.0.5 — (transitive, microsoft, net10.0)
  • System.Memory 4.6.3 — (transitive, microsoft, netstandard2.0)
  • System.Text.Json 10.0.5 — (transitive, microsoft, netstandard2.0)
  • System.Threading.Tasks.Extensions 4.6.3 — (transitive, microsoft, netstandard2.0)
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 0 8/18/2026
1.0.0 61 8/16/2026