Lyo.FileStorage.Web.Components
1.0.6
See the version list below for details.
dotnet add package Lyo.FileStorage.Web.Components --version 1.0.6
NuGet\Install-Package Lyo.FileStorage.Web.Components -Version 1.0.6
<PackageReference Include="Lyo.FileStorage.Web.Components" Version="1.0.6" />
<PackageVersion Include="Lyo.FileStorage.Web.Components" Version="1.0.6" />
<PackageReference Include="Lyo.FileStorage.Web.Components" />
paket add Lyo.FileStorage.Web.Components --version 1.0.6
#r "nuget: Lyo.FileStorage.Web.Components, 1.0.6"
#:package Lyo.FileStorage.Web.Components@1.0.6
#addin nuget:?package=Lyo.FileStorage.Web.Components&version=1.0.6
#tool nuget:?package=Lyo.FileStorage.Web.Components&version=1.0.6
Lyo.FileStorage.Web.Components
Blazor Server / Interactive UI for Lyo.FileStorage. Workbench grids and dialogs for file metadata, expected storage keys, download access links, and two-key encryption keys.
Two integration modes, controlled by FileStorageWorkbenchOptions:
- 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 with Files / Browser / Keys tabs and registration sanity checks. |
| FileStorageWorkbenchHeader | Title bar and 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 the current version marked, 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 | Looks up 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.
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)MudBlazor9.3(direct, third-party)Lyo.Api.Models(transitive, lyo)Lyo.Cache(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(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.Caching.Memory10.0.5(transitive, microsoft)Microsoft.Extensions.Configuration.Binder10.0.5(transitive, microsoft)Microsoft.Extensions.DependencyInjection10.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.6)
- Lyo.Common (>= 1.0.6)
- Lyo.FileMetadataStore (>= 1.0.6)
- Lyo.FileStorage (>= 1.0.6)
- Lyo.Hashing (>= 1.0.6)
- Lyo.IO.Temp (>= 1.0.6)
- Lyo.KeyStore (>= 1.0.6)
- Lyo.Web.Components (>= 1.0.6)
- 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.