---
title: Users and Profiles
description: "--- ###### Elements fully supports Users and Profiles that allow users of your [Application](https://namazustudios.com/glossary/application/) or game to store their [Profile](https://namazustudios.com/glossary/profile/) data and access a network of applications from a single login [Profile](https://namazustudios.com/glossary/profile/). Elements uses a one-to-many model for the [User](https://namazustudios.com/glossary/user/)…"
url: "https://namazustudios.com/docs/namazu-elements-core/users-and-profiles/"
updated: "2026-08-13"
category: Namazu Elements Core Features
---

# Users and Profiles

---

###### Elements fully supports Users and Profiles that allow users of your [Application](https://namazustudios.com/glossary/application/) or game to store their [Profile](https://namazustudios.com/glossary/profile/) data and access a network of applications from a single login [Profile](https://namazustudios.com/glossary/profile/).

Elements uses a one-to-many model for the [User](https://namazustudios.com/glossary/user/) / [Profile](https://namazustudios.com/glossary/profile/) relationship. A [Profile](https://namazustudios.com/glossary/profile/) is linked directly to both one single [Application](https://namazustudios.com/glossary/application/) and one single [User](https://namazustudios.com/glossary/user/).

As Elements is a multi-[Tenant](https://namazustudios.com/glossary/tenant/) system, there can be many Applications that allow for many Profiles per [Application](https://namazustudios.com/glossary/application/).

This structure gives you the flexibility to create a network of Applications under the same roof, with any [User](https://namazustudios.com/glossary/user/) level information, such as Inventory, accessible in every [Application](https://namazustudios.com/glossary/application/) should you so choose.

### [User](https://namazustudios.com/glossary/user/) Properties

A **[User](https://namazustudios.com/glossary/user/)** has the following properties:

- **[id](https://namazustudios.com/glossary/id/)**
- **[name](https://namazustudios.com/glossary/name/)**
- **email**
- **level**
  - UNPRIVILEGED - An unprivileged/anonymous [User](https://namazustudios.com/glossary/user/).
  - [User](https://namazustudios.com/glossary/user/) - A basic [User](https://namazustudios.com/glossary/user/).
  - SUPERUSER - An administrator/super [User](https://namazustudios.com/glossary/user/), who can do all of the above as well as delete/create users.
- **linkedAccounts**
  - A list of account types that the [User](https://namazustudios.com/glossary/user/) is linked to, such as [name](https://namazustudios.com/glossary/name/), email, steam, google, apple, etc.

#### Managing Users in the Console [#managing-users-in-the-console](#managing-users-in-the-console)

Users are managed in the Users section of the admin console, which can be accessed from the upper nav bar or in the hamburger menu.

The "Add [User](https://namazustudios.com/glossary/user/)" button will open the new [User](https://namazustudios.com/glossary/user/) panel.

Users can be edited by tapping the "Edit" button next to that [User](https://namazustudios.com/glossary/user/), or can be deleted by tapping the "Delete" button. Use the search function to more easily find specific users.

Passwords can be set or changed using the admin console as well. In the database, they are salted and hashed and can't be manipulated directly.

![](https://namazustudios.com/wp-content/uploads/2025/08/Screenshot-2026-01-30-at-4.37.05-PM-1024x848.png)

#### JSON Structure of Users [#json-structure-of-users](#json-structure-of-users)

Here is a sample of a [User](https://namazustudios.com/glossary/user/) JSON entry from the database:

```
{
    "_id" : ObjectId("5cdb0aa4e96c3c4f2bfe16ea"),
    "active" : true,
    "name" : "jsmith",
    "email" : "jsmith@elements.com",
    "level" : "SUPERUSER",
    "salt" : { "$binary" : "/thisissalt", "$type" : "00" },
    "passwordHash" : { "$binary" : "thisisapasswordhash=", "$type" : "00" },
    "hashAlgorithm" : "SHA-256"
}
```

### [Profile](https://namazustudios.com/glossary/profile/) Properties

A **[Profile](https://namazustudios.com/glossary/profile/)** has the following properties:

- [id](https://namazustudios.com/glossary/id/)
- [User](https://namazustudios.com/glossary/user/) - The [User](https://namazustudios.com/glossary/user/) that this [Profile](https://namazustudios.com/glossary/profile/) is linked to.
- [Application](https://namazustudios.com/glossary/application/) - The [Application](https://namazustudios.com/glossary/application/) that this [Profile](https://namazustudios.com/glossary/profile/) is linked to.
- ImageUrl - Any associated avatar image.
- DisplayName - The [name](https://namazustudios.com/glossary/name/) that should be displayed on the client side.
- [Metadata](https://namazustudios.com/glossary/metadata/) - Key/Value store that can be modified.
- LastLogin - The time that the current [Session](https://namazustudios.com/glossary/session/) token was created (MS since epoch)

Once created, only the DisplayName and ImageUrl can be modified from the client side (via **ProfilesApi**). However, other properties, such as the [Metadata](https://namazustudios.com/glossary/metadata/), can be modified from the server side.

#### [Profile](https://namazustudios.com/glossary/profile/) [Metadata](https://namazustudios.com/glossary/metadata/) [#profile-metadata](#profile-metadata)

As mentioned in the previous section, the [Profile](https://namazustudios.com/glossary/profile/) [Metadata](https://namazustudios.com/glossary/metadata/) is a key/value store for just about anything that you'd want to be publicly facing (as Inventory is private) in a [Profile](https://namazustudios.com/glossary/profile/). This is a great place for storing info that you might want different Profiles to know about each other. For example, say you have a game where someone can earn points to increase a numeric rank. In order to see that information, it needs to be stored in a publicly accessible place. Take this wireframe image for example:

![](https://namazustudios.com/wp-content/uploads/2025/08/profile_metadata.png)
FBPanelExample

All of the stats listed in this screen would be housed by the [Profile](https://namazustudios.com/glossary/profile/) [Metadata](https://namazustudios.com/glossary/metadata/), so the JSON representation might look something like this:

```
{
    "id" : <id string>,
    "user" : <redacted>,
    "application" : <Application JSON>,
    "image_url" : <path to image>,
    "display_name" : <display name string>,
    "last_login" : <last login time>,
    "metadata": {
        "ranking" : 1300,
        "wins" : 999,
        "losses" : 999,
        "total_games" : 999,
        "current_win_streak" : 999,
        etc...
    }
}
```

#### Managing Profiles Using the Console [#managing-profiles-using-the-console](#managing-profiles-using-the-console)

Note

[Profile](https://namazustudios.com/glossary/profile/) [Metadata](https://namazustudios.com/glossary/metadata/) is edited identically to how [Item](https://namazustudios.com/glossary/item/) [Metadata](https://namazustudios.com/glossary/metadata/) is edited. See [Editing Item Metadata](../digital-goods#editing-item-metadata).

Profiles can be added, edited, or deleted from the admin console in the Profiles section, accessible from the top nav bar or the hamburger menu.

Since Profiles must be connected to a [User](https://namazustudios.com/glossary/user/), when making a new [Profile](https://namazustudios.com/glossary/profile/) you can use the "Select [User](https://namazustudios.com/glossary/user/)" button to find the [User](https://namazustudios.com/glossary/user/) that will own this [Profile](https://namazustudios.com/glossary/profile/). If you are editing an existing [Profile](https://namazustudios.com/glossary/profile/), you can use the "Edit [User](https://namazustudios.com/glossary/user/)" button to open the Edit [User](https://namazustudios.com/glossary/user/) panel for that [User](https://namazustudios.com/glossary/user/). Existing profiles cannot be reassigned to another [User](https://namazustudios.com/glossary/user/).

When creating a new [Profile](https://namazustudios.com/glossary/profile/), you must also select an [Application](https://namazustudios.com/glossary/application/). A dropdown menu will open with the available applications. If editing an existing [Profile](https://namazustudios.com/glossary/profile/), the [Application](https://namazustudios.com/glossary/application/) may not be changed.

![](https://namazustudios.com/wp-content/uploads/2025/08/Screenshot-2026-01-30-at-4.39.05-PM-1024x795.png)

#### JSON Structure of [Profile](https://namazustudios.com/glossary/profile/) [#json-structure-of-profile](#json-structure-of-profile)

This is a sample [Profile](https://namazustudios.com/glossary/profile/) represented in JSON:

```
[{
    "_id" : ObjectId("5cdb92e7e96c3c4f2b01106f"),
    "active" : true,
    "application" : {
        "$ref" : "application",
        "$id" : ObjectId("5cdb1088e96c3c4f2bfe1da7")
    },
    "user" : {
        "$ref" : "user",
        "$id" : ObjectId("5cdb92e5e96c3c4f2b0107ca")
    },
    "imageUrl" : "url/to/image",
    "displayName" : "DisplayName",
    "lastLogin" : ISODate("2019-05-15T04:17:47.127Z"),
    "metadata" : {
        "metadata_string" : "string"
        "metadata_int" : 1
    }
}]
```
