sudeephazra opened a new pull request, #12293:
URL: https://github.com/apache/seatunnel/pull/12293

   ### Purpose of this pull request
   
   This pull request adds an Azure Data Lake Storage Gen2 file connector 
(`ADLSFile`) for SeaTunnel Connector V2.
   
   The connector:
   
   - Adds ADLS Gen2 source and sink implementations using the secure Hadoop 
ABFS (`abfss://`) filesystem.
   - Supports Shared Key and Microsoft Entra OAuth client-credentials 
authentication.
   - Validates storage account, container, endpoint, credentials, and advanced 
Hadoop properties.
   - Adds an ADLS runtime compatibility module based on `hadoop-azure`.
   - Reuses the existing file connector framework and supported file formats.
   - Adds source and sink documentation in English and Chinese.
   - Adds unit tests for ADLS configuration, authentication, runtime 
configuration, and source-file metadata.
   - Adds an opt-in integration test for the ADLS file lifecycle against a real 
HNS-enabled storage account.
   
   
   
   ### Does this PR introduce _any_ user-facing change?
   
   Yes.
   
   Previously, SeaTunnel did not provide a dedicated Connector V2 source and 
sink for Azure Data Lake Storage Gen2.
   
   This PR introduces the `ADLSFile` source and sink. Users can read from and 
write to ADLS Gen2 through secure `abfss://` endpoints using either:
   
   - `SHARED_KEY` authentication with `account_key`
   - `OAUTH_CLIENT_CREDENTIALS` authentication with `tenant_id`, `client_id`, 
and `client_secret`
   
   Example:
   
   ```hocon
   source {
     ADLSFile {
       path = "/landing/input"
       account_name = "mystorageaccount"
       container = "data"
       auth_type = "SHARED_KEY"
       account_key = ${?ADLS_ACCOUNT_KEY}
       file_format_type = "csv"
       skip_header_row_number = 1
   
       schema {
         fields {
           id = bigint
           name = string
           amount = double
         }
       }
     }
   }
   
   
   ### How was this patch tested?
   
   The following tests were added:
   - ADLSConfigValidatorTest
     - Rejects credentials belonging to the wrong authentication mode.
     - Rejects attempts to override connector-owned Hadoop properties.
     - Accepts non-conflicting advanced Hadoop properties.
   - ADLSHadoopConfTest
     - Verifies secure ABFS URI generation.
     - Verifies Shared Key configuration.
     - Verifies OAuth client-credentials configuration.
   - ADLSRuntimeCompatibilityTest
     - Verifies availability of the secure ABFS implementation.
     - Verifies base Hadoop configuration and both authentication modes.
     - Verifies rejection of invalid account names and missing credentials.
   - ADLSRuntimeCompatibilityIT
     - Provides an opt-in integration test that creates, writes, reads, 
renames, and deletes a file in a real ADLS Gen2 filesystem.
   - SourceFileNameCollectorTest and PreserveSourceFilenameTest
     - Cover source filename metadata, multi-file routing, duplicate basenames, 
missing metadata, and conflicting sink options.
   
   
   ### Check list
   
   * [] If any new Jar binary package adding in your PR, please add License 
Notice according
     [New License 
Guide](https://github.com/apache/seatunnel/blob/dev/docs/en/developer/new-license.md)
   * [x] If necessary, please update the documentation to describe the new 
feature. https://github.com/apache/seatunnel/tree/dev/docs
   * [x ] If necessary, please update `incompatible-changes.md` to describe the 
incompatibility caused by this PR.
   * [x ] If you are contributing the connector code, please check that the 
following files are updated:
     1. Update 
[plugin-mapping.properties](https://github.com/apache/seatunnel/blob/dev/plugin-mapping.properties)
 and add new connector information in it
     2. Update the pom file of 
[seatunnel-dist](https://github.com/apache/seatunnel/blob/dev/seatunnel-dist/pom.xml)
     3. Add ci label in 
[label-scope-conf](https://github.com/apache/seatunnel/blob/dev/.github/workflows/labeler/label-scope-conf.yml)
     4. Add e2e testcase in 
[seatunnel-e2e](https://github.com/apache/seatunnel/tree/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/)
     5. Update connector 
[plugin_config](https://github.com/apache/seatunnel/blob/dev/config/plugin_config)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to