diff options
Diffstat (limited to 'es/docs/running')
-rw-r--r-- | es/docs/running/admin_manual.md | 458 | ||||
-rw-r--r-- | es/docs/running/index.md | 30 | ||||
-rw-r--r-- | es/docs/running/redaction.md | 135 | ||||
-rw-r--r-- | es/docs/running/security.md | 36 | ||||
-rw-r--r-- | es/docs/running/server.md | 117 | ||||
-rw-r--r-- | es/docs/running/upgrading.md | 113 |
6 files changed, 889 insertions, 0 deletions
diff --git a/es/docs/running/admin_manual.md b/es/docs/running/admin_manual.md new file mode 100644 index 000000000..9099ed242 --- /dev/null +++ b/es/docs/running/admin_manual.md @@ -0,0 +1,458 @@ +--- +layout: es/page +title: Manual de administrador +--- + +# Manual de administrador de Alaveteli + +<p class="lead"> + ¿Cómo se gestiona un sitio basado en Alaveteli? Esta guía explica qué puede esperar + y los tipos de problemas que puede encontrar. Incluye ejemplos de cómo + gestiona mySociety su propio sitio de <a href="{{ page.baseurl }}/docs/glossary/#foi" + class="glossary__link">información pública</a>, <a + href="https://www.whatdotheyknow.com">whatdotheyknow.com</a>. +</p> + +Este manual incluye: + +<ul class="toc"> + <li><a href="#cules-son-las-implicaciones">¿Cuáles son las implicaciones?</a></li> + <li><a href="#soporte-al-usuario">Soporte al usuario</a> + <ul> + <li><a href="#gestionar-correos-que-no-llegan-a-la-autoridad">Gestionar correos que no llegan a la autoridad</a></li> + <li><a href="#solicitudes-para-retirar-informacin">Solicitudes para retirar información</a></li> + <li><a href="#direccin-incorrecta">Dirección incorrecta</a></li> + <li><a href="#peticin-de-asesoramiento">Petición de asesoramiento</a></li> + <li><a href="#soporte-general-requerido">Soporte general requerido</a></li> + <li><a href="#usuarios-irritantes">Usuarios irritantes</a></li> + <li><a href="#errores-de-importacin-de-correo">Errores de importación de correo</a></li> + </ul> + <li><a href="#mantenimiento">Mantenimiento</a></li> + <ul> + <li><a href="#permisos-de-administrador-y-acceso-a-la-interfaz-de-administracin">Permisos de administrador y acceso a la interfaz de administración</a></li> + <li><a href="#eliminar-un-mensaje-de-la-sala-de-espera">Eliminar un mensaje de la sala de espera</a></li> + <li><a href="#editar-y-cargar-direcciones-de-correo-de-organismos-pblicos">Editar y cargar direcciones de correo de organismos públicos</a></li> + <li><a href="#bloquear-usuarios">Bloquear usuarios</a></li> + <li><a href="#eliminar-una-solicitud">Eliminar una solicitud</a></li> + <li><a href="#ocultar-una-solicitud">Ocultar una solicitud</a></li> + <li><a href="#ocultar-un-mensaje-entrante-o-saliente">Ocultar un mensaje entrante o saliente</a></li> + <li><a href="#editar-un-mensaje-saliente">Editar un mensaje saliente</a></li> + <li><a href="#ocultar-texto-concreto-de-una-solicitud">Ocultar texto concreto de una solicitud</a></li> + </ul> + </li> +</ul> + +## ¿Cuáles son las implicaciones? + +El gasto general en la gestión de un sitio web de información pública exitoso es +bastante elevado. Richard, un voluntario, escribió una [publicación en el +blog](https://www.mysociety.org/2009/10/13/behind-whatdotheyknow/) sobre este tema en 2009. + +WhatDoTheyKnow normalmente tiene 3 voluntarios activos en todo momento gestionando +el soporte, además de otras personas menos activas que ayudan en distintos momentos. + +Las tareas de administración pueden dividirse en +[**mantenimiento**]({{ page.baseurl }}/docs/running/admin_manual/#mantenimiento) y +[**soporte al usuario**]({{ page.baseurl }}/docs/running/admin_manual/#soporte-al-usuario). +La frontera entre estas tareas es bastante difusa; la diferencia principal +consiste en que la primera se lleva a cabo exclusivamente a través de la interfaz de +administración, mientras que la segunda se gestiona por correo electrónico directamente +con usuarios finales (pero a menudo resulta en acciones llevadas a cabo a través de la +interfaz de administración). + +En una semana de diciembre de 2010 escogida al azar, el equipo de soporte trabajó en 66 +eventos diferentes, que comprendieron 44 correos de **soporte** al usuario y 22 +tareas de **mantenimiento**. + +La mayoría de los correos de soporte requieren algo de tiempo de investigación; algunos +(por ejemplo, los que tienen implicaciones legales) requieren gran cantidad de discusión sobre +políticas para conseguir gestionarlos. Las tareas de mantenimiento suelen ser bastante +más directas, aunque algunas veces requieren conocimientos expertos (por ejemplo, sobre +mensajes rebotados por el servidor de correo). + +Durante esta semana, las tareas surgieron de la siguiente manera: + +### Tareas comunes de mantenimiento + +* 18 respuestas no entregadas o mal encaminadas (por ejemplo, recibidas en la sala de espera) +* 4 solicitudes no clasificadas 21 días después de la respuesta, a la espera de clasificación +* 2 solicitudes marcadas para revisión por parte de un administrador +* 2 ocurrencias marcadas como errores (mensajes rechazados por el servidor por spam, bandeja de entrada llena, etc.) pendientes de reparar + +### Tareas de soporte al usuario + +* 16 tareas administrativas generales cotidianas: por ejemplo, ocurrencias resultantes en acciones administrativas en el sitio + (rebotes, respuestas mal encaminadas, etc.) +* 14 elementos gestionados de forma incorrecta (por ejemplo, enviados al equipo de soporte en lugar de a una autoridad) +* 6 usuarios en necesidad de soporte para utilizar el sitio web (problemas para encontrar autoridades o autoridades con problemas de seguimiento) +* 4 usuarios solicitando información sobre protección de datos o información pública +* 3 solicitudes para editar información personal +* 2 solicitudes para editar información difamatoria + +## Soporte al usuario + +A continuación se ofrece un desglose de los métodos más comunes de soporte al usuario, +a modo de guía sobre el tipo de políticas y formación que un equipo de soporte necesita +para su desarrollo. + +### Gestionar correos que no llegan a la autoridad + +Es posible que los correos no lleguen a la autoridad en primer lugar por una serie +de motivos: + +* El dominio del destinatario ha marcado el correo como spam y no lo ha enviado. +* Se ha incluido en la carpeta de spam a causa de la configuración del cliente de correo. +* El destinatario cuenta con una configuración de filtros de correo que de algún modo omite la bandeja de entrada. + +El primer motivo es el más común. La solución consiste en enviar un correo estándar +al departamento informático del destinatario para que añadan a la lista blanca los correos +de su servicio (y, por supuesto, enviar un mensaje al destinatario original sobre este tema). +La interfaz de administración de Alaveteli incluye una opción para reenviar cualquier mensaje. + +Un administrador de Alaveteli solo detectará este problema cuando una solicitud haya superado +significativamente el tiempo de espera sin recibir ningún tipo de correspondencia por parte +de la autoridad. Algunas veces el servidor de correo de la autoridad rebotará el correo, en +cuyo caso aparecerá en la interfaz de administración a la espera de revisión por parte de un +administrador. + +### Solicitudes para retirar información + +#### Acciones legales + +En este caso alguien nos indica que cierta información del sitio puede ser objeto de +acciones legales. El escenario variará en las distintas jurisdicciones legales. +En el Reino Unido este tipo de solicitud está habitualmente relacionada con la +difamación. + +##### Acciones + +* Reciba la notificación por correo en una dirección central de soporte para que + quede constancia por escrito. +* Actúe de acuerdo a las medidas legales estándar (por ejemplo, es posible que deba retirar + temporalmente las solicitudes mientras evalúa el caso, incluso aunque considere que deberían + seguir funcionando, o tal vez pueda editarlas temporalmente en lugar de retirarlas). +* Registre centralmente la conversación completa y las acciones que ha llevado a cabo. +* Obtenga asesoramiento legal adicional cuando lo necesite. Por ejemplo, puede obtener + una estimación de riesgos que sugiera que puede publicar de nuevo la solicitud o mostrarla + con ediciones limitadas. + +#### Derechos de autor/comerciales + +A veces las autoridades públicas no acaban de entender que sus respuestas son +públicas y, al descubrirlo, no les gusta este tema, por lo que reclaman derechos de autor. +Ocasionalmente también se efectúan otras reclamaciones de derechos de autor sobre el contenido, +pero este caso es el más habitual. Los datos «comercialmente delicados» también pueden +considerarse como datos personales. + +##### Acciones + +* En caso de recibir advertencias sobre acciones legales, consulte el punto anterior. +* En caso contrario, trate la reclamación en primer lugar como un caso de defensa basado en + que las solicitudes de información pública pueden ser repetidas por cualquiera, en que + los datos deberían ser públicos de todas maneras y en que su publicación en realidad + evita gastos innecesarios a la autoridad. + +##### Ejemplo de correo electrónico dirigido a la autoridad + +> Como ya debe saber, nuestra ley de información pública es imparcial respecto a los solicitantes, +> así que cualquier persona del mundo puede solicitar el mismo documento y obtener una copia. +> Para ahorrar dinero a los contribuyentes evitando solicitudes duplicadas y para contar con +> buenas relaciones públicas, le recomendamos que no solicite eliminar la información ni +> la aplicación de una licencia. También me gustaría destacar que <nombre_autoridad> +> permite la reutilización de respuestas de información pública a través de nuestro sitio +> desde el año pasado sin ninguna incidencia al respecto. + + +#### Datos personales + +Aquí se incluyen desde datos personales revelados de forma inadvertida, como +información de identificación personal sobre personas que reclaman beneficios, +hasta el nombre de un usuario del sitio que más adelante no desea aparecer en +los resultados de búsqueda de Google. + +##### Acciones + +* Evalúe la solicitud con referencia a las leyes locales de protección de datos. No + de por hecho automáticamente que debe retirar cierta información, valore la molestia + y el daño causados al individuo que se sentiría aliviado al retirar el material + frente al interés público en publicar o continuar publicando el material. Los datos + personales delicados requerirán normalmente un nivel de interés público mucho mayor. +* [WhatDoTheyKnow considera](https://www.whatdotheyknow.com/help/privacy#takedown) que + existe un fuerte interés público en mantener los nombres de los oficiales o agentes + de las autoridades públicas. +* Para usuarios que desean que se elimine su nombre totalmente del sitio, intente persuadirlos + para no hacerlo: +* Averigüe por qué desean que su nombre se elimine. +* Explique que el sitio es un archivo permanente y que es complicado eliminar información + de internet cuando ya se ha publicado. +* Encuentre ejemplos de solicitudes valiosas que han realizado para mostrar por qué + interesa mantenerlas. +* Explique las dificultades técnicas de la eliminación (si son relevantes). +* En las solicitudes persistentes, considere modificar el nombre de su cuenta o + abreviar su nombre con la primera inicial para evitar confundir en exceso las solicitudes + existentes. En caso de verse afectada la seguridad personal, el nombre debe eliminarse y + sustituirse por el correspondiente texto editado. +* En casos en que la edición resulte compleja (por ejemplo, la eliminación de una firma + escaneada en un archivo PDF), solicite que el usuario reenvíe la respuesta con la edición + correspondiente incluida. Esta solución ofrece la ventaja de entrenar a los usuarios + para que no repitan este comportamiento en el futuro. +* En caso de llevar a cabo ediciones, se recomienda añadir una nota en la solicitud. + + +### Dirección incorrecta + +Correos que llegan a la dirección del equipo de soporte, pero que no deberían haberlo hecho. +Existen dos tipos principales: + +* usuarios que creen que el sitio es un lugar donde contactar con agencias directamente (por ejemplo, + personas en procesos de inmigración y asilo político que desean contactar con la oficina de aduanas) +* usuarios que envían correos a la dirección de soporte en lugar de utilizar el formulario en línea, + normalmente porque han respondido a un correo del sistema en lugar de acceder al enlace incluido en el + mensaje + +#### Acciones + +Responda al usuario y facilite la dirección correcta. + +##### Mensaje de ejemplo: + +> Me gustaría obtener información sobre mi solicitud EEA2 enviada en julio de +> 2010. Aún no tengo respuesta... Por favor, dígame qué debo hacer. + +##### Respuesta de ejemplo: + +> Ha escrito al equipo responsable del sitio web WhatDoTheyKnow.com. +> Nosotros solo gestionamos el sitio y no formamos parte del gobierno de Reino Unido. +> +> Está consultando sobre sus propias circunstancias personales, así que debe contactar +> con UKBA directamente; su información de contacto está disponible en: +> +> http://www.bia.homeoffice.gov.uk/contact/contactspage/ +> http://www.ukba.homeoffice.gov.uk/contact/contactspage/contactcentres/ +> +> También puede interesarle contactar con el miembro del parlamento de su localidad. Puede preguntar +> en el consejo o en la oficina de atención ciudadana si existe algún centro de soporte +> de inmigración en su ubicación. + +##### Mensaje de ejemplo: + +> ¿Se financia a sí misma la recogida de residuos vegetales? Sospecho por el +> bajo número de residentes que la utilizan. ¿Cuál es el valor real de la recogida? +> ¿Es probable que se descarte el programa? + +##### Respuesta de ejemplo: + +> Ha escrito al equipo responsable del sitio web WhatDoTheyKnow.com, no a +> <nombre_autoridad>. +> +> Si desea efectuar una solicitud de información pública, puede hacerlo, +> de forma pública, en nuestro sitio. Para empezar, haga clic en «efectuar una nueva +> solicitud de información pública» en: +> +> https://www.whatdotheyknow.com/body/<nombre_autoridad> + +### Petición de asesoramiento + +Dos ejemplos típicos son: + +* Un usuario no está seguro de adónde dirigir su solicitud. +* Desea saber la mejor forma de preguntar a una autoridad qué datos personales tiene sobre él. + +##### Solicitud de ejemplo: + +> Me gustaría saber en este punto, bajo la ley de información pública, si puedo +> pedir cierta información directamente a la embajada nacional o a la alta comisión de extranjería +> o si debo contactar con el Ministerio de Asuntos Exteriores a través de este sitio. + +##### Respuesta de ejemplo: + +> Le recomiendo que efectúe su solicitud directamente al Ministerio de Asuntos Exteriores, pues se trata del organismo +> técnicamente sujeto a la ley de información pública. +> +> Al realizar su solicitud, se enviará al equipo central de información pública del Ministerio de Asuntos Exteriores, +> que se encargará de coordinar la respuesta con las partes relevantes de su organización. + + +### Soporte general requerido + +Puede deberse a numerosos motivos, por ejemplo: + +* Alguien ha cancelado su solicitud y la autoridad ha respondido después, + abriéndola de nuevo. +* Correcciones sugeridas para nombres de autoridades o detalles de usuarios + y de autoridades. +* Se ha incluido una respuesta automática en la solicitud incorrecta. + +### Usuarios irritantes + +Algunos usuarios utilizan continuamente el sitio de forma incorrecta. Un sitio basado en Alaveteli +debería contar con una política sobre el bloqueo de usuarios, por ejemplo, para darles un primer +aviso, informarles sobre la política de moderación, etc. + +### Errores de importación de correo + +Este tipo de errores se da actualmente en un índice de unos dos mensuales. A veces la causa +principal parece ser el bloqueo en la base de datos cuando se reciben dos correos a la vez +para la misma solicitud, mientras que otras veces se debe simplemente a la superación del tiempo +límite de entrada/salida si el servidor está ocupado. Cuando ocurre un error de importación de correo, +el gestor de correo (Exim) recibe un código de salida de 75 y debería intentar enviar el correo +de nuevo. Se envía un correo a la dirección de soporte del sitio indicando que se ha producido +un error, adjuntando el error y el correo entrante. Normalmente Exim reenviará el correo a la +aplicación. En las raras ocasiones en que no lo haga, puede importarlo manualmente situando el correo +de tipo raw (como el adjunto del error enviado a la dirección de soporte del sitio) en un archivo sin la +primera línea «De:» e incorporando el contenido de dicho archivo separado por barras verticales en +el script de gestión de correo, por ejemplo: +```cat missing_mail.txt | script/mailin``` + + +## Mantenimiento + +### Permisos de administrador y acceso a la interfaz de administración + +La interfaz administrativa se halla en la URL `/admin`. + +Solo los usuarios con nivel de administración `super` pueden acceder a la interfaz de administración. +Los usuarios crean sus propias cuentas de la forma habitual y los administradores pueden proporcionarles +permisos `super` de superusuario. + +Exite una cuenta de usuario de emergencia, accesible mediante +`/admin?emergency=1`, utilizando las credenciales `ADMIN_USERNAME` y +`ADMIN_PASSWORD` definidas en `general.yml`. Para crear las primeras cuentas +de nivel `super` necesitará iniciar sesión como el usuario de emergencia. +Puede desactivar la cuenta del usuario de emergencia asignando a `DISABLE_EMERGENCY_USER` +el valor `true` en `general.yml`. + +Los usuarios con permisos de superusuario también disponen de permisos adicionales +en la interfaz del sitio web para, por ejemplo, clasificar cualquier solicitud, visualizar +elementos que se han ocultado en las búsquedas y acceder a enlaces de administración +junto a los comentarios y solicitudes individuales en la interfaz de usuario. + +Es posible anular completamente la autenticación de administrador asignando a +`SKIP_ADMIN_AUTH` el valor `true` en `general.yml`. + +### Eliminar un mensaje de la sala de espera + +Un mensaje se halla en la sala de espera porque no puede asociarse automáticamente con la solicitud a la que responde. El correo debe moverse de la sala de espera a la solicitud correspondiente. + +En primer lugar, inicie sesión en la interfaz de administración ubicada en `/admin`. Verá mensajes ubicados en la sala de espera bajo el título «Put misdelivered responses with the right request». Haga clic en el chevrón para visualizar los mensajes individuales. + +Si hace clic en un mensaje de la sala de espera, es posible que vea una estimación efectuada por Alaveteli sobre a qué solicitud pertenece el mensaje. Compruebe dicha solicitud. Si no es la correcta o si Alaveteli no ha hecho ninguna estimación, necesitará consultar la dirección del destinatario `To:` y el contenido del mensaje en el correo en formato raw para poder averiguar a qué solicitud pertenece. Puede navegar y buscar entre las solicitudes desde la interfaz de administración mediante el elemento «Requests» del menú. + +Una vez identificada la solicitud a la que corresponde el mensaje, necesitará volver atrás a la página de la sala de espera. Pegue el `id` o el `url_title` de la solicitud en el cuadro situado debajo de «Actions» dentro de «Incoming Message». El `id` de la solicitud puede encontrarse en la URL de la solicitud desde la interfaz de administración; se trata de la parte mostrada después de `/show/`. En la URL `/admin/request/show/118` de administración de la solicitud, el `id` de dicha solicitud es `118`. El `url_title` puede verse en la URL de la solicitud ubicada en la interfaz principal; se trata de la parte situada después de `/request/`. En la URL `/request/documents_relating_to_meeting` corresponde a `documents_relating_to_meeting`. Después haga clic en la opción «Redeliver to another request». + +Ahora el mensaje estará asociado al a solicitud correcta y aparecerá en la página pública de la solicitud. + +### Editar y cargar direcciones de correo de organismos públicos + + + +### Bloquear usuarios + +Es posible que desee bloquear completamente a un usuario del sitio web (como un remitente de spam o un trol, por ejemplo). Necesitará iniciar sesión en la interfaz de administración ubicada en `/admin`. En la fila superior de enlaces, localice y haca clic en la opción «Users». + +Encuentre al usuario que desea bloquear en el listado y haga clic sobre su nombre. Una vez se halle en la página del usuario, seleccione la opción «edit». + +Introduzca algún texto en el cuadro «Ban text» para explicar por qué ha sido bloqueado. Tenga en cuenta que esta información es visible públicamente desde la cuenta del usuario. Después haga clic en el botón de guardado y el usuario será bloqueado. + +### Eliminar una solicitud + +Puede eliminar una solicitud completamente mediante la interfaz de administración. Principalmente solo necesitará hacer esto si alguien ha publicado información privada. Acceda a la página de administración para la solicitud buscándola o navegando en la sección «Requests» de la interfaz de administración. En el primer apartado, haga clic en el botón «Edit metadata». En la parte inferior de la página siguiente, haga clic en el botón rojo «Destroy request entirely». + +### Ocultar una solicitud + +Puede ocultar una solicitud completa desde la interfaz de administración. Inicie sesión en +la interfaz de administración ubicada en `/admin`. En la fila superior de enlaces, localice +y haga clic en «Requests». Busque o navegue para encontrar la página de administración +correspondiente a la solicitud que desea ocultar. Puede acceder directamente a esta página +siguiendo un enlace «admin» desde la página pública de la solicitud. Puede ocultar la solicitud +de una de las siguientes dos maneras: + + * <strong>Ocultar una solicitud irritante o no relacionada con la información pública y + notificar al solicitante:</strong> + Desplácese hacia la sección «actions» de la página de administración + de la solicitud. Seleccione una de las opciones junto a «Hide the request and + notify the user:» y personalice el texto del correo que se enviará al + usuario para hacerle saber las acciones tomadas. Una vez esté preparado, + haga clic en el botón «Hide request». + * <strong>Ocultar una solicitud o hacerla visible solamente para el solicitante + sin notificar a dicho solicitante:</strong> + En la sección «Request metadata» de la página de administración de la + solicitud, haga clic en «Edit metadata». Asigne a «Prominence» el valor + «requester_only» para permitir solo al solicitante la visualización de la + solicitud o el valor «hidden» para ocultar la solicitud a todo el mundo, + excepto a los administradores del sitio. Cuando esté preparado, haga clic + en el botón «Save changes» en la parte inferior del apartado «Edit + metadata». No se enviará ningún correo al usuario para notificarle de + las acciones realizadas. + +### Ocultar un mensaje entrante o saliente + +Es posible que necesite ocultar un mensaje entrante o saliente específico en +la página pública de una solicitud, tal vez porque alguien haya incluido datos +personales en él. Puede efectuar esta tarea desde la página de mensajes de la +interfaz de administración. Puede acceder a la página de administración de mensajes +siguiendo los enlaces de las secciones «Outgoing messages» o «Incoming messages» en +la página de administración de la solicitud, o directamente desde la página pública +de la solicitud, haciendo clic en el enlace «admin» de dicho mensaje. Una vez en la +página de administración del mensaje, puede cambiar su relevancia. Asigne el valor +«hidden» para ocultarlo a todo el mundo, excepto a los administradores del sitio, +o el valor «requester_only» para que solo pueda verlo el solicitante (y los administradores +del sitio). Si es posible, añada un texto en el cuadro «Reason for prominence». +Este texto se mostrará como parte de la información en la página de la solicitud +donde se hallaba el mensaje, indicando la razón por la que se ha ocultado. + +### Editar un mensaje saliente + +Puede tener la necesidad de editar un mensaje saliente debido a que el solicitante haya incluido accidentalmente datos personales que no desea que se publiquen en el sitio. Puede seguir uno de los enlaces «admin» de la página pública de la solicitud en el sitio o buscar la solicitud desde la interfaz de administración, en la sección «Requests». + +Desplácese hacia abajo, hasta el apartado «Outgoing Messages», y haga clic en «Edit». + +En la siguiente página podrá editar el mensaje y guardarlo. La versión editada aparecerá en el sitio basado en Alaveteli, pero la versión sin editar se habrá enviado a la autoridad. + + +### Ocultar texto concreto de una solicitud + +Pueden añadirse normas de censura a una solicitud o a un usuario. Estas normas definen +porciones que deben eliminarse, bien de la solicitud (y todos los archivos asociados, por ejemplo, +adjuntos en mensajes entrantes) o bien de todas las solicitudes asociadas a un usuario, y +un texto de sustitución. En los archivos binarios el texto de sustitución será siempre una serie +de «x» caracteres de longitud idéntica al texto sustituido para mantener la longitud del +archivo. La censura de adjuntos no funciona de forma consistente, pues resulta complejo +redactar normas que coincidan con los contenidos exactos del archivo subyacente, así que +deberá comprobar siempre los resultados. Asegúrese también de añadir normas de censura +para el texto real y compruebe la opción «View as HTML»; esta opción es actualmente +(septiembre de 2013) generada a partir de archivos PDF u otros archivos binarios sin censura. + +Puede hacer que una norma de censura se aplique como una [expresión +regular](http://en.wikipedia.org/wiki/Regular_expression) activando la casilla +«Is it regexp replacement?» en la interfaz de administración de normas de censura. +En caso contrario solo sustituirá literalmente las ocurrencias en el texto introducido. +Al igual que las normas de censura comunes basadas en texto regular, las normas basadas +en expresiones regulares se ejecutarán también en archivos binarios relacionados con la +solicitud, así que una expresión regular algo ambigua puede resultar en consecuencias +inesperadas si también concuerda con la secuencia subyacente de caracteres de un archivo +binario. Además, las expresiones regulares complejas o ambiguas pueden tener un coste de +ejecución muy elevado (en algunos casos pueden congelar la aplicación por completo). +Por tanto: + +* Restrinja su uso a los casos que no puedan cubrirse con facilidad de otro modo. +* Manténgalas simples y específicas en la medida de lo posible. + +<strong>Para añadir una norma de censura a una solicitud</strong>, acceda a la página de +administración de dicha solicitud, desplácese hacia la parte inferior de la página y haga +clic en el botón «New censor rule (for this request only)». En la página siguiente, +introduzca el texto que desea sustituir, por ejemplo, «información privada», el texto con el +que desea sustituirlo, por ejemplo, «[información privada oculta]», y un comentario indicando +a otros administradores por qué ha ocultado esta información. + +<strong>Para añadir una norma de censura a un usuario</strong>, de forma que se aplique +a todas las solicitudes efectuadas por dicho usuario, acceda a la página del usuario en la +interfaz de administración. Puede hacerlo mediante un clic en la sección «Users» y buscar +al usuario que desea o siguiendo el enlace «admin» de la interfaz pública del usuario. Una +vez se encuentre en la página de administración del usuario, desplácese hasta la parte inferior +de la página y haga clic en el botón «New censor rule». En la siguiente página, introduzca +el texto que desea sustituir, por ejemplo «mi nombre real es Bruce Wayne», el texto con el que +que desea sustituirlo, por ejemplo, «[información privada oculta]», y un comentario indicando +a otros administradores por qué ha ocultado esta información. + + diff --git a/es/docs/running/index.md b/es/docs/running/index.md new file mode 100644 index 000000000..dc9a242fe --- /dev/null +++ b/es/docs/running/index.md @@ -0,0 +1,30 @@ +--- +layout: es/page +title: Ejecución +--- + +# Ejecución de Alaveteli + + +<p class="lead"> + Mantener su sitio basado en Alaveteli en ejecución requiere cierto esfuerzo constante. +</p> + +Alaveteli no es tan solo software. Para gestionar un sitio de +<a href="{{ page.baseurl }}/docs/glossary/#foi" class="glossary__link">información pública</a> +con éxito, necesita asegurarse día a día de que las tareas se llevan a cabo. La mayoría de sitios basados en Alaveteli +son gestionados por un equipo que dedica parte de su tiempo diario a dar soporte a usuarios y, en general, a +mantener el proyecto actualizado. + +* El [manual de administrador]({{ page.baseurl }}/docs/running/admin_manual/) describe + lo que necesita hacer y saber para gestionar su sitio. + +* La [guía de edición]({{ page.baseurl }}/docs/running/redaction/) incluye algunos + ejemplos de la habilidad de Alaveteli para editar información que puede herir la sensibilidad. + +* Hemos preparado una lista de verificación de + [cosas a tener en cuenta]({{ page.baseurl }}/docs/running/server/) + al establecer su servidor de producción. + + + diff --git a/es/docs/running/redaction.md b/es/docs/running/redaction.md new file mode 100644 index 000000000..373eab247 --- /dev/null +++ b/es/docs/running/redaction.md @@ -0,0 +1,135 @@ +--- +layout: es/page +title: Edición de información delicada +--- + +# Edición de información delicada + +En algunos países los requisitos locales exigen que las solicitudes contengan datos personales, tales como la dirección o el número del documento de indentidad de la persona que solicita la información. Normalmente los solicitantes no desean que esta información se muestre de forma pública. + +Alaveteli tiene cierta habilidad para gestionar estos datos mediante el uso de <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">normas de censura</a>. + +El [tema](https://github.com/mysociety/derechoapreguntar-theme) que utilizaremos como ejemplo requiere el número del documento nacional de identidad y lo que se conoce como ley general en Nicaragua (fecha de nacimiento, domicilio, profesión y estado civil). + + + +## Número del documento de identidad + +Empezaremos mirando el número del documento nacional de identidad. Este un buen ejemplo de un concepto cuya edición resulta sencilla. Es único para cada usuario y cuenta con un formato específico comprobable. + +Para enviar el número del documento de identidad a la autoridad, sobrescribiremos [la plantilla inicial de solicitud](https://github.com/mysociety/alaveteli/blob/master/app/views/outgoing_mailer/initial_request.text.erb) (fragmento de código recortado): + + <%= raw @outgoing_message.body.strip %> + + ------------------------------------------------------------------- + + <%= _('Requestor details') %> + <%= _('Identity Card Number') %>: <%= @user_identity_card_number %> + +Ahora, al efectuar una solicitud, se añade el número del documento de identidad del usuario al pie del correo saliente. + + + +En este punto no hemos añadido ninguna <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">norma de censura</a>. Cuando la autoridad responde es poco probable que elimine el texto citado del correo electrónico: + + + +Podríamos añadir una <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">norma de censura</a> para la solicitud individual pero, ya que cada solicitud incluirá un número de documento de identidad, es mejor añadir algo de código para que se edite automáticamente. + +Para ilustrar este ejemplo, aplicaremos un parche al modelo `User` con una retrollamada que crea una <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">norma de censura</a> cuando se crea o actualiza un usuario. + + # THEME_ROOT/lib/model_patches.rb + User.class_eval do + after_save :update_censor_rules + + private + + def update_censor_rules + censor_rules.where(:text => identity_card_number).first_or_create( + :text => identity_card_number, + :replacement => _('REDACTED'), + :last_edit_editor => THEME_NAME, + :last_edit_comment => _('Updated automatically after_save') + ) + end + end + +Puede ver la nueva <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">norma de censura</a> en la interfaz de administración: + + + +Ahora el número del documento de identidad se edita: + + + +También se edita si el organismo público utiliza el número del documento de identidad en el cuerpo del correo: + + + +Una <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">norma de censura</a> añadida a un usuario solo se aplica en la correspondencia de solicitudes creadas por dicho usuario. No se aplica a anotaciones realizadas por el usuario. + +**Advertencia:** La edición de este tipo requiere que el texto delicado se encuentre exactamente en el mismo formato que la <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">norma de censura</a>. Si es mínimamente diferente, es posible que la edición falle. Si el organismo público eliminase los guiones del número, este no se editaría: + + + +**Advertencia:** Alaveteli también intenta editar el texto de todos los adjuntos. Solo puede hacerlo si detecta la cadena de texto exacta, que no suele ser posible con formatos binarios como PDF o Word. + +Alaveteli puede normalmente editar la información delicada al convertir un documento de texto o en formato PDF a HTML: + + + +Este PDF no contiene la cadena de texto en el formato binario, así que la edición _no_ se aplica al descargar el documento PDF original: + + + +## Ley general + +La información de la ley general es mucho más difícil de editar automáticamente. No está tan estructurada y es poco probable que sea única (por ejemplo, domicilio: Londres). + +Añadiremos la información de la ley general a la [plantilla inicial de solicitud](https://github.com/mysociety/alaveteli/blob/master/app/views/outgoing_mailer/initial_request.text.erb) del mismo modo que el número del documento de identidad: + + <%= _('Requestor details') %>: + <%-# !!!IF YOU CHANGE THE FORMAT OF THE BLOCK BELOW, ADD A NEW CENSOR RULE!!! -%> + =================================================================== + # <%= _('Name') %>: <%= @user_name %> + # <%= _('Identity Card Number') %>: <%= @user_identity_card_number %> + <% @user_general_law_attributes.each do |key, value| %> + # <%= _(key.humanize) %>: <%= value %> + <% end %> + =================================================================== + +Ahora la información está contenida en un bloque de texto con un formato especial. + + + +Así se permite que una <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">norma de censura</a> concuerde con el formato especial y elimine todo lo que se halle en su interior. Esta <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">norma de censura</a> es general, así que actuará en las coincidencias de todas las solicitudes. + + # THEME_ROOT/lib/censor_rules.rb + # If not already created, make a CensorRule that hides personal information + regexp = '={67}\s*\n(?:[^\n]*?#[^\n]*?: ?[^\n]*\n){3,10}[^\n]*={67}' + + unless CensorRule.find_by_text(regexp) + Rails.logger.info("Creating new censor rule: /#{regexp}/") + CensorRule.create!(:text => regexp, + :allow_global => true, + :replacement => _('REDACTED'), + :regexp => true, + :last_edit_editor => THEME_NAME, + :last_edit_comment => 'Added automatically') + end + + + +**Advertencia:** La edición de información desestructurada es una aproximación muy delicada, pues se apoya en que las autoridades siempre citen el texto completo. + +En tal caso la autoridad ha revelado la fecha de nacimiento y el domicilio del usuario: + + + +Es realmente difícil añadir una <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">norma de censura</a> para eliminar este tipo de información. Una sugerencia puede ser eliminar todas las menciones de la fecha de nacimiento del usuario, pero debería tener en cuenta [todos los tipos de formato de fecha](http://en.wikipedia.org/wiki/Calendar_date#Date_format). Probablemente podría editar todas las apariciones del domicilio del usuario, pero si se trata de una solicitud relacionada con su región, es muy probable que esta se volviera incomprensible. + + + +La edición se ha aplicado, pero no hay forma de conocer el contexto en que se utiliza una palabra delicada. + + diff --git a/es/docs/running/security.md b/es/docs/running/security.md new file mode 100644 index 000000000..28f29d3d0 --- /dev/null +++ b/es/docs/running/security.md @@ -0,0 +1,36 @@ +--- +layout: es/page +title: Seguridad y mantenimiento +--- + +# Seguridad y mantenimiento + +<p class="lead"> + El soporte de Alaveteli se divide en cuatro grupos: nuevas funcionalidades, soluciones de errores, problemas de seguridad y problemas graves de seguridad. Se gestionan del siguiente modo: +</p> + +## Nuevas funcionalidades + +Solo la [última rama de desarrollo](https://github.com/mysociety/alaveteli/tree/rails-3-develop/) recibe nuevas funcionalidades, que se ofrecerán en la próxima actualización principal. + +## Soluciones de errores + +- Solo la versión actual recibirá soluciones de errores. +- Las soluciones de errores recibirán una nueva versión (por ejemplo, `0.19.0` pasa a ser `0.19.1`). +- Las soluciones de errores se aplicarán a la rama de desarrollo actual. + +## Problemas de seguridad + +- La versión actual, la anterior y la rama de desarrollo actual recibirán soluciones. +- Los problemas de seguridad recibirán una nueva versión (por ejemplo, `0.19.0` pasa a ser `0.19.1`) para la versión actual y las anteriores. +- Se publicará un parche genérico en la lista de correo. + +## Problemas graves de seguridad + +- La gravedad es determinada por el equipo principal de Alaveteli. +- La versión actual, la anterior y la rama de desarrollo actual recibirán soluciones. +- Los problemas graves de seguridad recibirán una nueva versión (por ejemplo, `0.19.0` pasa a ser `0.19.1`) para la versión actual y las anteriores. +- Se publicará un parche genérico en la lista de correo. +- Todas las versiones en producción recibirán parches y se harán todos los esfuerzos posibles para contactar con usuarios conocidos para proporcionarlos de forma privada. + + diff --git a/es/docs/running/server.md b/es/docs/running/server.md new file mode 100644 index 000000000..075b32a6b --- /dev/null +++ b/es/docs/running/server.md @@ -0,0 +1,117 @@ +--- +layout: es/page +title: Buenas prácticas para el servidor de producción +--- + +# Buenas prácticas para el servidor de producción + +<p class="lead"> + Estas notas sirven como lista de verificación de detalles a tener en cuenta al preparar + el despliegue de su servidor de producción basado en Alaveteli. +</p> + + +## Opciones de hospedaje + +Su servidor de producción debe ser seguro y fiable. Si aún no gestiona sus propios servidores, +considere una de las siguientes opciones: + +* Servidor en la nube +* Servidor privado virtual + +En algunos casos podemos hospedar nuevos proyectos basados en Alaveteli; si necesita ayuda, +consúltenos sobre el hospedaje. + +## Trabajos de tipo cron + +No olvide definir los trabajos de tipo cron tal como se expone en las +[instrucciones de instalación]({{ page.baseurl }}/docs/installing/manual_install/). + +## Configuración del servidor web + +Le recomendamos gestionar su sitio mediante +[Apache](https://httpd.apache.org) y +[Passenger](https://www.phusionpassenger.com) o [Nginx](http://wiki.nginx.org/Main) y [Thin](http://code.macournoyer.com/thin/). + +Si utiliza Passenger, consulte las +[instrucciones de instalación]({{ page.baseurl }}/docs/installing/manual_install/) +sobre `PassengerMaxPoolSize`, con el que debería experimentar +para adaptarse a su memoria RAM disponible. Es muy poco probable que jamás +necesite un pool de mayor tamaño que el [predeterminado de +Passenger](http://www.modrails.com/documentation/Users%20guide%20Apache.html#_passengermaxpoolsize_lt_integer_gt) de 6. + +Le recomendamos poner en funcionamiento su servidor con un acelerador HTTP como +[Varnish](https://www.varnish-cache.org). +Alaveteli se proporciona con un +[VCL de varnish de muestra](https://github.com/mysociety/alaveteli/blob/master/config/varnish-alaveteli.vcl). + +## Seguridad + +_Debe_ modificar todos los [ajustes de configuración]({{ page.baseurl }}/docs/customising/config/) +relacionados con claves en el archivo `general.yml`, incluidos (¡pero existen otros!) +los siguientes: + +* [`INCOMING_EMAIL_SECRET`]({{ page.baseurl }}/docs/customising/config/#incoming_email_secret) +* [`ADMIN_USERNAME`]({{ page.baseurl }}/docs/customising/config/#admin_username) +* [`ADMIN_PASSWORD`]({{ page.baseurl }}/docs/customising/config/#admin_password) +* [`COOKIE_STORE_SESSION_SECRET`]({{ page.baseurl }}/docs/customising/config/#cookie_store_session_secret) +* [`RECAPTCHA_PUBLIC_KEY`]({{ page.baseurl }}/docs/customising/config/#recaptcha_public_key) +* [`RECAPTCHA_PRIVATE_KEY`]({{ page.baseurl }}/docs/customising/config/#recaptcha_private_key) + +Debería considerar la posibilidad de gestionar el apartado de administración del sitio a través de HTTPS. +Para ello puede reescribir normas que redirijan direcciones URL que empiecen por `/admin`. + +## Configuración del correo electrónico + +Consulte la [configuración para exim o postfix]({{ page.baseurl }}/docs/installing/email/) para +configurar su servidor de correo (MTA). Es posible utilizar otros MTA; +si utiliza uno diferente, la documentación debería proporcionarle suficiente información +para empezar. Si este tema le interesa, ¡añada documentación! + +En un servidor real debería considerar también lo siguiente, para mejorar la capacidad de +entrega de su correo electrónico: + +* Establezca [registros SPF](http://www.openspf.org/) para su dominio. +* Establezca <a + href="http://wiki.asrg.sp.am/wiki/Feedback_loop_links_for_some_email_providers">bucles de retroalimentación</a> con los proveedores de correo principales + (se recomienda Hotmail y Yahoo!) +* Especialmente si realiza el despliegue a partir de Amazon EC2, utilice un relevo SMTP externo + para enviar correo saliente. Consulte el [AMI EC2 de Alaveteli]( {{ page.baseurl }}/docs/installing/ami/) + para ver más sugerencias. + +## Copia de seguridad + +Muchos de los datos del sitio se almacenan en la base de datos de producción. La excepción +radica en los datos de tipo raw del correo entrante, que se almacenan en el sistema de archivos, tal como se +especifica en el ajuste +[`RAW_EMAILS_LOCATION`]({{ page.baseurl }}/docs/customising/config/#raw_emails_location) +del archivo `config/general.yml`. + +Consulte la [documentación de +Postgres](http://www.postgresql.org/docs/8.4/static/backup.html) para +ver estrategias de copia de seguridad de bases de datos. El método más habitual consiste en utilizar `pg_dump` +para crear un volcado SQL de la base de datos y después realizar una copia de seguridad comprimida de dicho volcado. + +Las copias de seguridad de los correos de tipo raw se llevarían a cabo mejor mediante una estrategia de incremento progresivo. +[Rsync](http://rsync.samba.org/) es una forma de hacerlo. + +Otra estrategia de copia de seguridad para curarse en salud consiste en programar su MTA para que copie todo +el correo entrante y saliente en un buzón de correo que funcione como copia de seguridad. Un método para hacerlo mediante exim +consiste en incorporar lo siguiente en su configuración de exim: + + system_filter = ALAVETELI_HOME/config/exim.filter + system_filter_user = ALAVETELI_USER + +Y después crear un filtro en `ALAVETELI_HOME/config/exim.filter` similar a: + + if error_message then finish endif + if $header_to: contains "midominio.org" + then + unseen deliver "copia@midominiodecopia.org" + endif + + if $sender_address: contains "midominio.org" + then + unseen deliver "copia@midominiodecopia.org" + endif + diff --git a/es/docs/running/upgrading.md b/es/docs/running/upgrading.md new file mode 100644 index 000000000..76149bdd6 --- /dev/null +++ b/es/docs/running/upgrading.md @@ -0,0 +1,113 @@ +--- +layout: es/page +title: Actualización +--- +Actualización de Alaveteli +==================== + +<p class="lead"> + Alaveteli se halla en desarrollo activo; no permita que la versión que utiliza se retrase + demasiado respecto a nuestra última + <a href="{{ page.baseurl }}/docs/glossary/#release" class="glossary__link">actualización</a>. + Esta página describe cómo mantener su sitio actualizado. +</p> + +## Cómo actualizar el código + +* Si utiliza Capistrano para la implementación, + simplemente [despliegue el código]({{ page.baseurl }}/docs/installing/deploy/#uso): + defina el repositorio y la rama en `deploy.yml` en función a la versión que desee. + Le recomendamos que establezca estos valores con el nombre explícito de la etiqueta (por ejemplo, + `0.18` y no `master`) para que no exista ningún riesgo de desplegar por error + una nueva versión antes de ser consciente de que se ha publicado. +* Si no, puede actualizar ejecutando `git pull`. + +## Ejecutar el script posterior al despliegue + +A menos que utilice [Capistrano para la implementación]({{ page.baseurl }}/docs/installing/deploy/), +siempre debería ejectuar el script `scripts/rails-post-deploy` después de cada +despliegue. Dicho script efectúa todas las migraciones de bases de datos, además de otras +diversas tareas que pueden automatizarse en el despliegue. + +## Números de versión de Alaveteli + +Alaveteli utiliza una versión modificada de [semver](http://semver.org). + +- Serie `W` +- Mayor `X` +- Menor `Y` +- Parche `Z` + +En el momento de redacción de esta documentación, la versión actual es `0.19.0.6`: + +- Serie `0` +- Mayor `19` +- Menor `0` +- Parche `6` + +Alaveteli evolucionará a la especificación de [semver](http://semver.org) al alcanzar `1.0.0`. + +## La rama maestra contiene la última versión estable + +La política del equipo de desarrollo indica que la rama maestra `master` siempre debe +contener la última versión estable; así que, si extrae los datos de la rama `master`, +siempre estará actualizado. Sin embargo, debería saber exactamente qué versión se está +ejecutando en su +<a href="{{ page.baseurl }}/docs/glossary/#production" class="glossary__link">servidor +de producción</a> e implementar Alaveteli a partir de una [etiqueta de versión +*específica*](https://github.com/mysociety/alaveteli/releases). + +Es posible que la actualización solo requiera obtener el código más actual, pero tal vez también +necesite efectuar otros cambios («acciones adicionales»). Debido a este motivo, para todo lo que no se trate +de un *parche* (consulte la información inferior), lea siempre el documento +[`CHANGES.md`](https://github.com/mysociety/alaveteli/blob/master/doc/CHANGES.md) +**antes** de efectuar una actualización. De este modo podrá preparar otros posibles cambios que puedan +ser necesarios para que el código nuevo funcione. + +## Parches + +Los aumentos de versión de parche (por ejemplo, 0.1.2.3 → 0.1.2.**4**) no deberían requerir ninguna acción adicional por su parte. Serán retrocompatibles con la versión menor actual. + +## Actualizaciones menores + +Los aumentos menores de versión (por ejemplo, 0.1.2.4 → 0.1.**3**.0) habitualmente requerirán acciones adicionales. Debería leer el documento [`CHANGES.md`](https://github.com/mysociety/alaveteli/blob/master/doc/CHANGES.md) para ver qué ha cambiado desde su último despliegue, prestando especial atención a todo lo indicado +en las secciones «notas de actualización». + +Toda actualización puede incluir nuevas cadenas de texto de traducción, ya sean mensajes nuevos o modificados +para el usuario, que necesitan traducirse para su localización. Debería visitar Transifex +e intentar conseguir su traducción al 100% en cada actualización. Al no conseguirlo, +cualquier palabra añadida al código fuente de Alaveteli aparecerá en su sitio web +en inglés por defecto. Si sus traducciones no alcanzaron la última versión, +deberá descargar el archivo actualizado `app.po` para su localización +desde Transifex y guardarlo en la carpeta `locale/`. + +Las actualizaciones menores serán retrocompatibles con la versión mayor actual. + +## Actualizaciones mayores + +Los aumentos mayores de versión (por ejemplo, 0.1.2.4 → 0.**2**.0.0) habitualmente requerirán acciones adicionales. Debería leer el documento [`CHANGES.md`](https://github.com/mysociety/alaveteli/blob/master/doc/CHANGES.md) para ver qué ha cambiado desde su último despliegue, prestando especial atención a todo lo indicado +en las secciones «notas de actualización». + +Solamente las actualizaciones mayores pueden eliminar funcionalidades existentes. Recibirá alertas respecto a la eliminación de funcionalidades con una advertencia sobre características obsoletas en una actualización menor previa antes de que la actualización mayor elimine las funcionalidades. + +## Actualizaciones de serie + +Estas actualizaciones vienen acompañadas de instrucciones especiales. + +## Advertencias sobre características obsoletas + +Es posible que empiece a ver advertencias sobre características obsoletas en su registro de aplicación. Tendrán este aspecto: + + DEPRECATION WARNING: Object#id will be deprecated; use Object#object_id + +Las advertencias sobre características obsoletas nos permiten comunicarle que algunas funcionalidades se modificarán o eliminarán en una actualización futura de Alaveteli. + +### Qué hacer al ver una advertencia sobre características obsoletas + +Normalmente verá una advertencia sobre características obsoletas si ha estado utilizando una funcionalidad en su tema que se va a modificar o eliminar próximamente. La advertencia debería proporcionarle suficientes explicaciones sobre qué hacer con ella. En general se trata siempre de eliminar o modificar métodos. El [registro de cambios](https://github.com/mysociety/alaveteli/blob/rails-3-develop/doc/CHANGES.md) incluirá información más detallada sobre características obsoletas y sobre cómo llevar a cabo las modificaciones pertinentes. + +Si tiene alguna consulta, no dude en preguntar en la [lista de correo de desarrollo](https://groups.google.com/group/alaveteli-dev) o en [el canal IRC de Alaveteli](http://www.irc.mysociety.org/). + +### ¿Cuándo se efectuará el cambio? + +Introducimos advertencias sobre características obsoletas en una actualización **menor**. La actualización **mayor** posterior efectuará el cambio, a menos que se indique de otra manera en la advertencia. |