Skip to content

Commit f16d867

Browse files
authored
Normalize env vars (#589)
1 parent f3f8f69 commit f16d867

10 files changed

+51
-62
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ use of the `projectIgnorePaths` to excludes files when creating a report.
8282

8383
## Environment variables
8484

85-
- `SOCKET_SECURITY_API_TOKEN` - if set, this will be used as the API-key
85+
- `SOCKET_CLI_API_TOKEN` - if set, this will be used as the API-key
8686

8787
## Contributing
8888

@@ -101,9 +101,9 @@ That should invoke it from local sources. If you make changes you run
101101

102102
### Environment variables for development
103103

104-
- `SOCKET_SECURITY_API_BASE_URL` - if set, this will be the base for all
104+
- `SOCKET_CLI_API_BASE_URL` - if set, this will be the base for all
105105
API-calls. Defaults to `https://api.socket.dev/v0/`
106-
- `SOCKET_SECURITY_API_PROXY` - if set to something like
106+
- `SOCKET_CLI_API_PROXY` - if set to something like
107107
[`http://127.0.0.1:9090`](https://docs.proxyman.io/troubleshooting/couldnt-see-any-requests-from-3rd-party-network-libraries),
108108
then all request will be proxied through that proxy
109109

src/commands/config/cmd-config-get.test.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ describe('socket config get', async () => {
137137
'should return the env var token when set',
138138
async cmd => {
139139
const { stderr, stdout } = await invokeNpm(entryPath, cmd, {
140-
SOCKET_SECURITY_API_TOKEN: 'abc',
140+
SOCKET_CLI_API_TOKEN: 'abc',
141141
})
142142
expect(stdout).toMatchInlineSnapshot(
143143
`

src/commands/fix/npm-fix.mts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,7 @@ export async function npmFix(
132132
}
133133

134134
// Lazily access constants.ENV properties.
135-
const token =
136-
constants.ENV.SOCKET_SECURITY_GITHUB_PAT || constants.ENV.GITHUB_TOKEN
135+
const token = constants.ENV.SOCKET_CLI_GITHUB_TOKEN
137136
const isCi = !!(
138137
constants.ENV.CI &&
139138
constants.ENV.GITHUB_ACTIONS &&

src/commands/fix/open-pr.mts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,8 @@ let _octokit: Octokit | undefined
2929
function getOctokit() {
3030
if (_octokit === undefined) {
3131
_octokit = new Octokit({
32-
// Lazily access constants.ENV properties.
33-
auth:
34-
constants.ENV.SOCKET_SECURITY_GITHUB_PAT || constants.ENV.GITHUB_TOKEN,
32+
// Lazily access constants.ENV.SOCKET_CLI_GITHUB_TOKEN.
33+
auth: constants.ENV.SOCKET_CLI_GITHUB_TOKEN,
3534
})
3635
}
3736
return _octokit
@@ -42,8 +41,8 @@ export function getOctokitGraphql() {
4241
if (!_octokitGraphql) {
4342
_octokitGraphql = OctokitGraphql.defaults({
4443
headers: {
45-
// Lazily access constants.ENV properties.
46-
authorization: `token ${constants.ENV.SOCKET_SECURITY_GITHUB_PAT || constants.ENV.GITHUB_TOKEN}`,
44+
// Lazily access constants.ENV.SOCKET_CLI_GITHUB_TOKEN.
45+
authorization: `token ${constants.ENV.SOCKET_CLI_GITHUB_TOKEN}`,
4746
},
4847
})
4948
}
@@ -56,6 +55,7 @@ export async function cacheFetch<T>(
5655
ttlMs?: number | undefined,
5756
): Promise<T> {
5857
// Optionally disable cache.
58+
// Lazily access constants.ENV.DISABLE_GITHUB_CACHE.
5959
if (constants.ENV.DISABLE_GITHUB_CACHE) {
6060
return await fetcher()
6161
}

src/commands/fix/pnpm-fix.mts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,7 @@ export async function pnpmFix(
193193
}
194194

195195
// Lazily access constants.ENV properties.
196-
const token =
197-
constants.ENV.SOCKET_SECURITY_GITHUB_PAT || constants.ENV.GITHUB_TOKEN
196+
const token = constants.ENV.SOCKET_CLI_GITHUB_TOKEN
198197
const isCi = !!(
199198
constants.ENV.CI &&
200199
constants.ENV.GITHUB_ACTIONS &&

src/commands/scan/cmd-scan-github.mts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,8 @@ async function run(
109109
all = false,
110110
dryRun = false,
111111
githubApiUrl = 'https://api.github.com',
112-
githubToken = process.env['SOCKET_CLI_GITHUB_TOKEN'] || '',
112+
// Lazily access constants.ENV.SOCKET_CLI_GITHUB_TOKEN.
113+
githubToken = constants.ENV.SOCKET_CLI_GITHUB_TOKEN,
113114
interactive = true,
114115
json,
115116
markdown,

src/constants.mts

Lines changed: 26 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,14 @@ type ENV = Remap<
6464
NODE_COMPILE_CACHE: string
6565
PATH: string
6666
SOCKET_CLI_ACCEPT_RISKS: boolean
67+
SOCKET_CLI_API_BASE_URL: string
68+
SOCKET_CLI_API_PROXY: string
69+
SOCKET_CLI_API_TOKEN: string
6770
SOCKET_CLI_CONFIG: string
6871
SOCKET_CLI_DEBUG: boolean
72+
SOCKET_CLI_GITHUB_TOKEN: string
6973
SOCKET_CLI_NO_API_TOKEN: boolean
7074
SOCKET_CLI_VIEW_ALL_RISKS: boolean
71-
SOCKET_SECURITY_API_BASE_URL: string
72-
SOCKET_SECURITY_API_PROXY: string
73-
SOCKET_SECURITY_API_TOKEN: string
74-
SOCKET_SECURITY_GITHUB_PAT: string
7575
TERM: string
7676
XDG_DATA_HOME: string
7777
}>
@@ -216,6 +216,7 @@ const LAZY_ENV = () => {
216216
envAsString,
217217
} = require('@socketsecurity/registry/lib/env')
218218
const { env } = process
219+
const GITHUB_TOKEN = envAsString(env['GITHUB_TOKEN'])
219220
// We inline some environment values so that they CANNOT be influenced by user
220221
// provided environment variables.
221222
return Object.freeze({
@@ -243,7 +244,7 @@ const LAZY_ENV = () => {
243244
// The GITHUB_TOKEN secret is a GitHub App installation access token. The token's
244245
// permissions are limited to the repository that contains the workflow.
245246
// https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#about-the-github_token-secret
246-
GITHUB_TOKEN: envAsString(env['GITHUB_TOKEN']),
247+
GITHUB_TOKEN,
247248
// Comp-time inlined @cyclonedx/cdxgen package version.
248249
// The '@rollup/plugin-replace' will replace "process.env['INLINED_CYCLONEDX_CDXGEN_VERSION']".
249250
INLINED_CYCLONEDX_CDXGEN_VERSION: envAsString(
@@ -305,44 +306,36 @@ const LAZY_ENV = () => {
305306
PATH: envAsString(env['PATH']),
306307
// Flag to accepts risks of safe-npm and safe-npx run.
307308
SOCKET_CLI_ACCEPT_RISKS: envAsBoolean(env[SOCKET_CLI_ACCEPT_RISKS]),
308-
// Flag containing a JSON stringified Socket configuration object.
309-
SOCKET_CLI_CONFIG: envAsString(env['SOCKET_CLI_CONFIG']),
310-
// Flag to help debug Socket CLI.
311-
SOCKET_CLI_DEBUG: envAsBoolean(env['SOCKET_CLI_DEBUG']),
312-
// Flag to make the default API token `undefined`.
313-
SOCKET_CLI_NO_API_TOKEN: envAsBoolean(env['SOCKET_CLI_NO_API_TOKEN']),
314-
// Flag to view all risks of safe-npm and safe-npx run.
315-
SOCKET_CLI_VIEW_ALL_RISKS: envAsBoolean(env[SOCKET_CLI_VIEW_ALL_RISKS]),
316309
// Flag to change the base URL for all API-calls.
317310
// https://github.com/SocketDev/socket-cli?tab=readme-ov-file#environment-variables-for-development
318-
SOCKET_SECURITY_API_BASE_URL:
319-
envAsString(env['SOCKET_SECURITY_API_BASE_URL']) ||
320-
// For consistency; allow socket_cli prefix too
321-
envAsString(env['SOCKET_CLI_API_BASE_URL']),
311+
SOCKET_CLI_API_BASE_URL:
312+
envAsString(env['SOCKET_CLI_API_BASE_URL']) ||
313+
envAsString(env['SOCKET_SECURITY_API_BASE_URL']),
322314
// Flag to set the proxy all requests are routed through.
323315
// https://github.com/SocketDev/socket-cli?tab=readme-ov-file#environment-variables-for-development
324-
SOCKET_SECURITY_API_PROXY:
325-
envAsString(env['SOCKET_SECURITY_API_PROXY']) ||
326-
// For consistency; allow socket_cli prefix too
327-
envAsString(env['SOCKET_CLI_API_BASE_URL']),
316+
SOCKET_CLI_API_PROXY:
317+
envAsString(env['SOCKET_CLI_API_PROXY']) ||
318+
envAsString(env['SOCKET_SECURITY_API_PROXY']),
328319
// Flag to set the API token.
329320
// https://github.com/SocketDev/socket-cli?tab=readme-ov-file#environment-variables
330-
SOCKET_SECURITY_API_TOKEN:
331-
// Note: These are SOCKET_SECURITY prefixed because they're not specific
332-
// to the CLI. For the sake of consistency we'll also support the env
333-
// keys that do have the SOCKET_CLI prefix, it's an easy mistake.
334-
// In case multiple are supplied, the tokens supersede the keys and the
335-
// security prefix supersedes the cli prefix. "Adventure mode" ;)
336-
envAsString(env['SOCKET_SECURITY_API_TOKEN']) ||
337-
// Keep 'SOCKET_SECURITY_API_KEY' alias.
338-
// TODO: Remove 'SOCKET_SECURITY_API_KEY' alias.
339-
envAsString(env['SOCKET_SECURITY_API_KEY']) ||
321+
SOCKET_CLI_API_TOKEN:
340322
envAsString(env['SOCKET_CLI_API_TOKEN']) ||
341-
envAsString(env['SOCKET_CLI_API_KEY']),
323+
envAsString(env['SOCKET_CLI_API_KEY']) ||
324+
envAsString(env['SOCKET_SECURITY_API_TOKEN']) ||
325+
envAsString(env['SOCKET_SECURITY_API_KEY']),
326+
// Flag containing a JSON stringified Socket configuration object.
327+
SOCKET_CLI_CONFIG: envAsString(env['SOCKET_CLI_CONFIG']),
328+
// Flag to help debug Socket CLI.
329+
SOCKET_CLI_DEBUG: envAsBoolean(env['SOCKET_CLI_DEBUG']),
342330
// A classic GitHub personal access token with the "repo" scope or a fine-grained
343331
// access token with read/write permissions set for "Contents" and "Pull Request".
344332
// https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
345-
SOCKET_SECURITY_GITHUB_PAT: envAsString(env['SOCKET_SECURITY_GITHUB_PAT']),
333+
SOCKET_CLI_GITHUB_TOKEN:
334+
envAsString(env['SOCKET_CLI_GITHUB_TOKEN']) || GITHUB_TOKEN,
335+
// Flag to make the default API token `undefined`.
336+
SOCKET_CLI_NO_API_TOKEN: envAsBoolean(env['SOCKET_CLI_NO_API_TOKEN']),
337+
// Flag to view all risks of safe-npm and safe-npx run.
338+
SOCKET_CLI_VIEW_ALL_RISKS: envAsBoolean(env[SOCKET_CLI_VIEW_ALL_RISKS]),
346339
// Specifies the type of terminal or terminal emulator being used by the process.
347340
TERM: envAsString(env['TERM']),
348341
// The location of the base directory on Linux and MacOS used to store

src/utils/api.mts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,9 @@ export async function getErrorMessageForHttpStatusCode(code: number) {
155155

156156
// The API server that should be used for operations.
157157
export function getDefaultApiBaseUrl(): string | undefined {
158-
// Lazily access constants.ENV.SOCKET_SECURITY_API_BASE_URL.
159-
const SOCKET_SECURITY_API_BASE_URL =
160-
constants.ENV.SOCKET_SECURITY_API_BASE_URL
161158
const baseUrl =
162-
SOCKET_SECURITY_API_BASE_URL || getConfigValueOrUndef('apiBaseUrl')
159+
// Lazily access constants.ENV.SOCKET_CLI_API_BASE_URL.
160+
constants.ENV.SOCKET_CLI_API_BASE_URL || getConfigValueOrUndef('apiBaseUrl')
163161
if (isNonEmptyString(baseUrl)) {
164162
return baseUrl
165163
}

src/utils/meow-with-subcommands.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ export async function meowWithSubcommands(
144144
// The config will be marked as readOnly to prevent persisting it.
145145
overrideConfigApiToken(undefined)
146146
} else {
147-
// Lazily access constants.ENV.SOCKET_SECURITY_API_TOKEN.
148-
const tokenOverride = constants.ENV.SOCKET_SECURITY_API_TOKEN
147+
// Lazily access constants.ENV.SOCKET_CLI_API_TOKEN.
148+
const tokenOverride = constants.ENV.SOCKET_CLI_API_TOKEN
149149
if (tokenOverride) {
150150
// This will set the token (even if there was a config override) and
151151
// set it to readOnly, making sure the temp token won't be persisted.

src/utils/sdk.mts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,16 @@ const { length: TOKEN_PREFIX_LENGTH } = TOKEN_PREFIX
1919
// The API server that should be used for operations.
2020
function getDefaultApiBaseUrl(): string | undefined {
2121
const baseUrl =
22-
// Lazily access constants.ENV.SOCKET_SECURITY_API_BASE_URL.
23-
constants.ENV.SOCKET_SECURITY_API_BASE_URL ||
24-
getConfigValueOrUndef('apiBaseUrl')
22+
// Lazily access constants.ENV.SOCKET_CLI_API_BASE_URL.
23+
constants.ENV.SOCKET_CLI_API_BASE_URL || getConfigValueOrUndef('apiBaseUrl')
2524
return isNonEmptyString(baseUrl) ? baseUrl : undefined
2625
}
2726

2827
// The API server that should be used for operations.
2928
function getDefaultHttpProxy(): string | undefined {
3029
const apiProxy =
31-
// Lazily access constants.ENV.SOCKET_SECURITY_API_PROXY.
32-
constants.ENV.SOCKET_SECURITY_API_PROXY || getConfigValueOrUndef('apiProxy')
30+
// Lazily access constants.ENV.SOCKET_CLI_API_PROXY.
31+
constants.ENV.SOCKET_CLI_API_PROXY || getConfigValueOrUndef('apiProxy')
3332
return isNonEmptyString(apiProxy) ? apiProxy : undefined
3433
}
3534

@@ -41,8 +40,8 @@ export function getDefaultToken(): string | undefined {
4140
_defaultToken = undefined
4241
} else {
4342
const key =
44-
// Lazily access constants.ENV.SOCKET_SECURITY_API_TOKEN.
45-
constants.ENV.SOCKET_SECURITY_API_TOKEN ||
43+
// Lazily access constants.ENV.SOCKET_CLI_API_TOKEN.
44+
constants.ENV.SOCKET_CLI_API_TOKEN ||
4645
getConfigValueOrUndef('apiToken') ||
4746
_defaultToken
4847
_defaultToken = isNonEmptyString(key) ? key : undefined
@@ -63,8 +62,8 @@ export function hasDefaultToken(): boolean {
6362

6463
export function getPublicToken(): string {
6564
return (
66-
// Lazily access constants.ENV.SOCKET_SECURITY_API_TOKEN.
67-
(constants.ENV.SOCKET_SECURITY_API_TOKEN || getDefaultToken()) ??
65+
// Lazily access constants.ENV.SOCKET_CLI_API_TOKEN.
66+
(constants.ENV.SOCKET_CLI_API_TOKEN || getDefaultToken()) ??
6867
SOCKET_PUBLIC_API_TOKEN
6968
)
7069
}

0 commit comments

Comments
 (0)