diff --git a/label_studio/session_policy/api.py b/label_studio/session_policy/api.py index 9f88d5cef4e2..6d3056a1dbef 100644 --- a/label_studio/session_policy/api.py +++ b/label_studio/session_policy/api.py @@ -13,6 +13,14 @@ tags=['Session Policy'], summary='Retrieve Session Policy', description='Retrieve session timeout policy for the currently active organization.', + responses={ + 200: SessionTimeoutPolicySerializer, + }, + extensions={ + 'x-fern-sdk-group-name': 'session_policy', + 'x-fern-sdk-method-name': 'get', + 'x-fern-audiences': ['public'], + }, ), ) @method_decorator( @@ -21,6 +29,15 @@ tags=['Session Policy'], summary='Update Session Policy', description='Update session timeout policy for the currently active organization.', + request=SessionTimeoutPolicySerializer, + responses={ + 200: SessionTimeoutPolicySerializer, + }, + extensions={ + 'x-fern-sdk-group-name': 'session_policy', + 'x-fern-sdk-method-name': 'update', + 'x-fern-audiences': ['public'], + }, ), ) class SessionTimeoutPolicyView(generics.RetrieveUpdateAPIView): diff --git a/label_studio/tests/test_session_policy_sdk.py b/label_studio/tests/test_session_policy_sdk.py new file mode 100644 index 000000000000..6a60ebb400e8 --- /dev/null +++ b/label_studio/tests/test_session_policy_sdk.py @@ -0,0 +1,22 @@ +import pytest + +pytestmark = pytest.mark.django_db + +from label_studio_sdk.client import LabelStudio + + +def test_session_policy_sdk(django_live_url, business_client, fflag_feat_utc_46_session_timeout_policy_on): + ls = LabelStudio(base_url=django_live_url, api_key=business_client.api_key) + + policy = ls.session_policy.get() + + assert policy.max_session_age == 8 * 24 * 60 + assert policy.max_time_between_activity == 3 * 24 * 60 + + updated = ls.session_policy.update(max_session_age=60, max_time_between_activity=30) + assert updated.max_session_age == 60 + assert updated.max_time_between_activity == 30 + + fetched = ls.session_policy.get() + assert fetched.max_session_age == 60 + assert fetched.max_time_between_activity == 30 diff --git a/poetry.lock b/poetry.lock index 9ec8648a2720..553e58ba9aae 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2136,7 +2136,7 @@ optional = false python-versions = ">=3.9,<4" groups = ["main"] files = [ - {file = "60b2079d6a4cc0e77b478dfe94bc5790776ada17.zip", hash = "sha256:ac800f61f51773150f814d7add67289c0964b10ed6af778fe226c832305abe74"}, + {file = "48ad70466f4da6cf3735653ae3972ecbf475a85a.zip", hash = "sha256:0d9e305a20f7a36f3401e634ee202d6f80de0e3dbb3c08dd7dd3fd1296e1fe13"}, ] [package.dependencies] @@ -2164,7 +2164,7 @@ xmljson = "0.2.1" [package.source] type = "url" -url = "https://github.com/HumanSignal/label-studio-sdk/archive/60b2079d6a4cc0e77b478dfe94bc5790776ada17.zip" +url = "https://github.com/HumanSignal/label-studio-sdk/archive/48ad70466f4da6cf3735653ae3972ecbf475a85a.zip" [[package]] name = "launchdarkly-server-sdk" @@ -5109,4 +5109,4 @@ uwsgi = ["pyuwsgi", "uwsgitop"] [metadata] lock-version = "2.1" python-versions = ">=3.10,<4" -content-hash = "10eb33c451db6d38f113e6eae05183ae990fc165beeea9a629c67b2f1d67bcb9" +content-hash = "3ee436346c7634654d7505122f6f3ab608ff8742f11bbcbe007da81f8a0bc2ae" diff --git a/pyproject.toml b/pyproject.toml index 0ce2a8b1139f..f3326023e692 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -74,7 +74,7 @@ dependencies = [ "tldextract (>=5.1.3)", "uuid-utils (>=0.11.0,<1.0.0)", ## HumanSignal repo dependencies :start - "label-studio-sdk @ https://github.com/HumanSignal/label-studio-sdk/archive/60b2079d6a4cc0e77b478dfe94bc5790776ada17.zip", + "label-studio-sdk @ https://github.com/HumanSignal/label-studio-sdk/archive/48ad70466f4da6cf3735653ae3972ecbf475a85a.zip", ## HumanSignal repo dependencies :end ]