You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
flesh out authz policy (Polar file) and associated Rust types; prototype by protecting a project-level endpoint (DELETE disk) (flesh out authz policy #405)
get feedback from product/customers about reduced-scope authz model. (2022-01-31 update: we've spoken with two prospects and both were fine with a static set of roles in the MVP. Both felt they were going to need it to be more flexible later.)
figure out authz from saga actions (e.g., need to construct an OpContext for the saga)
there should be no more uses of Datastore::pool() -- it should all be Datastore::pool_authorized
there should probably be no more uses of dropshot's make_request() family of functions in the test suite because everything requires authn except for the unauthorized test.
review use of public_error_from_diesel_pool -- that seems a lot less necessary post-authz because there's an authz variant
related to this: there may be a lot of code paths today that need to assign roles to things that currently don't. e.g., when you create a Project, you should get a role on it.
*_refetch() functions in datastore.rs could be provided by the lookup API (macro) instead (e.g., top-level functions on LookupPath that take the authz object and work basically the same way as a by-id lookup, but use the lookup_type of the original authz object for a not-found error and preserve the original authz object)
review TODO-security
review endpoints not tested by unauthorized.rs/unauthorized_coverage.rs. Currently that includes /session/me, /login, /logout, which are all somewhat special cases. For example, "logout" succeeds even if your authn failed. And "/session/me" will work even for unprivileged users. Maybe they should have their own separate tests?
(moving some notes from a local text file for better visibility)
authztypes could be more type-safe #848)public_error_from_diesel*#644OpContextDatastore::pool()-- it should all beDatastore::pool_authorizedmake_request()family of functions in the test suite because everything requires authn except for theunauthorizedtest.public_error_from_diesel_pool-- that seems a lot less necessary post-authz because there's an authz variantauthztypes could be more type-safe #848LookupPaththat take the authz object and work basically the same way as a by-id lookup, but use the lookup_type of the original authz object for a not-found error and preserve the original authz object)