DO $$
DECLARE
schema_name INFORMATION_SCHEMA.routines.routine_schema%TYPE = 'api';
fns CURSOR FOR
select routine_name from INFORMATION_SCHEMA.routines WHERE routine_schema = schema_name;
BEGIN
FOR fn_record IN fns LOOP
EXECUTE 'grant execute on function ' || schema_name || '.' || fn_record.routine_name || ' to anonymous;';
END LOOP;
END$$;
Will expose all store functions from the api
public schema in the generated swagger/openapi specification from PostgREST/SubZero. Of course, ensure that all underneath private tables have row-level-security enabled to stay secure.