feat: oauth grant management (#998)