Mise à jour de 'README.md'

This commit is contained in:
neil 2020-08-29 19:49:24 +00:00
parent 491ffb5537
commit d974ac3b8e
1 changed files with 50 additions and 6 deletions

View File

@ -8,20 +8,64 @@ It is meant to make form creation easier, through the use of the [Nextcloud Form
I really used black voodoo magic on this one.
This software acts as a **proxy** between the client and the Nextcloud instance. Here is some of its features :
This software acts as a **proxy** between the client and the Nextcloud instance. Here are some of its features :
- When a link is created from the main page, sncf connects to the Nextcloud API and creates an account with a random username and password. Those credentials are stored in its SQLite database, along with a randomly-generated token.
- When an administration link is used, sncf uses its database to find the associated username and password, then fills the login form on the Nextcloud instance (taking in account its CSRF token) and proxies the generated `Set-Cookie` headers to the client (to log the user in), then redirects it to the Forms app.
- When a form is created, sncf automatically forges a request to update some fields in the form (set isAnonymous to true, for instance). Those parameters can't be changed by the client.
- When a form is updated, sncf parses the requests before proxying it in order to prevent the client to edit some specific fields (isAnonymous or form access policy, which must not set to allow the users of the same instance to see the form). If an unwanted request is made, sncf cancels it.
- When a form is updated, sncf parses the requests before proxying it in order to prevent the client to edit some specific fields (isAnonymous or form access policy, which must not set to allow the users of the same instance to see the form). If an unwanted request is made, sncf does not proxy it.
- A lot of routes are restricted (settings, API) to prevent the instance from being used for anything else than the Forms app.
Those tweaks are completed by server-side CSS edits (using an application) to hide unwanted fields.
### Why not a Nextcloud application instead ?
### Setup
That sounds appropriate, but I don't feel like writing PHP. Feel free to do it.
See the [dedicated wiki page](wiki/Setting-up-Nextcloud-and-sncf).
### Are you crazy? This tweak is gonna break at every single update.
Note: There is currently no script to make the installation easier (see #12).
Yeah, well, you're probably right. A Nextcloud app would be more suitable, I guess. But anyway, feel free to use something else if this is too much tweaking for you. But I'd prefer some pull requests to help me keep this software up-to-date with Nextcloud and Nextcloud Forms updates.
### Compatibility table
Compatibility with sncf has been tested for the following Nextcloud and Nextcloud Forms versions.
| sncf | Nextcloud | Nextcloud Forms |
|--------------|------------|------------------|
| 1.0.0 | 19.0.1, 19.0.2 | 2.0.2, 2.0.3 |
If your NC or NC Forms version isn't in this list, sncf **may** or **may not** work. We **do not** ensure backwards compatibility with older versions.
Avoid upgrading software without checking its compatibility with sncf.
If you upgrade anyway and notice a breaking change, please file an issue.
### Contribute
#### Donations
If you like this work, please donate to the [42l association](https://42l.fr) (maintaining sncf) or [Nextcloud](https://www.bountysource.com/teams/nextcloud) (maintaining Nextcloud and Nextcloud Forms).
#### Translating
Currently, this software is translated in French and English.
Feel free to take a look at the [lang.json](https://git.42l.fr/neil/sncf/src/branch/root/lang.json) file and send a pull request.
#### Code
Check the opened issues. Feel free to take a look at the code (it's really small). There's yet a lot of place for improvement. If you need info, you can create an issue with the `question` tag on it.
### FAQ
#### What is the CPU/RAM consumption of this setup?
The "setup" we're talking about is the main instance's, [forms.42l.fr](https://forms.42l.fr).
- sncf consumes between 20 and 60 MB of RAM and isn't CPU-hungry.
- Nextcloud consumes between 60 MB and 120 MB of RAM. It's quite lightweight compared to other Nextcloud instances since the usual apps are disabled.
#### Why didn't you write a Nextcloud application instead ?
That sounds appropriate, but I don't feel like writing PHP and I don't know Nextcloud internals. Feel free to write it, though.
#### Are you crazy? This tweak is gonna break at every single update.
Yeah, well, you're probably right. A Nextcloud app would be more suitable, I guess. But anyway, feel free to use something else if this is too much tweaking for you. But I'd prefer some pull requests to help me keep this software up-to-date with Nextcloud and Nextcloud Forms updates.