---
title: SAIF.NetCore.Clients.UC4 overview
summary: High-level purpose, scope, and responsibilities for this library.
status: draft
owner: SAIF Framework Platform Team
last_reviewed: 2026-10-02
library: SAIF.NetCore.Clients.UC4
reference_type: package
---

# SAIF.NetCore.Clients.UC4 overview

> **Documentation context:** Distributed as a NuGet package.

SAIF.NetCore.Clients.UC4 is a thin implementation-layer client library that lets a SAIF application schedule jobs against the UC4/Automic job-scheduling system's "UC4 Core API" over HTTP, without taking on any dependency beyond the SAIF foundation contracts.

## Purpose
- Provide a single typed client, `IUC4Client`/`UC4Client`, that schedules a named UC4/Automic job by posting an empty JSON object (`{}`), with no job parameters, to a configured route.
- Validate at construction time that the Environment API holds the two settings the client needs (`uc4coreapi:url`, `uc4coreapi:schedulejobroute`), failing fast with `NotSupportedException` if either key is absent.
- Leave authentication, retry, and response handling to the injected `IHttpJsonClient`, and leave success/failure interpretation to the calling application.

## Responsibilities
- Resolve and cache the UC4 Core API base URL and schedule-job route from the Environment API section `uc4coreapi`.
- Lazily configure the injected `IHttpJsonClient` with caller-identity information (`Client-User`, `Client-Name`, `Application-ID`) on the first `ScheduleJob` call.
- Issue the outbound POST that starts a named UC4 job and return the raw `IHttpRequestResult` unchanged.

## Key components
- `IUC4Client` (`SAIF.NetCore.Clients.UC4`): the public contract exposing `ScheduleJob(string appname, string jobname)`.
- `UC4Client` (`SAIF.NetCore.Clients.UC4.Services`): the sole implementation; owns settings validation, lazy initialization, and the outbound call.
- `Constants` (internal): the `uc4coreapi` setting-group and key names.

## Related documentation
- [Index](index.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Configuration](configuration.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [API reference](api/index.md)

## Sources
- `src/SAIF.NetCore.Clients.UC4/SAIF.NetCore.Clients.UC4/SAIF.NetCore.Clients.UC4/SAIF.NetCore.Clients.UC4.csproj`
- `src/SAIF.NetCore.Clients.UC4/SAIF.NetCore.Clients.UC4/SAIF.NetCore.Clients.UC4/Constants.cs`
- `src/SAIF.NetCore.Clients.UC4/SAIF.NetCore.Clients.UC4/SAIF.NetCore.Clients.UC4/IUC4Client.cs`
- `src/SAIF.NetCore.Clients.UC4/SAIF.NetCore.Clients.UC4/SAIF.NetCore.Clients.UC4/Services/UC4Client.cs`
