Skip to content

Commit 87b6867

Browse files
committed
fix: move explanation location and add sample commands
1 parent 2da8c15 commit 87b6867

File tree

5 files changed

+135
-25
lines changed

5 files changed

+135
-25
lines changed

src/content/docs/en/guides/environment-variables.mdx

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -285,11 +285,6 @@ There are three kinds of environment variables, determined by the combination of
285285
**Secret client variables** are not supported because there is no safe way to send this data to the client. Therefore, it is not possible to configure both `context: "client"` and `access: "secret"` in your schema.
286286
:::
287287
288-
:::caution
289-
Environment variables are evaluated immediately when `astro:env/server` is imported. Therefore, **secret server variables** are validated even when running `astro build`.
290-
If your build process does not have access to these secrets, the build will fail. To fix this, you can pass dummy values to the build command to satisfy the validation.
291-
:::
292-
293288
### Data types
294289
295290
There are currently four data types supported: strings, numbers, enums, and booleans:
@@ -325,6 +320,33 @@ envField.enum({
325320
326321
<ReadMore>For a complete list of validation fields, see the [`envField` API reference](/en/reference/configuration-reference/#envschema).</ReadMore>
327322
323+
### Secrets during the build
324+
325+
**Secret server variables** are validated even during `astro build` because `astro:env/server` is evaluated on import.
326+
327+
If your build process does not have access to these secrets, the build will fail. You can pass dummy values to the build command to satisfy the validation:
328+
329+
<PackageManagerTabs>
330+
<Fragment slot="npm">
331+
```shell
332+
# Example: passing a dummy value to build
333+
MY_SECRET_KEY="placeholder" npm run build
334+
```
335+
</Fragment>
336+
<Fragment slot="pnpm">
337+
```shell
338+
# Example: passing a dummy value to build
339+
MY_SECRET_KEY="placeholder" pnpm build
340+
```
341+
</Fragment>
342+
<Fragment slot="yarn">
343+
```shell
344+
# Example: passing a dummy value to build
345+
MY_SECRET_KEY="placeholder" yarn build
346+
```
347+
</Fragment>
348+
</PackageManagerTabs>
349+
328350
### Retrieving secrets dynamically
329351
330352
Despite defining your schema, you may want to retrieve the raw value of a given secret or to retrieve secrets not defined in your schema. In this case, you can use `getSecret()` exported from `astro:env/server`:

src/content/docs/es/guides/environment-variables.mdx

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -289,11 +289,6 @@ Hay tres tipos de variables de entorno, determinados por la combinación de las
289289
**Las variables secretas de cliente** no son compatibles porque no existe una forma segura de enviar estos datos al cliente. Por lo tanto, no es posible configurar simultáneamente `context: "client"` y `access: "secret"` en tu esquema.
290290
:::
291291
292-
:::caution
293-
Al importar `astro:env/server`, las variables de entorno se evalúan de inmediato. Por lo tanto, las **variables secretas del servidor** también se validan al ejecutar `astro build`.
294-
Si el proceso de compilación no tiene acceso a estos secretos, la compilación fallará. Para solucionar este problema, puedes pasar valores ficticios en el comando de compilación para que la validación se realice correctamente.
295-
:::
296-
297292
### Tipos de datos
298293
299294
Actualmente se admiten cuatro tipos de datos: cadenas, números, enumeraciones y booleanos:
@@ -330,6 +325,33 @@ envField.enum({
330325
{/*TODO: add link to /es/reference/configuration-reference/#envschema */}
331326
<ReadMore>Para ver la lista completa de campos de validación, consulta la referencia de la API `envField`.</ReadMore>
332327
328+
### Secretos durante la construcción
329+
330+
Las **variables secretas del servidor** se validan incluso durante `astro build` debido a que `astro:env/server` se evalúa al importarse.
331+
332+
Si tu proceso de construcción no tiene acceso a estos secretos, la construcción fallará. Puedes pasar valores ficticios al comando de construcción para cumplir con la validación:
333+
334+
<PackageManagerTabs>
335+
<Fragment slot="npm">
336+
```shell
337+
# Ejemplo: pasar un valor ficticio a la construcción
338+
MY_SECRET_KEY="placeholder" npm run build
339+
```
340+
</Fragment>
341+
<Fragment slot="pnpm">
342+
```shell
343+
# Ejemplo: pasar un valor ficticio a la construcción
344+
MY_SECRET_KEY="placeholder" pnpm build
345+
```
346+
</Fragment>
347+
<Fragment slot="yarn">
348+
```shell
349+
# Ejemplo: pasar un valor ficticio a la construcción
350+
MY_SECRET_KEY="placeholder" yarn build
351+
```
352+
</Fragment>
353+
</PackageManagerTabs>
354+
333355
### Recuperar secretos de forma dinámica
334356
335357
Aunque definas tu esquema, puede que quieras obtener el valor en bruto de un secreto específico o recuperar secretos que no estén definidos en tu esquema. En este caso, puedes usar `getSecret()` exportado desde `astro:env/server`:

src/content/docs/fr/guides/environment-variables.mdx

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -285,11 +285,6 @@ Il existe trois types de variables d'environnement, déterminées par la combina
285285
Les **variables secrètes du client** ne sont pas prises en charge car il n'existe aucun moyen sûr d'envoyer ces données au client. Par conséquent, il n'est pas possible de configurer à la fois `context: "client"` et `access: "secret"` dans votre schéma.
286286
:::
287287
288-
:::caution
289-
Les variables d’environnement sont évaluées immédiatement lorsque astro:env/server est importé. Ainsi, les variables serveur secrètes sont également validées lors de l’exécution de astro build.
290-
Si votre processus de build n’a pas accès à ces variables secrètes, le build échouera. Pour résoudre ce problème, vous pouvez fournir des valeurs factices dans la commande de build afin de satisfaire la validation.
291-
:::
292-
293288
### Types de données
294289
295290
Il existe actuellement quatre types de données pris en charge : les chaînes de caractères, les nombres, les énumérations et les booléens :
@@ -325,6 +320,33 @@ envField.enum({
325320
326321
<ReadMore>Pour une liste complète des champs de validation, consultez la [référence de l'API `envField`](/fr/reference/configuration-reference/#envschema).</ReadMore>
327322
323+
### Secrets lors de la construction
324+
325+
Les **variables secrètes du serveur** sont validées même lors de `astro build` car `astro:env/server` est évalué lors de l'importation.
326+
327+
Si votre processus de construction n'a pas accès à ces secrets, la construction échouera. Vous pouvez transmettre des valeurs factices à la commande de construction pour satisfaire la validation :
328+
329+
<PackageManagerTabs>
330+
<Fragment slot="npm">
331+
```shell
332+
# Exemple : transmettre une valeur factice à la construction
333+
MY_SECRET_KEY="placeholder" npm run build
334+
```
335+
</Fragment>
336+
<Fragment slot="pnpm">
337+
```shell
338+
# Exemple : transmettre une valeur factice à la construction
339+
MY_SECRET_KEY="placeholder" pnpm build
340+
```
341+
</Fragment>
342+
<Fragment slot="yarn">
343+
```shell
344+
# Exemple : transmettre une valeur factice à la construction
345+
MY_SECRET_KEY="placeholder" yarn build
346+
```
347+
</Fragment>
348+
</PackageManagerTabs>
349+
328350
### Récupérer des secrets de manière dynamique
329351
330352
Malgré la définition de votre schéma, vous souhaiterez peut-être récupérer la valeur brute d'un secret donné ou récupérer des secrets non définis dans votre schéma. Dans ce cas, vous pouvez utiliser `getSecret()` exporté depuis `astro:env/server` :

src/content/docs/ko/guides/environment-variables.mdx

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -285,11 +285,6 @@ const data = await fetch(`${API_URL}/users`, {
285285
**비밀 클라이언트 변수**는 지원되지 않습니다. 이 데이터를 클라이언트로 안전하게 전송할 방법이 없기 때문입니다. 따라서 스키마에서 `context: "client"``access: "secret"`을 모두 구성하는 것은 불가능합니다.
286286
:::
287287
288-
:::caution
289-
`astro:env/server`를 가져오면 환경 변수가 즉시 평가됩니다. 따라서 **비밀 서버 변수**`astro build` 실행 시에도 확인됩니다.
290-
빌드 환경에서 이러한 비밀 값에 접근할 수 없으면 빌드가 실패합니다. 이 문제를 해결하려면, 검증을 통과하도록 빌드 명령어에 임시 값(더미 값)을 전달하면 됩니다.
291-
:::
292-
293288
### 데이터 타입
294289
295290
현재 문자열, 숫자, enum 및 부울의 네 가지 데이터 타입이 지원됩니다.
@@ -325,6 +320,33 @@ envField.enum({
325320
326321
<ReadMore>유효성 검사 필드의 전체 목록은 [`envField` API 참조](/ko/reference/configuration-reference/#envschema)를 확인하세요.</ReadMore>
327322
323+
### 빌드 시 비밀 변수
324+
325+
`astro:env/server`가 가져올 때 환경 변수가 즉시 평가되므로 `astro build`를 실행할 때도 **비밀 서버 변수**의 유효성이 검사됩니다.
326+
327+
빌드 프로세스에서 이러한 비밀 변수에 접근할 수 없는 경우 빌드가 실패합니다. 유효성 검사를 통과하기 위해 빌드 명령에 더미 값을 전달할 수 있습니다.
328+
329+
<PackageManagerTabs>
330+
<Fragment slot="npm">
331+
```shell
332+
# 예시: 빌드 시 더미 값 전달
333+
MY_SECRET_KEY="placeholder" npm run build
334+
```
335+
</Fragment>
336+
<Fragment slot="pnpm">
337+
```shell
338+
# 예시: 빌드 시 더미 값 전달
339+
MY_SECRET_KEY="placeholder" pnpm build
340+
```
341+
</Fragment>
342+
<Fragment slot="yarn">
343+
```shell
344+
# 예시: 빌드 시 더미 값 전달
345+
MY_SECRET_KEY="placeholder" yarn build
346+
```
347+
</Fragment>
348+
</PackageManagerTabs>
349+
328350
## 비밀 변수를 동적으로 검색
329351
330352
스키마를 정의했음에도 불구하고, 특정 비밀 변수의 원시 값을 검색하거나 스키마에 정의되지 않은 비밀 변수를 검색해야 할 수 있습니다. 이 경우 `astro:env/server`에서 내보낸 `getSecret()`을 사용할 수 있습니다.

src/content/docs/zh-cn/guides/environment-variables.mdx

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -286,11 +286,6 @@ const data = await fetch(`${API_URL}/users`, {
286286
不支持 **私密的客户端变量**,因为没有一种可以将这些数据安全发送到客户端的方式。所以,不能在你的 schema 中配置 `context: "client"``access: "secret"`
287287
:::
288288
289-
:::caution
290-
导入 `astro:env/server` 后,环境变量会被立即评估。因此,**私密的服务器变量** 在执行 `astro build` 时也会进行验证。
291-
如果构建环境无法访问这些私密变量,构建将会失败。为了解决这个问题,可以在构建命令中传入临时值(虚拟值)以通过验证。
292-
:::
293-
294289
### 数据类型
295290
296291
目前支持四种数据类型:字符串、数字、枚举和布尔值:
@@ -326,6 +321,33 @@ envField.enum({
326321
327322
<ReadMore>有关验证字段的完整列表,请参阅 [`envField` API 参考](/zh-cn/reference/configuration-reference/#envschema)。</ReadMore>
328323
324+
### 构建时的私密变量
325+
326+
由于 `astro:env/server` 在导入时会被求值,因此即使在运行 `astro build` 时,**私密的服务器变量**也会被验证。
327+
328+
如果你的构建流程无法获取这些私密变量,构建将会失败。你可以向构建命令传递占位值以通过验证:
329+
330+
<PackageManagerTabs>
331+
<Fragment slot="npm">
332+
```shell
333+
# 示例:向构建传递占位值
334+
MY_SECRET_KEY="placeholder" npm run build
335+
```
336+
</Fragment>
337+
<Fragment slot="pnpm">
338+
```shell
339+
# 示例:向构建传递占位值
340+
MY_SECRET_KEY="placeholder" pnpm build
341+
```
342+
</Fragment>
343+
<Fragment slot="yarn">
344+
```shell
345+
# 示例:向构建传递占位值
346+
MY_SECRET_KEY="placeholder" yarn build
347+
```
348+
</Fragment>
349+
</PackageManagerTabs>
350+
329351
### 动态检索私密变量
330352
331353
尽管定义了你的 schema,你可能想要检索某一个私密变量的原始值,或者检索未在你的 schema 中定义的私密变量。在这种情况下,你可以使用 `astro:env/server` 导出的 `getSecret()`

0 commit comments

Comments
 (0)