fix(magic env) HEX secrets creating double the length of their name (#9820)
This commit is contained in:
commit
61b124b434
7 changed files with 42 additions and 14 deletions
|
|
@ -1400,23 +1400,23 @@ function generateEnvValue(string $command, Service|Application|null $service = n
|
|||
break;
|
||||
// This is base64,
|
||||
case 'REALBASE64_64':
|
||||
$generatedValue = base64_encode(Str::random(64));
|
||||
$generatedValue = base64_encode(random_bytes(64));
|
||||
break;
|
||||
case 'REALBASE64_128':
|
||||
$generatedValue = base64_encode(Str::random(128));
|
||||
$generatedValue = base64_encode(random_bytes(128));
|
||||
break;
|
||||
case 'REALBASE64':
|
||||
case 'REALBASE64_32':
|
||||
$generatedValue = base64_encode(Str::random(32));
|
||||
$generatedValue = base64_encode(random_bytes(32));
|
||||
break;
|
||||
case 'HEX_32':
|
||||
$generatedValue = bin2hex(Str::random(32));
|
||||
$generatedValue = bin2hex(random_bytes(16));
|
||||
break;
|
||||
case 'HEX_64':
|
||||
$generatedValue = bin2hex(Str::random(64));
|
||||
$generatedValue = bin2hex(random_bytes(32));
|
||||
break;
|
||||
case 'HEX_128':
|
||||
$generatedValue = bin2hex(Str::random(128));
|
||||
$generatedValue = bin2hex(random_bytes(64));
|
||||
break;
|
||||
case 'USER':
|
||||
$generatedValue = Str::random(16);
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ services:
|
|||
environment:
|
||||
- SERVICE_URL_PDS_3000
|
||||
- 'PDS_HOSTNAME=${SERVICE_FQDN_PDS}'
|
||||
- 'PDS_JWT_SECRET=${SERVICE_HEX_32_JWTSECRET}'
|
||||
- 'PDS_JWT_SECRET=${SERVICE_HEX_64_JWTSECRET}'
|
||||
- 'PDS_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}'
|
||||
- 'PDS_ADMIN_EMAIL=${PDS_ADMIN_EMAIL}'
|
||||
- 'PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=${SERVICE_HEX_32_ROTATIONKEY}'
|
||||
- 'PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=${SERVICE_HEX_64_ROTATIONKEY}'
|
||||
- 'PDS_DATA_DIRECTORY=${PDS_DATA_DIRECTORY:-/pds}'
|
||||
- 'PDS_BLOBSTORE_DISK_LOCATION=${PDS_DATA_DIRECTORY:-/pds}/blocks'
|
||||
- 'PDS_BLOB_UPLOAD_LIMIT=${PDS_BLOB_UPLOAD_LIMIT:-104857600}'
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ services:
|
|||
environment:
|
||||
- SERVICE_URL_BACKEND_3210
|
||||
- INSTANCE_NAME=${INSTANCE_NAME:-self-hosted-convex}
|
||||
- INSTANCE_SECRET=${SERVICE_HEX_32_SECRET}
|
||||
- INSTANCE_SECRET=${SERVICE_HEX_64_SECRET}
|
||||
- CONVEX_RELEASE_VERSION_DEV=${CONVEX_RELEASE_VERSION_DEV:-}
|
||||
- ACTIONS_USER_TIMEOUT_SECS=${ACTIONS_USER_TIMEOUT_SECS:-}
|
||||
# URL of the Convex API as accessed by the client/frontend.
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ services:
|
|||
environment:
|
||||
- SERVICE_URL_OUTLINE_3000
|
||||
- NODE_ENV=production
|
||||
- SECRET_KEY=${SERVICE_HEX_32_OUTLINE}
|
||||
- SECRET_KEY=${SERVICE_HEX_64_OUTLINE}
|
||||
- UTILS_SECRET=${SERVICE_PASSWORD_64_OUTLINE}
|
||||
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_64_POSTGRES}@postgres:5432/${POSTGRES_DATABASE:-outline}
|
||||
- REDIS_URL=redis://:${SERVICE_PASSWORD_64_REDIS}@redis:6379
|
||||
|
|
|
|||
|
|
@ -10,8 +10,7 @@ services:
|
|||
image: ghcr.io/homarr-labs/homarr:v1.40.0
|
||||
environment:
|
||||
- SERVICE_URL_HOMARR_7575
|
||||
- SERVICE_HEX_32_HOMARR
|
||||
- 'SECRET_ENCRYPTION_KEY=${SERVICE_HEX_32_HOMARR}'
|
||||
- 'SECRET_ENCRYPTION_KEY=${SERVICE_HEX_64_HOMARR}'
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ./homarr/appdata:/appdata
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ services:
|
|||
image: logiclabshq/open-archiver:latest
|
||||
environment:
|
||||
- SERVICE_URL_OPENARCHIVER_3000
|
||||
- ENCRYPTION_KEY=${SERVICE_HEX_32_ENCRYPTIONKEY}
|
||||
- STORAGE_ENCRYPTION_KEY=${SERVICE_HEX_32_STORAGEENCRYPTIONKEY}
|
||||
- ENCRYPTION_KEY=${SERVICE_HEX_64_ENCRYPTIONKEY}
|
||||
- STORAGE_ENCRYPTION_KEY=${SERVICE_HEX_64_STORAGEENCRYPTIONKEY}
|
||||
- PORT_BACKEND=${PORT_BACKEND:-4000}
|
||||
- PORT_FRONTEND=${PORT_FRONTEND:-3000}
|
||||
- NODE_ENV=${NODE_ENV:-production}
|
||||
|
|
|
|||
29
tests/Unit/GenerateEnvValueTest.php
Normal file
29
tests/Unit/GenerateEnvValueTest.php
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
test('hex magic variables generate valid hex strings with expected lengths', function (string $command, int $expectedLength) {
|
||||
$value = generateEnvValue($command);
|
||||
|
||||
expect($value)
|
||||
->toBeString()
|
||||
->toMatch('/^[0-9a-f]+$/');
|
||||
|
||||
expect(strlen($value))->toBe($expectedLength);
|
||||
})->with([
|
||||
'HEX_32' => ['HEX_32', 32],
|
||||
'HEX_64' => ['HEX_64', 64],
|
||||
'HEX_128' => ['HEX_128', 128],
|
||||
]);
|
||||
|
||||
test('real base64 magic variables generate valid base64 strings from expected byte lengths', function (string $command, int $expectedBytes) {
|
||||
$value = generateEnvValue($command);
|
||||
$decodedValue = base64_decode($value, true);
|
||||
|
||||
expect($value)->toBeString();
|
||||
expect($decodedValue)->not->toBeFalse();
|
||||
expect(strlen($decodedValue))->toBe($expectedBytes);
|
||||
})->with([
|
||||
'REALBASE64' => ['REALBASE64', 32],
|
||||
'REALBASE64_32' => ['REALBASE64_32', 32],
|
||||
'REALBASE64_64' => ['REALBASE64_64', 64],
|
||||
'REALBASE64_128' => ['REALBASE64_128', 128],
|
||||
]);
|
||||
Loading…
Reference in a new issue