How-To: Manage Users using GraphQL

There are two options to automate or script users and group operations:

  • Using the GraphQL API which this document describes

  • Using humioctl

It's possible to do all steps either in the UI or with the GraphQL API or LogScale CLI.

Note

On LogScale Cloud, users are invited and marked as pending users when completed from the UI

You can use the API explorer to perform these queries directly within the LogScale UI.

Creating A User

graphql
mutation {
  addUserV2(
    input: {
      username: "a_new_user@example.com"
      email: "a_new_user@example.com"
      company: "example.com"
    }
  ) {
    __typename
  }
}

Get User and ID

graphql
query {
  usersPage(pageSize: 1000, search: "a_new_user@example.com", pageNumber: 1) {
    page {
      id
      username
    }
  }
}

Create A Group

graphql
mutation {
  addGroup(displayName: "testgroup", lookupName: "optional_idp_group_name") {
    group {
      id
    }
  }
}

Get Group ID

graphql
query {
  groupsPage(search: "testgroup", pageNumber: 1, pageSize: 100) {
    page {
      id
      displayName
    }
  }
}

Get a list of Repositories and Views

graphql
query {
  searchDomains {
    id
    name
  }
}

Get ID for a Role

graphql
query {
  roles {
    id
    displayName
  }
}

Add a Repository to a Group with a Role

Here we need to run two mutations, one to assign the role to the group, then add the repository to the group

graphql
mutation {
  assignRoleToGroup(
    input: {
      viewId: "smX0nAvLufBfD8ne52FEiZar"
      groupId: "aID9ijJg0Q9vewrlz7PCILrwj1VuGz3D"
      roleId: "l18cgJhRbT8HcNwyuTDbStRe6zpb0c3w"
    }
  ) {
    group {
      role {
        id
      }
    }
  }
}
graphql
mutation {
  updateQueryPrefix(
    input: {
      queryPrefix: "*"
      viewId: "smX0nAvLufBfD8ne52FEiZar"
      groupId: "aID9ijJg0Q9vewrlz7PCILrwj1VuGz3D"
    }
  ) {
    group {
      id
    }
  }
}

Assign a user to a group

graphql
mutation {
  addUsersToGroup(
    input: {
      users: ["4UA84wRdGJV7pFPzh4Hn5wWQ"]
      groupId: "aID9ijJg0Q9vewrlz7PCILrwj1VuGz3D"
    }
  ) {
    group {
      id
    }
  }
}

Unassign a user from a group

graphql
mutation {
  removeUsersFromGroup(
    input: {
      users: ["4UA84wRdGJV7pFPzh4Hn5wWQ"]
      groupId: "aID9ijJg0Q9vewrlz7PCILrwj1VuGz3D"
    }
  ) {
    group {
      id
    }
  }
}

Delete a user

graphql
mutation {
  removeUserById(input: { id: "4UA84wRdGJV7pFPzh4Hn5wWQ" }) {
    user {
      id
    }
  }
}