feat: add auth admin mutations
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Mapping
|
||||
from typing import Any
|
||||
|
||||
|
||||
@@ -25,3 +26,27 @@ class RpcAdminClientMixin:
|
||||
"workflow.admin.auth.inspect",
|
||||
{"auth_ref": auth_ref},
|
||||
)
|
||||
|
||||
async def save_auth_record(
|
||||
self,
|
||||
*,
|
||||
auth_ref: str,
|
||||
scheme: str,
|
||||
payload: Mapping[str, object],
|
||||
metadata: Mapping[str, object] | None = None,
|
||||
) -> dict[str, Any]:
|
||||
return await self._call(
|
||||
"workflow.admin.auth.save",
|
||||
{
|
||||
"auth_ref": auth_ref,
|
||||
"scheme": scheme,
|
||||
"payload": dict(payload),
|
||||
"metadata": dict(metadata or {}),
|
||||
},
|
||||
)
|
||||
|
||||
async def delete_auth_record(self, auth_ref: str) -> dict[str, Any]:
|
||||
return await self._call(
|
||||
"workflow.admin.auth.delete",
|
||||
{"auth_ref": auth_ref},
|
||||
)
|
||||
|
||||
@@ -7,7 +7,7 @@ import fastapi_jsonrpc as jsonrpc
|
||||
from wf_server import WorkflowServer
|
||||
|
||||
from .errors import WorkflowRpcError, raise_workflow_rpc_error
|
||||
from .models import AdminEmptyParams, InspectAuthParams
|
||||
from .models import AdminEmptyParams, DeleteAuthParams, InspectAuthParams, SaveAuthParams
|
||||
from .params import RpcParams
|
||||
|
||||
|
||||
@@ -88,3 +88,44 @@ def register_methods(
|
||||
RuntimeError,
|
||||
) as exc:
|
||||
raise_workflow_rpc_error(exc)
|
||||
|
||||
@entrypoint.method(
|
||||
name="workflow.admin.auth.save",
|
||||
errors=[WorkflowRpcError],
|
||||
)
|
||||
async def workflow_admin_auth_save(
|
||||
params: SaveAuthParams = RpcParams(),
|
||||
) -> dict[str, Any]:
|
||||
try:
|
||||
return await server.admin.save_auth_record(
|
||||
auth_ref=params.auth_ref,
|
||||
scheme=params.scheme,
|
||||
payload=params.payload,
|
||||
metadata=params.metadata,
|
||||
)
|
||||
except (
|
||||
ValueError,
|
||||
KeyError,
|
||||
LookupError,
|
||||
FileNotFoundError,
|
||||
RuntimeError,
|
||||
) as exc:
|
||||
raise_workflow_rpc_error(exc)
|
||||
|
||||
@entrypoint.method(
|
||||
name="workflow.admin.auth.delete",
|
||||
errors=[WorkflowRpcError],
|
||||
)
|
||||
async def workflow_admin_auth_delete(
|
||||
params: DeleteAuthParams = RpcParams(),
|
||||
) -> dict[str, Any]:
|
||||
try:
|
||||
return await server.admin.delete_auth_record(params.auth_ref)
|
||||
except (
|
||||
ValueError,
|
||||
KeyError,
|
||||
LookupError,
|
||||
FileNotFoundError,
|
||||
RuntimeError,
|
||||
) as exc:
|
||||
raise_workflow_rpc_error(exc)
|
||||
|
||||
@@ -209,3 +209,14 @@ class ApplyRegistryChangesParams(RpcParamsModel):
|
||||
|
||||
class InspectAuthParams(RpcParamsModel):
|
||||
auth_ref: str = Field(min_length=1)
|
||||
|
||||
|
||||
class SaveAuthParams(RpcParamsModel):
|
||||
auth_ref: str = Field(min_length=1)
|
||||
scheme: str = Field(min_length=1)
|
||||
payload: dict[str, Any] = Field(default_factory=dict)
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class DeleteAuthParams(RpcParamsModel):
|
||||
auth_ref: str = Field(min_length=1)
|
||||
|
||||
Reference in New Issue
Block a user