# Playground con Tauri

> Cómo abrir tu Miniapp dentro de un Host de escritorio para probarla, sin publicarla.


Antes de coordinar con Andco la publicación, puedes abrir tu Miniapp dentro de un Host real: `apps/example-oauth-tauri` en el repo de `andco-sdk-js` es un Host de escritorio hecho con Tauri, pensado exactamente para esto. Resuelve tu manifest, valida el origen igual que un Host de producción, y la abre en una WebView nativa aislada con su propia cookie jar.

## Preparar el Host

```sh
git clone https://github.com/haulmer/andco-sdk-js
cd andco-sdk-js
pnpm install
cp apps/example-oauth-tauri/.env.example apps/example-oauth-tauri/.env
```

El `.env` trae los orígenes locales por omisión (`bank.localhost`, `auth.localhost`, y un catálogo de Miniapps de ejemplo). No hace falta tocarlo para las variables de Andco — solo agregar la tuya.

## Agregar tu Miniapp al catálogo

El catálogo confiable vive en `apps/example-oauth-tauri/src/config.ts`. Agrega el origen de tu Miniapp y súmalo a `seedMiniappManifestUrls`:

```ts title="apps/example-oauth-tauri/src/config.ts"
const carMarketOrigin = import.meta.env.VITE_CAR_MARKET_MINIAPP_ORIGIN ?? "https://carmarket.localhost";

export const seedMiniappManifestUrls = [
  // ...las que ya estaban
  manifestUrl(carMarketOrigin),
];
```

`manifestUrl(origin)` sin segundo argumento usa el path canónico, `/miniapp.webmanifest`.

## Correr el playground

Con tu Miniapp corriendo en el origen que declaraste, y los servicios locales de Andco arriba:

```sh
pnpm --filter @andco/example-oauth-tauri dev
```

Esto abre el shell de escritorio. Tu Miniapp aparece en el catálogo; al abrirla, el Host descarga tu manifest, valida el origen contra la configuración pública de tu cliente OAuth, y la monta en una pestaña con su propia WebView. Cada pestaña mantiene su propia identidad de Host y su propio cookie jar — cerrarla borra esa sesión, igual que un Host real.

## Qué revisa por ti

- Que `start_url` y `auth_url` sean del mismo origen que tu manifest.
- Que tu `client_id` corresponda a un cliente OAuth registrado, con los `redirect_uris` y `allowed_origins` correctos.
- El intercambio completo: autorización, consentimiento (aquí simulado por el shell local), y que tu callback reciba la sesión.
- Los eventos que tu Miniapp dispara sobre el puente `postMessage`, en un log de la propia app.

No sustituye la revisión de Andco antes de publicar, pero te deja encontrar un manifest mal formado o un origen mal declarado sin esperar esa revisión.
