v0.0.1-alpha.33
Pre-releaseOvercast v0.0.1-alpha.33
Docker Images
Full image with the web management console:
- Pull:
ghcr.io/neaox/overcast:0.0.1-alpha.33 - Moving 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.33 - Moving 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.33
docker run --rm -p 4566:4566 ghcr.io/neaox/overcast-slim:0.0.1-alpha.33Native Binaries
Download a binary for your platform from the assets below and verify it with SHA256SUMS.
| Asset | SHA256 |
|---|---|
overcast-darwin-amd64 |
b1cd32963bb8e99b863a0d545235c0fa0b5a834b30af32407bd1f84fb8db5c96 |
overcast-darwin-arm64 |
c1ffe7553301245a5c9723a13d5635a680aaf968899c344d1576338d731ab1f9 |
overcast-linux-amd64 |
e842631ec5ccb9008035d3364638f08f7f92a86c245361921331f5dc6c6a67f8 |
overcast-linux-arm64 |
cdf3c046237fea0a9748599460cfbb9117f19e41e30326e006f406e9b17d6cff |
overcast-windows-amd64.exe |
a89dc09adfdb2ecdece607a08e5d1a52361364ae9e5227af0f6fda7fc8844b6c |
overcastd-darwin-amd64 |
a72e172dde09a90d61f7253ffbcf6d7126204aa2b9c95c8c706b8a0e041344fa |
overcastd-darwin-arm64 |
c8905ee9bcf8e2857ff635662d0f200199078ed8b8dc5bd7aa6f4c5e826ca64f |
overcastd-linux-amd64 |
d20e564c4002c23b87e548ccb6c88cf38df50a86504db437f9223c6388ba7015 |
overcastd-linux-arm64 |
9f459c5886b2f05b844049907d2439f40e447e5c80369bfc6ffe84f62d249627 |
overcastd-windows-amd64.exe |
6fe65289848291b80f4f1c27c4aa31ae20145e05c8dba75b04dc1a9e70e643a9 |
Release Notes
Added
-
[cloudwatch]
PutMetricAlarmcarries more of the alarm:Tagsare applied at creation as on AWS, andUnitselects which datapoints an alarm evaluates, so a metric published under several units evaluates separately per unit. PromQL alarms (EvaluationCriteria) join metric math and anomaly detection in returning501rather than being created un-evaluated -
[iam] permissions boundaries —
PutUserPermissionsBoundary,DeleteUserPermissionsBoundary,PutRolePermissionsBoundaryandDeleteRolePermissionsBoundary, plus thePermissionsBoundaryparameter onCreateUser/CreateRoleand thePermissionsBoundarymember on the user and role responses
Changed
-
BREAKING [cloudwatch]
PutMetricAlarmrequiresStatistic,ComparisonOperator,Period,EvaluationPeriodsandThresholdfor an alarm on a metric
migration: pass them explicitly. They areRequired: Noonly because a PromQL alarm supplies them insideEvaluationCriteria; an alarm on a metric that omitted one used to be created withAverage/GreaterThanThreshold/ 60s / 1 period /0.0substituted, which arms an alarm nobody configured -
[web/debug] the Request Traces status and method filters are multi-select, so "all errors" is 4xx and 5xx ticked together rather than two separate looks, and 3xx joins the status list; the filters live in the URL, so they survive Back from a trace's detail page and can be shared as a link
Fixed
-
[cloudformation/cloudwatch] an
AWS::CloudWatch::Alarmthe template does not name deploys — CloudFormation mints{Stack}-{Logical}-{RANDOM}for an omittedAlarmName, which is what CDK'sAlarmconstruct and everymetric.createAlarm()helper rely on, where the empty name used to reachPutMetricAlarmand come back as AWS's ownValue null at 'alarmName'. Every property now reaches the alarm too:DatapointsToAlarmandTreatMissingDatawere dropped, so an "M out of N" alarm was evaluated as "N out of N" andnotBreachingreverted tomissing. A property the template omits is left out of the request rather than sent empty -
[cloudformation]
AWS::Events::Rule,AWS::StepFunctions::StateMachine,AWS::ApiGateway::RestApi,AWS::Scheduler::ScheduleGroup,AWS::ECR::RepositoryandAWS::IAM::Userare named by CloudFormation when the template omits their name. Each carries the logical ID, so two unnamed resources of one type in a stack are two resources — the rule and the schedule group used to share one empty name and quietly become a single resource, and the rest failed the stack -
[cloudformation] a stack that rolls an update back is handed its previous template and parameters again, so
GetTemplatedescribes what is deployed rather than the attempt that failed and the next update resolves parameters from it; a nested stack whose own update fails restores its child template and parameters as part of rolling its resources back, instead of keeping the failed attempt's metadata because the parent never recorded the update as a success; and a rollback that cannot persist the metadata it restored reportsUPDATE_ROLLBACK_FAILEDrather than claiming the rollback completed -
[cloudformation]
UpdateStackhonours theDisableRollbackmember of the request it was given, rather than the value the stack was created with, and an update that fails with rollback disabled keeps the resource records the attempt reached — soDescribeStackResourcesno longer reports pre-update properties for a resource the update already changed, and no longer drops the resources it updated before the failure -
[debug/cloudformation] request traces record every internal hop, including the work that continues after the response is sent — a CloudFormation or CDK deploy runs for minutes past its HTTP reply, and every hop after the first second used to be dropped.
DeleteStackandRollbackStackrecord the internal calls they make, asCreateStackandUpdateStackalready did, where teardown hops were previously never recorded at all; and a stack created from aTemplateURLrecords the template fetch as a hop, with the S3 request it makes linking back to the CloudFormation request that triggered it -
[debug/s3] hops are named and linked whatever protocol answered them: a hop links reliably to the request it triggered, where S3 hops in particular used to link to nothing; hops for S3 calls name the service instead of showing a blank one, S3's REST paths being bare bucket paths that no prefix rule can attribute; and a Query-protocol request is named by its operation however the client ordered the form parameters, where one with a large parameter ahead of
Action— aCreateStackcarrying a real template, typically — used to show a blank operation -
[iam] permissions boundaries attached to a user or role are applied by
SimulatePrincipalPolicyand by opt-in request-time enforcement, so a bounded principal no longer gets permissions AWS would deny through the boundary intersection -
[lambda] a failed
CreateFunctionorUpdateFunctionCodeno longer leaves the stored deployment package ahead of the function'sCodeSha256,RevisionIdand source metadata, so a later read or cold start cannot run code the configuration does not describe -
[lambda] a
PutObjectlanding the bytes a function is already running is no longer treated as a new deployment. Re-uploading an unchanged asset — or the very upload the function read at create time — leavesRevisionId,LastModifiedand the warm execution environment alone, instead of rotating the revision under callers using it for optimistic concurrency and forcing a needless cold start -
[scheduler] schedules fire SNS, Step Functions, Kinesis, Firehose, ECS and EventBridge event bus targets, not just Lambda and SQS — delivery goes through the same dispatcher EventBridge rules and Pipes use, so one target ARN behaves identically on a schedule and on a rule — and
SqsParameters.MessageGroupId,KinesisParameters.PartitionKey,EventBridgeParametersandEcsParametersare honoured when a schedule fires.CreateScheduleandUpdateSchedulereject a target type Overcast cannot fire with aValidationException, instead of accepting a schedule that would silently never fire -
[scheduler]
RetryPolicyandDeadLetterConfigare honoured: a failed firing is retried up toMaximumRetryAttempts(capped at 6 attempts) whileMaximumEventAgeInSecondsallows, then sent to the configured SQS dead-letter queue -
[state] Lambda deployment packages carry an explicit storage-tier classification, pinning them to the SQLite-backed tier so a future change cannot silently make every stored zip memory-resident at startup
-
[web/debug] long request paths no longer stretch the traces table off-screen — the Path column is bounded against the page's own width and carries the full path as a tooltip — and the table's horizontal scrollbar is reachable without scrolling to the bottom of an infinitely growing list
Release: https://github.com/Neaox/overcast/releases/tag/v0.0.1-alpha.33