<!DOCTYPE html> <html lang="en"> <head> <meta name="generator" content="HTML Tidy for HTML5 for Windows version 5.6.0"> <meta charset="utf-8"> <title>Hesperides Docs - Applications</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content=""> <meta name="author" content=""> <link rel="shortcut icon" href="favicon.ico"> <link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'> <link rel="stylesheet" href="assets/plugins/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/plugins/font-awesome/css/font-awesome.css"> <link rel="stylesheet" href="assets/plugins/prism/prism.css"> <link rel="stylesheet" href="assets/plugins/elegant_font/css/style.css"> <link id="theme-style" rel="stylesheet" href="assets/css/styles.css"> </head> <body class="body-blue"> <div class="page-wrapper"> <!-- ******Header****** --> <header id="header" class="header"> <div class="container"> <div class="branding"> <h1 class="logo"><a href="index.html"><span class="text-highlight">Hesperides</span><span class="text-bold">Docs</span></a></h1> </div><!--//branding--> <ol class="breadcrumb"> <li> <a href="index.html">Home</a> </li> <li class="active">Applications</li> </ol> </div><!--//container--> </header><!--//header--> <div class="doc-wrapper"> <div class="container"> <div id="doc-header" class="doc-header text-center"> <h1 class="doc-title">Applications</h1> <div class="meta"> Last updated: aug.08, 2019 - 16:04:35 </div> </div><!--//doc-header--> <div class="doc-body"> <div class="doc-content"> <div class="content-inner"> <section id="overview" class="doc-section"> <h2 class="section-title">Overview</h2> <div class="section-block"> <p>Now that you know handling templates (if not, go to <a href="templates.html">this section</a>), it's time to associate a module with an application. This association (module and application) is necessary to generate the files for your context. If we are more specific, it's the association of a platform with a module that will allow you to generate files for your context.</p> <p>Actually, you can have a set of platform linked to an application.</p> </div> </section><!--//doc-section--> <section id="platform" class="doc-section"> <h2 class="section-title">Platform</h2> <div id="create-platform" class="section-block"> <h3 class="block-title">Create platform</h3> <p>Before managing <a href="glossary.html#-platform">platforms</a>, you have to create it. To do that, click on "By application" menu and "Create a platform" :</p> <p><img class="img-responsive" alt="" src="assets/images/screenshots/menu_create_platform.png"></p> <p>You can now just fulfill the name (<b class="red-color">1</b>) of the application, the name of the platform (<b class="red-color">2</b>) and the indicative version of your platform (<b class="red-color">3</b>) - then "create" button (<b class="red-color">4</b>):</p> <p><img class="img-responsive" alt="" src="assets/images/screenshots/application_create_platform.png"></p> <div class="callout-block callout-info"> <div class="icon-holder"></div><!--//icon-holder--> <div class="content"> <h4 class="callout-title">Production mode</h4> <p>A specific section has been written to explain the concept. <a class="scrollto" href="#production-role">See below</a>.</p> </div><!--//content--> </div><!--//callout-block--> </div><!--//section-block--> <div id="create-platform-from" class="section-block"> <h3 class="block-title">Create platform from</h3> <p>Instead of creating a platform from scratch, you can create a platform from an existing one. To do that, get in "By application" menu and clic on "Create a platform from..." :</p> <p><img class="img-responsive" alt="" src="assets/images/screenshots/menu_create_platform_from.png"></p> <p>You can now just fulfill the name (<b class="red-color">1</b>) of the application, the name of the platform (<b class="red-color">2</b>), the indicative version (<b class="red-color">3</b>) and use autocomplete field to find which module you want to copy (<b class="red-color">4</b>) - then "create" button (<b class="red-color">5</b>):</p> <p><img class="img-responsive" alt="" src="assets/images/screenshots/application_create_platform_from.png"></p> <div class="callout-block callout-info"> <div class="icon-holder"></div><!--//icon-holder--> <div class="content"> <h4 class="callout-title">Production mode</h4> <p>Specific sections for <a class="scrollto" href="#production-role">production</a> and <a class="scrollto" href="#instance">instances</a></p> </div><!--//content--> </div><!--//callout-block--> </div><!--//section-block--> </section><!--//doc-section--> <section id="logic-representation" class="doc-section"> <h2 class="section-title">Logic Representation</h2> <div id="overview-logic-representation" class="section-block"> <h3 class="block-title">Overview</h3> <p>Now you have created a platform, you have to create what we call a "logic representation". Three main concepts :</p> <ul> <li>you need at least one logic group</li> <li>a module is linked to a logic group</li> <li>you have to create an instance in a module</li> </ul> <p>Hesperides offers two presentation mode : tree and block. You can choose your mode thanks to those icons :</p> <p><img class="img-responsive" alt="" src="assets/images/screenshots/platform_icone_tree_and_block_mode.png"></p> </div><!--//section-block--> <div id="create-logic-representation" class="section-block"> <h3 class="block-title">Create your platform</h3> <p>You will find below the several operations availables to manage a platform according to the selected mode :</p> <div class="table-responsive"> <table class="table table-bordered"> <thead> <tr> <th style="text-align:center">Operation</th> <th style="text-align:center">Tree mode</th> <th style="text-align:center">Block mode</th> <th style="text-align:center">After clicking the link</th> </tr> </thead> <tbody> <tr> <th scope="row" style="vertical-align:middle">Add first level</th> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_tree_add_first_level.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_tree_add_first_level.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_add_logic_group_1_modal.png"></td> </tr> <tr> <th scope="row" style="vertical-align:middle">Add second level level</th> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_tree_add_second_level.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_block_add_second_level.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_add_logic_group_2_modal.png"></td> </tr> <tr> <th scope="row" style="vertical-align:middle">Add module</th> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_tree_add_module.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_block_add_module.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_add_module_modal.png"></td> </tr> <tr> <th scope="row" style="vertical-align:middle">Add instance</th> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_tree_add_instance.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_block_add_instance.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_add_instance_modal.png"></td> </tr> </tbody> </table> </div><!--//table-responsive--> <div class="callout-block callout-success"> <div class="icon-holder"></div><!--//icon-holder--> <div class="content"> <h4 class="callout-title">Congratulations !</h4> <p>You created your first logic representation</p> </div><!--//content--> </div> <h4>Full example after you creating your logic representation :</h4> <div class="table-responsive"> <table class="table table-bordered"> <thead> <tr> <th style="text-align:center">Tree mode</th> <th style="text-align:center">Block mode</th> </tr> </thead> <tbody> <tr> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_tree_created_logic_representation.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_block_created_logic_representation.png"></td> </tr> </tbody> </table> </div><!--//table-responsive--> <div class="callout-block callout-info"> <div class="icon-holder"></div><!--//icon-holder--> <div class="content"> <h4 class="callout-title">Path</h4> <p>We can now considere another concept of Hesperides : the path <a href="glossary.html#-path"></a>. It's a very important concept used by API to retrieve datas (for our example, the path is "#FIRSTLEVEL#SECONDLEVEL")</p> </div><!--//content--> </div><!--//callout-block--> </div><!--//section-block--> <div id="update-logic-representation" class="section-block"> <h3 class="block-title">Update your platform</h3> <p>You will find below the other operations availables to manage a platform according to the selected mode :</p> <div class="table-responsive"> <table class="table table-bordered"> <thead> <tr> <th style="text-align:center">Operation</th> <th style="text-align:center">Tree mode</th> <th style="text-align:center">Block mode</th> <th style="text-align:center">After clicking the link</th> </tr> </thead> <tbody> <tr> <th scope="row" style="vertical-align:middle">Change group name</th> <td>Click on the group name<img class="img-responsive" alt="" src="assets/images/screenshots/group_name_tree_update_name.png"></td> <td>Click on the group name<img class="img-responsive" alt="" src="assets/images/screenshots/group_name_block_update_name.png"></td> <td>You can set the new name and press enter :<img class="img-responsive" alt="" src="assets/images/screenshots/group_name_tree_set_name.png"></td> </tr> <tr> <th scope="row" style="vertical-align:middle">Change instance name</th> <td>Click on the link containing instance name<img class="img-responsive" alt="" src="assets/images/screenshots/instance_update_name.png"></td> <td>Click on the link containing instance name<img class="img-responsive" alt="" src="assets/images/screenshots/instance_update_name.png"></td> <td>The link becomes an input where you can set the new name and click on tick button :<img class="img-responsive" alt="" src="assets/images/screenshots/instance_set_name.png"></td> </tr> <tr> <th scope="row" style="vertical-align:middle">Upgrade module version</th> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_tree_upgrade_module.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_block_upgrade_module.png"></td> <td>Use autocomplete to find the version to use :<img class="img-responsive" alt="" src="assets/images/screenshots/module_upgrade_modal.png"></td> </tr> <tr> <th scope="row" style="vertical-align:middle">Display module templates</th> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_tree_display_module_templates.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/platform_block_display_module_templates.png"></td> <td>You can directly edit your module :<img class="img-responsive" alt="" src="assets/images/screenshots/module_edit_page.png"></td> </tr> </tbody> </table> </div><!--//table-responsive--> </div><!--//section-block--> </section><!--//doc-section--> <section id="united-nation" class="doc-section"> <h2 class="section-title">United Nation popup</h2> <div class="section-block"> <p>Yes, this is a weird section name, but we chose it because this popup job is to resolve conflicts :) If you haven't heard of local changes please read this section first (<a href="valuations.html#local-changes">local changes explained</a>)</p> </div> <div id="local-changes-introduction" class="section-block"> <h3 class="block-title">Introduction</h3> <div class="section-block"> <p>From a platform, you can see this button, hit it to enter in the United Nation popup. The value in parentheses represent the global amount of local changes within the current platform</p><img class="img-responsive" alt="" src="assets/images/screenshots/nu_intro.png"></div> <div class="section-block"> <p>This is the landing page of United Nation popup</p><img class="img-responsive" alt="" src="assets/images/screenshots/nu_landing_page.png"> <ul> <li>1 : First module having local changes, The value in parentheses represent the amount of local changes within the module</li> <li>2 : First module having local changes, The value in parentheses represent the amount of local changes within the module</li> <li>3 : Input to write you global comment to apply to every module modification</li> <li>4 : Save button become available when comment is filled, it will save all the local changes of every module listed in United Nation popup</li> </ul> </div> </div> <div id="local-changes-manage" class="section-block"> <h3 class="block-title">Manage your local changes</h3> <div class="section-block"> <p>Clicking on the part represented by 1 will display this part</p><img class="img-responsive" alt="" src="assets/images/screenshots/nu_save_one_module.png"> <ul> <li>1 : Input to write you comment to apply for this specific module</li> <li>2 : Save button become available when comment is filled, it will save all the local changes of this module</li> <li>3 : This column "To save" mean that regardless of checkbox (4) it will save the value as they are display in this column</li> <li>4 : This checkbox allows yo report current value over your local change</li> </ul> <p>In part (3) you can also edit on the input directly if you see fit.</p> </div> <div class="section-block"> <p>If you hit the save button in this configuration, you will apply the value present in the "To save" column, so "overriding_by_local" and "my_local_value" will be save</p><img class="img-responsive" alt="" src="assets/images/screenshots/nu_save_one_module_raw.png"></div> <div class="section-block"> <p>But If you hit the save button in this configuration with a checkbox checked, you will also apply the value present in the "To save" column, so "my_real_value" and "my_local_value" will be save</p><img class="img-responsive" alt="" src="assets/images/screenshots/nu_save_one_module_edit.png"></div> </div> </section> <section id="events" class="doc-section"> <h2 class="section-title">Events</h2> <div id="overview-events" class="section-block"> <h3 class="block-title">Overview</h3> <p>Hesperides saves every event that modify the state of your platforms and your modules. Mixed with the information about logins, you can retrieve information about your platform : who did this update ? who added the template to the module ? etc ...</p> </div><!--//section-block--> <div id="platforms-events" class="section-block"> <h3 class="block-title">Platform events</h3> <p>Whether with tree or block mode, you can display platform events here :</p><img class="img-responsive" alt="" src="assets/images/screenshots/platform_display_events.png"> <p>In the displayed modal, you will be able to know :</p> <ul> <li>who created the platform</li> <li>who updated the platform</li> <li>who updated global properties</li> <li>who updated module/instance properties</li> </ul> <p>For example :</p> <div class="row"> <div class="col-md-9 col-sm-3 col-xs-12"><img class="img-responsive" alt="" src="assets/images/screenshots/events_modal_platform_main_principles.png"></div> <div class="col-md-3 col-sm-9 col-xs-12"> <ol> <li>You can filter events by strings</li> <li>You can filter your event</li> <li>You can compare two event of the same type (2 updates of global properties, 2 updates of module/instance properties etc ...)</li> </ol> </div> </div><!--//row--> </div><!--//section-block--> <div id="modules-events" class="section-block"> <h3 class="block-title">Module events</h3> <p>You can display platform events here :</p> <div class="row"> <div class="col-md-6 col-sm-6 col-xs-12"> <h4>Tree mode :</h4><img class="img-responsive" alt="" src="assets/images/screenshots/platform_tree_display_module_events.png"></div> <div class="col-md-6 col-sm-6 col-xs-12"> <h4>Block mode :</h4><img class="img-responsive" alt="" src="assets/images/screenshots/platform_block_display_module_events.png"></div> </div><!--//row--> <p>For example :</p> <div class="row"> <div class="col-md-9 col-sm-3 col-xs-12"><img class="img-responsive" alt="" src="assets/images/screenshots/events_modal_module_main_principles.png"></div> <div class="col-md-3 col-sm-9 col-xs-12"> <ol> <li>You can filter events by strings</li> <li>You can filter your event</li> </ol> </div> </div><!--//row--> </div><!--//section-block--> </section><!--//doc-section--> <section id="production-role" class="doc-section"> <h2 class="section-title">Production role</h2> <div id="overview-production-mode" class="section-block"> <h3 class="block-title">Overview</h3> <p>The <em>production role</em> is a permission granted to some users to <strong>edit</strong> and have <strong>access to unobfuscated password</strong> on some <strong>production platforms</strong>.</p> </div><!--//section-block--> <div id="what-are-production-platforms" class="section-block"> <h3 class="block-title">What are production platforms?</h3> <p><a href="glossary.html#-platform">Platforms</a> can be <em>tagged</em> as <strong>production</strong> in 3 places :</p> <table class="table table-bordered"> <thead> <tr> <th style="text-align:center">Where ?</th> <th style="text-align:center">How ?</th> <th style="text-align:center">Result in logic representation</th> </tr> </thead> <tbody> <tr> <th scope="row" style="vertical-align:middle">Create platform</th> <td><img class="img-responsive" alt="" src="assets/images/screenshots/application_create_platform_prod_mode.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/logic_representation_production_switch_activated.png"></td> </tr> <tr> <th scope="row" style="vertical-align:middle">Create platform from</th> <td><img class="img-responsive" alt="" src="assets/images/screenshots/application_create_platform_prod_mode_from.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/logic_representation_production_switch_activated.png"></td> </tr> <tr> <th scope="row" style="vertical-align:middle">Logic representation</th> <td><img class="img-responsive" alt="" src="assets/images/screenshots/logic_representation_production_switch.png"></td> <td><img class="img-responsive" alt="" src="assets/images/screenshots/logic_representation_production_switch_activated.png"></td> </tr> </tbody> </table> </div><!--//section-block--> <div id="what-is-restricted" class="section-block"> <h3 class="block-title">What is restricted?</h3> <p>When a user <em>without</em> production role access a <strong>production</strong> platform:</p> <ul> <li>they won't be able to <strong>save</strong> any changes made to the platform</li> <li>they won't be able to <strong>see</strong> the value of properties with <code>@password</code> annotations: <code>********</code> will be displayed instead</li> </ul> </div><!--//section-block--> <div id="who-has-production-role" class="section-block"> <h3 class="block-title">Who has production role?</h3> <ul> <li>users belonging to the <strong>global production group</strong>, configured through the configuration environment variable <code>$LDAP_PROD_GROUP_DN</code></li> <li>users who belong to the <a href="glossary.html#-directory-group">directory groups</a> configured for delegating those permissions per-application, the so-called <a href="glossary.html#-acl">ACLs</a> </li> </ul> </div><!--//section-block--> <div id="editing-acls" class="section-block"> <h3 class="block-title">Editing ACLs</h3> <p><a href="glossary.html#-acl">ACLs</a> can be edited easily through the form at the top of every application page, where users already having the <em>production role</em> can delegate those permissions to additional <a href="glossary.html#-directory-group">directory groups</a>. A user ACLs are summarized on the <em>profile</em> page.</p><video controls="" style="max-width: 100%"><source src="assets/HesperidesACLs.mp4" type="video/mp4"></video> </div><!--//section-block--> </section><!--//doc-section--> </div><!--//content-inner--> </div><!--//doc-content--> <div class="doc-sidebar hidden-xs"> <nav id="doc-nav"> <ul id="doc-menu" class="nav doc-menu" data-spy="affix"> <li> <a class="scrollto" href="#overview">Overview</a> </li> <li> <a class="scrollto" href="#platform">Platform</a> <ul class="nav doc-sub-menu"> <li> <a class="scrollto" href="#create-platform">Create platform</a> </li> <li> <a class="scrollto" href="#create-platform-from">Create platform from</a> </li> </ul><!--//nav--> </li> <li> <a class="scrollto" href="#logic-representation">Logic representation</a> <ul class="nav doc-sub-menu"> <li> <a class="scrollto" href="#overview-logic-representation">Overview</a> </li> <li> <a class="scrollto" href="#create-logic-representation">Create your platform</a> </li> <li> <a class="scrollto" href="#update-logic-representation">Update your platform</a> </li> </ul><!--//nav--> </li> <li> <a class="scrollto" href="#united-nation">United Nation popup</a> <ul class="nav doc-sub-menu"> <li> <a class="scrollto" href="#local-changes-introduction">Introduction</a> </li> <li> <a class="scrollto" href="#local-changes-manage">Manage your local changes</a> </li> </ul><!--//nav--> </li> <li> <a class="scrollto" href="#events">Events</a> <ul class="nav doc-sub-menu"> <li> <a class="scrollto" href="#overview-events">Overview</a> </li> <li> <a class="scrollto" href="#platforms-events">Platform events</a> </li> <li> <a class="scrollto" href="#modules-events">Module events</a> </li> </ul><!--//nav--> </li> <li> <a class="scrollto" href="#production-role">Production role</a> <ul class="nav doc-sub-menu"> <li> <a class="scrollto" href="#overview-production-mode">Overview</a> </li> <li> <a class="scrollto" href="#what-are-production-platforms">What are production platforms?</a> </li> <li> <a class="scrollto" href="#what-is-restricted">What is restricted?</a> </li> <li> <a class="scrollto" href="#who-has-production-role">Who has production role?</a> </li> <li> <a class="scrollto" href="#editing-acls">Editing ACLs</a> </li> </ul><!--//nav--> </li> </ul><!--//doc-menu--> </nav> </div><!--//doc-sidebar--> </div><!--//doc-body--> </div><!--//container--> </div><!--//doc-wrapper--> </div><!--//page-wrapper--> <footer class="footer text-center"> <div class="container"> <!--/* This template is released under the Creative Commons Attribution 3.0 License. Please keep the attribution link below when using for your own project. Thank you for your support. :) If you'd like to use the template without the attribution, you can check out other license options via our website: themes.3rdwavemedia.com */--> <small class="copyright">Designed with by <a href="http://themes.3rdwavemedia.com/" target="_blank">Xiaoying Riley</a> for developers - <a href="license.html">PrettyDocs License</a></small> </div><!--//container--> </footer><!--//footer--> <!-- Main Javascript --> <script type="text/javascript" src="assets/plugins/jquery-1.12.3.min.js"></script> <script type="text/javascript" src="assets/plugins/bootstrap/js/bootstrap.min.js"></script> <script type="text/javascript" src="assets/plugins/prism/prism.js"></script> <script type="text/javascript" src="assets/plugins/jquery-scrollTo/jquery.scrollTo.min.js"></script> <script type="text/javascript" src="assets/plugins/jquery-match-height/jquery.matchHeight-min.js"></script> <script type="text/javascript" src="assets/js/main.js"></script> </body> </html>