b659978764
- WP-1-3: Central/site failover + dual-node recovery tests (17 tests) - WP-4: Performance testing framework for target scale (7 tests) - WP-5: Security hardening (LDAPS, JWT key length, no secrets in logs) (11 tests) - WP-6: Script sandboxing adversarial tests (28 tests, all forbidden APIs) - WP-7: Recovery drill test scaffolds (5 tests) - WP-8: Observability validation (structured logs, correlation IDs, metrics) (6 tests) - WP-9: Message contract compatibility (forward/backward compat) (18 tests) - WP-10: Deployment packaging (installation guide, production checklist, topology) - WP-11: Operational runbooks (failover, troubleshooting, maintenance) 92 new tests, all passing. Zero warnings.
30 lines
1002 B
C#
30 lines
1002 B
C#
using System.Data.Common;
|
|
|
|
namespace ScadaLink.Commons.Interfaces.Services;
|
|
|
|
/// <summary>
|
|
/// Interface for database access from scripts.
|
|
/// Implemented by ExternalSystemGateway, consumed by ScriptRuntimeContext.
|
|
/// </summary>
|
|
public interface IDatabaseGateway
|
|
{
|
|
/// <summary>
|
|
/// Returns an ADO.NET DbConnection (typically SqlConnection) from the named connection.
|
|
/// Connection pooling is managed by the underlying provider.
|
|
/// Caller is responsible for disposing.
|
|
/// </summary>
|
|
Task<DbConnection> GetConnectionAsync(
|
|
string connectionName,
|
|
CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Submits a SQL write to the store-and-forward engine for reliable delivery.
|
|
/// </summary>
|
|
Task CachedWriteAsync(
|
|
string connectionName,
|
|
string sql,
|
|
IReadOnlyDictionary<string, object?>? parameters = null,
|
|
string? originInstanceName = null,
|
|
CancellationToken cancellationToken = default);
|
|
}
|