added license

This commit is contained in:
Yan
2017-11-16 16:13:26 +06:30
parent b1f98df4e0
commit 178b3484be
10 changed files with 264 additions and 184 deletions

View File

@@ -110,7 +110,7 @@ class ApplicationController < ActionController::Base
if License.check_license_file
return true
else
redirect_to install_path
redirect_to activate_path
end
end
end

View File

@@ -1,12 +1,16 @@
class InstallController < BaseController
before_action :check_license
def index
end
def activate
restaurant = params[:restaurant_name]
license_key = params[:license_key]
admin_user = params[:admin_user]
admin_password = params[:admin_password]
# admin_user = params[:admin_user]
# admin_password = params[:admin_password]
db_host = params[:db_host]
db_schema = params[:db_schema]
db_user = params[:db_user]
db_password = params[:db_password]
@@ -15,37 +19,48 @@ class InstallController < BaseController
aes_key, aes_iv = aes.export_key(lookup)
@license = License.new(ENV["SX_PROVISION_URL"])
@license.license_activate(aes_key, aes_iv, license_key)
response = @license.license_activate(aes_key, aes_iv, license_key, db_host, db_schema, db_user, db_password)
if response["status"]
redirect_to root_url, notice: response["message"]
else
redirect_to activate_path, notice: response["message"]
end
end
def lookup_domain
if request.subdomain.present? && request.subdomain != "www"
@license = current_license(ENV["SX_PROVISION_URL"], request.subdomain.downcase)
if (!@license.nil?)
# logger.info "Location - " + @license.name
ActiveRecord::Base.establish_connection(website_connection(@license))
# logger.info "Connecting to - " + @license.subdomain + " - "+ @license.dbhost + "@" + @license.dbschema
else
# reconnect_default_db
logger.info 'License is nil'
# redirect_to root_url(:host => request.domain) + "store_error"
render :json => [{ status: false, message: 'Invalid Access!'}]
end
def check_license
if License.check_license_file
redirect_to root_url
end
end
def current_license(url, key)
@license = License.new(url, key)
# def lookup_domain
# if request.subdomain.present? && request.subdomain != "www"
# @license = current_license(ENV["SX_PROVISION_URL"], request.subdomain.downcase)
# if (!@license.nil?)
# # logger.info "Location - " + @license.name
# ActiveRecord::Base.establish_connection(website_connection(@license))
# # logger.info "Connecting to - " + @license.subdomain + " - "+ @license.dbhost + "@" + @license.dbschema
# else
# # reconnect_default_db
# logger.info 'License is nil'
# # redirect_to root_url(:host => request.domain) + "store_error"
# render :json => [{ status: false, message: 'Invalid Access!'}]
# end
# end
# end
##creating md5 hash
md5_hostname = Digest::MD5.new
md5key = md5_hostname.update(request.host)
if (@license.detail_with_local_cache(key, md5key.to_s) == true)
#if (@license.detail == true)
# def current_license(url, key)
# @license = License.new(url, key)
return @license
else
return nil
end
end
# ##creating md5 hash
# md5_hostname = Digest::MD5.new
# md5key = md5_hostname.update(request.host)
# if (@license.detail_with_local_cache(key, md5key.to_s) == true)
# #if (@license.detail == true)
# return @license
# else
# return nil
# end
# end
end

View File

@@ -75,7 +75,7 @@ class License
def detail_with_local_file()
has_license = true #verify_license()
has_license = verify_license()
if has_license
puts "VERIFIED"
@@ -118,7 +118,7 @@ class License
# end
# end
# return false
end
#end
# def detail
# response = self.class.get("/subdomain", @options)
@@ -137,7 +137,7 @@ class License
# end
# License Activation
def license_activate (key, iv, license_key)
def license_activate (key, iv, license_key, db_host, db_schema, db_user, db_password)
@params = { query: { lookup_type: self.server_mode, encrypted_key: key, iv_key: iv, license_key: license_key } }
response = self.class.get("/activate", @params)
@activate = response.parsed_response
@@ -145,10 +145,15 @@ class License
Rails.logger.debug "License Remote Response - " + response.parsed_response.to_s
if (@activate["status"])
return create_license_file(@activate)
response = create_license_file(@activate)
if(response["status"])
sym_path = "/home/yan/symmetric/engines"
response = create_symmetric_config(sym_path, db_host, db_schema, db_user, db_password)
end
else
response = { "status": false, "message": "Activation Failed! Please contact code2lab call center!"}
end
return response
end
def verify_license
@@ -218,7 +223,7 @@ class License
File.open("config/license.yml").each do |line|
if line.include? (key)
decrypted_line_array = line.split(":")
decrypted_line = AESCrypt.decrypt(decrypted_line_array[1])
decrypted_line = AESCrypt.decrypt_data(decrypted_line_array[1], ENV['AES_KEY'], ENV['AES_IV'], ENV['CIPHER_TYPE'])
end
end
end
@@ -236,7 +241,12 @@ class License
# Licese File Creation
f = File.open("config/license.yml", "w")
f.write("name: #{response_data['name']}\n")
f.write("shopname: #{response_data['shopname']}\n")
f.write("iv_key: #{response_data['iv_key']}\n")
f.write("shop_name: #{response_data['shop_name']}\n")
f.write("email: #{response_data['email']}\n")
f.write("telephone: #{response_data['telephone']}\n")
f.write("fax: #{response_data['fax']}\n")
f.write("address: #{response_data['address']}\n")
f.write("dbhost: #{response_data['dbhost']}\n")
f.write("dbschema: #{response_data['dbschema']}\n")
f.write("dbusername: #{response_data['dbusername']}\n")
@@ -245,9 +255,62 @@ class License
f.write("app_token: #{response_data['app_token']}\n")
f.close
rescue IOError
response = { "status": false, "message": "Can't create license file. Please contact code2lab call center!"}
response = { "status": false, "message": "Activation is success but something is wrong. \n Please contact code2lab call center!"}
end
response = { "status": true, "message": "Success Activation. License also created."}
end
# Symmetric Configuration
def create_symmetric_config(sym_location, db_host, db_schema, db_user, db_password)
if File.directory? (sym_location)
begin
# sx properties create
f = File.open(sym_location + "/sx.properties", "w")
f.write("engine.name=sx\n")
f.write("db.driver=com.mysql.jdbc.Driver\n")
f.write("db.url=jdbc:mysql://#{db_host}/#{db_schema}?tinyInt1isBit=false\n")
f.write("db.user=#{db_user}\n")
f.write("db.password=#{db_password}\n")
f.write("registration.url=\n")
f.write("sync.url=http://#{db_host}:31415/sync/sx\n")
f.write("group.id=sx\n")
f.write("external.id=000\n")
f.write("job.purge.period.time.ms=7200000\n")
f.write("job.routing.period.time.ms=5000\n")
f.write("job.push.period.time.ms=10000\n")
f.write("job.pull.period.time.ms=10000\n")
f.write("initial.load.create.first=true\n")
f.write("initial.load.use.extract.job.enabled=true\n")
f.close
# read from license file
shop_name = read_license("shop_name")
dbhost = read_license("dbhost")
dbschema = read_license("dbschema")
dbusername = read_license("dbusername")
dbpassword = read_license("dbpassword")
# shop properties create
f = File.open(sym_location + "/#{shop_name}.properties", "w")
f.write("engine.name=#{shop_name}\n")
f.write("db.driver=com.mysql.jdbc.Driver\n")
f.write("db.url=jdbc:mysql://#{dbhost}/#{dbschema}?tinyInt1isBit=false\n")
f.write("db.user=#{dbusername}\n")
f.write("db.password=#{dbpassword}\n")
f.write("registration.url=http://#{db_host}:31415/sync/sx\n")
f.write("group.id=store\n")
f.write("external.id=001\n")
f.write("job.routing.period.time.ms=5000\n")
f.write("job.push.period.time.ms=10000\n")
f.write("job.pull.period.time.ms=10000\n")
# f.write("initial.load.create.first=true\n")
# f.write("initial.load.use.extract.job.enabled=true\n")
f.close
rescue IOError
response = { "status": false, "message": "Activation is success but something is wrong. \n Please contact code2lab call center!"}
end
response = { "status": true, "message": "Success Activation. License also created."}
end
response = { "status": true, "message": "License created"}
end
# Delete License File

View File

@@ -10,7 +10,7 @@
<input type="text" class="form-control" name="license_key" aria-describedby="license_key" placeholder="Add License Key">
<small class="form-text text-muted">Add License Key from Email</small>
</div>
<div class="form-group">
<!-- <div class="form-group">
<label for="lblAdministrator">Administrator Username</label>
<input type="text" class="form-control" name="admin_user" aria-describedby="admin_user" placeholder="Administrator Username">
<small id="admin_user" class="form-text text-muted">First Employee who will be assign as administrator</small>
@@ -18,9 +18,17 @@
<div class="form-group">
<label for="admin_password">Password</label>
<input type="password" class="form-control" name="admin_password" placeholder="Password">
</div>
</div> -->
</div>
<div class="col-md-6">
<div class="form-group">
<label for="lblDBHost">Database Host</label>
<input type="text" class="form-control" name="db_host" aria-describedby="db_host" placeholder="Database Host" />
</div>
<div class="form-group">
<label for="lblDBName">Database Schema</label>
<input type="text" class="form-control" name="db_schema" aria-describedby="db_schema" placeholder="Database Schema">
</div>
<div class="form-group">
<label for="lblAdministrator">Database Username</label>
<input type="text" class="form-control" name="db_user" aria-describedby="db_user" placeholder="Database Username">

View File

@@ -70,7 +70,7 @@
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 p-t-20 p-l-10 p-r-10 p-b-50 bg-white">
<div class="row justify-content-center form-group">
<!-- <span class="col-md-4"></span> -->
<input type="text" class="form-control col-4" id="emp_id" onkeypress="empID()" placeholder="Access PIN">
<input type="text" class="form-control col-4" id="emp_id" onkeypress="empID()" placeholder="Employee ID">
<!-- <span class="col-md-4"></span> -->
</div>

View File

@@ -1,4 +1,6 @@
config = YAML.load_file(Rails.root.join("config/license.yml"))
config.fetch(Rails.env, {}).each do |key, value|
ENV[key.upcase] = value.to_s
if File.exist?("config/license.yml")
config = YAML.load_file(Rails.root.join("config/license.yml"))
config.fetch(Rails.env, {}).each do |key, value|
ENV[key.upcase] = value.to_s
end
end

View File

@@ -1,12 +0,0 @@
development:
license_key: IAAXHpbSWAfvlWGYpDoXvZdmuRABNGk
test:
sx_provision_url: "provision.test.ws/api"
# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
license_key: IAAXHpbSWAfvlWGYpDoXvZdmuRABNGk

View File

@@ -9,9 +9,9 @@ scope "(:locale)", locale: /en|mm/ do
# Action Cable Creation
mount ActionCable.server => "/cable"
#--------- SmartSales Installation ------------#
get 'install' => 'install#index'
post 'install' => 'install#activate'
#--------- SmartSales Activation ------------#
get 'activate' => 'install#index'
post 'activate' => 'install#activate'
#--------- Login/Authentication ------------#
get 'auth/:emp_id' => 'home#show', as: :emp_login

View File

@@ -12,7 +12,7 @@
development:
secret_key_base: b61d85f8ed2a1a9e0eeece3443b3e8f838d002cc1d9f32115d8e93db920e2957adfedc57501d44741211538f3108b742cdeada87d5bfae796c53da1f90a3cd61
sx_provision_url: provision.zsai.ws/api #192.168.1.94:3002
sx_provision_url: 192.168.1.94:3002 #provision.zsai.ws/api
server_mode: cloud
cipher_type: AES-256-CBC
aes_key: <%= ENV['AES_KEY'] %>

View File

@@ -23,8 +23,8 @@
-- Sample Data
------------------------------------------------------------------------------
-- insert into item (item_id, name) values (11000001, 'Yummy Gum');
-- insert into item_selling_price (item_id, store_id, price, cost) values (11000001, '001',0.20, 0.10);
-- insert into item_selling_price (item_id, store_id, price, cost) values (11000001, '002',0.30, 0.20);
-- insert into item_selling_price (item_id, cloud_id, price, cost) values (11000001, '001',0.20, 0.10);
-- insert into item_selling_price (item_id, cloud_id, price, cost) values (11000001, '002',0.30, 0.20);
-- insert into sale_transaction (tran_id, store_id, workstation, day, seq)
-- values (900, '001', '3', '2012-12-01', 90);
@@ -48,6 +48,10 @@ delete from sym_node;
# Create Channels for logically grouped tables
# For Initial Data Faster by bulk
update sym_channel set data_loader_type='mysql_bulk', max_batch_size=100000, max_data_to_route=100000
where channel_id = 'reload';
insert into sym_channel
(channel_id, processing_order, max_batch_size, enabled, description)
values('setting', 1, 100000, 1, 'All Settings');
@@ -305,466 +309,466 @@ delete from sym_node;
# Create Routers for Nodes
insert into sym_router
(router_id,source_node_group_id,target_node_group_id,router_type,create_time,last_update_time)
values('sx_2_store', 'sx', 'store', 'default',current_timestamp, current_timestamp);
values('sx_2_cloud', 'sx', 'cloud', 'default',current_timestamp, current_timestamp);
insert into sym_router
(router_id,source_node_group_id,target_node_group_id,router_type,sync_on_delete,create_time,last_update_time)
values('store_2_sx', 'store', 'sx', 'default',0,current_timestamp, current_timestamp);
values('cloud_2_sx', 'cloud', 'sx', 'default',0,current_timestamp, current_timestamp);
-- insert into sym_router
-- (router_id,source_node_group_id,target_node_group_id,router_type,router_expression,create_time,last_update_time)
-- values('sx_2_one_store', 'sx', 'store', 'column','STORE_ID=:EXTERNAL_ID or OLD_STORE_ID=:EXTERNAL_ID',current_timestamp, current_timestamp);
-- values('sx_2_one_cloud', 'sx', 'cloud', 'column','cloud_ID=:EXTERNAL_ID or OLD_cloud_ID=:EXTERNAL_ID',current_timestamp, current_timestamp);
# Add triggers for tables with router
# Setting Channel # From Store to Master
# Setting Channel # From cloud to Master
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('lookups','store_2_sx', 100, current_timestamp, current_timestamp);
values('lookups','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('membership_actions','store_2_sx', 100, current_timestamp, current_timestamp);
values('membership_actions','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('membership_settings','store_2_sx', 100, current_timestamp, current_timestamp);
values('membership_settings','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('payment_method_settings','store_2_sx', 100, current_timestamp, current_timestamp);
values('payment_method_settings','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('print_settings','store_2_sx', 100, current_timestamp, current_timestamp);
values('print_settings','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('shops','store_2_sx', 100, current_timestamp, current_timestamp);
values('shops','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('customers','store_2_sx', 100, current_timestamp, current_timestamp);
values('customers','cloud_2_sx', 100, current_timestamp, current_timestamp);
# Setting Channel # From Master to Store
# Setting Channel # From Master to cloud
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('lookups','sx_2_store', 100, current_timestamp, current_timestamp);
values('lookups','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('membership_actions','sx_2_store', 100, current_timestamp, current_timestamp);
values('membership_actions','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('membership_settings','sx_2_store', 100, current_timestamp, current_timestamp);
values('membership_settings','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('payment_method_settings','sx_2_store', 100, current_timestamp, current_timestamp);
values('payment_method_settings','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('print_settings','sx_2_store', 100, current_timestamp, current_timestamp);
values('print_settings','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('shops','sx_2_store', 100, current_timestamp, current_timestamp);
values('shops','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('customers','sx_2_store', 100, current_timestamp, current_timestamp);
values('customers','sx_2_cloud', 100, current_timestamp, current_timestamp);
#End Setting Channel
# Dining Channel # From Store to SX
# Dining Channel # From cloud to SX
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('zones','store_2_sx', 100, current_timestamp, current_timestamp);
values('zones','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('dining_charges','store_2_sx', 100, current_timestamp, current_timestamp);
values('dining_charges','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('dining_facilities','store_2_sx', 100, current_timestamp, current_timestamp);
values('dining_facilities','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('dining_queues','store_2_sx', 100, current_timestamp, current_timestamp);
values('dining_queues','cloud_2_sx', 100, current_timestamp, current_timestamp);
# Dining Channel # From SX to Store
# Dining Channel # From SX to cloud
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('zones','sx_2_store', 100, current_timestamp, current_timestamp);
values('zones','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('dining_charges','sx_2_store', 100, current_timestamp, current_timestamp);
values('dining_charges','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('dining_facilities','sx_2_store', 100, current_timestamp, current_timestamp);
values('dining_facilities','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('dining_queues','sx_2_store', 100, current_timestamp, current_timestamp);
values('dining_queues','sx_2_cloud', 100, current_timestamp, current_timestamp);
#end Dining Channel
# Commission/Promotion/Product Channel # From Store to SX
# Commission/Promotion/Product Channel # From cloud to SX
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('commissioners','store_2_sx', 100, current_timestamp, current_timestamp);
values('commissioners','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('commissions','store_2_sx', 100, current_timestamp, current_timestamp);
values('commissions','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('employees','store_2_sx', 100, current_timestamp, current_timestamp);
values('employees','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('in_duties','store_2_sx', 100, current_timestamp, current_timestamp);
values('in_duties','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('inventory_definitions','store_2_sx', 100, current_timestamp, current_timestamp);
values('inventory_definitions','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('product_commissions','store_2_sx', 100, current_timestamp, current_timestamp);
values('product_commissions','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('products','store_2_sx', 100, current_timestamp, current_timestamp);
values('products','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('promotion_products','store_2_sx', 100, current_timestamp, current_timestamp);
values('promotion_products','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('promotions','store_2_sx', 100, current_timestamp, current_timestamp);
values('promotions','cloud_2_sx', 100, current_timestamp, current_timestamp);
# Commission/Promotion/Product Channel # From SX to Store
# Commission/Promotion/Product Channel # From SX to cloud
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('commissioners','sx_2_store', 100, current_timestamp, current_timestamp);
values('commissioners','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('commissions','sx_2_store', 100, current_timestamp, current_timestamp);
values('commissions','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('employees','sx_2_store', 100, current_timestamp, current_timestamp);
values('employees','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('in_duties','sx_2_store', 100, current_timestamp, current_timestamp);
values('in_duties','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('inventory_definitions','sx_2_store', 100, current_timestamp, current_timestamp);
values('inventory_definitions','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('product_commissions','sx_2_store', 100, current_timestamp, current_timestamp);
values('product_commissions','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('products','sx_2_store', 100, current_timestamp, current_timestamp);
values('products','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('promotion_products','sx_2_store', 100, current_timestamp, current_timestamp);
values('promotion_products','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('promotions','sx_2_store', 100, current_timestamp, current_timestamp);
values('promotions','sx_2_cloud', 100, current_timestamp, current_timestamp);
#end Commission/Promotion/Product Channel
# Menu Channel # From Store to SX
# Menu Channel # From cloud to SX
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('accounts','store_2_sx', 100, current_timestamp, current_timestamp);
values('accounts','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_item_attributes','store_2_sx', 100, current_timestamp, current_timestamp);
values('menu_item_attributes','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_item_options','store_2_sx', 100, current_timestamp, current_timestamp);
values('menu_item_options','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menus','store_2_sx', 100, current_timestamp, current_timestamp);
values('menus','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_categories','store_2_sx', 100, current_timestamp, current_timestamp);
values('menu_categories','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_items','store_2_sx', 100, current_timestamp, current_timestamp);
values('menu_items','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_item_instances','store_2_sx', 100, current_timestamp, current_timestamp);
values('menu_item_instances','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('item_sets','store_2_sx', 100, current_timestamp, current_timestamp);
values('item_sets','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_item_sets','store_2_sx', 100, current_timestamp, current_timestamp);
values('menu_item_sets','cloud_2_sx', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_instance_item_sets','store_2_sx', 100, current_timestamp, current_timestamp);
values('menu_instance_item_sets','cloud_2_sx', 100, current_timestamp, current_timestamp);
# Menu Channel # From SX to Store
# Menu Channel # From SX to cloud
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('accounts','sx_2_store', 100, current_timestamp, current_timestamp);
values('accounts','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_item_attributes','sx_2_store', 100, current_timestamp, current_timestamp);
values('menu_item_attributes','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_item_options','sx_2_store', 100, current_timestamp, current_timestamp);
values('menu_item_options','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menus','sx_2_store', 100, current_timestamp, current_timestamp);
values('menus','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_categories','sx_2_store', 100, current_timestamp, current_timestamp);
values('menu_categories','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_items','sx_2_store', 100, current_timestamp, current_timestamp);
values('menu_items','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_item_instances','sx_2_store', 100, current_timestamp, current_timestamp);
values('menu_item_instances','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('item_sets','sx_2_store', 100, current_timestamp, current_timestamp);
values('item_sets','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_item_sets','sx_2_store', 100, current_timestamp, current_timestamp);
values('menu_item_sets','sx_2_cloud', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('menu_instance_item_sets','sx_2_store', 100, current_timestamp, current_timestamp);
values('menu_instance_item_sets','sx_2_cloud', 100, current_timestamp, current_timestamp);
#End Menu Channel
# Order Channel # From Store to Sx
# Order Channel # From cloud to Sx
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('orders','store_2_sx', 200, current_timestamp, current_timestamp);
values('orders','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('order_items','store_2_sx', 200, current_timestamp, current_timestamp);
values('order_items','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('bookings','store_2_sx', 200, current_timestamp, current_timestamp);
values('bookings','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('booking_orders','store_2_sx', 200, current_timestamp, current_timestamp);
values('booking_orders','cloud_2_sx', 200, current_timestamp, current_timestamp);
# Order Channel # From SX to Store
# Order Channel # From SX to cloud
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('orders','sx_2_store', 200, current_timestamp, current_timestamp);
values('orders','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('order_items','sx_2_store', 200, current_timestamp, current_timestamp);
values('order_items','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('bookings','sx_2_store', 200, current_timestamp, current_timestamp);
values('bookings','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('booking_orders','sx_2_store', 200, current_timestamp, current_timestamp);
values('booking_orders','sx_2_cloud', 200, current_timestamp, current_timestamp);
# End Order Channel
# Sale Channel # From Store to Sx
# Sale Channel # From cloud to Sx
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('sales','store_2_sx', 200, current_timestamp, current_timestamp);
values('sales','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('sale_items','store_2_sx', 200, current_timestamp, current_timestamp);
values('sale_items','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('sale_audits','store_2_sx', 200, current_timestamp, current_timestamp);
values('sale_audits','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('sale_orders','store_2_sx', 200, current_timestamp, current_timestamp);
values('sale_orders','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('sale_payments','store_2_sx', 200, current_timestamp, current_timestamp);
values('sale_payments','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('sale_taxes','store_2_sx', 200, current_timestamp, current_timestamp);
values('sale_taxes','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('payment_journals','store_2_sx', 200, current_timestamp, current_timestamp);
values('payment_journals','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('shift_sales','store_2_sx', 200, current_timestamp, current_timestamp);
values('shift_sales','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('stock_check_items','store_2_sx', 200, current_timestamp, current_timestamp);
values('stock_check_items','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('stock_checks','store_2_sx', 200, current_timestamp, current_timestamp);
values('stock_checks','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('stock_journals','store_2_sx', 200, current_timestamp, current_timestamp);
values('stock_journals','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('surveys','store_2_sx', 200, current_timestamp, current_timestamp);
values('surveys','cloud_2_sx', 200, current_timestamp, current_timestamp);
# Sale Channel # From SX to Store
# Sale Channel # From SX to cloud
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('sales','sx_2_store', 200, current_timestamp, current_timestamp);
values('sales','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('sale_items','sx_2_store', 200, current_timestamp, current_timestamp);
values('sale_items','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('sale_audits','sx_2_store', 200, current_timestamp, current_timestamp);
values('sale_audits','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('sale_orders','sx_2_store', 200, current_timestamp, current_timestamp);
values('sale_orders','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('sale_payments','sx_2_store', 200, current_timestamp, current_timestamp);
values('sale_payments','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('sale_taxes','sx_2_store', 200, current_timestamp, current_timestamp);
values('sale_taxes','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('payment_journals','sx_2_store', 200, current_timestamp, current_timestamp);
values('payment_journals','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('shift_sales','sx_2_store', 200, current_timestamp, current_timestamp);
values('shift_sales','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('stock_check_items','sx_2_store', 200, current_timestamp, current_timestamp);
values('stock_check_items','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('stock_checks','sx_2_store', 200, current_timestamp, current_timestamp);
values('stock_checks','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('stock_journals','sx_2_store', 200, current_timestamp, current_timestamp);
values('stock_journals','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('surveys','sx_2_store', 200, current_timestamp, current_timestamp);
values('surveys','sx_2_cloud', 200, current_timestamp, current_timestamp);
# End Sale Channel
# Oqs Channel # From Store to Sx
# Oqs Channel # From cloud to Sx
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('assigned_order_items','store_2_sx', 200, current_timestamp, current_timestamp);
values('assigned_order_items','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('cashier_terminals','store_2_sx', 200, current_timestamp, current_timestamp);
values('cashier_terminals','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('cashier_terminal_by_zones','store_2_sx', 200, current_timestamp, current_timestamp);
values('cashier_terminal_by_zones','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('cashier_login_logs','store_2_sx', 200, current_timestamp, current_timestamp);
values('cashier_login_logs','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('order_queue_process_by_zones','store_2_sx', 200, current_timestamp, current_timestamp);
values('order_queue_process_by_zones','cloud_2_sx', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('order_queue_stations','store_2_sx', 200, current_timestamp, current_timestamp);
values('order_queue_stations','cloud_2_sx', 200, current_timestamp, current_timestamp);
# Oqs Channel # From SX to Store
# Oqs Channel # From SX to cloud
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('assigned_order_items','sx_2_store', 200, current_timestamp, current_timestamp);
values('assigned_order_items','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('cashier_terminals','sx_2_store', 200, current_timestamp, current_timestamp);
values('cashier_terminals','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('cashier_terminal_by_zones','sx_2_store', 200, current_timestamp, current_timestamp);
values('cashier_terminal_by_zones','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('cashier_login_logs','sx_2_store', 200, current_timestamp, current_timestamp);
values('cashier_login_logs','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('order_queue_process_by_zones','sx_2_store', 200, current_timestamp, current_timestamp);
values('order_queue_process_by_zones','sx_2_cloud', 200, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('order_queue_stations','sx_2_store', 200, current_timestamp, current_timestamp);
values('order_queue_stations','sx_2_cloud', 200, current_timestamp, current_timestamp);
# End Oqs Channel
insert into sym_node (node_id,node_group_id,external_id,sync_enabled,sync_url,schema_version,symmetric_version,database_type,database_version,heartbeat_time,timezone_offset,batch_to_send_count,batch_in_error_count,created_at_node_id)
values ('000','sx','000',1,null,null,null,null,null,current_timestamp,null,0,0,'000');
insert into sym_node (node_id,node_group_id,external_id,sync_enabled,sync_url,schema_version,symmetric_version,database_type,database_version,heartbeat_time,timezone_offset,batch_to_send_count,batch_in_error_count,created_at_node_id)
values ('001','store','001',1,null,null,null,null,null,current_timestamp,null,0,0,'000');
values ('001','cloud','001',1,null,null,null,null,null,current_timestamp,null,0,0,'000');
-- insert into sym_node (node_id,node_group_id,external_id,sync_enabled,sync_url,schema_version,symmetric_version,database_type,database_version,heartbeat_time,timezone_offset,batch_to_send_count,batch_in_error_count,created_at_node_id)
-- values ('002','store','002',1,null,null,null,null,null,current_timestamp,null,0,0,'000');
-- values ('002','cloud','002',1,null,null,null,null,null,current_timestamp,null,0,0,'000');
insert into sym_node_security (node_id,node_password,registration_enabled,registration_time,initial_load_enabled,initial_load_time,created_at_node_id)