Security Overview

Last updated: April 16, 2026

This document describes the security architecture, data handling practices, and compliance features of Adminlog, a Shopify embedded audit trail application developed by Bedrock Digital Apps. It is intended for security teams evaluating Adminlog for enterprise use.

Infrastructure & Data Residency

HostingEnterprise cloud infrastructure in the United States (US-East region). Providers are ISO 27001 certified.
DatabaseManaged PostgreSQL, isolated within a private network — not exposed to the public internet.
Backup storageEncrypted offsite object storage (US region), separate from the primary infrastructure.
Edge / DNSAll traffic is fronted by a reverse proxy with automatic TLS, behind a DDoS-protected DNS provider.

Encryption

In transitTLS 1.2+ on all HTTPS connections. SMTP uses STARTTLS. No plaintext HTTP endpoints exist.
At restFull-disk encryption on all server volumes. Backup objects are encrypted at rest with AES-256.
API keysStored as SHA256 hashes — never in plaintext. Validated via timing-safe comparison.
Webhook signaturesOutbound webhook callbacks to external endpoints are signed with HMAC-SHA256 using per-shop secrets.
Audit integrityEnterprise plan: each audit record includes a SHA256 checksum and a chain hash linking it to the previous record, creating a tamper-evident linked list that can be independently verified.

Authentication & Access Control

User authenticationShopify OAuth 2.0 — all user authentication is handled by Shopify's identity provider. Adminlog does not store passwords.
Session managementServer-side sessions stored in PostgreSQL with automatic expiry. Online sessions (browser) expire per Shopify's token TTL. Offline sessions (webhook processing) use long-lived tokens issued by Shopify.
Tenant isolationEvery database query is scoped by the merchant's shop domain (shopId). One tenant cannot read, write, or modify another tenant's data. This is enforced at the application layer on every query.
Role-based accessEnterprise plan includes 4 roles (Owner, Admin, Auditor, Viewer) with a permission matrix. Currently being rolled out in staged fashion.
API authenticationEnterprise REST API endpoints use API key authentication with SHA256 hashing + rate limiting (1,000 requests/hour per key).
Admin accessServer SSH access is key-only (no password auth). Database is accessible only from the internal Docker network — not exposed to the internet.

Data Handling & PII

PII storedCustomer names, email addresses, and phone numbers are stored in audit log records when customer events are tracked. Order customer details (name, email) are stored in order audit logs.
Purpose limitationPII is stored solely to provide the audit trail service — identifying what changed, when, and who was involved. We do not use PII for marketing, profiling, or any purpose beyond the audit function.
Data minimizationWe only capture data that Shopify delivers via webhooks. We do not make additional API calls to fetch data beyond what's needed for audit logging.
RetentionPlan-based: Starter 30 days, Professional 90 days, Enterprise 365 days (configurable up to 5 years). Automated daily cleanup enforces these limits.
Deletion on uninstallWhen the app is uninstalled, all shop data (audit logs, settings, snapshots, alerts) is permanently deleted within 30 days.
GDPR complianceWe process Shopify's mandatory GDPR webhooks (customers/data_request, customers/redact, shop/redact) within 48 hours. Enterprise plan includes a GDPR request tracker with SLA timers and a compliance dashboard.
Data portabilityMerchants can export their full audit history in CSV format at any time from the Reports page.

Backup & Recovery

Backup frequencyDaily automated full-database backups
Offsite syncBackups are synced to encrypted offsite storage via encrypted transfer
VerificationAutomated periodic test-restore validates backup integrity
Server protectionOn-demand infrastructure snapshots. Destructive-action protection is enabled on production infrastructure.

Monitoring & Incident Response

Health monitoringContinuous self-healing monitoring: checks disk, memory, container health, and service endpoints. Auto-restarts failed containers and alerts the operations team.
Uptime monitoringAll public endpoints are monitored with alerting on downtime.
Webhook monitoringAutomated daily check identifies shops that have stopped receiving audit events and remediates automatically.
Incident responseDocumented response procedures cover webhook recovery, data recovery, and backup restoration, with on-call alerting.

Vulnerability Management

Dependency managementAutomated dependency audit on every build. Container images are rebuilt from scratch on each deploy — no stale layers.
OS patchingHost OS kernel and security patches are managed by the underlying cloud provider.
Internal auditsRegular internal security audits with documented remediation tracking.
SQL injection protectionAll database queries use parameterized queries via the ORM. Raw SQL uses tagged-template parameterization, not string interpolation.
XSS protectionReact's default output escaping, plus explicit HTML escaping in email templates.
SSRF protectionOutbound webhook callback URLs are validated: HTTPS required and private IP ranges blocked.
Rate limitingPer-shop webhook rate limiting with tiered limits by plan, plus API rate limiting per key. Progressive quarantine for repeat offenders.

Compliance Status

SOC2 Type IINot yet certified. The technical controls evaluated in a SOC2 audit (access controls, encryption, audit logging, incident response, change management) are implemented. Formal certification is on our roadmap.
GDPRCompliant. GDPR webhooks processed, data retention enforced, data export available, right-to-erasure honored on uninstall.
CCPACompliant. No data selling. Deletion on request. Export available.
PCI DSSNot applicable. We do not process, store, or transmit payment card data. All payments are handled by Shopify.

Contact

For security inquiries, vulnerability reports, or to request additional documentation:

Bedrock Digital Apps
Email: support@bedrk.dev

Adminlog by Bedrock Digital Apps — Security Overview v1.0