From 262cd85f86f7238cf05811da06a05cb5092f9520 Mon Sep 17 00:00:00 2001 From: Brian Rinaldi Date: Wed, 2 Sep 2026 07:40:57 -0400 Subject: [PATCH 1/2] docs: fix invalid internal links Resolve pre-existing link validation errors for awslocal and snapshot documentation references. --- src/content/docs/aws/getting-started/ci-cd.mdx | 2 +- src/content/docs/snowflake/features/glue-catalog.md | 2 +- .../docs/snowflake/tutorials/aws-lambda-localstack-snowpark.md | 2 +- .../docs/snowflake/tutorials/s3-tables-iceberg-integration.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/content/docs/aws/getting-started/ci-cd.mdx b/src/content/docs/aws/getting-started/ci-cd.mdx index 62728fb73..37ddba77f 100644 --- a/src/content/docs/aws/getting-started/ci-cd.mdx +++ b/src/content/docs/aws/getting-started/ci-cd.mdx @@ -203,7 +203,7 @@ Most CI jobs should start with a clean LocalStack instance. A fresh instance mak If your pipeline needs state across jobs or workflow stages, use one of the state management options documented outside this getting started page: - [Cloud Pods](/aws/developer-tools/snapshots/cloud-pods/) to save and restore named LocalStack state snapshots. -- [State export and import](/aws/developer-tools/snapshots/export-import-state/) to move state through artifacts or caches. +- [State export and import](/aws/developer-tools/snapshots/saving-snapshots-locally/) to move state through artifacts or caches. - [Persistence](/aws/developer-tools/snapshots/persistence/) when the same runner keeps a mounted LocalStack volume. ## Next steps diff --git a/src/content/docs/snowflake/features/glue-catalog.md b/src/content/docs/snowflake/features/glue-catalog.md index f93c9e27a..9a7f1a1a3 100644 --- a/src/content/docs/snowflake/features/glue-catalog.md +++ b/src/content/docs/snowflake/features/glue-catalog.md @@ -12,7 +12,7 @@ The Snowflake emulator can connect to this Glue Iceberg REST endpoint through a ## Getting started -This guide walks through creating an Iceberg table in S3 Tables through the Glue Iceberg REST endpoint, registering that table with the Snowflake emulator through a Glue catalog integration, and querying it with SQL. It assumes basic knowledge of the AWS CLI, our [`awslocal`](/aws/connecting/aws-cli/#localstack-aws-cli-awslocal) wrapper, and Snowflake. +This guide walks through creating an Iceberg table in S3 Tables through the Glue Iceberg REST endpoint, registering that table with the Snowflake emulator through a Glue catalog integration, and querying it with SQL. It assumes basic knowledge of the AWS CLI, our [`awslocal`](/aws/connecting/infrastructure-as-code/deprecated-wrapper-scripts/#awslocal) wrapper, and Snowflake. In this guide, you will: diff --git a/src/content/docs/snowflake/tutorials/aws-lambda-localstack-snowpark.md b/src/content/docs/snowflake/tutorials/aws-lambda-localstack-snowpark.md index 368123de1..6ea49567b 100644 --- a/src/content/docs/snowflake/tutorials/aws-lambda-localstack-snowpark.md +++ b/src/content/docs/snowflake/tutorials/aws-lambda-localstack-snowpark.md @@ -21,7 +21,7 @@ The code in this tutorial is available on [GitHub](https://github.com/localstack - [`localstack` CLI](/snowflake/getting-started/) with a [`LOCALSTACK_AUTH_TOKEN`](/snowflake/getting-started/auth-token/) - [LocalStack for Snowflake](/snowflake/getting-started/) -- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) & [`awslocal` wrapper](/aws/connecting/aws-cli/#localstack-aws-cli-awslocal) +- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) & [`awslocal` wrapper](/aws/connecting/infrastructure-as-code/deprecated-wrapper-scripts/#awslocal) - Python 3.10 installed locally ## Create the Lambda function diff --git a/src/content/docs/snowflake/tutorials/s3-tables-iceberg-integration.md b/src/content/docs/snowflake/tutorials/s3-tables-iceberg-integration.md index b8498733e..6eddabfd8 100644 --- a/src/content/docs/snowflake/tutorials/s3-tables-iceberg-integration.md +++ b/src/content/docs/snowflake/tutorials/s3-tables-iceberg-integration.md @@ -20,7 +20,7 @@ With LocalStack's Snowflake emulator, you can create catalog integrations that c - [`localstack` CLI](/snowflake/getting-started/) with a [`LOCALSTACK_AUTH_TOKEN`](/snowflake/getting-started/auth-token/) - [LocalStack for Snowflake](/snowflake/getting-started/) -- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) & [`awslocal` wrapper](/aws/connecting/aws-cli/#localstack-aws-cli-awslocal) +- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) & [`awslocal` wrapper](/aws/connecting/infrastructure-as-code/deprecated-wrapper-scripts/#awslocal) - Python 3.10+ with `pyiceberg` and `pyarrow` installed ## Start LocalStack From 613a26b4c7304d667276294856ebac9474bff92c Mon Sep 17 00:00:00 2001 From: Brian Rinaldi Date: Wed, 2 Sep 2026 07:52:31 -0400 Subject: [PATCH 2/2] fix: adapt replicator coverage table to narrow layouts --- .../ReplicatorCoverage.tsx | 62 +++++++++++----- src/styles/global.css | 71 +++++++++++++++++++ 2 files changed, 116 insertions(+), 17 deletions(-) diff --git a/src/components/replicator-coverage/ReplicatorCoverage.tsx b/src/components/replicator-coverage/ReplicatorCoverage.tsx index 184f3812e..0463e2d6c 100644 --- a/src/components/replicator-coverage/ReplicatorCoverage.tsx +++ b/src/components/replicator-coverage/ReplicatorCoverage.tsx @@ -89,6 +89,23 @@ function StrategyBadge({ ); } +function ResourceType({ value }: { value: string }) { + return ( + <> + {value.split('::').map((part, index) => ( + + {index > 0 && ( + <> + :: + + )} + {part} + + ))} + + ); +} + function PolicyList({ statements }: { statements: string[] }) { if (!statements.length) { return ( @@ -98,7 +115,10 @@ function PolicyList({ statements }: { statements: string[] }) { ); } return ( -
+
{statements.map((statement) => ( +
{resource.single && ( @@ -220,7 +247,10 @@ function ResourceDetails({ resource }: { resource: ResourceCoverage }) { {resource.resource_tree && ( -
+
{resource.resource_tree.resources.map((r) => ( ({ ...prev, [resourceType]: !prev[resourceType] })); return ( -
+
toggle(resource.resource_type)} aria-expanded={isOpen} - className="replicator-row w-full grid items-start gap-x-3 gap-y-2 grid-cols-[1.75rem_minmax(0,1fr)] md:grid-cols-[1.75rem_minmax(0,1fr)_9rem_minmax(0,14rem)] md:items-center hover:bg-[var(--sl-color-gray-6)] transition-colors" + className="replicator-row w-full hover:bg-[var(--sl-color-gray-6)] transition-colors" style={{ background: 'transparent', border: 'none', @@ -377,31 +411,25 @@ export default function ReplicatorCoverage() { }} /> - {resource.resource_type} +
diff --git a/src/styles/global.css b/src/styles/global.css index f6c42660e..118e82889 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -74,6 +74,77 @@ h3 { } } +/* The coverage component can be narrower than the viewport when Starlight sidebars are visible. */ +.replicator-coverage { + container-type: inline-size; +} + +.replicator-coverage-header, +.replicator-row { + display: grid; + grid-template-columns: 1.75rem minmax(0, 1fr) 9rem minmax(0, 14rem); + align-items: center; + gap: 12px; +} + +.replicator-resource-type { + display: block; + min-width: 0; + max-width: 100%; + padding: 2px 6px; + white-space: normal; + overflow-wrap: normal; + word-break: normal; +} + +.replicator-service, +.replicator-strategies { + min-width: 0; +} + +.replicator-mobile-label { + display: none; +} + +.replicator-policy-list code, +.replicator-related-resources code, +.replicator-identifier { + display: inline-block; + max-width: 100%; + overflow-x: auto; +} + +@container (max-width: 46rem) { + .replicator-coverage-header { + display: none; + } + + .replicator-row { + grid-template-columns: 1.75rem minmax(0, 1fr); + align-items: start; + } + + .replicator-resource-type, + .replicator-service, + .replicator-strategies { + grid-column: 2; + } + + .replicator-mobile-label { + display: inline; + } +} + +@container (max-width: 24rem) { + .replicator-row { + padding: 12px !important; + } + + .replicator-details { + padding: 16px !important; + } +} + /* Product Cards Styles */ .product-card { color: #ffffff !important;