Home / Docs / Admin Guide

SoxDesk Admin Guide

Everything an administrator needs: users and roles, email sign-in (SMTP), the shared data store, backups and restore, licensing, and advanced overrides.

Admin functions live on the Admin page and are only visible to users with the admin role.


1. Users and roles

Application roles (Admin → Users)

RoleCan do
memberNormal use: audits they're on, testing, review, workpapers.
adminEverything members can, plus: create/edit users, SMTP settings, data store path, license entry, view pending login codes.

First-run bootstrap

On a brand-new data store, SoxDesk shows a bootstrap screen that creates the initial admin. It is guarded server-side: it only works while no active admin with an email exists, so it can't be used to add accounts later.

Audit roles (Admin → Team)

Per audit, members are added as lead, tester, or reviewer. Leads (or admins) manage the team, assign testers/reviewers on tests, control leverage links, run RCM imports, and can force-release workpaper checkouts. The workflow enforces that a test's reviewer differs from its preparer.


2. Sign-in and SMTP

SoxDesk offers three sign-in modes; choose per deployment under Admin → Login method:

Any mode creates a 7-day session on success (httpOnly cookie, hashed token, stored in the shared database — so sessions roam between installs pointing at the same store).

Configuring SMTP (Admin → Email sign-in (SMTP))

Enter your mail server's host, port, TLS setting, optional username/password, and a From address (e.g. soxdesk@yourco.com). Save, then use Send test email to confirm delivery. All mail goes through your own SMTP server — SoxDesk has no mail service of its own and makes no other outbound connections.

Typical setups: an internal Exchange/relay endpoint (often port 25, no auth, no TLS inside the LAN) or an authenticated submission endpoint (port 587, TLS).

Dev fallback (before SMTP is configured)

Until SMTP is configured, SoxDesk still works:

This is intended for evaluation and initial setup. Once SMTP is saved, codes are emailed and the pending-codes table disappears.


3. The data store

The data store is one folder containing everything:

<store>\
  soxdesk.db      ← the audit database (SQLite, single file)
  attachments\    ← evidence files (stored under randomized names)
  backups\        ← automatic rotating backups

Pointing at a network share (Admin → Data store)

Enter the shared folder path (e.g. \\fileserver\audit\SoxDesk-Store) and click Save, then restart SoxDesk — the setting takes effect on the next start. Every team member points their own install at the same folder; that is the entire multi-user deployment.

Notes:


4. Backups and restore

What happens automatically

Because the store is plain files, your normal file-share backup (nightly tape/snapshot) covers SoxDesk with no special handling. Note that the automatic backups cover the database only — evidence files in attachments\ change rarely and are best covered by your file-share backup.

Restoring from a backup

  1. Stop every SoxDesk instance pointing at the store (close each "SoxDesk Server" window).
  2. In <store>\backups\, pick the backup to restore (timestamps are in the filename).
  3. Safety copy: rename the current <store>\soxdesk.db to soxdesk.db.broken (don't delete it yet).
  4. Copy the chosen soxdesk-<timestamp>.db into <store>\ and rename it soxdesk.db.
  5. Start SoxDesk and verify. You lose at most the work since that backup was taken; evidence files in attachments\ are unaffected (a restored database may reference attachments uploaded after the backup — those files remain on disk).

5. Licensing (Admin → License)


6. Advanced: host and port overrides

Defaults: SoxDesk listens on 127.0.0.1:5179 — reachable only from the machine it runs on. Two environment variables override this (set them before launching, e.g. in a copy of SoxDesk.cmd):

VariableDefaultMeaning
AF_PORT5179TCP port for the app.
AF_HOST127.0.0.1Bind address. Set to a LAN IP or 0.0.0.0 to allow access from other machines.

Security note: the listener speaks plain HTTP with no TLS. If you set AF_HOST to anything other than localhost, sessions and data cross the LAN unencrypted. The recommended patterns are (a) keep the default and give each user their own install, or (b) front a single shared instance with a TLS-terminating reverse proxy (IIS/nginx/Caddy) and keep SoxDesk itself bound to 127.0.0.1. See the Security Overview for the full picture.


7. Roll-forward and periodic tasks

Questions or problems: support@soxdesk.com (async email, 48-hour response).