USACE / USACE/cwms-data-api

Additional Metadata Columns Overhaul

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

Nobody has claimed this yet.

discussion-point 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.
Users want to be able to store additional metadata for the following endpoints but not limited to:

timeseries
text-timeseries
blob

Mostly security related (Doesn't need to be)
Metadata could be entered-by or updated-at or (and this one is a bigger topic) ip-address

This becomes more critical when it is data entry by the public and/or CDA is a fully production product for read/write publicly.

Describe the solution you'd like
Would like to see the additional columns mentioned above added, possibly, at a lower level or injected on the fly via the auth middleware?

Does it make sense to change the underlying schema or somehow allow the auth middleware to control this.

Describe alternatives you've considered
Store this information in a JSON string along with all other metadata when

#1337

is resolved, this information would now be private

I do not recommend this as it can make things like gathering metrics more cumbersome and not easily queried. Also ends up being implemented, or not, by the enduser. Not really secure, just informative at that point.

Additional context
Working with @inguyen314 and possibly @tsressin, if they want to have public facing data entry apps. They may find themselves in a situation where you want to know who entered it and where from (geo-ip / region)

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

Review the timeseries, text-timeseries, and blob endpoint entry points, then inspect the auth middleware and underlying schema. Define which metadata fields are required and how they should be stored and queried; done means the implementation scope and ownership between the schema and middleware are agreed.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.