chore: fix regression on arguments not being found

This commit is contained in:
jamesread 2026-03-05 08:29:30 +00:00
parent 6e7f3b0823
commit b032ae5e5e
1 changed files with 9 additions and 4 deletions

View File

@ -466,15 +466,15 @@ func (api *oliveTinAPI) GetActionBinding(ctx ctx.Context, req *connect.Request[a
func (api *oliveTinAPI) getActionBindingResponse(user *authpublic.AuthenticatedUser, bindingId string) (*apiv1.GetActionBindingResponse, error) { func (api *oliveTinAPI) getActionBindingResponse(user *authpublic.AuthenticatedUser, bindingId string) (*apiv1.GetActionBindingResponse, error) {
binding := api.executor.FindBindingByID(bindingId) binding := api.executor.FindBindingByID(bindingId)
if binding == nil || binding.Action == nil { if binding == nil || binding.Action == nil {
return nil, connect.NewError(connect.CodeNotFound, fmt.Errorf("action with ID %s not found", bindingId)) return nil, connect.NewError(connect.CodeNotFound, fmt.Errorf("action with ID %s not found", bindingId))
} }
if !api.userCanViewAction(user, binding.Action) { if !api.userCanViewAction(user, binding.Action) {
return nil, connect.NewError(connect.CodePermissionDenied, fmt.Errorf("permission denied")) return nil, connect.NewError(connect.CodePermissionDenied, fmt.Errorf("permission denied"))
} }
return &apiv1.GetActionBindingResponse{ return &apiv1.GetActionBindingResponse{
Action: buildAction(binding, &DashboardRenderRequest{ Action: buildAction(binding, &DashboardRenderRequest{
cfg: api.cfg, cfg: api.cfg,
@ -689,8 +689,13 @@ It uses the same validation logic as the executor, including mangling argument
values (e.g., datetime formatting, checkbox title-to-value conversion). values (e.g., datetime formatting, checkbox title-to-value conversion).
*/ */
func (api *oliveTinAPI) argumentNotFoundForValidation(msg *apiv1.ValidateArgumentTypeRequest) bool { func (api *oliveTinAPI) argumentNotFoundForValidation(msg *apiv1.ValidateArgumentTypeRequest) bool {
if msg.BindingId == "" || msg.ArgumentName == "" {
return false
}
arg, _ := api.findArgumentForValidation(msg.BindingId, msg.ArgumentName) arg, _ := api.findArgumentForValidation(msg.BindingId, msg.ArgumentName)
return arg == nil && (msg.BindingId != "" || msg.ArgumentName != "")
return arg == nil
} }
func (api *oliveTinAPI) ValidateArgumentType(ctx ctx.Context, req *connect.Request[apiv1.ValidateArgumentTypeRequest]) (*connect.Response[apiv1.ValidateArgumentTypeResponse], error) { func (api *oliveTinAPI) ValidateArgumentType(ctx ctx.Context, req *connect.Request[apiv1.ValidateArgumentTypeRequest]) (*connect.Response[apiv1.ValidateArgumentTypeResponse], error) {