Advanced Search
Search Results
167 total results found
Cloud Backup Architecture Standards
This page defines the standard architecture for how DTC provisions cloud object storage (Backblaze B2, S3-compatible) for backup workloads. It applies to all cloud-backed backup systems regardless of source platform — Veeam BDR, TrueNAS Cloud Sync, MSP360, or ...
TrueNAS Cloud Sync Provisioning SOP
This SOP documents how DTC provisions a TrueNAS appliance (CORE or SCALE) with Backblaze B2 cloud-backed offsite backup via Cloud Sync Tasks. It covers NinjaOne NMS onboarding, device GUID generation, bucket provisioning, scoped application key creation, Cloud...
Client Credential Administration Standard
This standard defines how DTC technicians create, assign, rotate, and document credentials across DTC-managed client environments. It applies to all DTC-managed client infrastructure and supersedes any per-tech or per-client variation. See also: DTC Company In...
Operational UUID (OUID) Standard
The Operational UUID (OUID) is DTC's universal entity identifier. Every managed entity in DTC's ecosystem carries one: organizations, locations, devices, users, workload instances. It is the canonical identity that bridges all DTC-managed systems — NinjaOne, B...
2026 DIA Annual Conference - Nashville
Overview Event: DIA (Dental Integrators Association) Annual Conference Dates: April 16-18, 2026 Venue: Margaritaville Hotel, Nashville, TN Room: Seagrass Room (main sessions) / Fins Up - Poolside (reception) / Porch of Indecision (meals) Timezone: Central (Ame...
Understanding portal statuses
Every invoice, quote, deposit, and ticket in the portal shows a status badge. These badges tell you where things stand at a glance — and which ones, if any, need your attention. Invoice statuses Invoices appear in the Billing section under the Invoices tab. ...
Build for Unreliable Integrations
Any third-party system DTC integrates with will eventually rate-limit us, drop a webhook, return a 500, or return 404 on an entity it created ten minutes ago. This is not a bug in the upstream — it is the default behavior of every MSP-tier API we depend on (Ha...
Writes Are Jobs, Reads Are Cached
User-facing requests never block on outbound writes. Every write to a third-party system is queued and executed in the background; every read is served from a local cache. The HTTP handler does the minimum amount of work needed to acknowledge the user and retu...
Everything Has a Timestamp and a Deadline
Every record in a DTC-built system answers three questions: when was I written? when did I last change upstream? when should I give up? If any of those answers is "I don't know," the system can't reason about freshness, can't detect drift, and can't escalate s...
Webhook-Driven, Reconciler-Bounded
Freshness comes from webhooks. The reconciler is what catches the webhooks that get dropped. Full-table polling is not an option. The rule: webhooks are the primary freshness mechanism. A periodic, change-based reconciler handles the gap between "usually deliv...
Explicit Handling of Absent Data
NULL is not 0. NULL is not "". NULL is not false. NULL is not "no change." Treating any of those as equivalent in DTC-built code is a production bug waiting to happen. The rule: every comparison, every filter, every conditional that can encounter NULL handles ...
Branding in the Environment, Not the Code
Company name, logos, support contacts, color palette, email footer copy, physical address — all the things that identify a deployment as DTC's — live in environment variables. Not hard-coded strings in the source. The rule: the same compiled binary ships to an...
Versioned, Signed, and Tagged
Every deployment is traceable back to a specific commit by a specific author. Version numbers are durable; commits are signed; Docker image tags match git refs. If production misbehaves, the first question ("what's running?") always has an answer that's specif...
Closed Records Are Immutable Until Proven Otherwise
A closed ticket, a paid invoice, a rejected quote — these are terminal states. They rarely change. When they do change (reopened, refunded, reconsidered), a webhook tells us. Until then, we read them from the local cache without touching the upstream, even if ...
Observability Is a First-Class Citizen
When something breaks in production, the first question is always: "what happened?" The answer has to be available in under five minutes, without deploying code, without adding logging, without guessing. The rule: every DTC-built system has structured logs wit...
Every Integration Has a Resume Endpoint
Users close tabs. Networks drop connections. Browsers reconnect SSE streams. Servers deploy. Workers miss events. Emails arrive hours after the user forgot what they were doing. All of those paths need to converge on the same outcome: the user comes back, and ...
2026 DIA Mid-Year - Boston
Overview Event: DIA (Dental Integrators Association) Mid-Year Meeting Dates: October 6-8, 2026 Location: Boston, MA Venue: TBD (watch for announcement) Timezone: Eastern (America/New_York) Announced in the post-event communication following the April 2026 Annu...
Setting Up Your Portal Account
This page covers everything you need to get started with the DTC Client Portal — whether you're brand new to DTC, you've been a DTC contact for a while and are setting up portal access for the first time, or you just need to reset your password. Access the por...