|
| 1 | +--- |
| 2 | +description: An overview of the essential features of the TerminusDB & TerminusX dashboard |
| 3 | +--- |
| 4 | + |
| 5 | +# Dashboard |
| 6 | + |
| 7 | +The TerminusDB and TerminusX dashboard is the perfect place to model data, manage access control, and build queries. This page provides an overview of the dashboard's features. |
| 8 | + |
| 9 | +### Install/Sign Up  |
| 10 | + |
| 11 | +The TerminusDB local dashboard is included when you [install TerminusDB as a Docker container](../../get-started/install/install-as-docker-container.md). To use the dashboard visit: |
| 12 | + |
| 13 | +``` |
| 14 | +http://localhost:6363/dashboard/ |
| 15 | +``` |
| 16 | + |
| 17 | +For the TerminusX dashboard, sign up for TerminusX, and when verified login to the dashboard at [https://dashboard.terminusdb.com](https://dashboard.terminusdb.com). |
| 18 | + |
| 19 | +#### Initial teams and users  |
| 20 | + |
| 21 | +The main difference between the TerminusX and TerminusDB dashboards is how teams and users are managed. [Visit here for guidance](../how-to-guides/manage-access-control.md) on managing access control with the local TerminusDB dashboard. TerminusX access control is [included on this page](dashboard.md#terminusx-access-control). |
| 22 | + |
| 23 | +A team and admin user are automatically created with both dashboards. |
| 24 | + |
| 25 | +* TerminusDB - admin user and admin team. The default values are:  |
| 26 | + * Team: admin |
| 27 | + * User: admin |
| 28 | + * Password: root. |
| 29 | +* TerminusX - A team name generated from your registration credentials. |
| 30 | + |
| 31 | +### **Basic layout** |
| 32 | + |
| 33 | +When first logged in, you will see a list of the teams you are part of. Click on a team. |
| 34 | + |
| 35 | +The team selection layout looks as such: |
| 36 | + |
| 37 | +<figure><img src="../../.gitbook/assets/01-dashboard-team-select.jpg" alt=""><figcaption><p><strong>When you first login to the dashboard, select your team</strong></p></figcaption></figure> |
| 38 | + |
| 39 | +When you select a team, the layout looks like: |
| 40 | + |
| 41 | +<figure><img src="../../.gitbook/assets/02-dashboard-team-home.jpg" alt=""><figcaption></figcaption></figure> |
| 42 | + |
| 43 | +1. **Top Menu** - From left to right:  |
| 44 | + * Create a new data product  |
| 45 | + * Team - use the dropdown menu to toggle between teams  |
| 46 | + * User management & profile - Manage access control to teams and data products. In TerminusDB, log in as different users, in TerminusX view your profile and set up your API token.  |
| 47 | + * Role - see your role for the team or data product.  |
| 48 | +2. **Data Products** - A team can have one or many data products. Data products within a team are shown in this pane.  |
| 49 | +3. **Data Product Tools** - Tools are only available when a data product is selected. From top to bottom:  |
| 50 | + * Data Product Home - Contains a snapshot of the data product, its recent commits, branch management, and the ability to delete the data product.  |
| 51 | + * Model Builder - Build schema using our visual modeling tools, or simply import schema as JSON. You can create documents, subdocuments, and enums, and establish document properties and relationships to build your document graph.  |
| 52 | + * Document Explorer - Once you’ve created your schema, you can explore the document frames and even add data to your database using the automatically generated forms.  |
| 53 | + * Query Builder - Build and test queries against your data. |
| 54 | + |
| 55 | +### Create a new data product |
| 56 | + |
| 57 | +Creating your first data product is easy. |
| 58 | + |
| 59 | +1. Select ‘New Data Product’  |
| 60 | +2. Give it an ID (only alphabetic characters and underscores are allowed)  |
| 61 | +3. Name it something meaningful to you  |
| 62 | +4. Give it a description so that you and other team members can see its purpose. |
| 63 | + |
| 64 | +<figure><img src="../../.gitbook/assets/03-dashboard-new-data-product.jpg" alt=""><figcaption></figcaption></figure> |
| 65 | + |
| 66 | +### Building your schema  |
| 67 | + |
| 68 | +A visual data modeling tool to build schema for your data products. |
| 69 | + |
| 70 | +#### Visual data modeling |
| 71 | + |
| 72 | +<figure><img src="../../.gitbook/assets/04-dashboard-model-builder.jpg" alt=""><figcaption></figcaption></figure> |
| 73 | + |
| 74 | +1. Choose Data Product Model from the lefthand menu - the second icon.  |
| 75 | +2. In the window, you will see an oval called your data product name schema. Click on the oval and select the + symbol.  |
| 76 | +3. Add a document or enum.  |
| 77 | + * JSON documents form the nodes of the graph  |
| 78 | + * Enumerated types are a set of possible choices  |
| 79 | +4. Select add document.  |
| 80 | +5. On the right, you will see a set of options to define the document:  |
| 81 | + * Give it a unique ID (no spaces)  |
| 82 | + * Define the document key, choose from ([this blog will help you decide what key to use](https://terminusdb.com/blog/uri-generation/)):  |
| 83 | + * Lexical (need to set up document properties first)  |
| 84 | + * Hash (need to set up document properties first)  |
| 85 | + * Random  |
| 86 | + * ValueHash |
| 87 | +6. Add the document properties, choose from:  |
| 88 | + * Enum - Need to create the enums before this option becomes available  |
| 89 | + * Numeric  |
| 90 | + * String  |
| 91 | + * Geo  |
| 92 | + * Temporal  |
| 93 | + * Boolean  |
| 94 | + * JSON  |
| 95 | + * Link - building the relationships in the graph  |
| 96 | +7. On the next tab, you can see the relationships in the graph, this will show links between objects. You can also set the document as a parent/child of another document.  |
| 97 | +8. The final tab when creating the document shows it in its JSON format.  |
| 98 | +9. Save your document by clicking on the disk icon. |
| 99 | + |
| 100 | +Creating subdocuments and enums can be achieved in much the same way. |
| 101 | + |
| 102 | +#### Importing your schema  |
| 103 | + |
| 104 | +Using a visual editor to model your data isn’t everyone’s cup of tea. Should you build your schema elsewhere, importing it into the dashboard is straightforward: |
| 105 | + |
| 106 | +<figure><img src="../../.gitbook/assets/05-dashboard-model-builder-json.jpg" alt=""><figcaption></figcaption></figure> |
| 107 | + |
| 108 | +1. Choose Data Product Model from the lefthand menu - the second icon.  |
| 109 | +2. In the window, you will see two tabs, ‘Graph View’ and ‘JSON View’.  |
| 110 | +3. Select JSON View.  |
| 111 | +4. Click on the edit icon.  |
| 112 | +5. Paste your JSON schema into the window and save. |
| 113 | + |
| 114 | +Your schema should now display in the graph view. |
| 115 | + |
| 116 | +### Exploring documents  |
| 117 | + |
| 118 | +Once you have created your schema you can explore the documents you created. TerminusDB creates document frames based upon your schema and you can see what data is in the database, add data, and check out the document structure visually. |
| 119 | + |
| 120 | +<figure><img src="../../.gitbook/assets/06-dashboard-doc-explorer.jpg" alt=""><figcaption></figcaption></figure> |
| 121 | + |
| 122 | +1. From the lefthand menu, select document explorer - third icon.  |
| 123 | +2. The initial window shows you how many documents you have by type. You can select a type to see the individual documents, and drill down further by clicking on the resulting list, here you can:  |
| 124 | + * Edit the document  |
| 125 | + * Delete it  |
| 126 | + * View the JSON.  |
| 127 | +3. To add a document, select the + symbol in the type (from the lefthand column) you want to add.  |
| 128 | +4. The document frame will appear mirroring what you set up in the schema. |
| 129 | + |
| 130 | +<figure><img src="../../.gitbook/assets/07-dashboard-add-doc.jpg" alt=""><figcaption></figcaption></figure> |
| 131 | + |
| 132 | +### **Query Builder** |
| 133 | + |
| 134 | +Use the query builder to build and test queries against your data products. |
| 135 | + |
| 136 | +1. Select the Query Builder icon from the left  |
| 137 | +2. In the query pane, build your query in JS WOQL or JSON-LD  |
| 138 | +3. Hit Run to see the results. |
| 139 | + |
| 140 | +<figure><img src="../../.gitbook/assets/08-dashboard-query-builder.jpg" alt=""><figcaption></figcaption></figure> |
| 141 | + |
| 142 | +You can add several query panes and use the document selector on the left to build your queries. |
| 143 | + |
| 144 | +### Creating and managing branches |
| 145 | + |
| 146 | +You can create branches of your data product within the TerminusX dashboard, to do this follow these instructions: |
| 147 | + |
| 148 | +<figure><img src="../../.gitbook/assets/09-dashboard-branch.jpg" alt=""><figcaption></figcaption></figure> |
| 149 | + |
| 150 | +1. Choose Data Products from the lefthand menu - the first icon.  |
| 151 | +2. Click on branches and select new branch.  |
| 152 | +3. Name your branch and choose whether you want an empty branch, or to create it from the current head. |
| 153 | + |
| 154 | +<figure><img src="../../.gitbook/assets/10-dashboard-branch-options.jpg" alt=""><figcaption></figcaption></figure> |
| 155 | + |
| 156 | +You can now switch between main and your branches by selecting the ellipsis menu where you can also reset to a specific commit, or squash the branch. |
| 157 | + |
| 158 | +### **TerminusX access control** |
| 159 | + |
| 160 | +#### Create a new team |
| 161 | + |
| 162 | +To create a new team: |
| 163 | + |
| 164 | +1. Click the arrow next to your profile icon in the top right corner.  |
| 165 | +2. Select profile.  |
| 166 | +3. From the resulting window, select ‘Create a new team’  |
| 167 | +4. Name your team - note that no two team names can be the same. |
| 168 | + |
| 169 | +#### Invite users to a team  |
| 170 | + |
| 171 | +To invite team members and manage the team, do the following: |
| 172 | + |
| 173 | +1. Click the arrow next to your profile icon in the top right corner.  |
| 174 | +2. Select invite member.  |
| 175 | +3. In the pop-up window, enter the user’s email address and select one of the following access permissions - _this will be applied to team-level permissions so will apply to all data products within your team. If you want to only give read-write access to a specific data product, it makes sense to give the user low-level permissions and assign higher permissions for that data product only - we will explain this next_.  |
| 176 | + * Admin - can add and remove users and permissions and has total access to data products.  |
| 177 | + * Collaborator - Able to access data products.  |
| 178 | + * Data Updater - Read and write access to data products.  |
| 179 | + * Data Reader - Read-only access to data products. Info Reader -  |
| 180 | + * Schema-level access but not data-level access.  |
| 181 | +4. The user will be sent an email with a link they need to click (if they don’t receive it, tell them to check their spam folder).  |
| 182 | +5. When the user has accepted the invitation, you will be able to see that team member within the Team Members section (you may need to refresh the page). |
| 183 | + |
| 184 | +<figure><img src="../../.gitbook/assets/12-dashboard-invite-team-memeber.jpg" alt=""><figcaption></figcaption></figure> |
| 185 | + |
| 186 | +#### **Editing and removing users from the team** |
| 187 | + |
| 188 | +To edit the role you have given a user: |
| 189 | + |
| 190 | +1. Navigate to the Team Members section from the profile dropdown.  |
| 191 | +2. Find the user you want to change from the list and click on the second icon.  |
| 192 | +3. From the pop-up window, select the new role you wish to give them. |
| 193 | + |
| 194 | +<figure><img src="../../.gitbook/assets/13-dashboard-edit-user.jpg" alt=""><figcaption></figcaption></figure> |
| 195 | + |
| 196 | +To delete a user from your team, do the same as above, but select the third icon in red. |
| 197 | + |
| 198 | +{% hint style="info" %} |
| 199 | +Hover over the icons for information about what they do. |
| 200 | +{% endhint %} |
| 201 | + |
| 202 | +#### **Setting granular permissions for data products** |
| 203 | + |
| 204 | +You may want to grant different permissions for different data products. To do this do the following: |
| 205 | + |
| 206 | +1. Navigate to the Team Members section from the profile dropdown.  |
| 207 | +2. Find the user you want to add specific data product permissions for and click on the first icon.  |
| 208 | +3. The resulting table below will list all of the data products in your team.  |
| 209 | +4. Choose the data product you want to change the user’s role for by clicking on the edit permissions icon.  |
| 210 | +5. Choose from the list of permissions |
| 211 | + |
| 212 | +<figure><img src="../../.gitbook/assets/14-dashboard-granualar-access.jpg" alt=""><figcaption></figcaption></figure> |
| 213 | + |
| 214 | +{% hint style="info" %} |
| 215 | +You can only set permissions higher than the team permissions, so if you want to give someone read/write permissions for only one data product, ensure that you set the team permissions to a lower level. |
| 216 | +{% endhint %} |
| 217 | + |
| 218 | +### Further Reading |
| 219 | + |
| 220 | +[TerminusX - Start with a Client API](../../terminusx/start-with-client.md) |
| 221 | + |
| 222 | +[CLI Interface Guide](cli.md) |
| 223 | + |
| 224 | +[JavaScript Client Interface Guide](javascript-client.md) |
| 225 | + |
| 226 | +[Python Client Interface Guide](python-client.md) |
0 commit comments