From 67f6eaa0369ee57117b9b191cb4e5319fd855659 Mon Sep 17 00:00:00 2001 From: Beto Dealmeida Date: Fri, 23 Feb 2024 11:52:19 -0500 Subject: [PATCH] feat: support GitHub issues --- CHANGELOG.rst | 2 + src/shillelagh/adapters/api/github.py | 30 +- tests/adapters/api/github_test.py | 55 +- tests/fakes/__init__.py | 6 +- tests/fakes/github_issues_response.json | 2521 +++++++++++++++++ ...sponse.json => github_pulls_response.json} | 0 6 files changed, 2604 insertions(+), 10 deletions(-) create mode 100644 tests/fakes/github_issues_response.json rename tests/fakes/{github_response.json => github_pulls_response.json} (100%) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 7667d14c..039fc5ed 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,8 @@ Changelog Next ==== +- Add support for GitHub issues (#433) + Version 1.2.16 - 2024-02-22 =========================== diff --git a/src/shillelagh/adapters/api/github.py b/src/shillelagh/adapters/api/github.py index 662ad8b6..92221c91 100644 --- a/src/shillelagh/adapters/api/github.py +++ b/src/shillelagh/adapters/api/github.py @@ -63,6 +63,22 @@ class Column: Column("closed_at", "closed_at", StringDateTime()), Column("merged_at", "merged_at", StringDateTime()), ], + "issues": [ + Column("url", "html_url", String()), + Column("id", "id", Integer()), + Column("number", "number", Integer(filters=[Equal])), + Column("state", "state", String(filters=[Equal]), Equal("all")), + Column("title", "title", String()), + Column("userid", "user.id", Integer()), + Column("username", "user.login", String()), + Column("draft", "draft", Boolean()), + Column("locked", "locked", Boolean()), + Column("comments", "comments", Integer()), + Column("created_at", "created_at", StringDateTime()), + Column("updated_at", "updated_at", StringDateTime()), + Column("closed_at", "closed_at", StringDateTime()), + Column("body", "body", String()), + ], }, } @@ -177,7 +193,7 @@ def _get_single_resource( payload = response.json() row = { - column.name: jsonpath.findall(column.json_path, payload)[0] + column.name: get_path_or_none(payload, column.json_path) for column in TABLES[self.base][self.resource] } row["rowid"] = 0 @@ -231,7 +247,7 @@ def _get_multiple_resources( break row = { - column.name: jsonpath.findall(column.json_path, resource)[0] + column.name: get_path_or_none(resource, column.json_path) for column in TABLES[self.base][self.resource] } row["rowid"] = rowid @@ -240,3 +256,13 @@ def _get_multiple_resources( rowid += 1 page += 1 + + +def get_path_or_none(resource: Dict[str, Any], path: str) -> Optional[Any]: + """ + Return the value at ``path`` in ``resource`` or ``None`` if it doesn't exist. + """ + try: + return jsonpath.findall(path, resource)[0] + except IndexError: + return None diff --git a/tests/adapters/api/github_test.py b/tests/adapters/api/github_test.py index b7470c3c..c4cadb04 100644 --- a/tests/adapters/api/github_test.py +++ b/tests/adapters/api/github_test.py @@ -14,7 +14,11 @@ from shillelagh.exceptions import ProgrammingError from shillelagh.filters import Equal -from ...fakes import github_response, github_single_response +from ...fakes import ( + github_issues_response, + github_pulls_response, + github_single_response, +) def test_github(mocker: MockerFixture, requests_mock: Mocker) -> None: @@ -27,7 +31,7 @@ def test_github(mocker: MockerFixture, requests_mock: Mocker) -> None: ) page1_url = "https://api.github.com/repos/apache/superset/pulls?state=all&per_page=100&page=1" - requests_mock.get(page1_url, json=github_response) + requests_mock.get(page1_url, json=github_pulls_response) page2_url = "https://api.github.com/repos/apache/superset/pulls?state=all&per_page=100&page=2" requests_mock.get(page2_url, json=[]) @@ -206,11 +210,11 @@ def test_github_limit_offset(mocker: MockerFixture, requests_mock: Mocker) -> No page2_url = ( "https://api.github.com/repos/apache/superset/pulls?state=all&per_page=5&page=2" ) - requests_mock.get(page2_url, json=github_response[:5]) + requests_mock.get(page2_url, json=github_pulls_response[:5]) page3_url = ( "https://api.github.com/repos/apache/superset/pulls?state=all&per_page=5&page=3" ) - requests_mock.get(page3_url, json=github_response[5:]) + requests_mock.get(page3_url, json=github_pulls_response[5:]) connection = connect(":memory:") cursor = connection.cursor() @@ -466,11 +470,11 @@ def test_get_multiple_resources(mocker: MockerFixture, requests_mock: Mocker) -> page2_url = ( "https://api.github.com/repos/apache/superset/pulls?state=all&per_page=5&page=2" ) - requests_mock.get(page2_url, json=github_response[:5]) + requests_mock.get(page2_url, json=github_pulls_response[:5]) page3_url = ( "https://api.github.com/repos/apache/superset/pulls?state=all&per_page=5&page=3" ) - requests_mock.get(page3_url, json=github_response[5:]) + requests_mock.get(page3_url, json=github_pulls_response[5:]) adapter = GitHubAPI("repos", "apache", "superset", "pulls") rows = adapter._get_multiple_resources( # pylint: disable=protected-access @@ -560,3 +564,42 @@ def test_get_multiple_resources(mocker: MockerFixture, requests_mock: Mocker) -> "rowid": 4, }, ] + + +def test_github_missing_field(mocker: MockerFixture, requests_mock: Mocker) -> None: + """ + Test a request when the response is missing a field. + + For example, some issues don't have the ``draft`` field in the response. + """ + mocker.patch( + "shillelagh.adapters.api.github.requests_cache.CachedSession", + return_value=Session(), + ) + + page1_url = "https://api.github.com/repos/apache/superset/issues?state=all&per_page=100&page=1" + requests_mock.get(page1_url, json=github_issues_response) + page2_url = "https://api.github.com/repos/apache/superset/issues?state=all&per_page=100&page=2" + requests_mock.get(page2_url, json=[]) + + connection = connect(":memory:") + cursor = connection.cursor() + + sql = """ + SELECT draft FROM + "https://api.github.com/repos/apache/superset/issues" + LIMIT 10 + """ + data = list(cursor.execute(sql)) + assert data == [ + (False,), + (False,), + (None,), + (None,), + (False,), + (None,), + (False,), + (None,), + (False,), + (False,), + ] diff --git a/tests/fakes/__init__.py b/tests/fakes/__init__.py index c24e8129..d062b2b7 100644 --- a/tests/fakes/__init__.py +++ b/tests/fakes/__init__.py @@ -128,7 +128,9 @@ def delete_data(self, row_id: int) -> None: datasette_results = [tuple(row) for row in json.load(fp)] with open(os.path.join(dirname, "incidents.json"), encoding="utf-8") as fp: incidents = json.load(fp) -with open(os.path.join(dirname, "github_response.json"), encoding="utf-8") as fp: - github_response = json.load(fp) +with open(os.path.join(dirname, "github_pulls_response.json"), encoding="utf-8") as fp: + github_pulls_response = json.load(fp) +with open(os.path.join(dirname, "github_issues_response.json"), encoding="utf-8") as fp: + github_issues_response = json.load(fp) with open(os.path.join(dirname, "github_single_response.json"), encoding="utf-8") as fp: github_single_response = json.load(fp) diff --git a/tests/fakes/github_issues_response.json b/tests/fakes/github_issues_response.json new file mode 100644 index 00000000..aef385cc --- /dev/null +++ b/tests/fakes/github_issues_response.json @@ -0,0 +1,2521 @@ +[ + { + "url": "https://api.github.com/repos/apache/superset/issues/27232", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27232/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27232/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27232/events", + "html_url": "https://github.com/apache/superset/pull/27232", + "id": 2151207116, + "node_id": "PR_kwDOAlosUs5nwxwB", + "number": 27232, + "title": "chore: Removes Chromatic workflow and dependencies", + "user": { + "login": "michael-s-molina", + "id": 70410625, + "node_id": "MDQ6VXNlcjcwNDEwNjI1", + "avatar_url": "https://avatars.githubusercontent.com/u/70410625?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/michael-s-molina", + "html_url": "https://github.com/michael-s-molina", + "followers_url": "https://api.github.com/users/michael-s-molina/followers", + "following_url": "https://api.github.com/users/michael-s-molina/following{/other_user}", + "gists_url": "https://api.github.com/users/michael-s-molina/gists{/gist_id}", + "starred_url": "https://api.github.com/users/michael-s-molina/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/michael-s-molina/subscriptions", + "organizations_url": "https://api.github.com/users/michael-s-molina/orgs", + "repos_url": "https://api.github.com/users/michael-s-molina/repos", + "events_url": "https://api.github.com/users/michael-s-molina/events{/privacy}", + "received_events_url": "https://api.github.com/users/michael-s-molina/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329203144, + "node_id": "MDU6TGFiZWwxMzI5MjAzMTQ0", + "url": "https://api.github.com/repos/apache/superset/labels/size/M", + "name": "size/M", + "color": "705FA3", + "default": false, + "description": "" + }, + { + "id": 6496358600, + "node_id": "LA_kwDOAlosUs8AAAABgzaQyA", + "url": "https://api.github.com/repos/apache/superset/labels/dependencies:npm", + "name": "dependencies:npm", + "color": "ededed", + "default": false, + "description": null + }, + { + "id": 6501451649, + "node_id": "LA_kwDOAlosUs8AAAABg4RHgQ", + "url": "https://api.github.com/repos/apache/superset/labels/github_actions", + "name": "github_actions", + "color": "000000", + "default": false, + "description": "Pull requests that update GitHub Actions code" + }, + { + "id": 6502628977, + "node_id": "LA_kwDOAlosUs8AAAABg5Y-cQ", + "url": "https://api.github.com/repos/apache/superset/labels/packages", + "name": "packages", + "color": "E795E1", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 3, + "created_at": "2024-02-23T14:28:27Z", + "updated_at": "2024-02-23T16:44:18Z", + "closed_at": null, + "author_association": "MEMBER", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27232", + "html_url": "https://github.com/apache/superset/pull/27232", + "diff_url": "https://github.com/apache/superset/pull/27232.diff", + "patch_url": "https://github.com/apache/superset/pull/27232.patch", + "merged_at": null + }, + "body": "### SUMMARY\r\nRemoves the Chromatic GitHub workflow and NPM dependencies that were introduced in https://github.com/apache/superset/pull/21095. This workflow is not maintained anymore and it also overlaps with Applitools which is used for visual testing.\r\n\r\n### TESTING INSTRUCTIONS\r\nCheck that the Chromatic workflow is not running.\r\n\r\n### ADDITIONAL INFORMATION\r\n- [ ] Has associated issue:\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27232/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27232/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27229", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27229/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27229/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27229/events", + "html_url": "https://github.com/apache/superset/pull/27229", + "id": 2151044246, + "node_id": "PR_kwDOAlosUs5nwN0Z", + "number": 27229, + "title": "#23375 set columns numeric datatypes when exporting to excel", + "user": { + "login": "squalou", + "id": 4623644, + "node_id": "MDQ6VXNlcjQ2MjM2NDQ=", + "avatar_url": "https://avatars.githubusercontent.com/u/4623644?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/squalou", + "html_url": "https://github.com/squalou", + "followers_url": "https://api.github.com/users/squalou/followers", + "following_url": "https://api.github.com/users/squalou/following{/other_user}", + "gists_url": "https://api.github.com/users/squalou/gists{/gist_id}", + "starred_url": "https://api.github.com/users/squalou/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/squalou/subscriptions", + "organizations_url": "https://api.github.com/users/squalou/orgs", + "repos_url": "https://api.github.com/users/squalou/repos", + "events_url": "https://api.github.com/users/squalou/events{/privacy}", + "received_events_url": "https://api.github.com/users/squalou/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1330950144, + "node_id": "MDU6TGFiZWwxMzMwOTUwMTQ0", + "url": "https://api.github.com/repos/apache/superset/labels/size/S", + "name": "size/S", + "color": "C8B6FF", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 0, + "created_at": "2024-02-23T13:01:27Z", + "updated_at": "2024-02-23T13:01:31Z", + "closed_at": null, + "author_association": "FIRST_TIME_CONTRIBUTOR", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27229", + "html_url": "https://github.com/apache/superset/pull/27229", + "diff_url": "https://github.com/apache/superset/pull/27229.diff", + "patch_url": "https://github.com/apache/superset/pull/27229.patch", + "merged_at": null + }, + "body": "### SUMMARY\r\n\r\nWhen exporting to Excel, currently datatypes are not specified, leading to decimal numbers being stored as strings, which may lead to issues when opening the file.\r\n\r\nDepending on the locale, the issue may not even be visible, Excel managing to convert things. (that's the case in us/en locale). When using another locale (say fr), then numbers, output with '.' as decimal separator and stored as strings won't be usable as numbers in Excel.\r\n\r\nThe idea here is to use the same \"datatype guessing\" method already existing, and use it to convert dataframe columns types when required before exporting.\r\n\r\n### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF\r\n\r\nnot applicable\r\n\r\n### TESTING INSTRUCTIONS\r\n\r\n\r\n- Create a Table dashboard with numercical and decimal numbers in it. Ideally add some strings and dates.\r\n- Export to Excel\r\n- you can then unzip the .xlsx file, and open sheet1.xml in a text editor to check the export\r\n- Numbers appear directly in xml cell reference\r\n- Strings are not visible directly, instead a `` markup is used containing an id to the string\r\n\r\nEditing the sheet1.xml file is the safest way to check the issue, due to magical operations softwares like Excel, LibreOffice Calc or others perform when opening files that may hide the issue.\r\n\r\n\r\n### ADDITIONAL INFORMATION\r\n\r\n\r\n\r\n- [x] Has associated issue: Fixes #23375\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27229/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27229/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27228", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27228/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27228/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27228/events", + "html_url": "https://github.com/apache/superset/issues/27228", + "id": 2150822753, + "node_id": "I_kwDOAlosUs6AMvNh", + "number": 27228, + "title": "custom SQL aliases in raw records are not being used as column labels in chart", + "user": { + "login": "khaledrazemTHG", + "id": 113435313, + "node_id": "U_kgDOBsLisQ", + "avatar_url": "https://avatars.githubusercontent.com/u/113435313?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/khaledrazemTHG", + "html_url": "https://github.com/khaledrazemTHG", + "followers_url": "https://api.github.com/users/khaledrazemTHG/followers", + "following_url": "https://api.github.com/users/khaledrazemTHG/following{/other_user}", + "gists_url": "https://api.github.com/users/khaledrazemTHG/gists{/gist_id}", + "starred_url": "https://api.github.com/users/khaledrazemTHG/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/khaledrazemTHG/subscriptions", + "organizations_url": "https://api.github.com/users/khaledrazemTHG/orgs", + "repos_url": "https://api.github.com/users/khaledrazemTHG/repos", + "events_url": "https://api.github.com/users/khaledrazemTHG/events{/privacy}", + "received_events_url": "https://api.github.com/users/khaledrazemTHG/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 0, + "created_at": "2024-02-23T10:42:19Z", + "updated_at": "2024-02-23T10:42:19Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "### Bug description\n\nI am using raw records in this chart and sql so I can rename the field, but the table is showing the original field name not the one i assigned as you can see from the fields on the left\n\n### How to reproduce the bug\n\n1- Create new table\r\n2- Click on raw records\r\n3- add a column using custom sql\r\n4- rename to a different title\r\n5- generate table\n\n### Screenshots/recordings\n\n\"Screenshot\r\n\n\n### Superset version\n\nmaster / latest-dev\n\n### Python version\n\n3.9\n\n### Node version\n\n16\n\n### Browser\n\nChrome\n\n### Additional context\n\n_No response_\n\n### Checklist\n\n- [X] I have searched Superset docs and Slack and didn't find a solution to my problem.\n- [X] I have searched the GitHub issue tracker and didn't find a similar bug report.\n- [X] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the \"additional context\" section.", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27228/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27228/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27227", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27227/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27227/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27227/events", + "html_url": "https://github.com/apache/superset/issues/27227", + "id": 2150590571, + "node_id": "I_kwDOAlosUs6AL2hr", + "number": 27227, + "title": "superset 2.1.0 frontend start to use the \"npm run dev-server\", will appear many warnings ", + "user": { + "login": "gufenqing", + "id": 77658522, + "node_id": "MDQ6VXNlcjc3NjU4NTIy", + "avatar_url": "https://avatars.githubusercontent.com/u/77658522?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/gufenqing", + "html_url": "https://github.com/gufenqing", + "followers_url": "https://api.github.com/users/gufenqing/followers", + "following_url": "https://api.github.com/users/gufenqing/following{/other_user}", + "gists_url": "https://api.github.com/users/gufenqing/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gufenqing/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gufenqing/subscriptions", + "organizations_url": "https://api.github.com/users/gufenqing/orgs", + "repos_url": "https://api.github.com/users/gufenqing/repos", + "events_url": "https://api.github.com/users/gufenqing/events{/privacy}", + "received_events_url": "https://api.github.com/users/gufenqing/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 0, + "created_at": "2024-02-23T08:14:59Z", + "updated_at": "2024-02-23T08:14:59Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "npm run dev-server will appear many warnings \r\n![npmrundevservererror](https://github.com/apache/superset/assets/77658522/2a707aa1-3411-4f5a-bcad-c04c29eba57f)\r\n\r\n![image](https://github.com/apache/superset/assets/77658522/0510fb1e-e00b-4dc7-9af4-f42add32ec01)\r\n\r\n\r\nI hope that will get the assistance to how to solves the warning and correctly see the superset page\r\n\r\n\r\n\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27227/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27227/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27226", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27226/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27226/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27226/events", + "html_url": "https://github.com/apache/superset/pull/27226", + "id": 2150567026, + "node_id": "PR_kwDOAlosUs5nuk3U", + "number": 27226, + "title": "fix(helm): update init containers to include extra env vars (cont.)", + "user": { + "login": "oscep", + "id": 117340990, + "node_id": "U_kgDOBv57Pg", + "avatar_url": "https://avatars.githubusercontent.com/u/117340990?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/oscep", + "html_url": "https://github.com/oscep", + "followers_url": "https://api.github.com/users/oscep/followers", + "following_url": "https://api.github.com/users/oscep/following{/other_user}", + "gists_url": "https://api.github.com/users/oscep/gists{/gist_id}", + "starred_url": "https://api.github.com/users/oscep/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oscep/subscriptions", + "organizations_url": "https://api.github.com/users/oscep/orgs", + "repos_url": "https://api.github.com/users/oscep/repos", + "events_url": "https://api.github.com/users/oscep/events{/privacy}", + "received_events_url": "https://api.github.com/users/oscep/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329203144, + "node_id": "MDU6TGFiZWwxMzI5MjAzMTQ0", + "url": "https://api.github.com/repos/apache/superset/labels/size/M", + "name": "size/M", + "color": "705FA3", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 3, + "created_at": "2024-02-23T07:57:14Z", + "updated_at": "2024-02-23T10:26:55Z", + "closed_at": null, + "author_association": "FIRST_TIME_CONTRIBUTOR", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27226", + "html_url": "https://github.com/apache/superset/pull/27226", + "diff_url": "https://github.com/apache/superset/pull/27226.diff", + "patch_url": "https://github.com/apache/superset/pull/27226.patch", + "merged_at": null + }, + "body": "This PR is based on [Steven Luther's work](https://github.com/apache/superset/pull/25378) and is an attempt to push it across the finish line. I take no credit for those contributions. I'll leave the PR description as is:\r\n\r\n### SUMMARY\r\nThe init containers in the helm chart do not get the same environment variables as the other pods. This causes issues when the init containers attempt to ping the database, and the database variables are overridden in environment variables.\r\n\r\n### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF\r\n### TESTING INSTRUCTIONS\r\n* Add env vars to `values.yaml`, `extraEnvRaw`, or `extraEnv` example:\r\n\r\n```yaml\r\nextraEnvRaw:\r\n # Load DB password from other secret (e.g. for zalando operator)\r\n - name: DB_PASS\r\n valueFrom:\r\n secretKeyRef:\r\n name: superset.superset-postgres.credentials.postgresql.acid.zalan.do\r\n key: password\r\n```\r\n\r\n```yaml\r\nextraEnv:\r\n GUNICORN_TIMEOUT: 300\r\n```\r\n\r\n* Run `helm template superset .`\r\n* Verify changes, in this case `deployment.yaml`, shortened for readability.\r\n\r\nWith no values in `envFromRaw` or `extraEnv`:\r\n\r\n```yaml\r\n# Source: superset/templates/deployment.yaml\r\n[...]\r\n initContainers:\r\n - command:\r\n - /bin/sh\r\n - -c\r\n - dockerize -wait \"tcp://$DB_HOST:$DB_PORT\" -timeout 120s\r\n envFrom:\r\n - secretRef:\r\n name: 'superset-test-env'\r\n image: 'apache/superset:dockerize'\r\n imagePullPolicy: 'IfNotPresent'\r\n name: wait-for-postgres\r\n containers:\r\n[...]\r\n```\r\n\r\nWith no values in `envFromRaw`, but `GUNICORN_TIMEOUT` set in `extraEnv`:\r\n\r\n```yaml\r\n# Source: superset/templates/deployment.yaml\r\n[...]\r\n initContainers:\r\n - command:\r\n - /bin/sh\r\n - -c\r\n - dockerize -wait \"tcp://$DB_HOST:$DB_PORT\" -timeout 120s\r\n envFrom:\r\n - secretRef:\r\n name: 'superset-test-env'\r\n image: 'apache/superset:dockerize'\r\n imagePullPolicy: 'IfNotPresent'\r\n name: wait-for-postgres\r\n env:\r\n - name: \"GUNICORN_TIMEOUT\"\r\n value: \"300\"\r\n containers:\r\n[...]\r\n```\r\n\r\nWith `DB_PASS` set in `envFromRaw`, no values set in `extraEnv`:\r\n\r\n```yaml\r\n[...]\r\n initContainers:\r\n - command:\r\n - /bin/sh\r\n - -c\r\n - dockerize -wait \"tcp://$DB_HOST:$DB_PORT\" -timeout 120s\r\n envFrom:\r\n - secretRef:\r\n name: 'superset-test-env'\r\n image: 'apache/superset:dockerize'\r\n imagePullPolicy: 'IfNotPresent'\r\n name: wait-for-postgres\r\n env:\r\n - name: DB_PASS\r\n valueFrom:\r\n secretKeyRef:\r\n key: password\r\n name: superset.superset-postgres.credentials.postgresql.acid.zalan.do\r\n containers:\r\n[...]\r\n```\r\n\r\nWith both `DB_PASS` and `GUNICORN_TIMEOUT` set:\r\n\r\n```yaml\r\n[...]\r\n initContainers:\r\n - command:\r\n - /bin/sh\r\n - -c\r\n - dockerize -wait \"tcp://$DB_HOST:$DB_PORT\" -timeout 120s\r\n envFrom:\r\n - secretRef:\r\n name: 'superset-test-env'\r\n image: 'apache/superset:dockerize'\r\n imagePullPolicy: 'IfNotPresent'\r\n name: wait-for-postgres\r\n env:\r\n - name: \"GUNICORN_TIMEOUT\"\r\n value: \"300\"\r\n - name: DB_PASS\r\n valueFrom:\r\n secretKeyRef:\r\n key: password\r\n name: superset.superset-postgres.credentials.postgresql.acid.zalan.do\r\n\r\n containers:\r\n[...]\r\n```\r\n\r\n### ADDITIONAL INFORMATION\r\n* [x] Has associated issue: Fixes [Init containers should be getting same ENV var setups like the final containers #24805](https://github.com/apache/superset/issues/24805)\r\n* [ ] Required feature flags:\r\n* [ ] Changes UI\r\n* [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n \r\n * [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n * [ ] Confirm DB migration upgrade and downgrade tested\r\n * [ ] Runtime estimates and downtime expectations provided\r\n* [ ] Introduces new feature or API\r\n* [ ] Removes existing feature or API\r\n\r\n\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27226/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27226/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27224", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27224/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27224/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27224/events", + "html_url": "https://github.com/apache/superset/issues/27224", + "id": 2150500031, + "node_id": "I_kwDOAlosUs6ALga_", + "number": 27224, + "title": "Bulk delete charts pagination disappeared", + "user": { + "login": "Davidkramer1999", + "id": 74869455, + "node_id": "MDQ6VXNlcjc0ODY5NDU1", + "avatar_url": "https://avatars.githubusercontent.com/u/74869455?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Davidkramer1999", + "html_url": "https://github.com/Davidkramer1999", + "followers_url": "https://api.github.com/users/Davidkramer1999/followers", + "following_url": "https://api.github.com/users/Davidkramer1999/following{/other_user}", + "gists_url": "https://api.github.com/users/Davidkramer1999/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Davidkramer1999/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Davidkramer1999/subscriptions", + "organizations_url": "https://api.github.com/users/Davidkramer1999/orgs", + "repos_url": "https://api.github.com/users/Davidkramer1999/repos", + "events_url": "https://api.github.com/users/Davidkramer1999/events{/privacy}", + "received_events_url": "https://api.github.com/users/Davidkramer1999/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 0, + "created_at": "2024-02-23T07:17:56Z", + "updated_at": "2024-02-23T07:17:56Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "### Bug description\n\nWhen selecting for example all charst in bulk mode the pagination disappeared seen in screenshow below.\r\n\n\n### How to reproduce the bug\n\n1. Go to Charts\r\n2. Select all charts\r\n3. Delete all \r\n4. Pagination will disappeared and \"No data will be shown\" \n\n### Screenshots/recordings\n\n1.Selecting bulk remove on chart \r\n![image](https://github.com/apache/superset/assets/74869455/2a56ef57-ebe3-4835-b57e-6b0e7df35623)\r\n\r\n2. No data but we can see from previous screenshot that there are still 2 pages of charts... \r\n![image](https://github.com/apache/superset/assets/74869455/d148aa99-271b-40a9-9704-979ae3f5f15f)\r\n\r\n3. Now we refresh the side at there are still 2 sites...\r\n![image](https://github.com/apache/superset/assets/74869455/c3c23321-529c-4d82-bede-40de08141105)\r\n\n\n### Superset version\n\n3.1.1\n\n### Python version\n\n3.9\n\n### Node version\n\n16\n\n### Browser\n\nChrome\n\n### Additional context\n\nSreenshots are from edge browser but the same thing happens on chrome as well.\n\n### Checklist\n\n- [ ] I have searched Superset docs and Slack and didn't find a solution to my problem.\n- [ ] I have searched the GitHub issue tracker and didn't find a similar bug report.\n- [ ] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the \"additional context\" section.", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27224/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27224/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27223", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27223/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27223/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27223/events", + "html_url": "https://github.com/apache/superset/pull/27223", + "id": 2150353105, + "node_id": "PR_kwDOAlosUs5nt1UB", + "number": 27223, + "title": "feat(REST API): Adding REST API for advanced/force delete of a user #27207", + "user": { + "login": "mknadh", + "id": 7744468, + "node_id": "MDQ6VXNlcjc3NDQ0Njg=", + "avatar_url": "https://avatars.githubusercontent.com/u/7744468?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/mknadh", + "html_url": "https://github.com/mknadh", + "followers_url": "https://api.github.com/users/mknadh/followers", + "following_url": "https://api.github.com/users/mknadh/following{/other_user}", + "gists_url": "https://api.github.com/users/mknadh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mknadh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mknadh/subscriptions", + "organizations_url": "https://api.github.com/users/mknadh/orgs", + "repos_url": "https://api.github.com/users/mknadh/repos", + "events_url": "https://api.github.com/users/mknadh/events{/privacy}", + "received_events_url": "https://api.github.com/users/mknadh/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329203144, + "node_id": "MDU6TGFiZWwxMzI5MjAzMTQ0", + "url": "https://api.github.com/repos/apache/superset/labels/size/M", + "name": "size/M", + "color": "705FA3", + "default": false, + "description": "" + }, + { + "id": 2859155980, + "node_id": "MDU6TGFiZWwyODU5MTU1OTgw", + "url": "https://api.github.com/repos/apache/superset/labels/api", + "name": "api", + "color": "91C99C", + "default": false, + "description": "Related to the REST API" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 0, + "created_at": "2024-02-23T04:36:32Z", + "updated_at": "2024-02-23T04:37:00Z", + "closed_at": null, + "author_association": "FIRST_TIME_CONTRIBUTOR", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27223", + "html_url": "https://github.com/apache/superset/pull/27223", + "diff_url": "https://github.com/apache/superset/pull/27223.diff", + "patch_url": "https://github.com/apache/superset/pull/27223.patch", + "merged_at": null + }, + "body": "feat(REST API): Adding REST API for advanced/force delete of a user #27207\r\n\r\n### SUMMARY\r\nThis feature addresses existing issue since longtime. \r\nhttps://github.com/apache/superset/issues/13345\r\n\r\n(cannot delete user \"Associated data exists, please delete them first\" #13345 \r\n\r\n### ADDITIONAL INFORMATION\r\n\r\n\r\n- [x ] Has associated issue:\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ x] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27223/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27223/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27222", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27222/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27222/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27222/events", + "html_url": "https://github.com/apache/superset/issues/27222", + "id": 2150348008, + "node_id": "I_kwDOAlosUs6AK7To", + "number": 27222, + "title": "report exception (email-chart-text)", + "user": { + "login": "liangliangGit", + "id": 35413857, + "node_id": "MDQ6VXNlcjM1NDEzODU3", + "avatar_url": "https://avatars.githubusercontent.com/u/35413857?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/liangliangGit", + "html_url": "https://github.com/liangliangGit", + "followers_url": "https://api.github.com/users/liangliangGit/followers", + "following_url": "https://api.github.com/users/liangliangGit/following{/other_user}", + "gists_url": "https://api.github.com/users/liangliangGit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/liangliangGit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/liangliangGit/subscriptions", + "organizations_url": "https://api.github.com/users/liangliangGit/orgs", + "repos_url": "https://api.github.com/users/liangliangGit/repos", + "events_url": "https://api.github.com/users/liangliangGit/events{/privacy}", + "received_events_url": "https://api.github.com/users/liangliangGit/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 0, + "created_at": "2024-02-23T04:29:15Z", + "updated_at": "2024-02-23T12:39:13Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "### Bug description\r\n\r\nI have set up a scheduled report to send emails, where the report specifies the text mode for charts. If the chart results contain no data, the email will not be sent. However, if the chart results do include data, the email will be sent as expected.\r\n\r\nIn cases where the chart returns no data, the email can still be successfully sent when both CSV and PNG model are selected for the chart.\r\n\r\n### How to reproduce the bug\r\n\r\n1.go to report\r\n2.choose chart\r\n3.choose Send As Text\r\n4.schedule email to be sent at a specific time.\r\n\r\n### Screenshots/recordings\r\n\r\n_No response_\r\n\r\n### Superset version\r\n\r\n3.0.4\r\n\r\n### Python version\r\n\r\n3.9\r\n\r\n### Node version\r\n\r\n16\r\n\r\n### Browser\r\n\r\nChrome\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Checklist\r\n\r\n- [X] I have searched Superset docs and Slack and didn't find a solution to my problem.\r\n- [X] I have searched the GitHub issue tracker and didn't find a similar bug report.\r\n- [X] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the \"additional context\" section.", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27222/reactions", + "total_count": 1, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27222/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27221", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27221/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27221/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27221/events", + "html_url": "https://github.com/apache/superset/pull/27221", + "id": 2150333357, + "node_id": "PR_kwDOAlosUs5ntw9R", + "number": 27221, + "title": "feat(REST API): Apache Superset \"Factory Reset\" REST API #27207", + "user": { + "login": "mknadh", + "id": 7744468, + "node_id": "MDQ6VXNlcjc3NDQ0Njg=", + "avatar_url": "https://avatars.githubusercontent.com/u/7744468?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/mknadh", + "html_url": "https://github.com/mknadh", + "followers_url": "https://api.github.com/users/mknadh/followers", + "following_url": "https://api.github.com/users/mknadh/following{/other_user}", + "gists_url": "https://api.github.com/users/mknadh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mknadh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mknadh/subscriptions", + "organizations_url": "https://api.github.com/users/mknadh/orgs", + "repos_url": "https://api.github.com/users/mknadh/repos", + "events_url": "https://api.github.com/users/mknadh/events{/privacy}", + "received_events_url": "https://api.github.com/users/mknadh/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1331560260, + "node_id": "MDU6TGFiZWwxMzMxNTYwMjYw", + "url": "https://api.github.com/repos/apache/superset/labels/size/L", + "name": "size/L", + "color": "6D53B9", + "default": false, + "description": "" + }, + { + "id": 2859155980, + "node_id": "MDU6TGFiZWwyODU5MTU1OTgw", + "url": "https://api.github.com/repos/apache/superset/labels/api", + "name": "api", + "color": "91C99C", + "default": false, + "description": "Related to the REST API" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 0, + "created_at": "2024-02-23T04:11:13Z", + "updated_at": "2024-02-23T04:18:26Z", + "closed_at": null, + "author_association": "FIRST_TIME_CONTRIBUTOR", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27221", + "html_url": "https://github.com/apache/superset/pull/27221", + "diff_url": "https://github.com/apache/superset/pull/27221.diff", + "patch_url": "https://github.com/apache/superset/pull/27221.patch", + "merged_at": null + }, + "body": "feat(REST API): Apache Superset \"Factory Reset\" REST API #27207\r\n\r\n### SUMMARY\r\nOver time, Apache Superset instances can accumulate large amounts of data, including charts, dashboards, saved queries, and other artifacts. There might be scenarios where users want to start fresh with a clean slate, removing all existing data.\r\n\r\nTesting and Development: Developers and administrators often require a quick and efficient way to reset Apache Superset instances to a default state for testing purposes or when setting up development environments.\r\n\r\nData Privacy and Security: In some cases, there might be sensitive or confidential data stored within Apache Superset that needs to be wiped out completely to ensure data privacy and security compliance.\r\n\r\nWhat is the proposal?\r\n\r\nImplement a Factory Reset API: Develop an API endpoint that allows users to trigger a factory reset of Apache Superset. This API should be designed to delete all existing data, including charts, dashboards, saved queries, databases, and other related artifacts.\r\n\r\nAuthorization and Confirmation: Ensure that the API requires appropriate authorization to prevent unauthorized access. Additionally, consider implementing a confirmation mechanism to prevent accidental data loss.\r\n\r\nDocumentation and Best Practices: Provide comprehensive documentation on how to use the Factory Reset API, along with best practices for when and how to perform a reset. Include warnings about data loss and the irreversible nature of the operation.\r\nError Handling and Logging: Implement robust error handling mechanisms within the API to handle any unexpected errors gracefully. Additionally, log all reset operations for auditing purposes.\r\n\r\nIntegration with Configuration Management: Optionally, provide integration with configuration management tools or scripts to automate the process of resetting Apache Superset instances in a controlled and reproducible manner.\r\n\r\n### ADDITIONAL INFORMATION\r\n\r\n\r\n- [x ] Has associated issue:\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ x] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27221/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27221/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27220", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27220/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27220/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27220/events", + "html_url": "https://github.com/apache/superset/pull/27220", + "id": 2150300980, + "node_id": "PR_kwDOAlosUs5ntp7-", + "number": 27220, + "title": "chore: add file extension on the file uploaded on slack", + "user": { + "login": "okayhooni", + "id": 81631424, + "node_id": "MDQ6VXNlcjgxNjMxNDI0", + "avatar_url": "https://avatars.githubusercontent.com/u/81631424?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/okayhooni", + "html_url": "https://github.com/okayhooni", + "followers_url": "https://api.github.com/users/okayhooni/followers", + "following_url": "https://api.github.com/users/okayhooni/following{/other_user}", + "gists_url": "https://api.github.com/users/okayhooni/gists{/gist_id}", + "starred_url": "https://api.github.com/users/okayhooni/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/okayhooni/subscriptions", + "organizations_url": "https://api.github.com/users/okayhooni/orgs", + "repos_url": "https://api.github.com/users/okayhooni/repos", + "events_url": "https://api.github.com/users/okayhooni/events{/privacy}", + "received_events_url": "https://api.github.com/users/okayhooni/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329183122, + "node_id": "MDU6TGFiZWwxMzI5MTgzMTIy", + "url": "https://api.github.com/repos/apache/superset/labels/size/XS", + "name": "size/XS", + "color": "E2D8FF", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 1, + "created_at": "2024-02-23T03:23:26Z", + "updated_at": "2024-02-23T03:37:31Z", + "closed_at": null, + "author_association": "CONTRIBUTOR", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27220", + "html_url": "https://github.com/apache/superset/pull/27220", + "diff_url": "https://github.com/apache/superset/pull/27220.diff", + "patch_url": "https://github.com/apache/superset/pull/27220.patch", + "merged_at": null + }, + "body": "### SUMMARY\r\n- I received a reported issue by our company members, that files downloaded through Slack are not opening properly.\r\n- Upon investigation, I found that the problem is due to the absence of file extensions in the uploaded filenames on Slack. Consequently, the files are attempting to open with a default text editor.\r\n- So, I added a simple logic to append file extension with argument of slack file_upload API\r\n - https://api.slack.com/methods/files.upload\r\n\r\n### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF\r\n![image](https://github.com/apache/superset/assets/81631424/77ec2e92-fe47-4b0b-88a9-4bc423d7d5e6)\r\n\r\n### TESTING INSTRUCTIONS\r\nJust do make alerts of notification with attached image", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27220/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27220/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27219", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27219/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27219/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27219/events", + "html_url": "https://github.com/apache/superset/pull/27219", + "id": 2150205535, + "node_id": "PR_kwDOAlosUs5ntVdI", + "number": 27219, + "title": "build(deps): bump re-resizable from 6.6.1 to 6.9.11 in /superset-frontend", + "user": { + "login": "justinpark", + "id": 1392866, + "node_id": "MDQ6VXNlcjEzOTI4NjY=", + "avatar_url": "https://avatars.githubusercontent.com/u/1392866?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/justinpark", + "html_url": "https://github.com/justinpark", + "followers_url": "https://api.github.com/users/justinpark/followers", + "following_url": "https://api.github.com/users/justinpark/following{/other_user}", + "gists_url": "https://api.github.com/users/justinpark/gists{/gist_id}", + "starred_url": "https://api.github.com/users/justinpark/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinpark/subscriptions", + "organizations_url": "https://api.github.com/users/justinpark/orgs", + "repos_url": "https://api.github.com/users/justinpark/repos", + "events_url": "https://api.github.com/users/justinpark/events{/privacy}", + "received_events_url": "https://api.github.com/users/justinpark/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329183122, + "node_id": "MDU6TGFiZWwxMzI5MTgzMTIy", + "url": "https://api.github.com/repos/apache/superset/labels/size/XS", + "name": "size/XS", + "color": "E2D8FF", + "default": false, + "description": "" + }, + { + "id": 6496358600, + "node_id": "LA_kwDOAlosUs8AAAABgzaQyA", + "url": "https://api.github.com/repos/apache/superset/labels/dependencies:npm", + "name": "dependencies:npm", + "color": "ededed", + "default": false, + "description": null + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 1, + "created_at": "2024-02-23T01:05:38Z", + "updated_at": "2024-02-23T01:39:42Z", + "closed_at": null, + "author_association": "MEMBER", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27219", + "html_url": "https://github.com/apache/superset/pull/27219", + "diff_url": "https://github.com/apache/superset/pull/27219.diff", + "patch_url": "https://github.com/apache/superset/pull/27219.patch", + "merged_at": null + }, + "body": "Bumps [re-resizable](https://github.com/bokuweb/react-resizable-box) from 6.6.1 to 6.9.11.\r\nFixes the failed cypress test at #26933\r\n\r\n
\r\nRelease notes\r\n

Sourced from re-resizable's releases.

\r\n
\r\n

v6.6.11

\r\n

Full Changelog: https://github.com/bokuweb/re-resizable/compare/v6.6.10...v6.6.11

\r\n

v6.6.10

\r\n

What's Changed

\r\n\r\n\r\n
\r\n

... (truncated)

\r\n
\r\n
\r\nChangelog\r\n

Sourced from re-resizable's changelog.

\r\n
\r\n

Changelog

\r\n\r\n\r\n

6.9.11 (2023-08-10)

\r\n

:nail_care: Enhancement

\r\n
    \r\n
  • improve enable type.
  • \r\n
\r\n

6.9.9 (2022-04-26)

\r\n

:nail_care: Enhancement

\r\n
    \r\n
  • use native endsWith.
  • \r\n
  • remove fast-memoize.
  • \r\n
\r\n

6.9.8 (2022-04-22)

\r\n

:nail_care: Enhancement

\r\n
    \r\n
  • use flushSync in mouseMove.
  • \r\n
\r\n

6.9.6 (2022-04-22)

\r\n

:nail_care: Enhancement

\r\n
    \r\n
  • add react and react-dom to peer deps.
  • \r\n
\r\n

6.9.5 (2022-03-14)

\r\n\r\n
\r\n

... (truncated)

\r\n
\r\n
\r\nCommits\r\n\r\n
\r\n
\r\n\r\n\r\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=re-resizable&package-manager=npm_and_yarn&previous-version=6.6.1&new-version=6.9.11)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\r\n\r\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\r\n\r\n[//]: # (dependabot-automerge-start)\r\nDependabot will merge this PR once CI passes on it, as requested by @rusackas.\r\n\r\n[//]: # (dependabot-automerge-end)\r\n\r\n---\r\n\r\n
\r\nDependabot commands and options\r\n
\r\n\r\nYou can trigger Dependabot actions by commenting on this PR:\r\n- `@dependabot rebase` will rebase this PR\r\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\r\n- `@dependabot merge` will merge this PR after your CI passes on it\r\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\r\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\r\n- `@dependabot reopen` will reopen this PR if it is closed\r\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\r\n- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency\r\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\r\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\r\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\r\n\r\n\r\n
", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27219/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27219/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27217", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27217/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27217/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27217/events", + "html_url": "https://github.com/apache/superset/pull/27217", + "id": 2150112152, + "node_id": "PR_kwDOAlosUs5ntA6m", + "number": 27217, + "title": "fix(sqlglot): Address regressions introduced in #26476", + "user": { + "login": "john-bodley", + "id": 4567245, + "node_id": "MDQ6VXNlcjQ1NjcyNDU=", + "avatar_url": "https://avatars.githubusercontent.com/u/4567245?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/john-bodley", + "html_url": "https://github.com/john-bodley", + "followers_url": "https://api.github.com/users/john-bodley/followers", + "following_url": "https://api.github.com/users/john-bodley/following{/other_user}", + "gists_url": "https://api.github.com/users/john-bodley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/john-bodley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/john-bodley/subscriptions", + "organizations_url": "https://api.github.com/users/john-bodley/orgs", + "repos_url": "https://api.github.com/users/john-bodley/repos", + "events_url": "https://api.github.com/users/john-bodley/events{/privacy}", + "received_events_url": "https://api.github.com/users/john-bodley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1330950144, + "node_id": "MDU6TGFiZWwxMzMwOTUwMTQ0", + "url": "https://api.github.com/repos/apache/superset/labels/size/S", + "name": "size/S", + "color": "C8B6FF", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 1, + "created_at": "2024-02-22T23:22:36Z", + "updated_at": "2024-02-23T14:06:55Z", + "closed_at": null, + "author_association": "MEMBER", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27217", + "html_url": "https://github.com/apache/superset/pull/27217", + "diff_url": "https://github.com/apache/superset/pull/27217.diff", + "patch_url": "https://github.com/apache/superset/pull/27217.patch", + "merged_at": null + }, + "body": "\r\n\r\n### SUMMARY\r\n\r\nThis PR addresses some regressions introducted in https://github.com/apache/superset/pull/26476 when `sqlparse` was replaced with `sqlglot` for SQL parsing. These issues were reported by our users who were unable to access their saved queries after we deployed Apache Superset 3.1.1.\r\n\r\n### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF\r\n\r\n\r\n### TESTING INSTRUCTIONS\r\n\r\nAdded unit tests.\r\n\r\n### ADDITIONAL INFORMATION\r\n\r\n\r\n- [ ] Has associated issue:\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27217/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27217/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27213", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27213/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27213/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27213/events", + "html_url": "https://github.com/apache/superset/pull/27213", + "id": 2149675626, + "node_id": "PR_kwDOAlosUs5nrgxY", + "number": 27213, + "title": "fix(trino): bumping trino to fix hudi schema fetching", + "user": { + "login": "rusackas", + "id": 812905, + "node_id": "MDQ6VXNlcjgxMjkwNQ==", + "avatar_url": "https://avatars.githubusercontent.com/u/812905?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rusackas", + "html_url": "https://github.com/rusackas", + "followers_url": "https://api.github.com/users/rusackas/followers", + "following_url": "https://api.github.com/users/rusackas/following{/other_user}", + "gists_url": "https://api.github.com/users/rusackas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rusackas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rusackas/subscriptions", + "organizations_url": "https://api.github.com/users/rusackas/orgs", + "repos_url": "https://api.github.com/users/rusackas/repos", + "events_url": "https://api.github.com/users/rusackas/events{/privacy}", + "received_events_url": "https://api.github.com/users/rusackas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329183122, + "node_id": "MDU6TGFiZWwxMzI5MTgzMTIy", + "url": "https://api.github.com/repos/apache/superset/labels/size/XS", + "name": "size/XS", + "color": "E2D8FF", + "default": false, + "description": "" + }, + { + "id": 6599365865, + "node_id": "LA_kwDOAlosUs8AAAABiVpU6Q", + "url": "https://api.github.com/repos/apache/superset/labels/hold:review-after-release", + "name": "hold:review-after-release", + "color": "FBCA04", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 1, + "created_at": "2024-02-22T18:22:33Z", + "updated_at": "2024-02-22T18:36:12Z", + "closed_at": null, + "author_association": "MEMBER", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27213", + "html_url": "https://github.com/apache/superset/pull/27213", + "diff_url": "https://github.com/apache/superset/pull/27213.diff", + "patch_url": "https://github.com/apache/superset/pull/27213.patch", + "merged_at": null + }, + "body": "\r\n\r\n### SUMMARY\r\n\r\nBumps the Trino version as mentioned on https://github.com/apache/superset/issues/21945\r\nThis is an old bug and a small PR, so we can hold this during the 4.0 stabilization window. \r\n\r\n### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF\r\n\r\n\r\n### TESTING INSTRUCTIONS\r\n\r\n\r\n### ADDITIONAL INFORMATION\r\n\r\n\r\n- [ ] Has associated issue: Fixes https://github.com/apache/superset/issues/21945\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27213/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27213/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27209", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27209/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27209/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27209/events", + "html_url": "https://github.com/apache/superset/pull/27209", + "id": 2149540646, + "node_id": "PR_kwDOAlosUs5nrCsi", + "number": 27209, + "title": "fix: Allow only dttm columns in comparison filter in Period over Period chart", + "user": { + "login": "kgabryje", + "id": 15073128, + "node_id": "MDQ6VXNlcjE1MDczMTI4", + "avatar_url": "https://avatars.githubusercontent.com/u/15073128?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kgabryje", + "html_url": "https://github.com/kgabryje", + "followers_url": "https://api.github.com/users/kgabryje/followers", + "following_url": "https://api.github.com/users/kgabryje/following{/other_user}", + "gists_url": "https://api.github.com/users/kgabryje/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kgabryje/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kgabryje/subscriptions", + "organizations_url": "https://api.github.com/users/kgabryje/orgs", + "repos_url": "https://api.github.com/users/kgabryje/repos", + "events_url": "https://api.github.com/users/kgabryje/events{/privacy}", + "received_events_url": "https://api.github.com/users/kgabryje/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329203144, + "node_id": "MDU6TGFiZWwxMzI5MjAzMTQ0", + "url": "https://api.github.com/repos/apache/superset/labels/size/M", + "name": "size/M", + "color": "705FA3", + "default": false, + "description": "" + }, + { + "id": 5807047135, + "node_id": "LA_kwDOAlosUs8AAAABWiCB3w", + "url": "https://api.github.com/repos/apache/superset/labels/review-checkpoint", + "name": "review-checkpoint", + "color": "FF5A5F", + "default": false, + "description": "Last PR reviewed during the daily review standup" + }, + { + "id": 6424921785, + "node_id": "LA_kwDOAlosUs8AAAABfvSGuQ", + "url": "https://api.github.com/repos/apache/superset/labels/plugins", + "name": "plugins", + "color": "E795E1", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 1, + "created_at": "2024-02-22T17:14:33Z", + "updated_at": "2024-02-23T12:16:26Z", + "closed_at": null, + "author_association": "MEMBER", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27209", + "html_url": "https://github.com/apache/superset/pull/27209", + "diff_url": "https://github.com/apache/superset/pull/27209.diff", + "patch_url": "https://github.com/apache/superset/pull/27209.patch", + "merged_at": null + }, + "body": "### SUMMARY\r\nWhen user selected Custom range for comparison on Big Number With Time Period Comparison chart, the filter control would accept any column. That worked but didn't make much sense, so this PR restricts the control to accept only dttm columns for filtering.\r\nPlease note that user can still write custom sql which will filter anything, so that's just a UX improvement.\r\n\r\n### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF\r\n\r\n\r\nhttps://github.com/apache/superset/assets/15073128/b4a63051-72f4-4a3c-900d-67aabcc79ba1\r\n\r\n\r\n### TESTING INSTRUCTIONS\r\n1. Create Big Number With Time Period Comparison chart\r\n2. Select Custom range for comparison\r\n3. Verify that you can drag only temporal columns\r\n4. Verify that in the columns select in the popover you can only select temporal columns\r\n\r\n### ADDITIONAL INFORMATION\r\n\r\n\r\n- [ ] Has associated issue:\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27209/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27209/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27200", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27200/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27200/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27200/events", + "html_url": "https://github.com/apache/superset/issues/27200", + "id": 2148666735, + "node_id": "I_kwDOAlosUs6AEg1v", + "number": 27200, + "title": "Inter font chosen in Table does not allow correct alignment of dates and numbers", + "user": { + "login": "squalou", + "id": 4623644, + "node_id": "MDQ6VXNlcjQ2MjM2NDQ=", + "avatar_url": "https://avatars.githubusercontent.com/u/4623644?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/squalou", + "html_url": "https://github.com/squalou", + "followers_url": "https://api.github.com/users/squalou/followers", + "following_url": "https://api.github.com/users/squalou/following{/other_user}", + "gists_url": "https://api.github.com/users/squalou/gists{/gist_id}", + "starred_url": "https://api.github.com/users/squalou/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/squalou/subscriptions", + "organizations_url": "https://api.github.com/users/squalou/orgs", + "repos_url": "https://api.github.com/users/squalou/repos", + "events_url": "https://api.github.com/users/squalou/events{/privacy}", + "received_events_url": "https://api.github.com/users/squalou/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 0, + "created_at": "2024-02-22T09:56:48Z", + "updated_at": "2024-02-22T15:08:14Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "### Bug description\r\n\r\nThis reminds me of an old bug I opened a long time ago\r\n(for reference : https://github.com/apache/superset/issues/17633)\r\n\r\nFont used in Table are not using \"fixed width\" - at least for numbers.\r\n\r\nAs a results, dates are misaligned.\r\n\r\nFont reported by html console is : `Inter, Helvetica, Arial`\r\n\r\nIf I remove `Inter`, everything is fine, Hevletica is fine, just like in my previous issue patch :)\r\n\r\nOne may argue that Helvetica is not nice, but I favor usability over bells and whistle. (and my end users too). Once again, Inter seems to be a poor choice.\r\n\r\n\r\nAlso, \"Table\" view is not the only one affected by this, the default \"Results\" are also displayed using this font, but ok, I can admit it's not a \"visualisation\" item so it is not intended to be nice. (Well, if so, don't try to put a nice font in it to begin with ? :) )\r\n\r\nScreenshot may not be the more obvious one, I can provide more.\r\n\r\n\r\n### How to reproduce the bug\r\n\r\nOpen any Table displaying some dates.\r\n\r\n### Screenshots/recordings\r\n\r\n![2024-02-22_10-44_1](https://github.com/apache/superset/assets/4623644/393ce8d1-7f79-46f8-914d-263118233e83)\r\n\r\n\r\n### Superset version\r\n\r\nmaster / latest-dev\r\n\r\n### Python version\r\n\r\n3.9\r\n\r\n### Node version\r\n\r\n16\r\n\r\n### Browser\r\n\r\nFirefox\r\n\r\n### Additional context\r\n\r\nSeen this on 4.0.0-rc1\r\nand on 3.0.0\r\n\r\n### Checklist\r\n\r\n- [X] I have searched Superset docs and Slack and didn't find a solution to my problem.\r\n- [X] I have searched the GitHub issue tracker and didn't find a similar bug report.\r\n- [X] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the \"additional context\" section.", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27200/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27200/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27198", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27198/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27198/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27198/events", + "html_url": "https://github.com/apache/superset/pull/27198", + "id": 2147922483, + "node_id": "PR_kwDOAlosUs5nlhBH", + "number": 27198, + "title": "chore(node): bumping Superset to Node 18", + "user": { + "login": "rusackas", + "id": 812905, + "node_id": "MDQ6VXNlcjgxMjkwNQ==", + "avatar_url": "https://avatars.githubusercontent.com/u/812905?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rusackas", + "html_url": "https://github.com/rusackas", + "followers_url": "https://api.github.com/users/rusackas/followers", + "following_url": "https://api.github.com/users/rusackas/following{/other_user}", + "gists_url": "https://api.github.com/users/rusackas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rusackas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rusackas/subscriptions", + "organizations_url": "https://api.github.com/users/rusackas/orgs", + "repos_url": "https://api.github.com/users/rusackas/repos", + "events_url": "https://api.github.com/users/rusackas/events{/privacy}", + "received_events_url": "https://api.github.com/users/rusackas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329203144, + "node_id": "MDU6TGFiZWwxMzI5MjAzMTQ0", + "url": "https://api.github.com/repos/apache/superset/labels/size/M", + "name": "size/M", + "color": "705FA3", + "default": false, + "description": "" + }, + { + "id": 6496358600, + "node_id": "LA_kwDOAlosUs8AAAABgzaQyA", + "url": "https://api.github.com/repos/apache/superset/labels/dependencies:npm", + "name": "dependencies:npm", + "color": "ededed", + "default": false, + "description": null + }, + { + "id": 6501451649, + "node_id": "LA_kwDOAlosUs8AAAABg4RHgQ", + "url": "https://api.github.com/repos/apache/superset/labels/github_actions", + "name": "github_actions", + "color": "000000", + "default": false, + "description": "Pull requests that update GitHub Actions code" + }, + { + "id": 6599365865, + "node_id": "LA_kwDOAlosUs8AAAABiVpU6Q", + "url": "https://api.github.com/repos/apache/superset/labels/hold:review-after-release", + "name": "hold:review-after-release", + "color": "FBCA04", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 1, + "created_at": "2024-02-22T00:07:53Z", + "updated_at": "2024-02-22T18:02:51Z", + "closed_at": null, + "author_association": "MEMBER", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27198", + "html_url": "https://github.com/apache/superset/pull/27198", + "diff_url": "https://github.com/apache/superset/pull/27198.diff", + "patch_url": "https://github.com/apache/superset/pull/27198.patch", + "merged_at": null + }, + "body": "\r\n\r\n### SUMMARY\r\n\r\nNot sure all the actions bumps are needed, but I'll just aim high and hope we can get everything updated.\r\n\r\nThis does NOT bump the websocket app or docs to Node 18.\r\n\r\n### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF\r\n\r\n\r\n### TESTING INSTRUCTIONS\r\n\r\n\r\n### ADDITIONAL INFORMATION\r\n\r\n\r\n- [ ] Has associated issue:\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27198/reactions", + "total_count": 1, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 1, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27198/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27197", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27197/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27197/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27197/events", + "html_url": "https://github.com/apache/superset/pull/27197", + "id": 2147916065, + "node_id": "PR_kwDOAlosUs5nlfon", + "number": 27197, + "title": "feat(jinja): current_user_email macro", + "user": { + "login": "Vitor-Avila", + "id": 96086495, + "node_id": "U_kgDOBbop3w", + "avatar_url": "https://avatars.githubusercontent.com/u/96086495?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Vitor-Avila", + "html_url": "https://github.com/Vitor-Avila", + "followers_url": "https://api.github.com/users/Vitor-Avila/followers", + "following_url": "https://api.github.com/users/Vitor-Avila/following{/other_user}", + "gists_url": "https://api.github.com/users/Vitor-Avila/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Vitor-Avila/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Vitor-Avila/subscriptions", + "organizations_url": "https://api.github.com/users/Vitor-Avila/orgs", + "repos_url": "https://api.github.com/users/Vitor-Avila/repos", + "events_url": "https://api.github.com/users/Vitor-Avila/events{/privacy}", + "received_events_url": "https://api.github.com/users/Vitor-Avila/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1331560260, + "node_id": "MDU6TGFiZWwxMzMxNTYwMjYw", + "url": "https://api.github.com/repos/apache/superset/labels/size/L", + "name": "size/L", + "color": "6D53B9", + "default": false, + "description": "" + }, + { + "id": 3815127807, + "node_id": "LA_kwDOAlosUs7jZjr_", + "url": "https://api.github.com/repos/apache/superset/labels/doc", + "name": "doc", + "color": "6f9eaf", + "default": false, + "description": "Namespace | Anything related to documentation" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 5, + "created_at": "2024-02-22T00:01:35Z", + "updated_at": "2024-02-23T15:19:32Z", + "closed_at": null, + "author_association": "CONTRIBUTOR", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27197", + "html_url": "https://github.com/apache/superset/pull/27197", + "diff_url": "https://github.com/apache/superset/pull/27197.diff", + "patch_url": "https://github.com/apache/superset/pull/27197.patch", + "merged_at": null + }, + "body": "### SUMMARY\r\nThis PR adds a new Jinja macro: `{{current_user_email()}}`. This macro can be specially useful when applying RLS based on the logged in user, as it's typically easier for organizations to have the email address information available in their warehouse (as opposed to the Superset account's `username` or `id`).\r\n\r\nFixes https://github.com/apache/superset/issues/26808.\r\n\r\n### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF\r\nNo UI changes. \r\n\r\n### TESTING INSTRUCTIONS\r\n1. Navigate to SQL Lab.\r\n2. Execute `select '{{current_user_email()}}' as my_email;`\r\n3. Validate that your email address is properly displayed.\r\n\r\nTests also added.\r\n\r\n### ADDITIONAL INFORMATION\r\n- [x] Has associated issue: https://github.com/apache/superset/issues/26808\r\n- [x] Required feature flags: `ENABLE_TEMPLATE_PROCESSING`\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [x] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27197/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27197/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27195", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27195/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27195/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27195/events", + "html_url": "https://github.com/apache/superset/pull/27195", + "id": 2147461025, + "node_id": "PR_kwDOAlosUs5nj724", + "number": 27195, + "title": "fix: Upgrade eyes-cypress to latest", + "user": { + "login": "geido", + "id": 60598000, + "node_id": "MDQ6VXNlcjYwNTk4MDAw", + "avatar_url": "https://avatars.githubusercontent.com/u/60598000?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/geido", + "html_url": "https://github.com/geido", + "followers_url": "https://api.github.com/users/geido/followers", + "following_url": "https://api.github.com/users/geido/following{/other_user}", + "gists_url": "https://api.github.com/users/geido/gists{/gist_id}", + "starred_url": "https://api.github.com/users/geido/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/geido/subscriptions", + "organizations_url": "https://api.github.com/users/geido/orgs", + "repos_url": "https://api.github.com/users/geido/repos", + "events_url": "https://api.github.com/users/geido/events{/privacy}", + "received_events_url": "https://api.github.com/users/geido/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329203144, + "node_id": "MDU6TGFiZWwxMzI5MjAzMTQ0", + "url": "https://api.github.com/repos/apache/superset/labels/size/M", + "name": "size/M", + "color": "705FA3", + "default": false, + "description": "" + }, + { + "id": 6496358600, + "node_id": "LA_kwDOAlosUs8AAAABgzaQyA", + "url": "https://api.github.com/repos/apache/superset/labels/dependencies:npm", + "name": "dependencies:npm", + "color": "ededed", + "default": false, + "description": null + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 2, + "created_at": "2024-02-21T18:46:44Z", + "updated_at": "2024-02-21T19:33:32Z", + "closed_at": null, + "author_association": "MEMBER", + "active_lock_reason": null, + "draft": true, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27195", + "html_url": "https://github.com/apache/superset/pull/27195", + "diff_url": "https://github.com/apache/superset/pull/27195.diff", + "patch_url": "https://github.com/apache/superset/pull/27195.patch", + "merged_at": null + }, + "body": "\r\n\r\n### SUMMARY\r\nFixes #27184\r\n\r\n### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF\r\nN.A.\r\n\r\n### TESTING INSTRUCTIONS\r\nCI should pass\r\n\r\n### ADDITIONAL INFORMATION\r\n\r\n\r\n- [x] Has associated issue: #27184\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27195/reactions", + "total_count": 2, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 2, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27195/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27194", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27194/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27194/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27194/events", + "html_url": "https://github.com/apache/superset/issues/27194", + "id": 2147431685, + "node_id": "I_kwDOAlosUs5__zUF", + "number": 27194, + "title": "[SIP] Ability to assign a unique asset id to a superset dashboard / visual", + "user": { + "login": "hondyman", + "id": 54151500, + "node_id": "MDQ6VXNlcjU0MTUxNTAw", + "avatar_url": "https://avatars.githubusercontent.com/u/54151500?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/hondyman", + "html_url": "https://github.com/hondyman", + "followers_url": "https://api.github.com/users/hondyman/followers", + "following_url": "https://api.github.com/users/hondyman/following{/other_user}", + "gists_url": "https://api.github.com/users/hondyman/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hondyman/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hondyman/subscriptions", + "organizations_url": "https://api.github.com/users/hondyman/orgs", + "repos_url": "https://api.github.com/users/hondyman/repos", + "events_url": "https://api.github.com/users/hondyman/events{/privacy}", + "received_events_url": "https://api.github.com/users/hondyman/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1010577363, + "node_id": "MDU6TGFiZWwxMDEwNTc3MzYz", + "url": "https://api.github.com/repos/apache/superset/labels/sip", + "name": "sip", + "color": "D7B4E6", + "default": false, + "description": "Superset Improvement Proposal" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 0, + "created_at": "2024-02-21T18:29:40Z", + "updated_at": "2024-02-21T18:29:40Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "\r\n## [SIP] Proposal for Adding additional metadata to a Superset Dashboard for Data Governance\r\n\r\n### Motivation\r\nWe need to provide information on various classified data used in reports to Regulatory bodies globally\r\n\r\nDescription of the problem to be solved.\r\nIn large regulated industries, we have to keep track of classified data for various global reporting such a PII for GDPR, financials metrics for Dodd/Frank and other regulatory bodies. We have to be able to say where / when and how certain data sets are used inside the org. To do this we assign an asset id (UUID) to each report, process and interface we report, xfer or export data from and we manage these through Data Governance.\r\n\r\n### Proposed Change\r\nSuperset has metadata but its not editable, users should be able to add additional metadata to reports that allows for easier identification and governance. In our case we need to add an asset id to the metadata so we can track its usage.\r\nI have provided a logical diagram of how we would see the process working in our org. The data catalog manages all our metadata so it will have an inventory of all dashboards power bi, superset and looker each is assigned an asset id and is actively managed by DG. \r\n\r\nBecause superset uses integers inside an environment such as Dev, QA and prod the integers in each environment can be different. The asset id does not change between environments, its a consistent id thats callable from our portal.\r\n\r\n![Screenshot 2024-02-21 1 20 16 PM](https://github.com/apache/superset/assets/54151500/a67202da-9f39-4103-9dbe-5b4bb34c5d22)\r\n\r\n\r\n### New or Changed Public Interfaces\r\n\r\nTypically our Data Governance tool assigns asset ids (UUID) and we push them into the various assets such as dashboards either manually or via api. If a new metadata area was exposed we will expect this to be available via Swagger API for insert, read and update.\r\n\r\n\r\n\r\n\r\n### New dependencies\r\n\r\nNot Applicable\r\n\r\n### Migration Plan and Compatibility\r\n\r\nNot Applicable\r\n\r\n### Rejected Alternatives\r\n\r\nNot Applicable\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27194/reactions", + "total_count": 1, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 1 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27194/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27187", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27187/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27187/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27187/events", + "html_url": "https://github.com/apache/superset/pull/27187", + "id": 2146739162, + "node_id": "PR_kwDOAlosUs5nhcQh", + "number": 27187, + "title": "chore: numexpr to fix CVE-2023-39631⁠ (2.8.4 => 2.9.0)", + "user": { + "login": "nigzak", + "id": 102737855, + "node_id": "U_kgDOBh-nvw", + "avatar_url": "https://avatars.githubusercontent.com/u/102737855?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/nigzak", + "html_url": "https://github.com/nigzak", + "followers_url": "https://api.github.com/users/nigzak/followers", + "following_url": "https://api.github.com/users/nigzak/following{/other_user}", + "gists_url": "https://api.github.com/users/nigzak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nigzak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nigzak/subscriptions", + "organizations_url": "https://api.github.com/users/nigzak/orgs", + "repos_url": "https://api.github.com/users/nigzak/repos", + "events_url": "https://api.github.com/users/nigzak/events{/privacy}", + "received_events_url": "https://api.github.com/users/nigzak/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1330950144, + "node_id": "MDU6TGFiZWwxMzMwOTUwMTQ0", + "url": "https://api.github.com/repos/apache/superset/labels/size/S", + "name": "size/S", + "color": "C8B6FF", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 10, + "created_at": "2024-02-21T13:18:37Z", + "updated_at": "2024-02-23T16:46:04Z", + "closed_at": null, + "author_association": "FIRST_TIME_CONTRIBUTOR", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27187", + "html_url": "https://github.com/apache/superset/pull/27187", + "diff_url": "https://github.com/apache/superset/pull/27187.diff", + "patch_url": "https://github.com/apache/superset/pull/27187.patch", + "merged_at": null + }, + "body": "<!---\r\nPlease write the PR title following the conventions at https://www.conventionalcommits.org/en/v1.0.0/\r\nExample:\r\nfix(dashboard): load charts correctly\r\n-->\r\n\r\n### SUMMARY\r\nsuperset 3.1.0 / 3.1.1 has a critical finding: CVE-2023-39631⁠ because of numexpr 2.8.4\r\n\r\n### TESTING INSTRUCTIONS\r\nunknown (sorry), this pull request is to update the numexpr to a non-faulty version depending the CVE (2.9.0 is the current latest available version based on https://github.com/pydata/numexpr)\r\nTo test \"my\" finding: open final image in docker scout => no finding for numexpr is there anymore\r\n\r\n![image](https://github.com/apache/superset/assets/102737855/ad7499cf-2d55-4862-af37-9ae61312639c)\r\n\r\n\r\n### ADDITIONAL INFORMATION\r\n<!--- Check any relevant boxes with \"x\" -->\r\n<!--- HINT: Include \"Fixes #nnn\" if you are fixing an existing issue -->\r\n- [x] Has associated issue: https://github.com/apache/superset/issues/26967\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n\r\nHINT: This is my first pull request ... if I made something wrong please let me know that I can make a next one better :)", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27187/reactions", + "total_count": 1, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 1, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27187/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27186", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27186/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27186/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27186/events", + "html_url": "https://github.com/apache/superset/pull/27186", + "id": 2146550133, + "node_id": "PR_kwDOAlosUs5ngyLa", + "number": 27186, + "title": "fix: SSH Tunnel configuration settings ", + "user": { + "login": "geido", + "id": 60598000, + "node_id": "MDQ6VXNlcjYwNTk4MDAw", + "avatar_url": "https://avatars.githubusercontent.com/u/60598000?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/geido", + "html_url": "https://github.com/geido", + "followers_url": "https://api.github.com/users/geido/followers", + "following_url": "https://api.github.com/users/geido/following{/other_user}", + "gists_url": "https://api.github.com/users/geido/gists{/gist_id}", + "starred_url": "https://api.github.com/users/geido/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/geido/subscriptions", + "organizations_url": "https://api.github.com/users/geido/orgs", + "repos_url": "https://api.github.com/users/geido/repos", + "events_url": "https://api.github.com/users/geido/events{/privacy}", + "received_events_url": "https://api.github.com/users/geido/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329338104, + "node_id": "MDU6TGFiZWwxMzI5MzM4MTA0", + "url": "https://api.github.com/repos/apache/superset/labels/size/XL", + "name": "size/XL", + "color": "5C3BBc", + "default": false, + "description": "" + }, + { + "id": 2859155980, + "node_id": "MDU6TGFiZWwyODU5MTU1OTgw", + "url": "https://api.github.com/repos/apache/superset/labels/api", + "name": "api", + "color": "91C99C", + "default": false, + "description": "Related to the REST API" + }, + { + "id": 6502628977, + "node_id": "LA_kwDOAlosUs8AAAABg5Y-cQ", + "url": "https://api.github.com/repos/apache/superset/labels/packages", + "name": "packages", + "color": "E795E1", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 1, + "created_at": "2024-02-21T11:46:12Z", + "updated_at": "2024-02-23T16:44:57Z", + "closed_at": null, + "author_association": "MEMBER", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27186", + "html_url": "https://github.com/apache/superset/pull/27186", + "diff_url": "https://github.com/apache/superset/pull/27186.diff", + "patch_url": "https://github.com/apache/superset/pull/27186.patch", + "merged_at": null + }, + "body": "### SUMMARY\r\nThis PR fixes several issues with the SSH Tunnel option in the Database Modal which are related to edit the SSH Tunnel config, enable/disable the option, and misc fixes/enhancements. In particular:\r\n\r\n- Removes a duplicate `SSHTunnelSwitch` component from dynamic forms and merges the logics of both dynamic and SQLAlchemy forms into one overridable component\r\n- Fixes an issue that made removing the SSH tunnel config impossible when editing a database connection\r\n- Delegates the deletion of a ssh tunnel to the `UpdateDatabaseCommand`\r\n- Fixes an issue with the SSH tunnel config still being included in the request even when toggled off\r\n- Fixes an issue for which the switch was showing also with `SSH_TUNNELING` OFF. Saving would cause a \"SSH Tunneling is not enabled\" error\r\n- Surfaces to the user a missing port error in the SQLAlchemy uri when enabling SSH Tunnel (the port is required for the tunnel to work)\r\n- Clean the SSH Tunnel config from unnecessary credentials when switching from password to private key\r\n- Improves the UX so that toggling ON and OFF the SSH Tunnel config won't clear the form until saved\r\n- Misc fixes\r\n\r\n### BEFORE\r\n\r\nhttps://github.com/apache/superset/assets/60598000/c38052d6-53b0-47d8-a87a-391a647085d9\r\n\r\n### AFTER\r\n\r\nhttps://github.com/apache/superset/assets/60598000/f65ad7da-962f-4500-82f2-eb42bd2139ba\r\n\r\n### TESTING INSTRUCTIONS\r\n1. Create a new database connection using a SQLAlchemy uri and dynamic forms, make sure SSH Tunnel can be toggled ON and OFF and that configs can be saved successfully\r\n2. Edit a database connection that has a SSH Tunnel config, make sure the SSH Tunnel can be toggled ON and OFF and that it keeps the config available to the user until toggled OFF and saved\r\n3. Edit a database connection that has a SSH Tunnel config, make sure any change to the SSH tunnel can be saved successfully\r\n4. Re-open the database config and make sure the SSH Tunnel has been deleted successfully\r\n5. Create or edit a database connection using a SQLAlchemy uri without specifying the port, make sure an error is surfaced to the UI informing that specifying a port is necessary\r\n\r\n### ADDITIONAL INFORMATION\r\n<!--- Check any relevant boxes with \"x\" -->\r\n<!--- HINT: Include \"Fixes #nnn\" if you are fixing an existing issue -->\r\n- [ ] Has associated issue:\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27186/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27186/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27184", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27184/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27184/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27184/events", + "html_url": "https://github.com/apache/superset/issues/27184", + "id": 2146285004, + "node_id": "I_kwDOAlosUs5_7bXM", + "number": 27184, + "title": "Update dependencies in superset-frontend package.json ", + "user": { + "login": "MFIB00", + "id": 79359373, + "node_id": "MDQ6VXNlcjc5MzU5Mzcz", + "avatar_url": "https://avatars.githubusercontent.com/u/79359373?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/MFIB00", + "html_url": "https://github.com/MFIB00", + "followers_url": "https://api.github.com/users/MFIB00/followers", + "following_url": "https://api.github.com/users/MFIB00/following{/other_user}", + "gists_url": "https://api.github.com/users/MFIB00/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MFIB00/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MFIB00/subscriptions", + "organizations_url": "https://api.github.com/users/MFIB00/orgs", + "repos_url": "https://api.github.com/users/MFIB00/repos", + "events_url": "https://api.github.com/users/MFIB00/events{/privacy}", + "received_events_url": "https://api.github.com/users/MFIB00/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": { + "login": "geido", + "id": 60598000, + "node_id": "MDQ6VXNlcjYwNTk4MDAw", + "avatar_url": "https://avatars.githubusercontent.com/u/60598000?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/geido", + "html_url": "https://github.com/geido", + "followers_url": "https://api.github.com/users/geido/followers", + "following_url": "https://api.github.com/users/geido/following{/other_user}", + "gists_url": "https://api.github.com/users/geido/gists{/gist_id}", + "starred_url": "https://api.github.com/users/geido/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/geido/subscriptions", + "organizations_url": "https://api.github.com/users/geido/orgs", + "repos_url": "https://api.github.com/users/geido/repos", + "events_url": "https://api.github.com/users/geido/events{/privacy}", + "received_events_url": "https://api.github.com/users/geido/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "geido", + "id": 60598000, + "node_id": "MDQ6VXNlcjYwNTk4MDAw", + "avatar_url": "https://avatars.githubusercontent.com/u/60598000?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/geido", + "html_url": "https://github.com/geido", + "followers_url": "https://api.github.com/users/geido/followers", + "following_url": "https://api.github.com/users/geido/following{/other_user}", + "gists_url": "https://api.github.com/users/geido/gists{/gist_id}", + "starred_url": "https://api.github.com/users/geido/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/geido/subscriptions", + "organizations_url": "https://api.github.com/users/geido/orgs", + "repos_url": "https://api.github.com/users/geido/repos", + "events_url": "https://api.github.com/users/geido/events{/privacy}", + "received_events_url": "https://api.github.com/users/geido/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": null, + "comments": 0, + "created_at": "2024-02-21T09:47:19Z", + "updated_at": "2024-02-21T14:22:16Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "### Bug description\n\nI've found that in cyperset-fronted package.json file has a \"@applitools/eyes-cypress\" libary that outdated and has critical vulnerability in vm2. \r\nhttps://github.com/apache/superset/blob/3818da850957c779e8d24071a4fc7302cd053959/superset-frontend/cypress-base/package.json#L19\n\n### How to reproduce the bug\n\n1. Go to https://github.com/apache/superset/blob/3818da850957c779e8d24071a4fc7302cd053959/superset-frontend/cypress-base/package.json#L19 \r\n2. Check @applitools/eyes-cypress@3.29.1 for vulnerabilities\r\n3. Update @applitools/eyes-cypress@3.29.1 to 3.38.0\n\n### Screenshots/recordings\n\n![image](https://github.com/apache/superset/assets/79359373/303d6897-eb44-4b20-9385-79d72493913f)\r\n\n\n### Superset version\n\nmaster / latest-dev\n\n### Python version\n\n3.9\n\n### Node version\n\n16\n\n### Browser\n\nChrome\n\n### Additional context\n\n_No response_\n\n### Checklist\n\n- [X] I have searched Superset docs and Slack and didn't find a solution to my problem.\n- [X] I have searched the GitHub issue tracker and didn't find a similar bug report.\n- [X] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the \"additional context\" section.", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27184/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27184/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27177", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27177/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27177/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27177/events", + "html_url": "https://github.com/apache/superset/issues/27177", + "id": 2145178842, + "node_id": "I_kwDOAlosUs5_3NTa", + "number": 27177, + "title": "Error on embedded dashboard after upgrading to 3.1.1: \"Guest user cannot modify chart payload\"", + "user": { + "login": "rscarborough1996", + "id": 106171897, + "node_id": "U_kgDOBlQN-Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106171897?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rscarborough1996", + "html_url": "https://github.com/rscarborough1996", + "followers_url": "https://api.github.com/users/rscarborough1996/followers", + "following_url": "https://api.github.com/users/rscarborough1996/following{/other_user}", + "gists_url": "https://api.github.com/users/rscarborough1996/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rscarborough1996/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rscarborough1996/subscriptions", + "organizations_url": "https://api.github.com/users/rscarborough1996/orgs", + "repos_url": "https://api.github.com/users/rscarborough1996/repos", + "events_url": "https://api.github.com/users/rscarborough1996/events{/privacy}", + "received_events_url": "https://api.github.com/users/rscarborough1996/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": { + "login": "betodealmeida", + "id": 1534870, + "node_id": "MDQ6VXNlcjE1MzQ4NzA=", + "avatar_url": "https://avatars.githubusercontent.com/u/1534870?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/betodealmeida", + "html_url": "https://github.com/betodealmeida", + "followers_url": "https://api.github.com/users/betodealmeida/followers", + "following_url": "https://api.github.com/users/betodealmeida/following{/other_user}", + "gists_url": "https://api.github.com/users/betodealmeida/gists{/gist_id}", + "starred_url": "https://api.github.com/users/betodealmeida/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/betodealmeida/subscriptions", + "organizations_url": "https://api.github.com/users/betodealmeida/orgs", + "repos_url": "https://api.github.com/users/betodealmeida/repos", + "events_url": "https://api.github.com/users/betodealmeida/events{/privacy}", + "received_events_url": "https://api.github.com/users/betodealmeida/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "betodealmeida", + "id": 1534870, + "node_id": "MDQ6VXNlcjE1MzQ4NzA=", + "avatar_url": "https://avatars.githubusercontent.com/u/1534870?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/betodealmeida", + "html_url": "https://github.com/betodealmeida", + "followers_url": "https://api.github.com/users/betodealmeida/followers", + "following_url": "https://api.github.com/users/betodealmeida/following{/other_user}", + "gists_url": "https://api.github.com/users/betodealmeida/gists{/gist_id}", + "starred_url": "https://api.github.com/users/betodealmeida/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/betodealmeida/subscriptions", + "organizations_url": "https://api.github.com/users/betodealmeida/orgs", + "repos_url": "https://api.github.com/users/betodealmeida/repos", + "events_url": "https://api.github.com/users/betodealmeida/events{/privacy}", + "received_events_url": "https://api.github.com/users/betodealmeida/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": null, + "comments": 3, + "created_at": "2024-02-20T20:07:26Z", + "updated_at": "2024-02-21T15:45:38Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "### Bug description\n\nAfter upgrading from 3.1.0 to 3.1.1, dashboards and filters no longer work and give this error: \"Guest user cannot modify chart payload\". I didn't change any permissions, and I even tried changing GUEST_ROLE_NAME to \"Admin\", but it still didn't work. I can see that the POST request to /api/v1/chart/data is coming back with 403, but I can't tell what is causing it.\n\n### How to reproduce the bug\n\nUsing the Docker 3.1.1 image:\r\n1. Create an embedded dashboard app\r\n2. Try to use it\n\n### Screenshots/recordings\n\n_No response_\n\n### Superset version\n\n3.1.1\n\n### Python version\n\nI don't know\n\n### Node version\n\nI don't know\n\n### Browser\n\nChrome\n\n### Additional context\n\nLogs:\r\nSupersetErrorException\r\nTraceback (most recent call last):\r\n File \"/usr/local/lib/python3.9/site-packages/flask/app.py\", line 1823, in full_dispatch_request\r\n rv = self.dispatch_request()\r\n File \"/usr/local/lib/python3.9/site-packages/flask/app.py\", line 1799, in dispatch_request\r\n return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)\r\n File \"/usr/local/lib/python3.9/site-packages/flask_appbuilder/security/decorators.py\", line 95, in wraps\r\n return f(self, *args, **kwargs)\r\n File \"/app/superset/views/base_api.py\", line 127, in wraps\r\n raise ex\r\n File \"/app/superset/views/base_api.py\", line 121, in wraps\r\n duration, response = time_function(f, self, *args, **kwargs)\r\n File \"/app/superset/utils/core.py\", line 1463, in time_function\r\n response = func(*args, **kwargs)\r\n File \"/app/superset/utils/log.py\", line 255, in wrapper\r\n value = f(*args, **kwargs)\r\n File \"/app/superset/charts/data/api.py\", line 235, in data\r\n command.validate()\r\n File \"/app/superset/commands/chart/data/get_data_command.py\", line 68, in validate\r\n self._query_context.raise_for_access()\r\n File \"/app/superset/common/query_context.py\", line 137, in raise_for_access\r\n self._processor.raise_for_access()\r\n File \"/app/superset/common/query_context_processor.py\", line 754, in raise_for_access\r\n security_manager.raise_for_access(query_context=self._query_context)\r\n File \"/app/superset/security/manager.py\", line 1960, in raise_for_access\r\n raise SupersetSecurityException(\r\nsuperset.exceptions.SupersetSecurityException: Guest user cannot modify chart payload\r\n2024-02-20 19:57:34,465:WARNING:superset.views.base:SupersetErrorException\r\nTraceback (most recent call last):\r\n File \"/usr/local/lib/python3.9/site-packages/flask/app.py\", line 1823, in full_dispatch_request\r\n rv = self.dispatch_request()\r\n File \"/usr/local/lib/python3.9/site-packages/flask/app.py\", line 1799, in dispatch_request\r\n return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)\r\n File \"/usr/local/lib/python3.9/site-packages/flask_appbuilder/security/decorators.py\", line 95, in wraps\r\n return f(self, *args, **kwargs)\r\n File \"/app/superset/views/base_api.py\", line 127, in wraps\r\n raise ex\r\n File \"/app/superset/views/base_api.py\", line 121, in wraps\r\n duration, response = time_function(f, self, *args, **kwargs)\r\n File \"/app/superset/utils/core.py\", line 1463, in time_function\r\n response = func(*args, **kwargs)\r\n File \"/app/superset/utils/log.py\", line 255, in wrapper\r\n value = f(*args, **kwargs)\r\n File \"/app/superset/charts/data/api.py\", line 235, in data\r\n command.validate()\r\n File \"/app/superset/commands/chart/data/get_data_command.py\", line 68, in validate\r\n self._query_context.raise_for_access()\r\n File \"/app/superset/common/query_context.py\", line 137, in raise_for_access\r\n self._processor.raise_for_access()\r\n File \"/app/superset/common/query_context_processor.py\", line 754, in raise_for_access\r\n security_manager.raise_for_access(query_context=self._query_context)\r\n File \"/app/superset/security/manager.py\", line 1960, in raise_for_access\r\n raise SupersetSecurityException(\r\nsuperset.exceptions.SupersetSecurityException: Guest user cannot modify chart payload\r\n172.20.0.1 - - [20/Feb/2024:19:57:34 +0000] \"POST /api/v1/chart/data?form_data=%7B%22slice_id%22%3A108%7D&dashboard_id=65 HTTP/1.1\" 403 149 \"http://localhost:8088/embedded/3f11daf2-84ac-4c8f-80aa-e9310b488fe7\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36\"\n\n### Checklist\n\n- [X] I have searched Superset docs and Slack and didn't find a solution to my problem.\n- [X] I have searched the GitHub issue tracker and didn't find a similar bug report.\n- [X] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the \"additional context\" section.", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27177/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27177/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27174", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27174/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27174/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27174/events", + "html_url": "https://github.com/apache/superset/pull/27174", + "id": 2144928406, + "node_id": "PR_kwDOAlosUs5nbL8x", + "number": 27174, + "title": "test: 4.0 test environment - DO NOT MERGE", + "user": { + "login": "michael-s-molina", + "id": 70410625, + "node_id": "MDQ6VXNlcjcwNDEwNjI1", + "avatar_url": "https://avatars.githubusercontent.com/u/70410625?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/michael-s-molina", + "html_url": "https://github.com/michael-s-molina", + "followers_url": "https://api.github.com/users/michael-s-molina/followers", + "following_url": "https://api.github.com/users/michael-s-molina/following{/other_user}", + "gists_url": "https://api.github.com/users/michael-s-molina/gists{/gist_id}", + "starred_url": "https://api.github.com/users/michael-s-molina/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/michael-s-molina/subscriptions", + "organizations_url": "https://api.github.com/users/michael-s-molina/orgs", + "repos_url": "https://api.github.com/users/michael-s-molina/repos", + "events_url": "https://api.github.com/users/michael-s-molina/events{/privacy}", + "received_events_url": "https://api.github.com/users/michael-s-molina/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329183122, + "node_id": "MDU6TGFiZWwxMzI5MTgzMTIy", + "url": "https://api.github.com/repos/apache/superset/labels/size/XS", + "name": "size/XS", + "color": "E2D8FF", + "default": false, + "description": "" + }, + { + "id": 2635185640, + "node_id": "MDU6TGFiZWwyNjM1MTg1NjQw", + "url": "https://api.github.com/repos/apache/superset/labels/hold!", + "name": "hold!", + "color": "FBCA04", + "default": false, + "description": "On hold" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 2, + "created_at": "2024-02-20T17:41:38Z", + "updated_at": "2024-02-22T19:19:12Z", + "closed_at": null, + "author_association": "MEMBER", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27174", + "html_url": "https://github.com/apache/superset/pull/27174", + "diff_url": "https://github.com/apache/superset/pull/27174.diff", + "patch_url": "https://github.com/apache/superset/pull/27174.patch", + "merged_at": null + }, + "body": "### SUMMARY\r\n4.0 test environment.\r\n\r\n### ADDITIONAL INFORMATION\r\n- [ ] Has associated issue:\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27174/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27174/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27172", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27172/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27172/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27172/events", + "html_url": "https://github.com/apache/superset/issues/27172", + "id": 2144892974, + "node_id": "I_kwDOAlosUs5_2Hgu", + "number": 27172, + "title": "🐛 Assigning roles to users lead to integrity error message", + "user": { + "login": "hanslemm", + "id": 32077629, + "node_id": "MDQ6VXNlcjMyMDc3NjI5", + "avatar_url": "https://avatars.githubusercontent.com/u/32077629?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/hanslemm", + "html_url": "https://github.com/hanslemm", + "followers_url": "https://api.github.com/users/hanslemm/followers", + "following_url": "https://api.github.com/users/hanslemm/following{/other_user}", + "gists_url": "https://api.github.com/users/hanslemm/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hanslemm/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hanslemm/subscriptions", + "organizations_url": "https://api.github.com/users/hanslemm/orgs", + "repos_url": "https://api.github.com/users/hanslemm/repos", + "events_url": "https://api.github.com/users/hanslemm/events{/privacy}", + "received_events_url": "https://api.github.com/users/hanslemm/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 1, + "created_at": "2024-02-20T17:22:44Z", + "updated_at": "2024-02-20T17:41:29Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "### Bug description\r\n\r\nWhen trying to assign any new role to a user, a `Integrity error, probably unique constraint` error pops up in the UI.\r\n\r\n### How to reproduce the bug\r\n\r\n1. Go to list users\r\n2. Edit a user\r\n3. Add a new role to the user\r\n4. Hit save\r\n5. UI lands in list users\r\n6. Error pops up\r\n\r\n### Screenshots/recordings\r\n\r\n![image](https://github.com/apache/superset/assets/32077629/b2c5a1a9-b98a-42e2-8b72-bf3369a94638)\r\n\r\n\r\n### Superset version\r\n\r\n3.1.0\r\n\r\n### Python version\r\n\r\n3.9\r\n\r\n### Node version\r\n\r\n16\r\n\r\n### Browser\r\n\r\nChrome\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Checklist\r\n\r\n- [X] I have searched Superset docs and Slack and didn't find a solution to my problem.\r\n- [X] I have searched the GitHub issue tracker and didn't find a similar bug report.\r\n- [X] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the \"additional context\" section.", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27172/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27172/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27160", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27160/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27160/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27160/events", + "html_url": "https://github.com/apache/superset/issues/27160", + "id": 2142502648, + "node_id": "I_kwDOAlosUs5_s_74", + "number": 27160, + "title": "Error warming up cache: Permanent Redirect", + "user": { + "login": "Cerberus112", + "id": 47566336, + "node_id": "MDQ6VXNlcjQ3NTY2MzM2", + "avatar_url": "https://avatars.githubusercontent.com/u/47566336?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Cerberus112", + "html_url": "https://github.com/Cerberus112", + "followers_url": "https://api.github.com/users/Cerberus112/followers", + "following_url": "https://api.github.com/users/Cerberus112/following{/other_user}", + "gists_url": "https://api.github.com/users/Cerberus112/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Cerberus112/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Cerberus112/subscriptions", + "organizations_url": "https://api.github.com/users/Cerberus112/orgs", + "repos_url": "https://api.github.com/users/Cerberus112/repos", + "events_url": "https://api.github.com/users/Cerberus112/events{/privacy}", + "received_events_url": "https://api.github.com/users/Cerberus112/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": { + "login": "craig-rueda", + "id": 2595291, + "node_id": "MDQ6VXNlcjI1OTUyOTE=", + "avatar_url": "https://avatars.githubusercontent.com/u/2595291?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/craig-rueda", + "html_url": "https://github.com/craig-rueda", + "followers_url": "https://api.github.com/users/craig-rueda/followers", + "following_url": "https://api.github.com/users/craig-rueda/following{/other_user}", + "gists_url": "https://api.github.com/users/craig-rueda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/craig-rueda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/craig-rueda/subscriptions", + "organizations_url": "https://api.github.com/users/craig-rueda/orgs", + "repos_url": "https://api.github.com/users/craig-rueda/repos", + "events_url": "https://api.github.com/users/craig-rueda/events{/privacy}", + "received_events_url": "https://api.github.com/users/craig-rueda/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "craig-rueda", + "id": 2595291, + "node_id": "MDQ6VXNlcjI1OTUyOTE=", + "avatar_url": "https://avatars.githubusercontent.com/u/2595291?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/craig-rueda", + "html_url": "https://github.com/craig-rueda", + "followers_url": "https://api.github.com/users/craig-rueda/followers", + "following_url": "https://api.github.com/users/craig-rueda/following{/other_user}", + "gists_url": "https://api.github.com/users/craig-rueda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/craig-rueda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/craig-rueda/subscriptions", + "organizations_url": "https://api.github.com/users/craig-rueda/orgs", + "repos_url": "https://api.github.com/users/craig-rueda/repos", + "events_url": "https://api.github.com/users/craig-rueda/events{/privacy}", + "received_events_url": "https://api.github.com/users/craig-rueda/received_events", + "type": "User", + "site_admin": false + }, + { + "login": "villebro", + "id": 33317356, + "node_id": "MDQ6VXNlcjMzMzE3MzU2", + "avatar_url": "https://avatars.githubusercontent.com/u/33317356?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/villebro", + "html_url": "https://github.com/villebro", + "followers_url": "https://api.github.com/users/villebro/followers", + "following_url": "https://api.github.com/users/villebro/following{/other_user}", + "gists_url": "https://api.github.com/users/villebro/gists{/gist_id}", + "starred_url": "https://api.github.com/users/villebro/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/villebro/subscriptions", + "organizations_url": "https://api.github.com/users/villebro/orgs", + "repos_url": "https://api.github.com/users/villebro/repos", + "events_url": "https://api.github.com/users/villebro/events{/privacy}", + "received_events_url": "https://api.github.com/users/villebro/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": null, + "comments": 2, + "created_at": "2024-02-19T14:30:12Z", + "updated_at": "2024-02-21T09:34:19Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "### Bug description\r\n\r\nCache warm-up is not functioning when configured using the latest version (3.1.1rc1) and the previous one (3.1.0) in kubernetes enviroment (with Helm chart version 0.2.15 or earlier).\r\n\r\nWhen the task is triggered, logs of superset worker throws 308 error trying to request the API endpoint.\r\n\r\n\r\nNote: Reports are working correctly on the same worker.\r\n\r\n### How to reproduce the bug\r\n\r\n1. Apply cache warm-up config in kubernetes enviroment\r\n2. Review the logs of superset worker\r\n\r\n### Screenshots/recordings\r\n\r\n_No response_\r\n\r\n### Superset version\r\n\r\nmaster / latest-dev\r\n\r\n### Python version\r\n\r\n3.9\r\n\r\n### Node version\r\n\r\n16\r\n\r\n### Browser\r\n\r\nChrome\r\n\r\n### Additional context\r\n\r\nThe values.yalm (cache warm-up configs):\r\n\r\n```\r\n celery_conf: |\r\n from celery.schedules import crontab\r\n class CeleryConfig:\r\n broker_url = f\"redis://{env('REDIS_HOST')}:{env('REDIS_PORT')}/0\"\r\n imports = (\r\n \"superset.sql_lab\",\r\n \"superset.tasks.cache\",\r\n \"superset.tasks.scheduler\",\r\n )\r\n result_backend = f\"redis://{env('REDIS_HOST')}:{env('REDIS_PORT')}/0\"\r\n task_annotations = {\r\n \"sql_lab.get_sql_results\": {\r\n \"rate_limit\": \"100/s\",\r\n },\r\n }\r\n beat_schedule = {\r\n \"reports.scheduler\": {\r\n \"task\": \"reports.scheduler\",\r\n \"schedule\": crontab(minute=\"*\", hour=\"*\"),\r\n },\r\n \"reports.prune_log\": {\r\n \"task\": \"reports.prune_log\",\r\n 'schedule': crontab(minute=0, hour=0),\r\n },\r\n 'cache-warmup-hourly': {\r\n \"task\": \"cache-warmup\",\r\n \"schedule\": crontab(minute=\"*/2\", hour=\"*\"), ## for testing\r\n \"kwargs\": {\r\n \"strategy_name\": \"dummy\"\r\n },\r\n }\r\n }\r\n CELERY_CONFIG = CeleryConfig\r\n THUMBNAIL_SELENIUM_USER = \"admin\"\r\n```\r\n\r\nSuperset worker logs:\r\n```\r\n[2024-02-19 14:26:00,227: INFO/ForkPoolWorker-1] fetch_url[ecc6c59f-1a81-472c-bb3c-25daf1ccb203]: Fetching http://url.of.my.site/superset/warm_up_cache/ with payload {\"chart_id\": 43}\r\n[2024-02-19` 14:22:00,263: ERROR/ForkPoolWorker-3] fetch_url[ecc6c59f-1a81-472c-bb3c-25daf1ccb203]: Error warming up cache!\r\nTraceback (most recent call last):\r\n File \"/app/superset/tasks/cache.py\", line 242, in fetch_url\r\n response = request.urlopen( # pylint: disable=consider-using-with\r\n File \"/usr/local/lib/python3.9/urllib/request.py\", line 214, in urlopen\r\n return opener.open(url, data, timeout)\r\n File \"/usr/local/lib/python3.9/urllib/request.py\", line 523, in open\r\n response = meth(req, response)\r\n File \"/usr/local/lib/python3.9/urllib/request.py\", line 632, in http_response\r\n response = self.parent.error(\r\n File \"/usr/local/lib/python3.9/urllib/request.py\", line 561, in error\r\n return self._call_chain(*args)\r\n File \"/usr/local/lib/python3.9/urllib/request.py\", line 494, in _call_chain\r\n result = func(*args)\r\n File \"/usr/local/lib/python3.9/urllib/request.py\", line 641, in http_error_default\r\n raise HTTPError(req.full_url, code, msg, hdrs, fp)\r\nurllib.error.HTTPError: HTTP Error 308: Permanent Redirect\r\n```\r\n\r\n### Checklist\r\n\r\n- [X] I have searched Superset docs and Slack and didn't find a solution to my problem.\r\n- [X] I have searched the GitHub issue tracker and didn't find a similar bug report.\r\n- [x] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the \"additional context\" section.", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27160/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27160/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27155", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27155/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27155/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27155/events", + "html_url": "https://github.com/apache/superset/issues/27155", + "id": 2141915818, + "node_id": "I_kwDOAlosUs5_qwqq", + "number": 27155, + "title": "Report&Alert Format", + "user": { + "login": "liangliangGit", + "id": 35413857, + "node_id": "MDQ6VXNlcjM1NDEzODU3", + "avatar_url": "https://avatars.githubusercontent.com/u/35413857?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/liangliangGit", + "html_url": "https://github.com/liangliangGit", + "followers_url": "https://api.github.com/users/liangliangGit/followers", + "following_url": "https://api.github.com/users/liangliangGit/following{/other_user}", + "gists_url": "https://api.github.com/users/liangliangGit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/liangliangGit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/liangliangGit/subscriptions", + "organizations_url": "https://api.github.com/users/liangliangGit/orgs", + "repos_url": "https://api.github.com/users/liangliangGit/repos", + "events_url": "https://api.github.com/users/liangliangGit/events{/privacy}", + "received_events_url": "https://api.github.com/users/liangliangGit/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 4, + "created_at": "2024-02-19T09:30:38Z", + "updated_at": "2024-02-23T03:16:31Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "## Screenshot\r\n\r\n![image](https://github.com/apache/superset/assets/35413857/500532b7-06a1-4231-839b-bb1aec7d21be)\r\n\r\n## Description\r\nIn the Apache Superset web interface, I have set D3Format for my data, which displays correctly on the web page. However, when I generate a report for a chart and specify text content, the data in the received email loses its formatting.\r\n\r\n## Design input\r\nI hope the following formatted content can also be realized in the text format of emails.\r\n.1s (12345.432 => 10k)\r\n.3s (12345.432 => 12.3k)\r\n.4r (12345.432 => 12350)\r\n \"+, (12345.432 => +12,345) \"\r\n$,.2f (12345.432 => $12,345.43)\r\nDuration in ms (66000 => 1m 6s)\r\nDuration in ms (1.40008 => 1ms 400µs 80ns)\r\n%d/%m/%Y | 14/01/2019\r\n%m/%d/%Y | 01/14/2019\r\n%Y-%m-%d | 2019-01-14\r\n%d-%m-%Y %H:%M:%S | 14-01-2019 01:32:10\r\n%H:%M:%S | 01:32:10\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27155/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27155/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27154", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27154/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27154/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27154/events", + "html_url": "https://github.com/apache/superset/pull/27154", + "id": 2141799439, + "node_id": "PR_kwDOAlosUs5nQf9A", + "number": 27154, + "title": "fix(import-datasources): Use \"admin\" user as default for importing datasources", + "user": { + "login": "ddxv", + "id": 7601451, + "node_id": "MDQ6VXNlcjc2MDE0NTE=", + "avatar_url": "https://avatars.githubusercontent.com/u/7601451?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ddxv", + "html_url": "https://github.com/ddxv", + "followers_url": "https://api.github.com/users/ddxv/followers", + "following_url": "https://api.github.com/users/ddxv/following{/other_user}", + "gists_url": "https://api.github.com/users/ddxv/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ddxv/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ddxv/subscriptions", + "organizations_url": "https://api.github.com/users/ddxv/orgs", + "repos_url": "https://api.github.com/users/ddxv/repos", + "events_url": "https://api.github.com/users/ddxv/events{/privacy}", + "received_events_url": "https://api.github.com/users/ddxv/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329203144, + "node_id": "MDU6TGFiZWwxMzI5MjAzMTQ0", + "url": "https://api.github.com/repos/apache/superset/labels/size/M", + "name": "size/M", + "color": "705FA3", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 7, + "created_at": "2024-02-19T08:29:46Z", + "updated_at": "2024-02-22T14:57:06Z", + "closed_at": null, + "author_association": "CONTRIBUTOR", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27154", + "html_url": "https://github.com/apache/superset/pull/27154", + "diff_url": "https://github.com/apache/superset/pull/27154.diff", + "patch_url": "https://github.com/apache/superset/pull/27154.patch", + "merged_at": null + }, + "body": "### SUMMARY\r\nThis is a potential fix for #17049 which prevents the use of CLI: `superset import-datasources` which appears to have been broken for for some time. Attempting to run `import-datasources` will result in a `NameError: user`.\r\n\r\nLooking at the history of `import-datasources` there used to be a --user which could be applied, but was removed. I saw though that other CLI functions use the following `g.user = security_manager.find_user(username=\"admin\")` to default to the admin user before the `security_manager` runs.\r\n\r\nPlease note, I'm new to Superset, so please help me check on whether using this is acceptable or an insecure workaround.\r\n\r\n### TESTING INSTRUCTIONS\r\n1) from CLI run: `superset import-datasources -p mydatasources.zip`\r\n\r\n### ADDITIONAL INFORMATION\r\n<!--- HINT: Include \"Fixes #nnn\" if you are fixing an existing issue -->\r\n- [x] Has associated issue: Fixes #17049\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27154/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27154/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27152", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27152/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27152/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27152/events", + "html_url": "https://github.com/apache/superset/pull/27152", + "id": 2141045180, + "node_id": "PR_kwDOAlosUs5nN_Dt", + "number": 27152, + "title": "feat: support image set for superset worker separately in helm chart", + "user": { + "login": "josedev-union", + "id": 70741025, + "node_id": "MDQ6VXNlcjcwNzQxMDI1", + "avatar_url": "https://avatars.githubusercontent.com/u/70741025?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/josedev-union", + "html_url": "https://github.com/josedev-union", + "followers_url": "https://api.github.com/users/josedev-union/followers", + "following_url": "https://api.github.com/users/josedev-union/following{/other_user}", + "gists_url": "https://api.github.com/users/josedev-union/gists{/gist_id}", + "starred_url": "https://api.github.com/users/josedev-union/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/josedev-union/subscriptions", + "organizations_url": "https://api.github.com/users/josedev-union/orgs", + "repos_url": "https://api.github.com/users/josedev-union/repos", + "events_url": "https://api.github.com/users/josedev-union/events{/privacy}", + "received_events_url": "https://api.github.com/users/josedev-union/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1329183122, + "node_id": "MDU6TGFiZWwxMzI5MTgzMTIy", + "url": "https://api.github.com/repos/apache/superset/labels/size/XS", + "name": "size/XS", + "color": "E2D8FF", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 2, + "created_at": "2024-02-18T15:35:43Z", + "updated_at": "2024-02-20T16:58:39Z", + "closed_at": null, + "author_association": "CONTRIBUTOR", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27152", + "html_url": "https://github.com/apache/superset/pull/27152", + "diff_url": "https://github.com/apache/superset/pull/27152.diff", + "patch_url": "https://github.com/apache/superset/pull/27152.patch", + "merged_at": null + }, + "body": "<!---\r\nPlease write the PR title following the conventions at https://www.conventionalcommits.org/en/v1.0.0/\r\nExample:\r\nfix(dashboard): load charts correctly\r\n-->\r\n\r\n### SUMMARY\r\n<!--- Describe the change below, including rationale and design decisions -->\r\nTo enable alerts and reports, i need to use dev image or custom built image for superset worker. This PR allows for users to use dev image only for worker.\r\n\r\n### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF\r\n<!--- Skip this if not applicable -->\r\n\r\n### TESTING INSTRUCTIONS\r\n<!--- Required! What steps can be taken to manually verify the changes? -->\r\n\r\n### ADDITIONAL INFORMATION\r\n<!--- Check any relevant boxes with \"x\" -->\r\n<!--- HINT: Include \"Fixes #nnn\" if you are fixing an existing issue -->\r\n- [ ] Has associated issue:\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27152/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27152/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/apache/superset/issues/27149", + "repository_url": "https://api.github.com/repos/apache/superset", + "labels_url": "https://api.github.com/repos/apache/superset/issues/27149/labels{/name}", + "comments_url": "https://api.github.com/repos/apache/superset/issues/27149/comments", + "events_url": "https://api.github.com/repos/apache/superset/issues/27149/events", + "html_url": "https://github.com/apache/superset/pull/27149", + "id": 2139908577, + "node_id": "PR_kwDOAlosUs5nKEga", + "number": 27149, + "title": "chore(tests): Remove ineffectual login", + "user": { + "login": "john-bodley", + "id": 4567245, + "node_id": "MDQ6VXNlcjQ1NjcyNDU=", + "avatar_url": "https://avatars.githubusercontent.com/u/4567245?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/john-bodley", + "html_url": "https://github.com/john-bodley", + "followers_url": "https://api.github.com/users/john-bodley/followers", + "following_url": "https://api.github.com/users/john-bodley/following{/other_user}", + "gists_url": "https://api.github.com/users/john-bodley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/john-bodley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/john-bodley/subscriptions", + "organizations_url": "https://api.github.com/users/john-bodley/orgs", + "repos_url": "https://api.github.com/users/john-bodley/repos", + "events_url": "https://api.github.com/users/john-bodley/events{/privacy}", + "received_events_url": "https://api.github.com/users/john-bodley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 1332384320, + "node_id": "MDU6TGFiZWwxMzMyMzg0MzIw", + "url": "https://api.github.com/repos/apache/superset/labels/size/XXL", + "name": "size/XXL", + "color": "5A30DA", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "comments": 2, + "created_at": "2024-02-17T09:05:22Z", + "updated_at": "2024-02-23T08:34:33Z", + "closed_at": null, + "author_association": "MEMBER", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/apache/superset/pulls/27149", + "html_url": "https://github.com/apache/superset/pull/27149", + "diff_url": "https://github.com/apache/superset/pull/27149.diff", + "patch_url": "https://github.com/apache/superset/pull/27149.patch", + "merged_at": null + }, + "body": "<!---\r\nPlease write the PR title following the conventions at https://www.conventionalcommits.org/en/v1.0.0/\r\nExample:\r\nfix(dashboard): load charts correctly\r\n-->\r\n\r\n### SUMMARY\r\n\r\nWhilst working on [[SIP-99B] Proposal for (re)defining a \"unit of work\"](https://github.com/apache/superset/issues/25108) I was running into an issue where (I thought) tests were failing due to an issue with the persistence of a logged in user whereas in actuality it was because I was missing the `Public` role.\r\n\r\nThe red herring was due to the slew of tests which don't interface with the test client \"logging\" in a user in the hope of persisting the logged in user to `g.user`. This is ineffectual outside of the client as the Flask globals only persist for the lifetime of the request, i.e., \r\n\r\n```python\r\n>>> from flask import g\r\n\r\n>>> self.login(username=\"admin\")\r\n>>> print(g.user)\r\n<flask_login.mixins.AnonymousUserMixin object at 0x160c48be0>\r\n```\r\n\r\nFlask-Login automatically restores `g.user` from that cookie if it is not in the session when dealing with requests from the client. The TL;DR is authenticating (logging in/logging out) the user is only effectual in the context of web requests via the client.\r\n\r\nThis PR removes any erroneous logins (and logouts)—determined by first eliminating all references and re-adding them for API related tests. It also cleans up any inconsistencies in how logging in occurs. I updated the `login()` method to remove the default `admin` username so now it's a required argument which aids with readability.\r\n\r\n### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF\r\n<!--- Skip this if not applicable -->\r\n\r\n### TESTING INSTRUCTIONS\r\n\r\nCI.\r\n\r\n### ADDITIONAL INFORMATION\r\n<!--- Check any relevant boxes with \"x\" -->\r\n<!--- HINT: Include \"Fixes #nnn\" if you are fixing an existing issue -->\r\n- [ ] Has associated issue:\r\n- [ ] Required feature flags:\r\n- [ ] Changes UI\r\n- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))\r\n - [ ] Migration is atomic, supports rollback & is backwards-compatible\r\n - [ ] Confirm DB migration upgrade and downgrade tested\r\n - [ ] Runtime estimates and downtime expectations provided\r\n- [ ] Introduces new feature or API\r\n- [ ] Removes existing feature or API\r\n", + "reactions": { + "url": "https://api.github.com/repos/apache/superset/issues/27149/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/apache/superset/issues/27149/timeline", + "performed_via_github_app": null, + "state_reason": null + } +] diff --git a/tests/fakes/github_response.json b/tests/fakes/github_pulls_response.json similarity index 100% rename from tests/fakes/github_response.json rename to tests/fakes/github_pulls_response.json