2025-01-24
- Select extension based on the filename.
- Serve Javascript under hashed URL to avoid caching issues.
- Use same six month maximum age cache control for all assets.
- Show nicer error pages for some middleware layer issues instead of plain text responses.
- Actually respect
WASTEBIN_MAX_BODY_SIZE
. - Allow selection of title.
- QR code overflowing content.
2025-01-15
- Improve UI by using SVG icons instead of text for action links and buttons, using only flexbox for layouting, round UI elements.
- Replace QR code button on the QR page with a button that leads back to the paste page.
- Pre-fill the title box when uploading a local file.
- Optimize code for minor performance improvements.
- Include extension in the QR code link.
2025-01-12
- ctrl+s binding to store a paste.
- Input field to set a title for a paste.
- Security headers served with each HTTP response and secure cookie settings.
- Button to show a paste's QR code.
- Use
NonZero
internally for data where 0 is not a valid value and any special meaning in expressed via an outer Option. - Show QR code on the page after submitting a burn-after-reading paste.
- Low-impact performance improvements.
- Return
FORBIDDEN
on wrong password instead ofINTERNAL_SERVER_ERROR
.
- Paste content selection and copying using ctrl+a or mouse.
- Issues reported by the w3c validator.
- Vertical auto-scroll.
2024-08-19
- Possibility to serve from some subdomain via the
WASTEBIN_BASE_URL
environment variable. - Possibility to limit maximum paste expiration with the
WASTEBIN_MAX_PASTE_EXPIRATION
environment variable. - Open button to read local file into input.
- Improve container layout and CSS.
2023-08-24
- Focus main input elements (thanks @egor-tensin)
- Stretched vertically lines, mostly with bash scripts.
2023-08-24
- Reading of encrypted pastes set to burn-after-reading.
2023-08-13
- Initial reading of pastes set to burn-after-reading.
2023-08-11
WASTEBIN_HTTP_TIMEOUT
environment variable to control request timeouts.
⚠️ Database schema updated to version 6. Like previous migrations rolling back is not (easily) possible, so plan on making a backup in case you want to roll back the server itself.- Allow optional encryption of pastes based on Argon 2 password hashing and ChaCha20/Poly1305 symmetric encryption.
- Language selection filter which was not working correctly with certain characters.
2023-07-17
- Additional syntaxes compiled by the zola project.
2023-06-29
- Add anchors to line number, so the links actually make some sense.
- Do not highlight lines longer than 2048 characters. This can take a considerable amount of time effectively DoS'ing the server.
2023-04-21
- QR code display accessible via q to browse the URL on phones and
corresponding
WASTEBIN_BASE_URL
environment variable to control the base. In case it is not set, the user agent'sHost
header field is used as an approximation. To go back to normal paste view you can use p. - Help overlay accessible via ?.
- Serve style CSS filename based on content hash to force client reload on change. With that bump max age for CSS to six months.
2023-03-04
- Replace overlaying link box with a navigation bar containing stylized buttons and homogenize layout in general.
- Format burn page like the rest.
2023-02-04
- Return correct exit code in case of errors.
2023-02-01
- Breaking: replace deletion timer with a cookie based solution that
identifies creator of a paste on subsequent visits. That cookie is a
monotonically increasing number and only used to implement the delete
functionality. Because that implies it is a strictly necessary cookie
according to GDPR, we will not show a cookie banner. If you are
uncomfortable with that either strip the
Set-Cookie
header from responses via a proxy server or stop using this software. - Breaking: stop supporting down migrations.
- Compress data with zstd for a reduction of about 75%. On migration all rows
will be compressed. However file size will not change but unused pages be used
for new rows. If you want to reduce the file size, you have to use the
VACUUM
statement. - The database is not purged periodically anymore, instead expired entries are removed on access.
2023-01-10
- Upgraded to tokio 1.24.1 to mitigate RUSTSEC-2023-0001.
2022-12-26
- Move to axum 0.6.
- d downloads again.
2022-11-07
- Paste text content by dragging and dropping files onto the text area.
2022-10-14
- Broken insertion via JSON API.
2022-07-31
- Breaking: remove possibility to GET
/api/entries/:id
, just use/:id
. - Breaking: remove possibility to POST to
/api/entries
and DELETE/api/entries/:id
, this can be done on/
and/:id
respectively. Note that DELETEing/:id
will now return a 303 status code instead of 200. - Return appropriate content type for
/:id
based onaccept
header (i.e.text/html
returns the HTML page) and thefmt
query parameter (i.e. set toraw
returns raw text). - Use
dl
query parameter to determine the extension to download a paste. - Use
fmt=raw
query parameter to fetch plain text paste. - Set cache control timeout for the favicon.
2022-07-19
- Normal font color for the light theme to increase contrast.
- Strange content padding.
2022-07-04
- Link that is valid for one minute to delete a paste.
generator
meta tag containing the version number.
2022-06-27
- Evict cached items for expired pastes.
- Do not swallow fatal errors from serving and database purging.
- Link to error page to go back to the index.
- Link to download a paste (@yannickfunk).
- Bind d to download a paste.
2022-06-12
- y keybind to copy the paste URL to the clipboard
WASTEBIN_TITLE
environment variable to override the HTML page title.
- Reduced font size of pre and text area to 13pt.
2022-06-11
- Set bright color for textarea in dark mode.
2022-06-08
- Add r and n keybinds on the paste view.
- Timeout with status code 408 after five seconds.
- Limit maximum body size to 1 MB or a value set with
WASTEBIN_MAX_BODY_SIZE
in bytes.
2022-06-06
- Configurable cache for syntax highlighted HTML fragments to improve response times, especially when run in debug mode.
/api/health
endpoint for render.com health checks.
2022-06-02
- Initial release.