Stores & Entities


Introduction

TRAX LRS allows you to manage 2 levels of data visibility thanks to the concepts of "stores" and "entities".

You could see stores as completely independent databases, with their own users, roles, entities, clients and of course xAPI data (which is not technically true).

Inside a store, you may define entities with their own users and clients. Users and clients belonging to an entity have only access to the xAPI data of their own entity . Users and clients which don't belong to an entity have access to xAPI data of the entire store.

Use Cases

You should consider using stores to:

  • Isolate testing data and being able to remove it.
  • Support multiple independent projects on a single LRS instance.
  • Support multiple independent organizations on a single LRS instance.

You should consider using entities to:

  • Reflect the departments of an organization.

Defining stores

Only admin users which have been created with the php artisan admin:create command are allowed to manage stores. As soon as they are logged into the application, they see the list of the existing stores and can:

  • Enter into a given store
  • Modify an existing store
  • Delete an existing store
  • Create a new store

Users which have been created inside a store have only access to their own store.

Defining entities

To create an entity, go to the Accounts > Entities page and create one by giving it a name. As soon as you created one or more entities, you can edit a user or a client and assign it an entity.

On the Data > Statements page, you can select an entity in order to filter the statements.

On the Data > Management page, you can select an entity in order to target the statements to remove.

Scalability

Be aware that the stores of an LRS instance are located into a single database instance.

This is great to easily and quickly create independent datasets into your LRS. However, it has not been designed as a solution for multi-tenancy.

You should evaluate your needs regarding the volume of data and choose between using stores or multiple database instances for your project.