Skip to content

S3 Tables

CloudMock emulates Amazon S3 Tables, supporting table bucket management, table CRUD operations, and table policy management.

OperationStatusNotes
CreateTableBucketSupportedCreates a table bucket
GetTableBucketSupportedReturns table bucket details
ListTableBucketsSupportedLists all table buckets
DeleteTableBucketSupportedDeletes a table bucket
CreateTableSupportedCreates a table in a bucket
GetTableSupportedReturns table details
ListTablesSupportedLists tables in a bucket
DeleteTableSupportedDeletes a table
PutTablePolicySupportedSets a table policy
GetTablePolicySupportedReturns table policy
DeleteTablePolicySupportedRemoves a table policy
import { S3TablesClient, CreateTableBucketCommand, CreateTableCommand } from '@aws-sdk/client-s3tables';
const client = new S3TablesClient({
endpoint: 'http://localhost:4566',
region: 'us-east-1',
credentials: { accessKeyId: 'test', secretAccessKey: 'test' },
});
const { arn } = await client.send(new CreateTableBucketCommand({
name: 'my-table-bucket',
}));
await client.send(new CreateTableCommand({
tableBucketARN: arn,
namespace: 'default',
name: 'my-table',
format: 'ICEBERG',
}));
import boto3
client = boto3.client('s3tables',
endpoint_url='http://localhost:4566',
region_name='us-east-1',
aws_access_key_id='test',
aws_secret_access_key='test')
response = client.create_table_bucket(name='my-table-bucket')
arn = response['arn']
client.create_table(
tableBucketARN=arn,
namespace='default',
name='my-table',
format='ICEBERG')
cloudmock.yml
services:
s3tables:
enabled: true
  • Tables do not store actual Iceberg data
  • Table policies are stored but not enforced
  • No integration with analytics engines