System

Activity Log

Unified timeline of data changes (saves, imports, deletes) and backend errors. Filter by type, area, severity, or search.

Data changes (total)1,202
Errors (total)276,936
Today · changes0
Today · errors2,555
Reset

278,138 results · Page 5562 of 5563

bootstrap.php
2026-04-07 14:06:51 · anonymous · /backend/documents.php
php_error
Cannot modify header information - headers already sent by (output started at /mnt/drive1/customerdb/backend/page_helpers.php:24)
Script: /mnt/drive1/customerdb/webui/backend/documents.php
IP: 192.168.7.128
Context
{"file":"/mnt/drive1/customerdb/backend/bootstrap.php","line":570,"severity_code":2}
bootstrap.php
2026-04-07 14:06:51 · anonymous · /backend/documents.php
php_error
http_response_code(): Cannot set response code - headers already sent (output started at /mnt/drive1/customerdb/backend/page_helpers.php:24)
Script: /mnt/drive1/customerdb/webui/backend/documents.php
IP: 192.168.7.128
Context
{"file":"/mnt/drive1/customerdb/backend/bootstrap.php","line":562,"severity_code":2}
documents.php
2026-04-07 14:06:51 · anonymous · /backend/documents.php
error
Call to undefined function app_document_can_edit_inline()
Script: /mnt/drive1/customerdb/webui/backend/documents.php
IP: 192.168.7.128
Context
{"type":"Error","file":"/mnt/drive1/customerdb/backend/documents.php","line":461,"trace":"#0 {main}"}
square_terminal · refresh_code
2026-04-07 12:44:59 · anonymous · /backend/square_terminal.php?created=1&code=DTMM1Q9V2N4DE
change
backend_square_terminal_code #DTMM1Q9V2N4DE
Context
[]
Before
{"backend_square_terminal_code_id":"43","square_device_code_id":"DTMM1Q9V2N4DE","code_value":"YPAMEA","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:49:34","paired_at":"2026-04-07 16:44:34","raw_json":"{\"id\":\"DTMM1Q9V2N4DE\",\"name\":\"Front Desk Terminal\",\"code\":\"YPAMEA\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:49:34.000Z\",\"created_at\":\"2026-04-07T16:44:34.226Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:44:34.000Z\"}","created_at":"2026-04-07 12:44:34","updated_at":"2026-04-07 12:44:34"}
After
{"backend_square_terminal_code_id":"43","square_device_code_id":"DTMM1Q9V2N4DE","code_value":"YPAMEA","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"PAIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"2026-04-07 16:44:53","raw_json":"{\"id\":\"DTMM1Q9V2N4DE\",\"name\":\"Front Desk Terminal\",\"code\":\"YPAMEA\",\"device_id\":\"343CS149B6001234\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:44:34.000Z\",\"status\":\"PAIRED\",\"status_changed_at\":\"2026-04-07T16:44:53.000Z\",\"paired_at\":\"2026-04-07T16:44:53.000Z\"}","created_at":"2026-04-07 12:44:34","updated_at":"2026-04-07 12:44:59"}
square_terminal · create_code
2026-04-07 12:44:34 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #DTMM1Q9V2N4DE
Context
[]
Before
[]
After
{"backend_square_terminal_code_id":"43","square_device_code_id":"DTMM1Q9V2N4DE","code_value":"YPAMEA","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:49:34","paired_at":"2026-04-07 16:44:34","raw_json":"{\"id\":\"DTMM1Q9V2N4DE\",\"name\":\"Front Desk Terminal\",\"code\":\"YPAMEA\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:49:34.000Z\",\"created_at\":\"2026-04-07T16:44:34.226Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:44:34.000Z\"}","created_at":"2026-04-07 12:44:34","updated_at":"2026-04-07 12:44:34"}
square_terminal · refresh_code
2026-04-07 12:32:47 · anonymous · /backend/square_terminal.php?refreshed_codes=4
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:32:39"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:32:47"}
square_terminal · refresh_code
2026-04-07 12:32:40 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #5JVYM58J39RMV
Context
[]
Before
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:09:16"}
After
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:32:40"}
square_terminal · refresh_code
2026-04-07 12:32:40 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #7M14JAR5FMGAR
Context
[]
Before
{"backend_square_terminal_code_id":"9","square_device_code_id":"7M14JAR5FMGAR","code_value":"HCWMAB","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"7M14JAR5FMGAR\",\"name\":\"Front Desk Terminal\",\"code\":\"HCWMAB\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:10:16.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:10:16","updated_at":"2026-04-07 12:22:56"}
After
{"backend_square_terminal_code_id":"9","square_device_code_id":"7M14JAR5FMGAR","code_value":"HCWMAB","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"7M14JAR5FMGAR\",\"name\":\"Front Desk Terminal\",\"code\":\"HCWMAB\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:10:16.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:10:16","updated_at":"2026-04-07 12:32:40"}
square_terminal · refresh_code
2026-04-07 12:32:39 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #J2DTPYA05PXJ8
Context
[]
Before
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:28:57"}
After
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:32:39"}
square_terminal · refresh_code
2026-04-07 12:32:39 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:32:31"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:32:39"}
square_terminal · refresh_code
2026-04-07 12:32:31 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:32:27"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:32:31"}
square_terminal · refresh_code
2026-04-07 12:32:27 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:32:22"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:32:27"}
square_terminal · refresh_code
2026-04-07 12:32:22 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:56"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:32:22"}
square_terminal · refresh_code
2026-04-07 12:30:56 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:53"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:56"}
square_terminal · refresh_code
2026-04-07 12:30:53 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:50"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:53"}
square_terminal · refresh_code
2026-04-07 12:30:50 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:46"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:50"}
square_terminal · refresh_code
2026-04-07 12:30:46 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:37"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:46"}
square_terminal · refresh_code
2026-04-07 12:30:37 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:34"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:37"}
square_terminal · refresh_code
2026-04-07 12:30:34 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:30"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:34"}
square_terminal · refresh_code
2026-04-07 12:30:30 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:19"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:30"}
square_terminal · refresh_code
2026-04-07 12:30:19 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:14"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:19"}
square_terminal · refresh_code
2026-04-07 12:30:14 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:11"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:14"}
square_terminal · refresh_code
2026-04-07 12:30:11 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:06"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:11"}
square_terminal · refresh_code
2026-04-07 12:30:06 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:29:58"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:30:06"}
square_terminal · refresh_code
2026-04-07 12:29:58 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:29:26"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:29:58"}
square_terminal · refresh_code
2026-04-07 12:29:26 · anonymous · /backend/square_terminal.php?created=1&code=PMCKQJJ4CRN5W
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:01.854Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:29:02"}
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:02.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:29:26"}
square_terminal · create_code
2026-04-07 12:29:02 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #PMCKQJJ4CRN5W
Context
[]
Before
[]
After
{"backend_square_terminal_code_id":"21","square_device_code_id":"PMCKQJJ4CRN5W","code_value":"FTRVTD","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:34:01","paired_at":"2026-04-07 16:29:01","raw_json":"{\"id\":\"PMCKQJJ4CRN5W\",\"name\":\"Front Desk Terminal\",\"code\":\"FTRVTD\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:34:01.000Z\",\"created_at\":\"2026-04-07T16:29:01.854Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:29:01.000Z\"}","created_at":"2026-04-07 12:29:02","updated_at":"2026-04-07 12:29:02"}
square_terminal · refresh_code
2026-04-07 12:28:57 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #J2DTPYA05PXJ8
Context
[]
Before
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:28:35"}
After
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:28:57"}
square_terminal · refresh_code
2026-04-07 12:28:35 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #J2DTPYA05PXJ8
Context
[]
Before
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:28:06","paired_at":"2026-04-07 16:23:06","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:28:06.000Z\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:23:06.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:27:47"}
After
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:28:35"}
square_terminal · refresh_code
2026-04-07 12:27:47 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #J2DTPYA05PXJ8
Context
[]
Before
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:28:06","paired_at":"2026-04-07 16:23:06","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:28:06.000Z\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:23:06.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:27:43"}
After
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:28:06","paired_at":"2026-04-07 16:23:06","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:28:06.000Z\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:23:06.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:27:47"}
square_terminal · refresh_code
2026-04-07 12:27:43 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #J2DTPYA05PXJ8
Context
[]
Before
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:28:06","paired_at":"2026-04-07 16:23:06","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:28:06.000Z\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:23:06.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:27:38"}
After
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:28:06","paired_at":"2026-04-07 16:23:06","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:28:06.000Z\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:23:06.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:27:43"}
square_terminal · refresh_code
2026-04-07 12:27:38 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #J2DTPYA05PXJ8
Context
[]
Before
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:28:06","paired_at":"2026-04-07 16:23:06","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:28:06.000Z\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:23:06.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:27:22"}
After
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:28:06","paired_at":"2026-04-07 16:23:06","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:28:06.000Z\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:23:06.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:27:38"}
square_terminal · refresh_code
2026-04-07 12:27:22 · anonymous · /backend/square_terminal.php?created=1&code=J2DTPYA05PXJ8
change
backend_square_terminal_code #J2DTPYA05PXJ8
Context
[]
Before
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:28:06","paired_at":"2026-04-07 16:23:06","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:28:06.000Z\",\"created_at\":\"2026-04-07T16:23:06.476Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:23:06.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:23:06"}
After
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:28:06","paired_at":"2026-04-07 16:23:06","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:28:06.000Z\",\"created_at\":\"2026-04-07T16:23:06.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:23:06.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:27:22"}
square_terminal · create_code
2026-04-07 12:23:06 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #J2DTPYA05PXJ8
Context
[]
Before
[]
After
{"backend_square_terminal_code_id":"14","square_device_code_id":"J2DTPYA05PXJ8","code_value":"SVDRSM","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:28:06","paired_at":"2026-04-07 16:23:06","raw_json":"{\"id\":\"J2DTPYA05PXJ8\",\"name\":\"Front Desk Terminal\",\"code\":\"SVDRSM\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:28:06.000Z\",\"created_at\":\"2026-04-07T16:23:06.476Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:23:06.000Z\"}","created_at":"2026-04-07 12:23:06","updated_at":"2026-04-07 12:23:06"}
square_terminal · refresh_code
2026-04-07 12:22:56 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #7M14JAR5FMGAR
Context
[]
Before
{"backend_square_terminal_code_id":"9","square_device_code_id":"7M14JAR5FMGAR","code_value":"HCWMAB","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:15:16","paired_at":"2026-04-07 16:10:16","raw_json":"{\"id\":\"7M14JAR5FMGAR\",\"name\":\"Front Desk Terminal\",\"code\":\"HCWMAB\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:15:16.000Z\",\"created_at\":\"2026-04-07T16:10:16.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:10:16.000Z\"}","created_at":"2026-04-07 12:10:16","updated_at":"2026-04-07 12:10:25"}
After
{"backend_square_terminal_code_id":"9","square_device_code_id":"7M14JAR5FMGAR","code_value":"HCWMAB","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"7M14JAR5FMGAR\",\"name\":\"Front Desk Terminal\",\"code\":\"HCWMAB\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:10:16.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:10:16","updated_at":"2026-04-07 12:22:56"}
square_terminal · refresh_code
2026-04-07 12:10:25 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #7M14JAR5FMGAR
Context
[]
Before
{"backend_square_terminal_code_id":"9","square_device_code_id":"7M14JAR5FMGAR","code_value":"HCWMAB","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:15:16","paired_at":"2026-04-07 16:10:16","raw_json":"{\"id\":\"7M14JAR5FMGAR\",\"name\":\"Front Desk Terminal\",\"code\":\"HCWMAB\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:15:16.000Z\",\"created_at\":\"2026-04-07T16:10:16.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:10:16.000Z\"}","created_at":"2026-04-07 12:10:16","updated_at":"2026-04-07 12:10:22"}
After
{"backend_square_terminal_code_id":"9","square_device_code_id":"7M14JAR5FMGAR","code_value":"HCWMAB","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:15:16","paired_at":"2026-04-07 16:10:16","raw_json":"{\"id\":\"7M14JAR5FMGAR\",\"name\":\"Front Desk Terminal\",\"code\":\"HCWMAB\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:15:16.000Z\",\"created_at\":\"2026-04-07T16:10:16.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:10:16.000Z\"}","created_at":"2026-04-07 12:10:16","updated_at":"2026-04-07 12:10:25"}
square_terminal · refresh_code
2026-04-07 12:10:22 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #7M14JAR5FMGAR
Context
[]
Before
{"backend_square_terminal_code_id":"9","square_device_code_id":"7M14JAR5FMGAR","code_value":"HCWMAB","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:15:16","paired_at":"2026-04-07 16:10:16","raw_json":"{\"id\":\"7M14JAR5FMGAR\",\"name\":\"Front Desk Terminal\",\"code\":\"HCWMAB\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:15:16.000Z\",\"created_at\":\"2026-04-07T16:10:16.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:10:16.000Z\"}","created_at":"2026-04-07 12:10:16","updated_at":"2026-04-07 12:10:19"}
After
{"backend_square_terminal_code_id":"9","square_device_code_id":"7M14JAR5FMGAR","code_value":"HCWMAB","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:15:16","paired_at":"2026-04-07 16:10:16","raw_json":"{\"id\":\"7M14JAR5FMGAR\",\"name\":\"Front Desk Terminal\",\"code\":\"HCWMAB\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:15:16.000Z\",\"created_at\":\"2026-04-07T16:10:16.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:10:16.000Z\"}","created_at":"2026-04-07 12:10:16","updated_at":"2026-04-07 12:10:22"}
square_terminal · refresh_code
2026-04-07 12:10:19 · anonymous · /backend/square_terminal.php?created=1&code=7M14JAR5FMGAR
change
backend_square_terminal_code #7M14JAR5FMGAR
Context
[]
Before
{"backend_square_terminal_code_id":"9","square_device_code_id":"7M14JAR5FMGAR","code_value":"HCWMAB","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:15:16","paired_at":"2026-04-07 16:10:16","raw_json":"{\"id\":\"7M14JAR5FMGAR\",\"name\":\"Front Desk Terminal\",\"code\":\"HCWMAB\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:15:16.000Z\",\"created_at\":\"2026-04-07T16:10:16.419Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:10:16.000Z\"}","created_at":"2026-04-07 12:10:16","updated_at":"2026-04-07 12:10:16"}
After
{"backend_square_terminal_code_id":"9","square_device_code_id":"7M14JAR5FMGAR","code_value":"HCWMAB","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:15:16","paired_at":"2026-04-07 16:10:16","raw_json":"{\"id\":\"7M14JAR5FMGAR\",\"name\":\"Front Desk Terminal\",\"code\":\"HCWMAB\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:15:16.000Z\",\"created_at\":\"2026-04-07T16:10:16.000Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:10:16.000Z\"}","created_at":"2026-04-07 12:10:16","updated_at":"2026-04-07 12:10:19"}
square_terminal · create_code
2026-04-07 12:10:16 · anonymous · /backend/square_terminal.php?synced=0
change
backend_square_terminal_code #7M14JAR5FMGAR
Context
[]
Before
[]
After
{"backend_square_terminal_code_id":"9","square_device_code_id":"7M14JAR5FMGAR","code_value":"HCWMAB","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:15:16","paired_at":"2026-04-07 16:10:16","raw_json":"{\"id\":\"7M14JAR5FMGAR\",\"name\":\"Front Desk Terminal\",\"code\":\"HCWMAB\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:15:16.000Z\",\"created_at\":\"2026-04-07T16:10:16.419Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:10:16.000Z\"}","created_at":"2026-04-07 12:10:16","updated_at":"2026-04-07 12:10:16"}
square_terminal · refresh_code
2026-04-07 12:09:16 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #5JVYM58J39RMV
Context
[]
Before
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:09:12"}
After
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:09:16"}
square_terminal · refresh_code
2026-04-07 12:09:12 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #5JVYM58J39RMV
Context
[]
Before
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:09:07"}
After
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:09:12"}
square_terminal · refresh_code
2026-04-07 12:09:07 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #5JVYM58J39RMV
Context
[]
Before
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:09:01"}
After
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:09:07"}
square_terminal · refresh_code
2026-04-07 12:09:01 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #5JVYM58J39RMV
Context
[]
Before
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:08:58"}
After
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:09:01"}
square_terminal · refresh_code
2026-04-07 12:08:58 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #5JVYM58J39RMV
Context
[]
Before
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:08:54"}
After
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:08:58"}
square_terminal · refresh_code
2026-04-07 12:08:54 · anonymous · /backend/square_terminal.php?refreshed=1
change
backend_square_terminal_code #5JVYM58J39RMV
Context
[]
Before
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:08:37"}
After
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:08:54"}
square_terminal · refresh_code
2026-04-07 12:08:37 · anonymous · /backend/square_terminal.php?created=1&code=5JVYM58J39RMV
change
backend_square_terminal_code #5JVYM58J39RMV
Context
[]
Before
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:05:24","paired_at":"2026-04-07 16:00:24","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:05:24.000Z\",\"created_at\":\"2026-04-07T16:00:24.731Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:00:24.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:00:24"}
After
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"EXPIRED","location_id":"5W9V4C95PWDVQ","pair_by":null,"paired_at":"1970-01-01 00:00:00","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"created_at\":\"2026-04-07T16:00:25.000Z\",\"status\":\"EXPIRED\",\"status_changed_at\":\"1970-01-01T00:00:00.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:08:37"}
square_terminal · create_code
2026-04-07 12:00:24 · anonymous · /backend/square_terminal.php
change
backend_square_terminal_code #5JVYM58J39RMV
Context
[]
Before
[]
After
{"backend_square_terminal_code_id":"1","square_device_code_id":"5JVYM58J39RMV","code_value":"NJQDJK","device_name":"Front Desk Terminal","product_type":"TERMINAL_API","code_status":"UNPAIRED","location_id":"5W9V4C95PWDVQ","pair_by":"2026-04-07 16:05:24","paired_at":"2026-04-07 16:00:24","raw_json":"{\"id\":\"5JVYM58J39RMV\",\"name\":\"Front Desk Terminal\",\"code\":\"NJQDJK\",\"product_type\":\"TERMINAL_API\",\"location_id\":\"5W9V4C95PWDVQ\",\"pair_by\":\"2026-04-07T16:05:24.000Z\",\"created_at\":\"2026-04-07T16:00:24.731Z\",\"status\":\"UNPAIRED\",\"status_changed_at\":\"2026-04-07T16:00:24.000Z\"}","created_at":"2026-04-07 12:00:24","updated_at":"2026-04-07 12:00:24"}
documents · upload
2026-04-07 11:53:37 · anonymous · /backend/documents.php
change
backend_document #9
Context
{"file_name":"README-libreoffice-conversion.md","mime_type":"application/octet-stream"}
Before
[]
After
{"backend_document_id":"9","document_type":"upload","title":"Copilot - document changes","slug":"copilot-document-changes","summary_text":"Copilot - document changes to this module","content_markdown":null,"content_html":null,"file_name":"README-libreoffice-conversion.md","stored_name":"20260407-155337-5741b116.md","mime_type":"application/octet-stream","file_size_bytes":"10541","storage_path":"/mnt/drive1/customerdb/backend/documents_storage/20260407-155337-5741b116.md","is_deleted":"0","created_at":"2026-04-07 11:53:37","updated_at":"2026-04-07 11:53:37","editor_content":"# LibreOffice Conversion & Editor Integration\r\n\r\nThis document describes the features added to support server-side LibreOffice conversions, the asynchronous conversion queue and worker, frontend changes, and deployment/run instructions.\r\n\r\nIMPORTANT: This document assumes the project root is the repo root (e.g. `C:\\code\\customerdb`) and paths below are relative to it.\r\n\r\n---\r\n\r\n## Overview\r\n\r\nSummary of what was added or changed:\r\n\r\n- Frontend/editor\r\n  - `backend/documents.php`\r\n    - Replaced simple markdown renderer with `marked.js` and added Prism highlighting.\r\n    - Toolbar: Save button, view toggles, fullscreen, color highlight swatches that wrap selected text in a `<span class=\"hl\" style=\"background:...\">`.\r\n    - Files that can be edited inline show an **Edit** button and load into the editor; non-inline files show **Open** (open stored file in new tab).\r\n    - When a file is non-inline and conversion is pending, the preview shows a conversion status block and polls the API until `content_html` becomes available.\r\n\r\n- Document extraction & conversion helpers\r\n  - `backend/document_service.php`\r\n    - Added `app_document_can_edit_inline()` to detect files editable directly in the textarea.\r\n    - Implemented lightweight extraction for `docx`, `odt`, `rtf`, `pptx`, `xlsx` where possible (Zip-based parsing for Office formats).\r\n    - Added LibreOffice helpers: `app_libreoffice_find_command()`, `app_libreoffice_convert_to_html()`, `app_libreoffice_convert_to_text()`.\r\n    - Added queuing hook `app_conversion_enqueue()` to create file-based jobs and insert DB job rows.\r\n\r\n- Asynchronous conversion queue and worker\r\n  - Job queue storage: `backend/documents_storage/convert_queue/job-*.json`.\r\n  - DB tracking: table `backend_conversion_job` to track job lifecycle (`queued`, `processing`, `done`, `error`, `cancelled`).\r\n  - Worker script: `backend/bin/convert_worker.php` ? processes job files, runs LibreOffice conversions, saves results to `backend_document.content_html` and updates job status in DB.\r\n  - Example systemd unit: `backend/systemd/convert-worker.service` (adjust paths/user before enabling).\r\n\r\n- API to manage jobs\r\n  - `backend/api/conversion_jobs.php` ? list jobs and `POST` actions: `retry`, `cancel`.\r\n\r\n- Migration and helper tooling\r\n  - Migration SQL: `migrations/20260407_add_conversion_job.sql` ? creates job table and ensures `content_html` on `backend_document`.\r\n  - Migration runner: `backend/bin/run_migration.php` ? executes the migration SQL using the app DB connection.\r\n\r\n---\r\n\r\n## File map (key files)\r\n\r\n- `backend/documents.php` ? Editor UI, preview handling, polling, highlight UI.\r\n- `backend/document_service.php` ? Extraction/queue helpers and LibreOffice integration.\r\n- `backend/api/documents.php` ? Document detail API used by frontend.\r\n- `backend/api/conversion_jobs.php` ? New API to list/manage conversion jobs.\r\n- `backend/bin/convert_worker.php` ? Worker that runs LibreOffice and updates DB.\r\n- `backend/bin/run_migration.php` ? Helper to run SQL migration with application DB config.\r\n- `migrations/20260407_add_conversion_job.sql` ? SQL migration file to apply.\r\n- `backend/systemd/convert-worker.service` ? example systemd unit to run worker as daemon.\r\n\r\n---\r\n\r\n## Database changes\r\n\r\nThe migration will:\r\n\r\n1. Create table `backend_conversion_job` with columns:\r\n   - `conversion_job_id` (PK)\r\n   - `backend_document_id` (FK-ish)\r\n   - `status` (VARCHAR) values: `queued`, `processing`, `done`, `error`, `cancelled`\r\n   - `storage_path`, `output_path`, `error_text`, `created_at`, `updated_at`\r\n\r\n2. Ensure `backend_document.content_html` LONGTEXT column exists (used for serving converted HTML previews).\r\n\r\nMigration file: `migrations/20260407_add_conversion_job.sql`\r\n\r\n### Apply migration\r\n\r\nTwo options:\r\n\r\n- Run via the application DB connection (uses `app_db()` settings in `bootstrap.php`):\r\n\r\n  - From repository root:\r\n\r\n    ```bash\r\n    php backend/bin/run_migration.php\r\n    ```\r\n\r\n  - This script reads `migrations/20260407_add_conversion_job.sql` and executes the statements.\r\n\r\n- Run directly with MariaDB client (replace placeholders):\r\n\r\n  ```bash\r\n  mysql -u <db_user> -p ellas_alterations < migrations/20260407_add_conversion_job.sql\r\n  ```\r\n\r\nNote: The app expects the `ellas_alterations` database (the DB name you mentioned). Ensure the DB user has `CREATE/ALTER` privileges.\r\n\r\n---\r\n\r\n## Server prerequisites\r\n\r\n- LibreOffice must be installed and available on PATH as `libreoffice` or `soffice`.\r\n  - Debian/Ubuntu example: `sudo apt update && sudo apt install -y libreoffice`\r\n- PHP must have `exec()` available for the worker process (worker uses `exec()` to invoke LibreOffice).\r\n- PHP `ZipArchive` extension (`php-zip`) is recommended for better extraction of docx/odt/pptx/xlsx.\r\n- The web/worker user must have read access to the stored files and write access to:\r\n  - `backend/documents_storage/convert_queue` (job files)\r\n- Prevent running conversions as `root` in production ? configure a dedicated unprivileged user.\r\n\r\nSecurity note: Converting user-uploaded files can be risky. Run the worker as a dedicated, restricted user, and consider sandboxing or containerization.\r\n\r\n---\r\n\r\n## Worker (how it runs)\r\n\r\n- Manual run (process queued jobs once):\r\n\r\n  ```bash\r\n  php backend/bin/convert_worker.php\r\n  ```\r\n\r\n- Run continuously for development/testing:\r\n\r\n  ```bash\r\n  while true; do php backend/bin/convert_worker.php; sleep 3; done\r\n  ```\r\n\r\n- Systemd service (example):\r\n  - Copy `backend/systemd/convert-worker.service` to `/etc/systemd/system/convert-worker.service` and update `WorkingDirectory` and `ExecStart` to match your deployment path.\r\n  - Enable and start:\r\n\r\n    ```bash\r\n    sudo systemctl daemon-reload\r\n    sudo systemctl enable --now convert-worker.service\r\n    sudo systemctl status convert-worker.service\r\n    ```\r\n\r\nThe worker behavior:\r\n- Scans `backend/documents_storage/convert_queue/` for `job-*.json` files.\r\n- Marks DB job `status = processing` and updates the JSON job file with a timestamp.\r\n- Runs LibreOffice to convert the source file to HTML. If that fails, it attempts to convert to plain text.\r\n- On success, writes converted HTML (or text wrapped as HTML) into `backend_document.content_html` and updates job row `status = done` and `output_path`.\r\n- On failure, updates job row `status = error` and stores `error_text`.\r\n- Removes the job file when finished.\r\n\r\nNote: The worker updates DB rows using the same DB configuration as the app.\r\n\r\n---\r\n\r\n## API: managing conversion jobs\r\n\r\n- List jobs\r\n  - `GET /backend/api/conversion_jobs.php`\r\n  - Returns recent job rows (limited to 200)\r\n\r\n- Retry a job\r\n  - `POST /backend/api/conversion_jobs.php` with JSON body `{ \"action\": \"retry\", \"conversion_job_id\": <id> }`\r\n  - Re-enqueues a job and marks DB row `status = 'queued'`.\r\n\r\n- Cancel a job\r\n  - `POST /backend/api/conversion_jobs.php` with JSON body `{ \"action\": \"cancel\", \"conversion_job_id\": <id> }`\r\n\r\nThe endpoint returns JSON success or error messages.\r\n\r\n---\r\n\r\n## Frontend behavior & UX\r\n\r\n- When selecting a document in the backend Documents UI:\r\n  - If `document.can_edit_inline` is true, the **Edit** button loads the document into the textarea editor.\r\n  - If not editable inline:\r\n    - If `document.content_html` exists, the preview renders the converted HTML (Prism highlighting applied).\r\n    - If `content_html` is missing, the preview shows a **Conversion pending...** panel with a placeholder progress bar and `convertStatus` text ? the page polls the documents API until `content_html` becomes available.\r\n\r\n- Save / highlights\r\n  - Toolbar Save button submits the same form as the Save Document button.\r\n  - Highlight swatches wrap selected text with `<span class=\"hl\" style=\"background:...\">` which renders in the preview. Highlights will be saved inside `content_markdown` (persisted as HTML markup in the markdown content).\r\n\r\n---\r\n\r\n## How to test end-to-end\r\n\r\n1. Ensure migration applied and DB reachable.\r\n2. Ensure LibreOffice is installed and the worker can run `exec()`.\r\n3. Upload a `.docx` / `.pptx` / `.odt` file using the Upload form in the backend.\r\n4. Check that a JSON job file appears in `backend/documents_storage/convert_queue/` and a row is created in `backend_conversion_job` with `status = queued`.\r\n5. Run the worker manually: `php backend/bin/convert_worker.php`.\r\n6. Worker should convert and update `backend_document.content_html` and set job `status = done`.\r\n7. In the Documents page, select the document: the preview should update to show converted HTML (or show Conversion pending until conversion completes).\r\n\r\n---\r\n\r\n## Troubleshooting\r\n\r\n- No jobs processed:\r\n  - Ensure worker runs under an account that can read job files and run `libreoffice`.\r\n  - Confirm `libreoffice` is on PATH and `php -r \"echo shell_exec('command -v libreoffice');\"` returns a path.\r\n  - Check permissions of `backend/documents_storage/convert_queue/`.\r\n\r\n- Conversion fails / `status = error`:\r\n  - Inspect `backend_conversion_job.error_text` for details.\r\n  - Try running `php backend/bin/convert_worker.php` manually and capture output.\r\n  - Confirm LibreOffice works on the file from the worker user: `libreoffice --headless --convert-to html --outdir /tmp /path/to/file.docx`.\r\n\r\n- HTML content looks malformed or contains unsafe markup:\r\n  - Sanitize HTML before serving (recommended). Consider `HTMLPurifier` or a whitelist approach.\r\n\r\n---\r\n\r\n## Recommended next improvements (future work)\r\n\r\n- Migrate the queue to a DB-backed atomic queue (use `backend_conversion_job` rows as the primary queue source) so workers select and lock rows (avoid file races).\r\n- Sanitize `content_html` before storing/serving.\r\n- Add a small admin page to list conversion jobs and perform retry/cancel from the UI (calls `backend/api/conversion_jobs.php`).\r\n- Add metrics & logging for conversion durations and failure counts.\r\n- Implement a retention policy / cleanup job for old job records and temp files.\r\n\r\n---\r\n\r\n## Contact / follow-up\r\n\r\nTell me which of the following you want next and I will implement it:\r\n\r\n- Convert the file-based queue to a DB-atomic queue (worker picks rows with `status='queued'` using an atomic update), and remove JSON job files.\r\n- Add the admin UI to manage conversion jobs inside the backend.\r\n- Implement HTML sanitization of `content_html` prior to storage.\r\n- Update the systemd unit to match the exact server paths & user if you give me that information.\r\n\r\n\r\n\r\n---\r\n\r\n*Document generated by GitHub Copilot.*\r\n","is_text_editable":1,"can_edit_inline":1}
document_service.php
2026-04-07 11:53:37 · anonymous · /backend/documents.php?backend_document_id=9&uploaded=1
error
Call to undefined function app_document_can_edit_inline()
Script: /mnt/drive1/customerdb/webui/backend/documents.php
IP: 192.168.7.128
Context
{"type":"Error","file":"/mnt/drive1/customerdb/backend/document_service.php","line":199,"trace":"#0 /mnt/drive1/customerdb/backend/documents.php(54): app_document_detail()\n#1 {main}"}
bootstrap.php
2026-04-07 11:52:34 · anonymous · /backend/documents.php
php_error
Cannot modify header information - headers already sent by (output started at /mnt/drive1/customerdb/backend/page_helpers.php:24)
Script: /mnt/drive1/customerdb/webui/backend/documents.php
IP: 192.168.7.128
Context
{"file":"/mnt/drive1/customerdb/backend/bootstrap.php","line":570,"severity_code":2}
← Prev 1 5560 5561 5562 5563 Next →