how to use build-time secrets with Astro

hey folks I'm building an Astro site that relies on a build-time secret, assuming for prerendering but it's really only needed for runtime. I've defined this var in my env schema, but I'm encountering a build error with this var defined in my settings
17:59:51.389 01:59:51 [ERROR] [vite] x Build failed in 10ms
17:59:51.594 [EnvInvalidVariables] [astro-env-plugin] The following environment variables defined in `env.schema` are invalid:
17:59:51.595
17:59:51.595 - SPOTIFY_REFRESH_TOKEN is missing
17:59:51.595
17:59:51.595 Error reference:
17:59:51.596 https://docs.astro.build/en/reference/errors/env-invalid-variables/
17:59:51.389 01:59:51 [ERROR] [vite] x Build failed in 10ms
17:59:51.594 [EnvInvalidVariables] [astro-env-plugin] The following environment variables defined in `env.schema` are invalid:
17:59:51.595
17:59:51.595 - SPOTIFY_REFRESH_TOKEN is missing
17:59:51.595
17:59:51.595 Error reference:
17:59:51.596 https://docs.astro.build/en/reference/errors/env-invalid-variables/
I've got this defined in my astro config
export default defineConfig({
adapter: cloudflare(),
output: "server",
site: "https://josef.dev",
env: {
schema: {
SPOTIFY_CLIENT_ID: envField.string({
access: "secret",
context: "server",
optional: true,
}),
SPOTIFY_CLIENT_SECRET: envField.string({
access: "secret",
context: "server",
optional: true,
}),
SPOTIFY_REFRESH_TOKEN: envField.string({
access: "secret",
context: "server",
}),
},
validateSecrets: true,
},
export default defineConfig({
adapter: cloudflare(),
output: "server",
site: "https://josef.dev",
env: {
schema: {
SPOTIFY_CLIENT_ID: envField.string({
access: "secret",
context: "server",
optional: true,
}),
SPOTIFY_CLIENT_SECRET: envField.string({
access: "secret",
context: "server",
optional: true,
}),
SPOTIFY_REFRESH_TOKEN: envField.string({
access: "secret",
context: "server",
}),
},
validateSecrets: true,
},
1 Reply
voltron
voltronOP6h ago
weirdly enough the stack trace points at validatePublicVariables from astro but this isn't a public env var but builds locally fine with this in a .env.local file :thinkies: this was previously a static site though, could that be an issue?

Did you find this page helpful?