feat(esg): TimeoutSeconds in ExternalSystem UI form + Component-ExternalSystemGateway doc sync — closes the spec-drift gap

Claude-Session: https://claude.ai/code/session_01MtdgwpEeCUn6cUA5f1LMPj
This commit is contained in:
Joseph Doherty
2026-07-10 04:06:53 -04:00
parent e3ef320359
commit f0dd016207
3 changed files with 74 additions and 3 deletions
@@ -62,6 +62,11 @@
<label class="form-label">Retry Delay (seconds)</label>
<input type="number" class="form-control" @bind="_retryDelaySeconds" min="0" />
</div>
<div class="mb-3">
<label class="form-label">Timeout (seconds)</label>
<input type="number" class="form-control" @bind="_timeoutSeconds" min="0" />
<div class="form-text">0 = use gateway default</div>
</div>
@if (_formError != null)
{
@@ -85,6 +90,7 @@
private string? _authConfig;
private int _maxRetries = 3;
private int _retryDelaySeconds = 5;
private int _timeoutSeconds;
private string? _formError;
private ExternalSystemDefinition? _existing;
@@ -112,6 +118,7 @@
_authConfig = _existing.AuthConfiguration;
_maxRetries = _existing.MaxRetries;
_retryDelaySeconds = (int)_existing.RetryDelay.TotalSeconds;
_timeoutSeconds = _existing.TimeoutSeconds;
}
}
catch (Exception ex) { _formError = ex.Message; }
@@ -138,6 +145,7 @@
_existing.AuthConfiguration = _authConfig?.Trim();
_existing.MaxRetries = _maxRetries;
_existing.RetryDelay = TimeSpan.FromSeconds(_retryDelaySeconds);
_existing.TimeoutSeconds = _timeoutSeconds;
await ExternalSystemRepository.UpdateExternalSystemAsync(_existing);
}
else
@@ -146,7 +154,8 @@
{
AuthConfiguration = _authConfig?.Trim(),
MaxRetries = _maxRetries,
RetryDelay = TimeSpan.FromSeconds(_retryDelaySeconds)
RetryDelay = TimeSpan.FromSeconds(_retryDelaySeconds),
TimeoutSeconds = _timeoutSeconds
};
await ExternalSystemRepository.AddExternalSystemAsync(es);
}