mirror of
https://github.com/apache/superset.git
synced 2026-09-10 01:04:25 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a661d00d1d | ||
|
|
3f780c503e | ||
|
|
62fa7a371b | ||
|
|
e4440b614c | ||
|
|
a9424afb4e | ||
|
|
b75f629286 | ||
|
|
33a4373cb4 | ||
|
|
b658739aff | ||
|
|
d27500a08f | ||
|
|
83e3dcd932 | ||
|
|
bb60298b88 | ||
|
|
c10f74ba7c | ||
|
|
aaf76687f9 | ||
|
|
7e51e3a0ed | ||
|
|
0b35b9ae98 | ||
|
|
a211aa7b39 | ||
|
|
ec11e17bdb | ||
|
|
1068e253d4 | ||
|
|
38cc25b889 | ||
|
|
8706b68971 | ||
|
|
c917b3d441 | ||
|
|
c033806300 | ||
|
|
744c81fb27 | ||
|
|
3e69650828 | ||
|
|
11cabd7f02 | ||
|
|
e1ef4f06cc | ||
|
|
74a364dc13 | ||
|
|
e4bb1bc825 | ||
|
|
05938977ab | ||
|
|
411f25859e | ||
|
|
8bd06c462c | ||
|
|
fd95e60abd |
@@ -19,6 +19,19 @@ on:
|
||||
required: false
|
||||
type: string
|
||||
|
||||
# Triggers on labeled/unlabeled/synchronize/closed -- far more events per PR than
|
||||
# typical CI's synchronize-only trigger. Without this, every event queues its own
|
||||
# run and nothing ever supersedes a stale one, so runs pile up indefinitely on
|
||||
# active PRs (observed: 6 simultaneously queued runs for a single PR) and end up
|
||||
# starved competing for the same runner pool as everything else. cancel-in-progress
|
||||
# is correct here, not just a queue-relief hack: this job's whole purpose is
|
||||
# reconciling to the *current* desired state, so a run still working toward an
|
||||
# already-superseded state is wasted work regardless of whether it's queued or
|
||||
# mid-sync.
|
||||
concurrency:
|
||||
group: showtime-${{ github.event.pull_request.number || github.event.inputs.pr_number }}
|
||||
cancel-in-progress: true
|
||||
|
||||
# Common environment variables for all jobs (non-sensitive only)
|
||||
env:
|
||||
AWS_REGION: us-west-2
|
||||
|
||||
@@ -304,7 +304,7 @@ pre-commit run eslint # Frontend linting
|
||||
## Platform-Specific Instructions
|
||||
|
||||
- **[CLAUDE.md](CLAUDE.md)** - For Claude/Anthropic tools
|
||||
- **[.github/copilot-instructions.md](.github/copilot-instructions.md)** - For GitHub Copilot
|
||||
- **[.github/copilot-instructions.md](.github/copilot-instructions.md)** - For GitHub Copilot
|
||||
- **[GEMINI.md](GEMINI.md)** - For Google Gemini tools
|
||||
- **[GPT.md](GPT.md)** - For OpenAI/ChatGPT tools
|
||||
- **[.cursor/rules/dev-standard.mdc](.cursor/rules/dev-standard.mdc)** - For Cursor editor
|
||||
|
||||
@@ -83,6 +83,10 @@ const disableDevModeInRules = rules =>
|
||||
};
|
||||
});
|
||||
|
||||
function getAbsolutePath(value) {
|
||||
return path.dirname(require.resolve(path.join(value, 'package.json')));
|
||||
}
|
||||
|
||||
export default {
|
||||
stories: [
|
||||
'../src/**/*.stories.tsx',
|
||||
@@ -129,7 +133,3 @@ export default {
|
||||
options: {},
|
||||
}
|
||||
};
|
||||
|
||||
function getAbsolutePath(value) {
|
||||
return path.dirname(require.resolve(path.join(value, 'package.json')));
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"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.
|
||||
under the License
|
||||
-->
|
||||
|
||||
# Change Log
|
||||
|
||||
Generated
+81
-81
@@ -255,7 +255,7 @@
|
||||
"minimizer-webpack-plugin": "^5.8.0",
|
||||
"open-cli": "^9.0.0",
|
||||
"oxfmt": "^0.66.0",
|
||||
"oxlint": "^1.80.0",
|
||||
"oxlint": "^1.81.0",
|
||||
"po2json": "^0.4.5",
|
||||
"postcss-styled-syntax": "^0.7.2",
|
||||
"process": "^0.11.10",
|
||||
@@ -10276,9 +10276,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-android-arm-eabi": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.80.0.tgz",
|
||||
"integrity": "sha512-RM3Plj+biQpxa5d1GOOX6ciDlcUROmm4OZ/pLTpitkQt2mJv4jhtY4cbgaetOm5UKWZe05/TGQ6o1Vl8EOHkrA==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.81.0.tgz",
|
||||
"integrity": "sha512-IcCRsXiedJoJopY6mpZUBEeVFsUrutmrG7dZ87zMuKJlhg70Ora9bBl1WcCxZQtyI10YpnVdEso5oCg7YcfSHw==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -10293,9 +10293,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-android-arm64": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.80.0.tgz",
|
||||
"integrity": "sha512-YlO5JEf0Yr2bUUlu8O8daVcUxtcGGbcSmyV7E7nSbJbfAdxTE0PFPwgnIlw7wXJaTYjb+qs5hI5q3jxUkI7cAw==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.81.0.tgz",
|
||||
"integrity": "sha512-GRrIPyTGVhx3L3h+0T5xT2A0jFAcdPv4+IfuXpGDLIdl6XeYhgg/zw72A5ILZoUgRqZuM8F1y+V/gfDriXSxzQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -10310,9 +10310,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-darwin-arm64": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.80.0.tgz",
|
||||
"integrity": "sha512-BULDOyO3AhsmdWfQeIUCykDt3dd7XZBGLhp1eIh56skRv01O+cNjNPwXMIbeW1x4+pxcln5if72wcRgViVo7PA==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.81.0.tgz",
|
||||
"integrity": "sha512-qNQ9tXRgLuKbqSV1S2h9h4KPHjbovO7RRR2/enUOtHzTkFZ7B9X5zqqHJua8dRyc7dBy7Aoyq5pqTSLFVcAzGQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -10327,9 +10327,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-darwin-x64": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.80.0.tgz",
|
||||
"integrity": "sha512-YJ4JzLw7N5TDSQFlA0hAQGHvnDZgyypm1yunObVWcWiF9KM7eGCJKYKLgTC2Fi/57OdnBhbj4OkzPGdFQJ6HyA==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.81.0.tgz",
|
||||
"integrity": "sha512-q0QTm32jWga2Gv4j7IaVZN0jYMi9UV73sWVgFtDA4iIfqwMCLLZ3ve+9KwfYtsaKZSgQhmPaogeZWqDZpcY1Pw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -10344,9 +10344,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-freebsd-x64": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.80.0.tgz",
|
||||
"integrity": "sha512-AYUIk5QnL0s8oWAYsREZwkRYy1SupJTXALo93J1TgzHywxQtdM99FecRMQ87MXEdPQ0j1TmEpeeq3fGNkpvMqg==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.81.0.tgz",
|
||||
"integrity": "sha512-/+8wVWDXEC7wHVAhOc59Fw/SkMc1arLkFD8iQCaSsmzenK1X4doFqquL9H1wrtGUzaiycVqkf/sSpcILK6W1UA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -10361,9 +10361,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-linux-arm-gnueabihf": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.80.0.tgz",
|
||||
"integrity": "sha512-9hBZVANupQ89W9dXyE0n8doCyaW5pDyGn3y6XlIMPZ+rIKuyqkr3SNUXmVJIhuvUq0NBU3RBiSXXE69l4XI6KA==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.81.0.tgz",
|
||||
"integrity": "sha512-4xt422FEgioRq9hAL4Tq7fujGUWnc8z1BJ+Oi8RN8vB8axaP+sdK6a2xdlcQCCYnJg9QMuMFS0AucuIFx/EacA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -10378,9 +10378,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-linux-arm-musleabihf": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.80.0.tgz",
|
||||
"integrity": "sha512-SvS2uKqzY+pbfuvAHzH4338R6Zwo805GAwrIMVvK1KxoOWCIjZUdfzTCvilD7z6JK91v011+zYMryabhDo2AsQ==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.81.0.tgz",
|
||||
"integrity": "sha512-u3vna8KdGplH4DRCW9K54D68fcMo7IxVrkCJWwXnIhwtBdnDnYrmzOUA/XjmBlPpcLsgw9Z5BNdY4za9+Dj+MQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -10395,9 +10395,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-linux-arm64-gnu": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.80.0.tgz",
|
||||
"integrity": "sha512-tCLadyqRVL3pQTRPNg7cjXKvcvS4fbyXeQHhKk5BTJ1oftQln5/yIIWbu/Xom/DX41zv2P9QGt6+D/TtQVtY3A==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.81.0.tgz",
|
||||
"integrity": "sha512-3j9k+gsYsE7nv71GWotXsqsa2l9/aJenD7dVHNt/CBvsb0SgRjSMnHFeP59IXUAl1wvVFhqGl2wJNMwWU3UBlA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -10415,9 +10415,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-linux-arm64-musl": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.80.0.tgz",
|
||||
"integrity": "sha512-XfpCNRlOPcLlJl4Bn/FUhjqlR6BVavEykERBf/MV7YA9VZDa5g5znVqYhyviMafcxS9Pe/i/kPvHNO0U6svEHQ==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.81.0.tgz",
|
||||
"integrity": "sha512-k5iAp3dNxW0/uDCBY+WSm8jKB2szu7SkEQZdgRRpDXvuDd69vvDcqhB3A/pWCfCwXyenjNjFn9Td1fVoyAc+Yg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -10435,9 +10435,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-linux-ppc64-gnu": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.80.0.tgz",
|
||||
"integrity": "sha512-3I4yMwcFG9NeO8ioY6JBBuKsIm5GL/x7MATt1S4tVWaxPu5HcJ+XnLUbcVBTxG8q2Wu56HSj+NmXQiVYb1lp6A==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.81.0.tgz",
|
||||
"integrity": "sha512-TFqLja3uYmVSte6nof9GWrex9Z8WgdZrNiLC6Te5rXGDqXB2y4j/26iFhwosXiAFqDhE9JJVuuCkDKLwptTn1g==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
@@ -10455,9 +10455,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-linux-riscv64-gnu": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.80.0.tgz",
|
||||
"integrity": "sha512-E1wAKymkpe1/E8helzBKdm81OBOF+ezxRyXRMEuik3ZpWDER5CPOKZwF66RsdwW98uwZv8UTFremUQtC1CzdJA==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.81.0.tgz",
|
||||
"integrity": "sha512-UEcySvGS0NOVo7h7n7CYyJL9+6gFAh7Zc/ToDXVScFvzHSTIxtzkMVU30rmQ6+nQ1LF+UdiRDdJajpDu+OylLg==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
@@ -10475,9 +10475,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-linux-riscv64-musl": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.80.0.tgz",
|
||||
"integrity": "sha512-+gLRGD4sIo3+VA++iham5UxD9tKSoJ/VOrROCEXIcknrYtQg6iIQgvjN0cpiRF7N6UYC7pJbvHJlDnMge5LRpQ==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.81.0.tgz",
|
||||
"integrity": "sha512-H+diDbhD00+wI1IRP8Kz88x/lat+DgtoBJzoTthS16xkTJGNaEkfb8gzmd1rzc/2uDQQMl7GNl+JFUacVeWxIA==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
@@ -10495,9 +10495,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-linux-s390x-gnu": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.80.0.tgz",
|
||||
"integrity": "sha512-aR0PrzHj9leW3NmzBAAP4EzdoBNoJcs9sjnIQPIwyRnBGYrRbXUIpEB5Q39AqK3PLY5JK5uEhDQDiUa1QSAstw==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.81.0.tgz",
|
||||
"integrity": "sha512-8znJ/5TekjOKg1j1Acho4PJMdiAHLtlcXuWEiipOhAMV6rQcXdmDdXCbheyDczN6TjBwiNfjcP81k4AthrKRzw==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
@@ -10515,9 +10515,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-linux-x64-gnu": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.80.0.tgz",
|
||||
"integrity": "sha512-vSVh5cSo3Xxs6ghBCcFJlpbkbENzDog1qXtoXLa/HC3aCrR4XO76GZbXmQoCPHnu99nQpdCeC3H9tdNICfDh7A==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.81.0.tgz",
|
||||
"integrity": "sha512-Q2Wj70yFsvn5QjlmifFzbj4H+kJy53bwqc41o1fzoM7MpLV1NIbhg/LpWXRfC6KOkSAdUx1Wd8VJsdPmhp/HRA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -10535,9 +10535,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-linux-x64-musl": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.80.0.tgz",
|
||||
"integrity": "sha512-FfzBXpNQ8u7/ZI/p8bl73MeZ508Ax3hxWp3SiJpEFiC+BB9XcXy5FAZHTLKDPSzrUpxQZSZJAVdDmuJp/+HDBQ==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.81.0.tgz",
|
||||
"integrity": "sha512-cPInHp/ddEe5qkyK2IiyQ8Q3Mp2oLLEhhsGgTK2oZx4L6+llGam1H1yBvJZ7qHfOXj8N3hxBS8sj4tO+gtFlIg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -10555,9 +10555,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-openharmony-arm64": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.80.0.tgz",
|
||||
"integrity": "sha512-zMzbkumtmprCgRwoYNzcB3iC39fXdJIMLMU33KdCjEGLlJGOEt1+LwQ4LF8ndLzAEKVz4BR0y3V6Xrkk3Nm3yA==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.81.0.tgz",
|
||||
"integrity": "sha512-0CQxSX4ajqm07AHBf5U33qQzXKdd7wtq/oTL/7vpY6RNNuxrRi8W4bqUV1Jyu/vj+9KmxQyDhxfeVX1nQL6kfg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -10572,9 +10572,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-win32-arm64-msvc": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.80.0.tgz",
|
||||
"integrity": "sha512-ib6iRcrXsk4t1fm3iKcwksyWh1ZkZXC/2mEzakl0ai2+6HZunf1WWMZ/xP9EJAvw9g9K4UVTC3NF/+G2qLrbTQ==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.81.0.tgz",
|
||||
"integrity": "sha512-l0hbeISm9673hVrrQU8j/p2M7YH9Ouoj7p7E/QM55NTrKVLP+P3PF8hLu+OY+x0VtGRW+ggiQKZqmdYps9H+TA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -10589,9 +10589,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-win32-ia32-msvc": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.80.0.tgz",
|
||||
"integrity": "sha512-xhRWBMpLxZvgKAH6+DJZmpP+W8Y8UdQOSU1JfxSWNXsaBaRGW77j+1hCuNHlzj7OH4SPN8fYd1q0o2qrDtoVyw==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.81.0.tgz",
|
||||
"integrity": "sha512-ksqPP5jbFXcYreEQ7zdJh06rJQBymCTyGRCdaXjfcf2aG4f8KxUWY5wcgYHmaTK+FJ4bPG5sUAdOX+6trnH1JA==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@@ -10606,9 +10606,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxlint/binding-win32-x64-msvc": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.80.0.tgz",
|
||||
"integrity": "sha512-yAnO7lwBYQnz2pcfBPIGQQZWIX5zd5R/1aAKIF3oE+TVj7IhoHcROjOkz3sRDngzqhfPKfFaXqug5j5rE5dn6Q==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.81.0.tgz",
|
||||
"integrity": "sha512-IZuUCwGw9emG5JtCp+fYGB+Z4OWEoeEcM8R5BA1pYw63/ieYFVdcU2ylxTpHbVHSenZnsYE+ZZ20uHAJszQ4cA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -35963,9 +35963,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/oxlint": {
|
||||
"version": "1.80.0",
|
||||
"resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.80.0.tgz",
|
||||
"integrity": "sha512-5nTiSps4qdbCWLbxzuO00alHkEO2exR9YMN/ig6QXWrLsYSG0KaObOAM+l6oU2LcKPWoSAGYbkZIGEu1ViiWKA==",
|
||||
"version": "1.81.0",
|
||||
"resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.81.0.tgz",
|
||||
"integrity": "sha512-HyrJYqeoOCL0iqaLEzGewGT48ZX99P3hxYh8udAF9RGGIghSamkXE4ClUyBpEDNqasamThgmlPbuMOe7SAZmHg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
@@ -35975,28 +35975,28 @@
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/Boshen"
|
||||
"url": "https://github.com/sponsors/oxc-project"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@oxlint/binding-android-arm-eabi": "1.80.0",
|
||||
"@oxlint/binding-android-arm64": "1.80.0",
|
||||
"@oxlint/binding-darwin-arm64": "1.80.0",
|
||||
"@oxlint/binding-darwin-x64": "1.80.0",
|
||||
"@oxlint/binding-freebsd-x64": "1.80.0",
|
||||
"@oxlint/binding-linux-arm-gnueabihf": "1.80.0",
|
||||
"@oxlint/binding-linux-arm-musleabihf": "1.80.0",
|
||||
"@oxlint/binding-linux-arm64-gnu": "1.80.0",
|
||||
"@oxlint/binding-linux-arm64-musl": "1.80.0",
|
||||
"@oxlint/binding-linux-ppc64-gnu": "1.80.0",
|
||||
"@oxlint/binding-linux-riscv64-gnu": "1.80.0",
|
||||
"@oxlint/binding-linux-riscv64-musl": "1.80.0",
|
||||
"@oxlint/binding-linux-s390x-gnu": "1.80.0",
|
||||
"@oxlint/binding-linux-x64-gnu": "1.80.0",
|
||||
"@oxlint/binding-linux-x64-musl": "1.80.0",
|
||||
"@oxlint/binding-openharmony-arm64": "1.80.0",
|
||||
"@oxlint/binding-win32-arm64-msvc": "1.80.0",
|
||||
"@oxlint/binding-win32-ia32-msvc": "1.80.0",
|
||||
"@oxlint/binding-win32-x64-msvc": "1.80.0"
|
||||
"@oxlint/binding-android-arm-eabi": "1.81.0",
|
||||
"@oxlint/binding-android-arm64": "1.81.0",
|
||||
"@oxlint/binding-darwin-arm64": "1.81.0",
|
||||
"@oxlint/binding-darwin-x64": "1.81.0",
|
||||
"@oxlint/binding-freebsd-x64": "1.81.0",
|
||||
"@oxlint/binding-linux-arm-gnueabihf": "1.81.0",
|
||||
"@oxlint/binding-linux-arm-musleabihf": "1.81.0",
|
||||
"@oxlint/binding-linux-arm64-gnu": "1.81.0",
|
||||
"@oxlint/binding-linux-arm64-musl": "1.81.0",
|
||||
"@oxlint/binding-linux-ppc64-gnu": "1.81.0",
|
||||
"@oxlint/binding-linux-riscv64-gnu": "1.81.0",
|
||||
"@oxlint/binding-linux-riscv64-musl": "1.81.0",
|
||||
"@oxlint/binding-linux-s390x-gnu": "1.81.0",
|
||||
"@oxlint/binding-linux-x64-gnu": "1.81.0",
|
||||
"@oxlint/binding-linux-x64-musl": "1.81.0",
|
||||
"@oxlint/binding-openharmony-arm64": "1.81.0",
|
||||
"@oxlint/binding-win32-arm64-msvc": "1.81.0",
|
||||
"@oxlint/binding-win32-ia32-msvc": "1.81.0",
|
||||
"@oxlint/binding-win32-x64-msvc": "1.81.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"oxlint-tsgolint": ">=7.0.2001",
|
||||
|
||||
@@ -332,7 +332,7 @@
|
||||
"minimizer-webpack-plugin": "^5.8.0",
|
||||
"open-cli": "^9.0.0",
|
||||
"oxfmt": "^0.66.0",
|
||||
"oxlint": "^1.80.0",
|
||||
"oxlint": "^1.81.0",
|
||||
"po2json": "^0.4.5",
|
||||
"postcss-styled-syntax": "^0.7.2",
|
||||
"process": "^0.11.10",
|
||||
|
||||
Generated
-14
@@ -23,7 +23,6 @@
|
||||
"@types/node": "^26.4.1",
|
||||
"@types/ws": "^8.18.1",
|
||||
"esbuild": "^0.28.2",
|
||||
"globals": "^17.11.0",
|
||||
"oxfmt": "^0.66.0",
|
||||
"oxlint": "^1.81.0",
|
||||
"oxlint-tsgolint": "^7.0.2001",
|
||||
@@ -2406,19 +2405,6 @@
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/globals": {
|
||||
"version": "17.11.0",
|
||||
"resolved": "https://registry.npmjs.org/globals/-/globals-17.11.0.tgz",
|
||||
"integrity": "sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/hot-shots": {
|
||||
"version": "17.1.0",
|
||||
"resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-17.1.0.tgz",
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
"@types/node": "^26.4.1",
|
||||
"@types/ws": "^8.18.1",
|
||||
"esbuild": "^0.28.2",
|
||||
"globals": "^17.11.0",
|
||||
"oxfmt": "^0.66.0",
|
||||
"oxlint": "^1.81.0",
|
||||
"oxlint-tsgolint": "^7.0.2001",
|
||||
|
||||
@@ -734,6 +734,8 @@ class ChartDataRestApi(ChartRestApi):
|
||||
return ChartDataQueryContextSchema().load(form_data)
|
||||
except KeyError as ex:
|
||||
raise ValidationError("Request is incorrect") from ex
|
||||
except ValueError as ex:
|
||||
raise ValidationError(str(ex)) from ex
|
||||
|
||||
def _should_use_streaming(
|
||||
self, result: dict[Any, Any], form_data: dict[str, Any] | None = None
|
||||
|
||||
@@ -261,7 +261,7 @@ def masked_encrypted_extra_validator(value: str) -> None:
|
||||
encrypted_extra_validator(value)
|
||||
|
||||
|
||||
def extra_validator(value: str) -> str:
|
||||
def extra_validator(value: str) -> str: # noqa: C901
|
||||
"""
|
||||
Validate that extra is a valid JSON string, and that metadata_params
|
||||
keys are on the call signature for SQLAlchemy Metadata
|
||||
@@ -274,6 +274,11 @@ def extra_validator(value: str) -> str:
|
||||
[_("Field cannot be decoded by JSON. %(msg)s", msg=str(ex))]
|
||||
) from ex
|
||||
|
||||
if not isinstance(extra_, dict):
|
||||
raise ValidationError(
|
||||
[_("Extra field must be a mapping from string keys to values.")]
|
||||
)
|
||||
|
||||
metadata_signature = inspect.signature(MetaData)
|
||||
for key in extra_.get("metadata_params", {}):
|
||||
if key not in metadata_signature.parameters:
|
||||
|
||||
@@ -383,6 +383,15 @@ class TestPostChartDataApi(BaseTestChartDataApi):
|
||||
rv = self.post_assert_metric(CHART_DATA_URI, self.query_context_payload, "data")
|
||||
assert rv.status_code == 400
|
||||
|
||||
def test_with_reversed_time_range__400(self):
|
||||
# A reversed custom date range (since > until) makes get_since_until
|
||||
# raise a ValueError; the API must convert it to a 400, not a 500.
|
||||
self.query_context_payload["queries"][0]["time_range"] = (
|
||||
"2024-01-01T00:00:00 : 2020-01-01T00:00:00"
|
||||
)
|
||||
rv = self.post_assert_metric(CHART_DATA_URI, self.query_context_payload, "data")
|
||||
assert rv.status_code == 400
|
||||
|
||||
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
||||
def test_with_invalid_payload__400(self):
|
||||
invalid_query_context = {"form_data": "NOT VALID JSON"}
|
||||
|
||||
@@ -1337,3 +1337,23 @@ def test_get_data_route_passes_loaded_chart_to_data_response(
|
||||
get_data(api, 1)
|
||||
|
||||
assert mock_response.call_args.kwargs["slice_"] is chart
|
||||
|
||||
|
||||
def test_create_query_context_from_form_converts_value_error_to_400() -> None:
|
||||
"""
|
||||
A ValueError raised while loading the query context (e.g. a reversed date
|
||||
range where since > until) is re-raised as a marshmallow ValidationError so
|
||||
the API returns a 400 instead of an unhandled 500.
|
||||
"""
|
||||
from marshmallow import ValidationError
|
||||
|
||||
api = ChartDataRestApi()
|
||||
message = "From date cannot be larger than to date"
|
||||
with patch(
|
||||
"superset.charts.data.api.ChartDataQueryContextSchema.load",
|
||||
side_effect=ValueError(message),
|
||||
):
|
||||
with pytest.raises(ValidationError) as excinfo:
|
||||
api._create_query_context_from_form({})
|
||||
|
||||
assert message in str(excinfo.value)
|
||||
|
||||
@@ -595,6 +595,25 @@ def test_extra_validator_interpolates_json_decode_error() -> None:
|
||||
assert "%(" not in message
|
||||
|
||||
|
||||
@pytest.mark.parametrize("value", [123, None, [1, 2], True, "abc"])
|
||||
def test_extra_validator_rejects_non_dict_top_level_value(value: Any) -> None:
|
||||
"""
|
||||
Test that extra_validator rejects a top-level extra value that is valid
|
||||
JSON but not a mapping (int, null, list, bool, string), instead of
|
||||
letting AttributeError propagate from extra_.get("metadata_params").
|
||||
"""
|
||||
from superset.databases.schemas import DatabasePostSchema
|
||||
|
||||
schema = DatabasePostSchema()
|
||||
payload = {
|
||||
"database_name": "test_db",
|
||||
"extra": json.dumps(value),
|
||||
}
|
||||
with pytest.raises(ValidationError) as exc_info:
|
||||
schema.load(payload)
|
||||
assert "must be a mapping" in str(exc_info.value)
|
||||
|
||||
|
||||
def test_cache_timeout_rejects_values_below_minus_one() -> None:
|
||||
"""
|
||||
Test that cache_timeout rejects values less than -1.
|
||||
|
||||
Reference in New Issue
Block a user