Files
jube-fork/Jube.App/Pages/Account/SandboxRegistration.cshtml
Richard Churchman 492da90e10 Added registration functionality to enable the creation of isolated tenants in Jube when the Sandbox environment variable is set to true. This includes the introduction of a basic registration screen for tenant creation and template data configuration.
Enabled tracking given Sandpit set to true (intended for internal Jube use), which incorporates embedded Google Analytics and the Ask Jooby AI bot for enhanced functionality.

Provided a working Dockerfile and docker-compose.yml to facilitate seamless containerized deployment.

Additionally, created a user creation SQL file with minimal permissions to ensure security. Introduced a new connection string environment variable specifically designed for running reports. This connection string is configured to operate with extreme least privilege, ensuring the account can only access a tenant's data for reporting purposes.

These updates improve flexibility, security, and ease of deployment for Jube in both development and production environments.
2025-02-16 13:12:33 +02:00

81 lines
3.6 KiB
Plaintext

@* Copyright (C) 2022-present Jube Holdings Limited
*
* This file is part of Jube™ software.
*
* Jube™ is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* Jube™ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
* You should have received a copy of the GNU Affero General Public License along with Jube™. If not,
* see <https://www.gnu.org/licenses/>.
*@
@page
@inject DynamicEnvironment.DynamicEnvironment DynamicEnvironment
@{
var sandpit = DynamicEnvironment.AppSettings("EnableSandbox").Equals("True", StringComparison.OrdinalIgnoreCase);
}
<script src="/js/Account/SandboxRegistration.js"></script>
@if (sandpit)
{
<h1>Register for The Sandbox!</h1>
<p>
The Sandbox offers a fully functional version of Jube, tailored for learning and training purposes. It leverages Jube's multi-tenancy capabilities to deliver the experience of an isolated environment, even though it operates on shared resources with logical data isolation. While the Visualization and Reporting features are limited to three example tables, the overall experience remains thorough and effective.
</p>
<p>
To maximize your learning and training experience, we recommend using The Sandbox in conjunction with the official documentation.
</p>
<p>Support is available through two channels:</p>
<ul>
<li><strong>Ask Jooby</strong>, our AI assistant, located in the bottom right-hand corner.</li>
<li><strong>Email</strong> at <a href="mailto:[email protected]">[email protected]</a>.</li>
</ul>
<p>Feel free to reach out using either option!</p>
<hr/>
}
<form id="SandboxRegistration">
<table id="RegistrationTable" class="tTStyle">
<tr>
<td>
<label for="UserName">Email</label>
</td>
<td>
<input type="text" id="UserName" name="UserName" class="k-textbox">
</td>
</tr>
<tr>
<td>
<label for="Password">Password</label>
</td>
<td>
<input type="password" id="Password" name="Password" class="k-textbox">
</td>
</tr>
<tr>
<td>
<label for="RepeatPassword">Repeat Password</label>
</td>
<td>
<input type="password" id="RepeatPassword" name="RepeatPassword" class="k-textbox">
</td>
</tr>
</table>
</form>
<div class="topPaddedGeneral bottomPaddedGeneral">
<button id="Register" type="submit">Register</button> <span id="MessageSandboxRegistration"></span>
</div>
@if (sandpit)
{
<hr/>
<p>
Please note that The Sandbox and its support services are provided on a <strong>"best efforts" basis</strong> and are subject to the following conditions:
</p>
<ul>
<li><strong>Use only test data</strong> within The Sandbox.</li>
<li><strong>Do not use</strong> The Sandbox for real or production data.</li>
</ul>
<p>
The Sandbox is designed as a helpful tool; however, it is provided <strong>WITHOUT ANY WARRANTY</strong>. This includes, but is not limited to, implied warranties of <strong>MERCHANTABILITY</strong> or <strong>FITNESS FOR A PARTICULAR PURPOSE</strong>.
</p>
}