Configuration Management

Configuration Management is 4.1% of the CCDV-F blueprint, a little over two of the 53 scored questions. It covers what counts as configuration in a Claude-backed system, how client libraries actually resolve credentials, why model identifiers are pinned deliberately, and how environments are kept apart.

Written by Kiran Manne

4.1% of the CCDV-F blueprint, which is roughly 2 questions of 53. It sits inside Applications and Integration, worth 33.1% in total.

Configuration Management is 4.1 percent of the CCDV-F blueprint, a little over two of the 53 scored questions. Its scope is narrower than the name suggests: not infrastructure provisioning, but the values a running system reads and the discipline around changing them.

Start with an inventory, because the first thing this sub-skill tests is whether you recognise configuration when you see it. The model identifier is configuration. So are the effort level, the output cap, the timeout and retry counts, the tool set enabled for a given deployment, any beta feature flags in play, the endpoint the client talks to, and every toggle guarding a rollout. Prompts sit at the boundary: they are versioned artefacts belonging in the repository, and treating them as runtime settings someone can edit in a console is how teams lose their audit trail.

Credentials are configuration under stricter rules, and their mechanics are more interesting than candidates expect. The client libraries resolve credentials from several sources in a defined order, which means an unset environment variable does not imply the absence of a credential. Knowing that order turns a baffling authentication failure into a two-minute fix.

What the exam tests here

  • Telling configuration apart from code and from versioned content such as prompts
  • Why model identifiers are exact strings that should be pinned rather than assembled
  • The order in which client libraries resolve credentials, and what shadows what
  • Keeping environments separated with differences that are deliberate rather than accidental
  • Validating configuration at startup instead of discovering an invalid value on the first request
  • Managing beta feature flags and provider endpoints as versioned settings

Model identifiers are exact strings

An identifier is a literal the API either recognises or rejects with a not-found error. It is not a pattern you can extend. Appending a date suffix to a current identifier because older ones carried dates produces a request that fails, and platform variants differ in their own way, with some hosted providers prefixing the name and others separating a dated snapshot with a different character.

Two rules follow. Read the identifier from configuration so a change is a deploy rather than an edit across call sites. And pin it deliberately, because the alternative is a dependency that can move without your involvement. Log the identifier the response reports alongside the one you asked for; where a fallback or routing layer is in play they are not always the same string.

Credential resolution is an ordered chain

The absence of an API key in the environment does not mean there is no credential. The SDKs consult several sources in a fixed order and take the first that answers: an API key variable, then a bearer token variable, then a locally stored profile selected by name or by being active, then a federated workload identity assembled from its own variables, then the default stored profile.

Two consequences matter operationally. A stale key exported in a shell shadows a correctly configured profile, producing an authentication failure that looks inexplicable until you know the order. And a set profile name outranks the federation variables, so a half-migrated environment can authenticate as the wrong identity while appearing correctly configured.

Environments differ on purpose, and the differences are listed

Staging exists to differ from production in known ways and to be identical in every other respect. The known differences are usually the credential, the endpoint, the rate-limit ceiling, the log verbosity and sometimes a cheaper model tier. Everything else drifting is a bug in the making, because a defect that reproduces only in production is expensive exactly to the extent that nobody can enumerate what is different.

The practice worth naming is one schema for configuration with per-environment values, so adding a setting forces a decision everywhere rather than defaulting silently. Where a cheaper model runs outside production, treat that as a documented difference and remember that behaviour measured there does not transfer.

Fail at startup, not on the first request

Configuration errors found at boot are cheap; the same errors found under load are not. Validate on the way up: required values present, numeric values parsed and in range, the model identifier one this deployment expects, the endpoint well formed, and any beta flag in use paired with the code path requiring it. Refuse to start when something is missing rather than defaulting to a value that will surprise somebody later.

Beta flags deserve particular attention because they are version-coupled. A feature reached through a flag is tied to a specific flag string and a specific request shape, and pairing a flag with the wrong parameter form is rejected. Treat those pairs as a unit in configuration and in review.

Where candidates go wrong

Trap: reconstructing a model identifier in code

A helper building an identifier from a family name and a date, or appending a suffix because an older identifier had one, looks tidy and produces requests that fail with a not-found error. Identifiers are opaque literals.

The related mistake is defaulting to whatever the newest available model is at run time, which converts an upgrade decision into an event that happens with no deploy and no evaluation run behind it. Read the string from configuration, change it deliberately, and keep the previous value to hand so a revert is one setting rather than a rebuild.

Trap: putting a credential where it will be persisted

The rule is not merely that keys belong in the environment. It is that some places persist forever. A system prompt, a message, a tool description and any memory file are all part of the conversation record, readable long after the request that carried them.

A key written into any of those is durably exposed even if the variable it came from is later rotated. Keep credentials in the process environment or a managed store, read them in the harness making the call, and scope them to what this deployment actually needs so an exposure stays bounded.

Trap: assuming an unset environment variable means no credential

A deployment failing authentication is routinely diagnosed by checking whether the key variable is set, and that answer misleads in both directions. An empty or stale value can outrank a correctly configured profile, so the variable being present is not evidence the right identity is in use, and its absence is not evidence that no credential exists.

Establish what the resolution chain actually selected before changing anything. When a scenario describes an environment authenticating as an unexpected identity, look at the ordering rather than at the value.

Common questions

How much of the CCDV-F exam is Configuration Management?

4.1 percent, a little over two of the 53 scored questions. It is the fourth-largest of the six sub-skills in Applications and Integration, and its content overlaps enough with the lifecycle and design questions that studying it pays back beyond its own weight.

Are prompts configuration?

They are versioned content, not runtime settings. Keep them in the repository so a change is reviewed, diffed and revertible, and keep the values around them (model identifier, effort, caps, timeouts) in configuration. Teams editing prompts in a console lose the ability to say which text produced a given output, and that ability is what makes a rollback possible.

Why not simply always use the newest model available?

Because it turns a decision into an accident. A new generation can change behaviour, reject a parameter your code still sends, and tokenise the same text differently, so it deserves an evaluation run and a deliberate rollout. Pinning the identifier is what makes that possible; resolving it dynamically at run time removes the choice.

What is the fastest way to diagnose an authentication failure?

Find out which credential source was actually selected before you change anything. The libraries take the first source that answers from an ordered chain, so a leftover variable in a shell or a named profile left set can shadow the credential you meant to use. Which source won tells you far more than whether a value is present.

The rest of Applications and Integration

Practise this

The CCDV-F bank covers every sub-skill in the blueprint, weighted the way the real paper is. Free sample questions need no account.

Free CCDV-F questions