Merge remote-tracking branch 'origin/feature/upgrade-to-zf3' into ldap

ldap
Ruslan Baidan 2019-11-18 13:06:15 +01:00
commit 9f44985d4c
57 changed files with 5690 additions and 640 deletions

13
.gitignore vendored
View File

@ -1,13 +1,10 @@
nbproject
._*
.~lock.*
.buildpath
.DS_Store
.idea
.project
.settings
composer.lock
vendor/bin
migrations
*.sublime-*
vagrant/.vagrant/
@ -19,12 +16,14 @@ public/js/
public/img/
public/flags/
public/views/
scripts/public
module/
npm-debug.log
node_modules/
bin/
data/DoctrineORMModule/
data/monarc/
data/json/
go-pear.phar
data/*
!data/cache/.gitkeep
!data/DoctrineORMModule/Proxy/.gitkeep
!data/LazyServices/Proxy/.gitkeep
!data/json/.gitkeep
scripts/public/

3
.gitmodules vendored
View File

@ -1,3 +0,0 @@
[submodule "vendor/ZF2"]
path = vendor/ZF2
url = https://github.com/zendframework/zf2.git

View File

@ -1,6 +1,50 @@
MONARC Changelog
================
## 2.9.1 (2019-10-29)
### Upgrade
- upgrade of the Backend Framework. Now we use ZendFramework 3;
- restructured the Monarc code to comply with PSR-2 standard;
- updated the usage of the dependencies (Core and FrontOffice) from packagist.org;
- some code improvements and bug-fixes.
## 2.9.0 (2019-08-23)
### New
- each analysis can now integrate a record of processing activities in order
to help you in your GDPR compliance efforts;
- it is now possible to create and manage set of recommendations via the
knowledge base of a risk analysis. Like for the security referentials
(introduced in version 2.8.0), MOSP can now be used in order to
[share recommendations](https://objects.monarc.lu/schema/17).
### Fix
- Monarc 2.8.3 - invalid datetime format: 1292 [#179](https://github.com/monarc-project/MonarcAppFO/issues/179)
- various minor fixes and improvements.
## 2.8.3 (2019-07-26)
### Enhancement
- Some improvements in MOSP import
- Some improvements in 3rd deliverable
### Fix
- SOA is not imported [#166](https://github.com/monarc-project/MonarcAppFO/issues/166)
- Drag & drop in risk treatment plan fails after 1 change [#167](https://github.com/monarc-project/MonarcAppFO/issues/166)
- Underscore "\_" is not considered as a special character in password reset [#169](https://github.com/monarc-project/MonarcAppFO/issues/169)
- Error when duplicating object [#171](https://github.com/monarc-project/MonarcAppFO/issues/171)
- Add objects in model/anr from common DB [#172](https://github.com/monarc-project/MonarcAppFO/issues/172)
- Composed objects in the library->position [#174](https://github.com/monarc-project/MonarcAppFO/issues/174)
- Import analysis -> conflict on uuid on objects [#175](https://github.com/monarc-project/MonarcAppFO/issues/175)
- FO > Knowledge base > OP risks [#177](https://github.com/monarc-project/MonarcAppFO/issues/177)
## 2.8.2 (2019-05-28)

184
INSTALL/INSTALL.debian10.md Normal file
View File

@ -0,0 +1,184 @@
Installation on Debian 10
=========================
# 1. Install LAMP & dependencies
## 1.1. Install system dependencies
$ sudo apt-get install zip unzip git gettext curl gsfonts software-properties-common
Some might already be installed.
## 1.2. Install MariaDB
$ sudo apt-get install mariadb-server
### Secure the MariaDB installation
$ sudo mysql_secure_installation
Especially by setting a strong root password.
## 1.3. Install Apache2
$ sudo apt-get install apache2
### Enable modules, settings, and default of SSL in Apache
$ sudo a2dismod status
$ sudo a2enmod ssl
$ sudo a2enmod rewrite
$ sudo a2enmod headers
### Apache Virtual Host
<VirtualHost _default_:80>
ServerAdmin admin@localhost.lu
ServerName monarc.local
DocumentRoot /var/lib/monarc/fo/public
<Directory /var/lib/monarc/fo/public>
DirectoryIndex index.php
AllowOverride All
Require all granted
</Directory>
<IfModule mod_headers.c>
Header always set X-Content-Type-Options nosniff
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Robots-Tag none
Header always set X-Frame-Options SAMEORIGIN
</IfModule>
SetEnv APP_ENV "development"
</VirtualHost>
## 1.4. Install PHP and dependencies
$ sudo apt-get install php7.3 libapache2-mod-php7.3 php7.3-curl php7.3-gd php7.3-mysql php7.3-apcu php7.3-xml php7.3-mbstring php7.3-intl php7.3-imagick php7.3-zip
$ curl -sS https://getcomposer.org/installer -o composer-setup.php
$ sudo php composer-setup.php --install-dir=/usr/bin --filename=composer
## 1.5 Apply all changes
$ sudo systemctl restart apache2.service
# 2. Installation of MONARC
## 2.1. MONARC source code
$ mkdir -p /var/lib/monarc/fo
$ git clone https://github.com/monarc-project/MonarcAppFO.git /var/lib/monarc/fo
$ cd /var/lib/monarc/fo
$ mkdir -p data/cache
$ mkdir -p data/LazyServices/Proxy
$ chmod -R g+w data
$ composer install -o
### Back-end
The back-end is using the Zend Framework 3.
Create two symbolic links:
$ cd module/Monarc
$ ln -s ./../../vendor/monarc/core Core
$ ln -s ./../../vendor/monarc/frontoffice FrontOffice
$ cd ../..
There are 2 parts:
* Monarc\FrontOffice is only for MONARC;
* Monarc\Core is common to MONARC and to the back office of MONARC.
### Front-end
The frontend is an AngularJS application.
$ mkdir node_modules
$ cd node_modules
$ git clone https://github.com/monarc-project/ng-client.git ng_client
$ git clone https://github.com/monarc-project/ng-anr.git ng_anr
There are 2 parts:
* one only for MONARC: ng_client;
* one common for MONARC and the back office of MONARC: ng_anr.
## 2.2. Databases
### Create 2 databases
In your MariaDB interpreter:
MariaDB [(none)]> CREATE DATABASE monarc_cli DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
MariaDB [(none)]> CREATE DATABASE monarc_common DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
* monarc_common contains models and data created by CASES;
* monarc_cli contains all client risk analyses. Each analysis is based on CASES
model of monarc_common.
### Initializes the database
$ mysql -u user monarc_common < db-bootstrap/monarc_structure.sql
$ mysql -u user monarc_common < db-bootstrap/monarc_data.sql
### Database connection
Create the configuration file:
$ sudo cp ./config/autoload/local.php.dist ./config/autoload/local.php
And configure the database connection:
return array(
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'params' => array(
'host' => 'localhost',
'user' => 'sqlmonarcuser',
'password' => '<password>',
'dbname' => 'monarc_common',
),
),
'orm_cli' => array(
'params' => array(
'host' => 'localhost',
'user' => 'sqlmonarcuser',
'password' => '<password>',
'dbname' => 'monarc_cli',
),
),
),
),
);
# 3. Update MONARC
Install Grunt:
$ curl -sL https://deb.nodesource.com/setup_13.x | sudo bash -
$ sudo apt-get install nodejs
$ npm install -g grunt-cli
then update MONARC:
$ ./scripts/update-all.sh -c
# 4. Create initial user
$ php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/Monarc/FrontOffice/migrations/phinx.php
The username is *admin@admin.test* and the password is *admin*.

View File

@ -69,10 +69,10 @@ Clone the repository and invoke composer
Backend
$ mkdir module
$ cd module/
$ ln -s ./../vendor/monarc/core MonarcCore
$ ln -s ./../vendor/monarc/frontoffice MonarcFO
$ cd module/Monarc
$ ln -s ./../../vendor/monarc/core Core
$ ln -s ./../../vendor/monarc/frontoffice FrontOffice
$ cd ../..
Frontend
@ -97,7 +97,7 @@ Update MONARC (including npm config for explicit proxy)
Create initial user
$ php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcFO/migrations/phinx.php
$ php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/Monarc/FrontOffice/migrations/phinx.php
# Configure apache (as root)
@ -128,4 +128,4 @@ Set file ownership for monarc installation
Header always set X-Frame-Options SAMEORIGIN
</IfModule>
SetEnv APPLICATION_ENV "development"
SetEnv APP_ENV "development"

View File

@ -49,7 +49,7 @@ Especially by setting a strong root password.
Header always set X-Frame-Options SAMEORIGIN
</IfModule>
SetEnv APPLICATION_ENV "development"
SetEnv APP_ENV "development"
</VirtualHost>
@ -88,15 +88,15 @@ You must create modules with symbolic links to libraries.
Create two symbolic links:
$ mkdir module
$ cd module/
$ ln -s ./../vendor/monarc/core MonarcCore
$ ln -s ./../vendor/monarc/frontoffice MonarcFO
$ cd module/Monarc
$ ln -s ./../../vendor/monarc/core Core
$ ln -s ./../../vendor/monarc/frontoffice FrontOffice
$ cd ../..
There are 2 parts:
* MonarcFO is only for front office;
* MonarcCore is common to the front office and to the back office.
* Monarc\FrontOffice is only for front office;
* Monarc\Core is common to the front office and to the back office.
### Frontend
@ -188,7 +188,7 @@ execute the database migration scripts and compile the translations.
# Create initial user
$ php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcFO/migrations/phinx.php
$ php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/Monarc/FrontOffice/migrations/phinx.php
The username is *admin@admin.test* and the password is *admin*.

View File

@ -3,37 +3,38 @@ Installation on Ubuntu 18.04
# 1. Install LAMP & dependencies
## Install the dependencies
## 1.1. Install system dependencies
$ sudo apt-get install vim zip unzip git gettext curl gsfonts
$ sudo apt-get install zip unzip git gettext curl gsfonts
Some might already be installed.
## Install MariaDB
## 1.2. Install MariaDB
$ sudo apt-get install mariadb-client mariadb-server
# Secure the MariaDB installation
### Secure the MariaDB installation
$ sudo mysql_secure_installation
Especially by setting a strong root password.
## Install Apache2
## 1.3. Install Apache2
$ sudo apt-get install apache2
## Enable modules, settings, and default of SSL in Apache
### Enable modules, settings, and default of SSL in Apache
$ sudo a2dismod status
$ sudo a2enmod ssl
$ sudo a2enmod rewrite
$ sudo a2enmod headers
## Apache Virtual Host
### Apache Virtual Host
<VirtualHost *:80>
ServerName monarc.localhost
<VirtualHost _default_:80>
ServerAdmin admin@localhost.lu
ServerName monarc.local
DocumentRoot /var/lib/monarc/fo/public
<Directory /var/lib/monarc/fo/public>
@ -49,15 +50,15 @@ Especially by setting a strong root password.
Header always set X-Frame-Options SAMEORIGIN
</IfModule>
SetEnv APPLICATION_ENV "development"
SetEnv APP_ENV "development"
</VirtualHost>
## Install PHP and dependencies
## 1.4. Install PHP and dependencies
$ sudo apt-get install php apache2 libapache2-mod-php php-curl php-gd php-mysql php-pear php-apcu php-xml php-mbstring php-intl php-imagick php-zip
$ sudo apt-get install php apache2 libapache2-mod-php php-curl php-gd php-mysql php-pear php-apcu php-xml php-mbstring php-intl php-imagick php-zip composer
## Apply all changes
## 1.5 Apply all changes
$ sudo systemctl restart apache2.service
@ -65,41 +66,35 @@ Especially by setting a strong root password.
# 2. Installation of MONARC
## MONARC code
## 2.1. MONARC source code
Clone the repository and invoke `composer` using the shipped `composer.phar`:
$ cd /var/lib/monarc/
$ git clone https://github.com/monarc-project/MonarcAppFO.git fo
$ cd fo/
$ chown -R www-data data
$ mkdir -p /var/lib/monarc/fo
$ git clone https://github.com/monarc-project/MonarcAppFO.git /var/lib/monarc/fo
$ cd /var/lib/monarc/fo
$ mkdir -p data/cache
$ mkdir -p data/LazyServices/Proxy
$ chmod -R g+w data
$ sudo composer self-update
$ composer install -o
The `self-update` directive is to ensure you have an up-to-date `composer.phar`
available.
### Back-end
### Backend
The backend is not directly modules of the project but libraries.
You must create modules with symbolic links to libraries.
The back-end is using the Zend Framework 3.
Create two symbolic links:
$ mkdir module
$ cd module/
$ ln -s ./../vendor/monarc/core MonarcCore
$ ln -s ./../vendor/monarc/frontoffice MonarcFO
$ cd module/Monarc
$ ln -s ./../../vendor/monarc/core Core
$ ln -s ./../../vendor/monarc/frontoffice FrontOffice
$ cd ../..
There are 2 parts:
* MonarcFO is only for front office;
* MonarcCore is common to the front office and to the back office.
* Monarc\FrontOffice is only for MONARC;
* Monarc\Core is common to MONARC and to the back office of MONARC.
### Frontend
### Front-end
The frontend is an AngularJS application.
@ -110,18 +105,18 @@ The frontend is an AngularJS application.
There are 2 parts:
* one only for front office: ng_client;
* one common for front office and back office: ng_anr.
* one only for MONARC: ng_client;
* one common for MONARC and the back office of MONARC: ng_anr.
## Databases
## 2.2. Databases
### Create 2 databases
In your MariaDB interpreter:
CREATE DATABASE monarc_cli DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE monarc_common DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
MariaDB [(none)]> CREATE DATABASE monarc_cli DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
MariaDB [(none)]> CREATE DATABASE monarc_common DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
* monarc_common contains models and data created by CASES;
* monarc_cli contains all client risk analyses. Each analysis is based on CASES
@ -145,17 +140,17 @@ And configure the database connection:
'connection' => array(
'orm_default' => array(
'params' => array(
'host' => 'host',
'user' => 'user',
'password' => 'password',
'host' => 'localhost',
'user' => 'sqlmonarcuser',
'password' => '<password>',
'dbname' => 'monarc_common',
),
),
'orm_cli' => array(
'params' => array(
'host' => 'host',
'user' => 'user',
'password' => 'password',
'host' => 'localhost',
'user' => 'sqlmonarcuser',
'password' => '<password>',
'dbname' => 'monarc_cli',
),
),
@ -165,22 +160,21 @@ And configure the database connection:
# Update MONARC
# 3. Update MONARC
## Install Grunt
Install Grunt:
$ sudo apt-get -y install npm
$ npm install -g grunt-cli
then update MONARC:
Update MONARC:
$ ./scripts/update-all.sh
$ ./scripts/update-all.sh -c
# Create initial user
# 4. Create initial user
$ php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcFO/migrations/phinx.php
$ php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/Monarc/FrontOffice/migrations/phinx.php
The username is *admin@admin.test* and the password is *admin*.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View File

@ -1 +1 @@
{"major":2, "minor":8, "hotfix":2}
{"major":2, "minor":9, "hotfix":1}

View File

@ -1,6 +1,6 @@
{
"name": "monarc/skeleton",
"description": "Skeleton for Monarc project",
"name": "monarc/monarc",
"description": "Monarc application",
"authors": [
{"name": "Cyril Rouyer", "email": "cyril@netlor.fr"},
{"name": "Guillaume Lesniak", "email": "guillaume@netlor.fr"},
@ -12,32 +12,23 @@
{"name": "Cédric Bonhomme", "email": "cedric.bonhomme@cases.lu"}
],
"require": {
"php": ">=5.5",
"zendframework/zendframework": "2.5.3",
"doctrine/doctrine-orm-module": "^0.10",
"robmorgan/phinx": "0.5.*",
"monarc/core": "dev-master",
"monarc/frontoffice": "dev-master",
"phing/phing": "~2.0",
"phpoffice/phpword": "dev-stable",
"ramsey/uuid": "^3.8",
"ramsey/uuid-doctrine": "^1.5"
"php": "^7.1",
"ext-json": "*",
"ext-pdo": "*",
"monarc/core": "dev-feature/upgrade-to-zf3",
"monarc/frontoffice": "dev-feature/upgrade-to-zf3",
"monarc/phpword": "dev-master",
"zendframework/zend-mvc": "^3.1",
"zendframework/zend-di": "^3.1",
"zendframework/zend-permissions-rbac": "^3.0",
"zendframework/zend-log": "^2.11",
"zendframework/zend-i18n": "^2.9"
},
"require-dev": {
"roave/security-advisories": "dev-master",
"zendframework/zend-component-installer": "^2.1"
},
"config": {
"bin-dir": "bin/"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/monarc-project/zm-core"
},
{
"type": "vcs",
"url": "https://github.com/monarc-project/zm-client"
},
{
"type": "vcs",
"url": "https://github.com/monarc-project/monarc_phpword"
}
]
}
}

5059
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -5,37 +5,52 @@
*
* @see https://github.com/zendframework/ZFTool
*/
$env = getenv('APP_ENV') ?: 'production';
$appconfdir = getenv('APP_CONF_DIR') ? getenv('APP_CONF_DIR') : '';
$env = getenv('APPLICATION_ENV') ?: 'production';
$appConfDir = getenv('APP_CONF_DIR') ?? '';
$confpaths = [ 'config/autoload/{,*.}{global,local}.php' ];
$datapath = "data";
if( ! empty($appconfdir) ){
$confpaths[] = $appconfdir.'/local.php';
$datapath = $appconfdir.'/data';
if(!is_dir($datapath.'/cache')){
mkdir($datapath.'/cache');
$confPaths = ['config/autoload/{,*.}{global,local}.php'];
$dataPath = 'data';
if (!empty($appConfDir)) {
$confPaths[] = $appConfDir . '/local.php';
$dataPath = $appConfDir . '/data';
if (!is_dir($dataPath . '/cache')) {
if (!mkdir($concurrentDirectory = $dataPath . '/cache') && !is_dir($concurrentDirectory)) {
throw new \RuntimeException(sprintf('Directory "%s" was not created', $concurrentDirectory));
}
}
}
return array(
'modules' => array(
return [
'modules' => [
'Zend\Mvc\Console',
'Zend\I18n',
'Zend\Mail',
'Zend\Log',
'Monarc\Core',
'Monarc\FrontOffice',
'Zend\Cache',
'Zend\Form',
'Zend\InputFilter',
'Zend\Filter',
'Zend\Paginator',
'Zend\Hydrator',
'Zend\Di',
'Zend\Router',
'Zend\Validator',
'DoctrineModule',
'DoctrineORMModule',
'MonarcCore',
'MonarcFO',
),
'module_listener_options' => array(
'module_paths' => array(
],
'module_listener_options' => [
'module_paths' => [
'./module',
'./vendor'
),
'config_glob_paths' => $confpaths,
'config_cache_enabled' => ($env == 'production'),
],
'config_glob_paths' => $confPaths,
'config_cache_enabled' => $env === 'production',
'config_cache_key' => 'c8aaaaa11586f8b1bf5565cc6064e70a', // md5('config_cache_key_monarc')
'module_map_cache_enabled' => ($env == 'production'),
'module_map_cache_enabled' => $env === 'production',
'module_map_cache_key' => '664579376c4dcdcaa0bcdd0f7e7bf25b', // md5('module_map_cache_key_monarc'),
'cache_dir' => $datapath.'/cache/',
'check_dependencies' => ($env != 'production'),
),
);
'cache_dir' => $dataPath . '/cache/',
'check_dependencies' => $env !== 'production',
],
];

View File

@ -11,7 +11,11 @@
* file.
*/
$appconfdir = getenv('APP_CONF_DIR') ? getenv('APP_CONF_DIR') : '';
use Doctrine\DBAL\Driver\PDOMySql\Driver;
use Monarc\Core\Service\DoctrineCacheServiceFactory;
use Monarc\Core\Service\DoctrineLoggerFactory;
$appconfdir = getenv('APP_CONF_DIR') ?? '';
$datapath = "data";
if( ! empty($appconfdir) ){
@ -22,14 +26,14 @@ return array(
// DOCTRINE CONF
'service_manager' => array(
'factories' => array(
'doctrine.cache.mycache' => 'MonarcCore\Service\DoctrineCacheServiceFactory',
'doctrine.monarc_logger' => 'MonarcCore\Service\DoctrineLoggerFactory',
'doctrine.cache.mycache' => DoctrineCacheServiceFactory::class,
'doctrine.monarc_logger' => DoctrineLoggerFactory::class,
),
),
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
'driverClass' => Driver::class,
'params' => array(
'host' => 'localhost',
'port' => 3306,
@ -45,7 +49,7 @@ return array(
),
),
'orm_cli' => array(
'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
'driverClass' => Driver::class,
'params' => array(
'host' => 'localhost',
'port' => 3306,

View File

View File

0
data/cache/.gitkeep vendored Normal file
View File

0
data/json/.gitkeep Normal file
View File

File diff suppressed because one or more lines are too long

View File

@ -1,8 +1,8 @@
-- MySQL dump 10.15 Distrib 10.0.38-MariaDB, for debian-linux-gnu (x86_64)
-- MySQL dump 10.16 Distrib 10.1.41-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: localhost Database: monarc_common
-- ------------------------------------------------------
-- Server version 10.0.38-MariaDB-0ubuntu0.16.04.1
-- Server version 10.1.41-MariaDB-0ubuntu0.18.04.1
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@ -23,27 +23,28 @@ DROP TABLE IF EXISTS `amvs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `amvs` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`uuid` char(36) NOT NULL,
`vulnerability_id` char(36) NOT NULL,
`threat_id` char(36) NOT NULL,
`asset_id` char(36) NOT NULL,
`anr_id` int(11) unsigned DEFAULT NULL,
`asset_id` int(11) unsigned DEFAULT NULL,
`threat_id` int(11) unsigned DEFAULT NULL,
`vulnerability_id` int(11) unsigned DEFAULT NULL,
`position` int(11) DEFAULT '1',
`status` int(11) DEFAULT '1',
`creator` varchar(255) DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`updater` varchar(255) DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
PRIMARY KEY (`uuid`),
KEY `anr_id` (`anr_id`),
KEY `asset_id` (`asset_id`),
KEY `threat_id` (`threat_id`),
KEY `vulnerability_id` (`vulnerability_id`),
KEY `uuid` (`uuid`),
CONSTRAINT `amvs_ibfk_1` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE,
CONSTRAINT `amvs_ibfk_2` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`id`) ON DELETE CASCADE,
CONSTRAINT `amvs_ibfk_3` FOREIGN KEY (`threat_id`) REFERENCES `threats` (`id`) ON DELETE CASCADE,
CONSTRAINT `amvs_ibfk_4` FOREIGN KEY (`vulnerability_id`) REFERENCES `vulnerabilities` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=11985 DEFAULT CHARSET=utf8;
CONSTRAINT `amvs_ibfk_5` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`uuid`) ON DELETE CASCADE,
CONSTRAINT `amvs_ibfk_6` FOREIGN KEY (`threat_id`) REFERENCES `threats` (`uuid`) ON DELETE CASCADE,
CONSTRAINT `amvs_ibfk_7` FOREIGN KEY (`vulnerability_id`) REFERENCES `vulnerabilities` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@ -103,13 +104,13 @@ DROP TABLE IF EXISTS `anrs_objects`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `anrs_objects` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`object_id` char(36) NOT NULL,
`anr_id` int(11) unsigned DEFAULT NULL,
`object_id` int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `anr_id` (`anr_id`),
KEY `object_id` (`object_id`),
CONSTRAINT `anrs_objects_ibfk_1` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE,
CONSTRAINT `anrs_objects_ibfk_2` FOREIGN KEY (`object_id`) REFERENCES `objects` (`id`) ON DELETE CASCADE
CONSTRAINT `anrs_objects_ibfk_2` FOREIGN KEY (`object_id`) REFERENCES `objects` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1535 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
@ -145,7 +146,7 @@ DROP TABLE IF EXISTS `assets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `assets` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`uuid` char(36) NOT NULL,
`anr_id` int(11) unsigned DEFAULT '0',
`mode` tinyint(4) DEFAULT '1',
`type` tinyint(4) DEFAULT '1',
@ -163,11 +164,12 @@ CREATE TABLE `assets` (
`created_at` datetime DEFAULT NULL,
`updater` varchar(255) DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
PRIMARY KEY (`uuid`),
KEY `anr_id` (`anr_id`,`code`),
KEY `anr_id_2` (`anr_id`),
KEY `uuid` (`uuid`),
CONSTRAINT `assets_ibfk_1` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=357 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@ -178,15 +180,13 @@ DROP TABLE IF EXISTS `assets_models`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `assets_models` (
`asset_id` int(11) unsigned NOT NULL,
`model_id` int(11) unsigned NOT NULL,
`asset_id` char(36) NOT NULL,
PRIMARY KEY (`asset_id`,`model_id`),
KEY `asset_id` (`asset_id`),
KEY `model_id` (`model_id`),
CONSTRAINT `assets_models_ibfk_1` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`id`),
CONSTRAINT `assets_models_ibfk_2` FOREIGN KEY (`model_id`) REFERENCES `models` (`id`),
CONSTRAINT `assets_models_ibfk_3` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`id`) ON DELETE CASCADE,
CONSTRAINT `assets_models_ibfk_4` FOREIGN KEY (`model_id`) REFERENCES `models` (`id`) ON DELETE CASCADE
CONSTRAINT `assets_models_ibfk_4` FOREIGN KEY (`model_id`) REFERENCES `models` (`id`) ON DELETE CASCADE,
CONSTRAINT `assets_models_ibfk_5` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
@ -279,9 +279,9 @@ DROP TABLE IF EXISTS `instances`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `instances` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`object_id` char(36) DEFAULT NULL,
`asset_id` char(36) NOT NULL,
`anr_id` int(11) unsigned DEFAULT NULL,
`asset_id` int(11) unsigned DEFAULT NULL,
`object_id` int(11) unsigned DEFAULT NULL,
`root_id` int(11) unsigned DEFAULT NULL,
`parent_id` int(11) unsigned DEFAULT NULL,
`name1` varchar(255) DEFAULT NULL,
@ -309,15 +309,15 @@ CREATE TABLE `instances` (
`dh` tinyint(4) DEFAULT '0',
PRIMARY KEY (`id`),
KEY `anr_id` (`anr_id`),
KEY `asset_id` (`asset_id`),
KEY `object_id` (`object_id`),
KEY `root_id` (`root_id`),
KEY `parent_id` (`parent_id`),
KEY `asset_id` (`asset_id`),
KEY `object_id` (`object_id`),
CONSTRAINT `instances_ibfk_1` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_ibfk_2` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_ibfk_3` FOREIGN KEY (`object_id`) REFERENCES `objects` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_ibfk_4` FOREIGN KEY (`root_id`) REFERENCES `instances` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_ibfk_5` FOREIGN KEY (`parent_id`) REFERENCES `instances` (`id`) ON DELETE CASCADE
CONSTRAINT `instances_ibfk_5` FOREIGN KEY (`parent_id`) REFERENCES `instances` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_ibfk_6` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`uuid`) ON DELETE CASCADE,
CONSTRAINT `instances_ibfk_7` FOREIGN KEY (`object_id`) REFERENCES `objects` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
@ -330,9 +330,9 @@ DROP TABLE IF EXISTS `instances_consequences`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `instances_consequences` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`object_id` char(36) DEFAULT NULL,
`anr_id` int(11) unsigned DEFAULT '0',
`instance_id` int(11) unsigned DEFAULT '0',
`object_id` int(11) unsigned DEFAULT '0',
`scale_impact_type_id` int(11) unsigned DEFAULT '0',
`is_hidden` tinyint(4) DEFAULT '0',
`locally_touched` tinyint(4) DEFAULT '0',
@ -346,11 +346,9 @@ CREATE TABLE `instances_consequences` (
PRIMARY KEY (`id`),
KEY `anr_id` (`anr_id`),
KEY `instance_id` (`instance_id`),
KEY `object_id` (`object_id`),
KEY `scale_impact_type_id` (`scale_impact_type_id`),
CONSTRAINT `instances_consequences_ibfk_1` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_consequences_ibfk_2` FOREIGN KEY (`instance_id`) REFERENCES `instances` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_consequences_ibfk_3` FOREIGN KEY (`object_id`) REFERENCES `objects` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_consequences_ibfk_4` FOREIGN KEY (`scale_impact_type_id`) REFERENCES `scales_impact_types` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
@ -364,12 +362,12 @@ DROP TABLE IF EXISTS `instances_risks`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `instances_risks` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`amv_id` char(36) DEFAULT NULL,
`vulnerability_id` char(36) NOT NULL,
`threat_id` char(36) NOT NULL,
`asset_id` char(36) NOT NULL,
`anr_id` int(11) unsigned DEFAULT NULL,
`amv_id` int(11) unsigned DEFAULT NULL,
`specific` tinyint(4) DEFAULT '0',
`asset_id` int(11) unsigned DEFAULT NULL,
`threat_id` int(11) unsigned DEFAULT NULL,
`vulnerability_id` int(11) unsigned DEFAULT NULL,
`mh` tinyint(4) NOT NULL DEFAULT '1',
`threat_rate` int(11) NOT NULL DEFAULT '-1',
`vulnerability_rate` int(11) NOT NULL DEFAULT '-1',
@ -389,17 +387,17 @@ CREATE TABLE `instances_risks` (
`instance_id` int(11) unsigned DEFAULT '0',
PRIMARY KEY (`id`),
KEY `anr_id` (`anr_id`),
KEY `amv_id` (`amv_id`),
KEY `instance_id` (`instance_id`),
KEY `asset_id` (`asset_id`),
KEY `threat_id` (`threat_id`),
KEY `vulnerability_id` (`vulnerability_id`),
KEY `instance_id` (`instance_id`),
KEY `amv_id` (`amv_id`),
CONSTRAINT `instances_risks_ibfk_1` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_risks_ibfk_2` FOREIGN KEY (`amv_id`) REFERENCES `amvs` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_risks_ibfk_4` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_risks_ibfk_5` FOREIGN KEY (`threat_id`) REFERENCES `threats` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_risks_ibfk_6` FOREIGN KEY (`vulnerability_id`) REFERENCES `vulnerabilities` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_risks_ibfk_7` FOREIGN KEY (`instance_id`) REFERENCES `instances` (`id`) ON DELETE CASCADE
CONSTRAINT `instances_risks_ibfk_10` FOREIGN KEY (`vulnerability_id`) REFERENCES `vulnerabilities` (`uuid`) ON DELETE CASCADE,
CONSTRAINT `instances_risks_ibfk_11` FOREIGN KEY (`amv_id`) REFERENCES `amvs` (`uuid`) ON DELETE CASCADE,
CONSTRAINT `instances_risks_ibfk_7` FOREIGN KEY (`instance_id`) REFERENCES `instances` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_risks_ibfk_8` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`uuid`) ON DELETE CASCADE,
CONSTRAINT `instances_risks_ibfk_9` FOREIGN KEY (`threat_id`) REFERENCES `threats` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
@ -412,9 +410,9 @@ DROP TABLE IF EXISTS `instances_risks_op`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `instances_risks_op` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`object_id` char(36) DEFAULT NULL,
`anr_id` int(11) unsigned DEFAULT NULL,
`instance_id` int(11) unsigned DEFAULT NULL,
`object_id` int(11) unsigned DEFAULT NULL,
`rolf_risk_id` int(11) unsigned DEFAULT NULL,
`risk_cache_code` char(100) DEFAULT NULL,
`risk_cache_label1` varchar(255) DEFAULT NULL,
@ -457,12 +455,12 @@ CREATE TABLE `instances_risks_op` (
PRIMARY KEY (`id`),
KEY `anr_id` (`anr_id`),
KEY `instance_id` (`instance_id`),
KEY `object_id` (`object_id`),
KEY `rolf_risk_id` (`rolf_risk_id`),
KEY `object_id` (`object_id`),
CONSTRAINT `instances_risks_op_ibfk_1` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_risks_op_ibfk_2` FOREIGN KEY (`instance_id`) REFERENCES `instances` (`id`) ON DELETE CASCADE,
CONSTRAINT `instances_risks_op_ibfk_3` FOREIGN KEY (`rolf_risk_id`) REFERENCES `rolf_risks` (`id`) ON DELETE SET NULL,
CONSTRAINT `instances_risks_op_ibfk_4` FOREIGN KEY (`object_id`) REFERENCES `objects` (`id`) ON DELETE CASCADE
CONSTRAINT `instances_risks_op_ibfk_4` FOREIGN KEY (`object_id`) REFERENCES `objects` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
@ -506,17 +504,17 @@ DROP TABLE IF EXISTS `measures_amvs`;
CREATE TABLE `measures_amvs` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`measure_id` char(36) NOT NULL,
`amv_id` int(11) unsigned DEFAULT NULL,
`creator` varchar(255) DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`updater` varchar(255) DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
`amv_id` char(36) NOT NULL,
PRIMARY KEY (`id`),
KEY `amv_id` (`amv_id`),
KEY `measure_id` (`measure_id`),
CONSTRAINT `measures_amvs_ibfk_1` FOREIGN KEY (`amv_id`) REFERENCES `amvs` (`id`) ON DELETE CASCADE,
CONSTRAINT `measures_amvs_ibfk_2` FOREIGN KEY (`measure_id`) REFERENCES `measures` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=37164 DEFAULT CHARSET=utf8;
KEY `amv_id` (`amv_id`),
CONSTRAINT `measures_amvs_ibfk_2` FOREIGN KEY (`measure_id`) REFERENCES `measures` (`uuid`) ON DELETE CASCADE,
CONSTRAINT `measures_amvs_ibfk_3` FOREIGN KEY (`amv_id`) REFERENCES `amvs` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=39861 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@ -598,7 +596,7 @@ CREATE TABLE `models` (
PRIMARY KEY (`id`),
KEY `anr_id` (`anr_id`),
CONSTRAINT `models_ibfk_1` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@ -609,9 +607,9 @@ DROP TABLE IF EXISTS `objects`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `objects` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`uuid` char(36) NOT NULL,
`asset_id` char(36) NOT NULL,
`object_category_id` int(11) unsigned DEFAULT NULL,
`asset_id` int(11) unsigned DEFAULT NULL,
`rolf_tag_id` int(11) unsigned DEFAULT NULL,
`mode` tinyint(4) DEFAULT '1',
`scope` tinyint(4) DEFAULT '1',
@ -632,16 +630,17 @@ CREATE TABLE `objects` (
`updater` varchar(255) DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
`anr_id` int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
PRIMARY KEY (`uuid`),
KEY `object_category_id` (`object_category_id`),
KEY `asset_id` (`asset_id`),
KEY `rolf_tag_id` (`rolf_tag_id`),
KEY `anr_id` (`anr_id`),
KEY `asset_id` (`asset_id`),
KEY `uuid` (`uuid`),
CONSTRAINT `objects_ibfk_2` FOREIGN KEY (`object_category_id`) REFERENCES `objects_categories` (`id`) ON DELETE SET NULL,
CONSTRAINT `objects_ibfk_3` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`id`) ON DELETE CASCADE,
CONSTRAINT `objects_ibfk_5` FOREIGN KEY (`rolf_tag_id`) REFERENCES `rolf_tags` (`id`) ON DELETE SET NULL,
CONSTRAINT `objects_ibfk_7` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1004 DEFAULT CHARSET=utf8;
CONSTRAINT `objects_ibfk_7` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE,
CONSTRAINT `objects_ibfk_8` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@ -685,9 +684,9 @@ DROP TABLE IF EXISTS `objects_objects`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `objects_objects` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`child_id` char(36) DEFAULT NULL,
`father_id` char(36) DEFAULT NULL,
`anr_id` int(11) unsigned DEFAULT NULL,
`father_id` int(11) unsigned DEFAULT NULL,
`child_id` int(11) unsigned DEFAULT NULL,
`creator` varchar(255) DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`updater` varchar(255) DEFAULT NULL,
@ -698,8 +697,8 @@ CREATE TABLE `objects_objects` (
KEY `father_id` (`father_id`),
KEY `child_id` (`child_id`),
CONSTRAINT `objects_objects_ibfk_1` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE,
CONSTRAINT `objects_objects_ibfk_2` FOREIGN KEY (`father_id`) REFERENCES `objects` (`id`) ON DELETE CASCADE,
CONSTRAINT `objects_objects_ibfk_3` FOREIGN KEY (`child_id`) REFERENCES `objects` (`id`) ON DELETE CASCADE
CONSTRAINT `objects_objects_ibfk_2` FOREIGN KEY (`father_id`) REFERENCES `objects` (`uuid`) ON DELETE CASCADE,
CONSTRAINT `objects_objects_ibfk_3` FOREIGN KEY (`child_id`) REFERENCES `objects` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=665 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
@ -978,7 +977,7 @@ CREATE TABLE `soacategory` (
PRIMARY KEY (`id`),
KEY `referential_uuid` (`referential_uuid`),
CONSTRAINT `soacategory_ibfk_1` FOREIGN KEY (`referential_uuid`) REFERENCES `referentials` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=78 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB AUTO_INCREMENT=89 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@ -1013,7 +1012,7 @@ DROP TABLE IF EXISTS `threats`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `threats` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`uuid` char(36) NOT NULL,
`anr_id` int(11) unsigned DEFAULT NULL,
`theme_id` int(11) unsigned DEFAULT NULL,
`mode` tinyint(4) DEFAULT '1',
@ -1037,13 +1036,14 @@ CREATE TABLE `threats` (
`created_at` datetime DEFAULT NULL,
`updater` varchar(255) DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
PRIMARY KEY (`uuid`),
UNIQUE KEY `anr_id` (`anr_id`,`code`),
KEY `anr_id_2` (`anr_id`),
KEY `threat_theme_id` (`theme_id`),
KEY `uuid` (`uuid`),
CONSTRAINT `threats_ibfk_1` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE,
CONSTRAINT `threats_ibfk_2` FOREIGN KEY (`theme_id`) REFERENCES `themes` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=211 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@ -1054,15 +1054,13 @@ DROP TABLE IF EXISTS `threats_models`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `threats_models` (
`threat_id` int(11) unsigned NOT NULL,
`model_id` int(11) unsigned NOT NULL,
`threat_id` char(36) NOT NULL,
PRIMARY KEY (`threat_id`,`model_id`),
KEY `threat_id` (`threat_id`),
KEY `model_id` (`model_id`),
CONSTRAINT `threats_models_ibfk_1` FOREIGN KEY (`threat_id`) REFERENCES `threats` (`id`),
CONSTRAINT `threats_models_ibfk_2` FOREIGN KEY (`model_id`) REFERENCES `models` (`id`),
CONSTRAINT `threats_models_ibfk_3` FOREIGN KEY (`threat_id`) REFERENCES `threats` (`id`) ON DELETE CASCADE,
CONSTRAINT `threats_models_ibfk_4` FOREIGN KEY (`model_id`) REFERENCES `models` (`id`) ON DELETE CASCADE
CONSTRAINT `threats_models_ibfk_4` FOREIGN KEY (`model_id`) REFERENCES `models` (`id`) ON DELETE CASCADE,
CONSTRAINT `threats_models_ibfk_5` FOREIGN KEY (`threat_id`) REFERENCES `threats` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
@ -1074,7 +1072,7 @@ DROP TABLE IF EXISTS `vulnerabilities`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `vulnerabilities` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`uuid` char(36) NOT NULL,
`anr_id` int(11) unsigned DEFAULT NULL,
`mode` tinyint(4) DEFAULT '1',
`code` char(100) DEFAULT NULL,
@ -1091,11 +1089,12 @@ CREATE TABLE `vulnerabilities` (
`created_at` datetime DEFAULT NULL,
`updater` varchar(255) DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
PRIMARY KEY (`uuid`),
UNIQUE KEY `anr_id` (`anr_id`,`code`),
KEY `anr_id_2` (`anr_id`),
KEY `uuid` (`uuid`),
CONSTRAINT `vulnerabilities_ibfk_1` FOREIGN KEY (`anr_id`) REFERENCES `anrs` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=5746 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@ -1106,15 +1105,13 @@ DROP TABLE IF EXISTS `vulnerabilities_models`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `vulnerabilities_models` (
`vulnerability_id` int(11) unsigned NOT NULL,
`model_id` int(11) unsigned NOT NULL,
`vulnerability_id` char(36) NOT NULL,
PRIMARY KEY (`vulnerability_id`,`model_id`),
KEY `vulnerability_id` (`vulnerability_id`),
KEY `model_id` (`model_id`),
CONSTRAINT `vulnerabilities_models_ibfk_1` FOREIGN KEY (`vulnerability_id`) REFERENCES `vulnerabilities` (`id`),
CONSTRAINT `vulnerabilities_models_ibfk_2` FOREIGN KEY (`model_id`) REFERENCES `models` (`id`),
CONSTRAINT `vulnerabilities_models_ibfk_3` FOREIGN KEY (`vulnerability_id`) REFERENCES `vulnerabilities` (`id`) ON DELETE CASCADE,
CONSTRAINT `vulnerabilities_models_ibfk_4` FOREIGN KEY (`model_id`) REFERENCES `models` (`id`) ON DELETE CASCADE
CONSTRAINT `vulnerabilities_models_ibfk_4` FOREIGN KEY (`model_id`) REFERENCES `models` (`id`) ON DELETE CASCADE,
CONSTRAINT `vulnerabilities_models_ibfk_5` FOREIGN KEY (`vulnerability_id`) REFERENCES `vulnerabilities` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
@ -1127,4 +1124,4 @@ CREATE TABLE `vulnerabilities_models` (
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2019-04-24 10:31:41
-- Dump completed on 2019-09-12 11:01:07

Binary file not shown.

Binary file not shown.

BIN
deliveries/cases/DE/6.docx Normal file

Binary file not shown.

BIN
deliveries/cases/DE/7.docx Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
deliveries/cases/EN/7.docx Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
deliveries/cases/NE/6.docx Normal file

Binary file not shown.

BIN
deliveries/cases/NE/7.docx Normal file

Binary file not shown.

View File

@ -1,54 +0,0 @@
<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/ZendSkeletonApplication for the canonical source repository
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
/**
* This autoloading setup is really more complicated than it needs to be for most
* applications. The added complexity is simply to reduce the time it takes for
* new developers to be productive with a fresh skeleton. It allows autoloading
* to be correctly configured, regardless of the installation method and keeps
* the use of composer completely optional. This setup should work fine for
* most users, however, feel free to configure autoloading however you'd like.
*/
// Composer autoloading
if (file_exists('vendor/autoload.php')) {
$loader = include 'vendor/autoload.php';
}
if (class_exists('Zend\Loader\AutoloaderFactory')) {
return;
}
$zf2Path = false;
if (is_dir('vendor/ZF2/library')) {
$zf2Path = 'vendor/ZF2/library';
} elseif (getenv('ZF2_PATH')) { // Support for ZF2_PATH environment variable or git submodule
$zf2Path = getenv('ZF2_PATH');
} elseif (get_cfg_var('zf2_path')) { // Support for zf2_path directive value
$zf2Path = get_cfg_var('zf2_path');
}
if ($zf2Path) {
if (isset($loader)) {
$loader->add('Zend', $zf2Path);
$loader->add('ZendXml', $zf2Path);
} else {
include $zf2Path . '/Zend/Loader/AutoloaderFactory.php';
Zend\Loader\AutoloaderFactory::factory(array(
'Zend\Loader\StandardAutoloader' => array(
'autoregister_zf' => true
)
));
}
}
if (!class_exists('Zend\Loader\AutoloaderFactory')) {
throw new RuntimeException('Unable to load ZF2. Run `php composer.phar install` or define a ZF2_PATH environment variable.');
}

View File

@ -1,7 +1,7 @@
{
"name": "MONARC",
"version": "2.8.2",
"description": "MONARC Frontoffice App",
"version": "2.9.1",
"description": "Monarc front office application",
"private": true,
"repository": {
"type": "git",

View File

@ -1,24 +1,34 @@
<?php
/**
* This makes our life easier when dealing with paths. Everything is relative
* to the application root now.
*/
use Zend\Mvc\Application;
chdir(dirname(__DIR__));
// Decline static file requests back to the PHP built-in webserver
if (php_sapi_name() === 'cli-server' && is_file(__DIR__ . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH))) {
return false;
if (php_sapi_name() === 'cli-server') {
$path = realpath(__DIR__ . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
if (__FILE__ !== $path && is_file($path)) {
return false;
}
unset($path);
}
/**
* Default Timezone
*/
if(date_default_timezone_get() != ini_get('date.timezone')){
date_default_timezone_set('Europe/Luxembourg');
}
// Setup autoloading
require 'init_autoloader.php';
require 'vendor/autoload.php';
// Run the application!
Zend\Mvc\Application::init(require 'config/application.config.php')->run();
if (! class_exists(Application::class)) {
throw new RuntimeException(
"Unable to load application.\n"
. "- Type `composer install` if you are developing locally.\n"
);
}
$appConfig = require 'config/application.config.php';
if (file_exists('config/development.config.php')) {
$appConfig = Zend\Stdlib\ArrayUtils::merge($appConfig, include 'config/development.config.php');
}
Application::init($appConfig)->run();

View File

@ -1,18 +0,0 @@
#!/bin/bash
checkout_if_exists() {
if [ -d $1 ]; then
pushd $1 >/dev/null
git checkout $2
popd >/dev/null
fi
}
checkout_if_exists . $1
checkout_if_exists module/MonarcCore $1
checkout_if_exists module/MonarcBO $1
checkout_if_exists module/MonarcFO $1
checkout_if_exists node_modules/ng_backoffice $1
checkout_if_exists node_modules/ng_client $1
checkout_if_exists node_modules/ng_anr $1

View File

@ -1,7 +1,7 @@
#!/bin/bash
# Usage: ./scripts/client-upgrade-db.sh <module> <hostname> <user> <password> <db>
# Example: ./scripts/client-upgrade-db.sh MonarcBO localhost root derp monarc_backoffice
# Example: ./scripts/client-upgrade-db.sh Monarc/BackOffice localhost root derp monarc_backoffice
MODULE=$1
SQLHOST=$2
@ -11,20 +11,20 @@ SQLBASE=$5
path=""
case $MODULE in
"MonarcCore"|"core")
path="module/MonarcCore"
"Monarc/Core"|"core")
path="module/Monarc/Core"
if [ ! -d $path ]; then
path="vendor/monarc/core"
fi
;;
"MonarcFO"|"frontoffice")
path="module/MonarcFO"
"Monarc/FrontOffice"|"frontoffice")
path="module/Monarc/FrontOffice"
if [ ! -d $path ]; then
path="vendor/monarc/frontoffice"
fi
;;
"MonarcBO"|"backoffice")
path="module/MonarcBO"
"Monarc/BackOffice"|"backoffice")
path="module/Monarc/BackOffice"
if [ ! -d $path ]; then
path="vendor/monarc/backoffice"
fi

View File

@ -1,27 +1,12 @@
#!/bin/bash
if [ -d node_modules/ng_backoffice ]; then
pushd node_modules/ng_backoffice
grunt compile_translations
grunt concat
pushd node_modules/ng_client
grunt compile_translations
grunt concat
if [ -d po ]; then
for i in $(ls po/*\.po); do
l=$(basename $i .po)
msgfmt -o ./po/$l.mo -v ./po/$l.po
done;
fi
fi
if [ -d node_modules/ng_client ]; then
pushd node_modules/ng_client
grunt compile_translations
grunt concat
if [ -d po ]; then
for i in $(ls po/*\.po); do
l=$(basename $i .po)
msgfmt -o ./po/$l.mo -v ./po/$l.po
done;
fi
if [ -d po ]; then
for i in $(ls po/*\.po); do
l=$(basename $i .po)
msgfmt -o ./po/$l.mo -v ./po/$l.po
done;
fi

View File

@ -1,22 +1,9 @@
#!/bin/bash
if [ -d node_modules/ng_backoffice ]; then
pushd node_modules/ng_backoffice
pushd node_modules/ng_client
if [ -f node_modules/.bin/grunt ]; then
node_modules/.bin/grunt extract_translations
else
grunt extract_translations
fi
fi
if [ -d node_modules/ng_client ]; then
pushd node_modules/ng_client
if [ -f node_modules/.bin/grunt ]; then
node_modules/.bin/grunt extract_translations
else
grunt extract_translations
fi
if [ -f node_modules/.bin/grunt ]; then
node_modules/.bin/grunt extract_translations
else
grunt extract_translations
fi

View File

@ -1,13 +0,0 @@
# ./get_deliverable.sh <token> <anr_id> <model_id>
clear
echo "======"
echo http://monarcfo/api/client-anr/$2/deliverable?model=$3
echo "======"
curl -H "Token: $1" http://monarcfo/api/client-anr/$2/deliverable?model=$3 > /tmp/exported.docx 2>/dev/null
if grep "errors" /tmp/exported.docx; then
cat /tmp/exported.docx
fi
echo ""

View File

@ -37,68 +37,31 @@ else
find -L public/img -type l -exec rm {} \;
fi
# Link modules resources
if [ -d node_modules/ng_backoffice ]; then
cd public/views/ && find ../../node_modules/ng_backoffice/views -maxdepth 1 -name "*.html" -exec ln -s {} \; 2>/dev/null
cd dialogs/ && find ../../../node_modules/ng_backoffice/views/dialogs -maxdepth 1 -name "*.html" -exec ln -s {} \; 2>/dev/null
cd ../partials/ && find ../../../node_modules/ng_backoffice/views/partials -maxdepth 1 -name "*.html" -exec ln -s {} \; 2>/dev/null
cd ../../js/ && find ../../node_modules/ng_backoffice/src -maxdepth 1 -name "*" -exec ln -s {} \; 2>/dev/null
cd ../css/ && find ../../node_modules/ng_backoffice/css -name "*" -exec ln -s {} \; 2>/dev/null
cd ../img/ && find ../../node_modules/ng_backoffice/img -name "*" -exec ln -s {} \; 2>/dev/null
cd ../flags/ && find ../../node_modules/ng_backoffice/node_modules/ng-country-flags/dist/flags -mindepth 1 -type d -exec ln -s {} \; 2>/dev/null
# Link modules resources. TODO: Replace with Grunt tasks to minify the JS and CSS.
cd public/views/ && find ../../node_modules/ng_client/views -name "*.html" -exec ln -s {} \; 2>/dev/null
cd dialogs/ && find ../../../node_modules/ng_client/views/dialogs -maxdepth 1 -name "*.html" -exec ln -s {} \; 2>/dev/null
cd ../../js/ && find ../../node_modules/ng_client/src -name "*" -exec ln -s {} \; 2>/dev/null
cd ../css/ && find ../../node_modules/ng_client/css -name "*" -exec ln -s {} \; 2>/dev/null
cd ../img/ && find ../../node_modules/ng_client/img -name "*" -exec ln -s {} \; 2>/dev/null
cd ../flags/ && find ../../node_modules/ng_client/node_modules/ng-country-flags/dist/flags -mindepth 1 -type d -exec ln -s {} \; 2>/dev/null
if [ -d ../../node_modules/ng_anr ]; then
cd ../js/
mkdir -p anr
cd anr && find ../../../node_modules/ng_anr/src -type f -maxdepth 1 -name "*" -exec ln -s {} \; 2>/dev/null
cd ..
cd ../js/
mkdir -p anr
cd anr && find ../../../node_modules/ng_anr/src -type f -maxdepth 1 -name "*" -exec ln -s {} \; 2>/dev/null
cd ..
cd ../views/
mkdir -p anr
cd anr && find ../../../node_modules/ng_anr/views -type f -maxdepth 1 -name "*" -exec ln -s {} \; 2>/dev/null
cd ..
cd ../views/
mkdir -p anr
cd anr && find ../../../node_modules/ng_anr/views -type f -maxdepth 1 -name "*" -exec ln -s {} \; 2>/dev/null
cd ..
cd ../css/
mkdir -p anr
cd anr && find ../../../node_modules/ng_anr/css -type f -maxdepth 1 -name "*" -exec ln -s {} \; 2>/dev/null
cd ..
fi
cd ../css/
mkdir -p anr
cd anr && find ../../../node_modules/ng_anr/css -type f -maxdepth 1 -name "*" -exec ln -s {} \; 2>/dev/null
cd ..
cd ../..
cd ../..
pushd node_modules/ng_backoffice
grunt concat
popd
fi
if [ -d node_modules/ng_client ]; then
cd public/views/ && find ../../node_modules/ng_client/views -name "*.html" -exec ln -s {} \; 2>/dev/null
cd dialogs/ && find ../../../node_modules/ng_client/views/dialogs -maxdepth 1 -name "*.html" -exec ln -s {} \; 2>/dev/null
cd ../../js/ && find ../../node_modules/ng_client/src -name "*" -exec ln -s {} \; 2>/dev/null
cd ../css/ && find ../../node_modules/ng_client/css -name "*" -exec ln -s {} \; 2>/dev/null
cd ../img/ && find ../../node_modules/ng_client/img -name "*" -exec ln -s {} \; 2>/dev/null
cd ../flags/ && find ../../node_modules/ng_client/node_modules/ng-country-flags/dist/flags -mindepth 1 -type d -exec ln -s {} \; 2>/dev/null
if [ -d ../../node_modules/ng_anr ]; then
cd ../js/
mkdir -p anr
cd anr && find ../../../node_modules/ng_anr/src -type f -maxdepth 1 -name "*" -exec ln -s {} \; 2>/dev/null
cd ..
cd ../views/
mkdir -p anr
cd anr && find ../../../node_modules/ng_anr/views -type f -maxdepth 1 -name "*" -exec ln -s {} \; 2>/dev/null
cd ..
cd ../css/
mkdir -p anr
cd anr && find ../../../node_modules/ng_anr/css -type f -maxdepth 1 -name "*" -exec ln -s {} \; 2>/dev/null
cd ..
fi
cd ../..
pushd node_modules/ng_client
grunt concat
popd
fi
pushd node_modules/ng_client
grunt concat
popd

View File

@ -1,12 +0,0 @@
#!/bin/bash
npm install
cd node_modules/ng_backoffice
npm install
cd ../..
# Compile stuff needed for the minified frontend
./scripts/compile_translations.sh
./scripts/link_modules_resources.sh

View File

@ -1,14 +1,5 @@
#!/bin/bash
if [ -d module/MonarcCore ]; then
php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcCore/migrations/phinx.php
fi
if [ -d module/MonarcBO ]; then
php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcBO/migrations/phinx.php
fi
if [ -d module/MonarcFO ]; then
php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcFO/migrations/phinx.php
fi
php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/Monarc/Core/migrations/phinx.php
php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/Monarc/FrontOffice/migrations/phinx.php

View File

@ -1,5 +1,9 @@
#!/usr/bin/env bash
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
bypass=0
forceClearCache=0
while getopts "hbc" option
@ -31,14 +35,8 @@ pull_if_exists() {
}
migrate_module() {
if [[ -d $2 ]]; then
$1 ./vendor/robmorgan/phinx/bin/phinx migrate -c ./$2/migrations/phinx.php
if [[ -d "${2}/hooks" && -f "${2}/.git/hooks/pre-commit.sh" ]]; then
cd $2/.git/hooks
ln -s ../../hooks/pre-commit.sh pre-commit 2>/dev/null
chmod u+x pre-commit
cd $2
fi
if [[ -d $1 ]]; then
php ./vendor/robmorgan/phinx/bin/phinx migrate -c ./$1/migrations/phinx.php
fi
}
@ -47,70 +45,35 @@ if [[ ! -f "config/autoload/local.php" && $bypass -eq 0 ]]; then
exit 1
fi
phpcommand=`command -v php`
if [[ -z "$phpcommand" ]]; then
echo "PHP must be installed"
exit 1
fi
gitcommand=`command -v git`
if [[ -z "$gitcommand" ]]; then
echo "Git must be installed"
exit 1
fi
$gitcommand pull
git pull
if [ $? != 0 ]; then
echo "A problem occurred while retrieving remote files from repository."
exit 1
fi
composercommand=`command -v composer`
if [[ -z "$composercommand" ]]; then
if [[ ! -f "composer.phar" ]]; then
# https://getcomposer.org/download/
# https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md
EXPECTED_SIGNATURE=$(wget -q -O - https://composer.github.io/installer.sig)
$phpcommand -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
ACTUAL_SIGNATURE=$($phpcommand -r "echo hash_file('SHA384', 'composer-setup.php');")
if [[ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]]; then
echo "Error download composer (different hash)"
rm composer-setup.php
exit 1
fi
rm composer-setup.php
$phpcommand composer-setup.php --quiet
composer install -o
pathCore="module/Monarc/Core"
pathFO="module/Monarc/FrontOffice"
if [[ $bypass -eq 0 ]]; then
if [ -e data/backup/credentialsmysql.cnf ]; then
backupdir=data/backup/$(date +"%Y%m%d_%H%M%S")
mkdir $backupdir
echo -e "${GREEN}Dumping database to $backupdir...${NC}"
mysqldump --defaults-file=data/backup/credentialsmysql.cnf --databases monarc_common > $backupdir/dump-common.sql
mysqldump --defaults-file=data/backup/credentialsmysql.cnf --databases monarc_cli > $backupdir/dump-cli.sql
else
echo -e "${GREEN}Database backup not configured. Skipping.${NC}"
fi
$phpcommand composer.phar update -o
else
$composercommand update -o
fi
currentPath=`pwd`
pathCore="module/MonarcCore"
if [ -d $pathCore ]; then
pull_if_exists $pathCore
else
pathCore="vendor/monarc/core"
fi
pathBO="module/MonarcBO"
if [ -d $pathBO ]; then
pull_if_exists $pathBO
else
pathBO="vendor/monarc/backoffice"
fi
pathFO="module/MonarcFO"
if [ -d $pathFO ]; then
pull_if_exists $pathFO
else
pathFO="vendor/monarc/frontoffice"
migrate_module $pathCore
migrate_module $pathFO
fi
if [[ -d node_modules && -d node_modules/ng_anr ]]; then
if [[ -d node_modules/ng_anr/.git ]]; then
pull_if_exists node_modules/ng_backoffice
pull_if_exists node_modules/ng_client
pull_if_exists node_modules/ng_anr
else
@ -120,43 +83,19 @@ else
npm install
fi
if [[ $bypass -eq 0 ]]; then
if [ -e data/backup/credentialsmysql.cnf ]; then
backupdir=data/backup/$(date +"%Y%m%d_%H%M%S")
mkdir $backupdir
echo -e "\e[32mDumping database to $backupdir...\e[0m"
mysqldump --defaults-file=data/backup/credentialsmysql.cnf --databases monarc_common > $backupdir/dump-common.sql
mysqldump --defaults-file=data/backup/credentialsmysql.cnf --databases monarc_cli > $backupdir/dump-cli.sql
else
echo -e "\e[93mDatabase backup not configured. Skipping.\e[0m"
fi
migrate_module $phpcommand $pathCore
migrate_module $phpcommand $pathBO
migrate_module $phpcommand $pathFO
fi
if [ -d node_modules/ng_backoffice ]; then
cd node_modules/ng_backoffice
npm install
cd ../..
fi
if [ -d node_modules/ng_client ]; then
cd node_modules/ng_client
npm install
cd ../..
fi
cd node_modules/ng_client
npm install
cd ../..
./scripts/link_modules_resources.sh
./scripts/compile_translations.sh
if [[ $forceClearCache -eq 1 ]]; then
# Clear doctrine cache
# Move to MonarcCore Module.php
$phpcommand ./public/index.php orm:clear-cache:metadata
$phpcommand ./public/index.php orm:clear-cache:query
$phpcommand ./public/index.php orm:clear-cache:result
# Move to Monarc/Core Module.php
php ./public/index.php orm:clear-cache:metadata
php ./public/index.php orm:clear-cache:query
php ./public/index.php orm:clear-cache:result
# Clear ZF2 cache
touch ./data/cache/upgrade && chmod 777 ./data/cache/upgrade
@ -166,3 +105,5 @@ if [[ $forceClearCache -eq 0 && $bypass -eq 0 ]]; then
# Clear ZF2 cache
touch ./data/cache/upgrade && chmod 777 ./data/cache/upgrade
fi
exit 0

View File

@ -1,11 +1,5 @@
#!/bin/bash
php ./vendor/robmorgan/phinx/bin/phinx migrate -c ./module/MonarcCore/migrations/phinx.php
php ./vendor/robmorgan/phinx/bin/phinx migrate -c ./module/Monarc/Core/migrations/phinx.php
if [ -d module/MonarcBO ]; then
php ./vendor/robmorgan/phinx/bin/phinx migrate -c ./module/MonarcBO/migrations/phinx.php
fi
if [ -d module/MonarcFO ]; then
php ./vendor/robmorgan/phinx/bin/phinx migrate -c ./module/MonarcFO/migrations/phinx.php
fi
php ./vendor/robmorgan/phinx/bin/phinx migrate -c ./module/Monarc/FrontOffice/migrations/phinx.php

View File

@ -1,19 +0,0 @@
#!/bin/bash
oldurl_if_exists() {
if [ -d $1 ]; then
pushd $1 >/dev/null
sed -i -e 's/CASES-LU/monarc-project/g' ./.git/config $2
git config core.fileMode false
popd >/dev/nul
fi
}
oldurl_if_exists . $1
oldurl_if_exists module/MonarcCore $1
oldurl_if_exists module/MonarcBO $1
oldurl_if_exists module/MonarcFO $1
oldurl_if_exists node_modules/ng_backoffice $1
oldurl_if_exists node_modules/ng_client $1
oldurl_if_exists node_modules/ng_anr $1

View File

@ -26,7 +26,6 @@ MONARC will be automatically deployed in an Ubuntu Bionic Server.
$ git clone https://github.com/monarc-project/MonarcAppFO
$ cd MonarcAppFO/vagrant
$ export GITHUB_AUTH_TOKEN=<your-github-auth-token>
$ vagrant up
Once the VM will be configured by Vagrant, go to the address

3
vagrant/Vagrantfile vendored
View File

@ -11,7 +11,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "ubuntu/bionic64"
config.vm.provision :shell, path: "bootstrap.sh", args: "#{ENV['GITHUB_AUTH_TOKEN']}"
config.vm.provision :shell, path: "bootstrap.sh"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
@ -22,6 +22,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
config.vm.network :forwarded_port, guest: 80, host: 5001
config.vm.network :forwarded_port, guest: 3306, host: 3306
# Create a private network, which allows host-only access to the machine
# using a specific IP.

View File

@ -1,20 +1,17 @@
#! /usr/bin/env bash
# Variables
GITHUB_AUTH_TOKEN=$1
TAG=''
PATH_TO_MONARC='/home/ubuntu/monarc'
ENVIRONMENT='PRODUCTION'
APPENV='local'
ENVIRONMENT='development'
DBHOST='localhost'
DBNAME_COMMON='monarc_common'
DBNAME_CLI='monarc_cli'
DBUSER_ADMIN='root'
DBPASSWORD_ADMIN="$(openssl rand -hex 32)"
DBPASSWORD_ADMIN="root"
DBUSER_MONARC='sqlmonarcuser'
DBPASSWORD_MONARC="$(openssl rand -hex 32)"
DBPASSWORD_MONARC="sqlmonarcuser"
upload_max_filesize=200M
post_max_size=50M
@ -22,6 +19,8 @@ max_execution_time=100
max_input_time=223
memory_limit=512M
PHP_INI=/etc/php/7.2/apache2/php.ini
X_DEBUG_CFG=/etc/php/7.2/apache2/conf.d/20-xdebug.ini
MARIA_DB_CFG=/etc/mysql/mariadb.conf.d/50-server.cnf
export DEBIAN_FRONTEND=noninteractive
export LANGUAGE=en_US.UTF-8
@ -30,17 +29,17 @@ export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales
echo -e "\n--- Installing now… ---\n"
echo -e "\n--- Updating packages list… ---\n"
apt-get update
apt-get update && apt-get upgrade
echo -e "\n--- Install base packages… ---\n"
apt-get -y install vim zip unzip git gettext curl gsfonts > /dev/null
echo -e "\n--- Install MariaDB specific packages and settings… ---\n"
# echo "mysql-server mysql-server/root_password password $DBPASSWORD_ADMIN" | debconf-set-selections
# echo "mysql-server mysql-server/root_password_again password $DBPASSWORD_ADMIN" | debconf-set-selections
apt-get -y install mariadb-server mariadb-client > /dev/null
# Secure the MariaDB installation (especially by setting a strong root password)
systemctl restart mariadb.service > /dev/null
@ -68,10 +67,20 @@ expect -f - <<-EOF
send -- "y\r"
expect eof
EOF
sudo apt-get purge -y expect > /dev/null 2>&1
sudo apt-get purge -y expect php-xdebug > /dev/null 2>&1
echo -e "\n--- Configuring… ---\n"
sed -i "s/skip-external-locking/#skip-external-locking/g" $MARIA_DB_CFG
sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" $MARIA_DB_CFG
echo -e "\n--- Setting up our MariaDB user for MONARC… ---\n"
mysql -u root -p$DBPASSWORD_ADMIN -e "CREATE USER '$DBUSER_MONARC'@'%' IDENTIFIED BY '$DBPASSWORD_MONARC';"
mysql -u root -p$DBPASSWORD_ADMIN -e "GRANT ALL PRIVILEGES ON * . * TO '$DBUSER_MONARC'@'%';"
mysql -u root -p$DBPASSWORD_ADMIN -e "FLUSH PRIVILEGES;"
systemctl restart mariadb.service > /dev/null
echo -e "\n--- Installing PHP-specific packages… ---\n"
apt-get -y install php apache2 libapache2-mod-php php-curl php-gd php-mysql php-pear php-apcu php-xml php-mbstring php-intl php-imagick php-zip > /dev/null
apt-get -y install php apache2 libapache2-mod-php php-curl php-gd php-mysql php-pear php-apcu php-xml php-mbstring php-intl php-imagick php-zip php-xdebug > /dev/null
echo -e "\n--- Configuring PHP… ---\n"
for key in upload_max_filesize post_max_size max_execution_time max_input_time memory_limit
@ -79,6 +88,14 @@ do
sed -i "s/^\($key\).*/\1 = $(eval echo \${$key})/" $PHP_INI
done
echo -e "\n--- Configuring Xdebug for development ---\n"
cat > $X_DEBUG_CFG <<EOF
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.idekey=IDEKEY
EOF
echo -e "\n--- Enabling mod-rewrite and ssl… ---\n"
a2enmod rewrite > /dev/null 2>&1
a2enmod ssl > /dev/null 2>&1
@ -87,14 +104,6 @@ a2enmod headers > /dev/null 2>&1
echo -e "\n--- Allowing Apache override to all ---\n"
sudo sed -i "s/AllowOverride None/AllowOverride All/g" /etc/apache2/apache2.conf
#echo -e "\n--- We want to see the PHP errors, turning them on ---\n"
#sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php/7.0/apache2/php.ini
#sed -i "s/display_errors = .*/display_errors = On/" /etc/php/7.0/apache2/php.ini
echo -e "\n--- Setting up our MariaDB user for MONARC… ---\n"
mysql -u root -p$DBPASSWORD_ADMIN -e "CREATE USER '$DBUSER_MONARC'@'localhost' IDENTIFIED BY '$DBPASSWORD_MONARC';"
mysql -u root -p$DBPASSWORD_ADMIN -e "GRANT ALL PRIVILEGES ON * . * TO '$DBUSER_MONARC'@'localhost';"
mysql -u root -p$DBPASSWORD_ADMIN -e "FLUSH PRIVILEGES;"
echo -e "\n--- Installing composer… ---\n"
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer > /dev/null 2>&1
@ -107,45 +116,34 @@ composer self-update
echo -e "\n--- Installing MONARC… ---\n"
cd $PATH_TO_MONARC
git config core.fileMode false
if [ "$TAG" != '' ]; then
# Checkout the latest tag
#latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
git checkout $TAG
fi
echo -e "\n--- Retrieving MONARC libraries… ---\n"
composer config -g github-oauth.github.com $GITHUB_AUTH_TOKEN
echo -e "\n--- Installing the dependencies… ---\n"
composer install -o
# Modules
mkdir module
cd module
ln -s ./../vendor/monarc/core MonarcCore
ln -s ./../vendor/monarc/frontoffice MonarcFO
cd $PATH_TO_MONARC
cd module/MonarcFO/
git config core.fileMode false
cd $PATH_TO_MONARC
cd module/MonarcCore/
git config core.fileMode false
# Make modules symlinks.
mkdir -p module/Monarc
cd module/Monarc
ln -s ./../../vendor/monarc/core Core
ln -s ./../../vendor/monarc/frontoffice FrontOffice
cd $PATH_TO_MONARC
# Interfaces
# Front-end
mkdir node_modules
cd node_modules
git clone --config core.filemode=false https://github.com/monarc-project/ng-client.git ng_client > /dev/null 2>&1
git clone --config core.fileMode=false https://github.com/monarc-project/ng-client.git ng_client > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "\nERROR: unable to clone the ng-client repository\n"
exit 1;
fi
git clone --config core.filemode=false https://github.com/monarc-project/ng-anr.git ng_anr > /dev/null 2>&1
git clone --config core.fileMode=false https://github.com/monarc-project/ng-anr.git ng_anr > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "\nERROR: unable to clone the ng-anr repository\n"
exit 1;
fi
cd ..
chown -R www-data $PATH_TO_MONARC
chgrp -R www-data $PATH_TO_MONARC
chmod -R 700 $PATH_TO_MONARC
@ -170,7 +168,7 @@ cat > /etc/apache2/sites-enabled/000-default.conf <<EOF
Header always set X-Frame-Options SAMEORIGIN
</IfModule>
SetEnv APPLICATION_ENV $ENVIRONMENT
SetEnv APP_ENV $ENVIRONMENT
SetEnv APP_DIR $PATH_TO_MONARC
</VirtualHost>
EOF
@ -178,7 +176,9 @@ echo -e "\n--- Restarting Apache… ---\n"
systemctl restart apache2.service > /dev/null
echo -e "\n--- Configuration of MONARC data base connection ---\n"
echo -e "\n--- Configuration of MONARC database connection ---\n"
cat > config/autoload/local.php <<EOF
<?php
\$appdir = getenv('APP_DIR') ? getenv('APP_DIR') : '$PATH_TO_MONARC';
@ -256,21 +256,31 @@ mysql -u $DBUSER_MONARC -p$DBPASSWORD_MONARC monarc_common < db-bootstrap/monarc
mysql -u $DBUSER_MONARC -p$DBPASSWORD_MONARC monarc_common < db-bootstrap/monarc_data.sql > /dev/null
echo -e "\n--- Installation of Grunt… ---\n"
sudo apt-get -y install npm > /dev/null
npm install -g grunt-cli > /dev/null
echo -e "\n--- Update the project… ---\n"
/bin/bash ./scripts/update-all.sh > /dev/null
echo -e "\n--- Create initial user and client ---\n"
php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcFO/migrations/phinx.php
php ./bin/phinx seed:run -c ./module/Monarc/FrontOffice/migrations/phinx.php
echo -e "\n--- Restarting Apache… ---\n"
systemctl restart apache2.service > /dev/null
echo -e "\n--- MONARC is ready! Point your Web browser to http://127.0.0.1:5001 ---\n"