Skip to content

Commit adc33c2

Browse files
snazyrenovate-botadutraflyrainjbonofre
authored
Dremio merge 2025 06 02 10 57 (#78)
* main: Update dependency org.postgresql:postgresql to v42.7.6 (apache#1697) * main: Update helm/chart-testing-action action to v2.7.0 (apache#1700) * main: Update gradle/actions digest to 8379f6a (apache#1696) * main: Update medyagh/setup-minikube action to v0.0.19 (apache#1698) * feat(metrics): Mitigate potential performance issues with realm_id tag (apache#1662) As discussed in the ML, this PR introduces two flags to enable the inclusion of realm ID tags in API and HTTP metrics. They are both disabled by default. There is also a new safeguard: if the cardinality of realm IDs in HTTP metrics goes above a configurable threshold (100 by default), a warning is printed and no more HTTP metrics will be recorded. (Quarkus has a similar safeguard for URI tags in HTTP metrics.) * Site/contributing: add recommendations for working with PRs (apache#1625) This change updates the PR guidelines on the "Contributing" web page after [this discussion](https://lists.apache.org/thread/kfxo3cqmw3pgrpgtgqvqpwvn46yw8q7h). Also adopt `gradlew test` to `gradlew check` in README, following the intent (all tests, incl ITs) * main: Update dependency com.azure:azure-sdk-bom to v1.2.35 (apache#1703) * main: Update dependency com.adobe.testing:s3mock-testcontainers to v4.4.0 (apache#1705) * main: Update dependency boto3 to v1.38.24 (apache#1702) * Keep generated RSA-key-pair for JWT token broker on heap (apache#1661) Polaris allows using RSA key-paris for the JWT token broker. The recommended way is to [generate the RSA key pair](https://github.com/apache/polaris/blob/d8b862b13914d526ee147dc0e359bfc9c1e319ad/site/content/in-dev/unreleased/configuring-polaris-for-production.md?plain=1#L61-L66) and configure the location of the key files. However, if only `polaris.authentication.token-broker.type=rsa-key-pair` but not the `public/private-key-pair` options are configured, Polaris generates those and stores them in `/tmp` using random file names (using `Files.createTempFile()`) - this happens for each (matching) realm. Each Polaris startup generates new key-pairs for each of those realms. It's practically not possible to associate the files to a realm. There is already a [production readiness check](https://github.com/apache/polaris/blob/d8b862b13914d526ee147dc0e359bfc9c1e319ad/quarkus/service/src/main/java/org/apache/polaris/service/quarkus/config/ProductionReadinessChecks.java#L118-L166) to warn users about this behavior. Due to the issue that the files cannot be associated, those seem to be somewhat useless and bring no advantage over keeping these "ephemeral RSA key pairs" on heap. This PR changes the code to not write the key-pair to the file system and keeps these "ephemeral key pairs" on heap. Since the same code path is used for key-paris _provided_ by the user (via the `public/private-key-pair` config options), that code path now only reads those files once and not every time the private/public key is needed. * Merge JPA module with EclipseLink Module (apache#1718) * Create LICENSE and NOTICE for "single" distribution (apache#1694) * Fix a failing task with the release profile (apache#1693) * Remove unused adminDocs artifact (apache#1749) * Production readiness for Persistence (apache#1707) Production readiness for Persistence (apache#1707) * Fixes for direct usage of client_secret apache#1756 When the spec was upgraded and the python client regenerated from it, clientSecret was made a password, which means calling str on it directly yields a redacted string like ******. In the initial PR to change the python client and fix regtests, some existing usage of client_secret was not changed. * main: Update dependency org.junit:junit-bom to v5.13.0 (apache#1760) * main: Update dependency org.testcontainers:testcontainers-bom to v1.21.1 (apache#1748) * fix: Improve reliability of metrics tests (apache#1763) CI sometimes fails with errors like "http_server_requests_seconds not found" in the reported metrics. This looks like a race between the Quarkus metrics producer and the tests asking for these metrics. This change adds a time-limited retry loop until the expected metrics are available, before proceeding with other assertions. Note: in normal cases the loop finishes fast because the metrics are available. The two-minute timeout would apply only when the expected metrics fail to be produced at all. * Fix test_spark_credentials_s3_exception_on_metadata_file_deletion (apache#1759) * Regenerate bundled spec & Regenerate Python client (apache#1751) I ran these commands from main: ``` redocly bundle spec/polaris-catalog-service.yaml -o spec/generated/bundled-polaris-catalog-service.yaml ./gradlew regeneratePythonClient ``` I didn't realize before that some Python types are generated form the bundled spec, so some of the fixes from apache#1347 didn't get properly applied before. * main: Update dependency boto3 to v1.38.27 (apache#1714) * NoSQL: bump Weld/Junit5 (fixes a bug that surfaces w/ JUnit 5.13) * NoSQL: Let some more tests leverage Jandex * Info: Last merged commit b7aac72 --------- Co-authored-by: Mend Renovate <bot@renovateapp.com> Co-authored-by: Alexandre Dutra <adutra@users.noreply.github.com> Co-authored-by: Yufei Gu <yufei@apache.org> Co-authored-by: JB Onofré <jbonofre@apache.org> Co-authored-by: Prashant Singh <35593236+singhpk234@users.noreply.github.com> Co-authored-by: Eric Maynard <eric.maynard+oss@snowflake.com> Co-authored-by: Dmitri Bourlatchkov <dmitri.bourlatchkov@gmail.com> Co-authored-by: gh-yzou <167037035+gh-yzou@users.noreply.github.com>
1 parent cf40a0a commit adc33c2

File tree

102 files changed

+5525
-664
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+5525
-664
lines changed

.github/workflows/gradle.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
# Configure Gradle for optimal use in GiHub Actions, including caching of downloaded dependencies.
5151
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
5252
- name: Setup Gradle
53-
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
53+
uses: gradle/actions/setup-gradle@8379f6a1328ee0e06e2bb424dadb7b159856a326 # v4
5454
with:
5555
# The setup-gradle action fails, if the wrapper is not using the right version or is not present.
5656
# Our `gradlew` validates the integrity of the `gradle-wrapper.jar`, so it's safe to disable this.

.github/workflows/helm.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
version: 'v3.16.0'
5656

5757
- name: Set up chart-testing
58-
uses: helm/chart-testing-action@v2.6.1
58+
uses: helm/chart-testing-action@0d28d3144d3a25ea2cc349d6e59901c4ff469b3b # v2.7.0
5959

6060
- name: Run 'helm template' validation
6161
run: |
@@ -75,7 +75,7 @@ jobs:
7575
run: ct lint --target-branch ${{ github.event.repository.default_branch }} --debug --charts ./helm/polaris
7676

7777
- name: Set up Minikube
78-
uses: medyagh/setup-minikube@v0.0.18
78+
uses: medyagh/setup-minikube@cea33675329b799adccc9526aa5daccc26cd5052 # v0.0.19
7979

8080
- name: Print Docker info
8181
run: |

CONTRIBUTING.md

Lines changed: 51 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -64,32 +64,60 @@ Before starting on a large code change, please describe the concept/design of wh
6464

6565
The best way to provide changes is to fork Apache Polaris repository on GitHub and provide a Pull Request with your changes. To make it easy to apply your changes please use the following conventions:
6666

67-
* Every Pull Request should have a matching GitHub Issue.
68-
* Create a branch that will house your change:
69-
70-
```bash
71-
git clone https://github.com/apache/polaris
72-
cd polaris
73-
git fetch --all
74-
git checkout -b my-branch origin/main
75-
```
76-
77-
Don't forget to periodically rebase your branch:
78-
79-
```bash
80-
git pull --rebase
81-
git push GitHubUser my-branch --force
82-
```
83-
84-
Ensure the code is properly formatted:
85-
86-
```bash
87-
./gradlew format
88-
```
67+
#### Before opening a pull request
8968

9069
* Pull Requests should be based on the `main` branch.
91-
* Test that your changes works by adapting or adding tests. Verify the build passes (see `README.md` for build instructions).
70+
* Create a branch that will house your change:
71+
```bash
72+
git clone https://github.com/apache/polaris
73+
cd polaris
74+
git checkout main
75+
git pull
76+
git checkout -b my-branch
77+
```
78+
* Work on the changes of your pull requests locally.
79+
* Recommended checks:
80+
```bash
81+
# Ensure the code is properly formatted and compiles:
82+
./gradlew format compileAll
83+
# Ensure the code is passing the checks (including formatting checks & tests):
84+
./gradlew check
85+
```
86+
* You may want to push your changes to your personal Polaris fork. Git will emit a URL that you can use to create the Pull Request. Do not create the Pull Request yet.
87+
```bash
88+
git push --set-upstream your-github-accout
89+
```
90+
91+
#### Opening a Pull Request
92+
93+
* The Pull Request summary should provide a concise summary of the change, get inspired by [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
94+
* The Pull Request description should provide the background (rationale) of the change and describe the changes in way that someone who has no prior knowledge can understand the rationale of the change and the change itself.
95+
* If there is a matching GitHub Issue, add a separate line at the end of the commit message of the issue that the PR fixes. Do not add the issue number into the subject.
96+
```
97+
Fixes #123456
98+
```
99+
If the PR does not fully fix the issue, use `Related to #123456` instead of `Fixes #123456`.
100+
101+
Tips:
102+
* If the branch for your Pull Request contains only one (squashed) commit, GitHub will populate the PR summary and description from that single commit.
103+
* When opening a PR consider whether the PR is "draft" or already "ready for review". "Draft" means work in progress, things will change, but comments are welcome. "Ready for review" means that the PR is requested to be merged as is (pending review feedback).
104+
105+
#### Working on a Pull Request
106+
107+
* Don't forget to periodically rebase your branch:
108+
```bash
109+
git pull --rebase
110+
git push your-github-accout my-branch --force
111+
```
112+
* Test that your changes work by adapting or adding tests. Verify the build passes (see `README.md` for build instructions).
92113
* If your Pull Request has conflicts with the `main` branch, please rebase and fix the conflicts.
114+
* If your PR requires more work or time or bigger changes, please put the PR to "draft" state to indicate that it is not meant to be "thoroughly" reviewed at this point.
115+
116+
#### Merging a Pull Request
117+
118+
* When a PR is about to be merged, cross-check the commit summary and message for the merged Git commit.
119+
* Keep in mind that the Git commit subject and message is going to be read by other people, potentially even after years. The Git commit subject and message will appear "as is" in release notes.
120+
* Make sure the subject and message are properly formatted and contains a concise description of the changes in way that someone who has no prior knowledge can understand the rationale of the change and the change itself. Remove information that's of no use for someone reading the Git commit log, for example single intermediate commit messages like `formatting` or `fix test`.
93121

94122
## Java version requirements
95123

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,14 @@ Apache Polaris is organized into the following modules:
5959
- `polaris-quarkus-server` - The Polaris server runtime
6060
- `polaris-quarkus-admin-tool` - The Polaris admin & maintenance tool
6161
- Persistence modules:
62-
- `polaris-jpa-model` - The JPA entity definitions
6362
- `polaris-eclipselink` - The Eclipselink implementation of the MetaStoreManager interface
6463
- `polaris-relational-jdbc` - The JDBC implementation of BasePersistence to be used via AtomicMetaStoreManager
6564

6665
Apache Polaris is built using Gradle with Java 21+ and Docker 27+.
6766

6867
- `./gradlew build` - To build and run tests. Make sure Docker is running, as the integration tests depend on it.
6968
- `./gradlew assemble` - To skip tests.
70-
- `./gradlew test` - To run unit tests and integration tests.
69+
- `./gradlew check` - To run all checks, including unit tests and integration tests.
7170
- `./gradlew run` - To run the Polaris server locally; the server is reachable at localhost:8181. This is also suitable for running regression tests, or for connecting with Spark. Set your own credentials by specifying system property `./gradlew run -Dpolaris.bootstrap.credentials=POLARIS,root,secret` where:
7271
- `POLARIS` is the realm
7372
- `root` is the CLIENT_ID

bom/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ dependencies {
8686

8787
api(project(":polaris-eclipselink"))
8888
api(project(":polaris-relational-jdbc"))
89-
api(project(":polaris-jpa-model"))
9089

9190
api(project(":polaris-quarkus-admin"))
9291
api(project(":polaris-quarkus-common"))

client/python/docs/AuthenticationParameters.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
-->
2121
# AuthenticationParameters
2222

23-
Authentication-specific information for a REST connection
23+
Authentication-specific information for a connection
2424

2525
## Properties
2626

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<!--
2+
3+
Licensed to the Apache Software Foundation (ASF) under one
4+
or more contributor license agreements. See the NOTICE file
5+
distributed with this work for additional information
6+
regarding copyright ownership. The ASF licenses this file
7+
to you under the Apache License, Version 2.0 (the
8+
"License"); you may not use this file except in compliance
9+
with the License. You may obtain a copy of the License at
10+
11+
http://www.apache.org/licenses/LICENSE-2.0
12+
13+
Unless required by applicable law or agreed to in writing,
14+
software distributed under the License is distributed on an
15+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+
KIND, either express or implied. See the License for the
17+
specific language governing permissions and limitations
18+
under the License.
19+
20+
-->
21+
# AwsIamServiceIdentityInfo
22+
23+
24+
## Properties
25+
26+
Name | Type | Description | Notes
27+
------------ | ------------- | ------------- | -------------
28+
**iam_arn** | **str** | The ARN of the IAM user or IAM role Polaris uses to assume roles and then access external resources. |
29+
30+
## Example
31+
32+
```python
33+
from polaris.management.models.aws_iam_service_identity_info import AwsIamServiceIdentityInfo
34+
35+
# TODO update the JSON string below
36+
json = "{}"
37+
# create an instance of AwsIamServiceIdentityInfo from a JSON string
38+
aws_iam_service_identity_info_instance = AwsIamServiceIdentityInfo.from_json(json)
39+
# print the JSON string representation of the object
40+
print(AwsIamServiceIdentityInfo.to_json())
41+
42+
# convert the object into a dict
43+
aws_iam_service_identity_info_dict = aws_iam_service_identity_info_instance.to_dict()
44+
# create an instance of AwsIamServiceIdentityInfo from a dict
45+
aws_iam_service_identity_info_from_dict = AwsIamServiceIdentityInfo.from_dict(aws_iam_service_identity_info_dict)
46+
```
47+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
48+
49+

client/python/docs/CatalogPrivilege.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,22 @@
7373

7474
* `VIEW_FULL_METADATA` (value: `'VIEW_FULL_METADATA'`)
7575

76+
* `POLICY_CREATE` (value: `'POLICY_CREATE'`)
77+
78+
* `POLICY_WRITE` (value: `'POLICY_WRITE'`)
79+
80+
* `POLICY_READ` (value: `'POLICY_READ'`)
81+
82+
* `POLICY_DROP` (value: `'POLICY_DROP'`)
83+
84+
* `POLICY_LIST` (value: `'POLICY_LIST'`)
85+
86+
* `POLICY_FULL_METADATA` (value: `'POLICY_FULL_METADATA'`)
87+
88+
* `CATALOG_ATTACH_POLICY` (value: `'CATALOG_ATTACH_POLICY'`)
89+
90+
* `CATALOG_DETACH_POLICY` (value: `'CATALOG_DETACH_POLICY'`)
91+
7692
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
7793

7894

client/python/docs/ConnectionConfigInfo.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Name | Type | Description | Notes
2929
**connection_type** | **str** | The type of remote catalog service represented by this connection |
3030
**uri** | **str** | URI to the remote catalog service | [optional]
3131
**authentication_parameters** | [**AuthenticationParameters**](AuthenticationParameters.md) | | [optional]
32+
**service_identity** | [**ServiceIdentityInfo**](ServiceIdentityInfo.md) | | [optional]
3233

3334
## Example
3435

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<!--
2+
3+
Licensed to the Apache Software Foundation (ASF) under one
4+
or more contributor license agreements. See the NOTICE file
5+
distributed with this work for additional information
6+
regarding copyright ownership. The ASF licenses this file
7+
to you under the Apache License, Version 2.0 (the
8+
"License"); you may not use this file except in compliance
9+
with the License. You may obtain a copy of the License at
10+
11+
http://www.apache.org/licenses/LICENSE-2.0
12+
13+
Unless required by applicable law or agreed to in writing,
14+
software distributed under the License is distributed on an
15+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+
KIND, either express or implied. See the License for the
17+
specific language governing permissions and limitations
18+
under the License.
19+
20+
-->
21+
# HadoopConnectionConfigInfo
22+
23+
Configuration necessary for connecting to a Hadoop Catalog
24+
25+
## Properties
26+
27+
Name | Type | Description | Notes
28+
------------ | ------------- | ------------- | -------------
29+
**warehouse** | **str** | The file path to where this catalog should store tables | [optional]
30+
31+
## Example
32+
33+
```python
34+
from polaris.management.models.hadoop_connection_config_info import HadoopConnectionConfigInfo
35+
36+
# TODO update the JSON string below
37+
json = "{}"
38+
# create an instance of HadoopConnectionConfigInfo from a JSON string
39+
hadoop_connection_config_info_instance = HadoopConnectionConfigInfo.from_json(json)
40+
# print the JSON string representation of the object
41+
print(HadoopConnectionConfigInfo.to_json())
42+
43+
# convert the object into a dict
44+
hadoop_connection_config_info_dict = hadoop_connection_config_info_instance.to_dict()
45+
# create an instance of HadoopConnectionConfigInfo from a dict
46+
hadoop_connection_config_info_from_dict = HadoopConnectionConfigInfo.from_dict(hadoop_connection_config_info_dict)
47+
```
48+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
49+
50+

0 commit comments

Comments
 (0)