Skip to content

Commit cfcb7dc

Browse files
committed
Document observability and runtime permissions
1 parent 95e6e2a commit cfcb7dc

3 files changed

Lines changed: 10 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ This project follows [Semantic Versioning](https://semver.org/): incompatible pu
1212
- Typed jobs, durable retry and idempotent enqueue.
1313
- Durable schedules, static workflow DAGs, management, recovery, leases, and fencing.
1414
- Simplified managed API, SQL migration modes, and .NET Framework 4.7.2/WPF consumer support.
15+
- Dashboard and storage-neutral observability management API, including queue health, execution filters, stable management keys, worker heartbeat diagnostics, and SQL parity smoke tests.
16+
- Restricted Windows runtime-identity smoke test for `ValidateOnly` SQL deployments.
1517

1618
### Changed
1719

docs/management-monitoring.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,5 @@ dotnet run --project BasaltDashboard -- --sql "<connection string>"
4848
The dashboard shows overview queue cards, executions, failed/dead/retrying work, schedules, workflows, observed workers, and cumulative statistics. The executions view has a state filter and selected-execution lifecycle/ledger detail. Its selected execution and schedule controls call the same public `Cancel`, `Requeue`, `PauseSchedule`, `ResumeSchedule`, and `RemoveSchedule` methods available to an application. It does not start workers or modify provider configuration.
4949

5050
`sql-observability-smoke` is a manual SQL parity check. It creates an isolated database named `BasaltObservabilitySmoke_*` and removes it in `finally`, including after a failed assertion.
51+
52+
`tests/BasaltPermissionSmoke` separately verifies the restricted SQL runtime model under a real Windows identity. It creates its Basalt schema with a migration identity, opens it as `ValidateOnly` from the runtime process, and confirms that the runtime can manage Basalt work but cannot modify a foreign `dbo` table.

docs/sql-server.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ GRANT UPDATE
3838

3939
Use `ValidateOnly` for this runtime identity. Do not grant it schema ownership, `ALTER`, `CONTROL`, or rights on unrelated application schemas unless the application independently requires them.
4040

41+
### Restricted runtime verification
42+
43+
`tests/BasaltPermissionSmoke` is a manual Windows-authentication verification for this model. Its `--migrate` mode must run under the migration identity; it creates a dedicated Basalt schema and grants only the permissions above to the runtime identity. Run the normal mode in a process started as that runtime Windows account. It verifies typed idempotent enqueue, retry, claim/completion, management reads, `ValidateOnly`, health, and denial of an attempted update to a foreign `dbo` sentinel table. Run `--cleanup` under the migration identity afterwards; it removes the dedicated schema and sentinel.
44+
45+
The smoke does not require SQL authentication and never grants DDL rights to the runtime identity.
46+
4147
## Connections and workers
4248

4349
Basalt creates, opens, and disposes its own SQL connections. Supply either a connection string or a factory returning a fresh `Microsoft.Data.SqlClient.SqlConnection`:

0 commit comments

Comments
 (0)