---
title: Is developer machine
summary: OP-11 operation detail page.
status: draft
owner: Framework.NCore maintainers
last_reviewed: 2026-10-02
library: SAIF.NetCore.EnvironmentClient
reference_type: package
---

# Is developer machine

| Field | Value |
| --- | --- |
| Owner | `IsDeveloperMachine` (`public virtual`, part of `IEnvironmentClient`) |
| Trigger | Consumer call; also used internally during [Initialize environment client](initialize-environment-client.md) step 7 and [SecureEnvironmentClient](../api/saif-netcore-services-environmentclient/secureenvironmentclient.md) construction gate |
| Inputs | `HostResolver.AppConfigOverride`, set by [Resolve host](resolve-host.md) |
| Outputs | `true`/`false` |

## Steps
1. Return `HostResolver.AppConfigOverride` as computed during host resolution — see [Resolve host](resolve-host.md) steps 1–2 ([BR-EC-04](../business-rules.md#br-ec-04-a-config-file-host-override-requires-ad-override-permission-and-group-membership), [BR-EC-05](../business-rules.md#br-ec-05-a-non-empty-applicationhost-override-sets-the-host-and-marks-appconfigoverride), [BR-EC-29](../business-rules.md#br-ec-29-a-developer-machine-is-one-where-the-config-file-host-override-applied)).
2. `HostResolver.ResolveHost` is called once per `Setup()` call, which itself normally runs once at construction. `AppConfigOverride` therefore reflects the resolver's state at the time it was last set, not a value re-evaluated per call to `IsDeveloperMachine`. Because `Setup()` is `public virtual` and `HostResolver.ResolveHost` can be invoked again by a derived or test client, this is not an unconditional, enforced one-time guarantee at the base-class level.
3. A `true` result requires both AD group membership **and** a non-empty `AppSettings:ApplicationHost`; AD membership alone is not sufficient (see [security and authorization](../security-authorization.md#ad-resource-catalog)).
4. `IsDeveloperMachine` is itself `virtual`, so a derived environment client type may override this method with different logic; the base implementation described here is the one used by `BaseEnvironmentClient` and (unless overridden) `SecureEnvironmentClient`.

## Process flow

```mermaid
flowchart TD
    A[IsDeveloperMachine] --> B[Return HostResolver.AppConfigOverride]
    B --> C["Reflects state set by the<br>most recent ResolveHost call"]
```

## Sources
- `src/SAIF.NetCore.EnvironmentClient/SAIF.NetCore.EnvironmentClient/SAIF.NetCore.EnvironmentClient/BaseEnvironmentClient.cs`
- `src/SAIF.NetCore.EnvironmentClient/SAIF.NetCore.EnvironmentClient/SAIF.NetCore.EnvironmentClient/HostResolver.cs`
