feat: let administrators view and copy encrypted integration credentials

This commit is contained in:
2026-09-27 13:48:26 +08:00
parent 5555a7b342
commit d54bdd9847
38 changed files with 905 additions and 71 deletions

View File

@@ -46,6 +46,13 @@ E2E_APPLICATION="console-e2e-$E2E_SUFFIX"
E2E_ADMIN="orbit-admin-$E2E_SUFFIX"
printf '%s\n' "$E2E_CONSOLE_PASSWORD" > "$E2E_PASSWORD_FILE"
python3 - "$E2E_DIR/credential-keys.json" <<'PY_KEY'
import base64, json, pathlib, secrets, sys
path = pathlib.Path(sys.argv[1])
path.write_text(json.dumps({'active':'test-v1', 'keys':{'test-v1':base64.b64encode(secrets.token_bytes(32)).decode()}}))
path.chmod(0o600)
PY_KEY
printf '%s\n' "[1/8] build image"
"$E2E_DOCKER" build --tag "$E2E_IMAGE" . >/dev/null
"$E2E_DOCKER" run -d --name "$E2E_MYSQL" --network bridge \
@@ -76,6 +83,7 @@ printf '%s\n' "[3/8] bootstrap resources and console administrator"
"$E2E_DOCKER" run --rm -i --network bridge --link "$E2E_MYSQL:mysql" \
--env ORBIT_MYSQL_DSN="$E2E_DSN" \
--volume "$E2E_DIR:/run/orbit" \
--env ORBIT_CREDENTIAL_KEY_FILE=/run/orbit/credential-keys.json \
--entrypoint /usr/local/bin/orbit-admin "$E2E_IMAGE" bootstrap \
--application "$E2E_APPLICATION" \
--namespace default \
@@ -87,6 +95,7 @@ printf '%s\n' "[3/8] bootstrap resources and console administrator"
--console-display-name 'Orbit E2E 管理员' \
--console-password-stdin \
--output /run/orbit/credentials.json < "$E2E_PASSWORD_FILE" >/dev/null
"$E2E_DOCKER" run --rm --user 0:0 --volume "$E2E_DIR:/run/orbit" --entrypoint /bin/sh mysql:8.4 -c 'chown 65532:65532 /run/orbit/credential-keys.json'
E2E_QUEUE=$(python3 - "$E2E_CREDENTIALS_FILE" <<'PY'
import json
import sys
@@ -107,6 +116,8 @@ printf '%s\n' "[4/8] start Orbit container"
--env ORBIT_HTTP_ADDR=0.0.0.0:8080 \
--env ORBIT_CONSOLE_QUEUE_ID="$E2E_QUEUE" \
--env ORBIT_CONSOLE_APPLICATION_ADMIN="$E2E_ADMIN" \
--env ORBIT_CREDENTIAL_KEY_FILE=/run/credential-keys.json \
--volume "$E2E_DIR/credential-keys.json:/run/credential-keys.json:ro" \
--env ORBIT_ARCHIVE_ROOT=/var/lib/orbit/archive \
--env ORBIT_ARCHIVE_STORAGE_ID="$E2E_STORAGE_ID" \
--env ORBIT_ARCHIVE_TICK_INTERVAL=1s \