diff --git a/app/controllers/catalog_controller.rb b/app/controllers/catalog_controller.rb
index e78b0451abde13131a3186b8128e3492410d14ea..324e40d84599637abcc7c116e7b6767cb8d7930f 100644
--- a/app/controllers/catalog_controller.rb
+++ b/app/controllers/catalog_controller.rb
@@ -53,20 +53,20 @@ class CatalogController < ApplicationController
   # Display an issue
   def show
     @issue = Issue.from_solr params[:id], with_pages = true, with_articles = true
-    session["named_entities"] = Issue.named_entities @issue.id
-    session["named_entities_labels"] = helpers.get_linked_entities session["named_entities"].map { |k, v| v.keys }.flatten.uniq
-    # puts session.inspect
   end
 
   ##
   # Retrieve named entities for a list of documents (issue and/or articles)
   def named_entities_for_docs
     named_entities = { LOC: {}, PER: {}, ORG: {}, HumanProd: {} }
+    linked_entities = {}
     params[:docs_ids].each do |doc_id|
-      if doc_id.index("_article_").nil?
-        doc_named_entities = session["named_entities"]
+      if doc_id.index("_article_").nil? # if issue, get named entities from Issue
+        doc_named_entities = Issue.named_entities doc_id
       else # if article, filter stored list
-        doc_named_entities = session["named_entities"].map { |ne_type, ne_list|
+        issue_id = doc_id.split(/_article_/, 2).first
+        doc_named_entities = Issue.named_entities issue_id
+        doc_named_entities = doc_named_entities.map { |ne_type, ne_list|
           [ne_type, ne_list.select { |linked_id, namedentities|
             namedentities.any? { |ne|
               ne["article_id_ssi"] == doc_id
@@ -86,8 +86,10 @@ class CatalogController < ApplicationController
       named_entities[:HumanProd] = named_entities[:HumanProd].merge(doc_named_entities[:HumanProd]) do |key, oldval, newval|
         oldval.concat newval
       end
+      doc_named_entities_labels = helpers.get_linked_entities(doc_named_entities.map { |k, v| v.keys }.flatten.uniq)
+      linked_entities.merge(doc_named_entities_labels)
     end
-    render partial: "named_entities/named_entities", locals: { named_entities: named_entities, linked_entities: session["named_entities_labels"] }
+    render partial: "named_entities/named_entities", locals: { named_entities: named_entities, linked_entities: linked_entities }
   end
 
   ##
diff --git a/app/javascript/packs/utils/search_api.js b/app/javascript/packs/utils/search_api.js
index a0a83e0219f48b021df7200b0692371f1cae0fc5..7b01d2792d85bf28537bb6cac7e492d6441e0a52 100644
--- a/app/javascript/packs/utils/search_api.js
+++ b/app/javascript/packs/utils/search_api.js
@@ -73,7 +73,7 @@ export class SearchAPI {
     static confirm_compond_creation(article_parts, callback) {
         $.ajax({
             type: "POST",
-            url: `/en/tool/newspapers-platform/catalog/confirm_compound_creation`,
+            url: addPrefixURL() + "/catalog/confirm_compound_creation",
             headers: {
                 'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
             },
@@ -89,7 +89,7 @@ export class SearchAPI {
     static create_compound(title, all_text, issue_id, article_parts_ids, callback) {
         $.ajax({
             type: "POST",
-            url: `/en/tool/newspapers-platform/catalog/create_compound`,
+            url: addPrefixURL() + "/catalog/create_compound",
             headers: {
                 'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
             },
@@ -108,7 +108,7 @@ export class SearchAPI {
     static delete_compound_article(compound_id, callback) {
         $.ajax({
             type: "POST",
-            url: `/en/tool/newspapers-platform/catalog/delete_compound`,
+            url: addPrefixURL() + "/catalog/delete_compound",
             headers: {
                 'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
             },
@@ -124,7 +124,7 @@ export class SearchAPI {
     static random_sample(callback) {
         $.ajax({
             type: "POST",
-            url: `/en/tool/newspapers-platform/catalog/random_sample`,
+            url: addPrefixURL() + "/catalog/random_sample",
             headers: {
                 'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
             },
diff --git a/app/views/dataset/_document.html.erb b/app/views/dataset/_document.html.erb
index 82f6334a82bdef00fcd9c3cc771a89d450def822..8ab1625b9e75dd035c4bb0e5dedf52a3dfed49f5 100644
--- a/app/views/dataset/_document.html.erb
+++ b/app/views/dataset/_document.html.erb
@@ -5,11 +5,11 @@
     <h5>
         <%
             if doc.is_a?(Article)
-               url = "/en/tool/newspapers-platform/catalog/#{doc.issue_id}?selected=#{doc.id}"
+               url = "/catalog/#{doc.issue_id}?selected=#{doc.id}"
            elsif doc.is_a?(CompoundArticle)
-               url = "/en/tool/newspapers-platform/catalog/#{doc.issue_id}?selected_compound=#{doc.id}"
+               url = "/catalog/#{doc.issue_id}?selected_compound=#{doc.id}"
            else
-               url = "/en/tool/newspapers-platform/catalog/#{doc.id}"
+               url = "/catalog/#{doc.id}"
            end
         %>
         <a href="<%= url %>">
diff --git a/config/database.yml b/config/database.yml
index 6c797573a5a4853ef31f3d29977e255d479118bc..76e702432abc3039790430c9b57c4f56366e15df 100644
--- a/config/database.yml
+++ b/config/database.yml
@@ -23,7 +23,7 @@ development:
 # Do not set this db to the same as development or production.
 test:
   <<: *default
-  database: db/test.sqlite3
+  database: db_test
 
 production:
   <<: *default
diff --git a/config/environments/development.rb b/config/environments/development.rb
index ffc77188548f754f8d071b4a2dbb85155b94427f..e3191fb130d0d38a56bb2d3ae58d434484c80b3f 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -74,8 +74,8 @@ Rails.application.configure do
   config.file_watcher = ActiveSupport::EventedFileUpdateChecker
 
   # Allow Action Cable access from any origin.
-  config.action_cable.url = ENV['NEP_CABLE_URL'] || "http://127.0.0.1:3000/cable"
-  config.action_cable.disable_request_forgery_protection = true
+  config.action_cable.url = ENV['NEP_CABLE_URL'] || 'http://127.0.0.1:3000/cable'
+  config.action_cable.allowed_request_origins = [ENV['NEP_LABS_DOMAIN'], 'http://127.0.0.1:8001']
   # Allow XHR/Ajax requests from different origin
   config.action_controller.forgery_protection_origin_check = false
 end
diff --git a/db/migrate/20211202095539_add_sessions_table.rb b/db/migrate/20211202095539_add_sessions_table.rb
deleted file mode 100644
index 855e0c0b97c50943d8b2ce4fbe982218bf2f20f1..0000000000000000000000000000000000000000
--- a/db/migrate/20211202095539_add_sessions_table.rb
+++ /dev/null
@@ -1,12 +0,0 @@
-class AddSessionsTable < ActiveRecord::Migration[6.1]
-  def change
-    create_table :sessions do |t|
-      t.string :session_id, :null => false
-      t.text :data
-      t.timestamps
-    end
-
-    add_index :sessions, :session_id, :unique => true
-    add_index :sessions, :updated_at
-  end
-end
diff --git a/db/schema.rb b/db/schema.rb
index bc77a9743cb6ef840820d50377795764c21df84e..332f259f28d515c4ea0cb1977156ce63ba64756b 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 2021_12_02_095539) do
+ActiveRecord::Schema.define(version: 2021_11_23_112405) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -45,7 +45,7 @@ ActiveRecord::Schema.define(version: 2021_12_02_095539) do
   create_table "experiments", force: :cascade do |t|
     t.string "title"
     t.bigint "user_id"
-    t.jsonb "description", default: { "children" => [] }
+    t.jsonb "description", default: {"children"=>[]}
     t.datetime "created_at", precision: 6, null: false
     t.datetime "updated_at", precision: 6, null: false
     t.index ["title", "user_id"], name: "index_experiments_on_title_and_user_id", unique: true
@@ -61,15 +61,6 @@ ActiveRecord::Schema.define(version: 2021_12_02_095539) do
     t.index ["user_id"], name: "index_notifications_on_user_id"
   end
 
-  create_table "sessions", force: :cascade do |t|
-    t.string "session_id", null: false
-    t.text "data"
-    t.datetime "created_at", precision: 6, null: false
-    t.datetime "updated_at", precision: 6, null: false
-    t.index ["session_id"], name: "index_sessions_on_session_id", unique: true
-    t.index ["updated_at"], name: "index_sessions_on_updated_at"
-  end
-
   create_table "tools", force: :cascade do |t|
     t.bigint "experiment_id"
     t.bigint "parent_id"