docs: media publishing and producer checks in README and validation guide
This commit is contained in:
parent
1b58768738
commit
b4557ae23a
2 changed files with 45 additions and 2 deletions
|
|
@ -132,8 +132,8 @@ Conectar una cuenta (OAuth con `state` de un solo uso y PKCE donde la red lo adm
|
|||
|
||||
| Red | Conectar | Publicar | Notas |
|
||||
|---|---|---|---|
|
||||
| Mastodon | Sí | Texto | Sin claves de servidor; cada cuenta registra la app en su instancia. |
|
||||
| Telegram | Sí | Texto | Token del bot de BotFather. |
|
||||
| Mastodon | Sí | Texto e imágenes (con texto alternativo) | Sin claves de servidor; cada cuenta registra la app en su instancia. |
|
||||
| Telegram | Sí | Texto e imágenes | Token del bot de BotFather. |
|
||||
| Instagram | Sí, con `INSTAGRAM_CLIENT_ID/SECRET` | No todavía | Meta descarga la imagen de una URL pública y los medios están cifrados: falta un endpoint temporal. Ver [docs/oauth-connect.md](docs/oauth-connect.md). |
|
||||
| PeerTube | No | Directo sí | Falta el puente OAuth en tube.occupymedia.cc. |
|
||||
| X | No | No | Sin conector. API de pago por uso. |
|
||||
|
|
|
|||
|
|
@ -137,6 +137,49 @@ Verificación
|
|||
GET /media/<id> con sesión del colectivo B -> 404.
|
||||
|
||||
|
||||
3b. PUBLICAR CON IMÁGENES (scheduler)
|
||||
-------------------------------------
|
||||
Problema
|
||||
Desde 71db0a0/a6843e9 un borrador aprobado puede llevar mediaAssetIds y
|
||||
altTexts, pero el registro del scheduler
|
||||
(packages/connector-runtime/src/registry.ts) creaba los conectores sin
|
||||
loadAsset/openAsset: Mastodon y Telegram devolvían rejected_permanent
|
||||
INVALID_POST y el post no salía. Los altTexts no llegaban al conector.
|
||||
|
||||
Qué cambia
|
||||
- packages/connector-runtime/src/media.ts: loadAsset lee media_assets
|
||||
dentro del colectivo de la ejecución (app.workspace_id, RLS forzado);
|
||||
openAsset descarga el objeto, abre el marco SPENC1 con S3_KEK y
|
||||
comprueba el hash del contenido. Solo lectura. Los bytes van
|
||||
worker -> red; nunca pasan por la API.
|
||||
- preparePostForDispatch convierte altTexts[i] en
|
||||
providerMetadata.altText[mediaAssetIds[i]] (lo que lee Mastodon).
|
||||
- Instagram registrado también en el scheduler: rechaza con error
|
||||
explícito en vez de "proveedor desconocido". Sigue sin publicar fotos
|
||||
(necesita URL pública; decisión pendiente).
|
||||
|
||||
Tests
|
||||
cd packages/connector-runtime && npx vitest run esperado: 33 pass
|
||||
cd apps/scheduler && npx vitest run esperado: 96 pass
|
||||
|
||||
Prueba manual (entorno de pruebas)
|
||||
1. Compose: post con 2 imágenes y texto alternativo a Mastodon.
|
||||
2. Aprobar y programar a 1 minuto.
|
||||
3. El post sale con las 2 imágenes y su descripción en la instancia.
|
||||
4. Con una imagen de otro colectivo forzada en mediaAssetIds -> falla
|
||||
(MEDIA_ASSET_NOT_FOUND), no se publica nada.
|
||||
|
||||
|
||||
3c. PRODUCTOR DE VÍDEO
|
||||
----------------------
|
||||
- Quitado MEDIA_DEBUG_STDERR=1 del compose de producción (escribía la
|
||||
salida de ffmpeg sin censurar en /tmp).
|
||||
- El logo superpuesto solo acepta imágenes del propio colectivo
|
||||
(adjuntos, recursos de grupo o la marca). Antes bastaba una clave con
|
||||
formato válido.
|
||||
cd apps/api && npx vitest run src/video esperado: 38 pass
|
||||
|
||||
|
||||
4. ESTILO Y LOGO
|
||||
----------------
|
||||
- apps/web/src/app/globals.css: paleta de acampada26s.net. Fondo
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue