From decfe56da43d975f3ecb41f6d1d835f9cdadc4cf Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Tue, 18 Aug 2026 23:25:12 +0000
Subject: [PATCH 1/3] docs: update static export API to projectId-scoped 2-step
flow
---
api/static-export/generate-bundle.mdx | 10 --
api/static-export/get-job-status.mdx | 5 +-
api/static-export/overview.mdx | 69 ++++-----
api/static-export/start-job.mdx | 3 +-
docs.json | 3 +-
es.json | 3 +-
es/api/static-export/generate-bundle.mdx | 10 --
es/api/static-export/get-job-status.mdx | 2 +-
es/api/static-export/overview.mdx | 114 +++++++--------
es/api/static-export/start-job.mdx | 2 +-
es/static-export-openapi.json | 172 +++++++----------------
fr.json | 3 +-
fr/api/static-export/generate-bundle.mdx | 9 --
fr/api/static-export/get-job-status.mdx | 2 +-
fr/api/static-export/overview.mdx | 109 ++++++--------
fr/api/static-export/start-job.mdx | 2 +-
fr/static-export-openapi.json | 172 +++++++----------------
static-export-openapi.json | 170 ++++++----------------
zh.json | 3 +-
zh/api/static-export/generate-bundle.mdx | 9 --
zh/api/static-export/get-job-status.mdx | 2 +-
zh/api/static-export/overview.mdx | 107 ++++++--------
zh/api/static-export/start-job.mdx | 2 +-
zh/static-export-openapi.json | 172 +++++++----------------
24 files changed, 375 insertions(+), 780 deletions(-)
delete mode 100644 api/static-export/generate-bundle.mdx
delete mode 100644 es/api/static-export/generate-bundle.mdx
delete mode 100644 fr/api/static-export/generate-bundle.mdx
delete mode 100644 zh/api/static-export/generate-bundle.mdx
diff --git a/api/static-export/generate-bundle.mdx b/api/static-export/generate-bundle.mdx
deleted file mode 100644
index b673266388..0000000000
--- a/api/static-export/generate-bundle.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: "Generate export bundle"
-openapi: "/static-export-openapi.json POST /static-export/jobs/{jobId}/bundle"
-keywords: ["static export", "bundle", "s3", "download", "enterprise"]
----
-
-
- This endpoint is in private beta and requires an enterprise agreement. Please contact [sales@mintlify.com](mailto:sales@mintlify.com) to inquire further.
-
-
diff --git a/api/static-export/get-job-status.mdx b/api/static-export/get-job-status.mdx
index 4aa69a925f..fb974bdbbf 100644
--- a/api/static-export/get-job-status.mdx
+++ b/api/static-export/get-job-status.mdx
@@ -1,10 +1,9 @@
---
title: "Get static export job status"
-openapi: "/static-export-openapi.json GET /static-export/jobs/{jobId}"
-keywords: ["static export", "job", "status", "progress", "enterprise"]
+openapi: "/static-export-openapi.json GET /static-export/{projectId}/jobs/{jobId}"
+keywords: ["static export", "job", "status", "bundle", "enterprise"]
---
This endpoint is in private beta and requires an enterprise agreement. Please contact [sales@mintlify.com](mailto:sales@mintlify.com) to inquire further.
-
diff --git a/api/static-export/overview.mdx b/api/static-export/overview.mdx
index bc758c565c..76a132995f 100644
--- a/api/static-export/overview.mdx
+++ b/api/static-export/overview.mdx
@@ -20,17 +20,18 @@ Static exports use `.html` URLs that match the files in the bundle. For example,
## How static export works
-A static export runs as an asynchronous job. You start the job, poll for its status, and then generate a downloadable bundle once the job completes.
+A static export runs as an asynchronous job. You start the job for a project, then poll for its status until the bundle is ready to download.
- Call [Start static export job](/api/static-export/start-job) with the domain you want to export. The API queues the job and returns a `jobId`.
-
-
- Poll [Get static export job status](/api/static-export/get-job-status) with the `jobId` until `status` is `completed`. The response includes live `progress` and `pageCount` while the job runs.
+ Call [Start static export job](/api/static-export/start-job) with your project ID. The API queues the job and returns a `jobId`.
+
+ A deployment can have only one active job at a time. If a job is already `queued` or `running` for the deployment, the endpoint returns `409`. The endpoint is rate-limited to 10 job starts per organization per hour.
-
- Call [Generate export bundle](/api/static-export/generate-bundle) with the `jobId`. The API packages the export into a single archive and returns `bundleUrl`, a presigned S3 link to the static export bundle, alongside an `expiresAt` timestamp. Download the bundle before the `expiresAt` time. After the `expiresAt` time, call [Generate export bundle](/api/static-export/generate-bundle) again to get a fresh link. The underlying job and its files remain reusable. Only the link is time-limited.
+
+ Poll [Get static export job status](/api/static-export/get-job-status) with the `jobId` until `status` is `completed`. The completed response includes `bundleUrl`, a time-limited presigned S3 link to the bundle, along with `sizeBytes` and an `expiresAt` timestamp.
+
+ Download the bundle before `expiresAt`. After it expires, call the status endpoint again to get a fresh `bundleUrl`. The underlying export files remain reusable. Only the link is time-limited.
@@ -48,27 +49,28 @@ Which features are available depends on how you host your deployment. Air-gapped
## Endpoints
-- [Start static export job](/api/static-export/start-job): Start a static export job for a deployment.
-- [Get static export job status](/api/static-export/get-job-status): Poll the status and progress of a running job.
-- [Generate export bundle](/api/static-export/generate-bundle): Package a completed job and return a single S3 link to the bundle.
+- [Start static export job](/api/static-export/start-job): Queue a static export job for a project.
+- [Get static export job status](/api/static-export/get-job-status): Poll job state and, once complete, retrieve a presigned bundle download link.
## Authentication
Authenticate requests with your admin API key. Generate an admin API key on the [API keys page](https://app.mintlify.com/settings/organization/api-keys) in your dashboard. Admin API keys begin with the `mint_` prefix and are server-side secrets—do not expose them in client-side code.
+Copy your project ID from the same page and use it as the `projectId` path parameter.
+
## Deploy the bundle to your Enterprise Helm chart
-Self-hosted Mintlify deploys with the Helm chart in the [`mintlify/enterprise`](https://github.com/mintlify/enterprise) repository. Once a static export job produces a bundle, you point the chart at the bundle and the deployment serves it from your own infrastructure.
+Self-hosted Mintlify deploys with the Helm chart in the [`mintlify/enterprise`](https://github.com/mintlify/enterprise) repository. Once a static export job completes, you point the chart at the `bundleUrl` and the deployment serves it from your own infrastructure.
- Set the static export fields in your `values.yaml` to the `bundleUrl` returned by [Generate export bundle](/api/static-export/generate-bundle). The chart fetches the bundle on startup and serves it as the active version.
+ Set the static export fields in your `values.yaml` to the `bundleUrl` returned by [Get static export job status](/api/static-export/get-job-status). The chart fetches the bundle on startup and serves it as the active version.
```yaml values.yaml
staticExport:
enabled: true
- # Presigned S3 link returned by the Generate export bundle endpoint.
- bundleUrl: "https://mintlify-static-exports.s3.amazonaws.com/se_3f9a2c1b8e7d4a06/bundle.tar.gz"
+ # Presigned S3 link returned by the Get static export job status endpoint.
+ bundleUrl: "https://mintlify-static-exports.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.zip"
# Optional: pin to a specific export version for reproducible rollouts.
version: "2024-06-01"
```
@@ -85,11 +87,11 @@ Self-hosted Mintlify deploys with the Helm chart in the [`mintlify/enterprise`](
-Because presigned links expire, regenerate the bundle and re-run the upgrade whenever you publish new content or automate the loop with GitHub Actions.
+Because presigned links expire, re-fetch the job status and re-run the upgrade whenever you publish new content or automate the loop with GitHub Actions.
## Automate with a GitHub Action
-The following template workflow runs the full export loop on a schedule or on demand. It starts a job, polls until the export completes, generates a bundle, and rolls the new `bundleUrl` into the Helm chart.
+The following template workflow runs the full export loop on a schedule or on demand. It starts a job, polls until the export completes, then rolls the new `bundleUrl` into the Helm chart.
```yaml .github/workflows/static-export.yml
name: Publish static export
@@ -99,6 +101,9 @@ on:
schedule:
- cron: "0 6 * * *" # Daily at 06:00 UTC
+env:
+ PROJECT_ID: proj_your_project_id
+
jobs:
export:
runs-on: ubuntu-latest
@@ -106,33 +111,31 @@ jobs:
- name: Start static export job
id: start
run: |
- JOB_ID=$(curl -s -X POST https://api.mintlify.com/v1/static-export/jobs \
- -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" \
- -H "Content-Type: application/json" \
- -d '{"domain": "docs.example.com"}' | jq -r '.jobId')
+ JOB_ID=$(curl -s -X POST \
+ https://api.mintlify.com/v1/static-export/${{ env.PROJECT_ID }}/jobs \
+ -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.jobId')
echo "job_id=$JOB_ID" >> "$GITHUB_OUTPUT"
- - name: Wait for the job to complete
+ - name: Wait for the job to complete and capture the bundle URL
+ id: bundle
run: |
for i in $(seq 1 60); do
- STATUS=$(curl -s https://api.mintlify.com/v1/static-export/jobs/${{ steps.start.outputs.job_id }} \
- -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.status')
+ RESPONSE=$(curl -s \
+ https://api.mintlify.com/v1/static-export/${{ env.PROJECT_ID }}/jobs/${{ steps.start.outputs.job_id }} \
+ -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}")
+ STATUS=$(echo "$RESPONSE" | jq -r '.status')
echo "status=$STATUS"
- [ "$STATUS" = "completed" ] && exit 0
+ if [ "$STATUS" = "completed" ]; then
+ BUNDLE_URL=$(echo "$RESPONSE" | jq -r '.bundleUrl')
+ echo "bundle_url=$BUNDLE_URL" >> "$GITHUB_OUTPUT"
+ exit 0
+ fi
[ "$STATUS" = "failed" ] && exit 1
sleep 10
done
echo "Timed out waiting for the export job to complete." >&2
exit 1
- - name: Generate the bundle
- id: bundle
- run: |
- BUNDLE_URL=$(curl -s -X POST \
- https://api.mintlify.com/v1/static-export/jobs/${{ steps.start.outputs.job_id }}/bundle \
- -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.bundleUrl')
- echo "bundle_url=$BUNDLE_URL" >> "$GITHUB_OUTPUT"
-
- name: Deploy to the Helm chart
run: |
helm upgrade --install mintlify mintlify/enterprise \
@@ -141,4 +144,4 @@ jobs:
--set staticExport.bundleUrl="${{ steps.bundle.outputs.bundle_url }}"
```
-Store your admin API key as the `MINTLIFY_ADMIN_KEY` repository secret. Before deploying, configure cluster credentials, for example with `azure/setup-helm` and your Kubernetes configuration file (`kubeconfig`).
+Store your admin API key as the `MINTLIFY_ADMIN_KEY` repository secret and set `PROJECT_ID` to your project's ID. Before deploying, configure cluster credentials, for example with `azure/setup-helm` and your Kubernetes configuration file (`kubeconfig`).
diff --git a/api/static-export/start-job.mdx b/api/static-export/start-job.mdx
index 6358bd8919..7464e9a792 100644
--- a/api/static-export/start-job.mdx
+++ b/api/static-export/start-job.mdx
@@ -1,10 +1,9 @@
---
title: "Start static export job"
-openapi: "/static-export-openapi.json POST /static-export/jobs"
+openapi: "/static-export-openapi.json POST /static-export/{projectId}/jobs"
keywords: ["static export", "job", "start", "bundle", "enterprise"]
---
This endpoint is in private beta and requires an enterprise agreement. Please contact [sales@mintlify.com](mailto:sales@mintlify.com) to inquire further.
-
diff --git a/docs.json b/docs.json
index 15029ca54c..5f6b80a98d 100644
--- a/docs.json
+++ b/docs.json
@@ -445,8 +445,7 @@
"group": "Static export",
"pages": [
"api/static-export/start-job",
- "api/static-export/get-job-status",
- "api/static-export/generate-bundle"
+ "api/static-export/get-job-status"
]
}
]
diff --git a/es.json b/es.json
index e5370bde23..c5768b1c64 100644
--- a/es.json
+++ b/es.json
@@ -423,8 +423,7 @@
"group": "Exportación estática",
"pages": [
"es/api/static-export/start-job",
- "es/api/static-export/get-job-status",
- "es/api/static-export/generate-bundle"
+ "es/api/static-export/get-job-status"
]
}
]
diff --git a/es/api/static-export/generate-bundle.mdx b/es/api/static-export/generate-bundle.mdx
deleted file mode 100644
index 3e46d1ee9b..0000000000
--- a/es/api/static-export/generate-bundle.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: "Generar paquete de exportación"
-openapi: "/es/static-export-openapi.json POST /static-export/jobs/{jobId}/bundle"
-keywords: ["static export", "bundle", "s3", "download", "enterprise"]
----
-
-
- Este endpoint está en beta privada y requiere un acuerdo empresarial. Contacta con [sales@mintlify.com](mailto:sales@mintlify.com) para más información.
-
-
diff --git a/es/api/static-export/get-job-status.mdx b/es/api/static-export/get-job-status.mdx
index 0c2230364d..375a80637d 100644
--- a/es/api/static-export/get-job-status.mdx
+++ b/es/api/static-export/get-job-status.mdx
@@ -1,6 +1,6 @@
---
title: "Obtener estado del job de exportación estática"
-openapi: "/es/static-export-openapi.json GET /static-export/jobs/{jobId}"
+openapi: "/es/static-export-openapi.json GET /static-export/{projectId}/jobs/{jobId}"
keywords: ["static export", "job", "status", "progress", "enterprise"]
---
diff --git a/es/api/static-export/overview.mdx b/es/api/static-export/overview.mdx
index 737355e536..fa2ceb537e 100644
--- a/es/api/static-export/overview.mdx
+++ b/es/api/static-export/overview.mdx
@@ -1,6 +1,6 @@
---
title: "Exportación estática"
-description: "Genera una exportación estática autocontenida de tu documentación y descárgala como un único paquete a través de la API REST de Mintlify."
+description: "Genera una exportación estática autocontenida de tu documentación y descárgala como un único paquete a través de la API REST de Mintlify para autoalojarla."
keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
---
@@ -10,46 +10,32 @@ keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
Usa la API de exportación estática para prerenderizar tu sitio de forma programática en un conjunto autocontenido de archivos estáticos y descargar el resultado como un único paquete. El paquete exportado es HTML, CSS y JavaScript puros, sin dependencias en tiempo de ejecución, por lo que puedes alojarlo en cualquier almacenamiento de archivos estáticos o CDN.
-
- ## URLs en paquetes estáticos
-
+## URLs de página en paquetes estáticos
-Los paquetes de exportación estática usan URLs de página explícitas con la extensión `.html`.
-La exportación convierte `/guides/getting-started` en `/guides/getting-started.html`.
-La exportación convierte la página de inicio en `/index.html`.
-Este formato coincide con los archivos del paquete y permite alojarlos en S3 o en un hosting estático sencillo, sin reescrituras para URLs sin extensión.
-Conserva los nombres de archivo `.html` al subirlos. La API de exportación estática habilita este formato automáticamente, por lo que no necesitas cambiar la configuración de tu documentación.
-Los despliegues con CloudFront conservan la navegación del lado del cliente y la precarga.
-Los servidores que solo sirven archivos permiten la navegación de página completa mediante los enlaces `.html` generados.
-Los sitios de producción alojados en la nube siguen sin cambios.
-
-La navegación interna integrada también utiliza destinos `.html`. Esto incluye los selectores de versión e idioma, los resultados de búsqueda, las tarjetas, las citas del asistente y los enlaces del playground de API. Las cadenas de consulta se conservan, por lo que los enlaces del playground de API siguen funcionando.
+Las exportaciones estáticas usan URLs `.html` que coinciden con los archivos del paquete. Por ejemplo, `/guides/getting-started` se convierte en `/guides/getting-started.html`. Esto sucede de forma automática y no requiere configuración.
- Las URL canónicas y las del sitemap siguen sin extensión. Las URL personalizadas de navegación del lado del cliente también pueden seguir sin extensión. Los despliegues con CloudFront las resuelven, pero los servidores que solo sirven archivos quizá necesiten reescrituras.
+ Las URLs canónicas y las del sitemap siguen sin extensión. CloudFront resuelve estas URLs automáticamente, pero otros hostings estáticos pueden requerir reglas de reescritura.
-
- ## Cómo funciona la exportación estática
-
+## Cómo funciona la exportación estática
-Una exportación estática se ejecuta como un job asíncrono. Inicias el job, consultas periódicamente su estado y luego generas un paquete descargable una vez que el job se completa.
+Una exportación estática se ejecuta como un trabajo asíncrono. Inicias el trabajo para un proyecto y luego consultas su estado hasta que el paquete esté listo para descargar.
-
- Llama a [Iniciar job de exportación estática](/es/api/static-export/start-job) con el dominio que quieres exportar. La API pone el job en cola y devuelve un `jobId`.
-
-
- Consulta [Obtener estado del job de exportación estática](/es/api/static-export/get-job-status) con el `jobId` hasta que `status` sea `completed`. La respuesta incluye el `progress` y el `pageCount` en tiempo real mientras el job se ejecuta.
+
+ Llama a [Iniciar trabajo de exportación estática](/api/static-export/start-job) con tu ID de proyecto. La API pone el trabajo en cola y devuelve un `jobId`.
+
+ Una implementación solo puede tener un trabajo activo a la vez. Si ya hay un trabajo `queued` o `running` para la implementación, el endpoint devuelve `409`. El endpoint está limitado a 10 inicios de trabajo por organización por hora.
-
- Llama a [Generar paquete de exportación](/es/api/static-export/generate-bundle) con el `jobId`. La API empaqueta la exportación en un único archivo y devuelve `bundleUrl`, un enlace S3 prefirmado al paquete de exportación estática, junto con una marca de tiempo `expiresAt`. Descarga el paquete antes de `expiresAt`; después de esa fecha, llama de nuevo a [Generar paquete de exportación](/es/api/static-export/generate-bundle) para obtener un enlace nuevo. El job subyacente y sus archivos siguen siendo reutilizables; solo el enlace tiene tiempo limitado.
+
+ Consulta [Obtener estado del trabajo de exportación estática](/api/static-export/get-job-status) con el `jobId` hasta que `status` sea `completed`. La respuesta completada incluye `bundleUrl`, un enlace de S3 prefirmado con tiempo limitado al paquete, junto con `sizeBytes` y una marca de tiempo `expiresAt`.
+
+ Descarga el paquete antes de `expiresAt`. Una vez que caduque, vuelve a llamar al endpoint de estado para obtener un `bundleUrl` nuevo. Los archivos de exportación subyacentes siguen siendo reutilizables. Solo el enlace tiene tiempo limitado.
-
- ## Compatibilidad de funciones por tipo de despliegue
-
+## Compatibilidad de funciones por tipo de despliegue
Las funciones disponibles dependen de cómo alojes tu despliegue. Los despliegues aislados (air-gapped) no tienen acceso saliente a la red, por lo que cualquier función que dependa de los servicios en la nube de Mintlify no está disponible. Las funciones etiquetadas como **Configurable** tienen distinta disponibilidad según la configuración de tu entorno.
@@ -61,35 +47,30 @@ Las funciones disponibles dependen de cómo alojes tu despliegue. Los despliegue
| Playground de API ("Try it") | | | Configurable |
| Paquete de exportación estática | | | |
-
- ## Endpoints
-
+## Endpoints
-- [Iniciar job de exportación estática](/es/api/static-export/start-job): Inicia un job de exportación estática para un despliegue.
-- [Obtener estado del job de exportación estática](/es/api/static-export/get-job-status): Consulta el estado y el progreso de un job en ejecución.
-- [Generar paquete de exportación](/es/api/static-export/generate-bundle): Empaqueta un job completado y devuelve un único enlace S3 al paquete.
+- [Iniciar trabajo de exportación estática](/api/static-export/start-job): Pone en cola un trabajo de exportación estática para un proyecto.
+- [Obtener estado del trabajo de exportación estática](/api/static-export/get-job-status): Consulta el estado del trabajo y, una vez completado, recupera un enlace prefirmado para descargar el paquete.
-
- ## Autenticación
-
+## Autenticación
Autentica las solicitudes con tu clave de API de administrador. Genera una clave de API de administrador en la [página de claves de API](https://app.mintlify.com/settings/organization/api-keys) de tu panel. Las claves de API de administrador comienzan con el prefijo `mint_` y son secretos del lado del servidor: no las expongas en código del lado del cliente.
-
- ## Desplegar el paquete en tu Helm chart de Enterprise
-
+Copia tu ID de proyecto desde la misma página y úsalo como el parámetro de ruta `projectId`.
+
+## Desplegar el paquete en tu Helm chart de Enterprise
-Mintlify autoalojado se implementa con el Helm chart del repositorio [`mintlify/enterprise`](https://github.com/mintlify/enterprise). Una vez que un job de exportación estática produce un paquete, apuntas el chart al paquete y el despliegue lo sirve desde tu propia infraestructura.
+Mintlify autoalojado se implementa con el Helm chart del repositorio [`mintlify/enterprise`](https://github.com/mintlify/enterprise). Una vez que un trabajo de exportación estática se completa, apuntas el chart al `bundleUrl` y el despliegue lo sirve desde tu propia infraestructura.
- Configura los campos de exportación estática en tu `values.yaml` con el `bundleUrl` devuelto por [Generar paquete de exportación](/es/api/static-export/generate-bundle). El chart descarga el paquete al iniciarse y lo sirve como la versión activa.
+ Configura los campos de exportación estática en tu `values.yaml` con el `bundleUrl` devuelto por [Obtener estado del trabajo de exportación estática](/api/static-export/get-job-status). El chart descarga el paquete al iniciarse y lo sirve como la versión activa.
```yaml values.yaml
staticExport:
enabled: true
- # Presigned S3 link returned by the Generate export bundle endpoint.
- bundleUrl: "https://mintlify-static-exports.s3.amazonaws.com/se_3f9a2c1b8e7d4a06/bundle.tar.gz"
+ # Presigned S3 link returned by the Get static export job status endpoint.
+ bundleUrl: "https://mintlify-static-exports.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.zip"
# Optional: pin to a specific export version for reproducible rollouts.
version: "2024-06-01"
```
@@ -106,13 +87,11 @@ Mintlify autoalojado se implementa con el Helm chart del repositorio [`mintlify/
-Dado que los enlaces prefirmados expiran, vuelve a generar el paquete y a ejecutar la actualización siempre que publiques contenido nuevo, o automatiza el ciclo con GitHub Actions.
+Dado que los enlaces prefirmados expiran, vuelve a consultar el estado del trabajo y a ejecutar la actualización siempre que publiques contenido nuevo, o automatiza el ciclo con GitHub Actions.
-
- ## Automatizar con una GitHub Action
-
+## Automatizar con una GitHub Action
-La siguiente plantilla de workflow ejecuta todo el ciclo de exportación de forma programada o bajo demanda. Inicia un job, espera hasta que la exportación se complete, genera un paquete y despliega el nuevo `bundleUrl` en el Helm chart.
+La siguiente plantilla de workflow ejecuta todo el ciclo de exportación de forma programada o bajo demanda. Inicia un trabajo, espera hasta que la exportación se complete y despliega el nuevo `bundleUrl` en el Helm chart.
```yaml .github/workflows/static-export.yml
name: Publish static export
@@ -122,6 +101,9 @@ on:
schedule:
- cron: "0 6 * * *" # Daily at 06:00 UTC
+env:
+ PROJECT_ID: proj_your_project_id
+
jobs:
export:
runs-on: ubuntu-latest
@@ -129,33 +111,31 @@ jobs:
- name: Start static export job
id: start
run: |
- JOB_ID=$(curl -s -X POST https://api.mintlify.com/v1/static-export/jobs \
- -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" \
- -H "Content-Type: application/json" \
- -d '{"domain": "docs.example.com"}' | jq -r '.jobId')
+ JOB_ID=$(curl -s -X POST \
+ https://api.mintlify.com/v1/static-export/${{ env.PROJECT_ID }}/jobs \
+ -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.jobId')
echo "job_id=$JOB_ID" >> "$GITHUB_OUTPUT"
- - name: Wait for the job to complete
+ - name: Wait for the job to complete and capture the bundle URL
+ id: bundle
run: |
for i in $(seq 1 60); do
- STATUS=$(curl -s https://api.mintlify.com/v1/static-export/jobs/${{ steps.start.outputs.job_id }} \
- -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.status')
+ RESPONSE=$(curl -s \
+ https://api.mintlify.com/v1/static-export/${{ env.PROJECT_ID }}/jobs/${{ steps.start.outputs.job_id }} \
+ -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}")
+ STATUS=$(echo "$RESPONSE" | jq -r '.status')
echo "status=$STATUS"
- [ "$STATUS" = "completed" ] && exit 0
+ if [ "$STATUS" = "completed" ]; then
+ BUNDLE_URL=$(echo "$RESPONSE" | jq -r '.bundleUrl')
+ echo "bundle_url=$BUNDLE_URL" >> "$GITHUB_OUTPUT"
+ exit 0
+ fi
[ "$STATUS" = "failed" ] && exit 1
sleep 10
done
echo "Timed out waiting for the export job to complete." >&2
exit 1
- - name: Generate the bundle
- id: bundle
- run: |
- BUNDLE_URL=$(curl -s -X POST \
- https://api.mintlify.com/v1/static-export/jobs/${{ steps.start.outputs.job_id }}/bundle \
- -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.bundleUrl')
- echo "bundle_url=$BUNDLE_URL" >> "$GITHUB_OUTPUT"
-
- name: Deploy to the Helm chart
run: |
helm upgrade --install mintlify mintlify/enterprise \
@@ -164,4 +144,4 @@ jobs:
--set staticExport.bundleUrl="${{ steps.bundle.outputs.bundle_url }}"
```
-Guarda tu clave de API de administrador como el secret de repositorio `MINTLIFY_ADMIN_KEY`, y configura las credenciales del clúster (por ejemplo, con `azure/setup-helm` y tu kubeconfig) antes del paso de despliegue.
+Guarda tu clave de API de administrador como el secret de repositorio `MINTLIFY_ADMIN_KEY` y establece `PROJECT_ID` con el ID de tu proyecto. Antes de desplegar, configura las credenciales del clúster, por ejemplo con `azure/setup-helm` y tu archivo de configuración de Kubernetes (`kubeconfig`).
diff --git a/es/api/static-export/start-job.mdx b/es/api/static-export/start-job.mdx
index de2218bac3..0ac19a2b6f 100644
--- a/es/api/static-export/start-job.mdx
+++ b/es/api/static-export/start-job.mdx
@@ -1,6 +1,6 @@
---
title: "Iniciar job de exportación estática"
-openapi: "/es/static-export-openapi.json POST /static-export/jobs"
+openapi: "/es/static-export-openapi.json POST /static-export/{projectId}/jobs"
keywords: ["static export", "job", "start", "bundle", "enterprise"]
---
diff --git a/es/static-export-openapi.json b/es/static-export-openapi.json
index f7b77103d2..47a574a884 100644
--- a/es/static-export-openapi.json
+++ b/es/static-export-openapi.json
@@ -16,21 +16,16 @@
}
],
"paths": {
- "/static-export/jobs": {
+ "/static-export/{projectId}/jobs": {
"post": {
"summary": "Iniciar trabajo de exportación estática",
- "description": "Inicia un trabajo de exportación estática para una implementación. El trabajo prerrenderiza tu documentación en un conjunto autocontenido de archivos HTML, RSC y recursos estáticos. Devuelve un ID de trabajo que puedes usar para consultar el estado y, una vez completado, generar un paquete descargable.\n\nLa exportación estática está disponible en los planes Enterprise.\n\nAutentícate con una clave de API de administrador.",
+ "description": "Inicia un trabajo de exportación estática para una implementación. El trabajo prerrenderiza tu documentación en un conjunto autocontenido de archivos HTML, RSC y recursos estáticos, y luego empaqueta el resultado como un único archivo descargable.\n\nUna implementación solo puede tener un trabajo de exportación estática activo a la vez. Iniciar un trabajo mientras otro está `queued` o `running` devuelve `409`. El endpoint está limitado a 10 inicios de trabajo por organización por hora.\n\nLa exportación estática está disponible en los planes Enterprise.\n\nAutentícate con una clave de API de administrador.",
"operationId": "startStaticExportJob",
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/StartStaticExportRequest"
- }
- }
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/projectId"
}
- },
+ ],
"responses": {
"202": {
"description": "El trabajo de exportación fue aceptado y puesto en cola.",
@@ -52,18 +47,8 @@
}
}
},
- "400": {
- "description": "El cuerpo de la solicitud no es válido. Verifica que `domain` sea un nombre de host accesible y que las entradas de `paths` sean rutas de página válidas.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Error"
- }
- }
- }
- },
"403": {
- "description": "La exportación estática no está habilitada para esta organización. Contacta con el equipo de ventas para habilitarla en un plan Enterprise.",
+ "description": "La exportación estática no está habilitada para esta implementación. Contacta con sales@mintlify.com para actualizar tu plan.",
"content": {
"application/json": {
"schema": {
@@ -71,39 +56,9 @@
}
}
}
- }
- }
- }
- },
- "/static-export/jobs/{jobId}": {
- "get": {
- "summary": "Obtener el estado del trabajo de exportación estática",
- "description": "Recupera el estado y el progreso actuales de un trabajo de exportación estática. Consulta este endpoint después de iniciar un trabajo hasta que `status` sea `completed` (o `failed`).\n\nLa exportación estática está disponible en los planes Enterprise.\n\nAutentícate con una clave de API de administrador.",
- "operationId": "getStaticExportJob",
- "parameters": [
- {
- "name": "jobId",
- "in": "path",
- "description": "El ID del trabajo de exportación estática devuelto por `Start static export job`.",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "El estado actual del trabajo de exportación.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/StaticExportJob"
- }
- }
- }
},
- "401": {
- "description": "La autenticación falló.",
+ "409": {
+ "description": "Ya hay un trabajo de exportación estática en curso para esta implementación. Espera a que el trabajo activo se complete antes de iniciar uno nuevo.",
"content": {
"application/json": {
"schema": {
@@ -112,8 +67,8 @@
}
}
},
- "404": {
- "description": "No existe ningún trabajo con el ID proporcionado.",
+ "429": {
+ "description": "Se excedió el límite de velocidad. La API de exportación estática permite hasta 10 inicios de trabajo por organización por hora.",
"content": {
"application/json": {
"schema": {
@@ -125,16 +80,19 @@
}
}
},
- "/static-export/jobs/{jobId}/bundle": {
- "post": {
- "summary": "Generar paquete de exportación",
- "description": "Empaqueta un trabajo de exportación estática completado en un único archivo y devuelve un enlace de descarga. El enlace es una URL de S3 prefirmada: descárgalo antes de `expiresAt`.\n\nEl trabajo debe tener un `status` de `completed` antes de que se pueda generar un paquete.\n\nLa exportación estática está disponible en los planes Enterprise.\n\nAutentícate con una clave de API de administrador.",
- "operationId": "generateStaticExportBundle",
+ "/static-export/{projectId}/jobs/{jobId}": {
+ "get": {
+ "summary": "Obtener el estado del trabajo de exportación estática",
+ "description": "Recupera el estado actual de un trabajo de exportación estática. Consulta este endpoint después de iniciar un trabajo hasta que `status` sea `completed` (o `failed`).\n\nUna vez que el trabajo se completa, la respuesta incluye `bundleUrl`, `sizeBytes` y `expiresAt`. `bundleUrl` es un enlace de S3 prefirmado con tiempo limitado. Descarga el paquete antes de la marca de tiempo `expiresAt`. Vuelve a llamar a este endpoint para obtener un enlace nuevo. Los archivos de exportación subyacentes siguen siendo reutilizables.\n\nLa exportación estática está disponible en los planes Enterprise.\n\nAutentícate con una clave de API de administrador.",
+ "operationId": "getStaticExportJob",
"parameters": [
+ {
+ "$ref": "#/components/parameters/projectId"
+ },
{
"name": "jobId",
"in": "path",
- "description": "El ID de un trabajo de exportación estática completado.",
+ "description": "El ID del trabajo de exportación estática devuelto por `Start static export job`.",
"required": true,
"schema": {
"type": "string"
@@ -143,11 +101,11 @@
],
"responses": {
"200": {
- "description": "Un enlace de S3 prefirmado al paquete de exportación estática.",
+ "description": "El estado actual del trabajo de exportación.",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/BundleResponse"
+ "$ref": "#/components/schemas/StaticExportJob"
}
}
}
@@ -162,8 +120,8 @@
}
}
},
- "404": {
- "description": "No existe ningún trabajo con el ID proporcionado.",
+ "403": {
+ "description": "La exportación estática no está habilitada para esta implementación. Contacta con sales@mintlify.com para actualizar tu plan.",
"content": {
"application/json": {
"schema": {
@@ -172,8 +130,8 @@
}
}
},
- "409": {
- "description": "El trabajo aún no ha terminado, por lo que no se puede generar un paquete.",
+ "404": {
+ "description": "No existe ningún trabajo con el ID proporcionado para esta implementación.",
"content": {
"application/json": {
"schema": {
@@ -191,60 +149,35 @@
"bearerAuth": {
"type": "http",
"scheme": "bearer",
- "description": "El encabezado Authorization requiere un token de tipo Bearer. Usa una clave de API de administrador. Esta es una clave secreta del lado del servidor. Genera una en la [página de claves de API](https://dashboard.mintlify.com/settings/organization/api-keys) de tu dashboard."
+ "description": "El encabezado Authorization requiere un token de tipo Bearer. Usa una clave de API de administrador. Esta es una clave secreta del lado del servidor. Genera una en la [página de claves de API](https://app.mintlify.com/settings/organization/api-keys) de tu dashboard."
+ }
+ },
+ "parameters": {
+ "projectId": {
+ "schema": {
+ "type": "string",
+ "description": "El ID de tu proyecto. Puedes copiarlo desde la página de [claves de API](https://app.mintlify.com/settings/organization/api-keys) de tu dashboard."
+ },
+ "required": true,
+ "name": "projectId",
+ "in": "path"
}
},
"schemas": {
- "StartStaticExportRequest": {
- "type": "object",
- "required": ["domain"],
- "properties": {
- "domain": {
- "type": "string",
- "description": "El dominio principal de la implementación que se va a exportar. Usa el dominio personalizado configurado para tu proyecto en el dashboard de Mintlify (por ejemplo, `docs.example.com`). Si no has configurado un dominio personalizado, usa tu subdominio de Mintlify (por ejemplo, `acme.mintlify.app`). Proporciona solo el nombre de host: no incluyas el protocolo, una barra final ni un prefijo de ruta como `/docs`.",
- "example": "docs.example.com"
- },
- "version": {
- "type": "string",
- "description": "Una etiqueta de versión opcional para identificar esta exportación. Por defecto, se usa la última versión publicada.",
- "example": "2024-06-01"
- },
- "paths": {
- "type": "array",
- "description": "Una lista opcional de rutas de página que se incluirán. Si se omite, se exportan todas las páginas publicadas.",
- "items": {
- "type": "string"
- },
- "example": ["index", "guides/getting-started", "api-reference/introduction"]
- }
- }
- },
"StaticExportJob": {
"type": "object",
- "required": ["jobId", "status", "progress", "pageCount", "createdAt", "updatedAt"],
+ "required": ["jobId", "status", "createdAt", "updatedAt"],
"properties": {
"jobId": {
"type": "string",
"description": "Identificador único del trabajo de exportación estática.",
- "example": "se_3f9a2c1b8e7d4a06"
+ "example": "6520f3a1c9b1a20012ab34cd"
},
"status": {
"type": "string",
"description": "El estado actual del trabajo.",
"enum": ["queued", "running", "completed", "failed"],
- "example": "running"
- },
- "progress": {
- "type": "number",
- "description": "Porcentaje de finalización de 0 a 100.",
- "minimum": 0,
- "maximum": 100,
- "example": 42
- },
- "pageCount": {
- "type": "integer",
- "description": "El número de páginas exportadas hasta el momento.",
- "example": 128
+ "example": "completed"
},
"createdAt": {
"type": "string",
@@ -254,39 +187,28 @@
"updatedAt": {
"type": "string",
"format": "date-time",
- "description": "Cuándo se actualizó por última vez el trabajo."
+ "description": "Cuándo el trabajo cambió de estado por última vez."
},
"error": {
"type": "string",
- "description": "Un mensaje de error legible por humanos. Solo está presente cuando `status` es `failed`.",
+ "description": "Un mensaje de error legible por humanos. Solo está presente cuando `status` es `failed`; de lo contrario, es `null`.",
"nullable": true
- }
- }
- },
- "BundleResponse": {
- "type": "object",
- "required": ["jobId", "bundleUrl", "sizeBytes", "expiresAt"],
- "properties": {
- "jobId": {
- "type": "string",
- "description": "El ID del trabajo para el que se generó este paquete.",
- "example": "se_3f9a2c1b8e7d4a06"
},
"bundleUrl": {
"type": "string",
"format": "uri",
- "description": "Un enlace de S3 prefirmado al archivo del paquete de exportación estática. Descárgalo antes de que caduque el enlace.",
- "example": "https://mintlify-static-exports.s3.amazonaws.com/se_3f9a2c1b8e7d4a06/bundle.tar.gz?X-Amz-Signature=..."
+ "description": "Un enlace de S3 prefirmado con tiempo limitado al archivo del paquete de exportación estática. Solo está presente cuando `status` es `completed`. Descarga el paquete antes de `expiresAt`. Vuelve a llamar a este endpoint para obtener un enlace nuevo.",
+ "example": "https://mintlify-static-exports.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.zip?X-Amz-Signature=..."
},
"sizeBytes": {
"type": "integer",
- "description": "El tamaño del paquete en bytes.",
+ "description": "El tamaño del paquete en bytes. Solo está presente cuando `status` es `completed`.",
"example": 18432000
},
"expiresAt": {
"type": "string",
"format": "date-time",
- "description": "Cuándo caduca el enlace prefirmado."
+ "description": "Cuándo caduca el `bundleUrl` actual. Solo está presente cuando `status` es `completed`."
}
}
},
diff --git a/fr.json b/fr.json
index bfab8f7bf0..3c40b3eea9 100644
--- a/fr.json
+++ b/fr.json
@@ -423,8 +423,7 @@
"group": "Export statique",
"pages": [
"fr/api/static-export/start-job",
- "fr/api/static-export/get-job-status",
- "fr/api/static-export/generate-bundle"
+ "fr/api/static-export/get-job-status"
]
}
]
diff --git a/fr/api/static-export/generate-bundle.mdx b/fr/api/static-export/generate-bundle.mdx
deleted file mode 100644
index b8e5144aa9..0000000000
--- a/fr/api/static-export/generate-bundle.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: "Générer le bundle d'exportation"
-openapi: "/fr/static-export-openapi.json POST /static-export/jobs/{jobId}/bundle"
-keywords: ["static export", "bundle", "s3", "download", "enterprise"]
----
-
-
- Ce point de terminaison est en bêta privée et nécessite un accord entreprise. Contactez [sales@mintlify.com](mailto:sales@mintlify.com) pour en savoir plus.
-
diff --git a/fr/api/static-export/get-job-status.mdx b/fr/api/static-export/get-job-status.mdx
index 5773f8cc75..7696d531d4 100644
--- a/fr/api/static-export/get-job-status.mdx
+++ b/fr/api/static-export/get-job-status.mdx
@@ -1,6 +1,6 @@
---
title: "Obtenir le statut d'une tâche d'exportation statique"
-openapi: "/fr/static-export-openapi.json GET /static-export/jobs/{jobId}"
+openapi: "/fr/static-export-openapi.json GET /static-export/{projectId}/jobs/{jobId}"
keywords: ["static export", "job", "status", "progress", "enterprise"]
---
diff --git a/fr/api/static-export/overview.mdx b/fr/api/static-export/overview.mdx
index feba170fe6..78255318ab 100644
--- a/fr/api/static-export/overview.mdx
+++ b/fr/api/static-export/overview.mdx
@@ -1,6 +1,6 @@
---
title: "Exportation statique"
-description: "Générez une exportation statique autonome de votre documentation et téléchargez-la sous forme d'un unique bundle via l'API REST Mintlify."
+description: "Générez une exportation statique autonome de votre documentation et téléchargez-la sous forme d'un unique bundle via l'API REST Mintlify pour l'auto-hébergement."
keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
---
@@ -10,43 +10,32 @@ keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
Utilisez l'API d'exportation statique pour pré-rendre votre site par programmation en un ensemble autonome de fichiers statiques et télécharger le résultat sous forme d'un unique bundle. Le bundle exporté est composé de HTML, CSS et JavaScript purs, sans dépendances d'exécution, afin que vous puissiez l'héberger sur n'importe quel stockage de fichiers statiques ou CDN.
-
- ## URL des pages exportées
-
+## URL des pages dans les bundles statiques
-Les bundles d’exportation statique utilisent des URL de pages explicites avec l’extension `.html`. Ainsi, `/guides/getting-started` devient `/guides/getting-started.html`, et la page d’accueil devient `/index.html`.
-
-Cette structure correspond aux fichiers du bundle. Elle permet un hébergement S3 ou statique simple, sans nécessiter la réécriture d’URL sans extension. Conservez les noms de fichiers `.html` lors du téléversement. L’API d’exportation statique active automatiquement ce format, vous n’avez donc pas besoin de modifier la configuration de votre documentation.
-
-Les déploiements avec CloudFront préservent la navigation côté client et le préchargement des pages. Les hébergeurs de fichiers simples prennent en charge la navigation par pages complètes grâce aux liens `.html` générés. Les sites de production hébergés normalement dans le cloud restent inchangés.
-
-La navigation interne intégrée utilise également des destinations en `.html`. Cela concerne notamment les sélecteurs de version et de langue, les résultats de recherche, les cartes, les citations de l’assistant et les liens du playground d’API. Les chaînes de requête sont conservées. Les liens du playground d’API continuent donc de fonctionner.
+Les exportations statiques utilisent des URL en `.html` qui correspondent aux fichiers du bundle. Par exemple, `/guides/getting-started` devient `/guides/getting-started.html`. Cela se produit automatiquement et ne nécessite aucune configuration.
- Les URL canoniques et celles du sitemap restent sans extension. Vos URL personnalisées de navigation côté client peuvent également rester sans extension. Les déploiements reposant sur CloudFront les résolvent, mais les hébergeurs qui servent uniquement des fichiers peuvent nécessiter des réécritures.
+ Les URL canoniques et celles du sitemap restent sans extension. CloudFront résout ces URL automatiquement, mais d'autres hébergeurs statiques peuvent nécessiter des règles de réécriture.
-
- ## Fonctionnement de l'exportation statique
-
+## Fonctionnement de l'exportation statique
-Une exportation statique s'exécute sous forme de tâche asynchrone. Vous démarrez la tâche, interrogez son statut, puis générez un bundle téléchargeable une fois la tâche terminée.
+Une exportation statique s'exécute sous forme de tâche asynchrone. Vous démarrez la tâche pour un projet, puis interrogez son statut jusqu'à ce que le bundle soit prêt à être téléchargé.
- Appelez [Démarrer une tâche d'exportation statique](/fr/api/static-export/start-job) avec le domaine que vous souhaitez exporter. L'API met la tâche en file d'attente et renvoie un `jobId`.
-
-
- Interrogez [Obtenir le statut d'une tâche d'exportation statique](/fr/api/static-export/get-job-status) avec le `jobId` jusqu'à ce que `status` soit `completed`. La réponse inclut `progress` et `pageCount` en direct pendant l'exécution de la tâche.
+ Appelez [Démarrer une tâche d'exportation statique](/api/static-export/start-job) avec l'identifiant de votre projet. L'API met la tâche en file d'attente et renvoie un `jobId`.
+
+ Un déploiement ne peut avoir qu'une seule tâche active à la fois. Si une tâche est déjà `queued` ou `running` pour le déploiement, l'endpoint retourne `409`. L'endpoint est limité à 10 démarrages de tâche par organisation et par heure.
-
- Appelez [Générer le bundle d'exportation](/fr/api/static-export/generate-bundle) avec le `jobId`. L'API empaquète l'exportation dans une seule archive et renvoie `bundleUrl`, un lien S3 présigné vers le bundle d'exportation statique, ainsi qu'un horodatage `expiresAt`. Téléchargez le bundle avant `expiresAt` — passé ce délai, rappelez [Générer le bundle d'exportation](/fr/api/static-export/generate-bundle) pour obtenir un nouveau lien. La tâche sous-jacente et ses fichiers restent réutilisables ; seul le lien est limité dans le temps.
+
+ Interrogez [Obtenir le statut d'une tâche d'exportation statique](/api/static-export/get-job-status) avec le `jobId` jusqu'à ce que `status` soit `completed`. La réponse d'une tâche terminée inclut `bundleUrl`, un lien S3 présigné limité dans le temps vers le bundle, ainsi que `sizeBytes` et un horodatage `expiresAt`.
+
+ Téléchargez le bundle avant `expiresAt`. Une fois le lien expiré, rappelez l'endpoint de statut pour obtenir une nouvelle `bundleUrl`. Les fichiers d'exportation sous-jacents restent réutilisables. Seul le lien est limité dans le temps.
-
- ## Prise en charge des fonctionnalités par type de déploiement
-
+## Prise en charge des fonctionnalités par type de déploiement
Les fonctionnalités disponibles dépendent de la manière dont vous hébergez votre déploiement. Les déploiements en air-gapped n'ont aucun accès réseau sortant, donc toute fonctionnalité qui repose sur les services cloud de Mintlify est indisponible. Les fonctionnalités étiquetées **Configurable** ont une disponibilité différente selon la configuration de votre environnement.
@@ -58,35 +47,30 @@ Les fonctionnalités disponibles dépendent de la manière dont vous hébergez v
| Playground API (« Essayer ») | | | Configurable |
| Bundle d'exportation statique | | | |
-
- ## Endpoints
-
+## Endpoints
-- [Démarrer une tâche d'exportation statique](/fr/api/static-export/start-job) : démarrer une tâche d'exportation statique pour un déploiement.
-- [Obtenir le statut d'une tâche d'exportation statique](/fr/api/static-export/get-job-status) : interroger le statut et la progression d'une tâche en cours.
-- [Générer le bundle d'exportation](/fr/api/static-export/generate-bundle) : empaqueter une tâche terminée et renvoyer un unique lien S3 vers le bundle.
+- [Démarrer une tâche d'exportation statique](/api/static-export/start-job) : mettre en file d'attente une tâche d'exportation statique pour un projet.
+- [Obtenir le statut d'une tâche d'exportation statique](/api/static-export/get-job-status) : interroger l'état de la tâche et, une fois terminée, récupérer un lien présigné de téléchargement du bundle.
-
- ## Authentification
-
+## Authentification
Authentifiez les requêtes avec votre clé d'API admin. Générez une clé d'API admin sur la [page des clés d'API](https://app.mintlify.com/settings/organization/api-keys) de votre tableau de bord. Les clés d'API admin commencent par le préfixe `mint_` et sont des secrets côté serveur — ne les exposez pas dans du code côté client.
-
- ## Déployer le bundle sur votre chart Helm Enterprise
-
+Copiez l'identifiant de votre projet depuis la même page et utilisez-le comme paramètre de chemin `projectId`.
-Mintlify auto-hébergé se déploie avec le chart Helm du dépôt [`mintlify/enterprise`](https://github.com/mintlify/enterprise). Une fois qu'une tâche d'exportation statique produit un bundle, vous pointez le chart vers le bundle et le déploiement le sert depuis votre propre infrastructure.
+## Déployer le bundle sur votre chart Helm Enterprise
+
+Mintlify auto-hébergé se déploie avec le chart Helm du dépôt [`mintlify/enterprise`](https://github.com/mintlify/enterprise). Une fois qu'une tâche d'exportation statique est terminée, vous pointez le chart vers la `bundleUrl` et le déploiement le sert depuis votre propre infrastructure.
- Définissez les champs d'exportation statique dans votre `values.yaml` sur la `bundleUrl` renvoyée par [Générer le bundle d'exportation](/fr/api/static-export/generate-bundle). Le chart récupère le bundle au démarrage et le sert comme version active.
+ Définissez les champs d'exportation statique dans votre `values.yaml` sur la `bundleUrl` renvoyée par [Obtenir le statut d'une tâche d'exportation statique](/api/static-export/get-job-status). Le chart récupère le bundle au démarrage et le sert comme version active.
```yaml values.yaml
staticExport:
enabled: true
- # Presigned S3 link returned by the Generate export bundle endpoint.
- bundleUrl: "https://mintlify-static-exports.s3.amazonaws.com/se_3f9a2c1b8e7d4a06/bundle.tar.gz"
+ # Presigned S3 link returned by the Get static export job status endpoint.
+ bundleUrl: "https://mintlify-static-exports.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.zip"
# Optional: pin to a specific export version for reproducible rollouts.
version: "2024-06-01"
```
@@ -103,13 +87,11 @@ Mintlify auto-hébergé se déploie avec le chart Helm du dépôt [`mintlify/ent
-Comme les liens présignés expirent, régénérez le bundle et relancez la mise à niveau chaque fois que vous publiez du nouveau contenu, ou automatisez la boucle avec GitHub Actions.
+Comme les liens présignés expirent, récupérez à nouveau le statut de la tâche et relancez la mise à niveau chaque fois que vous publiez du nouveau contenu, ou automatisez la boucle avec GitHub Actions.
-
- ## Automatiser avec une GitHub Action
-
+## Automatiser avec une GitHub Action
-Le workflow modèle suivant exécute la boucle complète d'exportation selon un calendrier ou à la demande. Il démarre une tâche, interroge jusqu'à la fin de l'exportation, génère un bundle et déploie la nouvelle `bundleUrl` dans le chart Helm.
+Le workflow modèle suivant exécute la boucle complète d'exportation selon un calendrier ou à la demande. Il démarre une tâche, interroge jusqu'à la fin de l'exportation, puis déploie la nouvelle `bundleUrl` dans le chart Helm.
```yaml .github/workflows/static-export.yml
name: Publish static export
@@ -119,6 +101,9 @@ on:
schedule:
- cron: "0 6 * * *" # Daily at 06:00 UTC
+env:
+ PROJECT_ID: proj_your_project_id
+
jobs:
export:
runs-on: ubuntu-latest
@@ -126,33 +111,31 @@ jobs:
- name: Start static export job
id: start
run: |
- JOB_ID=$(curl -s -X POST https://api.mintlify.com/v1/static-export/jobs \
- -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" \
- -H "Content-Type: application/json" \
- -d '{"domain": "docs.example.com"}' | jq -r '.jobId')
+ JOB_ID=$(curl -s -X POST \
+ https://api.mintlify.com/v1/static-export/${{ env.PROJECT_ID }}/jobs \
+ -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.jobId')
echo "job_id=$JOB_ID" >> "$GITHUB_OUTPUT"
- - name: Wait for the job to complete
+ - name: Wait for the job to complete and capture the bundle URL
+ id: bundle
run: |
for i in $(seq 1 60); do
- STATUS=$(curl -s https://api.mintlify.com/v1/static-export/jobs/${{ steps.start.outputs.job_id }} \
- -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.status')
+ RESPONSE=$(curl -s \
+ https://api.mintlify.com/v1/static-export/${{ env.PROJECT_ID }}/jobs/${{ steps.start.outputs.job_id }} \
+ -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}")
+ STATUS=$(echo "$RESPONSE" | jq -r '.status')
echo "status=$STATUS"
- [ "$STATUS" = "completed" ] && exit 0
+ if [ "$STATUS" = "completed" ]; then
+ BUNDLE_URL=$(echo "$RESPONSE" | jq -r '.bundleUrl')
+ echo "bundle_url=$BUNDLE_URL" >> "$GITHUB_OUTPUT"
+ exit 0
+ fi
[ "$STATUS" = "failed" ] && exit 1
sleep 10
done
echo "Timed out waiting for the export job to complete." >&2
exit 1
- - name: Generate the bundle
- id: bundle
- run: |
- BUNDLE_URL=$(curl -s -X POST \
- https://api.mintlify.com/v1/static-export/jobs/${{ steps.start.outputs.job_id }}/bundle \
- -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.bundleUrl')
- echo "bundle_url=$BUNDLE_URL" >> "$GITHUB_OUTPUT"
-
- name: Deploy to the Helm chart
run: |
helm upgrade --install mintlify mintlify/enterprise \
@@ -161,4 +144,4 @@ jobs:
--set staticExport.bundleUrl="${{ steps.bundle.outputs.bundle_url }}"
```
-Stockez votre clé d'API admin sous forme de secret de dépôt `MINTLIFY_ADMIN_KEY`, et configurez les identifiants du cluster (par exemple, avec `azure/setup-helm` et votre kubeconfig) avant l'étape de déploiement.
+Stockez votre clé d'API admin sous forme de secret de dépôt `MINTLIFY_ADMIN_KEY` et définissez `PROJECT_ID` sur l'identifiant de votre projet. Avant le déploiement, configurez les identifiants du cluster, par exemple avec `azure/setup-helm` et votre fichier de configuration Kubernetes (`kubeconfig`).
diff --git a/fr/api/static-export/start-job.mdx b/fr/api/static-export/start-job.mdx
index 60ebf33957..95a81ead30 100644
--- a/fr/api/static-export/start-job.mdx
+++ b/fr/api/static-export/start-job.mdx
@@ -1,6 +1,6 @@
---
title: "Démarrer une tâche d'exportation statique"
-openapi: "/fr/static-export-openapi.json POST /static-export/jobs"
+openapi: "/fr/static-export-openapi.json POST /static-export/{projectId}/jobs"
keywords: ["static export", "job", "start", "bundle", "enterprise"]
---
diff --git a/fr/static-export-openapi.json b/fr/static-export-openapi.json
index c00a8adec7..8bb2437a5e 100644
--- a/fr/static-export-openapi.json
+++ b/fr/static-export-openapi.json
@@ -16,21 +16,16 @@
}
],
"paths": {
- "/static-export/jobs": {
+ "/static-export/{projectId}/jobs": {
"post": {
"summary": "Lancer une tâche d’export statique",
- "description": "Lance une tâche d’export statique pour un déploiement. La tâche pré-rend votre documentation sous la forme d’un ensemble autonome de fichiers HTML, RSC et ressources statiques. Retourne un identifiant de tâche que vous pouvez utiliser pour interroger le statut et, une fois la tâche terminée, générer un paquet téléchargeable.\n\nL’export statique est disponible sur les plans Enterprise.\n\nAuthentifiez-vous avec une clé d'API administrateur.",
+ "description": "Lance une tâche d’export statique pour un déploiement. La tâche pré-rend votre documentation sous la forme d’un ensemble autonome de fichiers HTML, RSC et ressources statiques, puis empaquette le résultat dans une seule archive téléchargeable.\n\nUn déploiement ne peut avoir qu’une seule tâche d’export statique active à la fois. Lancer une tâche alors qu’une autre est `queued` ou `running` retourne `409`. L’endpoint est limité à 10 démarrages de tâche par organisation et par heure.\n\nL’export statique est disponible sur les plans Enterprise.\n\nAuthentifiez-vous avec une clé d'API administrateur.",
"operationId": "startStaticExportJob",
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/StartStaticExportRequest"
- }
- }
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/projectId"
}
- },
+ ],
"responses": {
"202": {
"description": "La tâche d’export a été acceptée et mise en file d’attente.",
@@ -52,18 +47,8 @@
}
}
},
- "400": {
- "description": "Le corps de la requête n’est pas valide. Vérifiez que `domain` est un nom d’hôte accessible et que les entrées de `paths` sont des chemins de page valides.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Error"
- }
- }
- }
- },
"403": {
- "description": "L’export statique n’est pas activé pour cette organisation. Contactez le service commercial pour l’activer sur un plan Enterprise.",
+ "description": "L’export statique n’est pas activé pour ce déploiement. Contactez sales@mintlify.com pour effectuer une mise à niveau.",
"content": {
"application/json": {
"schema": {
@@ -71,39 +56,9 @@
}
}
}
- }
- }
- }
- },
- "/static-export/jobs/{jobId}": {
- "get": {
- "summary": "Obtenir le statut d’une tâche d’export statique",
- "description": "Récupère le statut et la progression actuels d’une tâche d’export statique. Interrogez cet endpoint après avoir lancé une tâche jusqu’à ce que `status` soit `completed` (ou `failed`).\n\nL’export statique est disponible sur les plans Enterprise.\n\nAuthentifiez-vous avec une clé d'API administrateur.",
- "operationId": "getStaticExportJob",
- "parameters": [
- {
- "name": "jobId",
- "in": "path",
- "description": "L’identifiant de la tâche d’export statique retourné par `Start static export job`.",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "L’état actuel de la tâche d’export.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/StaticExportJob"
- }
- }
- }
},
- "401": {
- "description": "L’authentification a échoué.",
+ "409": {
+ "description": "Une tâche d’export statique est déjà en cours pour ce déploiement. Attendez la fin de la tâche active avant d’en lancer une nouvelle.",
"content": {
"application/json": {
"schema": {
@@ -112,8 +67,8 @@
}
}
},
- "404": {
- "description": "Aucune tâche n’existe avec l’identifiant fourni.",
+ "429": {
+ "description": "Limite de débit dépassée. L’API d’export statique autorise jusqu’à 10 démarrages de tâche par organisation et par heure.",
"content": {
"application/json": {
"schema": {
@@ -125,16 +80,19 @@
}
}
},
- "/static-export/jobs/{jobId}/bundle": {
- "post": {
- "summary": "Générer le paquet d’export",
- "description": "Empaquette une tâche d’export statique terminée dans une archive unique et retourne un lien de téléchargement. Le lien est une URL S3 présignée — téléchargez-la avant `expiresAt`.\n\nLa tâche doit avoir un `status` égal à `completed` pour qu’un paquet puisse être généré.\n\nL’export statique est disponible sur les plans Enterprise.\n\nAuthentifiez-vous avec une clé d'API administrateur.",
- "operationId": "generateStaticExportBundle",
+ "/static-export/{projectId}/jobs/{jobId}": {
+ "get": {
+ "summary": "Obtenir le statut d’une tâche d’export statique",
+ "description": "Récupère le statut actuel d’une tâche d’export statique. Interrogez cet endpoint après avoir lancé une tâche jusqu’à ce que `status` soit `completed` (ou `failed`).\n\nUne fois la tâche terminée, la réponse inclut `bundleUrl`, `sizeBytes` et `expiresAt`. `bundleUrl` est un lien S3 présigné limité dans le temps. Téléchargez le paquet avant l’horodatage `expiresAt`. Rappelez cet endpoint pour obtenir un nouveau lien. Les fichiers d’export sous-jacents restent réutilisables.\n\nL’export statique est disponible sur les plans Enterprise.\n\nAuthentifiez-vous avec une clé d'API administrateur.",
+ "operationId": "getStaticExportJob",
"parameters": [
+ {
+ "$ref": "#/components/parameters/projectId"
+ },
{
"name": "jobId",
"in": "path",
- "description": "L’identifiant d’une tâche d’export statique terminée.",
+ "description": "L’identifiant de la tâche d’export statique retourné par `Start static export job`.",
"required": true,
"schema": {
"type": "string"
@@ -143,11 +101,11 @@
],
"responses": {
"200": {
- "description": "Un lien S3 présigné vers le paquet d’export statique.",
+ "description": "L’état actuel de la tâche d’export.",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/BundleResponse"
+ "$ref": "#/components/schemas/StaticExportJob"
}
}
}
@@ -162,8 +120,8 @@
}
}
},
- "404": {
- "description": "Aucune tâche n’existe avec l’identifiant fourni.",
+ "403": {
+ "description": "L’export statique n’est pas activé pour ce déploiement. Contactez sales@mintlify.com pour effectuer une mise à niveau.",
"content": {
"application/json": {
"schema": {
@@ -172,8 +130,8 @@
}
}
},
- "409": {
- "description": "La tâche n’est pas encore terminée, donc un paquet ne peut pas être généré.",
+ "404": {
+ "description": "Aucune tâche n’existe avec l’identifiant fourni pour ce déploiement.",
"content": {
"application/json": {
"schema": {
@@ -191,60 +149,35 @@
"bearerAuth": {
"type": "http",
"scheme": "bearer",
- "description": "L'en-tête Authorization requiert un jeton Bearer. Utilisez une clé d'API administrateur. Il s'agit d'une clé secrète côté serveur. Générez-en une depuis la [page des clés d'API](https://dashboard.mintlify.com/settings/organization/api-keys) de votre Dashboard."
+ "description": "L'en-tête Authorization requiert un jeton Bearer. Utilisez une clé d'API administrateur. Il s'agit d'une clé secrète côté serveur. Générez-en une depuis la [page des clés d'API](https://app.mintlify.com/settings/organization/api-keys) de votre Dashboard."
+ }
+ },
+ "parameters": {
+ "projectId": {
+ "schema": {
+ "type": "string",
+ "description": "L’identifiant de votre projet. Peut être copié depuis la [page des clés d'API](https://app.mintlify.com/settings/organization/api-keys) de votre Dashboard."
+ },
+ "required": true,
+ "name": "projectId",
+ "in": "path"
}
},
"schemas": {
- "StartStaticExportRequest": {
- "type": "object",
- "required": ["domain"],
- "properties": {
- "domain": {
- "type": "string",
- "description": "Le domaine principal du déploiement à exporter. Utilisez le domaine personnalisé configuré pour votre projet dans le tableau de bord Mintlify (par exemple, `docs.example.com`). Si vous n'avez pas configuré de domaine personnalisé, utilisez votre sous-domaine Mintlify (par exemple, `acme.mintlify.app`). Fournissez uniquement le nom d'hôte — n'incluez pas le protocole, ni une barre oblique finale, ni un préfixe de chemin tel que `/docs`.",
- "example": "docs.example.com"
- },
- "version": {
- "type": "string",
- "description": "Un libellé de version facultatif pour identifier cet export. Par défaut, il s’agit de la dernière version publiée.",
- "example": "2024-06-01"
- },
- "paths": {
- "type": "array",
- "description": "Une liste facultative de chemins de page à inclure. Si elle est omise, toutes les pages publiées sont exportées.",
- "items": {
- "type": "string"
- },
- "example": ["index", "guides/getting-started", "api-reference/introduction"]
- }
- }
- },
"StaticExportJob": {
"type": "object",
- "required": ["jobId", "status", "progress", "pageCount", "createdAt", "updatedAt"],
+ "required": ["jobId", "status", "createdAt", "updatedAt"],
"properties": {
"jobId": {
"type": "string",
"description": "Identifiant unique de la tâche d’export statique.",
- "example": "se_3f9a2c1b8e7d4a06"
+ "example": "6520f3a1c9b1a20012ab34cd"
},
"status": {
"type": "string",
"description": "L’état actuel de la tâche.",
"enum": ["queued", "running", "completed", "failed"],
- "example": "running"
- },
- "progress": {
- "type": "number",
- "description": "Pourcentage d’avancement de 0 à 100.",
- "minimum": 0,
- "maximum": 100,
- "example": 42
- },
- "pageCount": {
- "type": "integer",
- "description": "Le nombre de pages exportées jusqu’à présent.",
- "example": 128
+ "example": "completed"
},
"createdAt": {
"type": "string",
@@ -254,39 +187,28 @@
"updatedAt": {
"type": "string",
"format": "date-time",
- "description": "Date de la dernière mise à jour de la tâche."
+ "description": "Date du dernier changement d’état de la tâche."
},
"error": {
"type": "string",
- "description": "Un message d’erreur lisible par un humain. Présent uniquement lorsque `status` est `failed`.",
+ "description": "Un message d’erreur lisible par un humain. Présent uniquement lorsque `status` est `failed`, sinon `null`.",
"nullable": true
- }
- }
- },
- "BundleResponse": {
- "type": "object",
- "required": ["jobId", "bundleUrl", "sizeBytes", "expiresAt"],
- "properties": {
- "jobId": {
- "type": "string",
- "description": "L’identifiant de la tâche pour laquelle ce paquet a été généré.",
- "example": "se_3f9a2c1b8e7d4a06"
},
"bundleUrl": {
"type": "string",
"format": "uri",
- "description": "Un lien S3 présigné vers l’archive du paquet d’export statique. Téléchargez-le avant l’expiration du lien.",
- "example": "https://mintlify-static-exports.s3.amazonaws.com/se_3f9a2c1b8e7d4a06/bundle.tar.gz?X-Amz-Signature=..."
+ "description": "Un lien S3 présigné limité dans le temps vers l’archive du paquet d’export statique. Présent uniquement lorsque `status` est `completed`. Téléchargez le paquet avant `expiresAt`. Rappelez cet endpoint pour obtenir un nouveau lien.",
+ "example": "https://mintlify-static-exports.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.zip?X-Amz-Signature=..."
},
"sizeBytes": {
"type": "integer",
- "description": "La taille du paquet en octets.",
+ "description": "La taille du paquet en octets. Présent uniquement lorsque `status` est `completed`.",
"example": 18432000
},
"expiresAt": {
"type": "string",
"format": "date-time",
- "description": "Date d’expiration du lien présigné."
+ "description": "Date d’expiration de la `bundleUrl` actuelle. Présent uniquement lorsque `status` est `completed`."
}
}
},
diff --git a/static-export-openapi.json b/static-export-openapi.json
index 5da119ea65..be49540fd2 100644
--- a/static-export-openapi.json
+++ b/static-export-openapi.json
@@ -16,21 +16,16 @@
}
],
"paths": {
- "/static-export/jobs": {
+ "/static-export/{projectId}/jobs": {
"post": {
"summary": "Start static export job",
- "description": "Start a static export job for a deployment. The job pre-renders your documentation into a self-contained set of static HTML, RSC, and asset files. Returns a job ID you can use to poll status and, once complete, generate a downloadable bundle.\n\nStatic export is available on Enterprise plans.\n\nAuthenticate with an admin API key.",
+ "description": "Start a static export job for a deployment. The job pre-renders your documentation into a self-contained set of static HTML, RSC, and asset files, then packages the result as a single downloadable archive.\n\nA deployment can have only one active static export job at a time. Starting a job while another is `queued` or `running` returns `409`. Rate-limited to 10 job starts per organization per hour.\n\nStatic export is available on Enterprise plans.\n\nAuthenticate with an admin API key.",
"operationId": "startStaticExportJob",
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/StartStaticExportRequest"
- }
- }
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/projectId"
}
- },
+ ],
"responses": {
"202": {
"description": "The export job was accepted and queued.",
@@ -52,18 +47,8 @@
}
}
},
- "400": {
- "description": "The request body is invalid. Check that `domain` is a reachable hostname and that `paths` entries are valid page paths.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Error"
- }
- }
- }
- },
"403": {
- "description": "Static export is not enabled for this organization. Contact sales to enable it on an Enterprise plan.",
+ "description": "Static export is not enabled for this deployment. Contact sales@mintlify.com to upgrade.",
"content": {
"application/json": {
"schema": {
@@ -71,39 +56,9 @@
}
}
}
- }
- }
- }
- },
- "/static-export/jobs/{jobId}": {
- "get": {
- "summary": "Get static export job status",
- "description": "Retrieve the current status and progress of a static export job. Poll this endpoint after starting a job until `status` is `completed` (or `failed`).\n\nStatic export is available on Enterprise plans.\n\nAuthenticate with an admin API key.",
- "operationId": "getStaticExportJob",
- "parameters": [
- {
- "name": "jobId",
- "in": "path",
- "description": "The ID of the static export job returned by `Start static export job`.",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "The current state of the export job.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/StaticExportJob"
- }
- }
- }
},
- "401": {
- "description": "Authentication failed.",
+ "409": {
+ "description": "A static export job is already in progress for this deployment. Wait for the active job to complete before starting a new one.",
"content": {
"application/json": {
"schema": {
@@ -112,8 +67,8 @@
}
}
},
- "404": {
- "description": "No job exists with the provided ID.",
+ "429": {
+ "description": "Rate limit exceeded. The static export API allows up to 10 job starts per organization per hour.",
"content": {
"application/json": {
"schema": {
@@ -125,16 +80,19 @@
}
}
},
- "/static-export/jobs/{jobId}/bundle": {
- "post": {
- "summary": "Generate export bundle",
- "description": "Package a completed static export job into a single archive and return a download link. The link is a presigned S3 URL — download it before `expiresAt`.\n\nThe job must have a `status` of `completed` before a bundle can be generated.\n\nStatic export is available on Enterprise plans.\n\nAuthenticate with an admin API key.",
- "operationId": "generateStaticExportBundle",
+ "/static-export/{projectId}/jobs/{jobId}": {
+ "get": {
+ "summary": "Get static export job status",
+ "description": "Retrieve the current status of a static export job. Poll this endpoint after starting a job until `status` is `completed` (or `failed`).\n\nOnce the job completes, the response includes a `bundleUrl`, `sizeBytes`, and `expiresAt`. The `bundleUrl` is a time-limited presigned S3 link. Download the bundle before the `expiresAt` timestamp. Call this endpoint again to get a fresh link. The underlying export files remain reusable.\n\nStatic export is available on Enterprise plans.\n\nAuthenticate with an admin API key.",
+ "operationId": "getStaticExportJob",
"parameters": [
+ {
+ "$ref": "#/components/parameters/projectId"
+ },
{
"name": "jobId",
"in": "path",
- "description": "The ID of a completed static export job.",
+ "description": "The ID of the static export job returned by `Start static export job`.",
"required": true,
"schema": {
"type": "string"
@@ -143,11 +101,11 @@
],
"responses": {
"200": {
- "description": "A presigned S3 link to the static export bundle.",
+ "description": "The current state of the export job.",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/BundleResponse"
+ "$ref": "#/components/schemas/StaticExportJob"
}
}
}
@@ -162,8 +120,8 @@
}
}
},
- "404": {
- "description": "No job exists with the provided ID.",
+ "403": {
+ "description": "Static export is not enabled for this deployment. Contact sales@mintlify.com to upgrade.",
"content": {
"application/json": {
"schema": {
@@ -172,8 +130,8 @@
}
}
},
- "409": {
- "description": "The job has not finished yet, so a bundle cannot be generated.",
+ "404": {
+ "description": "No job exists with the provided ID for this deployment.",
"content": {
"application/json": {
"schema": {
@@ -194,57 +152,32 @@
"description": "The Authorization header expects a Bearer token. Use an admin API key. This is a server-side secret key. Generate one on the [API keys page](https://app.mintlify.com/settings/organization/api-keys) in your dashboard."
}
},
+ "parameters": {
+ "projectId": {
+ "schema": {
+ "type": "string",
+ "description": "Your project ID. Can be copied from the [API keys](https://app.mintlify.com/settings/organization/api-keys) page in your dashboard."
+ },
+ "required": true,
+ "name": "projectId",
+ "in": "path"
+ }
+ },
"schemas": {
- "StartStaticExportRequest": {
- "type": "object",
- "required": ["domain"],
- "properties": {
- "domain": {
- "type": "string",
- "description": "The primary domain of the deployment to export. Use the custom domain configured for your project in the Mintlify dashboard (for example, `docs.example.com`). If you haven't configured a custom domain, use your Mintlify subdomain (for example, `acme.mintlify.app`). Provide the hostname only. Do not include the protocol, a trailing slash, or a path prefix such as `/docs`.",
- "example": "docs.example.com"
- },
- "version": {
- "type": "string",
- "description": "An optional version label to tag this export. Defaults to the latest published version.",
- "example": "2024-06-01"
- },
- "paths": {
- "type": "array",
- "description": "An optional list of page paths to include. When omitted, every published page is exported.",
- "items": {
- "type": "string"
- },
- "example": ["index", "guides/getting-started", "api-reference/introduction"]
- }
- }
- },
"StaticExportJob": {
"type": "object",
- "required": ["jobId", "status", "progress", "pageCount", "createdAt", "updatedAt"],
+ "required": ["jobId", "status", "createdAt", "updatedAt"],
"properties": {
"jobId": {
"type": "string",
"description": "Unique identifier for the static export job.",
- "example": "se_3f9a2c1b8e7d4a06"
+ "example": "6520f3a1c9b1a20012ab34cd"
},
"status": {
"type": "string",
"description": "The current state of the job.",
"enum": ["queued", "running", "completed", "failed"],
- "example": "running"
- },
- "progress": {
- "type": "number",
- "description": "Completion percentage from 0 to 100.",
- "minimum": 0,
- "maximum": 100,
- "example": 42
- },
- "pageCount": {
- "type": "integer",
- "description": "The number of pages exported so far.",
- "example": 128
+ "example": "completed"
},
"createdAt": {
"type": "string",
@@ -254,39 +187,28 @@
"updatedAt": {
"type": "string",
"format": "date-time",
- "description": "When the job was last updated."
+ "description": "When the job last transitioned state."
},
"error": {
"type": "string",
- "description": "A human-readable error message. Present only when `status` is `failed`.",
+ "description": "A human-readable error message. Present only when `status` is `failed`, otherwise `null`.",
"nullable": true
- }
- }
- },
- "BundleResponse": {
- "type": "object",
- "required": ["jobId", "bundleUrl", "sizeBytes", "expiresAt"],
- "properties": {
- "jobId": {
- "type": "string",
- "description": "The ID of the job this bundle was generated for.",
- "example": "se_3f9a2c1b8e7d4a06"
},
"bundleUrl": {
"type": "string",
"format": "uri",
- "description": "A presigned S3 link to the static export bundle archive. Download it before the link expires.",
- "example": "https://mintlify-static-exports.s3.amazonaws.com/se_3f9a2c1b8e7d4a06/bundle.tar.gz?X-Amz-Signature=..."
+ "description": "A time-limited presigned S3 link to the static export bundle archive. Present only when `status` is `completed`. Download the bundle before `expiresAt`. Call this endpoint again to get a fresh link.",
+ "example": "https://mintlify-static-exports.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.zip?X-Amz-Signature=..."
},
"sizeBytes": {
"type": "integer",
- "description": "The size of the bundle in bytes.",
+ "description": "The size of the bundle in bytes. Present only when `status` is `completed`.",
"example": 18432000
},
"expiresAt": {
"type": "string",
"format": "date-time",
- "description": "When the presigned link expires."
+ "description": "When the current `bundleUrl` expires. Present only when `status` is `completed`."
}
}
},
diff --git a/zh.json b/zh.json
index f2056ca7f0..d464aacb5e 100644
--- a/zh.json
+++ b/zh.json
@@ -423,8 +423,7 @@
"group": "静态导出",
"pages": [
"zh/api/static-export/start-job",
- "zh/api/static-export/get-job-status",
- "zh/api/static-export/generate-bundle"
+ "zh/api/static-export/get-job-status"
]
}
]
diff --git a/zh/api/static-export/generate-bundle.mdx b/zh/api/static-export/generate-bundle.mdx
deleted file mode 100644
index e1073a5933..0000000000
--- a/zh/api/static-export/generate-bundle.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: "生成导出包"
-openapi: "/zh/static-export-openapi.json POST /static-export/jobs/{jobId}/bundle"
-keywords: ["static export", "bundle", "s3", "download", "enterprise"]
----
-
-
- 此端点处于私有 Beta 阶段,需要企业协议。请联系 [sales@mintlify.com](mailto:sales@mintlify.com) 了解详情。
-
diff --git a/zh/api/static-export/get-job-status.mdx b/zh/api/static-export/get-job-status.mdx
index 812401b171..dec57a7556 100644
--- a/zh/api/static-export/get-job-status.mdx
+++ b/zh/api/static-export/get-job-status.mdx
@@ -1,6 +1,6 @@
---
title: "获取静态导出作业状态"
-openapi: "/zh/static-export-openapi.json GET /static-export/jobs/{jobId}"
+openapi: "/zh/static-export-openapi.json GET /static-export/{projectId}/jobs/{jobId}"
keywords: ["static export", "job", "status", "progress", "enterprise"]
---
diff --git a/zh/api/static-export/overview.mdx b/zh/api/static-export/overview.mdx
index 79237f98e9..8919973233 100644
--- a/zh/api/static-export/overview.mdx
+++ b/zh/api/static-export/overview.mdx
@@ -1,6 +1,6 @@
---
title: "静态导出"
-description: "通过 Mintlify REST API 生成自包含的文档静态导出,并以单个包的形式下载。了解如何预渲染文档、部署静态文件,并在 S3、CDN 或其他静态托管服务上托管。"
+description: "通过 Mintlify REST API 生成自包含的文档静态导出,并以单个包的形式下载,用于自托管。"
keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
---
@@ -10,41 +10,32 @@ keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
使用静态导出 API 以编程方式将站点预渲染为一组自包含的静态文件,并将结果作为单个包下载。导出的包为纯 HTML、CSS 和 JavaScript,没有运行时依赖,因此你可以将其托管在任何静态文件存储或 CDN 上。
-
- ## 静态导出包中的页面 URL
-
+## 静态包中的页面 URL
-静态导出包使用明确的 `.html` 页面 URL。`/guides/getting-started` 会变为 `/guides/getting-started.html`,首页则为 `/index.html`。这样 URL 与包中的文件相对应,可以直接部署到 S3 或普通静态托管,无需将无扩展名 URL 重写为文件路径。上传时请保留 `.html` 文件名。静态导出 API 会自动启用此格式,因此你无需修改文档配置。
-
-部署到 CloudFront 时,客户端导航和预取仍可正常工作。仅支持文件访问的托管服务则通过生成的 `.html` 链接支持整页导航。普通云托管生产站点不受影响。
-
-内置控件在进行内部导航时也会使用 `.html` 目标地址,包括版本和语言切换器、搜索结果、卡片、助手引用及 API playground 链接。查询字符串会保留,因此 API playground 链接仍可正常工作。
+静态导出使用与包中的文件相对应的 `.html` URL。例如,`/guides/getting-started` 会变为 `/guides/getting-started.html`。此行为自动生效,无需任何配置。
- canonical 和 sitemap 中的 URL 仍保持无扩展名;自定义的客户端导航 URL 也可以继续使用无扩展名。CloudFront 部署会解析这些 URL,但仅提供文件的托管服务可能需要配置重写。
+ canonical 和 sitemap 中的 URL 仍保持无扩展名。CloudFront 会自动解析这些 URL,但其他静态托管服务可能需要配置重写规则。
-
- ## 静态导出的工作原理
-
+## 静态导出的工作原理
-静态导出以异步作业的形式运行。你启动作业、轮询其状态,然后在作业完成后生成可下载的包。
+静态导出以异步作业的形式运行。你为某个项目启动作业,然后轮询其状态,直至可下载该包。
- 使用要导出的域名调用 [启动静态导出作业](/zh/api/static-export/start-job)。API 将作业加入队列并返回 `jobId`。
-
-
- 使用 `jobId` 轮询 [获取静态导出作业状态](/zh/api/static-export/get-job-status),直到 `status` 为 `completed`。在作业运行时,响应会包含实时的 `progress` 和 `pageCount`。
+ 使用你的项目 ID 调用 [启动静态导出作业](/api/static-export/start-job)。API 会将作业加入队列并返回 `jobId`。
+
+ 每个部署同一时间只能有一个处于活动状态的作业。如果该部署已有作业处于 `queued` 或 `running` 状态,端点将返回 `409`。该端点的速率限制为每个组织每小时最多启动 10 个作业。
-
- 使用 `jobId` 调用 [生成导出包](/zh/api/static-export/generate-bundle)。API 会将导出打包为单个归档文件,并返回 `bundleUrl`(即静态导出包的预签名 S3 链接)以及 `expiresAt` 时间戳。请在 `expiresAt` 之前下载该包——过期后,可再次调用 [生成导出包](/zh/api/static-export/generate-bundle) 获取新的链接。底层作业及其文件仍可复用;仅链接有时限。
+
+ 使用 `jobId` 轮询 [获取静态导出作业状态](/api/static-export/get-job-status),直到 `status` 为 `completed`。完成后的响应中会包含 `bundleUrl`(指向该包的有时限预签名 S3 链接)、`sizeBytes` 以及 `expiresAt` 时间戳。
+
+ 请在 `expiresAt` 之前下载该包。过期后,可再次调用状态端点以获取新的 `bundleUrl`,底层的导出文件仍可复用,仅链接有时限。
-
- ## 按部署方式的功能支持
-
+## 按部署方式的功能支持
可用功能取决于你的部署托管方式。气隙(air-gapped)部署没有出站网络访问权限,因此任何依赖 Mintlify 云服务的功能均不可用。标记为 **Configurable** 的功能会根据你的环境配置有所不同。
@@ -56,35 +47,30 @@ keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
| API playground("Try it") | | | Configurable |
| 静态导出包 | | | |
-
- ## 端点
-
+## 端点
-- [启动静态导出作业](/zh/api/static-export/start-job):为部署启动一个静态导出作业。
-- [获取静态导出作业状态](/zh/api/static-export/get-job-status):轮询正在运行作业的状态和进度。
-- [生成导出包](/zh/api/static-export/generate-bundle):打包已完成的作业,并返回该包的单个 S3 链接。
+- [启动静态导出作业](/api/static-export/start-job):为项目将一个静态导出作业加入队列。
+- [获取静态导出作业状态](/api/static-export/get-job-status):轮询作业状态;作业完成后,获取该包的预签名下载链接。
-
- ## 身份认证
-
+## 身份认证
使用你的 admin API 密钥对请求进行身份认证。你可以在控制台的 [API keys 页面](https://app.mintlify.com/settings/organization/api-keys) 生成 admin API 密钥。Admin API 密钥以 `mint_` 前缀开头,属于服务端机密——切勿在客户端代码中暴露。
-
- ## 将包部署到你的 Enterprise Helm chart
-
+从同一页面复制你的项目 ID,并将其用作 `projectId` 路径参数。
+
+## 将包部署到你的 Enterprise Helm chart
-自托管的 Mintlify 通过 [`mintlify/enterprise`](https://github.com/mintlify/enterprise) 仓库中的 Helm chart 部署。当静态导出作业生成包后,将 chart 指向该包,部署环境便会从你自己的基础设施提供服务。
+自托管的 Mintlify 通过 [`mintlify/enterprise`](https://github.com/mintlify/enterprise) 仓库中的 Helm chart 部署。当静态导出作业完成后,将 chart 指向 `bundleUrl`,部署环境便会从你自己的基础设施提供服务。
- 将 `values.yaml` 中的静态导出字段设置为 [生成导出包](/zh/api/static-export/generate-bundle) 返回的 `bundleUrl`。chart 会在启动时获取该包并将其作为当前版本提供服务。
+ 将 `values.yaml` 中的静态导出字段设置为 [获取静态导出作业状态](/api/static-export/get-job-status) 返回的 `bundleUrl`。chart 会在启动时获取该包并将其作为当前版本提供服务。
```yaml values.yaml
staticExport:
enabled: true
- # Presigned S3 link returned by the Generate export bundle endpoint.
- bundleUrl: "https://mintlify-static-exports.s3.amazonaws.com/se_3f9a2c1b8e7d4a06/bundle.tar.gz"
+ # Presigned S3 link returned by the Get static export job status endpoint.
+ bundleUrl: "https://mintlify-static-exports.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.zip"
# Optional: pin to a specific export version for reproducible rollouts.
version: "2024-06-01"
```
@@ -101,13 +87,11 @@ keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
-由于预签名链接会过期,每当你发布新内容时,都需要重新生成包并再次执行升级,或使用 GitHub Actions 自动化整个流程。
+由于预签名链接会过期,每当你发布新内容时,都需要重新获取作业状态并再次执行升级,或使用 GitHub Actions 自动化整个流程。
-
- ## 使用 GitHub Action 自动化
-
+## 使用 GitHub Action 自动化
-以下模板工作流按计划或按需运行完整的导出流程。它会启动作业、轮询直至导出完成、生成包,并将新的 `bundleUrl` 应用到 Helm chart。
+以下模板工作流按计划或按需运行完整的导出流程。它会启动作业、轮询直至导出完成,然后将新的 `bundleUrl` 应用到 Helm chart。
```yaml .github/workflows/static-export.yml
name: Publish static export
@@ -117,6 +101,9 @@ on:
schedule:
- cron: "0 6 * * *" # Daily at 06:00 UTC
+env:
+ PROJECT_ID: proj_your_project_id
+
jobs:
export:
runs-on: ubuntu-latest
@@ -124,33 +111,31 @@ jobs:
- name: Start static export job
id: start
run: |
- JOB_ID=$(curl -s -X POST https://api.mintlify.com/v1/static-export/jobs \
- -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" \
- -H "Content-Type: application/json" \
- -d '{"domain": "docs.example.com"}' | jq -r '.jobId')
+ JOB_ID=$(curl -s -X POST \
+ https://api.mintlify.com/v1/static-export/${{ env.PROJECT_ID }}/jobs \
+ -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.jobId')
echo "job_id=$JOB_ID" >> "$GITHUB_OUTPUT"
- - name: Wait for the job to complete
+ - name: Wait for the job to complete and capture the bundle URL
+ id: bundle
run: |
for i in $(seq 1 60); do
- STATUS=$(curl -s https://api.mintlify.com/v1/static-export/jobs/${{ steps.start.outputs.job_id }} \
- -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.status')
+ RESPONSE=$(curl -s \
+ https://api.mintlify.com/v1/static-export/${{ env.PROJECT_ID }}/jobs/${{ steps.start.outputs.job_id }} \
+ -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}")
+ STATUS=$(echo "$RESPONSE" | jq -r '.status')
echo "status=$STATUS"
- [ "$STATUS" = "completed" ] && exit 0
+ if [ "$STATUS" = "completed" ]; then
+ BUNDLE_URL=$(echo "$RESPONSE" | jq -r '.bundleUrl')
+ echo "bundle_url=$BUNDLE_URL" >> "$GITHUB_OUTPUT"
+ exit 0
+ fi
[ "$STATUS" = "failed" ] && exit 1
sleep 10
done
echo "Timed out waiting for the export job to complete." >&2
exit 1
- - name: Generate the bundle
- id: bundle
- run: |
- BUNDLE_URL=$(curl -s -X POST \
- https://api.mintlify.com/v1/static-export/jobs/${{ steps.start.outputs.job_id }}/bundle \
- -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.bundleUrl')
- echo "bundle_url=$BUNDLE_URL" >> "$GITHUB_OUTPUT"
-
- name: Deploy to the Helm chart
run: |
helm upgrade --install mintlify mintlify/enterprise \
@@ -159,4 +144,4 @@ jobs:
--set staticExport.bundleUrl="${{ steps.bundle.outputs.bundle_url }}"
```
-将你的 admin API 密钥保存为 `MINTLIFY_ADMIN_KEY` 仓库机密,并在部署步骤之前配置集群凭据(例如,使用 `azure/setup-helm` 和你的 kubeconfig)。
+将你的 admin API 密钥保存为 `MINTLIFY_ADMIN_KEY` 仓库机密,并将 `PROJECT_ID` 设置为你项目的 ID。在部署之前,请配置集群凭据,例如使用 `azure/setup-helm` 和你的 Kubernetes 配置文件(`kubeconfig`)。
diff --git a/zh/api/static-export/start-job.mdx b/zh/api/static-export/start-job.mdx
index 840b025706..c3581d3ac9 100644
--- a/zh/api/static-export/start-job.mdx
+++ b/zh/api/static-export/start-job.mdx
@@ -1,6 +1,6 @@
---
title: "启动静态导出作业"
-openapi: "/zh/static-export-openapi.json POST /static-export/jobs"
+openapi: "/zh/static-export-openapi.json POST /static-export/{projectId}/jobs"
keywords: ["static export", "job", "start", "bundle", "enterprise"]
---
diff --git a/zh/static-export-openapi.json b/zh/static-export-openapi.json
index 91423a7394..c2754f4abc 100644
--- a/zh/static-export-openapi.json
+++ b/zh/static-export-openapi.json
@@ -16,21 +16,16 @@
}
],
"paths": {
- "/static-export/jobs": {
+ "/static-export/{projectId}/jobs": {
"post": {
"summary": "启动静态导出任务",
- "description": "为部署启动一个静态导出任务。该任务会将你的文档预渲染为一组自包含的静态 HTML、RSC 及资源文件。返回一个任务 ID,可用于轮询状态;任务完成后,还可用它生成可下载的软件包。\n\n静态导出仅适用于 Enterprise 套餐。\n\n使用管理员 API 密钥进行身份验证。",
+ "description": "为部署启动一个静态导出任务。该任务会将你的文档预渲染为一组自包含的静态 HTML、RSC 及资源文件,然后将结果打包为单个可下载的归档文件。\n\n每个部署同一时间只能有一个处于活动状态的静态导出任务。当已有任务处于 `queued` 或 `running` 状态时启动新任务,将返回 `409`。速率限制为每个组织每小时最多启动 10 个任务。\n\n静态导出仅适用于 Enterprise 套餐。\n\n使用管理员 API 密钥进行身份验证。",
"operationId": "startStaticExportJob",
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/StartStaticExportRequest"
- }
- }
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/projectId"
}
- },
+ ],
"responses": {
"202": {
"description": "导出任务已被接受并加入队列。",
@@ -52,18 +47,8 @@
}
}
},
- "400": {
- "description": "请求体无效。请检查 `domain` 是否为可访问的主机名,并确认 `paths` 中的条目是有效的页面路径。",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Error"
- }
- }
- }
- },
"403": {
- "description": "该组织未启用静态导出。请联系销售团队在 Enterprise 套餐上启用此功能。",
+ "description": "该部署未启用静态导出。请联系 sales@mintlify.com 进行升级。",
"content": {
"application/json": {
"schema": {
@@ -71,39 +56,9 @@
}
}
}
- }
- }
- }
- },
- "/static-export/jobs/{jobId}": {
- "get": {
- "summary": "获取静态导出任务状态",
- "description": "获取静态导出任务的当前状态和进度。启动任务后,可以轮询此端点,直到 `status` 变为 `completed`(或 `failed`)。\n\n静态导出仅适用于 Enterprise 套餐。\n\n使用管理员 API 密钥进行身份验证。",
- "operationId": "getStaticExportJob",
- "parameters": [
- {
- "name": "jobId",
- "in": "path",
- "description": "由 `Start static export job` 返回的静态导出任务的 ID。",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "导出任务的当前状态。",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/StaticExportJob"
- }
- }
- }
},
- "401": {
- "description": "身份验证失败。",
+ "409": {
+ "description": "该部署已存在正在进行的静态导出任务。请等待当前任务完成后再启动新任务。",
"content": {
"application/json": {
"schema": {
@@ -112,8 +67,8 @@
}
}
},
- "404": {
- "description": "不存在使用所提供 ID 的任务。",
+ "429": {
+ "description": "已超出速率限制。静态导出 API 允许每个组织每小时最多启动 10 个任务。",
"content": {
"application/json": {
"schema": {
@@ -125,16 +80,19 @@
}
}
},
- "/static-export/jobs/{jobId}/bundle": {
- "post": {
- "summary": "生成导出软件包",
- "description": "将已完成的静态导出任务打包为单个归档文件,并返回一个下载链接。该链接为预签名的 S3 URL —— 请在 `expiresAt` 之前下载。\n\n任务的 `status` 必须为 `completed` 才能生成软件包。\n\n静态导出仅适用于 Enterprise 套餐。\n\n使用管理员 API 密钥进行身份验证。",
- "operationId": "generateStaticExportBundle",
+ "/static-export/{projectId}/jobs/{jobId}": {
+ "get": {
+ "summary": "获取静态导出任务状态",
+ "description": "获取静态导出任务的当前状态。启动任务后,可以轮询此端点,直到 `status` 变为 `completed`(或 `failed`)。\n\n任务完成后,响应中会包含 `bundleUrl`、`sizeBytes` 和 `expiresAt`。`bundleUrl` 是一个有时限的预签名 S3 链接。请在 `expiresAt` 时间戳之前下载该软件包。可再次调用此端点获取新的链接,底层的导出文件仍可复用。\n\n静态导出仅适用于 Enterprise 套餐。\n\n使用管理员 API 密钥进行身份验证。",
+ "operationId": "getStaticExportJob",
"parameters": [
+ {
+ "$ref": "#/components/parameters/projectId"
+ },
{
"name": "jobId",
"in": "path",
- "description": "已完成的静态导出任务的 ID。",
+ "description": "由 `Start static export job` 返回的静态导出任务的 ID。",
"required": true,
"schema": {
"type": "string"
@@ -143,11 +101,11 @@
],
"responses": {
"200": {
- "description": "指向静态导出软件包的预签名 S3 链接。",
+ "description": "导出任务的当前状态。",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/BundleResponse"
+ "$ref": "#/components/schemas/StaticExportJob"
}
}
}
@@ -162,8 +120,8 @@
}
}
},
- "404": {
- "description": "不存在使用所提供 ID 的任务。",
+ "403": {
+ "description": "该部署未启用静态导出。请联系 sales@mintlify.com 进行升级。",
"content": {
"application/json": {
"schema": {
@@ -172,8 +130,8 @@
}
}
},
- "409": {
- "description": "任务尚未完成,因此无法生成软件包。",
+ "404": {
+ "description": "该部署下不存在使用所提供 ID 的任务。",
"content": {
"application/json": {
"schema": {
@@ -191,60 +149,35 @@
"bearerAuth": {
"type": "http",
"scheme": "bearer",
- "description": "Authorization 请求头需要使用 Bearer 令牌。请使用管理员 API 密钥。这是仅供服务端使用的机密密钥。你可以在控制台的 [API 密钥页面](https://dashboard.mintlify.com/settings/organization/api-keys) 中生成一个。"
+ "description": "Authorization 请求头需要使用 Bearer 令牌。请使用管理员 API 密钥。这是仅供服务端使用的机密密钥。你可以在控制台的 [API 密钥页面](https://app.mintlify.com/settings/organization/api-keys) 中生成一个。"
+ }
+ },
+ "parameters": {
+ "projectId": {
+ "schema": {
+ "type": "string",
+ "description": "你的项目 ID。可以从控制台的 [API 密钥](https://app.mintlify.com/settings/organization/api-keys) 页面复制。"
+ },
+ "required": true,
+ "name": "projectId",
+ "in": "path"
}
},
"schemas": {
- "StartStaticExportRequest": {
- "type": "object",
- "required": ["domain"],
- "properties": {
- "domain": {
- "type": "string",
- "description": "要导出的部署的主域名。使用你在 Mintlify 控制台中为项目配置的自定义域名(例如 `docs.example.com`)。如果尚未配置自定义域名,则使用你的 Mintlify 子域名(例如 `acme.mintlify.app`)。仅提供主机名——不要包含协议、结尾斜杠或诸如 `/docs` 之类的路径前缀。",
- "example": "docs.example.com"
- },
- "version": {
- "type": "string",
- "description": "用于标记此次导出的可选版本标签。默认为最新发布的版本。",
- "example": "2024-06-01"
- },
- "paths": {
- "type": "array",
- "description": "要包含的页面路径的可选列表。省略时,将导出所有已发布的页面。",
- "items": {
- "type": "string"
- },
- "example": ["index", "guides/getting-started", "api-reference/introduction"]
- }
- }
- },
"StaticExportJob": {
"type": "object",
- "required": ["jobId", "status", "progress", "pageCount", "createdAt", "updatedAt"],
+ "required": ["jobId", "status", "createdAt", "updatedAt"],
"properties": {
"jobId": {
"type": "string",
"description": "静态导出任务的唯一标识符。",
- "example": "se_3f9a2c1b8e7d4a06"
+ "example": "6520f3a1c9b1a20012ab34cd"
},
"status": {
"type": "string",
"description": "任务的当前状态。",
"enum": ["queued", "running", "completed", "failed"],
- "example": "running"
- },
- "progress": {
- "type": "number",
- "description": "完成百分比,范围为 0 到 100。",
- "minimum": 0,
- "maximum": 100,
- "example": 42
- },
- "pageCount": {
- "type": "integer",
- "description": "目前已导出的页面数量。",
- "example": 128
+ "example": "completed"
},
"createdAt": {
"type": "string",
@@ -254,39 +187,28 @@
"updatedAt": {
"type": "string",
"format": "date-time",
- "description": "任务的最后更新时间。"
+ "description": "任务上次状态变更的时间。"
},
"error": {
"type": "string",
- "description": "人类可读的错误消息。仅当 `status` 为 `failed` 时才会出现。",
+ "description": "人类可读的错误消息。仅当 `status` 为 `failed` 时才会出现,否则为 `null`。",
"nullable": true
- }
- }
- },
- "BundleResponse": {
- "type": "object",
- "required": ["jobId", "bundleUrl", "sizeBytes", "expiresAt"],
- "properties": {
- "jobId": {
- "type": "string",
- "description": "生成此软件包所对应的任务 ID。",
- "example": "se_3f9a2c1b8e7d4a06"
},
"bundleUrl": {
"type": "string",
"format": "uri",
- "description": "指向静态导出软件包归档的预签名 S3 链接。请在链接过期前下载。",
- "example": "https://mintlify-static-exports.s3.amazonaws.com/se_3f9a2c1b8e7d4a06/bundle.tar.gz?X-Amz-Signature=..."
+ "description": "指向静态导出软件包归档的有时限预签名 S3 链接。仅当 `status` 为 `completed` 时才会出现。请在 `expiresAt` 之前下载该软件包。可再次调用此端点获取新的链接。",
+ "example": "https://mintlify-static-exports.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.zip?X-Amz-Signature=..."
},
"sizeBytes": {
"type": "integer",
- "description": "软件包大小(字节)。",
+ "description": "软件包大小(字节)。仅当 `status` 为 `completed` 时才会出现。",
"example": 18432000
},
"expiresAt": {
"type": "string",
"format": "date-time",
- "description": "预签名链接的过期时间。"
+ "description": "当前 `bundleUrl` 的过期时间。仅当 `status` 为 `completed` 时才会出现。"
}
}
},
From 31490576260b48106153f177f6a84a74ec061f1d Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Tue, 18 Aug 2026 23:29:29 +0000
Subject: [PATCH 2/3] docs: language-prefix internal links and wrap translated
headings
---
es/api/static-export/overview.mdx | 38 +++++++++++++++++++----------
fr/api/static-export/overview.mdx | 40 +++++++++++++++++++++----------
zh/api/static-export/overview.mdx | 38 +++++++++++++++++++----------
3 files changed, 79 insertions(+), 37 deletions(-)
diff --git a/es/api/static-export/overview.mdx b/es/api/static-export/overview.mdx
index fa2ceb537e..8d65131ca4 100644
--- a/es/api/static-export/overview.mdx
+++ b/es/api/static-export/overview.mdx
@@ -10,7 +10,9 @@ keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
Usa la API de exportación estática para prerenderizar tu sitio de forma programática en un conjunto autocontenido de archivos estáticos y descargar el resultado como un único paquete. El paquete exportado es HTML, CSS y JavaScript puros, sin dependencias en tiempo de ejecución, por lo que puedes alojarlo en cualquier almacenamiento de archivos estáticos o CDN.
-## URLs de página en paquetes estáticos
+
+ ## URLs de página en paquetes estáticos
+
Las exportaciones estáticas usan URLs `.html` que coinciden con los archivos del paquete. Por ejemplo, `/guides/getting-started` se convierte en `/guides/getting-started.html`. Esto sucede de forma automática y no requiere configuración.
@@ -18,24 +20,28 @@ Las exportaciones estáticas usan URLs `.html` que coinciden con los archivos de
Las URLs canónicas y las del sitemap siguen sin extensión. CloudFront resuelve estas URLs automáticamente, pero otros hostings estáticos pueden requerir reglas de reescritura.
-## Cómo funciona la exportación estática
+
+ ## Cómo funciona la exportación estática
+
Una exportación estática se ejecuta como un trabajo asíncrono. Inicias el trabajo para un proyecto y luego consultas su estado hasta que el paquete esté listo para descargar.
- Llama a [Iniciar trabajo de exportación estática](/api/static-export/start-job) con tu ID de proyecto. La API pone el trabajo en cola y devuelve un `jobId`.
+ Llama a [Iniciar trabajo de exportación estática](/es/api/static-export/start-job) con tu ID de proyecto. La API pone el trabajo en cola y devuelve un `jobId`.
Una implementación solo puede tener un trabajo activo a la vez. Si ya hay un trabajo `queued` o `running` para la implementación, el endpoint devuelve `409`. El endpoint está limitado a 10 inicios de trabajo por organización por hora.
- Consulta [Obtener estado del trabajo de exportación estática](/api/static-export/get-job-status) con el `jobId` hasta que `status` sea `completed`. La respuesta completada incluye `bundleUrl`, un enlace de S3 prefirmado con tiempo limitado al paquete, junto con `sizeBytes` y una marca de tiempo `expiresAt`.
+ Consulta [Obtener estado del trabajo de exportación estática](/es/api/static-export/get-job-status) con el `jobId` hasta que `status` sea `completed`. La respuesta completada incluye `bundleUrl`, un enlace de S3 prefirmado con tiempo limitado al paquete, junto con `sizeBytes` y una marca de tiempo `expiresAt`.
Descarga el paquete antes de `expiresAt`. Una vez que caduque, vuelve a llamar al endpoint de estado para obtener un `bundleUrl` nuevo. Los archivos de exportación subyacentes siguen siendo reutilizables. Solo el enlace tiene tiempo limitado.
-## Compatibilidad de funciones por tipo de despliegue
+
+ ## Compatibilidad de funciones por tipo de despliegue
+
Las funciones disponibles dependen de cómo alojes tu despliegue. Los despliegues aislados (air-gapped) no tienen acceso saliente a la red, por lo que cualquier función que dependa de los servicios en la nube de Mintlify no está disponible. Las funciones etiquetadas como **Configurable** tienen distinta disponibilidad según la configuración de tu entorno.
@@ -47,24 +53,30 @@ Las funciones disponibles dependen de cómo alojes tu despliegue. Los despliegue
| Playground de API ("Try it") | | | Configurable |
| Paquete de exportación estática | | | |
-## Endpoints
+
+ ## Endpoints
+
-- [Iniciar trabajo de exportación estática](/api/static-export/start-job): Pone en cola un trabajo de exportación estática para un proyecto.
-- [Obtener estado del trabajo de exportación estática](/api/static-export/get-job-status): Consulta el estado del trabajo y, una vez completado, recupera un enlace prefirmado para descargar el paquete.
+- [Iniciar trabajo de exportación estática](/es/api/static-export/start-job): Pone en cola un trabajo de exportación estática para un proyecto.
+- [Obtener estado del trabajo de exportación estática](/es/api/static-export/get-job-status): Consulta el estado del trabajo y, una vez completado, recupera un enlace prefirmado para descargar el paquete.
-## Autenticación
+
+ ## Autenticación
+
Autentica las solicitudes con tu clave de API de administrador. Genera una clave de API de administrador en la [página de claves de API](https://app.mintlify.com/settings/organization/api-keys) de tu panel. Las claves de API de administrador comienzan con el prefijo `mint_` y son secretos del lado del servidor: no las expongas en código del lado del cliente.
Copia tu ID de proyecto desde la misma página y úsalo como el parámetro de ruta `projectId`.
-## Desplegar el paquete en tu Helm chart de Enterprise
+
+ ## Desplegar el paquete en tu Helm chart de Enterprise
+
Mintlify autoalojado se implementa con el Helm chart del repositorio [`mintlify/enterprise`](https://github.com/mintlify/enterprise). Una vez que un trabajo de exportación estática se completa, apuntas el chart al `bundleUrl` y el despliegue lo sirve desde tu propia infraestructura.
- Configura los campos de exportación estática en tu `values.yaml` con el `bundleUrl` devuelto por [Obtener estado del trabajo de exportación estática](/api/static-export/get-job-status). El chart descarga el paquete al iniciarse y lo sirve como la versión activa.
+ Configura los campos de exportación estática en tu `values.yaml` con el `bundleUrl` devuelto por [Obtener estado del trabajo de exportación estática](/es/api/static-export/get-job-status). El chart descarga el paquete al iniciarse y lo sirve como la versión activa.
```yaml values.yaml
staticExport:
@@ -89,7 +101,9 @@ Mintlify autoalojado se implementa con el Helm chart del repositorio [`mintlify/
Dado que los enlaces prefirmados expiran, vuelve a consultar el estado del trabajo y a ejecutar la actualización siempre que publiques contenido nuevo, o automatiza el ciclo con GitHub Actions.
-## Automatizar con una GitHub Action
+
+ ## Automatizar con una GitHub Action
+
La siguiente plantilla de workflow ejecuta todo el ciclo de exportación de forma programada o bajo demanda. Inicia un trabajo, espera hasta que la exportación se complete y despliega el nuevo `bundleUrl` en el Helm chart.
diff --git a/fr/api/static-export/overview.mdx b/fr/api/static-export/overview.mdx
index 78255318ab..9b45810e92 100644
--- a/fr/api/static-export/overview.mdx
+++ b/fr/api/static-export/overview.mdx
@@ -1,6 +1,6 @@
---
title: "Exportation statique"
-description: "Générez une exportation statique autonome de votre documentation et téléchargez-la sous forme d'un unique bundle via l'API REST Mintlify pour l'auto-hébergement."
+description: "Générez une exportation statique autonome de votre documentation et téléchargez-la comme un unique bundle via l'API REST Mintlify pour l'auto-hébergement."
keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
---
@@ -10,7 +10,9 @@ keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
Utilisez l'API d'exportation statique pour pré-rendre votre site par programmation en un ensemble autonome de fichiers statiques et télécharger le résultat sous forme d'un unique bundle. Le bundle exporté est composé de HTML, CSS et JavaScript purs, sans dépendances d'exécution, afin que vous puissiez l'héberger sur n'importe quel stockage de fichiers statiques ou CDN.
-## URL des pages dans les bundles statiques
+
+ ## URL des pages dans les bundles statiques
+
Les exportations statiques utilisent des URL en `.html` qui correspondent aux fichiers du bundle. Par exemple, `/guides/getting-started` devient `/guides/getting-started.html`. Cela se produit automatiquement et ne nécessite aucune configuration.
@@ -18,24 +20,28 @@ Les exportations statiques utilisent des URL en `.html` qui correspondent aux fi
Les URL canoniques et celles du sitemap restent sans extension. CloudFront résout ces URL automatiquement, mais d'autres hébergeurs statiques peuvent nécessiter des règles de réécriture.
-## Fonctionnement de l'exportation statique
+
+ ## Fonctionnement de l'exportation statique
+
Une exportation statique s'exécute sous forme de tâche asynchrone. Vous démarrez la tâche pour un projet, puis interrogez son statut jusqu'à ce que le bundle soit prêt à être téléchargé.
- Appelez [Démarrer une tâche d'exportation statique](/api/static-export/start-job) avec l'identifiant de votre projet. L'API met la tâche en file d'attente et renvoie un `jobId`.
+ Appelez [Démarrer une tâche d'exportation statique](/fr/api/static-export/start-job) avec l'identifiant de votre projet. L'API met la tâche en file d'attente et renvoie un `jobId`.
Un déploiement ne peut avoir qu'une seule tâche active à la fois. Si une tâche est déjà `queued` ou `running` pour le déploiement, l'endpoint retourne `409`. L'endpoint est limité à 10 démarrages de tâche par organisation et par heure.
- Interrogez [Obtenir le statut d'une tâche d'exportation statique](/api/static-export/get-job-status) avec le `jobId` jusqu'à ce que `status` soit `completed`. La réponse d'une tâche terminée inclut `bundleUrl`, un lien S3 présigné limité dans le temps vers le bundle, ainsi que `sizeBytes` et un horodatage `expiresAt`.
+ Interrogez [Obtenir le statut d'une tâche d'exportation statique](/fr/api/static-export/get-job-status) avec le `jobId` jusqu'à ce que `status` soit `completed`. La réponse d'une tâche terminée inclut `bundleUrl`, un lien S3 présigné limité dans le temps vers le bundle, ainsi que `sizeBytes` et un horodatage `expiresAt`.
Téléchargez le bundle avant `expiresAt`. Une fois le lien expiré, rappelez l'endpoint de statut pour obtenir une nouvelle `bundleUrl`. Les fichiers d'exportation sous-jacents restent réutilisables. Seul le lien est limité dans le temps.
-## Prise en charge des fonctionnalités par type de déploiement
+
+ ## Prise en charge des fonctionnalités par type de déploiement
+
Les fonctionnalités disponibles dépendent de la manière dont vous hébergez votre déploiement. Les déploiements en air-gapped n'ont aucun accès réseau sortant, donc toute fonctionnalité qui repose sur les services cloud de Mintlify est indisponible. Les fonctionnalités étiquetées **Configurable** ont une disponibilité différente selon la configuration de votre environnement.
@@ -47,24 +53,30 @@ Les fonctionnalités disponibles dépendent de la manière dont vous hébergez v
| Playground API (« Essayer ») | | | Configurable |
| Bundle d'exportation statique | | | |
-## Endpoints
+
+ ## Endpoints
+
-- [Démarrer une tâche d'exportation statique](/api/static-export/start-job) : mettre en file d'attente une tâche d'exportation statique pour un projet.
-- [Obtenir le statut d'une tâche d'exportation statique](/api/static-export/get-job-status) : interroger l'état de la tâche et, une fois terminée, récupérer un lien présigné de téléchargement du bundle.
+- [Démarrer une tâche d'exportation statique](/fr/api/static-export/start-job) : mettre en file d'attente une tâche d'exportation statique pour un projet.
+- [Obtenir le statut d'une tâche d'exportation statique](/fr/api/static-export/get-job-status) : interroger l'état de la tâche et, une fois terminée, récupérer un lien présigné de téléchargement du bundle.
-## Authentification
+
+ ## Authentification
+
Authentifiez les requêtes avec votre clé d'API admin. Générez une clé d'API admin sur la [page des clés d'API](https://app.mintlify.com/settings/organization/api-keys) de votre tableau de bord. Les clés d'API admin commencent par le préfixe `mint_` et sont des secrets côté serveur — ne les exposez pas dans du code côté client.
Copiez l'identifiant de votre projet depuis la même page et utilisez-le comme paramètre de chemin `projectId`.
-## Déployer le bundle sur votre chart Helm Enterprise
+
+ ## Déployer le bundle sur votre chart Helm Enterprise
+
Mintlify auto-hébergé se déploie avec le chart Helm du dépôt [`mintlify/enterprise`](https://github.com/mintlify/enterprise). Une fois qu'une tâche d'exportation statique est terminée, vous pointez le chart vers la `bundleUrl` et le déploiement le sert depuis votre propre infrastructure.
- Définissez les champs d'exportation statique dans votre `values.yaml` sur la `bundleUrl` renvoyée par [Obtenir le statut d'une tâche d'exportation statique](/api/static-export/get-job-status). Le chart récupère le bundle au démarrage et le sert comme version active.
+ Définissez les champs d'exportation statique dans votre `values.yaml` sur la `bundleUrl` renvoyée par [Obtenir le statut d'une tâche d'exportation statique](/fr/api/static-export/get-job-status). Le chart récupère le bundle au démarrage et le sert comme version active.
```yaml values.yaml
staticExport:
@@ -89,7 +101,9 @@ Mintlify auto-hébergé se déploie avec le chart Helm du dépôt [`mintlify/ent
Comme les liens présignés expirent, récupérez à nouveau le statut de la tâche et relancez la mise à niveau chaque fois que vous publiez du nouveau contenu, ou automatisez la boucle avec GitHub Actions.
-## Automatiser avec une GitHub Action
+
+ ## Automatiser avec une GitHub Action
+
Le workflow modèle suivant exécute la boucle complète d'exportation selon un calendrier ou à la demande. Il démarre une tâche, interroge jusqu'à la fin de l'exportation, puis déploie la nouvelle `bundleUrl` dans le chart Helm.
diff --git a/zh/api/static-export/overview.mdx b/zh/api/static-export/overview.mdx
index 8919973233..99fa6c521b 100644
--- a/zh/api/static-export/overview.mdx
+++ b/zh/api/static-export/overview.mdx
@@ -10,7 +10,9 @@ keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
使用静态导出 API 以编程方式将站点预渲染为一组自包含的静态文件,并将结果作为单个包下载。导出的包为纯 HTML、CSS 和 JavaScript,没有运行时依赖,因此你可以将其托管在任何静态文件存储或 CDN 上。
-## 静态包中的页面 URL
+
+ ## 静态包中的页面 URL
+
静态导出使用与包中的文件相对应的 `.html` URL。例如,`/guides/getting-started` 会变为 `/guides/getting-started.html`。此行为自动生效,无需任何配置。
@@ -18,24 +20,28 @@ keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
canonical 和 sitemap 中的 URL 仍保持无扩展名。CloudFront 会自动解析这些 URL,但其他静态托管服务可能需要配置重写规则。
-## 静态导出的工作原理
+
+ ## 静态导出的工作原理
+
静态导出以异步作业的形式运行。你为某个项目启动作业,然后轮询其状态,直至可下载该包。
- 使用你的项目 ID 调用 [启动静态导出作业](/api/static-export/start-job)。API 会将作业加入队列并返回 `jobId`。
+ 使用你的项目 ID 调用 [启动静态导出作业](/zh/api/static-export/start-job)。API 会将作业加入队列并返回 `jobId`。
每个部署同一时间只能有一个处于活动状态的作业。如果该部署已有作业处于 `queued` 或 `running` 状态,端点将返回 `409`。该端点的速率限制为每个组织每小时最多启动 10 个作业。
- 使用 `jobId` 轮询 [获取静态导出作业状态](/api/static-export/get-job-status),直到 `status` 为 `completed`。完成后的响应中会包含 `bundleUrl`(指向该包的有时限预签名 S3 链接)、`sizeBytes` 以及 `expiresAt` 时间戳。
+ 使用 `jobId` 轮询 [获取静态导出作业状态](/zh/api/static-export/get-job-status),直到 `status` 为 `completed`。完成后的响应中会包含 `bundleUrl`(指向该包的有时限预签名 S3 链接)、`sizeBytes` 以及 `expiresAt` 时间戳。
请在 `expiresAt` 之前下载该包。过期后,可再次调用状态端点以获取新的 `bundleUrl`,底层的导出文件仍可复用,仅链接有时限。
-## 按部署方式的功能支持
+
+ ## 按部署方式的功能支持
+
可用功能取决于你的部署托管方式。气隙(air-gapped)部署没有出站网络访问权限,因此任何依赖 Mintlify 云服务的功能均不可用。标记为 **Configurable** 的功能会根据你的环境配置有所不同。
@@ -47,24 +53,30 @@ keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
| API playground("Try it") | | | Configurable |
| 静态导出包 | | | |
-## 端点
+
+ ## 端点
+
-- [启动静态导出作业](/api/static-export/start-job):为项目将一个静态导出作业加入队列。
-- [获取静态导出作业状态](/api/static-export/get-job-status):轮询作业状态;作业完成后,获取该包的预签名下载链接。
+- [启动静态导出作业](/zh/api/static-export/start-job):为项目将一个静态导出作业加入队列。
+- [获取静态导出作业状态](/zh/api/static-export/get-job-status):轮询作业状态;作业完成后,获取该包的预签名下载链接。
-## 身份认证
+
+ ## 身份认证
+
使用你的 admin API 密钥对请求进行身份认证。你可以在控制台的 [API keys 页面](https://app.mintlify.com/settings/organization/api-keys) 生成 admin API 密钥。Admin API 密钥以 `mint_` 前缀开头,属于服务端机密——切勿在客户端代码中暴露。
从同一页面复制你的项目 ID,并将其用作 `projectId` 路径参数。
-## 将包部署到你的 Enterprise Helm chart
+
+ ## 将包部署到你的 Enterprise Helm chart
+
自托管的 Mintlify 通过 [`mintlify/enterprise`](https://github.com/mintlify/enterprise) 仓库中的 Helm chart 部署。当静态导出作业完成后,将 chart 指向 `bundleUrl`,部署环境便会从你自己的基础设施提供服务。
- 将 `values.yaml` 中的静态导出字段设置为 [获取静态导出作业状态](/api/static-export/get-job-status) 返回的 `bundleUrl`。chart 会在启动时获取该包并将其作为当前版本提供服务。
+ 将 `values.yaml` 中的静态导出字段设置为 [获取静态导出作业状态](/zh/api/static-export/get-job-status) 返回的 `bundleUrl`。chart 会在启动时获取该包并将其作为当前版本提供服务。
```yaml values.yaml
staticExport:
@@ -89,7 +101,9 @@ keywords: ["static export", "static site", "bundle", "self-host", "enterprise"]
由于预签名链接会过期,每当你发布新内容时,都需要重新获取作业状态并再次执行升级,或使用 GitHub Actions 自动化整个流程。
-## 使用 GitHub Action 自动化
+
+ ## 使用 GitHub Action 自动化
+
以下模板工作流按计划或按需运行完整的导出流程。它会启动作业、轮询直至导出完成,然后将新的 `bundleUrl` 应用到 Helm chart。
From 4f741ddb215bb76b2a80e669315108d01326e492 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Mon, 24 Aug 2026 17:23:27 +0000
Subject: [PATCH 3/3] docs: update static export example bundle URLs to
mintlify-static-export-outputs-prod
---
api/static-export/overview.mdx | 2 +-
static-export-openapi.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/api/static-export/overview.mdx b/api/static-export/overview.mdx
index 76a132995f..1f954b6f00 100644
--- a/api/static-export/overview.mdx
+++ b/api/static-export/overview.mdx
@@ -70,7 +70,7 @@ Self-hosted Mintlify deploys with the Helm chart in the [`mintlify/enterprise`](
staticExport:
enabled: true
# Presigned S3 link returned by the Get static export job status endpoint.
- bundleUrl: "https://mintlify-static-exports.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.zip"
+ bundleUrl: "https://mintlify-static-export-outputs-prod.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.zip"
# Optional: pin to a specific export version for reproducible rollouts.
version: "2024-06-01"
```
diff --git a/static-export-openapi.json b/static-export-openapi.json
index be49540fd2..b4dab2c250 100644
--- a/static-export-openapi.json
+++ b/static-export-openapi.json
@@ -198,7 +198,7 @@
"type": "string",
"format": "uri",
"description": "A time-limited presigned S3 link to the static export bundle archive. Present only when `status` is `completed`. Download the bundle before `expiresAt`. Call this endpoint again to get a fresh link.",
- "example": "https://mintlify-static-exports.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.zip?X-Amz-Signature=..."
+ "example": "https://mintlify-static-export-outputs-prod.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.zip?X-Amz-Signature=..."
},
"sizeBytes": {
"type": "integer",