Environment & Dependencies exit conditions
Candidate exit conditions for the Environment & Dependencies type. See the catalog overview for how to adopt these.
Dependency identification & availability
| Exit condition | What it checks |
|---|---|
|
Every runtime and build dependency the code imports is explicitly declared in the manifest. |
|
No dependency is used in source without a corresponding manifest entry. |
|
No declared dependency is absent from the actual import graph. |
|
Every declared dependency resolves to a concrete artifact from a configured repository. |
|
All resolved artifacts are fetchable and present in the local cache or offline store. |
|
The full transitive dependency graph resolves without missing nodes. |
|
Every configured artifact repository is reachable and returns valid metadata. |
|
Downloaded artifacts match their published checksums or signatures. |
Version pinning & deterministic resolution
| Exit condition | What it checks |
|---|---|
|
A lockfile capturing exact resolved versions exists and is committed. |
|
The lockfile is in sync with the declared manifest and needs no regeneration. |
|
No production dependency is declared with an open or floating version range. |
|
No dependency resolves to a SNAPSHOT, nightly, or otherwise mutable version. |
|
Repeated resolution from the manifest yields byte-identical version sets. |
|
No two paths in the graph demand incompatible versions of the same artifact. |
|
Duplicate dependencies are converged to a single agreed version. |
|
Build plugins and extensions are pinned to explicit versions. |
|
Dependency checksum verification is enabled in the resolver configuration. |
Toolchain & runtime prerequisites
| Exit condition | What it checks |
|---|---|
|
The installed JDK matches the version required by the project. |
|
The installed Maven meets the project’s minimum required version. |
|
The build tool version is pinned via a wrapper or toolchain descriptor. |
|
The Akka SDK dependency is pinned to an approved, explicit version. |
|
The Akka CLI is installed at an approved, explicit version. |
|
The required CLI executables are present and discoverable on PATH. |
|
The runtime version falls within the approved support window. |
|
No toolchain component lags the governed minimum by more than the allowed margin. |
|
The container runtime required for build and test is installed and operational. |
Configuration completeness & validation
| Exit condition | What it checks |
|---|---|
|
Every configuration key the application reads has a defined value. |
|
Configuration files validate against their declared schema. |
|
No configuration value is left as an unresolved placeholder or template token. |
|
Each configuration value parses as its declared type and range. |
|
All environment variables referenced by the app are defined in the target environment. |
|
Environment variable names follow the governed provider/service naming convention. |
|
No configuration key is defined with conflicting values across sources. |
|
Fallback defaults for optional configuration are present and within safe bounds. |
Secrets, tokens & credentials
| Exit condition | What it checks |
|---|---|
|
Every secret the application requires is provisioned in the target environment. |
|
Required API tokens authenticate successfully against their providers. |
|
No required token or credential is expired or within its expiry window. |
|
The Akka download token is present and authorizes artifact retrieval. |
|
No secret is committed to source or embedded in tracked configuration. |
|
Every secret key referenced by the app has a corresponding stored value. |
|
Provisioned credentials carry the scopes the application actually requires. |
Environment parity & reproducible builds
| Exit condition | What it checks |
|---|---|
|
The dev environment’s resolved toolchain and dependencies match CI. |
|
The CI-built environment matches the production runtime specification. |
|
Rebuilding from the same commit produces identical output artifacts. |
|
The build does not depend on undeclared host-specific state or paths. |
|
All build inputs are pinned so the build is hermetic and repeatable. |
|
Build and runtime timezone and locale are fixed to governed values. |
|
A build from a clean, cacheless environment completes successfully. |
|
A container or environment descriptor fully captures the runtime setup. |
|
The environment can be stood up with no undocumented manual steps. |
External service connectivity
| Exit condition | What it checks |
|---|---|
|
Every required external service endpoint is reachable from the environment. |
|
Authentication against each external service succeeds with provisioned credentials. |
|
Each external dependency passes a liveness or health probe before use. |
|
Services stubbed or mocked for the environment are wired and pass their contract checks. |
|
Required ports, hosts, and network routes are open and correctly configured. |
|
Proxy settings are present and correct where outbound access is mediated. |
|
Required TLS certificates and trust anchors are installed and valid. |
Akka setup state & drift detection
| Exit condition | What it checks |
|---|---|
|
The |
|
The downloaded akka-context documentation is present and current. |
|
A valid |
|
An |
|
The Akka project scaffold matches the expected structure and files. |
|
Re-running setup produces no changes, confirming a converged environment. |
|
The akka-context version aligns with the pinned SDK and CLI versions. |
|
Local setup reflects the latest resolved governance revision. |
|
A drift check reports the environment state matches the recorded baseline. |
Dependency freshness, deprecation & EOL
| Exit condition | What it checks |
|---|---|
|
No dependency in use is marked deprecated by its maintainer. |
|
No called API is annotated deprecated in the resolved dependency versions. |
|
No dependency is past its end-of-life or end-of-support date. |
|
Every dependency is within the governed maximum age or lag from latest. |
|
The container base image is at an approved, non-stale tag. |
|
The base image is pinned by digest rather than a mutable tag. |
|
No resolved dependency version has been yanked or withdrawn upstream. |
|
No dependency is blocked from a required security or governance upgrade. |