eTechflow LLC · Supplement SafetyOps
How the product is secured, who can see what, and what happens when something goes wrong.
Supplement SafetyOps is pre-launch. It is not yet available to merchants, and no production merchant data is held.
A public status page showing live availability and incident history is Planned and will
be published at status.safetyops.etechflow.com before the first merchant installs.
Until then, service questions go to
etechflow0@gmail.com.
Because a reporting deadline keeps running during an outage, the status page is a control, not a courtesy — see section 8.
Where consumer safety information goes, and where it deliberately does not:
Where safety data never goes: marketing systems, advertising or remarketing audiences, Shopify Flow, customer segmentation, profiling or scoring, model training, or any other merchant tool. A consumer's health disclosure cannot end up targeting them with adverts.
A diagrammed version of this flow for security reviewers is Planned.
How to read this page. Supplement SafetyOps is pre-launch. Controls already operating are described plainly. Controls that are designed and specified but not yet in place are marked Planned — we will not describe a control as operating before it is. Each will be dated as it goes live.
There are ten roles: intake agent, customer-support manager, qualified reviewer, safety reviewer, QC approver, regulatory approver, submission operator, executive escalation, read-only auditor, and system administrator.
Being an administrator does not make you an approver. A store administrator or developer cannot automatically approve a serious-event decision. Those are different powers and we keep them separate.
Consumer contact details are visible only to roles that actually need them. Bulk export needs its own permission, is logged, and raises an alert. Permission checks happen on the server — never by just hiding buttons.
Separation of duties is configurable, because a three-person brand cannot staff ten roles. Where one person does two steps, the audit trail shows it plainly. Shared accounts cannot apply an electronic signature.
By default, none of our staff can see merchant data. Our policy is that access needs a named business reason, an approval and an end date, and is removed immediately when someone changes role or leaves.
The system that enforces and logs that automatically — time-boxed grants, after-the-fact review and emergency-access logging — is specified and Planned. Until it is in place, access is controlled through infrastructure permissions and recorded manually.
Development and test environments contain only synthetic or sanitised data — real customer data never goes into them. That one is in force today.
Every record carries a tenant identifier — cases, attachments, products, users, audit records, reports, exports and API requests.
One brand seeing another brand's safety records is the most serious failure this product could have. We treat it that way: an automated cross-tenant isolation suite exists today and must pass before any release. Wiring it into continuous integration so it cannot be skipped is Planned.
The only sanctioned way data crosses between organisations is an explicit case grant — for example a brand sharing an investigation package with its manufacturer. Those grants are limited to named records, time-limited, revocable, redacted according to a profile, and audited.
Every access to consumer contact data is logged with who, what, when, which role, what changed, why, and whether it was a person or an automated process. The append-only audit trail and its hash chain are built and tested; connecting the last of the application screens to it is Planned.
The audit trail cannot be edited through the app. Correcting an audit entry creates another entry — it never overwrites the original.
We will monitor and alert on failed logins, unusual export activity, bulk downloads, permission changes, emergency access, and attempted deletion of a regulated record. An attempted deletion is already recorded as an audit event; the alerting layer is Planned.
AI suggests. People decide. No AI determines whether an event is serious, whether it is reportable, or whether a case can be closed.
AI helps staff by reading an unstructured message and suggesting structured fields, and by flagging text that may describe a serious event so it gets reviewed sooner. Every output is a proposal shown to a person.
The pattern we enforce: the model proposes, a deterministic authorisation service checks role, case status, approvals, completeness, scope and tenant, a person explicitly confirms, and only then does the system act.
AI never directly holds the ability to send email, disable products, issue refunds, delete customers, submit to a regulator, dispose of inventory, publish anything, start recall communication, or change permissions.
Incoming emails and documents are treated as untrusted. Their content is evidence, never instructions — a malicious attachment cannot tell the system what to do.
Identifying details are removed before text is sent to an AI provider, and that redaction step is built. Before using any provider we check whether data is used for training, how long it is kept, where it is held, and what the contract says. No external AI provider is connected yet. The merchant setting to switch off external AI processing entirely for sensitive documents ships before any provider is enabled Planned.
Automated, encrypted backups kept separately from production are Planned, with initial recovery targets of 24 hours for both recovery point and recovery time. We intend to improve the recovery point objective as the platform matures.
Restores will be tested, not assumed. A recovery test checks that the audit history and attachments come back intact, not just that the database starts. The first restoration test runs before the app is made available to merchants Planned, and we will publish the date it was last carried out.
A merchant's reporting deadline keeps running even if our system is unavailable. Our offline submission checklist exists today as SOP-010 in the SOP pack, and every merchant receives it. A public status page, an in-app emergency export procedure, support escalation and a post-incident timeline are Planned and ship before launch.
We are never the only route to submit a report. Merchant procedures explain how to report directly through the FDA's own portal if SafetyOps is unavailable. Our outage must not become your missed deadline.
We have a documented incident response policy with four severity levels, named roles, and defined escalation.
| Level | Meaning | Response |
|---|---|---|
| SEV-1 | Confirmed unauthorised access to personal or health data, or one merchant seeing another's data | Immediate, all hands, hourly updates |
| SEV-2 | Credible risk of exposure, or doubt about a regulated record's integrity | Same day, updates every four hours |
| SEV-3 | Contained event, no data exposed | Next business day |
| SEV-4 | Minor, no data or integrity risk | Normal work queue |
We preserve evidence before fixing anything, because remediation usually destroys what is needed to work out the scope and notify accurately.
Notification: affected merchants without undue delay once scope is known, and within 24 hours of confirmation for a SEV-1. Regulators where required and within the statutory deadline. Merchants are the controller of consumer data, so we equip them to notify consumers rather than doing it ourselves.
Every incident gets a blameless review within five business days, with tracked actions.
These are the outside services we use. Each is assessed before we engage them and bound by data protection terms.
| Provider | Purpose | Location |
|---|---|---|
| Oracle Cloud Infrastructure | Application hosting | United States |
| Oracle Cloud Infrastructure | Database hosting | United States |
| Oracle Cloud Object Storage | File and attachment storage | United States |
| Shopify Inc. | APIs, authentication, billing, merchant store data | Canada / United States |
This list is kept current. We will update this page before engaging any new subprocessor, and merchants can subscribe to notifications of changes by contacting etechflow0@gmail.com.
Data is processed in the United States, on Oracle Cloud Infrastructure in Ashburn, Virginia. The database, files, backups and application stay in the US region wherever possible.
We scan dependencies and containers automatically, and patch on a severity-based schedule.
An independent penetration test has not been carried out yet. One is planned, and this page will be updated with the result and remediation status when it has happened. We will not claim an independent test has taken place before it has.
Report a suspected vulnerability to etechflow0@gmail.com. We will acknowledge it and keep you updated.
Some things are ours to get right. Some are yours.
| We provide | You control |
|---|---|
| Audit trail functionality | Assigning the right roles |
| Electronic signature controls | Verifying who your people are |
| Deadline calculations | Confirming the correct Day 0 |
| Retention capability | Your retention policy |
| Security controls | Staff access and offboarding |
| Version history | Your review procedures |
| Validation documentation Planned | Validating it for your intended use |
| Backup and recovery | Your business continuity plan |
| The submission package | The final regulatory decision |
| Configurable workflows | Qualified personnel to operate them |
We describe our controls as Part 11-supporting. We do not say the product is Part 11 compliant, FDA approved, FDA certified or HIPAA certified. Compliance depends on how the software and your own procedures work together — which is why the right-hand column exists.
Where we show information drawn from public FDA sources — such as recall or adverse-event databases — it is context only. It is never a determination about your product, and it never drives a decision in the app.
Every externally sourced item is shown with its source, the date it was retrieved, and a statement that it is contextual. Your own case record is always the authoritative one.
What we are working towards, in order, and what is honestly not done yet.
| Item | Status |
|---|---|
| Tenant isolation enforced in the database (row-level security) | In place |
| Append-only audit trail with hash chain | In place |
| Ten roles, separated approval authority | In place |
| Twelve SOP templates, including the offline submission checklist | In place |
| Shopify protected customer data approval | Applied for |
| Automated encrypted backups and first restoration test | Before launch |
| Public status page | Before launch |
| Compliance archive export and automatic uninstall export link | Before launch |
| Continuous integration running the isolation suite on every change | Before launch |
| Staff access-request system with time-boxed, logged grants | Before launch |
| Merchant setting to disable external AI processing | Before any AI provider is connected |
| Independent penetration test | After launch, date to be published |
| Validation documentation pack (intended use, traceability matrix, test evidence) | After launch |
| SOC 2 or equivalent independent attestation | Not committed — we will not imply otherwise |
This table is updated as items move. If something you need is not on it, ask.