dohosGet started
PLATE Nº 095 · DOCUMENT

Logging

TARGET-STATE DRAFT — NOT APPROVED OR EFFECTIVE
STATUSTarget-state draft
LAST REVIEWEDNone yet — no review has run
CONTACTvia /contact/security
DRAFT NOTICEThis page describes what Dohos records for operational and security purposes, and what it deliberately does not. The exclusions — what must never reach a log — are a settled build requirement. The broader logging program, its retention rules, and its access controls are drawn from Dohos's internal security policy, which is itself an unapproved draft.

01Why logging exists here

Logging exists to diagnose a problem after it happens and to reconstruct what actually occurred on a call or an order — not to accumulate data for its own sake. A restaurant asking "what happened to order 214" or Dohos's own team debugging a failed call both depend on a record that's accurate and attributable, not a guess reconstructed from memory.

That reasoning also sets a limit. A record kept because it answers a real operational or safety question is different from a record kept because collecting everything felt safer than deciding what actually matters — Dohos's policy asks for the first and treats the second as its own kind of risk, since a log nobody needs is still something that has to be protected and can still leak.

02What's recorded

Dohos's logging policy calls for capturing security-relevant events in a minimized, protected way: sign-ins and failed sign-in attempts, permission and role changes, configuration changes, data exports, and access to sensitive views — each tied to a specific actor and timestamp, not a shared or anonymous action.

Order activity specifically is designed around an append-only event history — every change, replacement, and exception to an order is preserved as its own record rather than overwritten, because a restaurant's closeout numbers, a disputed charge, and a customer's changed order all genuinely depend on that trail existing. This is a specific, real design decision from the product's own build specification, not a general policy aspiration.

03What's deliberately never logged

Some categories are excluded from logging by design, as a direct extension of the same rule that keeps them out of Dohos's database entirely (see payments and card data):

NEVER PERSISTED, IN A LOG OR ANYWHERE ELSE
  1. card (PAN) number
  2. card expiry date
  3. card security code (CVC)
  4. payment touch-tone (DTMF) digits

Full call audio is not logged or stored by default either — recording is a separate, explicitly configured capability described at retention, not something that happens automatically as a side effect of ordinary logging.

04Who can see a log

Access to logs follows the same least-privilege discipline described at access control — a role sees what its job requires, and access to a sensitive log view is itself one of the events this page's own §2 says gets recorded.

A restaurant's own settings changes are designed to carry the same kind of trail on a smaller scale: when a manager changes a policy, an hour, or a fee, the record of who changed it and when is meant to be visible to that restaurant's own authorized staff, not only to Dohos internally. A consequential change shouldn't be a mystery to the team that has to live with it.

05Retention

How long a given category of log is kept follows the same schedule described for the underlying data it relates to, rather than a separate, disconnected logging-specific rule — full detail at retention.

06Detection, not just record-keeping

A log that nobody looks at until something has already gone wrong is only half useful. Dohos's policy calls for alerting on defined scenarios — repeated failed sign-ins, an access pattern that crosses a tenant boundary it shouldn't, a spike in exports from one account — with a named owner and a response procedure behind each alert, rather than a log stream nobody is watching.

NOTEThe absence of an alert is not treated as proof that nothing happened. Dohos's policy is explicit that automated detection has to be evaluated for its own blind spots and false negatives, not trusted by default just because it stayed quiet.

07Service and data freshness

A related but distinct idea shows up throughout the product, not only in security logs: the operator console and staff tablet are designed to say plainly when the data on screen might not be current, rather than silently presenting stale information as if it were live. The states that distinction covers:

DATA AND SERVICE STATES SHOWN TO RESTAURANT STAFF
  1. live
  2. refreshing
  3. stale
  4. offline
  5. permission_denied
  6. not_enabled
  7. unavailable
  8. empty
  9. error
  10. unknown

This isn't a security control in the strict sense, but it comes from the same underlying discipline logging does: a system should say what it actually knows, and say plainly when it doesn't, rather than paper over a gap with a confident-looking screen.