# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [5.0.1] - 2024-09-01 ### Changed - Update doipjs to 2.0.1 - Improve API data validation error message ### Fixed - Stop function when API response was already sent, which would cause a program crash ### Notes - In the schema for the profile API response, `/personas/{x}/claims/{y}/matches/{z}/profile/uri` is now a nullable string. ## [5.0.0] - 2024-08-12 ### Added - SystemD service file - Nix flake for development ### Changed - Switch from yarn to npm - Update doipjs to 2.0.0 ### Fixed - Escape URL parameters - CI config ### Notes - This release is a major version release as the package manager has been switched from yarn to npm. - Version 2.0.0 of doipjs also switched from yarn to npm, as well as added support for Discord and pronouns.cc claim verification. ## [4.2.7] - 2024-02-01 ### Added - Server version HTTP endpoint - Server version in footer ### Changed - Update doipjs to 1.2.9 ### Notes - The version of keyoxide-web that the server is running can now be requested at the `/.well-known/keyoxide/version` HTTP endpoint. It is also found in the footer of every page. - Version 1.2.9 of doipjs notably adds support for ORCiD claim verification, as well as a couple of performance improvements. ## [4.2.6] - 2024-01-24 ### Added - Support openpgp4fpr: queries in URL - Proxy routes for openpgp and aspe ### Changed - Update doipjs to 1.2.8 ### Notes - This version notably adds support for OpenPGP and ASPE claim verification. ## [4.2.5] - 2023-10-09 ### Changed - Update doipjs to 1.2.7 ## [4.2.4] - 2023-10-09 ### Changed - Update doipjs to 1.2.6 ## [4.2.3] - 2023-10-05 ### Added - Themeable profile pages - Apps page ### Changed - Update doipjs to 1.2.5 - Make Dicebear API domain configurable ### Fixed - Catch errors potentially thrown by function - Update JSON schemas - Icon URL generation in profile view ### Notes - ASP profiles use the Dicebear API to generate avatars. By default, Keyoxide uses the official api.dicebear.com instance. To use a custom Dicebear instance, set the DICEBEAR_API_HOSTNAME environment variable to its hostname. ## [4.2.2] - 2023-10-03 ### Changed - Update doipjs to 1.2.2 ## [4.2.1] - 2023-09-23 ### Fixed - Tweak the rate limiter parameters ## [4.2.0] - 2023-09-23 ### Added - Profile request rate limiter (experimental; opt-in) ### Changed - Update doipjs to 1.2.1 - Add logging to OpenPGP profile creation - Add debug data to logs ### Fixed - Make hash utils aware of ASPE ## [4.1.1] - 2023-09-21 ### Changed - Update doipjs to 1.1.0 ### Fixed - Missing rel=me for ambiguous claims - OpenPGP cache logic ## [4.1.0] - 2023-09-18 ### Changed - Redesign - Update doipjs to 1.0.1 - Update node to 20 - Make https scheme for proxy calls optional - Display site version in footer ## [4.0.2] - 2023-09-12 ### Fixed - Handle doip promise rejection - yarn script calls ## [4.0.1] - 2023-08-28 ### Fixed - CI docker builds ## [4.0.0] - 2023-08-28 ### Added - ASPE support - Rome linting and formatting - API v3 ### Changed - Updated doipjs to 1.0.0 ### Fixed - Missing primaryUserIndex ### Removed - API v0, v1, v2 ## [3.6.4] - 2023-03-27 ### Fixed - Missing /graphql proxy API endpoint ## [3.6.3] - 2023-03-27 ### Added - Basic logging ### Changed - Replaced liberapay & kofi with opencollective - Updated doipjs to 0.18.3 ## [3.6.2] - 2023-03-08 ### Added - Dark theme - Kofi button - Link to keyoxide-mobile project ### Changed - Updated doipjs to 0.18.2 ## [3.6.1] - 2023-03-02 ### Fixed - Fix fingerprint sanitization ## [3.6.0] - 2023-03-02 ### Added - Forum link in page header - UserID comments ### Changed - Key is now after UserIDs on profile pages ### Removed - Demo object in homepage - HKP/WKD selector - Encrypt/Verify buttons ### Fixed - HKP/WKD logic for profile fetching with API - Support fingerprints with whitespaces ## [3.5.2] - 2022-12-12 ### Fixed - Removed obsolete XMPP API parameter ## [3.5.1] - 2022-12-12 ### Changed - Updated doipjs to 0.18.1 - Updated dependencies ### Removed - jsdom install in Dockerfile ## [3.5.0] - 2022-11-17 ### Added - Request proxy API endpoint - Standard coding style ### Changed - Restructured source code - Updated dependencies ## [3.4.18] - 2022-10-27 ### Changed - Updated dependencies ### Fixed - Documentation ## [3.4.17] - 2022-10-27 ### Fixed - API data validation ## [3.4.16] - 2022-10-25 ### Changed - Updated dependencies ## [3.4.15] - 2022-10-11 ### Changed - Attempt both WKD and HKP if no protocol specified - Improve profile viewing error message ## [3.4.14] - 2022-10-07 ### Changed - Updated dependencies ## [3.4.13] - 2022-10-06 ### Fixed - Check validity of data to be cached ## [3.4.12] - 2022-10-06 ### Fixed - Caching of keys ## [3.4.11] - 2022-10-06 ### Added - Caching of keys (experimental; opt-in) ## [3.4.10] - 2022-10-05 ### Fixed - Hash input fix function ## [3.4.9] - 2022-10-05 ### Added - Feedback to hash utilities ## [3.4.8] - 2022-09-30 ### Changed - Updated dependencies ## [3.4.7] - 2022-09-28 ### Added - Argon2 and bcrypt hash utilities ## [3.4.6] - 2022-09-21 ### Changed - Updated dependencies ## [3.4.5] - 2022-09-18 ### Fixed - Enable node's experimental-fetch ## [3.4.4] - 2022-09-16 ### Changed - Renamed "generate profile" to "view profile" - Added data to API output ## [3.4.3] - 2022-09-10 ### Changed - Updated dependencies ## [3.4.2] - 2022-09-10 ### Fixed - Webpack build error ## [3.4.1] - 2022-09-10 ### Changed - Updated doipjs to 0.16.0 ## [3.4.0] - 2022-09-10 ### Added - h-card markup to profile pages (thanks to [caesar](https://codeberg.org/caesar) [PR#130](https://codeberg.org/keyoxide/keyoxide-web/pulls/130)) - `ariadne-identity-proof` header to profile pages ### Fixed - Keybase profiles (thanks to [gonz0](https://codeberg.org/gonz0)) ## [3.3.1] - 2022-03-15 ### Fixed - Docker builds - Static files - robots.txt content ## [3.3.0] - 2022-03-15 ### Added - Webpack bundling - Link to community forum - Tests ### Changed - Updated openpgpjs to 5.1.0 ## [3.2.0] - 2021-11-07 ### Added - Support for ariadne.id proof notations - Links to new Keyoxide docs and blog - Community section on index - Alpha version of API (undocumented as of release) ### Changed - Styles - Minor index content changes - Updated doipjs to 0.14.0 ### Removed - Guides and other documentation - Markdown related dependencies ## [3.1.1] - 2021-07-26 ### Added - Quick dev setup using nix and direnv ### Changed - Updated doipjs to 0.13.0 ## [3.1.0] - 2021-06-29 ### Changed - Improve accessibility ### Fixed - Utilities back in working order ## [3.0.4] - 2021-06-03 ### Changed - Updated doipjs to 0.12.9 ### Fixed - Hide claims without matches ## [3.0.3] - 2021-06-03 ### Changed - Use libravatar for avatar fetching - Updated doipjs to 0.12.7 ### Fixed - XMPP documentation on vCard editing ## [3.0.2] - 2021-05-05 ### Fixed - Put profile name in page title - Remove faulty claims before rendering the page ## [3.0.1] - 2021-05-04 ### Fixed - Optimize excessively large image ## [3.0.0] - 2021-05-04 ### Added - Server-side rendering of profiles - Custom components for claims and keys - "FLoC off" response headers ### Updated - User interface redesign - Integrate encrypt, verify into profile pages - Rel="me" profile links - Guides ### Removed - Dedicated encrypt, verify and proofs pages - Utility pages ## [2.5.0] - 2021-03-09 ### Added - IRC service provider - Matrix service provider ### Fixed - Gracefully handle fetching non-existing guides ## [2.4.2] - 2021-03-02 ### Fixed - Twitter claim verification ## [2.4.1] - 2021-01-13 ### Added - Owncast service provider ### Changed - Visual tweaks ## [2.4.0] - 2021-01-11 ### Added - Support for signature profiles - Robots.txt - Noindex meta tags on profile pages ### Changed - Allow setting of custom HKP server ## Fixed - Render error messages when error is object ## [2.3.4] - 2021-01-02 ### Fixed - Twitter claims ## [2.3.3] - 2020-12-26 ### Fixed - Handling null userIds ## [2.3.2] - 2020-12-24 ### Fixed - Variable used in URL returned undefined ## [2.3.1] - 2020-12-20 ### Fixed - Handling of claim verifications that timed out ## [2.3.0] - 2020-12-15 ### Changed - Identity claim verifications are now handled by doipjs ### Fixed - Fix Reddit proofs ## [2.2.8] - 2020-09-11 ### Fixed - Fix handling of Twitter URLs with parameters ## [2.2.7] - 2020-09-10 ### Fixed - Remove newlines before checking equality ## [2.2.6] - 2020-09-10 ### Fixed - Fix handling of keys without selfCertifications ## [2.2.5] - 2020-09-06 ### Changed - Add domain to proof displays for gitea and gitlab - Allow Mastodon backlinks to be URLs containing fingerprint ## [2.2.4] - 2020-08-31 ### Fixed - Fix var declaration ## [2.2.3] - 2020-08-31 ### Fixed - Make server verification case insensitive ## [2.2.2] - 2020-08-31 ### Fixed - Fix missing env variable ## [2.2.1] - 2020-08-30 ### Added - Add a Getting Started page ### Changed - Update FAQ - Migrate to different QR library ## [2.2.0] - 2020-08-24 ### Added - Add environment variable to set Onion-Location header - Support images embedded in keys - Support Gitea proofs - Support GitLab proofs - Support Twitter verification without Twitter API key ### Fixed - Fix env template DOMAIN name - Fix non-updating guide titles ## [2.1.1] - 2020-08-15 ### Fixed - Fix duplicate proof verifications ## [2.1.0] - 2020-08-15 ### Added - Custom XMPP vCard fetch server setting - Custom Express port setting - Custom domain setting - Include Keyoxide version number in footer ### Changed - Improve static link handling to dependencies - Get notations from all available UIDs - Add timeout to some fetch calls ### Fixed - Fix hardcoded URLs ## [2.0.2] - 2020-08-13 ### Fixed - Reference to old license ## [2.0.1] - 2020-08-12 ### Fixed - Reference to old license ## [2.0.0] - 2020-08-09 ### Added - Docker containers ### Changed - NodeJS backend - Distinguish primary email address from additional email addresses ### Fixed - Profile view for keys without name ## [1.0.0] - 2020-07-30 ### Added - license-check-and-add NPM tool and scripts ### Changed - Migrated to AGPL-3.0-or-later ## [0.4.0] - 2020-07-23 ### Added - QR code for XMPP+OMEMO ### Changed - Update design - Update index content - Remove dependency on external MD5 library - Improve WKD URL generator ## [0.3.1] - 2020-07-21 ### Changed - Update openpgpjs to v4.10.7 ## [0.3.0] - 2020-07-18 ### Added - dev.to identity proof - XMPP identity proof ### Fixed - Improve proof snippets - Prevent null proofs from displaying ## [0.2.1] - 2020-07-16 ### Fixed - Make www optional for reddit regex ## [0.2.0] - 2020-07-16 ### Added - Discourse identity proof - Pleroma identity proof - New logo ### Changed - Update openpgpjs to v4.10.6 - Update design - New favicon - Improve Keybase guide ### Fixed - Remove underscores from verify and encrypt links - Hide revoked userids - Hide null proofs ## [0.1.0] - 2020-07-05 ### Added - Keybase keys support - Profile URL generator utility ### Fixed - Identity proofs case sensitivity