Overcast is alpha — behaviour and APIs may change between releases. Pin your version and read the changelog before upgrading.

overcast

ECR operations

Every ECR operation Overcast declares — 22 of 25 implemented — with status, behaviour notes and a link to the AWS API reference for each.

22 of 25 listed operations are implemented. Back to ECR.

Summary

Category✅ Supported🧊 Inert⚠️ Partial❌ Unsupported
General23
Auth1
Images3223
Policy6
Tags3

Endpoints

General

OperationStatusNotesAWS Docs
CreateRepository⚠️ PartialReturns ARN, URI, createdAt, imageTagMutability, imageScanningConfiguration, and encryptionConfiguration; repositoryUri and push readiness depend on a reachable Docker daemon — without one, repositoryUri falls back to Overcast’s own API port and the response carries the emulation-limitation header (docker push there answers 405)docs
DescribeRepositories⚠️ PartialLists all repos or filters by name; repositoryUri is re-minted from the currently running registry on every read, so it reflects the same Docker-availability fallback as CreateRepositorydocs
DeleteRepository⚠️ PartialDeletes the repository and all its image records; a repository still holding images raises RepositoryNotEmptyException unless force is set. The not-empty check and the echoed repositoryUri both depend on the registry: an unreachable registry falls back to the store’s own image records rather than refusing the deletedocs
DescribeRegistry✅ SupportedReturns registry metadata with empty replication rulesdocs
PutImageTagMutability✅ SupportedStores MUTABLE/IMMUTABLE and DescribeRepositories echoes it; not enforced against a repeat PutImage of the same tagdocs

Auth

OperationStatusNotesAWS Docs
GetAuthorizationToken⚠️ PartialReturns base64("AWS:<password>") and the registry proxy endpoint; token expiry is 12 hours. Without a reachable Docker daemon no registry ever starts, so proxyEndpoint falls back to Overcast’s own API port and the token authenticates nothing there — docker login succeeds but a subsequent push/pull answers 405docs

Images

OperationStatusNotesAWS Docs
ListImages⚠️ PartialReturns image IDs (tag + digest); reconciles local registry tags into the store when Docker is available. Deliberately does not fail when the registry is transiently unreachable, unlike DescribeImages/BatchGetImage — it answers with whatever the store currently holds rather than ServerException, since an empty or stale list names no specific image to be wrong aboutdocs
DescribeImages✅ SupportedReturns image detail objects (digest, tags, media type); an imageIds entry that resolves to nothing raises ImageNotFoundException; reconciles local registry manifests when Docker is availabledocs
PutImage✅ SupportedStores an image manifest; generates a digest if none supplieddocs
BatchGetImage✅ SupportedFetches manifests by tag or digest; reconciles local registry manifests when Docker is available, and an unreachable registry answers ServerException rather than reporting an image falsely missing, mirroring DescribeImagesdocs
DescribeImageScanFindings🧊 InertAlways reports imageScanStatus UNSUPPORTED_IMAGE with empty findings/enhancedFindings; no scan engine is emulated, regardless of scanOnPush or any registry/repository scanning configurationdocs
BatchDeleteImage⚠️ PartialDeletes images by tag or digest from the store; when Docker backs the repository, the registry itself is never asked to delete anything, so an image it still serves reappears on the next reconciling read (ListImages/DescribeImages/BatchGetImage) — unlike real ECR, where the deletion is durabledocs
PutImageScanningConfiguration🧊 InertStores scanOnPush and DescribeRepositories echoes it; no scan engine is emulated, so enabling it never makes DescribeImageScanFindings report anything but scanner-unavailabledocs
StartImageScan❌ UnsupportedNot implemented, returns 501; no scan engine is emulated (see DescribeImageScanFindings)docs
GetRegistryScanningConfiguration❌ UnsupportedNot implemented, returns 501; registry-wide scanning configuration is not storeddocs
PutRegistryScanningConfiguration❌ UnsupportedNot implemented, returns 501; registry-wide scanning configuration is not storeddocs

Policy

OperationStatusNotesAWS Docs
SetRepositoryPolicy✅ SupportedStores arbitrary IAM policy textdocs
GetRepositoryPolicy✅ SupportedRetrieves stored policy; returns 400 if none setdocs
DeleteRepositoryPolicy✅ Supporteddocs
PutLifecyclePolicy✅ SupportedStores lifecycle policy text for the repositorydocs
GetLifecyclePolicy✅ SupportedRetrieves stored lifecycle policy; returns 400 if none setdocs
DeleteLifecyclePolicy✅ Supporteddocs

Tags

OperationStatusNotesAWS Docs
TagResource✅ SupportedAdds/merges tags onto a repository ARNdocs
UntagResource✅ SupportedRemoves tag keys from a repository ARNdocs
ListTagsForResource✅ Supporteddocs