Skip to content

Commit 6c83ba4

Browse files
committed
add caching to 'get_opa_user_roles'
1 parent 7954d3a commit 6c83ba4

File tree

4 files changed

+10
-3
lines changed

4 files changed

+10
-3
lines changed

superset-opa-integration/superset-custom-opa.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ metadata:
88
}
99
spec:
1010
image:
11-
custom: docker.stackable.tech/sandbox/superset:4.0.2-stackable0.0.0-dev-opaV2
11+
custom: docker.stackable.tech/stackable/superset:4.0.2-stackable0.0.0-dev-opa
1212
productVersion: 4.0.2
1313
pullPolicy: Never
1414
clusterConfig:

superset/stackable/opa-authorizer/opa_authorizer/opa_manager.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# pylint: disable=missing-module-docstring
22
import logging
3+
import os
34

45
from http.client import HTTPException
56
from typing import List, Optional, Tuple
7+
from cachetools import cached, TTLCache
68
from flask import current_app, g
79
from flask_appbuilder.security.sqla.models import (
810
Role,
@@ -49,6 +51,10 @@ def get_user_roles(self, user: Optional[User] = None) -> List[Role]:
4951
return user.roles
5052

5153

54+
@cached(cache=TTLCache(
55+
maxsize = 1024,
56+
ttl = int(os.getenv('STACKABLE_OPA_CACHE_TTL', '10'))
57+
))
5258
def get_opa_user_roles(self, username: str) -> set[str]:
5359
"""
5460
Queries an Open Policy Agent instance for the roles of a given user.

superset/stackable/opa-authorizer/poetry.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

superset/stackable/opa-authorizer/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ apache-superset = "==4.0.2"
1111
flask = "^2.2.5"
1212
flask-appbuilder = "^4.4.1"
1313
opa-python-client = "^2.0.2"
14+
cachetools = "^5.5.0"
1415

1516

1617
[tool.poetry.group.dev.dependencies]

0 commit comments

Comments
 (0)