package app import ( "fmt" "github.com/seaweedfs/seaweedfs/weed/admin/dash" "github.com/seaweedfs/seaweedfs/weed/s3api/s3tables" ) templ S3TablesBuckets(data dash.S3TablesBucketsData) {

S3 Tables Buckets

if data.IcebergPort > 0 { }
if data.IcebergPort > 0 {
Iceberg REST Catalog

Each table bucket is an Iceberg catalog. Connect clients to: http://localhost:{ fmt.Sprintf("%d", data.IcebergPort) }/v1

} else {
Iceberg REST endpoint is disabled. Start `weed s3` with `-s3.port.iceberg` to enable it.
}
Total Buckets
{ fmt.Sprintf("%d", data.TotalBuckets) }
Last Updated
{ data.LastUpdated.Format("2006-01-02 15:04") }
Iceberg REST Port
if data.IcebergPort > 0 { { fmt.Sprintf("%d", data.IcebergPort) } } else { - }
Table Buckets
for _, bucket := range data.Buckets { } if len(data.Buckets) == 0 { }
Name Owner ARN Iceberg Endpoint Created Actions
{ bucket.Name } { bucket.OwnerAccountID } { bucket.ARN } /v1/{ bucket.Name }/namespaces { bucket.CreatedAt.Format("2006-01-02 15:04") }
{{ bucketName, parseErr := s3tables.ParseBucketNameFromARN(bucket.ARN) }} if parseErr == nil { } else { }
No table buckets found

Create your first S3 Tables bucket to get started.

if data.IcebergPort > 0 {
Iceberg Client Examples
DuckDB
								
									{ `INSTALL iceberg;
LOAD iceberg;

CREATE SECRET (
    TYPE ICEBERG,
    ENDPOINT 'http://localhost:` + fmt.Sprintf("%d", data.IcebergPort) + `',
    SCOPE 's3://my-table-bucket/'
);

SELECT * FROM iceberg_scan('s3://my-table-bucket/my-namespace/my-table');` }
								
							
Python (PyIceberg)
								
									{ `from pyiceberg.catalog import load_catalog

catalog = load_catalog(
    name="seaweedfs",
    **{
        "type": "rest",
        "uri": "http://localhost:` + fmt.Sprintf("%d", data.IcebergPort) + `",
    }
)

namespaces = catalog.list_namespaces()` }
								
							
}
}