Skip to content

Conversation

jackye1995
Copy link
Collaborator

Summary

  • Add support for Polaris Catalog integration using the Generic Table API
  • Follow the same pattern as Unity Catalog implementation (commit 6005e08)
  • Enable Lance tables to be managed alongside other formats in Polaris

Changes

  • Implement PolarisNamespace class with full namespace and table operations
  • Add PolarisNamespaceConfig for configuration management
  • Add PolarisModels for Polaris API data transfer objects
  • Use RestClient from lance-namespace-core for HTTP communication
  • Support bearer token authentication
  • Map Polaris Generic Table API to Lance namespace interface
  • Add comprehensive documentation in docs/src/impls/polaris.md
  • Include unit tests with mocked RestClient

Implementation Details

The implementation uses Polaris's Generic Table API endpoints:

  • Namespace operations: Standard Iceberg REST API (/namespaces)
  • Table operations: Generic Table API (/namespaces/{namespace}/generic-tables)

Lance tables are stored as Generic Tables with format: "lance" and appropriate properties for identification.

Testing

  • Unit tests included with mocked RestClient
  • Ready for integration testing against actual Polaris instance

Documentation

Comprehensive documentation added at docs/src/impls/polaris.md covering:

  • Architecture and API mappings
  • Configuration options
  • Usage examples
  • Limitations and implementation details

🤖 Generated with Claude Code

Add support for Polaris Catalog integration using the Generic Table API.
This follows the same pattern as Unity Catalog implementation.

- Implement PolarisNamespace with full namespace and table operations
- Use RestClient from lance-namespace-core for HTTP communication
- Support bearer token authentication
- Map Polaris Generic Table API to Lance namespace interface
- Add comprehensive documentation in docs/src/impls/polaris.md
- Include unit tests with mocked RestClient

The implementation allows Lance tables to be managed alongside other
table formats (Iceberg, Delta) in Polaris Catalog.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@github-actions github-actions bot added enhancement New feature or request java Java features labels Aug 24, 2025
- Add TestPolarisNamespaceIntegration for testing against running Polaris
- Support OAuth and basic auth for Polaris authentication
- Skip integration tests when Polaris is not available
- Fix test mocking to include doc field in responses
- Update README with testing instructions

Integration tests run with: mvn test -Dtest.polaris.integration=true
- Remove need for -Dtest.polaris.integration=true flag
- Automatically detect if Polaris is available at localhost:8182
- Skip integration tests if Polaris API is not responding
- Check /api/catalog/v1/namespaces endpoint to verify Polaris is running
- Update documentation to reflect automatic detection
- Remove module-specific README.md
- Simplify polaris.md to focus on configuration, namespace mapping, and table definition
- Remove programming language specific sections
- Follow the concise style of Unity and Glue documentation
- Remove polaris. prefix from configuration properties
- Update namespace mapping docs to reflect arbitrary nesting support
- Remove created_at property from table definition
- Set managed_by to 'storage' by default, matching Unity and Hive
- Only set version property when managed_by=impl
- Move API endpoints to top-level introduction
- Remove limitations section from documentation
- Catalog is a user-creatable entity in Polaris, not a configuration
- Catalog is now the first level of the namespace hierarchy
- Update API URL to use /api/catalog/v1 path
- Remove catalog from PolarisNamespaceConfig
- Update documentation to reflect catalog as part of namespace mapping
- Change auth.token to auth_token
- Change connect.timeout to connect_timeout
- Change read.timeout to read_timeout
- Change max.retries to max_retries
- Follow consistent naming convention with underscore separators
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request java Java features
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant