> For the complete documentation index, see [llms.txt](https://docs.sunlicense.hapangama.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sunlicense.hapangama.com/getting-started/dashboard.md).

# Dashboard

{% embed url="<https://youtu.be/3JVEtzH3et4?si=p-s-Rn_cUD9HlLCt>" fullWidth="true" %}

## SunLicense Web Dashboard Administrator Guide

The **Web Dashboard** is the central interface for managing your license system.\
You can access it via your server address (e.g., `http://{serverip}:{port}`).\
Authentication is required, and access is restricted to users with the `ROLE_ADMIN` permission.

***

### 1. Product Management

The **Products** view allows you to define the software or resources that your license keys will validate against.

#### 1.1. Creating a Product

In the **"Create Products"** tab, you must define the foundational settings for all future licenses associated with this product:

| **Field**                    | **Description & Detail**                                                                                                                                              |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name & Description**       | Standard identifier fields. Name is required and must be unique.                                                                                                      |
| **Product Type**             | Choose from: `MINECRAFT_JAVA_PLUGIN`, `WEB_APPLICATION`, `DISCORD_BOTS`, or `OTHER`. If `OTHER` is selected, an **Other Product Type** text field appears (required). |
| **Default Max IPs**          | Max number of unique IPs per license. `-1` = unlimited, `0` = none. Default: **5**.                                                                                   |
| **Default Max HWIDs**        | Max number of Hardware IDs per license. `-1` = unlimited, `0` = none. Default: **5**.                                                                                 |
| **Product Role Id**          | Discord Role ID assigned when a user redeems a license.                                                                                                               |
| **Product Purchase Role Id** | Discord Role ID marking a user as a purchaser (required for `/get-license` in Discord).                                                                               |
| **Product URL / Image URL**  | Used for display in the Customer Dashboard.                                                                                                                           |

***

#### 1.2. Managing and Updating Products

The **"Manage Products"** tab displays products in a grid:

* **Updating**: Edit properties such as default limits, roles, and names.
* **Deletion**:
  * Products with active licenses **cannot** be deleted.
  * Attempting deletion shows error:

    > `"Product has licenses, cannot delete"`

***

### 2. License Management

The **Licenses** view lets you generate, modify, and track license keys.

#### 2.1. Creating a License

The **"Create License"** tab handles key generation and assignment.

| **Field**                 | **Description & Detail**                                                                   |
| ------------------------- | ------------------------------------------------------------------------------------------ |
| **License Key**           | Auto-generated (masked `XXXX-XXXX-...`). Hover to view, click to copy.                     |
| **Product**               | Select a product; defaults for Max IPs/HWIDs auto-populate.                                |
| **License Type & Expiry** | Choose `PERMANENT` or `TEMPORARY`. Temporary requires duration or custom date.             |
| **Platform Details**      | Select platform (`SPIGOT`, `BUILT_BY_BIT`, `DISCORD`, `OTHER`) and enter Platform User ID. |
| **Owner Details**         | Provide User Discord ID & Username. If bot is active, a dropdown may be available.         |
| **Initial Data/Status**   | Set comma-separated IPs/HWIDs. Status defaults to `ACTIVE`.                                |
| **Discord DM Prompt**     | If Discord ID provided, you’ll be prompted to send key via DM.                             |

***

#### 2.2. Managing and Updating Licenses

In the **"Manage Licenses"** tab:

* **Search & Filter**: Search by keywords, product, user, etc.
* **Editing**:
  * Clicking a license opens an **Edit License Dialog**.
  * Update fields like owner info, platform, limits, or status.
* **Manual Data Management**:
  * Edit IP/HWID lists directly (comma-separated).
* **Status Updates**:
  * Set to `ACTIVE`, `EXPIRED`, `DEACTIVATED`, or `DELETED`.
* **Deletion**:
  * Available via Delete button in the Edit Dialog.
  * Prompts confirmation before permanent deletion via `licenseService.deleteLicense(id)`.

***

### 3. Blacklist Management

Blacklist Management prevents specific devices or IPs from validating licenses.

#### 3.1. Creating a Blacklist Entry

Use the **"Create Blacklist"** tab:

1. **Type**: Select `IP` or `HWID`.
2. **Data**: Input the IP or Hardware ID.
3. **Scope**:
   * `All Products`
   * `Specific Product` (dropdown required).
4. **Reason**: Required field explaining why the entry is added.

***

#### 3.2. Managing Blacklists

The **"Manage Blacklists"** tab displays all active blacklist entries:

* **Viewing**: See details including blocked data, scope, product ID, and reason.
* **Deleting**: Use Delete button → removes entry via `blacklistService.removeBlackList(id)`.

***

### 4. Viewing License Requests

The **Requests** view provides analytics and history for all license validation attempts.

#### 4.1. Filtering and Overview

* **Filters**: Search term, Product, User, and Date Range.
* **Status Badges**:
  * ✅ Successful (green)
  * ❌ Invalid License
  * 🚫 Spam / Rate Limited
  * 🔴 Blocked (shows `BlockReason`)

***

#### 4.2. Viewing Detailed Request Information

Clicking a request row opens a dialog with detailed request data:

* **License/Product Details**: Masked License Key, Product Version.
* **Device Identifiers**: IP, HWID, MAC Address.
* **System Environment**: OS Name/Version/Architecture, Java Version.
* **Result Data**: Request Date, Type, and Response Type.
