v0.0.1-alpha.31
Pre-releaseOvercast v0.0.1-alpha.31
Docker Images
Full image with the web management console:
- Pull:
ghcr.io/neaox/overcast:0.0.1-alpha.31 - Channel tag:
ghcr.io/neaox/overcast:alpha - Registry: overcast package
Headless slim image for CI pipelines:
- Pull:
ghcr.io/neaox/overcast-slim:0.0.1-alpha.31 - Channel tag:
ghcr.io/neaox/overcast-slim:alpha - Registry: overcast-slim package
docker run --rm -p 4566:4566 -p 4567:4567 ghcr.io/neaox/overcast:0.0.1-alpha.31
docker run --rm -p 4566:4566 ghcr.io/neaox/overcast-slim:0.0.1-alpha.31Native Binaries
Download a binary for your platform from the assets below and verify it with SHA256SUMS.
| Asset | SHA256 |
|---|---|
overcast-darwin-amd64 |
8570aed5f05046bad9c3b08878d23f04e4e3870964bd3ac854ac1bf9e34b9b32 |
overcast-darwin-arm64 |
1661c08d04031c362d1e9e77ab6958ba6818e39cb9d1c02a2729f621cff0f235 |
overcast-linux-amd64 |
e001832bee043b60b8b5a3e05763193dd6f516853256f057f7608cdbbf6a25fb |
overcast-linux-arm64 |
1a12cfdd2f55e767dd4a52ae4331531a1a260f5e1e221795a261d5ff4457f8b8 |
overcast-windows-amd64.exe |
db96c62c6393db58f68f00cea40b1569894cf1da9e01793793cff1f45f607114 |
overcastd-darwin-amd64 |
d6cf53cb58f0c52727ecc116314017cfe7c71ce40398222d74cb04007bffcf0e |
overcastd-darwin-arm64 |
93fa0a7bf4285e66dd52b63cfadb2296895008c060b815c114beaac4d524d9fb |
overcastd-linux-amd64 |
973100a0ef65830457c9b5658be733de39aeb3bfff2910e57156d22ea8296312 |
overcastd-linux-arm64 |
a27070849194336c37ac109130d09a1cad9ee0f4fcc61c3ef4e57135bcde11ed |
overcastd-windows-amd64.exe |
fae4c472138f4ba396d1179bae781b9d731a5f1ffecb7460941b4ac52503d869 |
Release Notes
Added
-
Resource tagging operations added across 25 services: AppConfig, Athena, Cognito, DynamoDB, ECS, EKS, ElastiCache, ELBv2, EventBridge, Firehose, Glue, IAM, KMS, Lambda, MSK, Pipes, RDS, Scheduler, Secrets Manager, Shield, SNS, SQS, SSM, Step Functions, and WAF. Includes shared
Taggableinterface, genericApplyTags/RemoveTags/ListTagshelpers inserviceutil, andTagStore+NSStorefor separate-namespace tag storage. CloudFormation tag propagation is wired through for Lambda and Secrets Manager. -
[router] new
/_debug/trace/*endpoints for full request tracing — request/response bodies, per-handler structured log capture across 22 services, internal service-hop recording, stack traces captured during handler execution, and AWS errors. Active whenOVERCAST_DEBUG=true; traces are looked up by the request ID already returned in every response (x-amzn-requestid/x-amz-request-id);/_debug/traceslist and/_debug/trace/{id}detail endpoints support cursor-based bidirectional pagination; internal traces (health, inbox, SSE, debug polling) are capped at 20% of buffer capacity so they never crowd out user-facing requests; service/operation detection for Query-protocol services reads the request body via the generatedawsapi.Registry;GET /_events/request/{requestId}queries the event history by request ID (History.FindByRequestID). Includes BFF proxy routes and a web UI at/debug/traces— infinite-scroll list with live polling, deduplication, service filter with counts, millisecond timestamps, and hop-count badges; per-trace tabs for overview (side-by-side request/response with copy buttons and referer), hops (upstream/downstream navigation via request IDs), logs, errors, and events (event-console matching layout); sequence diagram/waterfall/flow map views; Prism syntax highlighting for JSON, XML, form-encoded bodies, and Go stack traces; copy-as-curl; sharedCheckboxFilterDropdownandformatBodyForDisplayused by the traces, events, and S3 preview pages;OVERCAST_DEBUG_TRACE_BUFFERenv var for ring-buffer sizing. -
[router] GET /_health now includes a
dockerblock with per-service Docker connection status. Responses from Docker-backed describe endpoints carryx-overcast-backing,x-overcast-backing-reason, andx-overcast-container-healthheaders. -
Web UI: S3 copy-URL buttons (S3 URI and path-style formats, actions-menu UX), header endpoint indicator with copy button, overhauled connection dialog with debounced endpoint validation and combobox suggestions, auto-detect API port (Docker socket, native, or 1:1 mapping), connection settings always visible, Docker connectivity banners on resource pages, and Docker health metrics on
/metrics. -
[bff]
normalizeEndpointrewrites all loopback endpoints to internal API port, fixing BFF proxying in Docker with remapped ports and no socket.deriveAPIBaseURLreturns endpoint known/unknown alongside URL; handles native custom API port via default-UI-port fallback. -
[combobox] add
allowFreeTextprop for editable-after-selection behaviour (seeds query from current value, commits on blur) -
[kms]
UpdateKeyDescription -
[ci] a
Release branch basecheck fails any pull request whose base is arelease/*branch and puts the rebase-onto-maininstructions in its job summary — the release bot is that branch's only writer, and a PR into it skips the test matrix, compat suite, changelog gate and breaking-change hold, which all run on pull requests intomain
Changed
- [ci] the release changelog gate runs on pull requests into
mainonly, so a mis-based PR gets the base-branch message instead of advice to fold a fragment that was correct all along
Fixed
-
[cloudformation/dynamodb] Local secondary indexes are applied on table creation, while unsupported LSI updates now fail without mutating the table. DynamoDB table TTL configuration is validated, applied, and reconciled during stack create and update.
-
[cloudformation/cloudwatch-logs] Log group retention, resource tags, and propagated stack tags are applied when a stack creates or updates the group.
-
[cloudformation/kms]
AWS::KMS::Keyupdates dispatchPutKeyPolicyonly whenKeyPolicyactually changed, so an unchanged caller-locking policy created withBypassPolicyLockoutSafetyChecksurvives unrelated stack updates; aKeyPolicygiven as a JSON string is forwarded verbatim instead of double-encoded;Descriptionchanges are applied throughUpdateKeyDescriptioninstead of being ignored -
[ecs/rds/elasticache/msk] resources no longer report RUNNING/available/ACTIVE when Docker is unavailable.
-
BREAKING [kms/cloudformation] key-policy mutations apply AWS schema and caller lockout-safety validation.
migration: ensure custom policies retainkms:PutKeyPolicyfor the caller, or explicitly setBypassPolicyLockoutSafetyCheck -
[kms/cloudformation] KMS keys created by CloudFormation now honor
Enabled: falseon first deployment and restore the enabled default when the property is removed. -
BREAKING [secretsmanager/cloudformation] generated-secret templates validate before mutation, while KMS key metadata and CloudFormation tags round-trip through the service APIs.
migration: use PasswordLength 1..4096 (or omit it for 32), and keep GenerateStringKey absent from the template object -
[waf/stepfunctions/shield/glue/elbv2/rds] fix tag validation gaps: WAF no longer publishes spurious creation events on tag writes; Step Functions typed path validates tags; Shield and ELBv2 validate tag limits; Glue uses shared helpers; RDS fixes unbounded loop; removed dead TaggedResource and shieldTagsToList.
-
[waf] TagResource accepts and ListTagsForResource returns Tags/TagList as lists of {Key,Value} structs, matching the WAFv2 wire format that SDK clients send — previously tag operations were unusable via the SDK
-
[web] path-style S3 copy URLs percent-encode object keys, so keys with
#,?, spaces, or unicode paste as working links -
[web] bundled builds follow the server-injected API endpoint on boot instead of a stale stored one; only endpoints entered in the connection dialog persist as overrides
-
[web] reopening connection settings seeds the form from the active endpoint, so Connect keeps a custom endpoint instead of reverting it to the default
-
BREAKING [logs]
PutRetentionPolicyvalidatesretentionInDaysagainst AWS's fixed value set and returnsInvalidParameterExceptionotherwise, matching real CloudWatch Logs
migration: use one of the AWS-documented retention values (1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288 or 3653 days) -
[router] debug tracing no longer pins an oversized request body's full backing array in memory when truncating it into the trace ring buffer, and internal CloudFormation dispatch hop bodies are capped at 1 MiB and flagged truncated
-
[router] traces of responses written without an explicit status code record 200 instead of appearing in-flight forever in the debug UI
-
[sns]
TagResourceandUntagResourceresponses include the empty result element botocore requires, so the AWS CLI no longer fails client-side after a successful tagging call -
[sns] tag operations answer a missing topic with error code ResourceNotFound as on real SNS; topic operations keep NotFound
-
[athena] TagResource validates tags (limit and reserved-prefix checks) with InvalidRequestException, matching real Athena
-
[eventbridge] tag operations no longer 500 (or panic) on a corrupt persisted tag blob, validate tags, surface store write failures, and answer ResourceNotFoundException for a rule or event bus that does not exist
-
[firehose] TagDeliveryStream accepts Tags as a list of {Key,Value} structs matching the real API instead of rejecting SDK requests with a 400; ListTagsForDeliveryStream serializes an untagged stream's Tags as [] rather than null
-
[pipes/router] the shared /tags/{resourceArn} route space now has a single dispatching owner that routes by the ARN's service prefix, so Pipes tag operations reach Pipes instead of silently landing in the API Gateway or EKS tag stores; Pipes tag responses use the real API's lowercase
tagsmember, validate tags, and answer NotFoundException for a missing pipe -
[rds] AddTagsToResource parses the wire form real SDKs send (
Tags.Tag.N.Key, the RDS model's locationName) instead of silently dropping every tag; the member-indexed form remains a fallback. Tag operations now reject resources that do not exist (DBInstanceNotFound, DBClusterNotFoundFault, …) instead of minting a tag store for any string -
[serviceutil] a corrupt persisted tag blob reads as empty instead of turning every tag operation on that resource into a 500, for all services using the shared tag store helpers
-
[ssm] tag operations answer a missing resource with InvalidResourceId instead of ParameterNotFound, and AddTagsToResource validates tags (TooManyTagsError above the 50-tag limit)
Release: https://github.com/Neaox/overcast/releases/tag/v0.0.1-alpha.31