Skip to content

Matching Catalog Properties with Java #4140

Open

Description

@rambleraptor

Feature Request / Improvement

I was doing some analysis of the accepted configuration properties in Python vs. Java. We have a number of them in Python that don't fully match with Java (list below, generated by Claude)

Before we start generating PRs for any of these, does the community find any value in making these properties match Java (where appropriate)?

--

Catalogs

  • DynamoDB: accept dynamodb.table-name (Python reads table-name)
  • Hive: accept iceberg.hive.lock-check-min-wait-ms / iceberg.hive.lock-check-max-wait-ms (Python reads lock-check-min-wait-time / lock-check-max-wait-time in seconds)
  • Hive: accept hive.metastore.table.owner / hive.metastore.database.owner (Python reads the table property owner)
  • SQL: accept jdbc.init-catalog-tables / jdbc.schema-version (Python reads init_catalog_tables / schema_version)
  • Glue / DynamoDB: fall back to client.region and client.* credentials (Python reads glue.* / dynamodb.*)

REST

  • Accept rest.auth.type (none / basic / oauth2 / sigv4 / google) as well as the nested auth.type config (Python uses noop, Java uses none)
  • Accept rest.auth.basic.username / rest.auth.basic.password
  • Accept rest.auth.type=sigv4 as well as rest.sigv4-enabled=true
  • Accept rest.remote-signing.endpoint and s3.remote-signing-enabled (Python reads s3.signer.uri / s3.signer.endpoint / s3.signer)

S3

  • Accept s3.sse.type / s3.sse.key (Python reads s3.server-side-encryption / s3.sse-kms-key-id)
  • Accept client.assume-role.arn / client.assume-role.session-name (Python reads s3.role-arn, client.role-arn, *.role-session-name)
  • Accept s3.path-style-access (inverse of Python's s3.force-virtual-addressing)
  • Accept http-client.proxy-endpoint (Python reads s3.proxy-uri)
  • Accept http-client.*.connection-timeout-ms (Python reads s3.connect-timeout in seconds)

ADLS / GCS

  • ADLS: accept adls.auth.shared-key.account.name / adls.auth.shared-key.account.key (Python reads adls.account-name / adls.account-key)
  • ADLS: accept adls.connection-string.<account> per account (Python reads only a single adls.connection-string)
  • GCS: accept gcs.user-project (closest Python equivalent: gcs.requester-pays)

Activity

  1. Ankitraj-builds commented on Oct 26, 2026

    @Ankitraj-builds
    Contributor

    +1, I think matching Java is useful, since one catalog config can then work across clients. Keeping the current Python names as fallbacks would avoid breaking existing users.

    Note that s3.remote-signing-enabled from the REST list is already in my open PR #4134.

    If this is agreed, I would like to take the SQL catalog items (jdbc.init-catalog-tables / jdbc.schema-version with the current names kept as fallbacks).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions