Security and data protection

Security and data protection

Multi-factor authentication, sessions, the activity log, and what DSGVO requires of you here.

Two separate jobs live on this page. One is keeping your own team's access tight. The other is the data-protection paperwork a German company running a shop cannot avoid. Both are boring until an auditor or an incident arrives.

Multi-factor authentication

Because sign-in is single sign-on, one credential opens everything a person has access to. That credential should not be a password on its own.

Each person enrols their own factors under Settings › Profile › Security, section Multi-factor authentication. Four are available:

MethodWhat it isWorth it?
PasskeyBiometric or security-key sign-in on the device (WebAuthn / FIDO2). Add passkey, then name itBest. Phishing-resistant and faster than typing a code
Authenticator appSix-digit codes from Google Authenticator, 1Password, Aegis and the like. Enrol shows the QR codeGood. The right fallback if passkeys are awkward on your fleet
SMS one-time codeA six-digit code by text, Enable / Disable. Needs a confirmed phone numberWeakest of the four. Use it only where nothing else works
Email one-time codeA six-digit code by email, Enable / Disable. Needs a confirmed email addressOnly as good as the mailbox it goes to

Push for at least one passkey or authenticator app for everyone with access to the Cockpit. Enrolment takes under a minute. Passwords are changed on the same screen under Change password, and a new email address or phone number has to be confirmed with a code before a factor can use it.

Managing passkeys in the Cockpit: planned. The screen shows that at least one passkey is registered and lets you add another. It does not list them and cannot remove one, so a lost security key is not something you revoke yourself here yet. Until that lands, treat a lost device as a support request, and terminate the person's sessions immediately as the stop-gap.

Sessions, and the policy you do not have

Settings › Team › Sessions lists every active sign-in across your organisation, with the factors each session used and when it expires, and lets you Terminate Session on any of them. That is your session control.

Session policy for your team: planned. There is no idle timeout, no maximum session length, no IP allowlist and no lockout setting for Cockpit colleagues. What exists is a session that expires on its own after a period of inactivity, and the list above.
Settings › Auth & Security is for your buyers. Its Security tab holds policy fields, Max users, Password history, Session length (minutes), Sessions per user, Block common passwords, Block personal data in passwords, Invalidate sessions on password change, Session alerts. The screen is titled Auth & Security · Customers, and every one of those fields applies to your customers' buyers signing in to your storefront. Setting a 30-minute session length there does nothing to your Innendienst and everything to your customers. See Contacts and roles.

The practical compensation is the routine: review the session list monthly, terminate anything unaccounted for, and suspend departing colleagues on the day; see Users, roles and permissions.

The activity log

Settings › Profile › Activity shows account activity in three columns: Event, Client / Origin / Location, and Time, with a search box above.

Be precise about what this is, because the gap catches people:

  • It is your own account's activity, not a tenant-wide trail of what your colleagues did.
  • It shows recent entries. There is no date filter and no documented retention period.
Audit-log export: planned. There is no export from the activity log today. If your Wirtschaftsprüfer or your ISO auditor has asked for a compliance-grade audit trail, do not point them here. Raise the requirement with revenexx, and in the meantime record the control you operate (the monthly session and member review) rather than claiming one you do not have.

DSGVO: what is yours and what is ours

For the personal data in your shop, your customers' contacts, their addresses, their order history, you are the controller (Verantwortlicher). revenexx processes it on your instructions. That split decides who owes what.

Get the Auftragsverarbeitungsvertrag signed. An AVV (data processing agreement) with revenexx is not optional under Art. 28 and it is the first document anyone will ask for. If you cannot find yours, that is today's task.

Keep your Verzeichnis von Verarbeitungstätigkeiten current. Your record of processing activities has to describe what the shop does with personal data. Two things here feed it directly:

  • Your list of installed apps, each with its Access register: which data it touches and which external hosts it may reach. That is the closest thing you have to a sub-processor and data-flow inventory, and it changes whenever somebody installs something. Review it when you review the record.
  • Your integrations. Every system you sync customer data to is part of the processing you have to describe.

Auskunft and Löschung need a plan, not a button. There is no one-click "export everything about this person" and no self-service tenant data deletion. What exists:

RequestWhat you have today
Art. 15 accessPull the person's contact, organization and order records, and export from the relevant screens. There is no single subject-export
Art. 17 erasure, messagingThe Mail area can erase everything sent to an address, and the unsubscribe links issued for it. Irreversible, by design
Art. 17 erasure, commerce dataNot self-service. Raise it as a request, and note that orders you must keep for tax reasons are a legitimate reason to retain, not to delete

Write down the process before somebody sends a request with a 30-day clock on it. Knowing in advance who pulls the data and who signs the reply is the whole of the work.

Deleting an app does not delete its data. Uninstalling an app preserves the tables it owns so it can be reinstalled. Do not treat uninstall as erasure; see Apps and the Marketplace.

Where the data lives

The binding statement about where your tenant's data is hosted, which sub-processors are involved and how long data is retained is the one in your contract and AVV with revenexx. Read it there before you write a privacy notice, and expect no switch in the Cockpit that moves data between regions. There is none, and none is planned as a self-service setting for now.

Individual apps and integrations can move data beyond the core service: an app declares any external host it reaches in its Access register, and a workflow you build sends data wherever you point it. Those are your decisions and belong in your processing record.

Isolation between tenants is enforced by the database, not by application code. Every record carries your tenant identifier and every query is filtered against the identity in the session before an app sees a row. An app cannot read another company's data even if it tries.

Do not lift the paragraph above into a customer-facing privacy notice. Your binding statements about hosting location, sub-processors and retention are the ones in your contract and AVV with revenexx. Check them there before you publish anything.

What to check

Quarterly, in fifteen minutes: everyone with Cockpit access has a passkey or authenticator app; the session list holds nothing you cannot explain; the member list contains no one who has left; your installed-app list matches what your processing record describes.

Next