2017 © Pedro Peláez
 

library dfw-varcrypt-module

Zend Framework 2 Module for dfw-varcrypt

image

detailnet/dfw-varcrypt-module

Zend Framework 2 Module for dfw-varcrypt

  • Tuesday, August 11, 2015
  • by ivan-wolf
  • Repository
  • 5 Watchers
  • 0 Stars
  • 207 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Zend Framework 2 Module for dfw-varcrypt

Build Status Coverage Status Latest Stable Version Latest Unstable Version, (*1)

Introduction

This module integrates the DETAIL Framework library for for working with encrypted environment variables with Zend Framework 2., (*2)

Requirements

Zend Framework 2 Skeleton Application (or compatible architecture), (*3)

Installation

Install the module through Composer using the following steps:, (*4)

  1. cd my/project/directory, (*5)

  2. Create a composer.json file with following contents (or update your existing file accordingly):, (*6)

    json { "require": { "detailnet/dfw-varcrypt-module": "1.x-dev" } }, (*7)

  3. Install Composer via curl -s http://getcomposer.org/installer | php (on Windows, download the installer and execute it with PHP), (*8)

  4. Run php composer.phar self-update, (*9)

  5. Run php composer.phar install, (*10)

  6. Open configs/application.config.php and add following key to your modules:, (*11)

    php 'service_manager' => array( 'delegators' => array( 'ModuleManager' => array( // By attaching this delegator the module Detail\VarCrypt is loaded before // all other modules so that the encrypted environment variables can be // applied before the configs of the other modules are merged/applied. 'Detail\VarCrypt\Factory\ModuleManager\ModuleManagerDelegatorFactory', ), ), ),, (*12)

  7. Copy vendor/detailnet/dfw-varcrypt-module/config/detail_varcrypt.local.php.dist into your application's config/autoload directory, rename it to detail_varcrypt.local.php and make the appropriate changes., (*13)

Usage

Save/encode config

Before the module can be used, a config (simple string or JSON encoded string) needs to be encoded and provided as environment variable., (*14)

Here's an example for providing MongoDB credentials as a single environment variable:, (*15)

  1. Define credentials as JSON:, (*16)

    json { "server": "localhost", "user": "root", "password": "root", "port": 27017, "dbname": null, "options": [] }, (*17)

  2. Make sure an encryption key is set in detail_varcrypt.local.php., (*18)

  3. Encode JSON: php public/index.php varcrypt encode-value {"server": ...}
  4. Save the output as environment variable (e.g. MONGO).
  5. Test that the environment variable can be accessed (at least from the CLI): php public/index.php varcrypt decode-variable MONGO

Apply/decode config

The following steps are necessary, to use an encrypted/encoded environment variable in a ZF2 app., (*19)

  1. Add the environment variable to the module's config (in detail_varcrypt.local.php):, (*20)

    php 'detail_varcrypt' => array( 'listeners' => array( 'Detail\VarCrypt\Listener\MultiEncryptorListener' => array( 'apply_variables' => array( 'mongo', ), ), ), ),, (*21)

  2. Access environment variables as you normally would:, (*22)

    php array( 'doctrine' => array( 'connection' => array( 'odm_default' => array( 'server' => getenv('MONGO_SERVER') ?: 'localhost', ... ), ), ), ), (*23)

The Versions