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
<PackageReference Include="Lyo.FileStorage.Web.Components" Version="1.0.1" />
<PackageVersion Include="Lyo.FileStorage.Web.Components" Version="1.0.1" />
<PackageReference Include="Lyo.FileStorage.Web.Components" />
paket add Lyo.FileStorage.Web.Components --version 1.0.1
#r "nuget: Lyo.FileStorage.Web.Components, 1.0.1"
#:package Lyo.FileStorage.Web.Components@1.0.1
#addin nuget:?package=Lyo.FileStorage.Web.Components&version=1.0.1
#tool nuget:?package=Lyo.FileStorage.Web.Components&version=1.0.1
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:
- 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 / 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. |
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.1)
- Lyo.Common (>= 1.0.1)
- Lyo.FileMetadataStore (>= 1.0.1)
- Lyo.FileStorage (>= 1.0.1)
- Lyo.Hashing (>= 1.0.1)
- Lyo.IO.Temp (>= 1.0.1)
- Lyo.KeyStore (>= 1.0.1)
- Lyo.Web.Components (>= 1.0.1)
- 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.