Skip to content

Commit 7225ed1

Browse files
committed
Merge branch master into enxdev/fix/matrixify-y-axis-responsive-ticks
2 parents 758ab65 + e0a0a22 commit 7225ed1

345 files changed

Lines changed: 23953 additions & 5447 deletions

File tree

Some content is hidden

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

.github/SECURITY.md

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,46 @@ e-mail address [security@superset.apache.org](mailto:security@superset.apache.or
1818
More details can be found on the ASF website at
1919
[ASF vulnerability reporting process](https://apache.org/security/#reporting-a-vulnerability)
2020

21-
We kindly ask you to include the following information in your report:
22-
- Apache Superset version that you are using
23-
- A sanitized copy of your `superset_config.py` file or any config overrides
24-
- Detailed steps to reproduce the vulnerability
21+
**Submission Standards & AI Policy**
22+
23+
To ensure engineering focus remains on verified risks and to manage high reporting volumes, all reports must meet the following criteria:
24+
- Plain Text Format: In accordance with Apache guidelines, please provide all details in plain text within the email body. Avoid sending PDFs, Word documents, or password-protected archives.
25+
- Mandatory AI Disclosure: If you utilized Large Language Models (LLMs) or AI tools to identify a flaw or assist in writing a report, you must disclose this in your submission so our triage team can contextualize the findings.
26+
- Human-Verified PoC: All submissions must include a manual, step-by-step Proof of Concept (PoC) performed on a supported release. Raw AI outputs, hypothetical chat transcripts, or unverified scanner logs will be closed as Invalid.
27+
28+
We kindly ask you to include the following information in your report to assist our developers in triaging and remediating issues efficiently:
29+
- Version/Commit: The specific version of Apache Superset or the Git commit hash you are using.
30+
- Configuration: A sanitized copy of your `superset_config.py` file or any config overrides.
31+
- Environment: Your deployment method (e.g., Docker Compose, Helm, or source) and relevant OS/Browser details.
32+
- Impacted Component: Identification of the affected area (e.g., Python backend, React frontend, or a specific database connector).
33+
- Expected vs. Actual Behavior: A clear description of the intended system behavior versus the observed vulnerability.
34+
- Detailed Reproduction Steps: Clear, manual steps to reproduce the vulnerability.
35+
36+
**Out of Scope Vulnerabilities**
37+
38+
To prioritize engineering efforts on genuine architectural risks, the following scenarios are explicitly out of scope and will not be issued a CVE:
39+
- Attacks requiring Admin privileges: (e.g., CSS injection, template manipulation, dashboard ownership overrides, or modifying global system settings). Per the CVE vulnerability definition in CNA Operational Rules 4.1, a qualifying vulnerability must allow violation of a security policy. The Admin role is a fully trusted operational boundary defined by Apache Superset's security policy; actions within this boundary do not violate that policy and are therefore considered intended capabilities 'by design,' not vulnerabilities.
40+
- Brute Force and Rate Limiting: Reports targeting a lack of resource exhaustion protections, generic rate-limiting, or volumetric Denial of Service (DoS) attempts.
41+
- Theoretical attack vectors: Issues without a demonstrable, reproducible exploit path.
42+
- Non-Exploitable Findings: Missing security headers, generic banner disclosures, or descriptive error messages that do not lead to a direct, documented exploit.
43+
44+
**Outcome of Reports**
45+
46+
Reports that are deemed out-of-scope for a CVE but represent valid security best practices or hardening opportunities may be converted into public GitHub issues. This allows the community to contribute to the general hardening of the platform even when a specific vulnerability threshold is not met.
2547

2648
Note that Apache Superset is not responsible for any third-party dependencies that may
2749
have security issues. Any vulnerabilities found in third-party dependencies should be
2850
reported to the maintainers of those projects. Results from security scans of Apache
2951
Superset dependencies found on its official Docker image can be remediated at release time
3052
by extending the image itself.
3153

54+
**Vulnerability Aggregation & CVE Attribution**
55+
56+
In accordance with MITRE CNA Operational Rules (4.1.10, 4.1.11, and 4.2.13), Apache Superset issues CVEs based on the underlying architectural root cause rather than the number of affected endpoints or exploit payloads.
57+
- Aggregation: If multiple exploit vectors stem from the same programmatic failure or shared vulnerable code, they must be aggregated into a single, comprehensive report.
58+
- Independent Fixes: Separate CVEs will only be assigned if the vulnerabilities reside in decoupled architectural modules and can be fixed independently of one another.
59+
Reports that fail to aggregate related findings will be merged during triage to ensure an accurate and defensible CVE record.
60+
3261
**Your responsible disclosure and collaboration are invaluable.**
3362

3463
## Extra Information

.github/actions/setup-docker/action.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,16 @@ runs:
2626

2727
- name: Set up QEMU
2828
if: ${{ inputs.build == 'true' }}
29-
uses: docker/setup-qemu-action@v3
29+
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
3030

3131
- name: Set up Docker Buildx
3232
if: ${{ inputs.build == 'true' }}
33-
uses: docker/setup-buildx-action@v3
33+
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
3434

3535
- name: Try to login to DockerHub
3636
if: ${{ inputs.login-to-dockerhub == 'true' }}
3737
continue-on-error: true
38-
uses: docker/login-action@v3
38+
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
3939
with:
4040
username: ${{ inputs.dockerhub-user }}
4141
password: ${{ inputs.dockerhub-token }}

.github/workflows/bump-python-package.yml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
steps:
3333

3434
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
35-
uses: actions/checkout@v6
35+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
3636
with:
3737
persist-credentials: true
3838
ref: master
@@ -41,7 +41,7 @@ jobs:
4141
uses: ./.github/actions/setup-supersetbot/
4242

4343
- name: Set up Python ${{ inputs.python-version }}
44-
uses: actions/setup-python@v6
44+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
4545
with:
4646
python-version: "3.10"
4747

@@ -51,27 +51,31 @@ jobs:
5151
- name: supersetbot bump-python -p "${{ github.event.inputs.package }}"
5252
env:
5353
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
54+
INPUT_PACKAGE: ${{ github.event.inputs.package }}
55+
INPUT_GROUP: ${{ github.event.inputs.group }}
56+
INPUT_EXTRA_FLAGS: ${{ github.event.inputs.extra-flags }}
57+
INPUT_LIMIT: ${{ github.event.inputs.limit }}
5458
run: |
5559
git config --global user.email "action@github.com"
5660
git config --global user.name "GitHub Action"
5761
5862
PACKAGE_OPT=""
59-
if [ -n "${{ github.event.inputs.package }}" ]; then
60-
PACKAGE_OPT="-p ${{ github.event.inputs.package }}"
63+
if [ -n "${INPUT_PACKAGE}" ]; then
64+
PACKAGE_OPT="-p ${INPUT_PACKAGE}"
6165
fi
6266
6367
GROUP_OPT=""
64-
if [ -n "${{ github.event.inputs.group }}" ]; then
65-
GROUP_OPT="-g ${{ github.event.inputs.group }}"
68+
if [ -n "${INPUT_GROUP}" ]; then
69+
GROUP_OPT="-g ${INPUT_GROUP}"
6670
fi
6771
68-
EXTRA_FLAGS="${{ github.event.inputs.extra-flags }}"
72+
EXTRA_FLAGS="${INPUT_EXTRA_FLAGS}"
6973
7074
supersetbot bump-python \
7175
--verbose \
7276
--use-current-repo \
7377
--include-subpackages \
74-
--limit ${{ github.event.inputs.limit }} \
78+
--limit ${INPUT_LIMIT} \
7579
$PACKAGE_OPT \
7680
$GROUP_OPT \
7781
$EXTRA_FLAGS

.github/workflows/cancel_duplicates.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
3232
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
3333
if: steps.check_queued.outputs.count >= 20
34-
uses: actions/checkout@v6
34+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
3535

3636
- name: Cancel duplicate workflow runs
3737
if: steps.check_queued.outputs.count >= 20

.github/workflows/check-python-deps.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
runs-on: ubuntu-22.04
1919
steps:
2020
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
21-
uses: actions/checkout@v6
21+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
2222
with:
2323
persist-credentials: false
2424
submodules: recursive

.github/workflows/check_db_migration_confict.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ jobs:
2525
pull-requests: write
2626
steps:
2727
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
28-
uses: actions/checkout@v6
28+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
2929
- name: Check and notify
30-
uses: actions/github-script@v8
30+
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
3131
with:
3232
github-token: ${{ github.token }}
3333
script: |

.github/workflows/claude.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
pull-requests: write
4545
steps:
4646
- name: Comment access denied
47-
uses: actions/github-script@v8
47+
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
4848
with:
4949
script: |
5050
const message = `👋 Hi @${{ github.event.comment.user.login || github.event.review.user.login || github.event.issue.user.login }}!
@@ -71,12 +71,12 @@ jobs:
7171
id-token: write
7272
steps:
7373
- name: Checkout repository
74-
uses: actions/checkout@v6
74+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
7575
with:
7676
fetch-depth: 1
7777

7878
- name: Run Claude PR Action
79-
uses: anthropics/claude-code-action@beta
79+
uses: anthropics/claude-code-action@094bd24d575e7b30ac1576024817bf1a97c81262 # beta
8080
with:
8181
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
8282
timeout_minutes: "60"

.github/workflows/codeql-analysis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131

3232
steps:
3333
- name: Checkout repository
34-
uses: actions/checkout@v6
34+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
3535

3636
- name: Check for file changes
3737
id: check

.github/workflows/dependency-review.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ jobs:
2727
runs-on: ubuntu-24.04
2828
steps:
2929
- name: "Checkout Repository"
30-
uses: actions/checkout@v6
30+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
3131
- name: "Dependency Review"
32-
uses: actions/dependency-review-action@v4
32+
uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0
3333
continue-on-error: true
3434
with:
3535
fail-on-severity: critical
@@ -49,7 +49,7 @@ jobs:
4949
runs-on: ubuntu-22.04
5050
steps:
5151
- name: "Checkout Repository"
52-
uses: actions/checkout@v6
52+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
5353

5454
- name: Setup Python
5555
uses: ./.github/actions/setup-backend/

.github/workflows/docker.yml

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
steps:
4343

4444
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
45-
uses: actions/checkout@v6
45+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
4646
with:
4747
persist-credentials: false
4848

@@ -101,23 +101,6 @@ jobs:
101101
docker images $IMAGE_TAG
102102
docker history $IMAGE_TAG
103103
104-
# Scan for vulnerabilities in built container image after pushes to mainline branch.
105-
- name: Run Trivy container image vulnerabity scan
106-
if: github.event_name == 'push' && github.ref == 'refs/heads/master' && (steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker) && matrix.build_preset == 'lean'
107-
uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1 # v0.35.0
108-
with:
109-
image-ref: ${{ env.IMAGE_TAG }}
110-
format: 'sarif'
111-
output: 'trivy-results.sarif'
112-
vuln-type: 'os'
113-
severity: 'CRITICAL,HIGH'
114-
ignore-unfixed: true
115-
- name: Upload Trivy scan results to GitHub Security tab
116-
if: github.event_name == 'push' && github.ref == 'refs/heads/master' && (steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker) && matrix.build_preset == 'lean'
117-
uses: github/codeql-action/upload-sarif@1b168cd39490f61582a9beae412bb7057a6b2c4e # v4.31.8
118-
with:
119-
sarif_file: 'trivy-results.sarif'
120-
121104
- name: docker-compose sanity check
122105
if: (steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker) && matrix.build_preset == 'dev'
123106
shell: bash
@@ -134,7 +117,7 @@ jobs:
134117
runs-on: ubuntu-24.04
135118
steps:
136119
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
137-
uses: actions/checkout@v6
120+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
138121
with:
139122
persist-credentials: false
140123
- name: Check for file changes

0 commit comments

Comments
 (0)