diff --git a/README.md b/README.md index 6ef6213..5831f18 100644 --- a/README.md +++ b/README.md @@ -284,6 +284,8 @@ know what sharing does: - **No guarantees.** The public server is offered as is, without backups or uptime promises, and files on it can be removed. Keep your own saved copy of anything you share. +The default server's terms are in [`docs/online-sharing-terms.md`](docs/online-sharing-terms.md). + ## The Crafting Apps FigCraft is one of the **Crafting Apps**: free, open-source creative tools from the diff --git a/docs/online-sharing-terms.md b/docs/online-sharing-terms.md new file mode 100644 index 0000000..570cf83 --- /dev/null +++ b/docs/online-sharing-terms.md @@ -0,0 +1,85 @@ +# Online sharing through the default server: terms and privacy + +> **Last updated:** 2026-10-13 · Applies to the public FigCraft collaboration server at +> `collab.craftapps.dev`, which the app uses for **Share ▸ Online** unless you set another server +> in Preferences. It does not apply to servers other people run, or to sharing on your local +> network, which involves no server. + +FigCraft works without this service. You only use it when you choose Share ▸ Online, join a file +someone shared that way, or open Home ▸ Online. By doing so you agree to what follows. If you +don't, don't use the default server: share on your local network, or run your own +[`figcraft-server`](server.md). + +## Who runs it + +The FigCraft project operates the server. Contact: **hello@storyteller.ai** (questions, removal +requests, abuse reports). + +## It is a preview, offered as is + +The service is free and experimental. It can be slow, unavailable, changed or shut down at any +time, and files on it can be lost or removed. There are no backups you can rely on and no uptime +promise. **Keep your own saved copy of everything you share.** To the extent the law allows, the +service comes without warranties of any kind and the operators are not liable for loss of data or +any other damage from using it. + +## What is stored, and for how long + +- **The file you share:** its whole contents, including images, names and comments in it, and its + name. It stays on the server after you stop sharing, until you remove it (Share ▸ Advanced ▸ + Remove from server…, or Home ▸ Online) or until nobody has opened it for **30 days**, when the + server deletes it. +- **Who is in a file:** the display name each person typed and their cursor and selection, only + while they are connected. They are not kept afterwards. +- **Share links, join codes and owner tokens:** kept only as hashes, to check them. +- **Network addresses (IP addresses):** used to limit how much one address can publish or guess + codes, and to handle abuse. They can appear in the server's logs and are stored with an abuse + report about a file. +- **Nothing else.** There are no accounts, no tracking and no advertising, and the app sends no + telemetry. + +## It is not end-to-end encrypted + +The connection between the app and the server is encrypted (TLS). The server itself stores files +unencrypted, so the operators can technically read them. We look at files only when we must: to +keep the service running, to act on an abuse report or a legal request. **Do not share +confidential or sensitive material through this server.** + +## The code or link is the access + +Anyone who has a file's edit code or link can open and change it; anyone with a view code or link +can open it. You are responsible for who you give them to. Stop sharing revokes the codes and +links and disconnects everyone else. + +## What you may not do + +Don't use the server for anything unlawful or harmful, including to store or share: content you +have no right to share, content that is illegal where you or the server are, malware, material +that exploits or endangers children, or content meant to harass or threaten people. Don't try to +break, overload or probe the service, guess other people's codes, or use it as general file +storage. Files are limited in size and number per address. + +## Removal and abuse + +- **Your own file:** remove it from the app at any time, as described above. If you no longer can + (the app only remembers the files you put online on that computer), write to the contact + address with the file's link and we will remove it. +- **Someone else's file:** people in a file can report it from the app (Share ▸ Report this + file…), or anyone can write to the contact address. +- We may remove any file, revoke any link and block any address, without notice, when we believe + these terms are broken or the law requires it. + +## Your content stays yours + +You keep all rights to what you share. You give the operators only the permission needed to store +the file and pass it to the people you share it with. + +## Your data + +To ask what is stored about you or to have it deleted, write to the contact address. Since there +are no accounts, tell us the file's link or code so we can find it. + +## Changes + +These terms can change; the date at the top shows when they last did. Continuing to use the +default server after a change means you accept it. diff --git a/docs/server.md b/docs/server.md index bf19126..6f0402e 100644 --- a/docs/server.md +++ b/docs/server.md @@ -728,7 +728,8 @@ sudo systemctl start figcraft-server the server; on the server they are stored unencrypted, so the operator and anyone who can read the data directory can read every file. Tell the people who publish to your server so (the README's [Privacy and online sharing](../README.md#privacy-and-online-sharing) says it for the - default public server), and set `operator_contact` and `terms_url` on a public one. + default public server, whose terms are [online-sharing-terms.md](online-sharing-terms.md): a + starting point for your own), and set `operator_contact` and `terms_url` on a public one. - **Access** is a share link (128-bit random token) per file and access level, an owner token (128-bit) per file published without the key, or the server key (128-bit) for managing files. Tokens are stored as SHA-256 hashes and every comparison runs in constant time; revoking a link