summaryrefslogtreecommitdiff
path: root/.changeset/poor-berries-occur.md
diff options
context:
space:
mode:
Diffstat (limited to '.changeset/poor-berries-occur.md')
-rw-r--r--.changeset/poor-berries-occur.md70
1 files changed, 0 insertions, 70 deletions
diff --git a/.changeset/poor-berries-occur.md b/.changeset/poor-berries-occur.md
deleted file mode 100644
index 49b3c75ec..000000000
--- a/.changeset/poor-berries-occur.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-"astro": minor
----
-
-Adds experimental support for the `astro:env` API.
-
-The `astro:env` API lets you configure a type-safe schema for your environment variables, and indicate whether they should be available on the server or the client. Import and use your defined variables from the appropriate `/client` or `/server` module:
-
-```astro
----
-import { PUBLIC_APP_ID } from "astro:env/client"
-import { PUBLIC_API_URL, getSecret } from "astro:env/server"
-const API_TOKEN = getSecret("API_TOKEN")
-
-const data = await fetch(`${PUBLIC_API_URL}/users`, {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- "Authorization": `Bearer ${API_TOKEN}`
- },
- body: JSON.stringify({ appId: PUBLIC_APP_ID })
-})
----
-```
-
-To define the data type and properties of your environment variables, declare a schema in your Astro config in `experimental.env.schema`. The `envField` helper allows you define your variable as a string, number, or boolean and pass properties in an object:
-
-```js
-// astro.config.mjs
-import { defineConfig, envField } from "astro/config"
-
-export default defineConfig({
- experimental: {
- env: {
- schema: {
- PUBLIC_API_URL: envField.string({ context: "client", access: "public", optional: true }),
- PUBLIC_PORT: envField.number({ context: "server", access: "public", default: 4321 }),
- API_SECRET: envField.string({ context: "server", access: "secret" }),
- }
- }
- }
-})
-```
-
-There are three kinds of environment variables, determined by the combination of `context` (`client` or `server`) and `access` (`private` or `public`) settings defined in your [`env.schema`](#experimentalenvschema):
-
-- **Public client variables**: These variables end up in both your final client and server bundles, and can be accessed from both client and server through the `astro:env/client` module:
-
- ```js
- import { PUBLIC_API_URL } from "astro:env/client"
- ```
-
-- **Public server variables**: These variables end up in your final server bundle and can be accessed on the server through the `astro:env/server` module:
-
- ```js
- import { PUBLIC_PORT } from "astro:env/server"
- ```
-
-- **Secret server variables**: These variables are not part of your final bundle and can be accessed on the server through the `getSecret()` helper function available from the `astro:env/server` module:
-
- ```js
- import { getSecret } from "astro:env/server"
-
- const API_SECRET = getSecret("API_SECRET") // typed
- const SECRET_NOT_IN_SCHEMA = getSecret("SECRET_NOT_IN_SCHEMA") // string | undefined
- ```
-
-**Note:** 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.
-
-To learn more, check out [the documentation](https://docs.astro.build/en/reference/configuration-reference/#experimentalenv). \ No newline at end of file