Skip to content

Configuration ‐ UI Module

Chris Mavrommatis edited this page Mar 27, 2025 · 3 revisions

The UI Module provides a user-friendly interface for interacting with Binacle.Net. Instead of making direct API calls, users can visually explore its features, making it easier to demonstrate and understand the system’s capabilities.

Note

This module is disabled by default.

⚙️ Configuration

All configuration files for the UI Module are located in /app/Config_Files/UiModule.

Below is the file structure:

app
└── Config_Files
    └── UiModule
        └── ConnectionStrings.json

📦 Packing Demo

The Packing Demo allows users to input bin and item data, submit packing requests, and visualize how items are packed into each bin.

  • 🔹 Step-by-step interaction: Users can navigate through the packing process item by item.
  • 🔹 Real-time visualization: See exactly how each item is placed within the bins.

📜 Protocol Decoder

The Protocol Decoder enables users to decode ViPaq-encoded packing data and visualize container layouts interactively. It provides an easy way to analyze packing arrangements and navigate through the layout.

  • 📌 To obtain ViPaq data, use Version 3 of the API.
  • 📖 For more details on ViPaq, refer to the ViPaq Protocol.

🔧 Activating the UI Module

To enable the UI Module, use one of the following methods:

  1. 🏗️ Environment Variable: UI_MODULE=True
  2. 🛠️ Production Overrides: Create or update the Features.Production.json file with the following content:
{
  "Features": {
    "UI_MODULE": "True"
  }
}

🛠️ Configuration

The UI Module attempts to auto-detect the Binacle.Net API URL. However, in some environments—especially when behind proxies or forwarding services—this may fail, causing issues with the Packing Demo or API communication.

If this happens, you can manually specify the API endpoint in ConnectionStrings.json.

Default configuration:

{
  "ConnectionStrings": {
    "BinacleApi": "endpoint=https://localhost:8080/"
  }
}

🔑 Connection String Fallbacks

Connection String Fallbacks are dedicated environment variables that serve as an additional configuration method for connection strings.

Each fallback follows the format: 🔹 Uppercase connection name + _CONNECTION_STRING

Using Connection String Fallbacks is the recommended way to configure connection strings, ensuring flexibility across environments.

For Binacle Api, the connection string is resolved in the following order of priority:

  • 1️⃣ Environment Variable: ConnectionStrings__BinacleApi
  • 2️⃣ Production Override: ConnectionStrings.Production.json
  • 3️⃣ Configuration File: ConnectionStrings.json (not recomended)
  • 4️⃣ Connection String Fallback: BINACLEAPI_CONNECTION_STRING

The UI Module will use the highest-priority configuration method it can find.

Clone this wiki locally