USACE / USACE/cwms-data-api

Authorization for Blobs/Objects

Open
#1,811 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Java
Stars
28
Forks
25
Avg merge
4d 22h
Merged PRs (30d)
20

Description

Is your feature request related to a problem? Please describe.

Add the ability set specific users to be able to read and/or write certain files via required login.

Describe the solution you'd like
Make use of the work on

  • #1733

To allow the blob endpoint (objects) to be readable and/or writable by specific user lists/accounts.

Would like to see a role(s) added to support managing these user groups.

Ideally the blobs could also be in groups as well so that this does not require a 1 to many relation ship and could be many to many.

I.e.

Object group / blobs
forecasting-reports

  • forecast.txt
  • forecast.dss
  • forecast.json
  • etc

Users List
Forecast Users

  • bob@bob.com
  • sally@sally.com

Object group can map to User List

forecast-reports <-> Forecast Users
or
forecast.txt -> Forecast Users
or
forecast-reports <- bob@bob.com

Describe alternatives you've considered
Add files to S3 directly or place them in the public dir in our repo. Currently all blobs are listable.

Should this be worked on now, or wait and be done with the authorization work?

Additional context
Users currently place files places on the site and benefit from lack of discovery for unlisted content.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing issue #1733 and the blob/object endpoint authorization work. Define how required login, read/write permissions, roles, and user or object groups should map before implementation. Done means specific users or groups can be granted read and/or write access to blobs while access and listing behavior are covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, authorization, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.