containers-schema: allow to specify ui-secret and show in aio interface

Signed-off-by: Simon L. <szaimen@e.mail.de>
This commit is contained in:
Simon L. 2025-01-23 16:28:07 +01:00
parent bc358f32b1
commit 04ef45667f
12 changed files with 38 additions and 3 deletions

View file

@ -145,6 +145,10 @@
"pattern": "^[A-Z_]+$"
}
},
"ui_secret": {
"type": "string",
"pattern": "^[A-Z_]+$"
},
"image_tag": {
"type": "string",
"pattern": "^([a-z0-9.-]+|%AIO_CHANNEL%)$"

View file

@ -21,6 +21,7 @@ readonly class Container {
private array $dependsOn,
/** @var string[] */
private array $secrets,
private string $uiSecret,
/** @var string[] */
private array $devices,
private bool $enableNvidiaGpu,
@ -85,6 +86,10 @@ readonly class Container {
return $this->secrets;
}
public function GetUiSecret() : string {
return $this->dockerActionManager->GetAndGenerateSecretWrapper($this->uiSecret);
}
public function GetTmpfs() : array {
return $this->tmpfs;
}

View file

@ -244,6 +244,11 @@ readonly class ContainerDefinitionFetcher {
$secrets = $entry['secrets'];
}
$uiSecret = '';
if (isset($entry['ui_secret'])) {
$uiSecret = $entry['ui_secret'];
}
$devices = [];
if (isset($entry['devices'])) {
$devices = $entry['devices'];
@ -316,6 +321,7 @@ readonly class ContainerDefinitionFetcher {
$variables,
$dependsOn,
$secrets,
$uiSecret,
$devices,
$enableNvidiaGpu,
$capAdd,

View file

@ -33,6 +33,10 @@ class ConfigurationManager
}
public function GetAndGenerateSecret(string $secretId) : string {
if ($secretId === '') {
return '';
}
$config = $this->GetConfig();
if(!isset($config['secrets'][$secretId])) {
$config['secrets'][$secretId] = bin2hex(random_bytes(24));

View file

@ -1032,6 +1032,10 @@ readonly class DockerActionManager {
}
}
public function GetAndGenerateSecretWrapper(string $secretId) : string {
return $this->configurationManager->GetAndGenerateSecret($secretId);
}
public function isNextcloudImageOutdated() : bool {
$createdTime = $this->GetCreatedTimeOfNextcloudImage();

View file

@ -282,6 +282,9 @@
{% if container.GetDocumentation() != '' %}
(<a href="{{ container.GetDocumentation() }}">docs</a>)
{% endif %}
{% if container.GetUiSecret() != '' %}
(secret: {{ GetUiSecret.GetUiSecret() }} )
{% endif %}
</span>
{% elseif container.GetRunningState().value == 'running' %}
<span class="status success"></span>
@ -289,6 +292,9 @@
{% if container.GetDocumentation() != '' %}
(<a href="{{ container.GetDocumentation() }}">docs</a>)
{% endif %}
{% if container.GetUiSecret() != '' %}
(secret: {{ GetUiSecret.GetUiSecret() }} )
{% endif %}
</span>
{% else %}
<span class="status error"></span>
@ -296,6 +302,9 @@
{% if container.GetDocumentation() != '' %}
(<a href="{{ container.GetDocumentation() }}">docs</a>)
{% endif %}
{% if container.GetUiSecret() != '' %}
(secret: {{ GetUiSecret.GetUiSecret() }} )
{% endif %}
</span>
{% endif %}
</li>