Lyo.FileStorage.Web.Components
1.0.0
dotnet add package Lyo.FileStorage.Web.Components --version 1.0.0
NuGet\Install-Package Lyo.FileStorage.Web.Components -Version 1.0.0
<PackageReference Include="Lyo.FileStorage.Web.Components" Version="1.0.0" />
<PackageVersion Include="Lyo.FileStorage.Web.Components" Version="1.0.0" />
<PackageReference Include="Lyo.FileStorage.Web.Components" />
paket add Lyo.FileStorage.Web.Components --version 1.0.0
#r "nuget: Lyo.FileStorage.Web.Components, 1.0.0"
#:package Lyo.FileStorage.Web.Components@1.0.0
#addin nuget:?package=Lyo.FileStorage.Web.Components&version=1.0.0
#tool nuget:?package=Lyo.FileStorage.Web.Components&version=1.0.0
Lyo.FileStorage.Web.Components
Blazor (Server / Interactive) UI for Lyo.FileStorage — workbench grids and dialogs for exploring file metadata, generating download access links, and managing two-key encryption keys.
Two integration modes are supported, controlled by FileStorageWorkbenchOptions:
- Proxy mode — talks to a backend host (typically
Lyo.Gateway.Api, orLyo.TestApifor kitchen-sink) overLyo.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 / 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) |
Searchable file metadata grid with row actions (download via access link, view metadata dialog, copy, delete). |
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). |
FileStorageGridRowHelper |
Shared row formatter for both tabs. |
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. |
Access link API models
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): - FileStorageWorkbenchCreateAccessLinkRequest — FileId, 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
FileStorageWorkbenchOptionsfrom configuration. - Registers an
IApiClient(proxy mode) or registers keyedIFileStorageService+IKeyStore+IFileMetadataStore(in-process mode). - Registers an implementation of
IFileStorageWorkbenchQueryService— the Gateway providesTestApiFileStorageWorkbenchQueryServicefor proxy mode. - Adds MudBlazor (
AddMudServices) and theLyo.Web.Componentsdialog/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)MudBlazor9.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.LocalStorage4.5.0— (transitive, third-party)BouncyCastle.Cryptography2.6.2— (transitive, third-party, netstandard2.0)EasyCompressor2.1.0— (transitive, third-party)Konscious.Security.Cryptography.Argon21.3.1— (transitive, third-party)Microsoft.Bcl.AsyncInterfaces10.0.5— (transitive, microsoft, netstandard2.0)Microsoft.Extensions.Configuration.Binder10.0.5— (transitive, microsoft)Microsoft.Extensions.DependencyInjection.Abstractions10.0.5— (transitive, microsoft, net10.0, netstandard2.0)Microsoft.Extensions.Hosting.Abstractions10.0.5— (transitive, microsoft)Microsoft.Extensions.Http10.0.5— (transitive, microsoft)Microsoft.Extensions.Logging.Abstractions10.0.5— (transitive, microsoft)Microsoft.Extensions.Options.ConfigurationExtensions10.0.5— (transitive, microsoft)Microsoft.Extensions.Options.DataAnnotations10.0.5— (transitive, microsoft)System.Buffers4.6.1— (transitive, microsoft, netstandard2.0)System.ComponentModel.Annotations5.0.0— (transitive, microsoft)System.IO.Hashing10.0.5— (transitive, microsoft, net10.0)System.Memory4.6.3— (transitive, microsoft, netstandard2.0)System.Text.Json10.0.5— (transitive, microsoft, netstandard2.0)System.Threading.Tasks.Extensions4.6.3— (transitive, microsoft, netstandard2.0)
| Product | Versions 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. |
-
net10.0
- Lyo.Api.Client (>= 1.0.0)
- Lyo.Common (>= 1.0.0)
- Lyo.FileMetadataStore (>= 1.0.0)
- Lyo.FileStorage (>= 1.0.0)
- Lyo.Hashing (>= 1.0.0)
- Lyo.IO.Temp (>= 1.0.0)
- Lyo.KeyStore (>= 1.0.0)
- Lyo.Web.Components (>= 1.0.0)
- MudBlazor (>= 9.3.0 && < 10.0.0)
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.0 | 53 | 8/16/2026 |