Skip to content

v0.3 - SNS

Latest

Choose a tag to compare

@SethPyle376 SethPyle376 released this 14 May 12:41
32cf575

0.3.0 - 2026-05-14

SNS, Terraform compatibility, IAM API expansion, validation, and web UI polish.
Added

SNS Query API support for topic, subscription, tag, and publish workflows:
    CreateTopic
    DeleteTopic
    GetSubscriptionAttributes
    GetTopicAttributes
    ListSubscriptions
    ListSubscriptionsByTopic
    ListTagsForResource
    ListTopics
    Subscribe
    Unsubscribe
    Publish
    SetSubscriptionAttributes
    SetTopicAttributes
    TagResource
    UntagResource
SNS subscription attributes: DeliveryPolicy, FilterPolicy, FilterPolicyScope, RawMessageDelivery, RedrivePolicy, SubscriptionRoleArn, and ReplayPolicy.
Raw message delivery for SQS protocol subscriptions. When enabled, the raw message body is delivered instead of the SNS notification JSON wrapper.
SNS topic tags through create, list, tag, and untag flows.
SNS topic attribute storage and validation for common Terraform/SDK refresh paths, including policy-shaped JSON attributes.
SNS admin UI with topic browsing, creation, deletion, subscription management, raw delivery toggling, tag management, and a publish form.
IAM Query API additions:
    AttachUserPolicy
    CreatePolicy
    DetachUserPolicy
    GetPolicy
    GetPolicyVersion
    GetUserPolicy
    ListAccessKeys
    ListAttachedUserPolicies
    PutUserPolicy
Comprehensive SNS unit tests with SnsTestStore and SNS integration tests using the AWS Rust SDK.
SNS publish trace spans with per-subscription authorization evaluation.
Terraform-oriented SNS compatibility coverage for topic creation, topic attributes, subscriptions, tags, and managed-policy refresh paths.

Changed

AWS action boilerplate was reduced with service/action macro refinements and typed action response serialization.
SNS request validation now covers topic name rules, FIFO name/attribute relationships, publish payload size, subject length, tag limits, tag characters, and JSON-shaped attributes.
SNS topic-scoped authorization now includes stored topic resource policies when present.
SQLx SNS subscription queries now use shared row mapping for more stable offline metadata behavior.
Web UI asset caching changed from must-revalidate to immutable caching (max-age=31536000, immutable) since assets are embedded in the binary.
Removed auto-refreshing HTMX fragments from dashboard and list pages to reduce server load and visual noise.
Removed drawer/collapse position memory from the web UI to eliminate rendering flashes.
Disabled response compression to measure raw response time impact.
Updated service icons across the web UI for visual consistency.
Improved web UI styling: alerts with dismiss banners, card shadows, table headers, form-control patterns, empty states, and a warm gradient background.
Refined web UI copy and formatting across SQS, SNS, IAM, and tracing pages.
Tracing pages now emphasize request flow and payload details over sub- millisecond timing noise.

Fixed

Fixed XML serialization for ListAccessKeys and ListAttachedUserPolicies so AWS SDK clients can deserialize responses correctly.
Fixed managed policy ARN parsing so policy paths are preserved when attaching, detaching, deleting, and authorizing policies.
Fixed AttachUserPolicy so the policy ARN account is respected instead of silently looking up a same-named policy in the caller account.
Fixed SNS publish delivery failures caused by accepting invalid SQS queue resource policies that omitted Resource.
Fixed SNS Terraform refresh gaps for ListTagsForResource, GetSubscriptionAttributes, ListSubscriptionsByTopic, ListSubscriptions, and SetSubscriptionAttributes.

Known Gaps

Only the sqs delivery protocol is supported for SNS subscriptions.
Subscription confirmation is not modeled; all subscriptions are treated as confirmed.
SNS message filtering is not implemented yet, even though FilterPolicy is stored.
SNS FIFO topic behavior is limited to storing selected attributes.
SNS topic policy evaluation is useful for local allow/deny tests, but remains smaller than full AWS IAM/resource-policy semantics.