84 lines
2.1 KiB
Markdown
Executable File
84 lines
2.1 KiB
Markdown
Executable File
# Helpdesk Remote Sync
|
|
|
|
The Helpdesk module can synchronise its configuration and operational data between two Helpdesk installations.
|
|
|
|
## Configure both hosts
|
|
|
|
Use a long random shared token. You can use the same token in both directions or separate inbound/outbound tokens.
|
|
|
|
```dotenv
|
|
HELPDESK_SYNC_REMOTE_URL=https://other-helpdesk.example.com
|
|
HELPDESK_SYNC_REMOTE_TOKEN=replace-with-a-long-random-token
|
|
HELPDESK_SYNC_ACCEPT_TOKEN=replace-with-a-long-random-token
|
|
|
|
HELPDESK_SYNC_INCLUDE_ATTACHMENTS=true
|
|
HELPDESK_SYNC_MAX_ATTACHMENT_BYTES=10485760
|
|
HELPDESK_SYNC_TIMEOUT=120
|
|
```
|
|
|
|
After changing `.env`:
|
|
|
|
```bash
|
|
php artisan optimize:clear
|
|
```
|
|
|
|
## Check the remote endpoint
|
|
|
|
```bash
|
|
curl -H "Authorization: Bearer YOUR_TOKEN" \
|
|
https://other-helpdesk.example.com/api/helpdesk/sync/status
|
|
```
|
|
|
|
## Pull from the configured remote host
|
|
|
|
```bash
|
|
php artisan helpdesk:sync pull
|
|
```
|
|
|
|
## Push to the configured remote host
|
|
|
|
```bash
|
|
php artisan helpdesk:sync push
|
|
```
|
|
|
|
## Settings only
|
|
|
|
```bash
|
|
php artisan helpdesk:sync pull --settings-only
|
|
php artisan helpdesk:sync push --settings-only
|
|
```
|
|
|
|
## Do not transfer attachment file contents
|
|
|
|
```bash
|
|
php artisan helpdesk:sync pull --without-files
|
|
```
|
|
|
|
Attachment database metadata still synchronises when Helpdesk data is included.
|
|
|
|
## Mirror mode
|
|
|
|
By default, sync is non-destructive: rows are inserted or updated but destination-only rows are retained.
|
|
|
|
To make the destination mirror the source:
|
|
|
|
```bash
|
|
php artisan helpdesk:sync pull --mirror
|
|
```
|
|
|
|
Use mirror mode carefully. It can delete Helpdesk records from the destination.
|
|
|
|
## User mapping
|
|
|
|
Helpdesk users are mapped by email address, not numeric user ID. `helpdesk_admin` and `helpdesk_agent` flags are synchronised. Password hashes are never copied. If a referenced user does not exist on the destination, a local user record is created with a random password.
|
|
|
|
## API endpoints
|
|
|
|
All sync endpoints require a Bearer token matching `HELPDESK_SYNC_ACCEPT_TOKEN`.
|
|
|
|
- `GET /api/helpdesk/sync/status`
|
|
- `GET /api/helpdesk/sync/export`
|
|
- `POST /api/helpdesk/sync/import`
|
|
|
|
The payload is versioned using `schema_version`.
|