Initial commit of affinity groups-as-a-service.
Add mongo store, fixed scheme setting client -> server.
Copyleft all the things! Affinity is licensed under the AGPL 3.0.
Pulled out FileAuthStore for local client storage of logged-in oath
credentials.
Fixed routing of user API methods.
Using external affinity server name in Ubuntu SSO token for a more
appropriate namespace for authorization.
Added gitignore
Moved usso into providers subdir.
More flexible mongo store creation. Support wildcard user as member of
group.
Updated package paths.
Add role-based access control over resources to the storage interface.
Design changes (still unstable)
Introduce Principal interface to allow treating users and groups the same,
assigning either to a role-resource grant, etc.
Modelled RBAC, example backend storage with MongoDB.
Integrate RBAC into group management as an example and prove the design out.
Improve godocs.
Fixed Store interface & mongo impl to properly deal with multi-group membership.
Implement the rest of GroupService methods, adding storage concerns as needed.
Updated REST API server to delegate requests to GroupService.
Minor update to login subcommand to use relocated FileAuthStore.
Added some RBAC unit tests.
Add --service-admins command line option to 'affinity serve', so you
can bootstrap some service-role users into the system.
Fixed document struct field visibility for mgo reflection to work in mongo store.
Relocate in-memory store for unit test reuse.
Copyleft all the things.
Refactor basic store & RBAC tests for reuse among different storage impl.
Add mongo unit test suite, borrowing juju-core's testing infrastructure.
Fixed mongo store GroupsOf, scope visibility bug.
Reuse string set utilities.
Started higher-level documentation of affinity in package godocs.
Updated godoc.
Fixed Access.Can to follow wildcard grants.
Added API examples, README and dependencies.tsv.