Socialhome v0.9.0 Release Notes

Release Date: 2018-07-20 // about 4 years ago
  • 0.9.0 (2018-07-21)

    ➕ Added

    ➕ Add possibility to configure Sentry for error reporting.

    Adding the Sentry project DSN as SENTRY_DSN=foo to environment variables will make all error level exceptions be raised to Sentry. To change the level, define SENTRY_LEVEL with a valid Python logging module level.

    👉 Add NodeInfo2 support. For organization details, admin name and email will be published if the new setting SOCIALHOME_SHOW_ADMINS is set to True (default False).

    ➕ Add possibility to delete user account (#131)

    Deletion is permanent and will delete all created content including uploaded images. Delete request for profile and related content will be sent to remote servers.

    ➕ Add user export API (#478)

    New API endpoints /api/profiles/create_export/ will create an export and /api/profiles/retrieve_export/ will retrieve the export zip file. Export will contain a JSON file of the user, profile, followers and content. A zip file of uploaded images will also be included.

    ➕ Add user data export to user account page (#478)

    The account page now has a button to request an export of user data. In addition to user and profile data, this export contains a list of profiles followed, content (including shares and replies) and a zip file of image uploads. An email notification will be sent to the user once the export is ready for download from the account page.

    🆕 New environment variable DJANGO_TIMEZONE allows easily customizing the time zone that the Socialhome instance runs on. It defaults to UTC.

    📚 Staff users can now access the admin and task queue (background jobs) pages via the new "gears" menu in the navbar. See <documentation on how to make a user admin.

    ➕ Add an easily customizable robots.txt with default rules

    0️⃣ The rules by default disallow all except direct links to content, the root profile and the public stream. Server admins can customize the rules easily via the admin interface.

    Admins can now add Terms of Service and Privacy Policy documents to the site (#477)

    0️⃣ Terms of Service and Privacy policy documents are good to have. These tell people visiting your site what rules you operate with. Socialhome provides default templates you can activate with a few clicks.

    ⚡️ To review and enable the policy documents, log in as admin and access the admin pages through the navigation bar cogs menu. Scroll down and locate "Policy documents". There are two types of documents, the Terms of Service and Privacy Policy. Each one can be edited in draft mode and then published. Further updates in draft mode will not overwrite the last published version, until published.

    ⚡️ To publish the documents, open them, review the text and then change the status below the document to "published". Click Save - this version is now published. To edit in draft mode, switch the status back and the current edited revision will not show to users. You can also send email updates to users from the policy documents list. Select the policy documents you wish the send an email about, choose "Send email" from the actions list and confirm.

    Published policy documents are shown to both authenticated and unauthenticated users via the navigation bar cogs menu.

    Searching for hashtags is now possible using the global search

    The global search now in addition to profile results returns also results of matching hashtags. If the search term includes the hash ('#') and matches exactly to a tag, an instant redirect will be made to the tag stream.

    📜 Mentions are now parsed out of incoming remote content and locally created content.

    💻 Currently the only syntax supported is the Diaspora mentions syntax, ie @{Name; [email protected]}. Currently Socialhome users can create mentions by using the syntax manually. UI layer will be added later to choose people using the standard @ syntax to trigger search.

    When mentioned, local users will be sent an email notification with a link to the content.

    Note to admins : A script is provided if you want to parse old content for mentions. Run ./ runscript link_old_mentions if you wish to parse the content from the last year and create the links. This will also send out email notifications.

    Admin now has a section for Content items and Profiles, for debugging purposes. The User admin was also improved.

    Limited content is now supported 🙈 💪 (#302)

    🔨 Limited content can now be created using the web create form. Note, API does not currently allow creating limited content (except replies to limited content). Once create form is ported to the API, things should be refactored there, right now had no bandwidth to ensure both work.

    🔒 Limited content is shown in the stream with a lock symbol. The create shows some extra fields for limited content. These include "recipients" and "include following". Recipients is a comma separated list of target profile handles the limited content will be sent to. Include following will populate recipients (on save) with all the profiles that one follows. Later on we will add contact lists for better targeting.

    🚚 Limited content visibilities can be edited. If someone is removed from the target recipients, a retraction will be sent to try and delete the content remotely from the target recipient.

    Currently recipients must already be known to the server, in the future a remote search will be done if the profile is not known. Any known remote profile can be targeted - it is up to the receiving server to decide whether to accept it or not. For local profiles, those of visibility SELF (ie hidden) cannot be targeted.

    There is also a new stream "Limited" available. It shows all limited content visible to you.

    ➕ Add "Local" stream which contains only content from users registered on the same server. (#491)

    🔄 Changed

    ⬆️ Bump Django to 2.0 🎉 (#460)

    Only precache for users who have been active (#436)

    🚧 Don't precache items into streams for users who have not been active. Controlled by the same settings as the maintenance of precached streams. Will reduce unnecessary background jobs and make Redis memory usage even more stable.

    🔧 Provided Circus configuration now ensures RQ worker processes are not allowed to endlessly hog server memory. In some rare cases it has happened that normally very stable RQ worker processes have hogged several gigabytes of memory due to reasons which are still being investigated. Now Circus will end those processes automatically.

    🚚 Moved user account, logout, email management and API token pages links under the new "gears" menu in the navbar. These links used to be in the profile page menu.

    🛠 Fixed

    • 👍 Allow search with Diaspora handle that contains port (#457)
    • Important for server admins. There was a mistake in the production Redis connection settings. The setting was not following the given configuration in the documentation. Now the possibility to set REDIS_URL (undocumented) directly has been removed and will raise an error. Use the REDIS_HOST, REDIS_DB, REDIS_PORT and REDIS_PASSWORD settings instead when needed.
    • 0️⃣ Ensure all streams Redis keys have a default expiry of 30 days.
    • 🛠 Fix parsing of remote profile names by also using last_name attribute, where given (#414)
    • 👉 Show possible validation errors on create form instead of just not allowing a save.
    • 🛠 Fix failure of processing remote retractions of replies or shares in some situations.

    ✂ Removed

    • 🚚 Legacy streams routes /public/, /followed/ and /tags/<name>/ have been removed. They already partially broke in the Vue.js streams rewrite.