Changes to the site this week:
- INTERNAL: Work to investigate which technologies to use for the app.
- BUGFIX: Misc improvements to formatting of the mobile website.
- NEW: (Re)launched the Zoom calendar integration.
- BUGFIX: The left chevron icon in the photo view was not vertically aligned correctly.
- BUGFIX: Paging backwards in the Emailed Photos photo viewer stopped working if you paged back at the first photo.
- API: Fixed pagination bugs with
/getevents endpoint.
- CHANGE: Switchover to the new Help Center, with finalized Owners and Members manuals and FAQ.
- CHANGE: Adjusted the size and alignment of the lines separating a group's footer from the rest of the message footer information.
- BUGFIX: When creating a new plain text wiki page, the page would internally be marked as being HTML, so on future edits the HTML editor would be used.
Take care everyone.
Mark
|
Changes to the site this week:
- INTERNAL: Improvements to our log file grepping system to help track down problems.
- NEW: Many updates to the new Help Center, Owners Manual and Members Manual.
- CHANGE: Lots of little wording tweaks on the website to make things more consistent.
- CHANGE: For messages sent to the +owner address, delete any existing To header and replace it with [email protected], to make it more clear where the message was sent.
- API: Added
/newgroupalias and /deletegroupalias endpoints.
- NEW: Added a search bar to the new group home page/did some rearraigning of the page (as seen on beta@).
- API: Added
/unbanmember endpoint.
- BUGFIX: When uploading a directory to the Files section, the description was not added to the top level folder.
- BUGFIX: Repost was not working in the Topic view.
- NEW: Added Zoom integration to the calendar. You can now set up Zoom meetings when you create new events.
- CHANGE: Cap message subject line length at 1000 characters.
- CHANGE: For groups set to Reply To Sender, no longer add the CC header to point back to the group. When replying-to-all, it would create a duplicate mailing.
- CHANGE: Improved the formatting of the new Owners Manual PDF.
- SYSADMIN: Upgraded the machine instance responsible for sending email.
- INTERNAL: To display attachments on the website, now redirect to S3 in many cases instead of us fetching/returning the data.
Take care everyone.
Mark
|
Changes to the site this week:
- INTERNAL: Work on new Zoom integration with the calendar.
- CHANGE: Do not allow setting up of two factor authentication when you are logged in using Google or Facebook.
- API: Changing a subgroup's name using the
/updategroup endpoint would fail.
- API: Removed
bcc_me parameter from /postdraft as that was unused.
- BUGFIX: Private group guidelines were accessible to non-subscribers via the +guidelines email command.
- INTERNAL: More logging to track email delivery speed
- INTERNAL: Optimizations for lowering the time to deliver email
- BUGFIX: Removed do-nothing
Edit Settings menu option when viewing moderators on the Members page.
- BUGFIX: ICS files containing yearly repeating events were not parsable.
- API:
/newdraft endpoint now supports draft_type_post_to_sub draft_type.
Take care, everyone.
Mark
|
Changes to the site this week:
- INTERNAL: Work on new Help Center and code to convert the new manuals from Google Docs to HTML.
- CHANGE: In the database table page, replaced the individual visibility toggle buttons with a dropdown menu.
- NEW: Database address columns have a default country.
- CHANGE: Changed width of all selects on the website so that they are their natural width, not 100%, which was confusing to some and ugly to all.
- CHANGE: For Multiple Choice, Multiple Select columns, use a series of checkboxes instead of a HTML select element.
- CHANGE: Improved look of the database add row page.
- NEW: Database columns have a new
description field.
- API: Added
/getactivitylog endpoint.
- API: The docs incorrectly left off the
/get prefix for the subgroupcategories endpoints.
- API: Passing in the
type parameter to /getmembernotices would return a blank response.
- BUGFIX: The database map wasn't working for Enterprise domains.
- BUGFIX: If an address field in a database was set to a non-default color, the color would not show up in the add/edit row screen, potentially causing the labels to also disappear.
Stay safe everyone.
Mark
|
Changes to the site this week:
- INTERNAL: Work on a new help center.
- BUGFIX: If an event had '<<' in the name, the group event notice would not be generated correctly.
- BUGFIX: Export user wasn't generating ICS files correctly.
- API: Added
email_address field to group object.
- BUGFIX: There was a bug with event RSVPs which could prevent some people from RSVPing to an event.
- BUGFIX: Removed duplicate
Member Sync buttons from various settings pages. This had been renamed to Service Sync and placed elsewhere.
- API: Fixed sort for
/getmembernotices endpoint.
- CHANGE: Separate the settings in the
Default Sub Settings page into two panels for greater clarity.
- CHANGE: For moderator only hashtags, including Special hashtags, we now allow their use if they've been added to an approved pending message sent from a non-moderator. This means they were added by the approving moderator before the message was approved.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- API: Most endpoints now support the
extended=true parameter.
- API: Endpoints
/unbounceuser , /deleteprofilephoto , /resendconfirmationemail now require a POST request along with csrf token.
- API: Added additional documentation around
extended=true parameter.
- API: Added
token parameter to /login endpoint to allow generation/login using HTTP Auth instead of a cookie.
- CHANGE: When creating a group, if the user has a timezone set, we use that for the default timezone of the group.
- BUGFIX: In some cases where a moderator claimed a pending message and then left a group, an erroneous claiming badge would be displayed on their previously claimed pending messages.
- API: Added
bouncing option for type parameter of /getmembers endpoint.
- BUGFIX: When your default message sort is newest first, and you click on the oldest month on the group home page, previously it would not go to the first message in the archives as expected
- INTERNAL: Updated the Let's Encrypt Cert renewal process.
- BUGFIX: The Github add integration flow did not work with enterprise groups. Also, the Github API is being updated and we needed to upgrade the library we use to access it.
- CHANGE: Changed more instances of
thread in the UI to topic .
- INTERNAL: Optimize forcedigests process.
- BUGFIX: In generated ICS files, we were HTML encoding the Organizer field when we should not have. This was causing parsing errors with some calendars.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- CHANGE: Previously, we would force a digest to be created at 10:30pm Pacific Time nightly, if one had not been generated in the previous 6 hours and messages had been sent to the group since the last digest. Now, we force a digest to be created at 6AM local time for each subscriber, based on their timezone, if a digest had not been generated in the previous 6 hours and messages had been sent to the group since the last digest.
- CHANGE: When creating a new group or changing the name of an existing group, change the error message when the group name is already taken to
That address is not available. .
- CHANGE: Hardcode some IP addresses associated with chinamobile.com because reverse DNS lookups on them fail randomly.
- BUGFIX: The command to update whether a topic was locked/moderated/etc in the search index was failing because the syntax changed between Elasticsearch versions. Fixed the command and re-indexed the message archive.
- BUGFIX: When joining a new group, the membership parameters could not be modified from that page.
- INTERNAL: Upgraded to Go 1.14 compiler.
- NEW: Database columns now have a
Default Hidden checkbox.
- NEW: Database tables now have
ID Default Hidden and Updated Default Hidden checkboxes.
- API: Added
default_hidden field to the Database Column object.
- API: Added
id_default_hidden and updated_default_hidden fields to the Database Table object.
- BUGFIX: Wrong logo used for Google Drive.
- API: Removed the
invalid posterid error from /searcharchives to allow people to search for messages from people who are no longer members of the group.
- API: Added
body field to message_search_result object.
- NEW: Member Directory Search.
- API: Added
/searchmemberdirectory endpoint.
- BUGFIX: When deleting attachments to make space, we were not taking into account space used by files and photos, so we ended up deleting fewer attachments than we should have.
- BUGFIX: Fixed pagination when searching on members.
- SYSADMIN: Added an additional hot standby instance of the main database server.
- CHANGE: In the UI, changed
hash tags to hashtags for consistency.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- NEW: Member search now also searches moderator notes.
- BUGFIX: In some cases when we do a reverse DNS lookup on the IP address of a server sending us email, the Go DNS library would return a
server misbehaving error, which we treated the same as not having a reverse DNS record, causing us to reject the incoming message. In those cases, we now repeat the lookup using an alternate DNS library. Specifically, China Mobile email servers seem to suffer from this.
- BUGFIX: For some queries, wiki search would return a blank second page.
- BUGFIX: For search queries with URL encoded characters, we would not properly decode them correctly on the subsequent search pages.
- API: Misc improvements to the documentation.
- API: Added "bad_request": "no space" errors to
/addphotos , /updatephoto and /addfiles endpoints.
- CHANGE: Moderators now cannot change the role of Owners.
- CHANGE: Moderators now cannot change the subscription options of Owners.
- API: Added support for
extended=true to the drafts API endpoints.
- API:
/updatemember can now return: "bad_request": "moderators cannot change role of owners" is returned if a non-owner attempts to change the mod_status field of an owner.
- API:
/updatemember can now return: "bad_request": "moderators cannot make members owners" is returned if a non-owner attempts to make a member an owner.
- API:
/updatemember can now return: "bad_request": "moderators cannot change owner subscription settings" is returned if a non-owner attempts to change an owner's subscription settings.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- INTERNAL: Added additional monitoring of the search cluster.
- INTERNAL: Switched over to a new Elasticsearch 7 search cluster. All of this work around search has multiple goals:
- The old search cluster was under-powered and running on older software, and nodes were prone to freeze up.
- Defining a new member index for a new member directory search.
- Switching the existing member list search to use the search cluster with the goal of allowing groups to add additional custom fields for members, which could be searched upon.
- INTERNAL: Re-indexed all of our data in a new search cluster.
- BUGFIX: Found a file descriptor leak in some networking code.
- INTERNAL: Began deleting attachments in groups that are over their storage allotment.
- CHANGE: Changed more instances of
subscriber to member on the website.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- CHANGE: Standardized on the term
member ; we used subscriber and user previously. Several tweaks to the group settings page. Changed NuM to NMM.
- INTERNAL: Much work to support moving from Elasticsearch 5 to Elasticsearch 7, including optimizations for full reindexing.
- BUGFIX: Introduced and then fixed a bug that caused errors when trying to join a subgroup.
- CHANGE: The text when creating a group said that new members would be NuM 2, but the group was created with NuM 1. All new groups are now created with NuM 2.
- API: Removed
sub_group_access from /creategroup endpoint.
- CHANGE: Removed the Create Subgroups dropdown when creating a new group since subgroups are now a premium feature.
- INTERNAL: Switched from one SSL certificate for all enterprise domains, to individual certs for each domain.
- BUGFIX: Changed how we sort messages in the Messages/Expanded messages view to use message created date instead of object date, to account for groups that had messages imported that were not strictly date ordered (or that already had messages in the archives).
- NEW: Rate limiting joining groups and other things to help detect/prevent the
mass subscription attacks we were seeing this week.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- INTERNAL: Better tracking of which mechanism a user is added to the system, to aid in spotting shenanigans.
- SYSADMIN: Added a lot of storage to increase the amount of historical logs we can keep.
- INTERNAL: Work on converting to elasticsearch 7.
- INTERNAL: Optimizations to the change data system that ingests data into the elasticsearch cluster. We were replaying a lot of old LSNs after each restart that we didn't need to.
- CHANGE: In the email announcing a pending subscription, change
rejected to deleted to explain what happens after 14 days.
- SYSADMIN: Added an additional 6 nodes to the search cluster because searches were taking too long.
- BUGFIX: After searching/finding a photo, the Download button did nothing.
- BUGFIX: Viewing the Emailed Photos album using any sort order other than Posted would lead to the wrong order when viewing individual images.
- CHANGE: For Enterprise SSO, first redirect through the groups.io domain, then to the SSO provider, like we do with Facebook/Google.
- API: Added
start_time parameter to /downloadarchives endpoint.
- API: Updated docs on
/updategroup endpoint, adding some missing parameters.
- NEW: New premium feature, Send Invites On Join, sends an ICS file of all calendar invites when someone joins a group, and sends an ICS file of cancel notices when someone leaves a group.
- BUGFIX: Re-write of how we were generating calendar ICS files to clean up some technical debt but more importantly to generate more correct files in regards to repeating events. Previously the ICS files just contained single events for each instance of a repeating event instead of specifying the repeating event itself. This led to issues when cancelling events, both via ICS files as well as when someone tried to delete an event in their (third party) calendar.
- BUGFIX: Flash notices (like 'You are not allowed to create any more groups today') were not displayed in some instances when your home page was /groups.
- CHANGE: A group that is not restricted can no longer have
Members Visible set to Subscribers , unless it is a subgroup and the parent group is restricted. This is prevent email address harvesting.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- INTERNAL: Cleaned up instances of the same hashtag appearing twice in the topic.
- BUGFIX: If sending to an announcement subgroup where you are not a moderator but you are a moderator of the parent group, the message would bounce.
- BUGFIX: When banning an existing member by entering their email address manually, we did not save their moderator notes, owner messages, etc. Now, it does the same thing as banning a member using the Actions dropdown when viewing the member list.
- NEW: Added another Yahoo hard bounce error code.
- INTERNAL: Rearchitected how we paginate through messages, to be more efficient with the database.
- SYSADMIN: Removed the extra block storage needed during the Yahoo Groups migration.
- MISC: Hired a technical writer to draft a Groups.io manual.
- CHANGE: Removed Canny.io integration.
- BUGFIX: The messages in the mbox file when exporting a group were not in ascending order, as required.
- CHANGE: Optimized drafts database queries.
- MISC: Hired a consulting firm to help with search issues, including member directory search and upgrading our existing cluster.
- CHANGE: Reorganized the Beta group hashtag list. Established a new group charter.
- NEW: In the Hashtags page, added an icon to indicate mods only hashtags.
- INTERNAL: Added some database indices to speed up topic deletion.
- INTERNAL: Optimized several search queries.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- BUGFIX: Fixed a deadlock issue in some cases during confirmation via email.
- INTERNAL: Addressed some technical debt around the calendar code, and in the process fixed two timezone conversion bugs in ICS feeds.
- API: The
message object now has an attachments array.
- BUGFIX: The
your subscription is not yet approved banner was appearing one page refresh too late.
- BUGFIX: Edit buttons were missing from the Hashtags page.
- API: The docs for
/createhashtag incorrectly stated that description was required.
- BUGFIX: Fix crash when sorting a database by a column that no longer exists.
- BUGFIX: The user was not being displayed in
Message rejected from not confirmed member activity log lines.
- API:
/downloadarchives now supports start_msg_num parameter.
- NEW: When downloading archives either through the API or through the export group function, each message now has a
X-Groupsio-MsgNum header with the message number of the message.
- API:
/newdraft now supports draft_type_dm .
- NEW: Include descriptions in the list of hashtags on the New Topic page.
- APP: Created new App subgroup and got approval from Apple for the first test version of the app.
- BUGFIX: If a pending member was rejected on the group member screen, they were marked as Removed in the Past Members page, when they should be marked as Rejected.
- BUGFIX: The API call /directadd wasn't returning full
member_info object information.
- CHANGE: Increased concurrency of the process responsible for handling email delivery status updates because it was bottlenecking email delivery due to our ever increasing email delivery numbers.
- BUGFIX: We were not handling emails with header lines that weren't properly capitalized correctly.
- BUGFIX: Editing a malformed message imported from Yahoo that was missing a body didn't work.
- CHANGE: Removed Facebook Integration from the group Integrations page.
- NEW: Added additional checks for our DNS servers to ensure that we catch any DNS issues.
- NEW: Added new
Messages that start new topics are moderated group moderation option.
Have a good weekend everyone.
Mark
|
Changes to the site the past few weeks:
- BUGFIX: When a poll was created and moderated, if a group moderator edited the poll before approving it, the poll ownership was mistakenly changed to the moderator.
- CHANGE: All premium groups now have 20GB of storage.
- CHANGE: The 'Note Sent To Attendees' email sent to people reply yes to an event, as well as the email notifying someone they have been moved from the waitlist to the attending list, were sent from the +owner email address. They are now sent as coming from the creator of the event.
- INTERNAL: Wrote a new utility to do some consistency checking and cleanups of the various databases.
- API: We are now ratelimiting the
/downloadarchives endpoint because of abuse.
- INTERNAL: Developed a new system to make it easier to grep through all the various logs to research problems in the system.
- INTERNAL: Switched from a redis-based rate limiting system to a custom system.
- BUGFIX: When changing your email address, we were sending the warning email to the new email address when we should have been sending it to the old email address.
- CHANGE: Display the updated date in the 'Uploaded' column in the files section.
- CHANGE: Previously, when a group had
separate footers checked, we would not try to strip out any remnant footers from incoming replies. Because some mailers combine multiple text parts when replying, we still need to look for these footers in replies, otherwise unsubscribe links could be inadvertently sent out.
- BUGFIX: For some reason, a few people started receiving duplicate summaries the last couple of days. I refactored the code that generates the summaries and that fixed the problem even though that code hadn't been touched in months.
- NEW: Added new Event Summary Email interval: Bi-Weekly on Fridays.
- CHANGE: Changed Zendesk to send back an acknowledgement when a support email is received.
- BUGFIX: For enterprise groups without a custom home page, setting
disable sign up to true would result in an endless redirect.
- CHANGE: Modified message import code to support mbox files from Yahoo Group's export system.
- API: Added
/updatewikipage , /deletewikipage and /deletewikirevision endpoints.
- BUGFIX: For people on
special messages only , the message footers wrongly said You receive all messages sent to this group.
- NEW: Special messages are now sent with the subject tag
[Special] .
- API: Changed
moderated to moderation in the Group object.
- NEW: Added additional information to the
Sent message requiring approval activity log line, specifying exactly why a message was moderated. This duplicated the Message from member required approval because of virus line, which I have removed.
- SYSADMIN: Upgraded hot spare database instance to have the same resources as our main database.
- INTERNAL: Switched from a redis-based session tracking system to a custom system.
- BUGFIX: Fixed line breaks in the index in the plain text digest.
- API: Added
plan field to group object.
- API: Added
nice_group_name , cover_photo_url , icon_url , subs_count , most_recent_message fields to the member_info object.
- API: Changed the sort options for the
/getsubs endpoint and added the set_home_page parameter.
- API: First pass at
/getdatabaserows endpoint.
- NEW: Added 'Deleted Account' activity log entry for when people delete their accounts.
- API: Added
is_reply field to Message object.
- INTERNAL: Lots of technical debt formatting issues cleaned up.
- API: Added
/getdatabases endpoint.
- INTERNAL: Split smtpauthd from smtpd server to make things more clear.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- BUGFIX: Even if a group is configured to allow users to specify new hashtags (Messages can be tagged with new hashtags), the 'Create Hashtag' button was not displayed in the Hashtags page for members.
- NEW: Integrated with Canny.io to test feature request/tracking.
- API: Added
/newhashtag , /updatehashtag , /deletehashtag endpoints.
- API: Added
/mutehashtag , /unmutehashtag , /followhashtag , and /unfollowhashtag endpoints.
- CHANGE: Members can only donate to a donation request one time. This is to prevent accidental duplicate donations (which have happened, unfortunately).
Because of the holidays, the next #changelog will be posted on January 10th, 2020.
Have a good holiday season everyone!
Mark
|
Changes to the site this week:
- SYSADMIN: Upgraded the outbound email machine.
- CHANGE: We are no longer accepting new Yahoo Group transfer requests.
- API: Added
reply , bcc_me and from_owner parameters to the /postdraft endpoint.
- API: Added
/authenticateloginlink endpoint.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- API: Added
/sendloginlink , /resendconfirmationemail and /unbounceuser endpoints.
- API: Added
/getsubgroupsbycategory endpoint.
- NEW: When changing your email address, we now send a notification email to your old email address.
- API: Added
/getsubgroupcategories endpoint.
Because of the holiday, the next #changelog will be on Friday, December 6th.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- API: Added
/searchwikis endpoint.
- API: Changed
search_result object to message_search_result .
- API: Added
/getbounceinfo and `/getdeliveryinfo' endpoints.
- API: Added
/getmessagehistory endpoint.
- API: Added optional
type parameter to the getmembernotices endpoint.
- API: Added
muted and followed fields to hashtag object.
- API: Added
/getsinglefeed endpoint.
- CHANGE: When switching from monthly to yearly billing, charge the card immediately instead of waiting until the next invoice date.
- BUGFIX: Updated the list of timezones with their current UDT offsets.
- BUGFIX: Fixed an issue where going to an open chat would just return you to the available chats page.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- INTERNAL: Several database optimizations to speed group imports.
- INTERNAL: Completed webhook server.
- API: Added
/getmemberdirectory endpoint.
- API: Added
sticky_wiki_page_id field to the group object.
- API: Added new
id parameter to /getwikiset endpoint.
- API: Added new
Types section to the docs. Currently only lists the action enum.
- API: Changed all view_* permissions to be *_visible, to be consistent.
- API: Added
msg_num , subject , extra , extra2 , extra_id fields to webhook_event objects.
Have a good weekend everyone.
Mark
|
Changes to the site this week:
- API: New endpoints:
newpoll , updatepoll , getpoll , vote .
- API: New endpoint:
registeruser .
- NEW: Testing prioritizing support emails from group owners of premium groups.
- API: New endpoints:
newwikipage , getwikipages , getwikipageset .
Have a good weekend everyone.
Mark
|