Prowler 2.0: New release with improvements and new checks ready for re:Invent and BlackHat EU

Taking advantage of this week AWS re:Invent and  next week BlackHat Europe, I wanted to push forward a new version of Prowler.

In case you are new to Prowler:

Prowler is an AWS Security Best Practices Assessment, Auditing, Hardening and Forensics Readiness Tool. It follows guidelines of the CIS Amazon Web Services Foundations Benchmark and DOZENS of additional checks including GDPR and HIPAA groups. Official CIS benchmark for AWS guide is here.

This new version has more than 20 new extra checks (of +90), including GDPR and HIPAA group of checks as for a reference to help organizations to check the status of their infrastructure regarding those regulations. Prowler has also been refactored to allow easier extensibility. Another important feature is the JSON output that allows Prowler to be integrated, for example, with Splunk or Wazuh (more about that soon!). For all details about what is new, fixes and improvements please see the release notes here: https://github.com/toniblyx/prowler/releases/tag/2.0

For me, personally, there are two main benefits of Prowler. First of all, it helps many organizations and individuals around the world to improve their security posture on AWS, and using just one easy and simple command, they realize what do they have to do and how to get started with their hardening. Second, I’m learning a lot about AWS, its API, features, limitations, differences between services and AWS security in general.

Said that, I’m so happy to present Prowler 2.0 in BlackHat Europe next week in London! It will be at the Arsenal

and I’ll talk about AWS security, and show all new features, how it works, how to take advantage of all checks and output methods and some other cool things. If you are around please come by and say hello, I’ve got a bunch of laptop sticklers! Here all details, Location:  Business Hall, Arsenal Station 2. Date: Wednesday, December 5 | 3:15pm-4:50pm. Track Vulnerability Assessment. Session Type: Arsenal

BIG THANKS!

I want to thank the Open Source community that has helped out since first day, almost a thousand stars in Github and more than 500 commits talk by itself. Prowler has become pretty popular out there and all the community support is awesome, it motivates me to keep up with improvements and features. Thanks to you all!!

Prowler future?

Main goals for future versions are: to improve speed and reporting, including switch base code to Python to support existing checks and new ones in any language.

If you are interested on helping out, don’t hesitate to reach out to me. \m/

The 10 commandments to avoid disabling SELinux

Well, they are 10 ideas or commands actually 😉
Due to my new role at Alfresco as Senior DevOps Security Architect, I’m doing some new cool stuff (that I will be publishing here soon) and also learning a lot and helping a little bit with my knowledge on security to the DevOps team.
One of the goals I promised myself was to “never disable SELinux”, even if that means to learn more about it and spend time on it. I may say that it’s being a worth it investment of my time and here you go some results of it.

This article is not about what is or what is not SELinux, you have the Wikipedia for that. But a brief description could be: a MAC (Mandatory Access Control) implementation in Linux that prevents a process to access to other processes or files that is supposed to not to have access (open, read, write files, etc.)

If you are here is because you want to finally start using SELinux and you are really interested on make it work, to tame this wild horse. Let me just say something, if you are really worry about security and have dozens of Linux servers in production, keep SELinux enabled, keep it “Enforcing”, no question.
Once said that, here is my list. It is not an exhaustive list, I’m looking forward to see your insights in the comments:
  1. Enable SELinux in Enforcing mode:
    • In configuration files (need restart)
      • /etc/sysconfig/selinux (RedHat/CentOS 6.7 and older)
      • /etc/selinux/config (RedHat/CentOS 7.0 and newer)
    • Through commands (no restart required)
      • setenforce Enforcing
    • To check the status use
      • sestatus # or command getenforce
  2. Use the right tools. To do cool things you need cool tools, we will need some of them:
    • yum install -y setools-console policycoreutils-python setroubleshoot-server
    • policycoreutils-python comes with the great semanage command, the lord of the SELinux commands
    • setools-console comes with seinfosesearch and sechecker among others
    • from setroubleshoot-server package we will use sealert to easily identify issues
  3. Get to know what is going on: Dealing with SELinux happens mostly during installation, configuration and tests of Linux services. Therefore, in case something in your system is not working properly or in the same manner as with SELinux disabled. When you are configuring and installing a service or application on a server and something is not working as expected, not starting as it should to, you always think “Damn SELinux, let’s disable it”. Forget about that, you have to check the proper place to see what is going on with it: the Audit logs. Check /var/log/audit/audit.log and look for lines with “denied”.
    • tail -f /var/log/audit/audit.log | perl -pe ‘s/(\d+)/localtime($1)/e’
    • the perl command is to convert the Epoch time (or UNIX or POSIX time) inside the audit.log file to human readable time.
  4. See the extended attributes in the file system that SELinux use:
    • ls -ltraZ # most important here is the Z
    • ls -ltraZ /etc/nginx/nginx.conf will show:
      • -rw-r–r–. root root system_u:object_r:httpd_config_t:s0 /etc/nginx/nginx.conf
      • where system_u: is the user (not always a user of the system), object_r: role and  httpd_config_t: is the object type, other objects can be a directory, a port or socket and types of an object can be a config file, log file, etc.; finally s0 means the level or category of that object.
  5. See the SELinux attributes that applies to a running process:
    • ps auxZ
      • You need to know this command in case of issues.
  6. Who am I for SELinux:
    • id -Z
      • You need to know this command in case of issues.
  7. Check, enable or disable defined modes (enforcing or permissive) per deamon:
    • getsebool -a # list all current status
    • setsebool -P docker_connect_any 1 # allow Docker to connect to all TCP ports
    • semanage boolean -l # is another alternative command
    • semanage fcontext -l # to see al contexts where SELinux applies
  8. Add a non default directory or file to be used by a given daemon:
    • For a folder used by a service, i.e.: change Mysql data directory:
      • Change your default data directory in /etc/my.cnf
      • semanage fcontext -a -t mysqld_db_t “/var/lib/mysql-default/(/.*)?”
      • restorecon -Rv /var/lib/mysql-default
      • ls -lZ /var/lib/mysql-default
    • For a new file used by a service, i.e.: a new index.html file for Apache:
      • semanage fcontext -a -t httpd_sys_content_t ‘/myweb/web1/html/index.html’
      • restorecon -v ‘/myweb/web1/html/index.html’
  9. Add a non default port to be used by a given service:
    • i.e.: If you want nginx to listen in other additional port:
      • semanage port -a -t http_port_t -p tcp 2100
      • semanage port -l | grep  http_port # check if the change is effective
  10. Spread the word!
    • SELinux is not easy but writing easy tips make people using it and making the Internet a safer place!

Essential commands for Alfresco BART

Alfresco BART usage:

[bash]
./alfresco-bart.sh [set] [date dest]
[/bash]

But what really modes are? With modes I mean different ways to use Alfresco BART depending of what do you want to do, for instance:

  • backup: runs an incremental backup or a full if first time
  • restore: runs the restore, wizard if no arguments, see below more commands with arguments [set] [date] [dest], while [set] can also be “all” for all sets.
  • verify: verifies the backup, it compares what you have backed up and what you have in your live system.
  • collection: shows all the backup sets already in the backup archive that might be restored.
  • list: lists the files currently backed up in the archive. It shows files contained in the last backup.

Sets:

  • no value: use all backup sets
  • index: use index backup set (group) for selected mode.
  • db: use data base backup set (group) for selected mode.
  • cs: use content store backup set (group) for selected mode.
  • files: use rest of files backup set (group) for selected mode.

Now lets see how to use Alfresco BART.

To make a backup:

[bash]
./alfresco-bart.sh backup
[/bash]

NOTE1: if first time, it makes a full backup
NOTE2: you should add this command to your root crontab with something like “0 5 * * * /path/to/alfresco-bart.sh backup” (without quotes) if you want to run your backup daily at 5AM (after Alfresco’s nightly backups and maintenance jobs).
NOTE3: running command above with without any data sets (index, db, cs or files) it will perform a backup of all data sets configured in alfresco-bart.properties. You can run “./alfresco-bart.sh backup files” to only perform a backup of your configuration files, installation and customization files or “./alfresco-bart.sh backup cs” to create a backup (full if first time or incremental if not) of your contentstore and additional stores configured.

Commands and options to restore backup:

To restore an existing backup guided by the wizard:

[bash]
./alfresco-bart.sh restore

################## Welcome to Alfresco BART Recovery wizard ###################

This backup and recovery tool does not overrides nor modify your existing
data, then you must have a destination folder ready to do the entire
or partial restore process.

##############################################################################

Choose a restore option:
1) Full restore
2) Set restore
3) Restore a single file of your Alfresco repository
4) Restore alfresco-global.properties from a given date
5) Restore other configuration file or directory

Enter an option [1|2|3|4|5] or CTRL+c to exit:
[/bash]

To restore the last (now) existing backup of all sets (all) and leave it in /tmp:

[bash]
./alfresco-bart.sh restore all now /tmp
[/bash]

To restore a DB backup from 14 days ago to /tmp:

[bash]
./alfresco-bart.sh restore db 14D /tmp
[/bash]

To restore the indexes backup from december 2nd 2013:

[bash]
./alfresco-bart.sh restore index 12-02-2013 /tmp
[/bash]

Valid date format is: now: for last backup, s: for second, m: minutes, h: hours, D: days, W: weeks, M: months or Y: years, all date values must be specified without spaces, i.e: 4D, 2W, 1Y, 33m. Dates may also be like: YYYY/MM/DD, YYYY-MM-DD, MM/DD/YYYY or MM-DD-YYYY.

To restore a single file deleted on the repository but existing in previous backup please use the backup wizard by typing: “./alfresco-bart.sh restore” and then follow instructions in the menu option “3”.

To restore the alfresco-global.properties configuration file from a given date please use the backup wizard by typing: “./alfresco-bart.sh restore” and then follow instructions in the menu option “4”.

Finally if you want to restore any other configuration, installation or custom file from your existing backup on a given date follow instructions by choosing option 5 in the recovery wizard.

NOTE4: Alfresco BART restore options or recovery wizard never will overrides your existing Alfresco files, you should specify a temporary recovery folder with enough space, then you have to move that content manually or following the instructions on the screen.

In case of source mismatch error with Duplicity try running this command:

[bash]
./alfresco-bart.sh backup all force
[/bash]

Alfresco Backup and Recovery Tool, release v0.1

Project was moved to Github!

Please go to https://github.com/toniblyx/alfresco-backup-and-recovery-tool for downloads, questions, issues, suggestions or feedback. Thanks!

Here you go, first release of the Alfresco Backup and Recovery Tool (Alfresco BART). An Apache 2.0 licensed tool for backup and restore of Alfresco ECM.

DESCRIPTION
Alfresco BART is a tool written in shell script on top of Duplicity for Alfresco backups and restore from a local file system, FTP, SCP or Amazon S3 of all its components: indexes, data base, content store and all deployment and configuration files. It should runs in most Linux distributions, for Windows you may use Cygwin (non tested yet).

Brief description of its features: full and incremental backups, backup policies, backup volume control, encryption with GPG, compression. Also it has a restore wizard with shortcuts for quick restore of some key components (alfresco-global.properties and more).

DISCLAIMER
This is an initial version, it has bugs and needs many improvements, please take care 🙂

FEATURES
Features in this version (v0.1):

  • 5 different modes of work: backup, restore, verify, collection and list
    • backup: runs an incremental backup or a full if first time or configured
    • restore: runs the restore wizard
    • verify: verifies the backup
    • collection: shows all the backup sets in the archive
    • list: lists the files currently backed up in the archive
  • Full and incremental backups.
  • Backup policies:
    • Periodicity: number of days of every full backup, if not backup found it does a full
    • Retention: keep full or incremental copies, clean old backups.
    • Control of number of moths to remove all backups older than or backup retention period.
  • Separated components (backup sets or groups), ability to enable or disable any set (cluster and dedicated search server aware), all backup sets supported are:
    • Indexes (SOLR or Lucene)
    • Data base (MySQL, PostgreSQL and Oracle)
    • Content Store plus deleted, cached and content store selector (optional).
    • Files: all configuration files, deployments, installation files, etc.
  • Restore wizard with support to:
    • restore a full backup (all sets)
    • given backup set
    • restore from a given date or days, month, year ago
    • restore alfresco-global.properties from a point in time
  • Backup volume control:
    • All backups collections are split in a volume size 25MB by default, this can help to store your backup in tapes or in order to upload to a FTP, SCP or S3 server.
  • Backup to different destinations:
    • Local filesystem
    • Remote FTP or FTPS server
    • SCP server (should have shared keys already configured, no authentication with user and password supported)
    • Amazon S3
  • Encryption with GnuPG, all backup volumes are encrypted, this feature is configurable (enable or disable).
  • Compression, all backup volumes are compressed by default
  • Log reporting, Alfresco BART creates a log file each day of operation with in a report of any activity.

DEPENDENCES

  • Duplicity 0.6 (with boto and fabric)
  • Python 
  • GnuPG
  • NcFTP
  • librsync
  • mysqldump for MySQL backup
  • pg_dump for PostgreSQL backup
  • exp for Oracle backup

TODO

  • TEST, TEST and TEST with JBOSS, MySQL, Oracle, S3, FTPs, SCP, etc.
  • Add more input and task controllers (and configuration, first run).
  • Restore single repository file.
  • Snapshots (LVM if exist, AWS if exist).
  • Support for MS SQL Server.
  • Configuration wizard (shell).
  • Share admin panel configuration page as main point to configure more options related to backup (eager, cleaner, index backup, trascan cleaner, etc.).
  • Custom logging control and reporting improvement.

DOWNLOADS and INSTALLATION 

Most recent information about tool and latest code is available in:
http://blyx.com/alfresco-bart

Please report bugs and improvements to: reverse moc.xylb@inot

Integration demo between LibreOffice 4 and Alfresco 4 with CMIS

As first post for 2013 I want to share with you all this new screencast about the straightforward configuration and how it works the new version of LibreOffice with Alfresco. Note that my demo was done with Alfresco Enterprise 4.1 but this CMIS integration also should works with Alfresco Community 4.2. As you can see check-in/out and versioning with comments are already supported out-of-the-box from LibreOffice.

Also I would like to highlight the connection binding URL “http://localhost:8080/alfresco/cmisws/RepositoryService?wsdl” that is automatically filled by LibreOffice at configuration time, this URL is the new CMIS Web Services binding address for Alfresco 4.

Appendix:

Alfresco 4 CMIS binding address (based on OpenCMIS):
CMIS Web Services Binding: WSDL Documents = http://localhost:8080/alfresco/cmisws
CMIS AtomPub Binding: AtomPub Service Document = http://localhost:8080/alfresco/cmisatom

Alfresco 3 CMIS binding address (based on Apache CXF, obsolete/deprecated)
CMIS Web Services Binding: WSDL Documents = http://localhost:8080/alfresco/cmis
CMIS AtomPub Binding: AtomPub Service Document = http://localhost:8080/alfresco/service/cmis

More info about Alfresco and CMIS here.

Migrar a Alfresco, estrategia y soluciones

En este mundillo de los ECM y la gestión de contenidos o de la tecnología en general, continuamente nos encontramos con la necesidad de migrar de una plataforma a otra, en el caso de Alfresco es una constante ya que muchas organizaciones quieren reducir costes de licencias desde sistemas antiguos y propietarios por un sistema abierto, moderno y escalable como es Alfresco.

Las preguntas que nos hacen muy a menudo al respecto son: ¿cual es la mejor forma de migrar a Alfresco? ¿qué estrategia debo seguir? ¿qué soluciones hay en el mercado que me aporten garantías? Y sobre todo, ¿que retos tengo que afrontar realmente en una migración y cambio de ECM?

Bien, vamos por partes.

No hay una mejor forma de migrar Alfresco que sirva para todos los casos, hay la mejor forma para tu caso concreto y para identificarla debes saber realmente qué necesitas mantener del repositorio actual en el nuevo, por ejemplo, no es lo mismo migrar solo los contenidos de un repositorio cualquiera a Alfresco que migrar contenidos más ACL, más modelo de datos. Por lo tanto deberemos tener en cuenta:

  • Modelo de datos (tipos, propiedades, relaciones y jerarquías)
  • Categorías y etiquetas
  • Permisos, roles, herencia de permisos, ¿aplicados a carpetas o a contenidos, ambos?
  • Usuarios y grupos, ¿en local, conectados a un LDAP, AD, etc? ¿Se necesita sincronización?
  • Sistemas de autenticación, al hilo del punto anterior pero importante saber si se usa un sistema de SSO externo.
  • APIs utilizadas por aplicaciones que usan el ECM
  • Transformaciones y reglas de contenido actuales (por ejemplo transformación de AFP a PDF si estamos hablando de IBM)
  • Tipos de búsquedas, sintaxis, opciones (rango de fechas, etc.) y estándar usado para las búsquedas.
  • Necesidades de indexación, nombre fichero, metadatos, contenido, necesitarán Full Text Search? (búsqueda en el contenido de los ficheros)
  • Versiones de los documentos, política de versionado, etc.
  • Workflows actuales o sistema utilizado.
  • ¿Existe inyección de contenidos desde scanners? ¿Como se realiza y que nivel de carga/concurrencia tiene?

Dicho lo anterior, nos encontraremos casos sencillos y casos más complejos, por lo que debemos definir una estrategia de migración basada en:

  • Saber que necesitamos migrar y conocer la estructura de datos origen.
  • Definir la estructura de los datos a migrar, modelos, directorios/espacios y seguridad.
  • Conocer necesidades de la interfaz de usuario si se necesita, como campos necesarios o parámetros de búsqueda.

En la estrategia de migración es necesario conocer la obligatoriedad de coexistencia de ambos ECM durante un tiempo determinado. Si se trata de millones de contenidos no podremos migrar en unas pocas jornadas de trabajo por lo que necesitaremos semanas o meses para migrar y será necesario disponer de ambos entornos a la vez para las aplicaciones o usuarios que lo requieran puedan acceder de forma transparente a los contenidos independientemente de donde estén almacenados.

En cuanto a los retos que tendremos que acomenter durante la migración:

  • Mantener las reglas de negocio específicas que implicarán a los datos migrados. Es capital conocer en profundidad el caso o casos de uso del cliente, de sus diferentes usuarios.
  • Planificación y consolidación de los datos a migrar. Deberemos conocer cuando tiempo nos llevará mover los datos de una plataforma a otra, concurrencia, mejores técnicas a utilizar para maximizar el rendimiento y, como decía anteriormente, si deben coexistir ambas a la vez.
  • No solo debemos preocuparnos por migrar los datos y todo lo relacionado con ellos, también deberemos cambiar como se conectan e interactúan las aplicaciones con el ECM.
  • Es recomendable utilizar una herramienta que nos reduzca la complejidad de la migración, que nos permita añadir orígenes de datos de diferentes ECM y volcarlos a Alfresco, evita tareas manuales, seguro que a lo que te enfrentas ya lo ha hecho alguien. Veremos más adelante que opciones hay.
  • En migraciones de grandes cantidades de datos (millones), medio segundo en una tarea repetitiva puede suponer mucho tiempo, minimiza el tiempo y el esfuerzo al máximo, así obtendrás el mejor rendimiento y reducir los tiempos de migración.
  • Monitoriza toda acción que se realice durante la migración, controla los tiempos continuamente y audita en profundidad que todo se está migrando correctamente.
  • Mantén una infraestructura paralela o la original siempre disponible, piensa que una migración puede fallar, pero los contenidos deben estar disponibles. Minimiza el riesgo y el tiempo de respuesta en caso de marcha atrás. Define correctamente las ventanas de intervención basado en pruebas reales.

Soluciones para migrar a Alfresco:
A continuación vemos diferentes aplicaciones de terceros que nos ayudarán en una migración de otros ECM a Alfresco.

¿Y de todas esas soluciones u otras que puedo encontrar en el mercado cual es la mejor?
De las anteriores hay algunas más completas que otras y también con casos de éxito en cuentas importantes que siempre nos aportarán confianza. El nivel de compromiso de la empresa con los fabricantes, partnership, certificado de la herramienta de migración, etc. también es importante. Conocer los data sources soportados soportados, es decir, ECMs e interfaces que soporta cada solución, si aportan soluciones para permitir la coexistencia de los dos ECMs durante la migración, si el coste de la solución es por proyecto o por número de contenidos, si migran sólo contenidos o son capaces de migrar más información como metadatos, versiones, permisos, etc. Como ves, la elección de una solución u otra también será en función de los requisitos del proyecto.

Como opinión personal, la solución que mejor conozco es Entropysoft ya que la campaña “Switch to Alfresco” que se hizo en 2010 fue con su solución e hice un curso con ellos. Incluso grabé un pequeño video que podéis ver más abajo. También conozco casos reales de migración de IBM FileNet a Alfresco usando el Migration Center, OpenMigrate también es muy usado. Si tienes experiencias con estas u otras soluciones no dudes en decirlo en los comentarios.

En algunos casos, cuando un cliente tiene documentos en filesystem y su propia base de datos de metadatos en hojas de cálculo, lo más común es usar la solución embebida en Alfresco llamada Bulk Import Tool. No dudes en echarle un vistazo, seguro que te puede servir en algún caso, además, permite opciones muy interesantes para no tener que mover (cargar) los archivos en Alfresco si se trata de gran cantidad de información, además es muy rápido.

Por último aquí se puede ver un video de ejemplo de migración que hice durante el curso de Entropysoft; es sin audio, pero se puede ver como mapear datos de Sharepoint a Alfresco al hacer la migración:


Migración de datos de MS SharePoint Server a Alfresco con Entropysoft (video resumen sin audio) from Alfresco Spain Portugal on Vimeo.

Algunas ideas usadas en el artículo tomadas de aquí.

Video del webinar sobre “Subsistemas y Autenticación en Alfresco”

Los subsistemas de Alfresco permiten tener más control y modularidad sobre la aplicación, también nos aportan flexibilidad y facilidad de administración. Durante este webinar vamos a aprender qué son, cómo funcionan internamente y cómo se crean. Revisaremos opciones de configuración del servidor de ficheros, aplicaciones externas y profundizaremos en el subsistema de autenticación y sincronización.

Resumen del Kickoff de Alfresco en Orlando

Del 23 al 25 de marzo estuvimos en Orlando con motivo del Kickoff 2011 de Alfresco, este tipo de reuniones, que se hacen anualmente, sirven para reunir gran parte de la plantilla de Alfresco y partners de todo el mundo que quisieron y pudieron acompañarnos, de España vinieron representantes de Entel e IN2 que ganó el premio a “EMEA Partner of the year”. En el Kickoff se habla sobre lo realizado en al año anterior, 2010 en este caso, y el futuro del producto/compañía. Este año, el sobrenombre del Kickoff fue “When Social met ECM, it was love at first sight”, sí, un título cuanto menos peculiar, pero luego os explicaré a qué se refiere.

En cuanto a asistencia decir que las salas reservadas en el MJ Marriot Grande Lakes, estaban en todo momento casi llenas, estimo que unas 200 personas aproximadamente.

Hubo charlas de todo tipo, la mayoría abiertas a todos los asistentes, empleados y partners, y un par de ellas sólo para empleados de Alfresco, habiendo al mismo tiempo otros tracks muy interesantes.

Aunque se trataron muchos temas, me gustaría trasladaros y destacar algunas de las novedades clave que se comunicaron sobre el futuro de Alfresco. Así como aclarar algunos conceptos de los que vienen hablando en los últimos meses. También aclarar que, aunque algunas de las cosas que voy a comentar estarán en futuras versiones de Alfresco, también pueden estar sujetas a modificaciones.

Vamos a empezar por lo “social”.

Se habla mucho de “Gestión Social de Contenidos” y “Gestión de Contenidos Sociales”, pero ¿qué significa todo esto? ¿a qué se refiere Alfresco cuando habla tanto de esto? ¿está dejando de lado la visión de repositorio, gestión documental y demás usos? No, lo que ocurre es que los contenidos cada vez son más dinámicos, la conversación es el contenido y hay que buscar la versatilidad, adaptarse, mejorando lo que ya hay y añadiendo nuevas funcionalidades.

  • Gestión Social de Contenidos: hablamos de contenidos con los que trabajamos a diario y con los que colaboramos para crearlos, modificarlos, aprobarlos, etc. Es decir, llevar el ECM a su parte más colaborativa = Alfresco Share.
  • Gestión de Contenidos Sociales: hablamos de la creación y administración de contenidos destinados a ser publicados en redes sociales, es decir, pensad en el típico ejemplo de una organización que sube un vídeo en Youtube, una nota de prensa publicada en una web (con el vídeo embebido) y su Twit correspondiente, esto son tres tareas que podemos entender como asíncronas ¿verdad? Pues gracias a las nuevas funcionalidades de la próxima versión de Alfresco, todos estos contenidos los podremos gestionar de forma concurrente y planificada desde un sólo punto = Alfresco Share. Todo esto aprovechando la capacidad de creación, revisión (workflow), control, seguridad y administración de Alfresco. Y no sólo se conectará con Twitter, Youtube, Servidor de publicación Web Quick Start, sino que también, posteriormente podremos conectarnos con Facebook, Drupal, Flikr, Slideshare, WordPress, Linkedin y muchos otros. Nosotros lo llamamos Alfresco Social Publishing y es un framework que permitirá publicar contenidos a cualquier canal social.

La próxima versión de Alfresco tiene como “codename” Swift, toda una declaración de intenciones. La Community se publicará para finales del verano y la versión Enterprise para principios de invierno. Aunque ya se pueden ver algunas novedades en el subversion. Algunas de las novedades más importantes son las siguientes:

  • Calidad: Una de las novedades que más me gustaron es que se amplía el tiempo de QA que pasa cada versión Enterprise antes de ser publicada y se pone máxima prioridad en la escalabilidad, escalabilidad y fiabilidad de la herramienta, haciendo hincapié en la resolución de bugs abiertos externamente.
  • Escalabilidad, integración con Apache SOLR: será una opción más, es decir, podremos usar el motor de indexación que trae Alfresco (Apache Lucene) o usar Apache SOLR con sus capacidades de escalabilidad y redundancia, hasta llegar a soportar hasta 10 nodos de Alfresco.
  • Clustering: La próxima versión vendrá acompañada de un framework para realizar benchmarks, algo muy solicitado. También se mejorará y soportará el cluster de Webdav, FTP, CIFS y MS Sharepoint. El punto más importante y demandado en este tema es CIFS, que soportará clustering sin perder ninguna funcionalidad.
  • Consola de Administración: dispondrá de una consola de administración web dentro de Alfresco Share que permitirá hacer las configuraciones que actualmente se pueden hacer por JMX. Configurar la autenticación, servidores de ficheros, correo entrante, saliente e IMAP. También se proveerán herramientas para facilitar la creación y gestión de tipos y aspectos.
  • Social Content Management: framework del que hemos hablado anteriormente.
  • Desarollo: Facilita la creación y configuración de acciones, diálogos y evaluadores para la librería de documentos, posibilidad de mostrar menús basados en permisos, tipos, estados, etc. La idea es permitir personalizaciones sin tener que copiar y replicar código existente. Mejora en la API CMIS con todo lo que marca el estándar más extensiones específicas de Alfresco. Soporte de plantillas de contenidos, constraints diferenciados por idiomas y constraints dinámicos basados en listas (no xml ni filesystem).
  • Alfresco Share: Previsualización de vídeos en flash y html5, opciones de “me gusta” en los contenidos, control de lectura de contenidos, personalización del interfaz, logo y colores. Subir documentos mediante “drag and drop” al navegador directamente. Nuevo diseño de la página de previsualización (mejorada para documentos de gran tamaño).
  • Activiti: Estará embebido en la próxima versión (Community 3.4.e) con soporte jBPM y Activiti.
  • También se anunció la integración de Jive-Alfresco, podéis encontrar más información sobre este tema aquí.

Algo que ha quedado muy claro en esta reunión es la firme apuesta de Alfresco seguir siendo el referente en la gestión de contenidos empresariales y la firme decisión de apoyo a CMIS, de hecho, John Powell dijo “Creemos y apostamos por CMIS, pensamos que si puedes cambiarnos, nos usarás”, está claro que la interoperabilidad es clave para el futuro de Alfresco, como lo ha sido hasta ahora.