~/talk

Authorization in the GraphQL era

Talkat RailsConf 2020 CE · 2020-05-04..05-05· [graphql, security]
links:none on file
slides:none on file

Walks through concrete Rails examples and code: keeps Devise login outside the graph, passes current_user in context and shows using GraphQL Ruby visibility to hide fields, warns to disable schema introspection in prod. Demonstrates integrating CanCan/Pundit limitations and advocates Action Policy with its GraphQL helpers, adds a resolver callback that enforces policy checks (GitHub gist linked), covers data scoping, caching of rule evaluation for performance, and gives test strategies and pitfalls.

AI-written summary · about

  1. 0:00Intro
  2. 2:29TATARSTAN
  3. 3:50Standard Rails App
  4. 4:14Rails DHH way
  5. 4:28Standard* Rails App
  6. 5:14GraphQL Rails App
  7. 5:57GraphQL Internals
  8. 8:25Ensuring Authentication
  9. 9:07The One Entrypoint
  10. 11:26Visibility Extension
  11. 12:32Why Is Visibility Better? GraphQL Introspection
  12. 12:53Hide Parts of Your Schema
  13. 14:06Authorization is Flexible
  14. 14:24GraphQL Authorization
  15. 15:16Ability For Each Action ACCESS CONTROL LAYER
  16. 15:46Ability For Each Node
  17. 16:101+ Endpoints for Sets of Fields
  18. 16:29Yes, but...
  19. 17:01GraphQL Pro
  20. 17:23Who Has Heard about gem "action_policy"?
  21. 17:39gem "action_policy" The Authorization Framework
  22. 18:33Handling Exceptions
  23. 19:08Scoping Data
  24. 20:03UI/UX
  25. 21:33Hot Abilities
  26. 22:02Let's Cache it!
  27. 22:23Why We Are Talking Only About Reading Data?
  28. 22:46Mutations
  29. 23:13Ensuring Policies are Used
  30. 23:49Only Integration Tests
  31. 24:24Bad Auth Tests
  32. 25:20Conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.