Class DefaultFileIOFactory

java.lang.Object
org.apache.polaris.service.catalog.io.DefaultFileIOFactory
All Implemented Interfaces:
FileIOFactory

@RequestScoped @Identifier("default") public class DefaultFileIOFactory extends Object implements FileIOFactory
A default FileIO factory implementation for creating Iceberg FileIO instances used by the Polaris server.

Merge order: contextual properties, then StorageAccessConfig credentials / extraProperties / internalProperties (AccessConfig wins), then polaris.storage.* HTTP client settings from S3AccessConfig. Call sites must pass catalog-trusted context (for example table-default.*), not table metadata.properties().

Production CDI paths inject the live S3AccessConfig; tests/fixtures can pass S3AccessConfig.empty().

  • Constructor Details

    • DefaultFileIOFactory

      @Inject public DefaultFileIOFactory(S3AccessConfig s3AccessConfig)
  • Method Details

    • loadFileIO

      public org.apache.iceberg.io.FileIO loadFileIO(@NonNull org.apache.polaris.core.storage.StorageAccessConfig storageAccessConfig, @NonNull String ioImplClassName, @NonNull Map<String,String> tableProperties)
      Description copied from interface: FileIOFactory
      Loads a FileIO implementation for server-side use (metadata read/write, purge).

      This method may obtain subscoped credentials to restrict the FileIO's permissions, ensuring secure and limited access to the table's data and locations.

      storageAccessConfig is authoritative for credentials and storage-config extras. properties may carry catalog-trusted contextual settings (for example table-default.*). Callers must not pass table metadata.properties(), which can include caller-controlled FileIO client settings such as s3.endpoint.

      Specified by:
      loadFileIO in interface FileIOFactory
      Parameters:
      storageAccessConfig - the storage access configuration containing credentials and other properties.
      ioImplClassName - the class name of the FileIO implementation to load.
      tableProperties - catalog-trusted contextual properties for the FileIO.
      Returns:
      a configured FileIO instance.