Skip to content

Commit f22b20d

Browse files
Adding the inference grant (#475)
1 parent 1c68b5c commit f22b20d

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

livekit-api/livekit/api/access_token.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ class SIPGrants:
7676
call: bool = False
7777

7878

79+
@dataclasses.dataclass
80+
class InferenceGrants:
81+
# perform inference
82+
perform: bool = False
83+
84+
7985
@dataclasses.dataclass
8086
class Claims:
8187
identity: str = ""
@@ -84,6 +90,7 @@ class Claims:
8490
metadata: str = ""
8591
video: Optional[VideoGrants] = None
8692
sip: Optional[SIPGrants] = None
93+
inference: Optional[InferenceGrants] = None
8794
attributes: Optional[dict[str, str]] = None
8895
sha256: Optional[str] = None
8996
room_preset: Optional[str] = None
@@ -136,6 +143,10 @@ def with_sip_grants(self, grants: SIPGrants) -> "AccessToken":
136143
self.claims.sip = grants
137144
return self
138145

146+
def with_inference_grants(self, grants: InferenceGrants) -> "AccessToken":
147+
self.claims.inference = grants
148+
return self
149+
139150
def with_identity(self, identity: str) -> "AccessToken":
140151
self.identity = identity
141152
return self
@@ -225,11 +236,19 @@ def verify(self, token: str, *, verify_signature: bool = True) -> Claims:
225236
sip_dict = {k: v for k, v in sip_dict.items() if k in SIPGrants.__dataclass_fields__}
226237
sip = SIPGrants(**sip_dict)
227238

239+
inference_dict = claims.get("inference", dict())
240+
inference_dict = {camel_to_snake(k): v for k, v in inference_dict.items()}
241+
inference_dict = {
242+
k: v for k, v in inference_dict.items() if k in InferenceGrants.__dataclass_fields__
243+
}
244+
inference = InferenceGrants(**inference_dict)
245+
228246
grant_claims = Claims(
229247
identity=claims.get("sub", ""),
230248
name=claims.get("name", ""),
231249
video=video,
232250
sip=sip,
251+
inference=inference,
233252
attributes=claims.get("attributes", {}),
234253
metadata=claims.get("metadata", ""),
235254
sha256=claims.get("sha256", ""),

0 commit comments

Comments
 (0)