Interactive Advisory-Source Probes
The Console’s source Check and Check All actions call Concelier’s source-management endpoints. These are interactive readiness probes, not connector ingestion runs.
HTTP contract
POST /api/v1/advisory-sources/{sourceId}/checkreturns HTTP 200 with aSourceConnectivityResultwhen an upstream responds successfully, responds with a non-success status, cannot be reached, or exceeds the Concelier probe budget.- A timeout result has
status = Failed,errorCode = TIMEOUT, measuredlatency, possible reasons, and remediation steps. - An upstream non-success response remains HTTP 200 at the Concelier endpoint and records the upstream status in
httpStatusCode. - Caller cancellation is not converted into a source failure result; it propagates immediately so abandoned Router/browser requests stop their downstream work.
This contract is source-neutral. Do not add vendor-specific timeout handling for a slow endpoint.
Timeout configuration
sources:ConnectivityCheckTimeoutSeconds is the single authoritative budget for interactive probes:
- default:
12 - accepted range:
1through12 - environment form:
SOURCES__CONNECTIVITYCHECKTIMEOUTSECONDS
Values above 12 fail options validation at startup. The ceiling is intentionally below Router’s unchanged 30-second request budget so Concelier has time to serialize and route the typed result instead of allowing the gateway to emit HTTP 504.
The named source HttpClient instances do not impose a second request timeout. The linked per-probe cancellation token owns the budget. Connector fetch/sync jobs retain their separate connector-specific timeouts; those non-interactive settings do not control the Check or Check All actions.
No explicit compose override is required. With no SOURCES__CONNECTIVITYCHECKTIMEOUTSECONDS value, the service uses the validated 12-second default.
Deployment state
As of 2026-07-20, the local stellaops-concelier container is healthy but still runs pre-fix source commit 4740c0e7ac396f3fb421145a367538528f0a72ab, with no explicit interactive-probe timeout override. The contract documented here becomes live only after a coordinated Concelier rebuild and service recreation. Do not treat source-level verification as proof that the current container has converged.
Verification
Use an authenticated source-management identity and inspect both the outer HTTP response and typed body:
POST /api/v1/advisory-sources/{sourceId}/check
outer status: 200
body.status: Failed
body.errorCode: TIMEOUT
body.latency: present
For a non-success upstream response, body.httpStatusCode carries that upstream code. A gateway 504 means the live Concelier image/configuration has not converged to this contract or another boundary consumed the request budget first.
