Skip to content

No way to pre-select or auto-select log table on load (single provider scenario) #212

Description

@richburgess

Is your feature request related to a problem? Please describe.

With Serilog.UI 3.2.0 and a single MSSQL provider (MsSQL.dbo.Logs), the dashboard loads but does not fetch logs until I manually select the table in the “Table” filter dropdown—even though /api/keys returns only one entry.

The backend already defaults to the first provider when no key is passed (AggregateDataProvider), but the frontend blocks /api/logs until the React form’s table field is set (useQueryLogs returns null when empty). For a one-table setup, the dropdown adds friction on every visit and makes iframe embedding awkward (empty log area until manual interaction).

I also tried /serilog-ui/?table=MsSQL.dbo.Logs; it had no effect in 3.2.0. The Configure wiki doesn’t document a default provider/table option.

Describe the solution you'd like

When only one provider is registered, auto-select it on load and trigger the initial log fetch—or expose a supported way to pre-select it, for example:

  • auto-select when keys.length === 1
  • URL param: /serilog-ui/?table=MsSQL.dbo.Logs
  • server config: e.g. WithDefaultProvider(...) or AutoSelectSingleProvider(true)

Describe alternatives you've considered

  • ?table= query param — no effect in 3.2.0
  • InjectJavascript DOM workaround — fragile with Mantine/React; unreliable
  • Iframe + parent-page script — same problem
  • Accept manual selection — works but poor UX for a single-table deployment
  • Custom log viewer instead of Serilog.UI — viable, but we’d prefer to use Serilog.UI properly

Additional context

  • Serilog.UI 3.2.0, Serilog.UI.MsSqlServerProvider 3.2.0, ASP.NET Core 8
  • Single provider: UseSqlServer(...).WithTable("Logs").WithSchema("dbo")
  • Auth: AddScopedPolicyAuthFilter + EnableAuthorizationOnAppRoutes()
  • /serilog-ui/api/keys → ["MsSQL.dbo.Logs"] ✓
  • /serilog-ui/api/logs?key=MsSQL.dbo.Logs ✓ once table is selected manually
  • v3.2.0 tests in Search.spec.tsx call selectTable() before every fetch assertion

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions