Skip to content

Conversation

@g-despot
Copy link
Contributor

What's being changed:

New documentation for managing users and API keys in Weaviate.

Type of change:

  • Documentation updates (non-breaking change to fix/update documentation)

How Has This Been Tested?

  • GitHub action – automated build completed without errors
  • Local build - the site works as expected when running yarn start

@g-despot g-despot self-assigned this Mar 12, 2025
@g-despot g-despot changed the base branch from main to v1-30/main March 12, 2025 12:29
Copy link

@orca-security-eu orca-security-eu bot left a comment

Choose a reason for hiding this comment

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

Orca Security Scan Summary

Status Check Issues by priority
Passed Passed Infrastructure as Code high 0   medium 0   low 0   info 0 View in Orca
Passed Passed SAST high 0   medium 0   low 0   info 0 View in Orca
Passed Passed Secrets high 0   medium 0   low 0   info 0 View in Orca
Passed Passed Vulnerabilities high 0   medium 0   low 0   info 0 View in Orca

Copy link

@orca-security-eu orca-security-eu bot left a comment

Choose a reason for hiding this comment

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

Orca Security Scan Summary

Status Check Issues by priority
Passed Passed Secrets high 0   medium 0   low 0   info 0 View in Orca

@weaviate-git-bot
Copy link

Great to see you again! Thanks for the contribution.

beep boop - the Weaviate bot 👋🤖

PS:
Are you already a member of the Weaviate Slack channel?

@g-despot g-despot marked this pull request as ready for review March 26, 2025 12:31

In Weaviate, Role-based access control (RBAC) allows you to define roles and assign permissions to those roles. Users can then be assigned to roles and inherit the permissions associated with those roles.

On this page, you will find examples of how to programmatically **manage users** and their associated roles with Weaviate client libraries.
Copy link
Contributor

Choose a reason for hiding this comment

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

Hey @g-despot I think this was ported over from an earlier version, but maybe it could be reviewed once again.

Reading this page, I wonder if "User" here could be clarified to use the term "Database user" where applicable as Sebastian mentioned in our discussion, to contrast against "OIDC user".

Then, user could mean: Union[Database user, OIDC user]. Wdyt?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I agree, this could be a good place to introduce the different user types. I will also try to follow this naming convention where it makes sense Union[Database user, OIDC user]

<!-- NOTE: left out AUTHORIZATION_ADMINLIST_USERS to dissuade usage -->
<!-- TODO[g-despot]: Check if DB_DYNAMIC is renamed -->
Under the hood, Weaviate differentiates three types of users:
- `DB_DYNAMIC`: Database users that can be fully managed through the API.
Copy link
Contributor

Choose a reason for hiding this comment

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

You have a todo here, but just another reminder re: naming ;)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thank youuu :)


<ConfigureRbac />

## User management <i class="fas fa-user-edit"></i> {#user-management}
Copy link
Contributor

Choose a reason for hiding this comment

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

This is about the DB users, right?

Wdyt about a section like "Database user operations"? Reason being that 'manage' in "Manage users" of the page also seems to include updating user permissions

Copy link
Contributor Author

Choose a reason for hiding this comment

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

As the list_all command also concerns OIDC users I wouldn't necessarily name the whole section "database users". Maybe this could work:

  • User management
    • List all users
    • Create a database user
    • Delete a database user
    • Rotate database user API key


On this page, you will find examples of how to programmatically **manage users** and their associated roles with Weaviate client libraries.

import ConfigureRbac from '/_includes/configuration/configure-rbac.mdx';
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm a little unsure about this section. It feels like an incomplete set of steps for configuring RBAC.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Maybe it's not even needed on this page, will remove, but I would like to keep it on the "Manage roles" page as it's important to make the user aware of the user API being needed to assign roles to users.

In Weaviate, Role-based access control (RBAC) allows you to define roles and assign permissions to those roles. Users can then be assigned to roles and inherit the permissions associated with those roles.

On this page, you will find examples of how to programmatically **manage users** and their associated roles with Weaviate client libraries.

Copy link
Contributor

Choose a reason for hiding this comment

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

Wdyt about introducing the three user tiers up here for clarity? That sets up the rest of the sections.

  • DB_USER
  • DB_ENV_USER
  • OIDC


### List all users

This example shows how to get a list of all the users in Weaviate.
Copy link
Contributor

Choose a reason for hiding this comment

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

e.g. here, we would want to be clear what we mean by user. Whether these are just DB users, DB + DB_ENV users, or DB, DB_ENV and OIDC users with roles.


</details>

## User permissions management <i class="fas fa-user-lock"></i> {#user-permissions-management}
Copy link
Contributor

Choose a reason for hiding this comment

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

I think I might want to know what subset of users this applies to (e.g. DB + DB_ENV users)

Copy link

@orca-security-eu orca-security-eu bot left a comment

Choose a reason for hiding this comment

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

Orca Security Scan Summary

Status Check Issues by priority
Passed Passed Secrets high 0   medium 0   low 0   info 0 View in Orca

@g-despot g-despot merged commit 588f41a into v1-30/main Apr 3, 2025
3 checks passed
@g-despot g-despot deleted the v1-30/dynamic-users branch April 3, 2025 07:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants