Skip to content

Organization level Internal bot Users

We want to make Organization a required attribute of Namespace. We have three types of namespaces (Group, Project, User). This is about UserNamespace , ie Personal Namespaces. They also need an Organization

When we create an User, we create two relations to Organization:

  • Direct: Add an entry to organization_users table. This establish Organization membership
  • Indirect: Add a user namespace. A User namespace needs (just like all namespaces) an Organization

For human users, there is no issue: they will be assigned to an organization. The personal namespace will be part of that organization.

For non-human users, we need to decide:

  • What organization they are member of (considering the scope of the bot)
  • Do we need personal namespaces for those? And if yes, what organization to use for that?

User types

USER_TYPES id Just one? Scope Used by group Contact
human 0 NO Organization groupauthentication N/A
support_bot 1 YES Instance groupproject management for service desk @donaldcook @gweaver
alert_bot 2 YES Instance grouprespond for alerts None, community-led category
visual_review_bot 3 YES Instance grouppipeline execution see removal @carolinesimpson @rutshah
service_user 4 NO Unsure. Check if it can be removed groupoptimize Not a bot but user type @blabuschagne @hsnir1
ghost 5 YES Instance groupauthentication for user deletion @adil.farrukh @hsutor
project_bot 6 NO Organization (group/project account) groupauthentication for PrATs N/A
migration_bot 7 YES Instance groupsource code for Snippets @dpoosarla @mcbabin
security_bot 8 YES Instance ~"group::threat insights" for vuln fix MRs @ryaanwells @nmccorrison
automation_bot 9 YES Instance groupproject management to generate iterations @donaldcook @gweaver
security_policy_bot 10 NO Organization (Project scoped) groupsecurity policies for security policy pipelines @alan @g.hickman
admin_bot 11 YES Instance groupauthentication admin ops on SM @adil.farrukh @hsutor
suggested_reviewers_bot 12 YES Instance groupai model validation for suggested reviewer token @m_gill @susie.bee
service_account 13 NO Self-managed: Instance. SaaS: Organization groupauthentication for service accounts N/A
llm_bot 14 YES Instance groupcode creation for content attribution @mnohr @jordanjanes
placeholder 15 NO Organization groupimport and integrate
duo_code_review_bot. 16 YES Instance. groupduo chat

Scope: Organization

These are User Types that are now related to a Group (or Project). If we create a User, we know the Organization we are currently working in and we can assign both the User Namespace and the Organization Membership to the Organization

Scope: Instance

They are created on the fly, when needed. These users are not related to a specific Group / Project which makes it difficult to assign these to an Organization.

For example, ghost_user is used to replace deleted users. It works across Organizations

Some ideas

  • Assign these Internal Users to an (hidden?) Bots or Cells Organization
  • Do not assign these users to an Organization

Assign these Internal Users to a 'Cells' or 'Bots' Organization

Create a special Cells organization that can be used to accomodate different tasks related to the managed of Cells. It will serve as a Cells-level container, similar to current Instance-level

All cells will have one Cell Organization

Do not assign these users to an Organization

These users will still be created on the fly on each cell but they are not part of any Organization. We do not create a Personal Namespace for them (because we do want all namespaces to be part of an Organization)

Edited by Rutger Wessels