diff --git a/kubernetes/policy/components/policy-clamp-be/resources/config/application.properties b/kubernetes/policy/components/policy-clamp-be/resources/config/application.properties
index a633466..aa9870a 100644
--- a/kubernetes/policy/components/policy-clamp-be/resources/config/application.properties
+++ b/kubernetes/policy/components/policy-clamp-be/resources/config/application.properties
@@ -69,3 +69,9 @@
 
 #AAF related parameters
 clamp.config.cadi.aafLocateUrl=https://aaf-locate.{{ include "common.namespace" . }}:8095
+
+# Configuration settings for ControlLoop Runtime Rest API
+clamp.config.controlloop.runtime.url=http://policy-clamp-cl-runtime.{{ include "common.namespace" . }}:6969
+clamp.config.controlloop.runtime.userName=${RUNTIME_USER}
+clamp.config.controlloop.runtime.password=${RUNTIME_PASSWORD}
+
diff --git a/kubernetes/policy/components/policy-clamp-be/resources/config/policy-clamp-create-tables.sql b/kubernetes/policy/components/policy-clamp-be/resources/config/policy-clamp-create-tables.sql
index 1f153bc..1652dc1 100644
--- a/kubernetes/policy/components/policy-clamp-be/resources/config/policy-clamp-create-tables.sql
+++ b/kubernetes/policy/components/policy-clamp-be/resources/config/policy-clamp-create-tables.sql
@@ -1,257 +1,275 @@
+/*
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation
+ *  ================================================================================
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *  SPDX-License-Identifier: Apache-2.0
+ *  ============LICENSE_END=========================================================
+ */
 
-    create table dictionary (
-       name varchar(255) not null,
-        created_by varchar(255),
-        created_timestamp datetime(6) not null,
-        updated_by varchar(255),
-        updated_timestamp datetime(6) not null,
-        dictionary_second_level integer,
-        dictionary_type varchar(255),
-        primary key (name)
+create table if not exists dictionary (
+    name varchar(255) not null,
+    created_by varchar(255),
+    created_timestamp datetime(6) not null,
+    updated_by varchar(255),
+    updated_timestamp datetime(6) not null,
+    dictionary_second_level integer,
+    dictionary_type varchar(255),
+    primary key (name)
     ) engine=InnoDB;
 
-    create table dictionary_elements (
-       short_name varchar(255) not null,
-        created_by varchar(255),
-        created_timestamp datetime(6) not null,
-        updated_by varchar(255),
-        updated_timestamp datetime(6) not null,
-        description varchar(255) not null,
-        name varchar(255) not null,
-        subdictionary_name varchar(255),
-        type varchar(255) not null,
-        primary key (short_name)
+create table if not exists dictionary_elements (
+    short_name varchar(255) not null,
+    created_by varchar(255),
+    created_timestamp datetime(6) not null,
+    updated_by varchar(255),
+    updated_timestamp datetime(6) not null,
+    description varchar(255) not null,
+    name varchar(255) not null,
+    subdictionary_name varchar(255),
+    type varchar(255) not null,
+    primary key (short_name)
     ) engine=InnoDB;
 
-    create table dictionary_to_dictionaryelements (
-       dictionary_name varchar(255) not null,
-        dictionary_element_short_name varchar(255) not null,
-        primary key (dictionary_name, dictionary_element_short_name)
+create table if not exists dictionary_to_dictionaryelements (
+    dictionary_name varchar(255) not null,
+    dictionary_element_short_name varchar(255) not null,
+    primary key (dictionary_name, dictionary_element_short_name)
     ) engine=InnoDB;
 
-    create table hibernate_sequence (
-       next_val bigint
+create table if not exists hibernate_sequence (
+    next_val bigint
+) engine=InnoDB;
+
+insert into hibernate_sequence values ( 1 );
+
+create table if not exists loop_element_models (
+    name varchar(255) not null,
+    created_by varchar(255),
+    created_timestamp datetime(6) not null,
+    updated_by varchar(255),
+    updated_timestamp datetime(6) not null,
+    blueprint_yaml MEDIUMTEXT,
+    dcae_blueprint_id varchar(255),
+    loop_element_type varchar(255) not null,
+    short_name varchar(255),
+    primary key (name)
     ) engine=InnoDB;
 
-    insert into hibernate_sequence values ( 1 );
-
-    create table loop_element_models (
-       name varchar(255) not null,
-        created_by varchar(255),
-        created_timestamp datetime(6) not null,
-        updated_by varchar(255),
-        updated_timestamp datetime(6) not null,
-        blueprint_yaml MEDIUMTEXT,
-        dcae_blueprint_id varchar(255),
-        loop_element_type varchar(255) not null,
-        short_name varchar(255),
-        primary key (name)
+create table if not exists loop_logs (
+                                         id bigint not null,
+                                         log_component varchar(255) not null,
+    log_instant datetime(6) not null,
+    log_type varchar(255) not null,
+    message MEDIUMTEXT not null,
+    loop_id varchar(255) not null,
+    primary key (id)
     ) engine=InnoDB;
 
-    create table loop_logs (
-       id bigint not null,
-        log_component varchar(255) not null,
-        log_instant datetime(6) not null,
-        log_type varchar(255) not null,
-        message MEDIUMTEXT not null,
-        loop_id varchar(255) not null,
-        primary key (id)
+create table if not exists loop_templates (
+    name varchar(255) not null,
+    created_by varchar(255),
+    created_timestamp datetime(6) not null,
+    updated_by varchar(255),
+    updated_timestamp datetime(6) not null,
+    allowed_loop_type varchar(255),
+    blueprint_yaml MEDIUMTEXT,
+    dcae_blueprint_id varchar(255),
+    maximum_instances_allowed integer,
+    svg_representation MEDIUMTEXT,
+    unique_blueprint boolean default false,
+    service_uuid varchar(255),
+    primary key (name)
     ) engine=InnoDB;
 
-    create table loop_templates (
-       name varchar(255) not null,
-        created_by varchar(255),
-        created_timestamp datetime(6) not null,
-        updated_by varchar(255),
-        updated_timestamp datetime(6) not null,
-        allowed_loop_type varchar(255),
-        blueprint_yaml MEDIUMTEXT,
-        dcae_blueprint_id varchar(255),
-        maximum_instances_allowed integer,
-        svg_representation MEDIUMTEXT,
-        unique_blueprint boolean default false,
-        service_uuid varchar(255),
-        primary key (name)
+create table if not exists loopelementmodels_to_policymodels (
+    loop_element_name varchar(255) not null,
+    policy_model_type varchar(255) not null,
+    policy_model_version varchar(255) not null,
+    primary key (loop_element_name, policy_model_type, policy_model_version)
     ) engine=InnoDB;
 
-    create table loopelementmodels_to_policymodels (
-       loop_element_name varchar(255) not null,
-        policy_model_type varchar(255) not null,
-        policy_model_version varchar(255) not null,
-        primary key (loop_element_name, policy_model_type, policy_model_version)
+create table if not exists loops (
+    name varchar(255) not null,
+    created_by varchar(255),
+    created_timestamp datetime(6) not null,
+    updated_by varchar(255),
+    updated_timestamp datetime(6) not null,
+    dcae_deployment_id varchar(255),
+    dcae_deployment_status_url varchar(255),
+    global_properties_json json,
+    last_computed_state varchar(255) not null,
+    svg_representation MEDIUMTEXT,
+    loop_template_name varchar(255) not null,
+    service_uuid varchar(255),
+    primary key (name)
     ) engine=InnoDB;
 
-    create table loops (
-       name varchar(255) not null,
-        created_by varchar(255),
-        created_timestamp datetime(6) not null,
-        updated_by varchar(255),
-        updated_timestamp datetime(6) not null,
-        dcae_deployment_id varchar(255),
-        dcae_deployment_status_url varchar(255),
-        global_properties_json json,
-        last_computed_state varchar(255) not null,
-        svg_representation MEDIUMTEXT,
-        loop_template_name varchar(255) not null,
-        service_uuid varchar(255),
-        primary key (name)
+create table if not exists loops_to_microservicepolicies (
+    loop_name varchar(255) not null,
+    microservicepolicy_name varchar(255) not null,
+    primary key (loop_name, microservicepolicy_name)
     ) engine=InnoDB;
 
-    create table loops_to_microservicepolicies (
-       loop_name varchar(255) not null,
-        microservicepolicy_name varchar(255) not null,
-        primary key (loop_name, microservicepolicy_name)
+create table if not exists looptemplates_to_loopelementmodels (
+    loop_element_model_name varchar(255) not null,
+    loop_template_name varchar(255) not null,
+    flow_order integer not null,
+    primary key (loop_element_model_name, loop_template_name)
     ) engine=InnoDB;
 
-    create table looptemplates_to_loopelementmodels (
-       loop_element_model_name varchar(255) not null,
-        loop_template_name varchar(255) not null,
-        flow_order integer not null,
-        primary key (loop_element_model_name, loop_template_name)
+create table if not exists micro_service_policies (
+    name varchar(255) not null,
+    created_by varchar(255),
+    created_timestamp datetime(6) not null,
+    updated_by varchar(255),
+    updated_timestamp datetime(6) not null,
+    configurations_json json,
+    json_representation json not null,
+    pdp_group varchar(255),
+    pdp_sub_group varchar(255),
+    context varchar(255),
+    dcae_blueprint_id varchar(255),
+    dcae_deployment_id varchar(255),
+    dcae_deployment_status_url varchar(255),
+    device_type_scope varchar(255),
+    shared bit not null,
+    loop_element_model_id varchar(255),
+    policy_model_type varchar(255),
+    policy_model_version varchar(255),
+    primary key (name)
     ) engine=InnoDB;
 
-    create table micro_service_policies (
-       name varchar(255) not null,
-        created_by varchar(255),
-        created_timestamp datetime(6) not null,
-        updated_by varchar(255),
-        updated_timestamp datetime(6) not null,
-        configurations_json json,
-        json_representation json not null,
-        pdp_group varchar(255),
-        pdp_sub_group varchar(255),
-        context varchar(255),
-        dcae_blueprint_id varchar(255),
-        dcae_deployment_id varchar(255),
-        dcae_deployment_status_url varchar(255),
-        device_type_scope varchar(255),
-        shared bit not null,
-        loop_element_model_id varchar(255),
-        policy_model_type varchar(255),
-        policy_model_version varchar(255),
-        primary key (name)
+create table if not exists operational_policies (
+    name varchar(255) not null,
+    created_by varchar(255),
+    created_timestamp datetime(6) not null,
+    updated_by varchar(255),
+    updated_timestamp datetime(6) not null,
+    configurations_json json,
+    json_representation json not null,
+    pdp_group varchar(255),
+    pdp_sub_group varchar(255),
+    loop_element_model_id varchar(255),
+    policy_model_type varchar(255),
+    policy_model_version varchar(255),
+    loop_id varchar(255) not null,
+    primary key (name)
     ) engine=InnoDB;
 
-    create table operational_policies (
-       name varchar(255) not null,
-        created_by varchar(255),
-        created_timestamp datetime(6) not null,
-        updated_by varchar(255),
-        updated_timestamp datetime(6) not null,
-        configurations_json json,
-        json_representation json not null,
-        pdp_group varchar(255),
-        pdp_sub_group varchar(255),
-        loop_element_model_id varchar(255),
-        policy_model_type varchar(255),
-        policy_model_version varchar(255),
-        loop_id varchar(255) not null,
-        primary key (name)
+create table if not exists policy_models (
+    policy_model_type varchar(255) not null,
+    version varchar(255) not null,
+    created_by varchar(255),
+    created_timestamp datetime(6) not null,
+    updated_by varchar(255),
+    updated_timestamp datetime(6) not null,
+    policy_acronym varchar(255),
+    policy_tosca MEDIUMTEXT,
+    policy_pdp_group json,
+    primary key (policy_model_type, version)
     ) engine=InnoDB;
 
-    create table policy_models (
-       policy_model_type varchar(255) not null,
-        version varchar(255) not null,
-        created_by varchar(255),
-        created_timestamp datetime(6) not null,
-        updated_by varchar(255),
-        updated_timestamp datetime(6) not null,
-        policy_acronym varchar(255),
-        policy_tosca MEDIUMTEXT,
-        policy_pdp_group json,
-        primary key (policy_model_type, version)
+create table if not exists services (
+    service_uuid varchar(255) not null,
+    name varchar(255) not null,
+    resource_details json,
+    service_details json,
+    version varchar(255),
+    primary key (service_uuid)
     ) engine=InnoDB;
 
-    create table services (
-       service_uuid varchar(255) not null,
-        name varchar(255) not null,
-        resource_details json,
-        service_details json,
-        version varchar(255),
-        primary key (service_uuid)
-    ) engine=InnoDB;
+alter table dictionary_to_dictionaryelements
+    add constraint FK68hjjinnm8nte2owstd0xwp23
+        foreign key (dictionary_element_short_name)
+            references dictionary_elements (short_name);
 
-    alter table dictionary_to_dictionaryelements
-       add constraint FK68hjjinnm8nte2owstd0xwp23
-       foreign key (dictionary_element_short_name)
-       references dictionary_elements (short_name);
+alter table dictionary_to_dictionaryelements
+    add constraint FKtqfxg46gsxwlm2gkl6ne3cxfe
+        foreign key (dictionary_name)
+            references dictionary (name);
 
-    alter table dictionary_to_dictionaryelements
-       add constraint FKtqfxg46gsxwlm2gkl6ne3cxfe
-       foreign key (dictionary_name)
-       references dictionary (name);
+alter table loop_logs
+    add constraint FK1j0cda46aickcaoxqoo34khg2
+        foreign key (loop_id)
+            references loops (name);
 
-    alter table loop_logs
-       add constraint FK1j0cda46aickcaoxqoo34khg2
-       foreign key (loop_id)
-       references loops (name);
+alter table loop_templates
+    add constraint FKn692dk6281wvp1o95074uacn6
+        foreign key (service_uuid)
+            references services (service_uuid);
 
-    alter table loop_templates
-       add constraint FKn692dk6281wvp1o95074uacn6
-       foreign key (service_uuid)
-       references services (service_uuid);
+alter table loopelementmodels_to_policymodels
+    add constraint FK23j2q74v6kaexefy0tdabsnda
+        foreign key (policy_model_type, policy_model_version)
+            references policy_models (policy_model_type, version);
 
-    alter table loopelementmodels_to_policymodels
-       add constraint FK23j2q74v6kaexefy0tdabsnda
-       foreign key (policy_model_type, policy_model_version)
-       references policy_models (policy_model_type, version);
+alter table loopelementmodels_to_policymodels
+    add constraint FKjag1iu0olojfwryfkvb5o0rk5
+        foreign key (loop_element_name)
+            references loop_element_models (name);
 
-    alter table loopelementmodels_to_policymodels
-       add constraint FKjag1iu0olojfwryfkvb5o0rk5
-       foreign key (loop_element_name)
-       references loop_element_models (name);
+alter table loops
+    add constraint FK844uwy82wt0l66jljkjqembpj
+        foreign key (loop_template_name)
+            references loop_templates (name);
 
-    alter table loops
-       add constraint FK844uwy82wt0l66jljkjqembpj
-       foreign key (loop_template_name)
-       references loop_templates (name);
+alter table loops
+    add constraint FK4b9wnqopxogwek014i1shqw7w
+        foreign key (service_uuid)
+            references services (service_uuid);
 
-    alter table loops
-       add constraint FK4b9wnqopxogwek014i1shqw7w
-       foreign key (service_uuid)
-       references services (service_uuid);
+alter table loops_to_microservicepolicies
+    add constraint FKle255jmi7b065fwbvmwbiehtb
+        foreign key (microservicepolicy_name)
+            references micro_service_policies (name);
 
-    alter table loops_to_microservicepolicies
-       add constraint FKle255jmi7b065fwbvmwbiehtb
-       foreign key (microservicepolicy_name)
-       references micro_service_policies (name);
+alter table loops_to_microservicepolicies
+    add constraint FK8avfqaf7xl71l7sn7a5eri68d
+        foreign key (loop_name)
+            references loops (name);
 
-    alter table loops_to_microservicepolicies
-       add constraint FK8avfqaf7xl71l7sn7a5eri68d
-       foreign key (loop_name)
-       references loops (name);
+alter table looptemplates_to_loopelementmodels
+    add constraint FK1k7nbrbugvqa0xfxkq3cj1yn9
+        foreign key (loop_element_model_name)
+            references loop_element_models (name);
 
-    alter table looptemplates_to_loopelementmodels
-       add constraint FK1k7nbrbugvqa0xfxkq3cj1yn9
-       foreign key (loop_element_model_name)
-       references loop_element_models (name);
+alter table looptemplates_to_loopelementmodels
+    add constraint FKj29yxyw0x7ue6mwgi6d3qg748
+        foreign key (loop_template_name)
+            references loop_templates (name);
 
-    alter table looptemplates_to_loopelementmodels
-       add constraint FKj29yxyw0x7ue6mwgi6d3qg748
-       foreign key (loop_template_name)
-       references loop_templates (name);
+alter table micro_service_policies
+    add constraint FKqvvdypacbww07fuv8xvlvdjgl
+        foreign key (loop_element_model_id)
+            references loop_element_models (name);
 
-    alter table micro_service_policies
-       add constraint FKqvvdypacbww07fuv8xvlvdjgl
-       foreign key (loop_element_model_id)
-       references loop_element_models (name);
+alter table micro_service_policies
+    add constraint FKn17j9ufmyhqicb6cvr1dbjvkt
+        foreign key (policy_model_type, policy_model_version)
+            references policy_models (policy_model_type, version);
 
-    alter table micro_service_policies
-       add constraint FKn17j9ufmyhqicb6cvr1dbjvkt
-       foreign key (policy_model_type, policy_model_version)
-       references policy_models (policy_model_type, version);
+alter table operational_policies
+    add constraint FKi9kh7my40737xeuaye9xwbnko
+        foreign key (loop_element_model_id)
+            references loop_element_models (name);
 
-    alter table operational_policies
-       add constraint FKi9kh7my40737xeuaye9xwbnko
-       foreign key (loop_element_model_id)
-       references loop_element_models (name);
+alter table operational_policies
+    add constraint FKlsyhfkoqvkwj78ofepxhoctip
+        foreign key (policy_model_type, policy_model_version)
+            references policy_models (policy_model_type, version);
 
-    alter table operational_policies
-       add constraint FKlsyhfkoqvkwj78ofepxhoctip
-       foreign key (policy_model_type, policy_model_version)
-       references policy_models (policy_model_type, version);
-
-    alter table operational_policies
-       add constraint FK1ddoggk9ni2bnqighv6ecmuwu
-       foreign key (loop_id)
-       references loops (name);
+alter table operational_policies
+    add constraint FK1ddoggk9ni2bnqighv6ecmuwu
+        foreign key (loop_id)
+            references loops (name);
