Creating Revisions¶
Note
To create revisions, you need at least the privilege Connect over this environment or have one of these roles: global administrator, promotion administrator or promotion user. More information is available in the Authorization section.
A revision is a collection of Virtual DataPort catalog elements and Scheduler jobs. There are several ways to create a revision from the Solution Manager Administration Tool:
Click the source environment and select the option.
Go to the revisions table by clicking in the Promotions menu and then Revisions.
Then click the button on the header of the table and select the source environment.
A new tab opens with the New Revision dialog, which looks like the picture below:
The dialog is separated in two sections. In the General pill you can configure the basic options about a revision: the name, the source servers… In the Revision Elements pill you can select what elements you want to promote. To create a revision, fulfill the forms in both sections and remember to click the save button on the top.
Once created, each revision consists of:
A VQL with the Virtual DataPort elements selected, if any.
A zip with the Scheduler jobs selected, if any.
General Options¶
In the General section, you can configure the following options:
Name: Descriptive name for the revision.
Description: Extensive description about the revision. This field is optional.
Type: There are two types of revisions according to what the Solution Manager should do with the elements during the deployment:
CREATE: The elements in the revision will be created during the deployment.
DROP: The elements in the revision will be removed during the deployment.
Virtual DataPort server: Server in the catalog that will be the source for the Virtual DataPort elements.
Scheduler server: Server in the catalog that will be the source for the Scheduler jobs. This field is optional.
Replace/Drop Virtual DataPort elements: For CREATE revisions, you can choose different strategies that will affect how the VQL for Virtual DataPort elements is generated:
Drop elements before creating them: The generated VQL will try to delete each element before creation. If the element does not exist, the
DROP
command will fail.Replace existing elements: The generated VQL will try to replace each element. Unlike the previous option, if the element does not exist, the
CREATE OR REPLACE
command will not fail. This is the recommended option in most of the cases.Do not replace existing elements: The generated VQL will only try to create each element. If the element exists, the
CREATE
command will fail.
Included elements: For CREATE revisions, you can choose which extra elements will be included in the VQL for Virtual DataPort elements.
Include server properties: If selected, the properties that can de modified of the Virtual DataPort server will be included in the generated VQL.
Include web container properties: If selected, the tomcat properties that can be modified will be included in the generated VQL.
Include dependent extensions and libraries: If selected, the extensions and libraries that are dependencies of the elements in the revision (like a custom function in a JAR, a JDBC driver…), will also be included in the generated VQL. This option also includes JARs and plugins for the Scheduler jobs included in the revision.
Include dependent statistics: If selected, those statistics already calculated for elements in the revision will be included in the generated VQL.
Include VDP dependencies: If selected, the revision will include the selected elements and the elements that they depend on (underlying views, data sources, etc.). For example, if you select this option and a derived view, the revision will also include all the elements needed to recreate this view (other views, base views, data sources,…). This option also includes the tags associated to the selected views in the revision.
This option does not apply to extensions, libraries, statistics, users, roles or Scheduler jobs.
Include users and privileges: This option selects all the “Users” and “Roles”. Read more about this in the section Users and Roles below.
Note
The revision will include the metadata to create users, roles and their privileges only when user that creates the revision is global administrator or administrator of the Virtual DataPort databases that contain the selected elements.
Additional Options¶
The Virtual DataPort properties allow to parameterize information of certain elements inside the VQL (data sources, users…). For example, on each environment (development, testing, production…), JDBC data sources may point to different databases, XML data sources to different files, etc. The JDBC base views are a special case, being possible to configure if the catalog and schema are exported as properties or not.
In the Additional Options section, you can configure the option Include environment properties for catalog and schema names in JDBC base views. Select this check box if the name of the catalogs and/or schemas of your JDBC data sources are different in the source and the target environment. The generated VQL will contain the information of schema and catalog parameterized with properties, as you can see in the following VQL:
CREATE OR REPLACE WRAPPER JDBC jdbcviewtest
DATASOURCENAME=test_ds
CATALOGNAME='${databases.admin.views.jdbc.jdbcviewtest.CATALOGNAME}'
SCHEMANAME='${databases.admin.views.jdbc.jdbcviewtest.SCHEMANAME}'
RELATIONNAME='jdbcviewtest'
OUTPUTSCHEMA (
id_field = 'id_field' :'java.lang.Integer' SORTABLE
);
In this VQL, the values for CATALOGNAME and SCHEMANAME are included as properties. In this case you will need to register the corresponding properties for each JDBC base view included in the revision in the target environment, in order to replace each property with the corresponding value during a deployment.
If the source and target environment share catalog and schema, clear this check box. The generated VQL for the revision will contain directly the value for the schema and the catalog instead of a property.
Revision Candidate Elements¶
Once you selected a Virtual DataPort server and optionally a Scheduler server, you can go to the Revision Elements pill and select all the elements and jobs that the revision will include.
Under the title Selected elements, the Solution Manager Administration Tool shows you all the candidate elements you can select in the following order:
Virtual DataPort databases.
Associations.
Tags.
Global security policies.
Scheduler jobs. The job types considered for revisions are VDP, VDP Cache, VDP Data Load and VDP Indexer.
Users. Default users are ignored.
Roles. Default roles are ignored.
The following types of elements are not included in the revision candidate elements tree:
Resource Manager plans and rules.
JMS and Kafka listeners.
The rules and plans of the Resource Manager cannot be included in a revision. The reason is that the servers of each environment should have their own rules and plans.
Click the refresh button () to refresh the content.
Important
The list of candidate elements and jobs depends on the permissions of the user that connects to the servers. Remember that in the dialog of server definition, you can choose which user is used for creating revisions, the one defined in the server metadata or the one that is logged in the Solution Manager.
Note
The servers must support the same authentication method used by the current user, except if they are created to use a specific user/password for creating revisions. Because the connection is established using pass-through by default. For instance, if the user are logged by Single Sign-On using an external Identity Provider (OAuth, OpenID Connect, SAML), the servers must have token authentication configured. See Configure the Denodo Platform Components to Reach the Security Token Server for more details.
Virtual DataPort Databases¶
In the list of candidate elements, the content of Virtual DataPort databases is hidden by default. You have to expand a database, clicking its corresponding arrow, to show all the elements it contains.
Notice that the Solution Manager Administration Tool does not display all the elements that belong to a database. Currently, the only elements that are supported for revisions are:
Database configuration: This option allows to include the specific database configuration in the revision VQL. This option is only displayed in CREATE revisions for the databases where the user used to connect to the Virtual DataPort server has
dbadmin
privileges. If this option is available, it is displayed as the first element inside a database (Include database configuration node).Data sources.
Folders.
User-defined stored procedures.
Views.
Web services. In CREATE revisions, the list of candidate web services only considers those web services that are actually deployed. DROP revisions show all the web services. Moreover, you can select individual operations or resources.
Tags¶
Expand the Tags node to see the available tags. The required permissions for the user to see the tags in the Revision elements tree are:
For CREATE revisions, the user needs to have the
manage_tags
role, theassign_tags
role or to be admin in at least one database.For DROP revisions, the user needs to have the
manage_tags
role and also to have theassign_tags
role or to be admin in at least one database.
The generated VQL will apply the permissions accordingly. In a CREATE revision, the CREATE TAG
commands are included in the VQL only if the user is a global administrator or has the manage_tags
role.
Warning
When you include tags in a DROP revision, the DROP TAGS
commands include the CASCADE
option. This means that the deleted tags will be removed from the tagged views and that if that tag is used in a global security policy, the global security policy will also be removed.
Users and Roles¶
Expand the nodes Users and Roles to see the available users and roles.
The wizard to create revisions is aimed at creating revisions that promote elements, not to promote privileges. If you want to create a revision that does not create/modify elements and only modifies the privileges of users and roles, it is easier to create a revision from a VQL file with commands like these:
-- Grant the privileges METADATA, EXECUTE and WRITE over the view "customer360"
CREATE ROLE customer_info_read_only
GRANT METADATA, EXECUTE, WRITE ON customer_info.customer360;
Or this:
-- Grant all privileges to the role "denodo_developer" over the
-- database "northwind_db"
CREATE ROLE denodo_developer GRANT ALL PRIVILEGES ON northwind_db;
Or this:
-- Remove all the privileges of the role "denodo_developer" over the
-- database "northwind_db"
ALTER ROLE denodo_developer REVOKE ALL PRIVILEGES ON northWind_db;
Note
Only global administrators or the administrators of the Virtual DataPort databases - that contain the elements included in the revision - must create the revisions that manage users, roles or their privileges. If other users do this, the revision will not include the statements to create users and roles, and grant privileges over the elements of the revision.
When you are creating a revision and in the pill GENERAL, you select Include users and privileges, the revision will select all the users and roles in REVISION ELEMENTS.
When a user or role is selected, the revision will include the VQL statements that do this:
Create or update these users and roles (not their privileges)
Grant the privileges to these users and roles over the elements included in the revision. If a revision does not include a VDP element, the revision will create the selected users/roles but it will not include the statements to grant privileges over this VDP element.
Sample scenario:
In the environment “development”, you create the role “customer_info_read_only” and grant the privileges METADATA, EXECUTE and WRITE to this role over the view “customer360”.
You create a revision that includes the role “customer_info_read_only” but does not include “customer360”.
This revision will create the role “customer_info_read_only” but it will not grant the privileges over “customer360”. To grant the new privileges, you have to add the view “customer360” to the revision as well.
Consider this when creating a “DROP” revision:
The revision will drop the users, roles and VDP elements included in the revision.
DROP revisions do not revoke the privileges granted to users or roles over VDP elements, unless you drop the user or role as well. To do this, you have to create a revision from a VQL file.
Scheduler Jobs¶
Expand the node Scheduler jobs to see the available jobs. They are organized according to their project and type.
When you add a Scheduler job to a revision of type CREATE, you can choose if you want the Solution Manager to execute this job when it deploys this revision.
To execute a job during the deployment of this revision, right-click the job and click Execute job when revision is deployed.
The jobs that will be executed during the deployment of the revision have a green icon next to them (see below)
To not execute a job during the deployment, right-click the job and click Do not execute job when revision is deployed.
By default, VDP, VDP cache and VDP Data Load jobs are not marked to be executed but you can mark them. In case of revisions containing modified summaries, always include the VDP Data Load job to refresh the summary on the target environment and mark “Execute job when revision is deployed”. For more information about summary promotions visit section Summary promotions.
It is not possible to run VDPIndexer jobs during a deployment.
Elements Dependencies Tree¶
The selected elements in the revision may have dependencies with another elements that probably you also want to include. For instance, a view may depend on other views or on a data source. The Solution Manager Administration Tool allows you to check the dependencies for some of the candidate elements. In the Selected elements tree, click the element for which you want to check its dependencies, and they will appear in a hierarchical view under the title Dependencies tree. When you select elements in the Dependencies tree, they are automatically selected in the Selected elements tree. If the selected elements belong to a database whose content was not loaded yet, the database content is loaded and the elements are selected.
Note
If you select Include VDP dependencies, the VDP elements shown in the dependency tree are disabled. The users, roles and Scheduler jobs are never disabled.
It is possible to check the dependencies of the following elements:
Scheduler jobs. You can see the views for VDP Cache and VDP Data Load jobs.
Views. The dependencies of a view include other views, data sources, stored procedures, the tags associated to the view and those associations where the view participates as an end point. Additionally, if a Scheduler job depends on a view, the dependency tree will also show that job.
Web services operations. The dependencies of a web service operation include another views, data sources, stored procedures and those associations where the published view participates as an end point.
Associations. The dependencies of an association include the views of the endpoints and the dependencies of those views.
Users: You can see its roles as dependencies. Note that the predefined roles are ignored.