[jira] [Commented] (DRILL-8364) Add Support for OAuth Enabled File Systems
[ https://issues.apache.org/jira/browse/DRILL-8364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17645723#comment-17645723 ] ASF GitHub Bot commented on DRILL-8364: --- cgivre merged PR #2714: URL: https://github.com/apache/drill/pull/2714 > Add Support for OAuth Enabled File Systems > -- > > Key: DRILL-8364 > URL: https://issues.apache.org/jira/browse/DRILL-8364 > Project: Apache Drill > Issue Type: Improvement > Components: Storage - File >Affects Versions: 1.20.2 >Reporter: Charles Givre >Assignee: Charles Givre >Priority: Major > Fix For: 2.0.0 > > > Currently Drill supports reading from file systems such as HDFS, S3 and > others that use token based authentication. This PR extends Drill's plugin > architecture so that Drill can connect with other file systems which use > OAuth 2.0 for authentication. > This PR also adds support for Drill to query Box. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (DRILL-8364) Add Support for OAuth Enabled File Systems
[ https://issues.apache.org/jira/browse/DRILL-8364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17645699#comment-17645699 ] ASF GitHub Bot commented on DRILL-8364: --- cgivre commented on code in PR #2714: URL: https://github.com/apache/drill/pull/2714#discussion_r1045149074 ## exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemSchemaFactory.java: ## @@ -82,13 +83,21 @@ public class FileSystemSchema extends AbstractSchema { public FileSystemSchema(String name, SchemaConfig schemaConfig) throws IOException { super(Collections.emptyList(), name); final DrillFileSystem fs = ImpersonationUtil.createFileSystem(schemaConfig.getUserName(), plugin.getFsConf()); + // Set OAuth Information + OAuthConfig oAuthConfig = plugin.getConfig().oAuthConfig(); + if (oAuthConfig != null) { +OAuthEnabledFileSystem underlyingFileSystem = (OAuthEnabledFileSystem) fs.getUnderlyingFs(); Review Comment: @jnturton Good question. I think that may be possible but with a lot of refactoring. I don't fully understand the file system creation process, but in following the flow, I do think that would involve a lot of refactoring. On an unrelated note, Hadoop seems to ship with other classes which extend `FileSystem` such as FTP, SFTP and a few others. It may be possible for Drill to query those by simply adding a few import statements. > Add Support for OAuth Enabled File Systems > -- > > Key: DRILL-8364 > URL: https://issues.apache.org/jira/browse/DRILL-8364 > Project: Apache Drill > Issue Type: Improvement > Components: Storage - File >Affects Versions: 1.20.2 >Reporter: Charles Givre >Assignee: Charles Givre >Priority: Major > Fix For: 2.0.0 > > > Currently Drill supports reading from file systems such as HDFS, S3 and > others that use token based authentication. This PR extends Drill's plugin > architecture so that Drill can connect with other file systems which use > OAuth 2.0 for authentication. > This PR also adds support for Drill to query Box. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (DRILL-8364) Add Support for OAuth Enabled File Systems
[ https://issues.apache.org/jira/browse/DRILL-8364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=1764#comment-1764 ] ASF GitHub Bot commented on DRILL-8364: --- jnturton commented on code in PR #2714: URL: https://github.com/apache/drill/pull/2714#discussion_r1044992012 ## exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemSchemaFactory.java: ## @@ -82,13 +83,21 @@ public class FileSystemSchema extends AbstractSchema { public FileSystemSchema(String name, SchemaConfig schemaConfig) throws IOException { super(Collections.emptyList(), name); final DrillFileSystem fs = ImpersonationUtil.createFileSystem(schemaConfig.getUserName(), plugin.getFsConf()); + // Set OAuth Information + OAuthConfig oAuthConfig = plugin.getConfig().oAuthConfig(); + if (oAuthConfig != null) { +OAuthEnabledFileSystem underlyingFileSystem = (OAuthEnabledFileSystem) fs.getUnderlyingFs(); Review Comment: Last question from me - would it work out cleaner to make OAuthEnabledFileSystem inherit from DrillFileSystem? In particular, could that elimnate this new getUnderlyingFs method()? Or it would cause trouble elsewhere? > Add Support for OAuth Enabled File Systems > -- > > Key: DRILL-8364 > URL: https://issues.apache.org/jira/browse/DRILL-8364 > Project: Apache Drill > Issue Type: Improvement > Components: Storage - File >Affects Versions: 1.20.2 >Reporter: Charles Givre >Assignee: Charles Givre >Priority: Major > Fix For: 2.0.0 > > > Currently Drill supports reading from file systems such as HDFS, S3 and > others that use token based authentication. This PR extends Drill's plugin > architecture so that Drill can connect with other file systems which use > OAuth 2.0 for authentication. > This PR also adds support for Drill to query Box. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (DRILL-8364) Add Support for OAuth Enabled File Systems
[ https://issues.apache.org/jira/browse/DRILL-8364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17645553#comment-17645553 ] ASF GitHub Bot commented on DRILL-8364: --- jnturton commented on code in PR #2714: URL: https://github.com/apache/drill/pull/2714#discussion_r1044990682 ## exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/SeekableByteArrayInputStream.java: ## @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.drill.exec.store.dfs; + +import org.apache.hadoop.fs.PositionedReadable; +import org.apache.hadoop.fs.Seekable; + +import java.io.ByteArrayInputStream; +import java.io.IOException; + +public class SeekableByteArrayInputStream extends ByteArrayInputStream implements Seekable, PositionedReadable { Review Comment: Okay let's do it that way. > Add Support for OAuth Enabled File Systems > -- > > Key: DRILL-8364 > URL: https://issues.apache.org/jira/browse/DRILL-8364 > Project: Apache Drill > Issue Type: Improvement > Components: Storage - File >Affects Versions: 1.20.2 >Reporter: Charles Givre >Assignee: Charles Givre >Priority: Major > Fix For: 2.0.0 > > > Currently Drill supports reading from file systems such as HDFS, S3 and > others that use token based authentication. This PR extends Drill's plugin > architecture so that Drill can connect with other file systems which use > OAuth 2.0 for authentication. > This PR also adds support for Drill to query Box. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (DRILL-8364) Add Support for OAuth Enabled File Systems
[ https://issues.apache.org/jira/browse/DRILL-8364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17644955#comment-17644955 ] ASF GitHub Bot commented on DRILL-8364: --- cgivre commented on code in PR #2714: URL: https://github.com/apache/drill/pull/2714#discussion_r1043748748 ## exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/SeekableByteArrayInputStream.java: ## @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.drill.exec.store.dfs; + +import org.apache.hadoop.fs.PositionedReadable; +import org.apache.hadoop.fs.Seekable; + +import java.io.ByteArrayInputStream; +import java.io.IOException; + +public class SeekableByteArrayInputStream extends ByteArrayInputStream implements Seekable, PositionedReadable { Review Comment: @jnturton I was able to replace this in the Dropbox reader, however the Box reader did not work. Since there is additional work planned in Drill-8367, is it ok to leave this as is and we will fix it in the context of Drill-8367? > Add Support for OAuth Enabled File Systems > -- > > Key: DRILL-8364 > URL: https://issues.apache.org/jira/browse/DRILL-8364 > Project: Apache Drill > Issue Type: Improvement > Components: Storage - File >Affects Versions: 1.20.2 >Reporter: Charles Givre >Assignee: Charles Givre >Priority: Major > Fix For: 2.0.0 > > > Currently Drill supports reading from file systems such as HDFS, S3 and > others that use token based authentication. This PR extends Drill's plugin > architecture so that Drill can connect with other file systems which use > OAuth 2.0 for authentication. > This PR also adds support for Drill to query Box. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (DRILL-8364) Add Support for OAuth Enabled File Systems
[ https://issues.apache.org/jira/browse/DRILL-8364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17644896#comment-17644896 ] ASF GitHub Bot commented on DRILL-8364: --- cgivre commented on code in PR #2714: URL: https://github.com/apache/drill/pull/2714#discussion_r1043592053 ## exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/BoxFileSystem.java: ## @@ -0,0 +1,459 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.drill.exec.store.dfs; + +import com.box.sdk.BoxAPIConnection; +import com.box.sdk.BoxFile; +import com.box.sdk.BoxFolder; +import com.box.sdk.BoxFolder.Info; +import com.box.sdk.BoxItem; +import com.box.sdk.BoxSearch; +import com.box.sdk.BoxSearchParameters; +import com.box.sdk.PartialCollection; +import org.apache.commons.io.FilenameUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.drill.common.exceptions.UserException; +import org.apache.drill.common.logical.security.CredentialsProvider; +import org.apache.drill.exec.oauth.PersistentTokenTable; +import org.apache.drill.exec.store.security.oauth.OAuthTokenCredentials; +import org.apache.drill.exec.store.security.oauth.OAuthTokenCredentials.Builder; +import org.apache.hadoop.fs.FSDataInputStream; +import org.apache.hadoop.fs.FSDataOutputStream; +import org.apache.hadoop.fs.FileStatus; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.permission.FsPermission; +import org.apache.hadoop.util.Progressable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +public class BoxFileSystem extends OAuthEnabledFileSystem { + + private static final Logger logger = LoggerFactory.getLogger(BoxFileSystem.class); + private static final String TIMEOUT_DEFAULT = "5000"; + private static final List SEARCH_CONTENT_TYPES = new ArrayList<>(Collections.singletonList("name")); + private Path workingDirectory; + private BoxAPIConnection client; + private String workingDirectoryID; + private BoxFolder rootFolder; + private boolean usesDeveloperToken; + private final List ancestorFolderIDs = new ArrayList<>(); + private final Map itemCache = new HashMap<>(); + + /** + * Returns a URI which identifies this FileSystem. + * + * @return the URI of this filesystem. + */ + @Override + public URI getUri() { +try { + return new URI("box:///"); +} catch (URISyntaxException e) { + throw new RuntimeException(e); +} + } + + /** + * Opens an FSDataInputStream at the indicated Path. + * + * @param inputPath the file name to open + * @param bufferSize the size of the buffer to be used. + * @throws IOException IO failure + */ + @Override + public FSDataInputStream open(Path inputPath, int bufferSize) throws IOException { +client = getClient(); +ByteArrayOutputStream out = new ByteArrayOutputStream(); + +BoxItem item = getItem(inputPath); +if (item instanceof BoxFile) { + BoxFile file = (BoxFile) getItem(inputPath); Review Comment: Fixed > Add Support for OAuth Enabled File Systems > -- > > Key: DRILL-8364 > URL: https://issues.apache.org/jira/browse/DRILL-8364 > Project: Apache Drill > Issue Type: Improvement > Components: Storage - File >Affects Versions: 1.20.2 >Reporter: Charles Givre >Assignee: Charles Givre >Priority: Major > Fix For: 2.0.0 > > > Currently Drill supports reading from file systems such as HDFS, S3 and > others that use token based authentication. This PR extends Drill's plugin > architecture so that Drill can connect with other file systems which use > OAuth 2.0 for authentication. > This PR also adds support for Drill to query Box.
[jira] [Commented] (DRILL-8364) Add Support for OAuth Enabled File Systems
[ https://issues.apache.org/jira/browse/DRILL-8364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17644834#comment-17644834 ] ASF GitHub Bot commented on DRILL-8364: --- jnturton commented on code in PR #2714: URL: https://github.com/apache/drill/pull/2714#discussion_r1042270417 ## exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/BoxFileSystem.java: ## @@ -0,0 +1,459 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.drill.exec.store.dfs; + +import com.box.sdk.BoxAPIConnection; +import com.box.sdk.BoxFile; +import com.box.sdk.BoxFolder; +import com.box.sdk.BoxFolder.Info; +import com.box.sdk.BoxItem; +import com.box.sdk.BoxSearch; +import com.box.sdk.BoxSearchParameters; +import com.box.sdk.PartialCollection; +import org.apache.commons.io.FilenameUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.drill.common.exceptions.UserException; +import org.apache.drill.common.logical.security.CredentialsProvider; +import org.apache.drill.exec.oauth.PersistentTokenTable; +import org.apache.drill.exec.store.security.oauth.OAuthTokenCredentials; +import org.apache.drill.exec.store.security.oauth.OAuthTokenCredentials.Builder; +import org.apache.hadoop.fs.FSDataInputStream; +import org.apache.hadoop.fs.FSDataOutputStream; +import org.apache.hadoop.fs.FileStatus; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.permission.FsPermission; +import org.apache.hadoop.util.Progressable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +public class BoxFileSystem extends OAuthEnabledFileSystem { + + private static final Logger logger = LoggerFactory.getLogger(BoxFileSystem.class); + private static final String TIMEOUT_DEFAULT = "5000"; + private static final List SEARCH_CONTENT_TYPES = new ArrayList<>(Collections.singletonList("name")); + private Path workingDirectory; + private BoxAPIConnection client; + private String workingDirectoryID; + private BoxFolder rootFolder; + private boolean usesDeveloperToken; + private final List ancestorFolderIDs = new ArrayList<>(); + private final Map itemCache = new HashMap<>(); + + /** + * Returns a URI which identifies this FileSystem. + * + * @return the URI of this filesystem. + */ + @Override + public URI getUri() { +try { + return new URI("box:///"); +} catch (URISyntaxException e) { + throw new RuntimeException(e); +} + } + + /** + * Opens an FSDataInputStream at the indicated Path. + * + * @param inputPath the file name to open + * @param bufferSize the size of the buffer to be used. + * @throws IOException IO failure + */ + @Override + public FSDataInputStream open(Path inputPath, int bufferSize) throws IOException { +client = getClient(); +ByteArrayOutputStream out = new ByteArrayOutputStream(); + +BoxItem item = getItem(inputPath); +if (item instanceof BoxFile) { + BoxFile file = (BoxFile) getItem(inputPath); + updateTokens(); + + file.download(out); + updateTokens(); + + FSDataInputStream fsDataInputStream = new FSDataInputStream(new SeekableByteArrayInputStream(out.toByteArray())); Review Comment: We're buffering query data into heap memory here, something we don't want to do, but I've just created DRILL-8367 so that we work through all of the places where this is done in a separate exercise. ## exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/SeekableByteArrayInputStream.java: ## @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to y
[jira] [Commented] (DRILL-8364) Add Support for OAuth Enabled File Systems
[ https://issues.apache.org/jira/browse/DRILL-8364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17644345#comment-17644345 ] ASF GitHub Bot commented on DRILL-8364: --- jnturton commented on PR #2714: URL: https://github.com/apache/drill/pull/2714#issuecomment-1341006745 > @jnturton I don't know. Unlike the regular storage plugins, which are pretty self-contained, to use a file system, you have to "register" it in the `FileSystemPlugin` class. Okay, let's leave that refactoring for a separate PR. > Add Support for OAuth Enabled File Systems > -- > > Key: DRILL-8364 > URL: https://issues.apache.org/jira/browse/DRILL-8364 > Project: Apache Drill > Issue Type: Improvement > Components: Storage - File >Affects Versions: 1.20.2 >Reporter: Charles Givre >Assignee: Charles Givre >Priority: Major > Fix For: 2.0.0 > > > Currently Drill supports reading from file systems such as HDFS, S3 and > others that use token based authentication. This PR extends Drill's plugin > architecture so that Drill can connect with other file systems which use > OAuth 2.0 for authentication. > This PR also adds support for Drill to query Box. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (DRILL-8364) Add Support for OAuth Enabled File Systems
[ https://issues.apache.org/jira/browse/DRILL-8364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17644326#comment-17644326 ] ASF GitHub Bot commented on DRILL-8364: --- cgivre commented on PR #2714: URL: https://github.com/apache/drill/pull/2714#issuecomment-1340938156 > @jnturton I don't know. Unlike the regular storage plugins, which are pretty self-contained, to use a file system, you have to "register" it in the `FileSystemPlugin` class. (See below). I assumed, perhaps incorrectly, that new file systems had to be in the `java-exec` package. I'm not a packaging expert, so do you know what we'd have to do in order to move these to `contrib`? https://github.com/apache/drill/blob/53e4227650755607db961b758b7966b1d6d4582f/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemPlugin.java#L93-L96 > Add Support for OAuth Enabled File Systems > -- > > Key: DRILL-8364 > URL: https://issues.apache.org/jira/browse/DRILL-8364 > Project: Apache Drill > Issue Type: Improvement > Components: Storage - File >Affects Versions: 1.20.2 >Reporter: Charles Givre >Assignee: Charles Givre >Priority: Major > Fix For: 2.0.0 > > > Currently Drill supports reading from file systems such as HDFS, S3 and > others that use token based authentication. This PR extends Drill's plugin > architecture so that Drill can connect with other file systems which use > OAuth 2.0 for authentication. > This PR also adds support for Drill to query Box. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (DRILL-8364) Add Support for OAuth Enabled File Systems
[ https://issues.apache.org/jira/browse/DRILL-8364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17644154#comment-17644154 ] ASF GitHub Bot commented on DRILL-8364: --- jnturton commented on PR #2714: URL: https://github.com/apache/drill/pull/2714#issuecomment-1340417592 Would it be possible, for the sake of structuring the code base, to move the Box and Dropbox filesystem implementations out to contrib/storage-box and contrib/storage-dropbox modules (while keeping the current Java package organsiation)? > Add Support for OAuth Enabled File Systems > -- > > Key: DRILL-8364 > URL: https://issues.apache.org/jira/browse/DRILL-8364 > Project: Apache Drill > Issue Type: Improvement > Components: Storage - File >Affects Versions: 1.20.2 >Reporter: Charles Givre >Assignee: Charles Givre >Priority: Major > Fix For: 2.0.0 > > > Currently Drill supports reading from file systems such as HDFS, S3 and > others that use token based authentication. This PR extends Drill's plugin > architecture so that Drill can connect with other file systems which use > OAuth 2.0 for authentication. > This PR also adds support for Drill to query Box. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (DRILL-8364) Add Support for OAuth Enabled File Systems
[ https://issues.apache.org/jira/browse/DRILL-8364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17642943#comment-17642943 ] ASF GitHub Bot commented on DRILL-8364: --- cgivre opened a new pull request, #2714: URL: https://github.com/apache/drill/pull/2714 # [DRILL-8364](https://issues.apache.org/jira/browse/DRILL-8364): Add Support for OAuth Enabled File Systems ## Description This PR adds support for Drill to query file systems which use OAuth for authorization and authentication. This PR also adds support for Drill to query [Box.com](https://box.com). ## Documentation See README for Box for documentation. ## Testing Added unit tests and tested manually. > Add Support for OAuth Enabled File Systems > -- > > Key: DRILL-8364 > URL: https://issues.apache.org/jira/browse/DRILL-8364 > Project: Apache Drill > Issue Type: Improvement > Components: Storage - File >Affects Versions: 1.20.2 >Reporter: Charles Givre >Assignee: Charles Givre >Priority: Major > Fix For: 2.0.0 > > > Currently Drill supports reading from file systems such as HDFS, S3 and > others that use token based authentication. This PR extends Drill's plugin > architecture so that Drill can connect with other file systems which use > OAuth 2.0 for authentication. > This PR also adds support for Drill to query Box. -- This message was sent by Atlassian Jira (v8.20.10#820010)