{"name":"SecShare","version":"1.0.0","mailEnabled":true,"malwareScanning":"built-in","description":"SecShare is a self-hosted, authenticated file-sharing service. Users register an account, sign in to receive a JWT, and then upload, list, download and delete their own files over a REST API. Files are private to the owner; nobody else can read or delete them. Owners can then share a file as a public tokenized link, as a direct grant to another user, or to a whole email audience. Uploads are scanned for malware before they are stored.","features":{"selfDestruct":"Grants support burn-after-reading: destroy on the first open (FIRST) or once every recipient has opened it (ALL).","downloadAudit":"Owners can see who downloaded a file, when, and through which channel.","malwareScanning":"Every upload is scanned synchronously (built-in heuristics, plus ClamAV when enabled); infected files are rejected before being persisted.","email":"When enabled, per-recipient audience links are delivered via a durable, retrying SMTP outbox; owners may opt into download notifications.","linkProtections":"Public links can require a password and carry an expiry and/or a maximum download count.","sharing":"Three models: public links (/s/<token>), direct user grants, and email audiences that fan out to many recipients from a single share."},"authentication":{"type":"Bearer JWT","tokenLifetimeMinutes":60,"howTo":"Call POST /api/auth/login and send the returned accessToken as an 'Authorization: Bearer <token>' header on every protected request."},"limits":{"allowedExtensions":["pdf","png","jpg","jpeg","txt","doc","docx","xlsx","zip"],"maxFileSize":"50 MB"},"endpoints":[{"method":"POST","authRequired":false,"summary":"Create a new account with an email and password (min 8 chars).","path":"/api/auth/register"},{"method":"POST","authRequired":false,"summary":"Exchange credentials for a JWT access token.","path":"/api/auth/login"},{"method":"GET","authRequired":true,"summary":"Return the authenticated user's profile (id, email, roles, join date).","path":"/api/auth/me"},{"method":"GET","authRequired":true,"summary":"List the files owned by the authenticated user.","path":"/api/files"},{"method":"POST","authRequired":true,"summary":"Upload a file (multipart/form-data field 'file'); rejected if the malware scan flags it.","path":"/api/files/upload"},{"method":"GET","authRequired":true,"summary":"Download one of your files by id.","path":"/api/files/{id}"},{"method":"DELETE","authRequired":true,"summary":"Delete one of your files by id.","path":"/api/files/{id}"},{"method":"GET","authRequired":true,"summary":"List every file in the system (ADMIN role only).","path":"/api/files/all"},{"method":"POST","authRequired":true,"summary":"Create a share on your file: a public LINK, a USER grant, or an AUDIENCE (email list).","path":"/api/files/{id}/shares"},{"method":"GET","authRequired":true,"summary":"List the shares you have created for one of your files.","path":"/api/files/{id}/shares"},{"method":"DELETE","authRequired":true,"summary":"Revoke a share you created.","path":"/api/files/shares/{shareId}"},{"method":"GET","authRequired":true,"summary":"Download audit log for one of your files (who, when, channel).","path":"/api/files/{id}/downloads"},{"method":"GET","authRequired":true,"summary":"List the recipients of an audience share and their download state.","path":"/api/files/shares/{shareId}/members"},{"method":"GET","authRequired":true,"summary":"List files other users have shared directly with you.","path":"/api/files/shared-with-me"},{"method":"GET","authRequired":false,"summary":"Public metadata for a shared link (filename, size, whether a password is required).","path":"/api/public/shares/{token}"},{"method":"POST","authRequired":false,"summary":"Download a file via its public link; send the password in the body when required.","path":"/api/public/shares/{token}/download"},{"method":"GET","authRequired":false,"summary":"This usage guide.","path":"/api/info"},{"method":"GET","authRequired":false,"summary":"Liveness probe; returns {\"status\":\"ok\"}.","path":"/health"}],"guideUrl":"/guide.html"}