Capabilities por plataforma
El modelo de la fase V tiene una dimensión más cuando hay cinco sistemas: permisos que solo existen en algunos, y ventanas que no existen en otros.
Qué cambia
Cómo se organiza
Tauri permite declarar en cada capability para qué plataformas vale, y eso resuelve el problema sin duplicar:
{ "identifier": "escritorio-procesos", "platforms": ["macOS", "windows", "linux"], "windows": ["main"], "permissions": ["shell:allow-execute"]}Y la ventaja de esta separación es de seguridad: un permiso de ejecución de procesos declarado solo para escritorio no existe en móvil, así que ni siquiera se puede intentar usarlo ahí.
La superficie, ahora por cinco
Y la consecuencia que merece atención: la cuenta del nivel 26.3 se hace por plataforma.
- Cada plataforma tiene su superficie, que es la suma de lo común más lo suyo.
- Y las auditorías del nivel 33 se hacen sobre cada una.
- Con un matiz que ayuda: móvil suele tener menos superficie, porque no puede lanzar procesos ni tocar ficheros libremente. Nivel 62.5.
Lo que hay que evitar es lo contrario: poner en la capability común un permiso que solo hace falta en una plataforma, porque entonces está en las cinco.
Lo que solo existe en una
Y el caso que hay que manejar con cuidado: una función que solo existe en una plataforma.
- En el core: compilación condicional, con la función entera bajo condición. Nivel 66.3.
- En las capabilities: declarada solo para esa plataforma.
- Y en la interfaz: no mostrarla donde no exista, en vez de mostrarla y que falle.
Los tres tienen que estar de acuerdo. Un comando condicional cuya opción sigue apareciendo en el menú de otra plataforma produce un botón que falla — el error del nivel 67.1, regla cuatro.