<?xml version="1.0" encoding="utf-8"?>
<!--
  Proxy inverso IIS → Node.js (planner en el puerto 3100).

  Requiere los módulos URL Rewrite y ARR, los mismos que ya usa el sitio
  principal de Terrasol.

  IMPORTANTE — el modo TV usa Server-Sent Events, y ARR almacena la respuesta
  en un búfer por defecto: el televisor no recibiría nada hasta que se llenara.
  Hay que desactivar ese búfer una sola vez, como Administrador:

      %windir%\system32\inetsrv\appcmd.exe set config ^
        -section:system.webServer/proxy /responseBufferThreshold:0 /commit:apphost

  Sin ese comando el panel del televisor se queda congelado aunque todo lo demás
  funcione.
-->
<configuration>
  <system.webServer>

    <rewrite>
      <rules>
        <rule name="ReverseProxyToPlanner" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{CACHE_URL}" pattern="^(https?)://" />
          </conditions>
          <action type="Rewrite" url="{C:1}://localhost:3100/{R:1}" />
        </rule>
      </rules>

      <!-- Conserva el esquema y el host originales: la cookie de sesión se
           marca Secure y las URLs absolutas deben apuntar a https. -->
      <outboundRules>
        <preConditions>
          <preCondition name="EsRedireccion">
            <add input="{RESPONSE_STATUS}" pattern="3\d\d" />
          </preCondition>
        </preConditions>
        <rule name="ReescribirLocation" preCondition="EsRedireccion">
          <match serverVariable="RESPONSE_Location" pattern="^https?://localhost:3100/(.*)" />
          <action type="Rewrite" value="https://{HTTP_HOST}/{R:1}" />
        </rule>
      </outboundRules>
    </rewrite>

    <security>
      <requestFiltering removeServerHeader="true" />
    </security>

    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
        <add name="X-Frame-Options" value="SAMEORIGIN" />
        <add name="X-Content-Type-Options" value="nosniff" />
        <add name="Referrer-Policy" value="strict-origin-when-cross-origin" />
      </customHeaders>
    </httpProtocol>

  </system.webServer>
</configuration>
