Open Source Components

Mydex CIC is committed to using open source components and supporting open source software development across a wide range of community endeavours.

The rationale is simple for us, greater security, many eyes on the same code all driven by making it safe and secure. There is also the reality of lower cost in terms of accessing such amazing capability, the ongoing development and support of functionality and the ability to help shape its future and if necessary make local decisions to meet the needs of our community. We obviously configure it to meet our needs and yes we extend it but we don’t customise it.

We have set out below each component we use across our different environments and the broad categories and elements we classify them under.

Environments

Groups

Simply click on the filters at the top of the listing to see which components are used in each environment.


API

REST

slimphp

SlimPHP

Slim is a PHP micro framework that helps you quickly write simple yet powerful APIs
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
drupal

Drupal Services

A standardized API for Drupal that allows you to create "services", or a collection of methods, intended for consumption by remote applications
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Development

Environment

Vagrant

Vagrant

Vagrant is a tool to make it easier to build virtual development environments. Vagrant is used to generate local development environments that closely resemble Mydex's other infrastructure
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Version Control

Git

Git

Git is a version control system that is used for storing application code in 'repositories'. These repositories provide an ability for developers to collaborate on the same code, give an audit trail and the ability to revert changes
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Encryption

Database

sqlcipher

SQLCipher

SQLCipher adds encryption capabilities to SQLite, allowing the ability to store encrypted SQLite databases.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

PKI

GPG

GPG

GnuPG (GPG) is an open source implementation of OpenPGP, which allows for the encryption and decryption of data using Public/Private keys
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

SSL

Openssl

OpenSSL

OpenSSL is the opensource implementation of the Secure Sockets Layer standard, which allows for encryption of the transmission of data between networks
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Identity

Mozilla Persona

mozilla persona

Mozilla Persona

Simple, privacy-sensitive single sign-in: lets our members sign into your website with their MydexID
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

OpenIDconnect

phpoidc

PHPOIDC

An open source implementation of OpenID Connect in PHP by Nomura Research Institute Ltd
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

SAML

Simple saml php

SimpleSAMLphp

SimpleSAMLphp is an application written in native PHP that deals with authentication. The main focus of SimpleSAMLphp is providing support for SAML 2.0 as an Identity Provider (IdP) and as a Service Provider (SP)
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Infrastructure

Application Servers

nginx

NGINX

Nginx is a fast and lightweight HTTP daemon for serving websites
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Backup

Duplicity

Duplicity

Duplicity is a tool for backing up, validating and restoring data. It supports full and incremental backups, with an added encryption layer for security
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Cluster

Corosync

Corosync

Corosync is a messaging layer used with Pacemaker to allow the filesystem cluster's nodes to communicate with each other
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
...

DRBD

DRBD provides the ability to replicate the blocks of a device (e.g a disk) over TCP/IP, for replication
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
NFS

NFS

NFS provides the ability to share a server's filesystem to 'clients' over a network
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
...

Pacemaker

Pacemaker is an Open Source, High Availability resource manager suitable for both small and large clusters.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Communications

irc

IRC

IRC (Internet Relay Chat) is an 'instant messaging' communication service used by Mydex as a chat room for real time communication.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
Open SSH

OpenSSH

OpenSSH is an implementation of the SSH protocol, which allows for encrypted commands to be issued to a remote server over a network. SSH is used at Mydex extensively by humans, robots as well as some of the tools already listed above (such as Fabric)
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
postfix

postfix

Postfix is an open source SMTP (mail) system. It is used for outbound as well as some inbound e-mail channels from Mydex's infrastructure
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Configuration

puppet

Puppet

Puppet is an open source configuration management system. It allows systems administrators to 'describe' the state of their servers in code format, which helps make servers run more predictably, enforces correct behaviour and state, and accelerates the provisioning process of new infrastructure. It also is used to assist with local development setup (see Vagrant)
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Database

percona server

Percona Server

Percona Server is a drop-in replacement for MySQL, the popular database server. It contains various improvements and features over the standard MySQL
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Intrusion Detection & Virus Protection

We have a number of open source components in use across our entire estate. Our security manager and systems administrators would prefer us not to publish them at this time. If you really want to know please contact our Chief Information Security Officer on ciso@mydex.org

Logging

logstash

Logstash

Logstash provides a way to manipulate logs and other messages on servers. It is used to ship various logs into Elasticsearch for viewing with Kibana
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Logging & Reporting

kibana

Kibana

Kibana provides a rich interface to visualise Elasticsearch data (such as logs)
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Messaging

activemq

ActiveMQ

Apache ActiveMQ ™ is a powerful open source messaging and Integration Patterns server
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Monitoring

munin

Munin

Munin is a networked resource monitoring tool that can help analyze resource trends and "what just happened to kill our performance?" problems. It is designed to be very plug and play.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
nagios

Nagios

Nagios is an open source monitoring solution. It is used to perform checks against various infrastructure on a 24/7 basis, and alert engineers to abnormal conditions.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Operating System

ubuntu

Ubuntu

Ubuntu is a popular 'distribution' of the open source operating system known as Linux. Ubuntu is used to power Mydex's servers.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Replication

mysql mmm

MySQL-MMM

MySQL-MMM is a suite of tools which make it easier to run a replicated cluster of MySQL (Percona) servers. It manages replication and handles failover in the event that a MySQL server fails
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Reporting

piwik

Piwik

Piwik is an open source analytics platform. It is used in certain non-sensitive areas of Mydex's infrastructure where collection of basic analytical statistics is suitable.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Scripting

php fpm

PHP-FPM

PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Search

elastic search

Elastic Search

Elasticsearch is a fast and scalable indexing system. It is used for storing logs and also search-related data
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Time

ntp

NTP

NTP is the 'Network Time Protocol', which helps servers keep accurate time. Many applications depend on accurate time in order to function properly. Mydex uses standard open source implementations of NTP as provided by Linux.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

VPN

open vpn server

OpenVPN Server

OpenVPN is an open source implementation of a Virtual Private Network. It is used for secure and convenient connectivity to otherwise firewalled infrastructure
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Zero Touch Deployment

fabric

Fabric

Fabric is a library that allows Mydex to issue automatic commands or 'tasks' to remote servers over SSH. It is used to drive the 'zero touch deployment' of Mydex's applications (via Jenkins)
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
jenkins

Jenkins

Jenkins is a 'continuous integration' platform. Designed to run tests on software, it is also used for facilitating deployment of Mydex's applications, processing of routine tasks such as backups, and change management
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Platform

Database

sqlite

SQLite

SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Framework

bootstrap

Bootstrap

Bootstrap is a popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
D3

D3

D3.js is a JavaScript library for manipulating documents based on data. D3 helps you bring data to life using HTML, SVG and CSS
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
drupal

Drupal

Drupal is an open source content management platform
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
jquery

Jquery

jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
Middleman

Middleman

Middleman is a command-line tool for creating static websites using all the shortcuts and tools of the modern web development environment.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
symfony

Symfony

A PHP framework to create websites and web applications. Built on top of the Symfony Components which are a set of decoupled and reusable components
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
twig

Twig

Twig is a modern template engine for PHP. Twig compiles templates down to plain optimized PHP code. The overhead compared to regular PHP code is reduced to the very minimum. Twig has a sandbox mode to evaluate untrusted template code. This allows Twig to be used as a template language for applications where users may modify the template design. Twig is powered by a flexible lexer and parser. This allows the developer to define its own custom tags and filters, and create its own DSL.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
wordpress

Wordpress

Originally a blogging system, but has evolved to be used as full content management system with a diverse range of plugins
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Testing

API

guzzle

Guzzle

Guzzle is a PHP HTTP client that allows quick and painless management of HTTP request integration into web services.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub

Browser Automation

nightwatch

Nightwatch.js

Nightwatch.js is an automated testing framework designed to enable full browser automation which ensures the functionality of the public facing side of the Mydex PDS. It is a kind of front end for Selenium and allows easier management and integration of tests.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub
selenium

Selenium

Selenium is a testing framework for web applications. It act's as the middleman between Nightwatch.js and the web browser and drives navigation while testing that essential components of the page are present and correct.
Mydex Internal Personal Data Services Identity Services Community Platform Developer Documentation Corporate Site External Integration Hub