Open aibunny opened 3 months ago
To address the issue of fetching datasets from the Superset API and receiving an empty result list despite a successful status code, consider the following potential causes and solutions:
API Endpoint and Method: Verify you're using the correct API endpoint and HTTP method (GET) for fetching datasets. The issue might stem from an incorrect endpoint or parameters.
Permissions and Security: Even with an Admin role, check dataset-level permissions and visibility settings. Superset's security model, including the SupersetSecurityManager
, manages access at various levels. Ensure the Admin account has explicit permissions to view these datasets.
Filtering and Query Parameters: Incorrect or overly restrictive query parameters can lead to an empty dataset list. Review any filters or parameters you're applying to ensure they're not excluding your datasets.
Configuration Issues: There could be a setup or configuration issue within Superset that's preventing the datasets from being properly listed. This includes checking the version compatibility and ensuring datasets are correctly registered in the system.
Row Level Security (RLS): If RLS is configured, it could restrict dataset visibility based on applied rules. Verify if RLS settings are influencing the dataset availability.
API Version and Documentation: Ensure you're referencing the correct version of the API documentation for Superset version 4.0.1. API capabilities and endpoints may vary between versions.
If after checking these areas the issue persists, providing more details about the API call (endpoint, HTTP method, query parameters) and the configuration of the datasets you're attempting to fetch would be helpful for further diagnosis.
To continue the conversation, mention @dosu.
This isue happens even on fresh superset installation, even when there are no previously set access permissions or filters applied. I create the dataset/database using the same users I access the db with.
Considering the issue persists even on a fresh Superset installation without explicit filters or permissions set, it's important to delve deeper into potential causes:
Superset Logs: Start by examining the Superset server logs for any specific error messages or warnings related to dataset retrieval. These logs can provide valuable insights into underlying issues, such as database connectivity problems or configuration errors.
Implicit Filters: Superset might apply implicit filters to dataset queries based on access permissions, even in cases where explicit permissions haven't been set. Review the logic behind dataset access filters to ensure there isn't an unintended filter being applied.
Database Connectivity: Ensure that the Superset instance has proper connectivity to the database and the necessary permissions to access dataset information. This is crucial in a new installation where database connections might not be fully established.
Superset and Node Versions: Although your setup meets the basic compatibility requirements, consider updating Superset to the latest version and ensuring your Node version aligns with the recommended version for the best support and performance, especially if you're involved in frontend development.
If after these steps the issue remains unresolved, providing detailed information about your API requests (including headers and body) and any specific log entries from Superset related to this issue would be crucial for further diagnosis.
To continue the conversation, mention @dosu.
Everything works fine I get a 200 OK statu code on fetch and even when creating I don't encounter any errors the issue is only on fetching. It's weird that I'm experiencing this issue and yet the admin role has all get api permissions
To tackle the issue of receiving an empty result list when fetching datasets from the Superset API, despite a successful HTTP 200 OK status, let's focus on specific areas for troubleshooting:
API Endpoint and Query Parameters: Ensure you're using the correct API endpoint /api/v1/dataset/?q=${queryParams}
. Verify that the query parameters are correctly encoded and match your data's actual schema and database ID. Incorrect parameters can lead to no datasets being fetched.
Permissions Check: Double-check the permissions associated with the Admin account making the request. Even with an Admin role, there might be specific dataset-level permissions or visibility settings that need to be configured.
Inspect API Response Structure: The expected API response should include a count
and a result
array. If the structure of the response from your Superset version (4.0.1) differs, it could explain why the datasets aren't being listed as expected.
Review Superset Logs: Look into the Superset server logs for any warnings or errors related to dataset retrieval. These logs can offer clues about underlying issues, such as configuration errors or database connectivity problems.
Pagination and API Errors: If your approach involves pagination, ensure the logic correctly increments and fetches datasets. Also, use the SupersetApiError
class to handle and understand any API errors, focusing on errorType
and message
for insights into potential issues.
Superset and Node Versions: Consider updating to the latest Superset version and checking your Node version for compatibility, especially if you're encountering issues with the frontend.
By focusing on these specific areas, you should be able to diagnose and resolve the issue of fetching datasets. If the problem persists, providing more details about your API requests and any specific log entries related to this issue would be helpful for further assistance.
To continue the conversation, mention @dosu.
I don't incluse any query params when fetching, I am using superset 4.0.1. Here are my logs
superset_app | 2024-05-20T09:25:00.808419827Z 127.0.0.1 - - [20/May/2024:09:25:00 +0000] "GET /health HTTP/1.1" 200 2 "-" "curl/7.88.1"
superset_app | 2024-05-20T09:25:09.084175755Z 2024-05-20 09:25:09,083 INFO sqlalchemy.engine.Engine SELECT 1
superset_app | 2024-05-20T09:25:09.084281553Z 2024-05-20 09:25:09,083:INFO:sqlalchemy.engine.Engine:SELECT 1
superset_app | 2024-05-20T09:25:09.084432747Z 2024-05-20 09:25:09,084 INFO sqlalchemy.engine.Engine [cached since 7451s ago] {}
superset_app | 2024-05-20T09:25:09.084541703Z 2024-05-20 09:25:09,084:INFO:sqlalchemy.engine.Engine:[cached since 7451s ago] {}
superset_app | 2024-05-20T09:25:09.086767841Z 2024-05-20 09:25:09,086:INFO:sqlalchemy.engine.Engine:BEGIN (implicit)
superset_app | 2024-05-20T09:25:09.086811485Z 2024-05-20 09:25:09,086 INFO sqlalchemy.engine.Engine BEGIN (implicit)
superset_app | 2024-05-20T09:25:09.087913587Z 2024-05-20 09:25:09,087 INFO sqlalchemy.engine.Engine SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.087946837Z FROM ab_role
superset_app | 2024-05-20T09:25:09.087961585Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.087996845Z 2024-05-20 09:25:09,087:INFO:sqlalchemy.engine.Engine:SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.088030726Z FROM ab_role
superset_app | 2024-05-20T09:25:09.088045978Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.089019444Z 2024-05-20 09:25:09,087 INFO sqlalchemy.engine.Engine [cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.089119192Z 2024-05-20 09:25:09,087:INFO:sqlalchemy.engine.Engine:[cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.092165741Z 2024-05-20 09:25:09,091 INFO sqlalchemy.engine.Engine SELECT ab_permission_view.id AS ab_permission_view_id, ab_permission_view.permission_id AS ab_permission_view_permission_id, ab_permission_view.view_menu_id AS ab_permission_view_view_menu_id, ab_permission_1.id AS ab_permission_1_id, ab_permission_1.name AS ab_permission_1_name, ab_view_menu_1.id AS ab_view_menu_1_id, ab_view_menu_1.name AS ab_view_menu_1_name
superset_app | 2024-05-20T09:25:09.092233967Z FROM ab_permission_view_role, ab_permission_view LEFT OUTER JOIN ab_permission AS ab_permission_1 ON ab_permission_1.id = ab_permission_view.permission_id LEFT OUTER JOIN ab_view_menu AS ab_view_menu_1 ON ab_view_menu_1.id = ab_permission_view.view_menu_id
superset_app | 2024-05-20T09:25:09.092251048Z WHERE %(param_1)s = ab_permission_view_role.role_id AND ab_permission_view.id = ab_permission_view_role.permission_view_id
superset_app | 2024-05-20T09:25:09.092245098Z 2024-05-20 09:25:09,091:INFO:sqlalchemy.engine.Engine:SELECT ab_permission_view.id AS ab_permission_view_id, ab_permission_view.permission_id AS ab_permission_view_permission_id, ab_permission_view.view_menu_id AS ab_permission_view_view_menu_id, ab_permission_1.id AS ab_permission_1_id, ab_permission_1.name AS ab_permission_1_name, ab_view_menu_1.id AS ab_view_menu_1_id, ab_view_menu_1.name AS ab_view_menu_1_name
superset_app | 2024-05-20T09:25:09.092293039Z FROM ab_permission_view_role, ab_permission_view LEFT OUTER JOIN ab_permission AS ab_permission_1 ON ab_permission_1.id = ab_permission_view.permission_id LEFT OUTER JOIN ab_view_menu AS ab_view_menu_1 ON ab_view_menu_1.id = ab_permission_view.view_menu_id
superset_app | 2024-05-20T09:25:09.092308481Z WHERE %(param_1)s = ab_permission_view_role.role_id AND ab_permission_view.id = ab_permission_view_role.permission_view_id
superset_app | 2024-05-20T09:25:09.093630661Z 2024-05-20 09:25:09,092 INFO sqlalchemy.engine.Engine [cached since 7290s ago] {'param_1': 2}
superset_app | 2024-05-20T09:25:09.093727746Z 2024-05-20 09:25:09,092:INFO:sqlalchemy.engine.Engine:[cached since 7290s ago] {'param_1': 2}
superset_app | 2024-05-20T09:25:09.147527839Z 2024-05-20 09:25:09,147 INFO sqlalchemy.engine.Engine SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.147567790Z FROM ab_role
superset_app | 2024-05-20T09:25:09.147583209Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.147966121Z 2024-05-20 09:25:09,147:INFO:sqlalchemy.engine.Engine:SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.147994596Z FROM ab_role
superset_app | 2024-05-20T09:25:09.148009187Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.148472139Z 2024-05-20 09:25:09,147 INFO sqlalchemy.engine.Engine [cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.149323220Z 2024-05-20 09:25:09,147:INFO:sqlalchemy.engine.Engine:[cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.152489191Z 2024-05-20 09:25:09,152 INFO sqlalchemy.engine.Engine SELECT ab_permission_view.id AS ab_permission_view_id, ab_permission_view.permission_id AS ab_permission_view_permission_id, ab_permission_view.view_menu_id AS ab_permission_view_view_menu_id, ab_permission_1.id AS ab_permission_1_id, ab_permission_1.name AS ab_permission_1_name, ab_view_menu_1.id AS ab_view_menu_1_id, ab_view_menu_1.name AS ab_view_menu_1_name
superset_app | 2024-05-20T09:25:09.152574081Z FROM ab_permission_view_role, ab_permission_view LEFT OUTER JOIN ab_permission AS ab_permission_1 ON ab_permission_1.id = ab_permission_view.permission_id LEFT OUTER JOIN ab_view_menu AS ab_view_menu_1 ON ab_view_menu_1.id = ab_permission_view.view_menu_id
superset_app | 2024-05-20T09:25:09.152593985Z WHERE %(param_1)s = ab_permission_view_role.role_id AND ab_permission_view.id = ab_permission_view_role.permission_view_id
superset_app | 2024-05-20T09:25:09.152818188Z 2024-05-20 09:25:09,152:INFO:sqlalchemy.engine.Engine:SELECT ab_permission_view.id AS ab_permission_view_id, ab_permission_view.permission_id AS ab_permission_view_permission_id, ab_permission_view.view_menu_id AS ab_permission_view_view_menu_id, ab_permission_1.id AS ab_permission_1_id, ab_permission_1.name AS ab_permission_1_name, ab_view_menu_1.id AS ab_view_menu_1_id, ab_view_menu_1.name AS ab_view_menu_1_name
superset_app | 2024-05-20T09:25:09.152868208Z FROM ab_permission_view_role, ab_permission_view LEFT OUTER JOIN ab_permission AS ab_permission_1 ON ab_permission_1.id = ab_permission_view.permission_id LEFT OUTER JOIN ab_view_menu AS ab_view_menu_1 ON ab_view_menu_1.id = ab_permission_view.view_menu_id
superset_app | 2024-05-20T09:25:09.152887398Z WHERE %(param_1)s = ab_permission_view_role.role_id AND ab_permission_view.id = ab_permission_view_role.permission_view_id
superset_app | 2024-05-20T09:25:09.154038411Z 2024-05-20 09:25:09,153 INFO sqlalchemy.engine.Engine [cached since 7290s ago] {'param_1': 2}
superset_app | 2024-05-20T09:25:09.154426502Z 2024-05-20 09:25:09,153:INFO:sqlalchemy.engine.Engine:[cached since 7290s ago] {'param_1': 2}
superset_app | 2024-05-20T09:25:09.168086308Z 2024-05-20 09:25:09,167 INFO sqlalchemy.engine.Engine SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.168121818Z FROM ab_role
superset_app | 2024-05-20T09:25:09.168129160Z 2024-05-20 09:25:09,167:INFO:sqlalchemy.engine.Engine:SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.168171896Z FROM ab_role
superset_app | 2024-05-20T09:25:09.168188402Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.168137020Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.169458162Z 2024-05-20 09:25:09,168:INFO:sqlalchemy.engine.Engine:[cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.169544674Z 2024-05-20 09:25:09,168 INFO sqlalchemy.engine.Engine [cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.176665307Z 2024-05-20 09:25:09,171 INFO sqlalchemy.engine.Engine SELECT ab_view_menu.name AS ab_view_menu_name
superset_app | 2024-05-20T09:25:09.176703096Z FROM ab_view_menu JOIN ab_permission_view ON ab_view_menu.id = ab_permission_view.view_menu_id JOIN ab_permission ON ab_permission.id = ab_permission_view.permission_id JOIN ab_permission_view_role ON ab_permission_view.id = ab_permission_view_role.permission_view_id JOIN ab_role ON ab_role.id = ab_permission_view_role.role_id
superset_app | 2024-05-20T09:25:09.176721402Z WHERE ab_role.id = %(id_1)s AND ab_permission.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.176735589Z 2024-05-20 09:25:09,172 INFO sqlalchemy.engine.Engine [cached since 7049s ago] {'id_1': 2, 'name_1': 'database_access'}
superset_app | 2024-05-20T09:25:09.176670684Z 2024-05-20 09:25:09,171:INFO:sqlalchemy.engine.Engine:SELECT ab_view_menu.name AS ab_view_menu_name
superset_app | 2024-05-20T09:25:09.176809512Z FROM ab_view_menu JOIN ab_permission_view ON ab_view_menu.id = ab_permission_view.view_menu_id JOIN ab_permission ON ab_permission.id = ab_permission_view.permission_id JOIN ab_permission_view_role ON ab_permission_view.id = ab_permission_view_role.permission_view_id JOIN ab_role ON ab_role.id = ab_permission_view_role.role_id
superset_app | 2024-05-20T09:25:09.176839185Z WHERE ab_role.id = %(id_1)s AND ab_permission.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.176853579Z 2024-05-20 09:25:09,172:INFO:sqlalchemy.engine.Engine:[cached since 7049s ago] {'id_1': 2, 'name_1': 'database_access'}
superset_app | 2024-05-20T09:25:09.177735287Z 2024-05-20 09:25:09,176 INFO sqlalchemy.engine.Engine SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.177979501Z FROM ab_role
superset_app | 2024-05-20T09:25:09.178003049Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.177847247Z 2024-05-20 09:25:09,176:INFO:sqlalchemy.engine.Engine:SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.178037798Z FROM ab_role
superset_app | 2024-05-20T09:25:09.178051919Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.178310910Z 2024-05-20 09:25:09,177 INFO sqlalchemy.engine.Engine [cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.178404801Z 2024-05-20 09:25:09,177:INFO:sqlalchemy.engine.Engine:[cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.182469547Z 2024-05-20 09:25:09,182:INFO:sqlalchemy.engine.Engine:SELECT ab_view_menu.name AS ab_view_menu_name
superset_app | 2024-05-20T09:25:09.182503458Z FROM ab_view_menu JOIN ab_permission_view ON ab_view_menu.id = ab_permission_view.view_menu_id JOIN ab_permission ON ab_permission.id = ab_permission_view.permission_id JOIN ab_permission_view_role ON ab_permission_view.id = ab_permission_view_role.permission_view_id JOIN ab_role ON ab_role.id = ab_permission_view_role.role_id
superset_app | 2024-05-20T09:25:09.182519337Z WHERE ab_role.id = %(id_1)s AND ab_permission.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.182560788Z 2024-05-20 09:25:09,182 INFO sqlalchemy.engine.Engine SELECT ab_view_menu.name AS ab_view_menu_name
superset_app | 2024-05-20T09:25:09.182609654Z FROM ab_view_menu JOIN ab_permission_view ON ab_view_menu.id = ab_permission_view.view_menu_id JOIN ab_permission ON ab_permission.id = ab_permission_view.permission_id JOIN ab_permission_view_role ON ab_permission_view.id = ab_permission_view_role.permission_view_id JOIN ab_role ON ab_role.id = ab_permission_view_role.role_id
superset_app | 2024-05-20T09:25:09.182626281Z WHERE ab_role.id = %(id_1)s AND ab_permission.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.183268197Z 2024-05-20 09:25:09,182:INFO:sqlalchemy.engine.Engine:[cached since 7049s ago] {'id_1': 2, 'name_1': 'datasource_access'}
superset_app | 2024-05-20T09:25:09.183452628Z 2024-05-20 09:25:09,182 INFO sqlalchemy.engine.Engine [cached since 7049s ago] {'id_1': 2, 'name_1': 'datasource_access'}
superset_app | 2024-05-20T09:25:09.188563846Z 2024-05-20 09:25:09,188 INFO sqlalchemy.engine.Engine SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.188599953Z FROM ab_role
superset_app | 2024-05-20T09:25:09.188614972Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.188943764Z 2024-05-20 09:25:09,188:INFO:sqlalchemy.engine.Engine:SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.188975006Z FROM ab_role
superset_app | 2024-05-20T09:25:09.188989159Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.190034350Z 2024-05-20 09:25:09,189 INFO sqlalchemy.engine.Engine [cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.190294886Z 2024-05-20 09:25:09,189:INFO:sqlalchemy.engine.Engine:[cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.193590321Z 2024-05-20 09:25:09,193 INFO sqlalchemy.engine.Engine SELECT ab_view_menu.name AS ab_view_menu_name
superset_app | 2024-05-20T09:25:09.193647244Z FROM ab_view_menu JOIN ab_permission_view ON ab_view_menu.id = ab_permission_view.view_menu_id JOIN ab_permission ON ab_permission.id = ab_permission_view.permission_id JOIN ab_permission_view_role ON ab_permission_view.id = ab_permission_view_role.permission_view_id JOIN ab_role ON ab_role.id = ab_permission_view_role.role_id
superset_app | 2024-05-20T09:25:09.193666240Z WHERE ab_role.id = %(id_1)s AND ab_permission.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.194339982Z 2024-05-20 09:25:09,193:INFO:sqlalchemy.engine.Engine:SELECT ab_view_menu.name AS ab_view_menu_name
superset_app | 2024-05-20T09:25:09.194372465Z FROM ab_view_menu JOIN ab_permission_view ON ab_view_menu.id = ab_permission_view.view_menu_id JOIN ab_permission ON ab_permission.id = ab_permission_view.permission_id JOIN ab_permission_view_role ON ab_permission_view.id = ab_permission_view_role.permission_view_id JOIN ab_role ON ab_role.id = ab_permission_view_role.role_id
superset_app | 2024-05-20T09:25:09.194388701Z WHERE ab_role.id = %(id_1)s AND ab_permission.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.195464118Z 2024-05-20 09:25:09,194 INFO sqlalchemy.engine.Engine [cached since 7049s ago] {'id_1': 2, 'name_1': 'schema_access'}
superset_app | 2024-05-20T09:25:09.195688044Z 2024-05-20 09:25:09,194:INFO:sqlalchemy.engine.Engine:[cached since 7049s ago] {'id_1': 2, 'name_1': 'schema_access'}
superset_app | 2024-05-20T09:25:09.205446052Z 2024-05-20 09:25:09,205 INFO sqlalchemy.engine.Engine SELECT count(*) AS count_1
superset_app | 2024-05-20T09:25:09.205510280Z FROM (SELECT tables.uuid AS tables_uuid, tables.created_on AS tables_created_on, tables.changed_on AS tables_changed_on, tables.id AS tables_id, tables.description AS tables_description, tables.default_endpoint AS tables_default_endpoint, tables.is_featured AS tables_is_featured, tables.filter_select_enabled AS tables_filter_select_enabled, tables."offset" AS tables_offset, tables.cache_timeout AS tables_cache_timeout, tables.params AS tables_params, tables.perm AS tables_perm, tables.schema_perm AS tables_schema_perm, tables.is_managed_externally AS tables_is_managed_externally, tables.external_url AS tables_external_url, tables.table_name AS tables_table_name, tables.main_dttm_col AS tables_main_dttm_col, tables.database_id AS tables_database_id, tables.fetch_values_predicate AS tables_fetch_values_predicate, tables.schema AS tables_schema, tables.sql AS tables_sql, tables.is_sqllab_view AS tables_is_sqllab_view, tables.template_params AS tables_template_params, tables.extra AS tables_extra, tables.normalize_columns AS tables_normalize_columns, tables.always_filter_main_dttm AS tables_always_filter_main_dttm, tables.created_by_fk AS tables_created_by_fk, tables.changed_by_fk AS tables_changed_by_fk, database.uuid AS database_uuid, database.created_on AS database_created_on, database.changed_on AS database_changed_on, database.id AS database_id, database.verbose_name AS database_verbose_name, database.database_name AS database_database_name, database.sqlalchemy_uri AS database_sqlalchemy_uri, database.password AS database_password, database.cache_timeout AS database_cache_timeout, database.select_as_create_table_as AS database_select_as_create_table_as, database.expose_in_sqllab AS database_expose_in_sqllab, database.configuration_method AS database_configuration_method, database.allow_run_async AS database_allow_run_async, database.allow_file_upload AS database_allow_file_upload, database.allow_ctas AS database_allow_ctas, database.allow_cvas AS database_allow_cvas, database.allow_dml AS database_allow_dml, database.force_ctas_schema AS database_force_ctas_schema, database.extra AS database_extra, database.encrypted_extra AS database_encrypted_extra, database.impersonate_user AS database_impersonate_user, database.server_cert AS database_server_cert, database.is_managed_externally AS database_is_managed_externally, database.external_url AS database_external_url, database.created_by_fk AS database_created_by_fk, database.changed_by_fk AS database_changed_by_fk, changed_by.id AS changed_by_id, changed_by.first_name AS changed_by_first_name, changed_by.last_name AS changed_by_last_name, changed_by.username AS changed_by_username, changed_by.password AS changed_by_password, changed_by.active AS changed_by_active, changed_by.email AS changed_by_email, changed_by.last_login AS changed_by_last_login, changed_by.login_count AS changed_by_login_count, changed_by.fail_login_count AS changed_by_fail_login_count, changed_by.created_on AS changed_by_created_on, changed_by.changed_on AS changed_by_changed_on, changed_by.created_by_fk AS changed_by_created_by_fk, changed_by.changed_by_fk AS changed_by_changed_by_fk
superset_app | 2024-05-20T09:25:09.205572365Z FROM tables LEFT OUTER JOIN dbs AS database ON tables.database_id = database.id LEFT OUTER JOIN ab_user AS changed_by ON tables.changed_by_fk = changed_by.id JOIN dbs ON dbs.id = tables.database_id
superset_app | 2024-05-20T09:25:09.205587784Z WHERE dbs.id IN (NULL) AND (1 != 1) OR tables.perm IN (NULL) AND (1 != 1) OR tables.schema_perm IN (NULL) AND (1 != 1)) AS anon_1
superset_app | 2024-05-20T09:25:09.205670825Z 2024-05-20 09:25:09,205:INFO:sqlalchemy.engine.Engine:SELECT count(*) AS count_1
superset_app | 2024-05-20T09:25:09.205705834Z FROM (SELECT tables.uuid AS tables_uuid, tables.created_on AS tables_created_on, tables.changed_on AS tables_changed_on, tables.id AS tables_id, tables.description AS tables_description, tables.default_endpoint AS tables_default_endpoint, tables.is_featured AS tables_is_featured, tables.filter_select_enabled AS tables_filter_select_enabled, tables."offset" AS tables_offset, tables.cache_timeout AS tables_cache_timeout, tables.params AS tables_params, tables.perm AS tables_perm, tables.schema_perm AS tables_schema_perm, tables.is_managed_externally AS tables_is_managed_externally, tables.external_url AS tables_external_url, tables.table_name AS tables_table_name, tables.main_dttm_col AS tables_main_dttm_col, tables.database_id AS tables_database_id, tables.fetch_values_predicate AS tables_fetch_values_predicate, tables.schema AS tables_schema, tables.sql AS tables_sql, tables.is_sqllab_view AS tables_is_sqllab_view, tables.template_params AS tables_template_params, tables.extra AS tables_extra, tables.normalize_columns AS tables_normalize_columns, tables.always_filter_main_dttm AS tables_always_filter_main_dttm, tables.created_by_fk AS tables_created_by_fk, tables.changed_by_fk AS tables_changed_by_fk, database.uuid AS database_uuid, database.created_on AS database_created_on, database.changed_on AS database_changed_on, database.id AS database_id, database.verbose_name AS database_verbose_name, database.database_name AS database_database_name, database.sqlalchemy_uri AS database_sqlalchemy_uri, database.password AS database_password, database.cache_timeout AS database_cache_timeout, database.select_as_create_table_as AS database_select_as_create_table_as, database.expose_in_sqllab AS database_expose_in_sqllab, database.configuration_method AS database_configuration_method, database.allow_run_async AS database_allow_run_async, database.allow_file_upload AS database_allow_file_upload, database.allow_ctas AS database_allow_ctas, database.allow_cvas AS database_allow_cvas, database.allow_dml AS database_allow_dml, database.force_ctas_schema AS database_force_ctas_schema, database.extra AS database_extra, database.encrypted_extra AS database_encrypted_extra, database.impersonate_user AS database_impersonate_user, database.server_cert AS database_server_cert, database.is_managed_externally AS database_is_managed_externally, database.external_url AS database_external_url, database.created_by_fk AS database_created_by_fk, database.changed_by_fk AS database_changed_by_fk, changed_by.id AS changed_by_id, changed_by.first_name AS changed_by_first_name, changed_by.last_name AS changed_by_last_name, changed_by.username AS changed_by_username, changed_by.password AS changed_by_password, changed_by.active AS changed_by_active, changed_by.email AS changed_by_email, changed_by.last_login AS changed_by_last_login, changed_by.login_count AS changed_by_login_count, changed_by.fail_login_count AS changed_by_fail_login_count, changed_by.created_on AS changed_by_created_on, changed_by.changed_on AS changed_by_changed_on, changed_by.created_by_fk AS changed_by_created_by_fk, changed_by.changed_by_fk AS changed_by_changed_by_fk
superset_app | 2024-05-20T09:25:09.205769178Z FROM tables LEFT OUTER JOIN dbs AS database ON tables.database_id = database.id LEFT OUTER JOIN ab_user AS changed_by ON tables.changed_by_fk = changed_by.id JOIN dbs ON dbs.id = tables.database_id
superset_app | 2024-05-20T09:25:09.205784780Z WHERE dbs.id IN (NULL) AND (1 != 1) OR tables.perm IN (NULL) AND (1 != 1) OR tables.schema_perm IN (NULL) AND (1 != 1)) AS anon_1
superset_app | 2024-05-20T09:25:09.206444832Z 2024-05-20 09:25:09,206 INFO sqlalchemy.engine.Engine [cached since 7049s ago] {}
superset_app | 2024-05-20T09:25:09.206771325Z 2024-05-20 09:25:09,206:INFO:sqlalchemy.engine.Engine:[cached since 7049s ago] {}
superset_app | 2024-05-20T09:25:09.222658913Z 2024-05-20 09:25:09,222 INFO sqlalchemy.engine.Engine SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.222717814Z FROM ab_role
superset_app | 2024-05-20T09:25:09.222735709Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.222895423Z 2024-05-20 09:25:09,222:INFO:sqlalchemy.engine.Engine:SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.222924726Z FROM ab_role
superset_app | 2024-05-20T09:25:09.222940235Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.223423912Z 2024-05-20 09:25:09,223 INFO sqlalchemy.engine.Engine [cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.224210038Z 2024-05-20 09:25:09,223:INFO:sqlalchemy.engine.Engine:[cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.226828467Z 2024-05-20 09:25:09,226 INFO sqlalchemy.engine.Engine SELECT ab_permission_view.id AS ab_permission_view_id, ab_permission_view.permission_id AS ab_permission_view_permission_id, ab_permission_view.view_menu_id AS ab_permission_view_view_menu_id, ab_permission_1.id AS ab_permission_1_id, ab_permission_1.name AS ab_permission_1_name, ab_view_menu_1.id AS ab_view_menu_1_id, ab_view_menu_1.name AS ab_view_menu_1_name
superset_app | 2024-05-20T09:25:09.226857999Z FROM ab_permission_view_role, ab_permission_view LEFT OUTER JOIN ab_permission AS ab_permission_1 ON ab_permission_1.id = ab_permission_view.permission_id LEFT OUTER JOIN ab_view_menu AS ab_view_menu_1 ON ab_view_menu_1.id = ab_permission_view.view_menu_id
superset_app | 2024-05-20T09:25:09.226873174Z WHERE %(param_1)s = ab_permission_view_role.role_id AND ab_permission_view.id = ab_permission_view_role.permission_view_id
superset_app | 2024-05-20T09:25:09.227010648Z 2024-05-20 09:25:09,226:INFO:sqlalchemy.engine.Engine:SELECT ab_permission_view.id AS ab_permission_view_id, ab_permission_view.permission_id AS ab_permission_view_permission_id, ab_permission_view.view_menu_id AS ab_permission_view_view_menu_id, ab_permission_1.id AS ab_permission_1_id, ab_permission_1.name AS ab_permission_1_name, ab_view_menu_1.id AS ab_view_menu_1_id, ab_view_menu_1.name AS ab_view_menu_1_name
superset_app | 2024-05-20T09:25:09.227031029Z FROM ab_permission_view_role, ab_permission_view LEFT OUTER JOIN ab_permission AS ab_permission_1 ON ab_permission_1.id = ab_permission_view.permission_id LEFT OUTER JOIN ab_view_menu AS ab_view_menu_1 ON ab_view_menu_1.id = ab_permission_view.view_menu_id
superset_app | 2024-05-20T09:25:09.227045430Z WHERE %(param_1)s = ab_permission_view_role.role_id AND ab_permission_view.id = ab_permission_view_role.permission_view_id
superset_app | 2024-05-20T09:25:09.227513509Z 2024-05-20 09:25:09,227 INFO sqlalchemy.engine.Engine [cached since 7290s ago] {'param_1': 2}
superset_app | 2024-05-20T09:25:09.228013713Z 2024-05-20 09:25:09,227:INFO:sqlalchemy.engine.Engine:[cached since 7290s ago] {'param_1': 2}
superset_app | 2024-05-20T09:25:09.239685500Z 2024-05-20 09:25:09,239 INFO sqlalchemy.engine.Engine SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.239729560Z FROM ab_role
superset_app | 2024-05-20T09:25:09.239746785Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.239900215Z 2024-05-20 09:25:09,239:INFO:sqlalchemy.engine.Engine:SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.239937857Z FROM ab_role
superset_app | 2024-05-20T09:25:09.239953212Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.240577281Z 2024-05-20 09:25:09,240:INFO:sqlalchemy.engine.Engine:[cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.240865357Z 2024-05-20 09:25:09,240 INFO sqlalchemy.engine.Engine [cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.243252872Z 2024-05-20 09:25:09,242 INFO sqlalchemy.engine.Engine SELECT ab_view_menu.name AS ab_view_menu_name
superset_app | 2024-05-20T09:25:09.243284484Z FROM ab_view_menu JOIN ab_permission_view ON ab_view_menu.id = ab_permission_view.view_menu_id JOIN ab_permission ON ab_permission.id = ab_permission_view.permission_id JOIN ab_permission_view_role ON ab_permission_view.id = ab_permission_view_role.permission_view_id JOIN ab_role ON ab_role.id = ab_permission_view_role.role_id
superset_app | 2024-05-20T09:25:09.243299699Z WHERE ab_role.id = %(id_1)s AND ab_permission.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.243586651Z 2024-05-20 09:25:09,242:INFO:sqlalchemy.engine.Engine:SELECT ab_view_menu.name AS ab_view_menu_name
superset_app | 2024-05-20T09:25:09.243650856Z FROM ab_view_menu JOIN ab_permission_view ON ab_view_menu.id = ab_permission_view.view_menu_id JOIN ab_permission ON ab_permission.id = ab_permission_view.permission_id JOIN ab_permission_view_role ON ab_permission_view.id = ab_permission_view_role.permission_view_id JOIN ab_role ON ab_role.id = ab_permission_view_role.role_id
superset_app | 2024-05-20T09:25:09.243668644Z WHERE ab_role.id = %(id_1)s AND ab_permission.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.244117970Z 2024-05-20 09:25:09,243:INFO:sqlalchemy.engine.Engine:[cached since 7049s ago] {'id_1': 2, 'name_1': 'database_access'}
superset_app | 2024-05-20T09:25:09.244103262Z 2024-05-20 09:25:09,243 INFO sqlalchemy.engine.Engine [cached since 7049s ago] {'id_1': 2, 'name_1': 'database_access'}
superset_app | 2024-05-20T09:25:09.248111066Z 2024-05-20 09:25:09,247 INFO sqlalchemy.engine.Engine SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.248147163Z FROM ab_role
superset_app | 2024-05-20T09:25:09.248161837Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.248449431Z 2024-05-20 09:25:09,247:INFO:sqlalchemy.engine.Engine:SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.248677261Z FROM ab_role
superset_app | 2024-05-20T09:25:09.249036944Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.249510466Z 2024-05-20 09:25:09,248:INFO:sqlalchemy.engine.Engine:[cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.248969726Z 2024-05-20 09:25:09,248 INFO sqlalchemy.engine.Engine [cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.251831620Z 2024-05-20 09:25:09,251 INFO sqlalchemy.engine.Engine SELECT ab_view_menu.name AS ab_view_menu_name
superset_app | 2024-05-20T09:25:09.251862124Z FROM ab_view_menu JOIN ab_permission_view ON ab_view_menu.id = ab_permission_view.view_menu_id JOIN ab_permission ON ab_permission.id = ab_permission_view.permission_id JOIN ab_permission_view_role ON ab_permission_view.id = ab_permission_view_role.permission_view_id JOIN ab_role ON ab_role.id = ab_permission_view_role.role_id
superset_app | 2024-05-20T09:25:09.251877529Z WHERE ab_role.id = %(id_1)s AND ab_permission.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.252063455Z 2024-05-20 09:25:09,251:INFO:sqlalchemy.engine.Engine:SELECT ab_view_menu.name AS ab_view_menu_name
superset_app | 2024-05-20T09:25:09.252084164Z FROM ab_view_menu JOIN ab_permission_view ON ab_view_menu.id = ab_permission_view.view_menu_id JOIN ab_permission ON ab_permission.id = ab_permission_view.permission_id JOIN ab_permission_view_role ON ab_permission_view.id = ab_permission_view_role.permission_view_id JOIN ab_role ON ab_role.id = ab_permission_view_role.role_id
superset_app | 2024-05-20T09:25:09.252122117Z WHERE ab_role.id = %(id_1)s AND ab_permission.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.252480392Z 2024-05-20 09:25:09,252 INFO sqlalchemy.engine.Engine [cached since 7049s ago] {'id_1': 2, 'name_1': 'datasource_access'}
superset_app | 2024-05-20T09:25:09.252852511Z 2024-05-20 09:25:09,252:INFO:sqlalchemy.engine.Engine:[cached since 7049s ago] {'id_1': 2, 'name_1': 'datasource_access'}
superset_app | 2024-05-20T09:25:09.257032461Z 2024-05-20 09:25:09,256 INFO sqlalchemy.engine.Engine SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.257061366Z FROM ab_role
superset_app | 2024-05-20T09:25:09.257075433Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.257284907Z 2024-05-20 09:25:09,256:INFO:sqlalchemy.engine.Engine:SELECT ab_role.id AS ab_role_id, ab_role.name AS ab_role_name
superset_app | 2024-05-20T09:25:09.257304972Z FROM ab_role
superset_app | 2024-05-20T09:25:09.257486285Z WHERE ab_role.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.258079813Z 2024-05-20 09:25:09,257:INFO:sqlalchemy.engine.Engine:[cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.258175880Z 2024-05-20 09:25:09,257 INFO sqlalchemy.engine.Engine [cached since 7451s ago] {'name_1': 'Public'}
superset_app | 2024-05-20T09:25:09.273713151Z 2024-05-20 09:25:09,260:INFO:sqlalchemy.engine.Engine:SELECT ab_view_menu.name AS ab_view_menu_name
superset_app | 2024-05-20T09:25:09.273752118Z FROM ab_view_menu JOIN ab_permission_view ON ab_view_menu.id = ab_permission_view.view_menu_id JOIN ab_permission ON ab_permission.id = ab_permission_view.permission_id JOIN ab_permission_view_role ON ab_permission_view.id = ab_permission_view_role.permission_view_id JOIN ab_role ON ab_role.id = ab_permission_view_role.role_id
superset_app | 2024-05-20T09:25:09.273768949Z WHERE ab_role.id = %(id_1)s AND ab_permission.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.273782936Z 2024-05-20 09:25:09,261:INFO:sqlalchemy.engine.Engine:[cached since 7049s ago] {'id_1': 2, 'name_1': 'schema_access'}
superset_app | 2024-05-20T09:25:09.273717860Z 2024-05-20 09:25:09,260 INFO sqlalchemy.engine.Engine SELECT ab_view_menu.name AS ab_view_menu_name
superset_app | 2024-05-20T09:25:09.273813199Z FROM ab_view_menu JOIN ab_permission_view ON ab_view_menu.id = ab_permission_view.view_menu_id JOIN ab_permission ON ab_permission.id = ab_permission_view.permission_id JOIN ab_permission_view_role ON ab_permission_view.id = ab_permission_view_role.permission_view_id JOIN ab_role ON ab_role.id = ab_permission_view_role.role_id
superset_app | 2024-05-20T09:25:09.273828187Z WHERE ab_role.id = %(id_1)s AND ab_permission.name = %(name_1)s
superset_app | 2024-05-20T09:25:09.273841834Z 2024-05-20 09:25:09,261 INFO sqlalchemy.engine.Engine [cached since 7049s ago] {'id_1': 2, 'name_1': 'schema_access'}
superset_app | 2024-05-20T09:25:09.275513074Z 2024-05-20 09:25:09,274 INFO sqlalchemy.engine.Engine SELECT anon_1.database_id AS anon_1_database_id, anon_1.database_database_name AS anon_1_database_database_name, anon_1.changed_by_id AS anon_1_changed_by_id, anon_1.changed_by_first_name AS anon_1_changed_by_first_name, anon_1.changed_by_last_name AS anon_1_changed_by_last_name, anon_1.tables_changed_on AS anon_1_tables_changed_on, anon_1.tables_id AS anon_1_tables_id, anon_1.tables_description AS anon_1_tables_description, anon_1.tables_default_endpoint AS anon_1_tables_default_endpoint, anon_1.tables_table_name AS anon_1_tables_table_name, anon_1.tables_database_id AS anon_1_tables_database_id, anon_1.tables_schema AS anon_1_tables_schema, anon_1.tables_sql AS anon_1_tables_sql, anon_1.tables_extra AS anon_1_tables_extra, anon_1.tables_changed_by_fk AS anon_1_tables_changed_by_fk, ab_user_1.id AS ab_user_1_id, ab_user_1.first_name AS ab_user_1_first_name, ab_user_1.last_name AS ab_user_1_last_name
superset_app | 2024-05-20T09:25:09.275653065Z FROM (SELECT tables.uuid AS tables_uuid, tables.created_on AS tables_created_on, tables.changed_on AS tables_changed_on, tables.id AS tables_id, tables.description AS tables_description, tables.default_endpoint AS tables_default_endpoint, tables.is_featured AS tables_is_featured, tables.filter_select_enabled AS tables_filter_select_enabled, tables."offset" AS tables_offset, tables.cache_timeout AS tables_cache_timeout, tables.params AS tables_params, tables.perm AS tables_perm, tables.schema_perm AS tables_schema_perm, tables.is_managed_externally AS tables_is_managed_externally, tables.external_url AS tables_external_url, tables.table_name AS tables_table_name, tables.main_dttm_col AS tables_main_dttm_col, tables.database_id AS tables_database_id, tables.fetch_values_predicate AS tables_fetch_values_predicate, tables.schema AS tables_schema, tables.sql AS tables_sql, tables.is_sqllab_view AS tables_is_sqllab_view, tables.template_params AS tables_template_params, tables.extra AS tables_extra, tables.normalize_columns AS tables_normalize_columns, tables.always_filter_main_dttm AS tables_always_filter_main_dttm, tables.created_by_fk AS tables_created_by_fk, tables.changed_by_fk AS tables_changed_by_fk, database.uuid AS database_uuid, database.created_on AS database_created_on, database.changed_on AS database_changed_on, database.id AS database_id, database.verbose_name AS database_verbose_name, database.database_name AS database_database_name, database.sqlalchemy_uri AS database_sqlalchemy_uri, database.password AS database_password, database.cache_timeout AS database_cache_timeout, database.select_as_create_table_as AS database_select_as_create_table_as, database.expose_in_sqllab AS database_expose_in_sqllab, database.configuration_method AS database_configuration_method, database.allow_run_async AS database_allow_run_async, database.allow_file_upload AS database_allow_file_upload, database.allow_ctas AS database_allow_ctas, database.allow_cvas AS database_allow_cvas, database.allow_dml AS database_allow_dml, database.force_ctas_schema AS database_force_ctas_schema, database.extra AS database_extra, database.encrypted_extra AS database_encrypted_extra, database.impersonate_user AS database_impersonate_user, database.server_cert AS database_server_cert, database.is_managed_externally AS database_is_managed_externally, database.external_url AS database_external_url, database.created_by_fk AS database_created_by_fk, database.changed_by_fk AS database_changed_by_fk, changed_by.id AS changed_by_id, changed_by.first_name AS changed_by_first_name, changed_by.last_name AS changed_by_last_name, changed_by.username AS changed_by_username, changed_by.password AS changed_by_password, changed_by.active AS changed_by_active, changed_by.email AS changed_by_email, changed_by.last_login AS changed_by_last_login, changed_by.login_count AS changed_by_login_count, changed_by.fail_login_count AS changed_by_fail_login_count, changed_by.created_on AS changed_by_created_on, changed_by.changed_on AS changed_by_changed_on, changed_by.created_by_fk AS changed_by_created_by_fk, changed_by.changed_by_fk AS changed_by_changed_by_fk
superset_app | 2024-05-20T09:25:09.275687994Z FROM tables LEFT OUTER JOIN dbs AS database ON tables.database_id = database.id LEFT OUTER JOIN ab_user AS changed_by ON tables.changed_by_fk = changed_by.id JOIN dbs ON dbs.id = tables.database_id
superset_app | 2024-05-20T09:25:09.275702635Z WHERE dbs.id IN (NULL) AND (1 != 1) OR tables.perm IN (NULL) AND (1 != 1) OR tables.schema_perm IN (NULL) AND (1 != 1)
superset_app | 2024-05-20T09:25:09.275735435Z LIMIT %(param_1)s) AS anon_1 LEFT OUTER JOIN (sqlatable_user AS sqlatable_user_1 JOIN ab_user AS ab_user_1 ON ab_user_1.id = sqlatable_user_1.user_id) ON anon_1.tables_id = sqlatable_user_1.table_id
superset_app | 2024-05-20T09:25:09.275750253Z 2024-05-20 09:25:09,275 INFO sqlalchemy.engine.Engine [cached since 7049s ago] {'param_1': 20}
superset_app | 2024-05-20T09:25:09.275624744Z 2024-05-20 09:25:09,274:INFO:sqlalchemy.engine.Engine:SELECT anon_1.database_id AS anon_1_database_id, anon_1.database_database_name AS anon_1_database_database_name, anon_1.changed_by_id AS anon_1_changed_by_id, anon_1.changed_by_first_name AS anon_1_changed_by_first_name, anon_1.changed_by_last_name AS anon_1_changed_by_last_name, anon_1.tables_changed_on AS anon_1_tables_changed_on, anon_1.tables_id AS anon_1_tables_id, anon_1.tables_description AS anon_1_tables_description, anon_1.tables_default_endpoint AS anon_1_tables_default_endpoint, anon_1.tables_table_name AS anon_1_tables_table_name, anon_1.tables_database_id AS anon_1_tables_database_id, anon_1.tables_schema AS anon_1_tables_schema, anon_1.tables_sql AS anon_1_tables_sql, anon_1.tables_extra AS anon_1_tables_extra, anon_1.tables_changed_by_fk AS anon_1_tables_changed_by_fk, ab_user_1.id AS ab_user_1_id, ab_user_1.first_name AS ab_user_1_first_name, ab_user_1.last_name AS ab_user_1_last_name
superset_app | 2024-05-20T09:25:09.275786260Z FROM (SELECT tables.uuid AS tables_uuid, tables.created_on AS tables_created_on, tables.changed_on AS tables_changed_on, tables.id AS tables_id, tables.description AS tables_description, tables.default_endpoint AS tables_default_endpoint, tables.is_featured AS tables_is_featured, tables.filter_select_enabled AS tables_filter_select_enabled, tables."offset" AS tables_offset, tables.cache_timeout AS tables_cache_timeout, tables.params AS tables_params, tables.perm AS tables_perm, tables.schema_perm AS tables_schema_perm, tables.is_managed_externally AS tables_is_managed_externally, tables.external_url AS tables_external_url, tables.table_name AS tables_table_name, tables.main_dttm_col AS tables_main_dttm_col, tables.database_id AS tables_database_id, tables.fetch_values_predicate AS tables_fetch_values_predicate, tables.schema AS tables_schema, tables.sql AS tables_sql, tables.is_sqllab_view AS tables_is_sqllab_view, tables.template_params AS tables_template_params, tables.extra AS tables_extra, tables.normalize_columns AS tables_normalize_columns, tables.always_filter_main_dttm AS tables_always_filter_main_dttm, tables.created_by_fk AS tables_created_by_fk, tables.changed_by_fk AS tables_changed_by_fk, database.uuid AS database_uuid, database.created_on AS database_created_on, database.changed_on AS database_changed_on, database.id AS database_id, database.verbose_name AS database_verbose_name, database.database_name AS database_database_name, database.sqlalchemy_uri AS database_sqlalchemy_uri, database.password AS database_password, database.cache_timeout AS database_cache_timeout, database.select_as_create_table_as AS database_select_as_create_table_as, database.expose_in_sqllab AS database_expose_in_sqllab, database.configuration_method AS database_configuration_method, database.allow_run_async AS database_allow_run_async, database.allow_file_upload AS database_allow_file_upload, database.allow_ctas AS database_allow_ctas, database.allow_cvas AS database_allow_cvas, database.allow_dml AS database_allow_dml, database.force_ctas_schema AS database_force_ctas_schema, database.extra AS database_extra, database.encrypted_extra AS database_encrypted_extra, database.impersonate_user AS database_impersonate_user, database.server_cert AS database_server_cert, database.is_managed_externally AS database_is_managed_externally, database.external_url AS database_external_url, database.created_by_fk AS database_created_by_fk, database.changed_by_fk AS database_changed_by_fk, changed_by.id AS changed_by_id, changed_by.first_name AS changed_by_first_name, changed_by.last_name AS changed_by_last_name, changed_by.username AS changed_by_username, changed_by.password AS changed_by_password, changed_by.active AS changed_by_active, changed_by.email AS changed_by_email, changed_by.last_login AS changed_by_last_login, changed_by.login_count AS changed_by_login_count, changed_by.fail_login_count AS changed_by_fail_login_count, changed_by.created_on AS changed_by_created_on, changed_by.changed_on AS changed_by_changed_on, changed_by.created_by_fk AS changed_by_created_by_fk, changed_by.changed_by_fk AS changed_by_changed_by_fk
superset_app | 2024-05-20T09:25:09.275963706Z FROM tables LEFT OUTER JOIN dbs AS database ON tables.database_id = database.id LEFT OUTER JOIN ab_user AS changed_by ON tables.changed_by_fk = changed_by.id JOIN dbs ON dbs.id = tables.database_id
superset_app | 2024-05-20T09:25:09.275982051Z WHERE dbs.id IN (NULL) AND (1 != 1) OR tables.perm IN (NULL) AND (1 != 1) OR tables.schema_perm IN (NULL) AND (1 != 1)
superset_app | 2024-05-20T09:25:09.275996071Z LIMIT %(param_1)s) AS anon_1 LEFT OUTER JOIN (sqlatable_user AS sqlatable_user_1 JOIN ab_user AS ab_user_1 ON ab_user_1.id = sqlatable_user_1.user_id) ON anon_1.tables_id = sqlatable_user_1.table_id
superset_app | 2024-05-20T09:25:09.276012906Z 2024-05-20 09:25:09,275:INFO:sqlalchemy.engine.Engine:[cached since 7049s ago] {'param_1': 20}
superset_app | 2024-05-20T09:25:09.282876036Z 2024-05-20 09:25:09,282:WARNING:root:Class 'werkzeug.local.LocalProxy' is not mapped
superset_app | 2024-05-20T09:25:09.284537411Z 2024-05-20 09:25:09,284 INFO sqlalchemy.engine.Engine INSERT INTO logs (action, slice_id, json, dttm, duration_ms) VALUES (%(action)s, %(slice_id)s, %(json)s, %(dttm)s, %(duration_ms)s) RETURNING logs.id
superset_app | 2024-05-20T09:25:09.284798395Z 2024-05-20 09:25:09,284:INFO:sqlalchemy.engine.Engine:INSERT INTO logs (action, slice_id, json, dttm, duration_ms) VALUES (%(action)s, %(slice_id)s, %(json)s, %(dttm)s, %(duration_ms)s) RETURNING logs.id
superset_app | 2024-05-20T09:25:09.285246977Z 2024-05-20 09:25:09,284 INFO sqlalchemy.engine.Engine [cached since 7049s ago] {'action': 'DatasetRestApi.get_list', 'slice_id': 0, 'json': '{"path": "/api/v1/dataset/", "rison": {}}', 'dttm': datetime.datetime(2024, 5, 20, 9, 25, 9, 284162), 'duration_ms': 151}
superset_app | 2024-05-20T09:25:09.285518130Z 2024-05-20 09:25:09,284:INFO:sqlalchemy.engine.Engine:[cached since 7049s ago] {'action': 'DatasetRestApi.get_list', 'slice_id': 0, 'json': '{"path": "/api/v1/dataset/", "rison": {}}', 'dttm': datetime.datetime(2024, 5, 20, 9, 25, 9, 284162), 'duration_ms': 151}
superset_app | 2024-05-20T09:25:09.287426559Z 2024-05-20 09:25:09,287 INFO sqlalchemy.engine.Engine COMMIT
superset_app | 2024-05-20T09:25:09.287668476Z 2024-05-20 09:25:09,287:INFO:sqlalchemy.engine.Engine:COMMIT
superset_app | 2024-05-20T09:25:09.292732857Z 197.248.89.7 - - [20/May/2024:09:25:09 +0000] "GET /api/v1/dataset/ HTTP/1.0" 200 427 "-" "PostmanRuntime/7.37.3"
superset_app | 2024-05-20T09:25:30.991534110Z 127.0.0.1 - - [20/May/2024:09:25:30 +0000] "GET /health HTTP/1.1" 200 2 "-" "curl/7.88.1"
Did you find any error?
The logs you've shared don't show any explicit errors related to fetching datasets, which suggests the issue might not be due to an error in the request itself but could be influenced by other factors. Here are some focused areas to investigate:
Permissions and Access Control: Ensure the Admin role has the appropriate permissions for accessing the datasets. This includes checking if the Admin role has database_access
, schema_access
, or datasource_access
permissions that match the datasets you're trying to access.
API Endpoint and Query Parameters: Double-check you're using the correct API endpoint and that the absence of query parameters is intended. A misconfiguration here could lead to unexpected results.
Pagination Logic and API Response: Verify the logic that handles the API response, especially if pagination is involved. Ensure that the response handling logic correctly processes the datasets count and iterates through pages if necessary.
Superset Configuration: Review any Superset configuration settings or feature flags that might affect dataset visibility or access control, even for Admin users.
Since the issue persists without clear errors and under Admin permissions, it points towards a more subtle configuration or permissions issue rather than a straightforward bug.
To continue the conversation, mention @dosu.
I'm also experiencing this very same issue. I return results when I call the API via the Swagger UI, but not from outside the swagger - authenticating via /login and getting a csrf token, then calling GET /dataset endpoint
Do this remove permissions from the public role and let them be blank that worked for me
On Mon, 8 Jul 2024, 19:08 Ian Klek, @.***> wrote:
I'm also experiencing this very same issue
— Reply to this email directly, view it on GitHub https://github.com/apache/superset/issues/28592#issuecomment-2214561430, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXMZT7QD66R7BMAI3RUSTS3ZLK2PNAVCNFSM6AAAAABH6FGFFKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJUGU3DCNBTGA . You are receiving this because you were mentioned.Message ID: @.***>
Do this remove permissions from the public role and let them be blank that worked for me … On Mon, 8 Jul 2024, 19:08 Ian Klek, @.> wrote: I'm also experiencing this very same issue — Reply to this email directly, view it on GitHub <#28592 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXMZT7QD66R7BMAI3RUSTS3ZLK2PNAVCNFSM6AAAAABH6FGFFKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJUGU3DCNBTGA . You are receiving this because you were mentioned.Message ID: @.>
You star!!! That worked 🎉 Thanks very much
Bug description
I recently created some datasets on superset using superset api using dataset endpoints, The datasets were created successfully but once I fetched them I got an empty result list. I fetch using the same user that created the dataset and the user has an Admin role.![image](https://github.com/apache/superset/assets/98146814/f8cc9ffa-869b-4784-97f6-1d6d54e33b08)
How to reproduce the bug
Screenshots/recordings
No response
Superset version
4.0.1
Python version
3.9
Node version
16
Browser
Chrome
Additional context
No response
Checklist