Security

Your work should be protected without becoming inaccessible to you.

Security in a file workspace is not one control. It is access, file integrity, recoverable history and honest sync state — and the product is only as trustworthy as the weakest of them.

What follows is how Eiswe is designed to behave, stated plainly. Where a control has not been confirmed against a shipped build, it is marked rather than claimed.

File integrity
Your work should come out the way it went in, or Eiswe should say why not.
Recoverable history
A change creates a previous version rather than erasing one.
Explicit state
Local, syncing, synced or in conflict — never a guess.
Deliberate access
Sharing is an action you take and can take back.
File integrity

Damaging your work counts as a security failure.

Most of what threatens real work is not an attacker. It is a conversion that quietly dropped something, an edit written into the wrong version, or a save that silently produced a file the original application can no longer read properly.

Eiswe treats those as the same category of problem as unauthorised access, and the design answer is the same: fail visibly rather than proceed quietly.

Design rules
01Content Eiswe cannot interpret is preserved rather than dropped, where that is possible.
02A file that cannot be edited safely opens read-only instead of half-editable.
03Conversion that would silently discard content is not performed automatically.
04Partial support is stated in the product, at the moment it matters.
05A destructive operation asks first, and what it will remove is named.
No format round trip is byte-perfect in every case. Saying where one is not is part of the model.
History and sync

A file should never be in a state you cannot name.

Two questions decide whether work is safe: can I get the previous version back, and do I know where this file actually is right now. Both should have a visible answer.

Revisions

A change creates recoverable history rather than replacing what came before. A previous state can exist independently of the current one, so a mistake, a bad import or a sync problem all have the same remedy: go back.

r7The current version, and not the only one that exists.
r6A previous state, openable independently of the current one.
r5What changed and when it changed, on the file itself.
r4The version before an import — so an import can be undone.
Retention depth and per-platform behaviour require product verification.
Sync state

You should never have to guess whether a file exists only on this device, has reached the server, or has diverged somewhere else. The state is stated, not implied by a spinner.

LocalOn this device only. Not yet anywhere else.
SyncingIn transit. Not yet confirmed on the server.
QueuedWaiting for a connection. The change is not lost.
SyncedConfirmed stored, and available to your other devices.
ConflictTwo versions exist. Both are kept until you choose.
Desktop, Web and Android do not have identical sync behaviour; per-platform detail requires verification.

Offline does not mean unprotected.

Where a platform supports local work, losing the connection does not stop the work or put the file in doubt. Changes queue, then synchronise when they can, and anything that diverged is surfaced rather than resolved behind your back.

The honest corollary: a local change is local until it has actually synced. Eiswe says which of those it is instead of implying everything is already safely elsewhere.

When a conflict happens
Both versions are kept and shown as two real versions. Eiswe does not pick a winner silently, and neither side is discarded to make the conflict disappear.

Access is something you do, not something that happens

Storing a file in Eiswe does not share it. Sharing is a deliberate action with a visible state on the file itself, and it can be taken back.

Stored is not sharedPutting a file in Eiswe gives nobody else access to it. Sharing is a separate, deliberate action.
Per-file sharingAccess is granted on a file, not inherited invisibly from somewhere higher up the tree.
Visible stateA shared file says so on itself — who it is shared with is part of the file's own state, not buried in a settings panel.
RevocationAccess can be withdrawn, and the file shows that it has been.
Withdrawn is withdrawnRevoking access removes it. It does not merely hide the file from a list while the link keeps working.

What security cannot honestly mean

No product can promise no bug will exist, that every format is perfectly preserved, that all platforms behave identically, or that no future attack succeeds.

What a product can do is fail visibly and safely — and say which of those it is doing.

Protection is not the same as capture

Work is not made safe by being difficult to remove. Export stays part of the model, and standard files leave as standard files.

Security controls should protect access to your work, never your ability to take it with you.

Found a security issue?

Contact us privately before disclosing it anywhere else. Include what you found, how to reproduce it, and where you were looking.

Reports are read by the people building Eiswe. Please give us time to look into it before making it public.