Hi Team,
We are evaluating offline functionality for our RMS and CAD web products and are currently analyzing the best approach for implementation. As part of this effort, several design, security, and operational questions have come up, and I would greatly appreciate your feedback based on your experience.
If you have implemented offline capabilities in a CJIS-compliant RMS, CAD, or other public safety application, I would be interested in learning how you approached the following:
Any lessons learned, recommendations, or pitfalls to avoid would be greatly appreciated.
Thank you for your time and feedback.
Thanks,
Murali
Hi Murali,
Thanks for reaching out — these are exactly the questions I've been chewing on for Tickets CAD (the open-source CAD I maintain). Short answer to each, then a note on how I'd want to engage further.
1. Have you implemented offline in a CJIS-compliant CAD?
Partially. Tickets CAD's NewUI is a PWA with offline shell + cached read state and draft authoring for mobile-unit work. It does not yet do full offline status changes / dispatching with conflict resolution — that's the next architectural layer, and the one your questions all converge on.
2. Synchronization strategy.
The pattern that holds up under real-world CAD load is hybrid: append-only logs (CRDT-style) for anything narrative — ICS-214 unit logs, action notes, message threads — because two officers writing simultaneously should interleave, not overwrite. Per-field last-writer-wins with vector-clock timestamps for status / location / simple metadata. A separate idempotent command queue with client-generated UUIDs for any API call that mutates shared state, so reconnects don't double-fire. PouchDB ↔ CouchDB is the proven reference architecture; Yjs / Automerge if you go full CRDT.
3. Record conflicts.
Three buckets by entity type:
4. Securing data at rest.
Web Crypto API (AES-GCM-256) over IndexedDB. Key derived per session from user passphrase via PBKDF2 (≥600k iterations) wrapped by a device-bound public key. Never persist plaintext CJI. Auto-wipe on N failed unlocks. The hard part is documenting the FIPS 140-3 posture in a way your CJIS auditor accepts — browser crypto is generally OK if you can map each primitive to its validated algorithm, but it takes paperwork. WebAuthn or a hardware key adds a real second factor that survives device theft.
5. Officer challenges.
The five we keep seeing:
6. Full offline vs. drafts-only.
Full offline is what officers actually need for weak-signal patrol, but the engineering bill is roughly 10× drafts-only and the CJIS documentation burden is much larger. My recommended posture: full offline read of recent shift state + full offline draft authoring, but any state change that affects other users (status, assignment, dispatching) is either online-only or queued with an explicit "tentative — awaiting sync" badge until the server acks. Officers get most of the value with most of the safety.
7. CJIS / security / ops concerns.
The ones you don't see in the obvious places:
On engaging further. Each of those answers compresses a couple of weeks of design work. I'm happy to keep trading notes at this level for free if it sharpens both our products — that's the point of having an open-source CAD in the conversation. If you want a deeper engagement (review of your sync design, threat model, CJIS auditor-prep, prototype review), I'd want to proceed in one of two ways:
Either path is fine — happy to chat about which fits where you're headed. If neither, the email above is still yours to use.
Regards,
Eric Osterberg
Tickets CAD — https://ticketscad.com
https://github.com/openises
--
You received this message because you are subscribed to the Google Groups "Open Source CAD" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-source-c...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/open-source-cad/CAFZskHm-tdb43LqVgxbv_HcZgM%3D0qes6CkVHJ9gPynC%3DUs_WoA%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/open-source-cad/CAJLaYFVjmJR4%3DmG848jK-fK6-uUNswaN6uvmVnp-zcuzt50wwQ%40mail.gmail.com.