We all want to produce code that is easy to test and refactor, and we have a number of design principles (such as "be modular" and "no globals") that help us do that.
In this talk I'll look at a very different approach to design -- a security-oriented approach using the Principle Of Least Authority and "capabilities",
and I'll show how a design driven by these considerations also leads to a robust and modular design.
I'll demonstrate how to design and use a capability based approach, how capabilities can be quickly combined and restricted easily,
how capabilities are a natural fit with a REST API that uses HATEAOS, and finally, how types can be used as access tokens.

The Call for Papers is now open for F# eXchange 2017! Submit your talk for the chance to join a stellar line-up of experts on stage. Find out more.

We all want to produce code that is easy to test and refactor, and we have a number of design principles (such as "be modular" and "no globals") that help us do that.
In this talk I'll look at a very different approach to design -- a security-oriented approach using the Principle Of Least Authority and "capabilities",
and I'll show how a design driven by these considerations also leads to a robust and modular design.
I'll demonstrate how to design and use a capability based approach, how capabilities can be quickly combined and restricted easily,
how capabilities are a natural fit with a REST API that uses HATEAOS, and finally, how types can be used as access tokens.

The Call for Papers is now open for F# eXchange 2017! Submit your talk for the chance to join a stellar line-up of experts on stage. Find out more.