Skip to content

Conversation

@dbutenhof
Copy link
Member

@dbutenhof dbutenhof commented May 6, 2022

PBENCH-645

This change re-purposes the user.* Dataset Metadata namespace as a per-user key space, where each authenticated client with READ access to a given dataset will be able to write independent metadata attached to that dataset. (Only the owner has UPDATE access to change the "global" metadata keys in the "dashboard.*" namespace.)

At the Metadata internal class level, methods now allow specifying a User to associate each item of metadata. At the API level, the user is always the authenticated user (or None for only global metadata).

An unauthenticated client can ask for user.* keys, but the value will always be None as authenticated clients will never create global values for the user.* namespace and unauthenticated clients can't ever set metadata values.

@dbutenhof dbutenhof added Server Code Infrastructure Dashboard Of and relating to the Dashboard GUI API Of and relating to application programming interfaces to services and functions Users Of and relating to working with users. labels May 6, 2022
@dbutenhof dbutenhof self-assigned this May 6, 2022
@portante portante added this to the v0.72 milestone May 6, 2022
portante
portante previously approved these changes May 6, 2022
portante
portante previously approved these changes May 9, 2022
Copy link
Member

@webbnh webbnh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like this is a considerable departure from the previous vision of how the metadata namespaces would be used. The old model seemed pretty solid and comprehensive...whereas this seems like the new keys don't fit well and the change seems to remove support for third-party clients...am I misunderstanding this change?

Copy link
Member Author

@dbutenhof dbutenhof left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apparently I need to do some more noodling here. (Sigh.)

@dbutenhof dbutenhof marked this pull request as draft May 9, 2022 20:53
@dbutenhof dbutenhof marked this pull request as ready for review May 12, 2022 12:42
@dbutenhof dbutenhof requested review from portante and webbnh May 12, 2022 17:59
portante
portante previously approved these changes May 12, 2022
dbutenhof added a commit to dbutenhof/pbench that referenced this pull request May 13, 2022
PBENCH-445

I've been talking about this a long time; after pushing PR distributed-system-analysis#2826 which
will require rebuilding the DB, I figured I might as well try to take
this additional step at the same time.

There are a lot of changed files; most of the changes (including the
legacy test gold files) are small and straightforward.
@dbutenhof dbutenhof requested a review from portante May 13, 2022 15:07
Copy link
Member

@npalaska npalaska left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have one question

webbnh
webbnh previously approved these changes May 13, 2022
Copy link
Member

@webbnh webbnh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My brain is filling up, so I'm going to go ahead and post this now.

If I hit any issues with the tests, I'll post a follow-up.

Copy link
Member

@webbnh webbnh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found a few more things that you might want to consider (but, I also may have cast my net too wide...).

portante
portante previously approved these changes May 14, 2022
riya-17
riya-17 previously approved these changes May 16, 2022
dbutenhof added 3 commits May 16, 2022 10:16
PBENCH-645

This change repurposes the "user.*" Dataset Metadata namespace as a per-user
key space, where each authenticated client with READ access to a given dataset
will be able to write independent metadata attached to that dataset. (Only
the owner has UPDATE access to change the "global" metadata keys in the
"dashboard.*" namespace.)

At the Metadata internal class level, methods now allow specifying a
User to associate each item of metadata. At the API level, the user is
always the authenticated user (or None for only global metadata).

(An unauthenticated client can ask for `user.*` keys, but the value will
always be None as authenticated clients will never create global values
for the `user.*` namespace and unauthenticated clients can't ever set
metadata values.
dbutenhof added a commit to dbutenhof/pbench that referenced this pull request May 16, 2022
PBENCH-445

I've been talking about this a long time; after pushing PR distributed-system-analysis#2826 which
will require rebuilding the DB, I figured I might as well try to take
this additional step at the same time.

There are a lot of changed files; most of the changes (including the
legacy test gold files) are small and straightforward.
@dbutenhof dbutenhof requested review from npalaska, riya-17 and webbnh May 16, 2022 15:07
Copy link
Member

@webbnh webbnh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@dbutenhof dbutenhof merged commit eefd6ca into distributed-system-analysis:main May 17, 2022
dbutenhof added a commit to dbutenhof/pbench that referenced this pull request May 17, 2022
PBENCH-445

I've been talking about this a long time; after pushing PR distributed-system-analysis#2826 which
will require rebuilding the DB, I figured I might as well try to take
this additional step at the same time.

There are a lot of changed files; most of the changes (including the
legacy test gold files) are small and straightforward.
dbutenhof added a commit that referenced this pull request May 18, 2022
PBENCH-445

I've been talking about this a long time; after pushing PR #2826 which
will require rebuilding the DB, I figured I might as well try to take
this additional step at the same time.

There are a lot of changed files; most of the changes (including the
legacy test gold files) are small and straightforward.
@dbutenhof dbutenhof deleted the umeta branch March 16, 2023 21:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

API Of and relating to application programming interfaces to services and functions Code Infrastructure Dashboard Of and relating to the Dashboard GUI Server Users Of and relating to working with users.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants