Projecte

General

Perfil

Accions

Muscat Ruby on Rails external consulting

Given that Muscat is written in a language (Ruby), platform (Rails) and technologies (Solr) in which we are not familiarized, at UAB we have concluded that could ask for external help.

The idea is to separate the librarian-cataloguing-repository questions, that we already know and, probably the right persons to ask would be the Muscat developers, from the generic Ruby on Rails technology. We think it may be more efficient to pay external contractor for our Ruby on Rails questions, and maybe some generic developments (like an external authentication system), so we don't bother the Muscat developers with Ruby on Rails newbie questions.

We have contacted those Catalan companies that work with Ruby on Rails:

https://coditramuntana.com/ in Girona
https://www.codegram.com/ in Terrassa

In the list:

• Hèctor Parra (https://hector.parra.cat/ https://www.linkedin.com/in/hectorparrarodriguez/)
https://www.linkedin.com/in/victormartinezgarcia/

Those have declined for various reasons:

https://marsbased.com/ in Barcelona
http://www.prorubyteam.com/ in Barcelona
• Jesús Castelló (https://www.rubyguides.com/about/)

Later on, I have found that Institut del Teatre, a theater school in Barcelona, has an web catalog written in Blacklight (the Ruby on Rails gem for Opac, also used in Muscat): http://aaaec.institutdelteatre.cat/. So, maybe we should contacting them first.

At this moment we don't have any experience or knowlege from them. I'm unable to see if any of them fits better our needs, so most likely we could send them our case and see how they answer.

Draft letter (in Catalan):


Assumpte: Pressupost per implementar SSO i potser LDAP en una aplicació Ruby on Rails

Bon dia,

La Universitat Autònoma de Barcelona ha estat utilitzant des del 2006 Invenio (https://invenio-software.org/), una aplicació del CERN que ens ha servit molt bé com a dipòsit institucional, el Dipòsit Digital de Documents de la UAB (https://ddd.uab.cat) i a un parell de bases de dades especialitzades.

Ara estem a la versió 1.1.6 i per a les següents versions el CERN ha cregut necessari modernitzar-la i fer-la amb noves bases. Malauradament, també ha decidit canviar alguns dels motius pels quals la UAB la va triar en el seu moment.

La UAB, junt amb altres usuaris de la versió clàssica d'Invenio, singularment els agrupats en el consorci alemany Just Another Invenio Instance (http://join2.de/), estem avaluant si ens convé continuar amb Invenio 3 o explorar altres alternatives, sempre dins del que ofereix el software lliure. Ens hem posat d'acord en fer les avaluacions conjuntament i posar-ho en comú.

Una d'aquestes alternatives s'anomena Muscat, i està escrita en Ruby on Rails (http://muscat-project.org/). A la UAB ens encarreguem d'avaluar-la, però per això segurament ens serà útil l'ajuda d'una persona o empresa amb experiència amb Ruby on Rails. La nostra estratègia és separar els problemes o dubtes genèrics de Ruby on Rails dels específics de l'àmbit d'aplicació de Muscat.

L'aplicació evoluciona a un bon ritme, i van traient versions amb regularitat (https://github.com/rism-digital/muscat/releases). Ara mateix a la UAB estem en fase de familiaritzar-nos tant en Ruby com amb Rails i, de fet, ja hem pogut fer algunes aportacions, de petita complexitat, i ens les han acceptades (https://github.com/rism-digital/muscat/graphs/contributors).

Des del nostre punt de vista, hi ha dos o tres tipus de millores que ens convenen fer: algunes són molt específicament bibliotecàries, i preferim encarregar-nos-en nosaltres, perquè estaríem més temps per explicar-vos-les i validar-les que fer-les nosaltres mateixos. Altres són més genèriques o transversals, com flexibilitzar el sistema d'autenticació d'usuaris. I, finalment, segurament en sortirà alguna que requereixi d'una familiaritat o coneixements més avançats de Rails que ara mateix no tenim.

Concretament, ens convindria millorar el sistema d'autenticació de Muscat. De fet, Muscat utilitza Devise, de manera que això ja ho posa tot molt fàcil, però pensem que hauria de ser trivial, per a qui instal·li Muscat, triar el mètode d'autenticació sense haver de tenir coneixements de Rails, sinó només editant el fitxer de configuració.

Ara mateix, la creació i manteniment d'usuaris a Muscat és tan restringida que només ho pot fer l'administrador; específicament, no deixen ni que els usuaris puguin canviar la seva contrasenya (https://github.com/rism-digital/muscat/issues/515). Nosaltres voldríem que les nostres millores no afectin aquesta decisió que han pres els dissenyadors de Muscat; els hi hem de respectar. Per tant, tot hauria de ser variables al fitxer de configuració, que ara mateix és aquest:

https://github.com/rism-digital/muscat/blob/develop/config/sample_application.rb

De fet, pensem en alguna cosa com el que ja ens oferia la secció 7 del fitxer de configuració d'Invenio clàssic:

https://github.com/fjorba/invenio/blob/master/config/invenio.conf#L1016

És a dir, es tractaria d'oferir unes quantes opcions per la creació d'usuaris i pel manteniment de les contrasenyes; no han de ser específicament els que teníem: si Devise ja en proposa uns de predeterminats, en principi ens hi podem acollir. Però al menys resoldria casos com https://github.com/rism-digital/muscat/issues/787.

Pel que fa als mètodes d'autenticació, haurien de poder ser acumulatius, no excloents. Nosaltres, per exemple, n'oferim dos per al DDD (https://ddd.uab.cat/youraccount/login), però només un per a Traces (https://traces.uab.cat/youraccount/login) o l'IFMuC (https://ifmuc.uab.cat/youraccount/login), és a dir, que ha de ser possible que els usuaris triïn crear-s'hi un compte o utilitzar mètodes corporatius o externs. En tot cas, no cal cap interfície web per a la configuració; és una aplicació molt especialitzada i millor deixar-ho com a fitxer de configuració.

A la UAB utilitzem el Single-Sign-On amb el protocol CAS v3 (https://apereo.github.io/cas/), i per tant és el que necessitem, però estaria bé que fos igualment de trivial de triar el LDAP, editant només el fitxer de configuració. El quadre de diàleg resultat hauria de ser personalitzable per poder-hi insertar text en diferents idiomes, com ho tenim a la UAB. Òbviament, si això requereix editar fitxer .erb o similars, cap problema, però al menys donar instruccions perquè un administrador novell, sense experiència prèvia en Rails, se'n pugui ensortir.

Caldria que aquestes implementacions es poguessin integrar, tant com sigui possible, amb el Muscat oficial, de manera que no els molesti, i acceptant els seus suggeriments. Per tant, aquestes col·laboracions s'haurien d'aprovar amb la llicència de Muscat (sabem que és Apache, tot i que no hi figura a Github).

Us interessa? Ens podríeu preparar un pressupost per a aquesta tasca?

A part d'aquest cas específic, també podria ser que més endavant ens anés bé solucionar algun problema puntual genèric Rails, i potser algun consell en el pas a producció. Encara no sabem si acabarem adoptant Muscat o no, però creiem que pel tipus de feina que és, que implica estar pendent dels acords que prenguem a tres o quatre bandes (la UAB, vosaltres, els desenvolupadors suïssos de Muscat, i els alemanys del consorci Join2) seria millor comptar amb una única persona, i preferiríem que sempre fos la mateixa. Per tant, inicialment, tampoc no estimem calendaris gaire apretats, perquè el servei ara mateix el tenim ben servit amb l'aplicació actual. Però sí que necessitem flexibilitat i esperit de col·laboració.

Cara a la transparència en el tracte, cal que tingueu present que aquesta mateixa proposta l'hem fet a dues empreses catalanes més de les que ens consta que tenen experiència en Ruby on Rails.

Ben cordialment,

Ferran Jorba
Administrador del https://ddd.uab.cat
Servei d'Informàtica
Universitat Autònoma de Barcelona

Actualitzat per Ferran Jorba fa quasi 5 anys · 29 revisions