This needs a considerable amount of fleshing out and discussion still.
At a minimum, a base ACL filter that can intercept and return 401/403.
Should be able to look up the actual usernames and passwords from arbitrary sources. ThingFish::Authenticate? Some default supplied classes:
- Flat file
- LDAP
- The MetaStore itself
Later -- how to provide ACLs per resource - who's got read/write, how granular do we go (ACLs on metadata triples?)
If a user doesn't have read access to a particular resource, and a new upload would checksum match, need to upload anyway to avoid information leaking. Probably a lot more info leak kinds of paths to consider, as well.