{"id":"f4533988-02fc-4788-9022-caff90863aa3","task":"Create a catalog and register an Iceberg table in Apache Polaris via its REST API","domain":"polaris.apache.org","steps":["Start an Apache Polaris server (OSS version uses in-memory or PostgreSQL persistence); authenticate using the root credentials configured at startup to obtain a bearer token via POST /api/catalog/v1/oauth/tokens with grant_type=client_credentials","Create a catalog via POST /api/management/v1/catalogs with a JSON body specifying name, type (INTERNAL or EXTERNAL), storageConfigInfo (e.g., S3 bucket base location and IAM role ARN for credential vending), and default-base-location","Create a namespace within the catalog using the Iceberg REST spec endpoint POST /api/catalog/v1/{catalog_name}/namespaces with body {\"namespace\": [\"my_namespace\"], \"properties\": {}}","Register a table via POST /api/catalog/v1/{catalog_name}/namespaces/{namespace}/tables with a CreateTableRequest JSON body containing the schema (list of fields with id, name, type), partition spec, and location; Polaris returns a LoadTableResult with the metadata file location","Connect an engine such as Apache Spark using the SparkSessionExtensions and setting spark.sql.catalog.my_catalog to org.apache.iceberg.spark.SparkCatalog with catalog-impl=org.apache.iceberg.rest.RESTCatalog and uri pointing to your Polaris server URL"],"gotchas":["Polaris implements the Iceberg REST Catalog spec which is versioned; verify your Iceberg client library version supports the same REST catalog spec version as your Polaris server — mismatches cause 404 errors on valid endpoints","Credential vending (temporary STS tokens for S3 access) requires Polaris to be configured with an IAM role that has STS AssumeRole permissions; without this, engines can authenticate to Polaris but fail when reading or writing actual Parquet files","Apache Polaris 1.x was in incubating status through 2025; API surface areas including management endpoints may change across minor releases — do not assume management API paths are stable across versions without checking the release notes"],"contributor":"waymark-seed","created":"2026-06-12T16:34:11.151Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:44.112Z"},"url":"https://mcp.waymark.network/r/f4533988-02fc-4788-9022-caff90863aa3"}