diff --git a/docs/technical_documentation/how-tos/superset_row_level_security.rst b/docs/technical_documentation/how-tos/superset_row_level_security.rst index 617674e..93f8c1b 100644 --- a/docs/technical_documentation/how-tos/superset_row_level_security.rst +++ b/docs/technical_documentation/how-tos/superset_row_level_security.rst @@ -4,19 +4,37 @@ Superset extra row level security ********************************* To apply custom row level security filters to Superset, you can use the patch -`superset-row-level-security`. This patch expects a list of python dictionaries -with the following structure: - -.. code-block:: yaml - - superset-row-level-security: | - { - "schema": "{{ASPECTS_XAPI_DATABASE}}", - "table_name": "{{ASPECTS_XAPI_TABLE}}", - "role_name": "{{SUPERSET_ROLES_MAPPING.instructor}}", - "group_key": "{{SUPERSET_ROW_LEVEL_SECURITY_XAPI_GROUP_KEY}}", - "clause": {% raw %}'{{can_view_courses(current_username(), "splitByChar(\'/\', course_id)[-1]")}}',{% endraw %} - "filter_type": "Regular", - }, +``superset-row-level-security``. This patch can overwrite the `default list `_ of roles +or use ``append`` to add additional dictionaries. + +Overwrite existing: + +.. code-block:: + + SECURITY_FILTERS = [ + { + "schema": "{{ASPECTS_XAPI_DATABASE}}", + "table_name": "{{ASPECTS_XAPI_TABLE}}", + "role_name": "{{SUPERSET_ROLES_MAPPING.instructor}}", + "group_key": "{{SUPERSET_ROW_LEVEL_SECURITY_XAPI_GROUP_KEY}}", + "clause": {% raw %}'{{can_view_courses(current_username(), "splitByChar(\'/\', course_id)[-1]")}}',{% endraw %} + "filter_type": "Regular", + }, + ] + +Add to existing: + +.. code-block:: + + SECURITY_FILTERS.append( + { + "schema": "{{ASPECTS_XAPI_DATABASE}}", + "table_name": "{{ASPECTS_XAPI_TABLE}}", + "role_name": "{{SUPERSET_ROLES_MAPPING.instructor}}", + "group_key": "{{SUPERSET_ROW_LEVEL_SECURITY_XAPI_GROUP_KEY}}", + "clause": {% raw %}'{{can_view_courses(current_username(), "splitByChar(\'/\', course_id)[-1]")}}',{% endraw %} + "filter_type": "Regular", + }, + ) You can find more information about Superset RLSF in the `Superset documentation `_.