diff --git a/gso/migrations/versions/2023-06-18_84d0ad6e7294_add_device_access_via_ts_attr.py b/gso/migrations/versions/2023-06-18_84d0ad6e7294_add_device_access_via_ts_attr.py
new file mode 100644
index 0000000000000000000000000000000000000000..f9bd129e056beb05f12e8855762ba4edf4335c8c
--- /dev/null
+++ b/gso/migrations/versions/2023-06-18_84d0ad6e7294_add_device_access_via_ts_attr.py
@@ -0,0 +1,64 @@
+"""Add device access_via_ts attr.
+
+Revision ID: 84d0ad6e7294
+Revises: c7def54cc165
+Create Date: 2023-06-18 12:03:23.365781
+
+"""
+import sqlalchemy as sa
+from alembic import op
+
+# revision identifiers, used by Alembic.
+revision = '84d0ad6e7294'
+down_revision = 'c7def54cc165'
+branch_labels = None
+depends_on = None
+
+
+def upgrade() -> None:
+    conn = op.get_bind()
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('device_access_via_ts', 'Access to the device via terminal server') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_access_via_ts')))
+    """)
+    conn.execute("""
+
+                WITH subscription_instance_ids AS (
+                    SELECT subscription_instances.subscription_instance_id
+                    FROM   subscription_instances
+                    WHERE  subscription_instances.product_block_id IN (
+                        SELECT product_blocks.product_block_id
+                        FROM   product_blocks
+                        WHERE  product_blocks.name = 'DeviceBlock'
+                    )
+                )
+
+                INSERT INTO
+                    subscription_instance_values (subscription_instance_id, resource_type_id, value)
+                SELECT
+                    subscription_instance_ids.subscription_instance_id,
+                    resource_types.resource_type_id,
+                    'false'
+                FROM resource_types
+                CROSS JOIN subscription_instance_ids
+                WHERE resource_types.resource_type = 'device_access_via_ts'
+        
+    """)
+
+
+def downgrade() -> None:
+    conn = op.get_bind()
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_access_via_ts'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_access_via_ts'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values WHERE subscription_instance_values.resource_type_id IN (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_access_via_ts'))
+    """)
+    conn.execute("""
+DELETE FROM resource_types WHERE resource_types.resource_type IN ('device_access_via_ts')
+    """)
diff --git a/gso/products/product_blocks/device.py b/gso/products/product_blocks/device.py
index 38f2b53145679238abf90e5a010ebcf31bfb0e41..cc627b0e1509d6f3822e8ae398071fdee591ac92 100644
--- a/gso/products/product_blocks/device.py
+++ b/gso/products/product_blocks/device.py
@@ -24,6 +24,7 @@ class DeviceBlockInactive(ProductBlockModel,
     device_fqdn: Optional[str] = None
     device_ts_address: Optional[str] = None
     device_ts_port: Optional[int] = None
+    device_access_via_ts: Optional[bool] = None
     device_lo_ipv4_address: Optional[ipaddress.IPv4Address] = None
     device_lo_ipv6_address: Optional[ipaddress.IPv6Address] = None
     device_lo_iso_address: Optional[str] = None
@@ -40,6 +41,7 @@ class DeviceBlockProvisioning(DeviceBlockInactive,
     device_fqdn: str
     device_ts_address: str
     device_ts_port: int
+    device_access_via_ts: Optional[bool] = None
     device_lo_ipv4_address: Optional[ipaddress.IPv4Address] = None
     device_lo_ipv6_address: Optional[ipaddress.IPv6Address] = None
     device_lo_iso_address: Optional[str] = None
@@ -56,6 +58,7 @@ class DeviceBlock(DeviceBlockProvisioning,
     device_fqdn: str
     device_ts_address: str
     device_ts_port: int
+    device_access_via_ts: bool
     device_lo_ipv4_address: ipaddress.IPv4Address
     device_lo_ipv6_address: ipaddress.IPv6Address
     device_lo_iso_address: str
diff --git a/gso/workflows/device/create_device.py b/gso/workflows/device/create_device.py
index fc91d8ead05c8368d598d029a9b125eb3746ae80..f7fcaab91f1486328dcaf7ccdfeb5232d06ed66d 100644
--- a/gso/workflows/device/create_device.py
+++ b/gso/workflows/device/create_device.py
@@ -128,6 +128,7 @@ def initialize_subscription(
            f'.geant.net'
     subscription.device.device_fqdn = fqdn
     subscription.device.device_role = device_role
+    subscription.device.device_access_via_ts = True
     subscription.description = f'Device {fqdn} ' \
                                f'({subscription.device_type})'
 
@@ -144,9 +145,9 @@ def provision_device_dry(subscription: DeviceProvisioning,
     provisioning_proxy.provision_device(subscription, process_id)
 
     return {'subscription': subscription,
-            'label_text': f'This is a dry run for the deployment of a new '
-                          f'{subscription.device_type}. Deployment is being '
-                          f'taken care of by the provisioning proxy, please '
+            'label_text': f'Dry run for the deployment of base config on a'
+                          f'new {subscription.device_type}. Deployment is '
+                          f'done  by the provisioning proxy, please '
                           f'wait for the results to come back before '
                           f'continuing.'
             }
@@ -158,7 +159,7 @@ def provision_device_real(subscription: DeviceProvisioning,
     provisioning_proxy.provision_device(subscription, process_id, False)
 
     return {'subscription': subscription,
-            'label_text': f'This is a live deployment of a new '
+            'label_text': f'Deployment of base config for  a new '
                           f'{subscription.device_type}. Deployment is being '
                           f'taken care of by the provisioning proxy, please '
                           f'wait for the results to come back before '