You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -77,6 +77,9 @@ No pairing. No cloud dependency.
77
77
-**User-managed access**
78
78
Built-in local users with super-admin, admin, and user roles plus per-user API keys.
79
79
80
+
-**Workspace access controls**
81
+
Public, password-protected, and explicit-user workspaces. Admins and super-admins can manage restricted workspaces, but user passwords never override workspace passwords.
Copy file name to clipboardExpand all lines: docs/api-usage.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -106,8 +106,11 @@ curl -X POST \
106
106
## Notes
107
107
108
108
- The API is intended for local-network use.
109
+
-`X-API-Key` must be a user's configured API key. A browser login password is not an API key.
110
+
- Browser session cookies can also authenticate API requests, but cookie-backed `POST` and `DELETE` requests must include the page's `X-CSRF-Token`; `X-API-Key` requests do not need CSRF.
109
111
- Use `X-Workspace` or `workspace` when targeting a non-default workspace.
112
+
- Password-protected workspaces require `X-Workspace-Password` when selected by API header or query parameter. Admin and super-admin user passwords do not override workspace passwords.
110
113
- Workspace names and usernames must be unique after normalisation.
111
114
- Workspace access modes are `public`, `password`, and `explicit`.
112
-
- For explicit-access workspaces, API clients can authenticate with a user's `X-API-Key`; the key's user must be the workspace owner or included in the workspace `explicit_usernames`.
115
+
- For explicit-access workspaces, API clients can authenticate with a user's `X-API-Key`; the key's user must be the workspace owner or included in the workspace `explicit_usernames`. Admins and super-admins can manage access, but they must add themselves before entering an explicit workspace.
113
116
- If you expose DassieDrop externally, put it behind proper TLS and access controls.
Copy file name to clipboardExpand all lines: docs/bash-api.md
+11-3Lines changed: 11 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,6 +28,8 @@ Protected workspaces can also use:
28
28
29
29
-`X-Workspace-Password: <workspace-password>`
30
30
31
+
User login passwords do not work as workspace passwords. Admin and super-admin users can manage restricted workspaces, but entering a password-protected workspace still requires the workspace password. For explicit-access workspaces, admins and super-admins can add themselves through access management before entering.
32
+
31
33
List workspaces:
32
34
33
35
```bash
@@ -233,24 +235,30 @@ curl -sS \
233
235
http://127.0.0.1:8000/api/share-text
234
236
```
235
237
236
-
If you still want browser-style session auth from bash, you can log in firstand reuse the session cookie:
238
+
If you still want browser-style session auth from bash, you can log in first, fetch a page to read the CSRF token, and reuse both the session cookie and `X-CSRF-Token`:
237
239
238
240
```bash
239
241
curl -sS -c cookies.txt \
240
242
-H 'Content-Type: application/json' \
241
243
-X POST \
242
244
-d '{"username":"admin","password":"password"}' \
243
245
http://127.0.0.1:8000/login
246
+
247
+
CSRF_TOKEN="$(
248
+
curl -sS -b cookies.txt http://127.0.0.1:8000/ \
249
+
| sed -n 's/.*name="dassiedrop-csrf-token" content="\([^"]*\)".*/\1/p'
250
+
)"
244
251
```
245
252
246
-
Then pass `-b cookies.txt` on later requests:
253
+
Then pass both values on later cookie-authenticated mutation requests:
247
254
248
255
```bash
249
256
curl -sS -b cookies.txt \
250
257
-H 'Content-Type: application/json' \
258
+
-H "X-CSRF-Token: $CSRF_TOKEN" \
251
259
-X POST \
252
260
-d '{"text":"hello again"}' \
253
261
http://127.0.0.1:8000/api/share-text
254
262
```
255
263
256
-
`X-API-Key` is for authenticated API routes. LAN links under `/s/{SHORT-CODE}` do not use `X-API-Key`; use `X-Access-Password` there only when a password is required.
264
+
For automation, prefer `X-API-Key`; it does not need CSRF. User passwords are only for browser login, not API authentication. LAN links under `/s/{SHORT-CODE}` do not use `X-API-Key`; use `X-Access-Password` there only when a password is required.
Copy file name to clipboardExpand all lines: docs/developer-guide.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,7 +36,8 @@ Rules:
36
36
37
37
- Update `VERSION` when preparing a user-visible release change.
38
38
- The UI header reads from `VERSION` unless `APP_VERSION` is provided in the environment.
39
-
- The Ubuntu install script deploys the `VERSION` file and also supports `APP_VERSION` override in the service environment.
39
+
- Static asset URLs use the app version plus an asset-content hash, so browsers pick up changed JavaScript and CSS without requiring a display-version bump for every internal fix.
40
+
- The Ubuntu and CentOS Stream install scripts deploy the `VERSION` file and also support `APP_VERSION` override in the service environment.
On a new installation DassieDrop creates a super-admin user named `admin` with password `password`.
93
93
Change that password from the Users page after first login.
94
94
95
-
Super-admin users can manage all local user accounts. Admin users can access any workspace. Regular users can access public workspaces, password-protected workspaces with the password, and explicit-access workspaces they have been granted.
95
+
Super-admin users can manage all local user accounts. Admin and super-admin users can manage restricted workspace access and passwords, but they still need the workspace password to enter a password-protected workspace and must grant themselves access before entering an explicit-access workspace. Regular users can access public workspaces, password-protected workspaces with the workspace password, and explicit-access workspaces they have been granted.
96
96
97
97
Users can enable an optional authenticator app from their own edit-user page. DassieDrop uses standard TOTP codes, so apps such as Google Authenticator, Microsoft Authenticator, 1Password, Bitwarden, and Aegis can scan the displayed QR code or add the displayed secret manually. Super-admin users can disable authenticator protection for any user if someone loses access to their authenticator device.
<spanclass="settings-help" tabindex="0" data-tooltip="Leave blank to keep the current password. Root and admin passwords can unlock protected workspaces.">?</span>
56
+
<spanclass="settings-help" tabindex="0" data-tooltip="Leave blank to keep the current password. User passwords do not unlock workspace passwords.">?</span>
<spanclass="settings-help" tabindex="0" data-tooltip="User can access unprotected or password-knownworkspaces. Admin can access any workspace. Super-admin can also manage all users.">?</span>
80
+
<spanclass="settings-help" tabindex="0" data-tooltip="User can access public, password-known, and granted explicit workspaces. Admin can manage workspace access. Super-admin can also manage users.">?</span>
0 commit comments