Updates to the Groups.io service.
January 24, 2020
- 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.
January 17, 2020
- 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.
January 10, 2020
- 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.
December 13, 2019
- 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).
December 7, 2019
- 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.
November 26, 2019
- 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.
November 15, 2019
- 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.
November 8, 2019
- 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.
November 1, 2019
- 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`.
October 18, 2019
- INTERNAL: Various software changes and additional machines to deal with the extreme massive influx of new groups.
- NEW: For premium/enterprise groups on annual billing, we now send out a courtesy reminder two weeks before billing them.
- API: Added `signature` to `member_info` object.
October 11, 2019
- INTERNAL: More work on the API webhooks system.
- CHANGE: When forwarding a message using the Mac email client (and maybe others), it takes the forwarded message, encloses it in a blockquote and adds at the top 'Begin forwarded message'. Because it was in a blockquote, we were collapsing it. This was not good behavior, so we now look for this special case and don't collapse that blockquote.
- API: Added `open_donations_visible` to `perms` object.
- API: Added `hashtags_visible` to `perms` object.
- API: Removed `view_archives` from `perms` object.
- API: Changed `view_guidelines` to `guidelines_visible` in `perms` object.
- API: Added `subgroups_visible` to `perms` object.
- API: Added `perms` field to `member_info` object.
- API: Added new Subs array to `user` object.
- API: The `member_info` object now only returns the fields that are set by the endpoint. Previously it returned all fields, regardless of whether the fields were set or not (some endpoints won't set all the fields based on permissions).
- BUGFIX: When dealing with a message from someone not a part of the group, who has DMARC p=reject set on their domain, use their name in the From line (ie Mark Fletcher via Groups.io). Previously this was blank.
- CHANGE: When banning a member of a group, we now generate a past member object for them so they properly appear in the past members list.
- CHANGE: Added autocomplete="off" to email fields when viewing a member and when viewing your account information to prevent the browser from changing the fields.
October 4, 2019
- INTERNAL: More work on the upcoming notifications system.
- INTERNAL: Much work to revamp the activity log system to support webhook API functionality.
- BUGFIX: The `/getmembers` API endpoint would return all members, including banned and pending members, if you didn't specify a `type`, instead of only returning normal members, which it should do.
- NEW: Added subject checks for 'ris:' and 'r: ' which can indicate a message is a reply.
- CHANGE: Changed the file upload notification so that only one notification is generated regardless of the number of files/directories that are uploaded.
- API: Added `/getphoto` endpoint.
- API: Added `display_name`, `user_name`, `profile_photo_url`, `profile_privacy`, `email` fields to the `photo` object.
- API: Added `/reportcontent` endpoint.
September 27, 2019
- NEW: Upload Folder button in the Files area to upload a directory of files.
- API: Added `/newmembernotice`, `/updatemembernotice`, `/deletemembernotice`, and `/getmembernotices` endpoints.
- NEW: Checkbox to notify the group when you modify a file.
- CHANGE: Rate limit how often someone can report a message, to make abuse more difficult.
- CHANGE: Changed how we present start/end dates/times in calendar invite emails, to match how we present them when clicking Download Event. Even though both should be equivalent, apparently Outlook likes the Download Event version better.
- API: Added `/searchfiles` endpoint.
- BUGFIX: We now consider email addresses with parentheses as invalid.
- API: Added `/searchphotos` endpoint.
- API: Added `/getdirectory` and `/getfile` endpoints.
- API: Changed `snippet` field to `summary` in the `search_result` object for naming consistency.
- INTERNAL: Upgraded Go compiler to 1.13.1
- API: Added `/testnotification` endpoint.
- API: Handle case where group is not in the same domain as the API request. Caused incorrect direct add emails.
September 20, 2019
- API: Added `sort_field`, `second_order`, `query`, `sort_dir` fields to the pagination object.
- BUGFIX: In some cases, when doing a photos search, clicking an individual photo would bring up a different photo.
- CHANGE: Sorting group calendar ICS feeds by start time, to maybe, hopefully, fix a weird Outlook bug.
- BUGFIX: Fix issue where the photo may not match the thumbnail if the album was sorted by Posted.
- API: Added `/registerdevice` endpoint for registering device tokens for notifications.
- NEW: Added `exclude_aliases` flag to `/gethashtags` endpoint.
- NEW: Include the IP address of the mail server we were attempting to delivery email to in bounce message lists on the website.
- API: Added `/searcharchives` endpoint and related `search_result` and `search_results_list` objects.
- API: Added `profile_photo_url`, `name` and `can_view_profile` fields to the `chat` object.
- API: Added `alias` field to `hashtag`.
- API: Added `announce` flag to `/newchat` endpoint.
- API: Setting the `chat_sub` field on the chat object whenever we can. Previously this was only set in a few instances.
- BUGFIX: You couldn't change the case of your email address; it thought you were merging with a different email address and would fail.
- API: Added `/addalbum`, `/updatealbum`, `/deletealbum`, `/addphotos`, `/updatephoto`, `/deletephoto` endpoints.
September 13, 2019
- NEW: More work on the new notifications system.
- API: Changed `gallery_url` field in the photo and attachment objects to `thumbnail_url` because it's more clear.
- API: Added `getalbums` and `getphotos` endpoints.
- API: Changed `profile_photo_id` field in `member_info` to `profile_photo_url`.
- BUGFIX: We had disabled signature parsing in plain text messages where we couldn't tell if the sig was part of the reply or the original message. That change wasn't also added to html messages.
- BUGFIX: Subscribing to a subgroup via email did not work.
- BUGFIX: Fixed a loophole that would sometimes allow emails from numbered qq.com accounts through.
- API: Added `/chatmembers` endpoint.
- API: Fixed bug in `/joinchat` endpoint that caused it to return a `no_group_specified` error.
- API: Added `updateprofile` endpoint.
- API: Added `num_drafts` field to `member_info` object.
- API: Added `updateprofilephoto` and `deleteprofilephoto` endpoints.
- CHANGE: No longer allowing the CSS height attribute because in some instances we were ending up with archives that had overlapping text at the bottom.
- BUGFIX: After creating a group, fix text for groups that are unlisted but with public archives.
September 6, 2019
- CHANGE: Changed a bunch of references to 'post' to 'message'.
- API: Changed `profile_photo_id` to `profile_photo_url` in the User object.
August 30, 2019
- CHANGE: The email bounce returned when sending a message to a group you're not subscribed to had a link to the /join page, which if you are logged in, would bounce you to another page. Removed the /join part of the URL.
- INTERNAL: Updated Facebook API integration to use their latest version.
- API: Added `googleloginstart` and `googleloginfinal` endpoints.
- API: Added `facebookloginstart` and `facebookloginfinal` endpoints.
- NEW: Enterprise groups now support single sign-on (currently only by Auth0, others by request).
- API: New `logout` endpoint.
August 23, 2019
- NEW: Enterprise Settings screen for enterprise accounts to make changes to their domain settings.
- BUGFIX: The email address displayed when you edit an email integration was incorrect. The email address displayed in the overall email integration display is correct.
- CHANGE: In certain messages, we cannot tell if a signature is part of the original message or a part of the reply. We were displaying these sigs, but that lead to some 'false positives'. So, we're no longer displaying the sigs.
- CHANGE: Event notification and cancellation emails now include the Organizer name, if there is one.
- INTERNAL: Cleanup of various javascript displaytime file versions usage.
- API: Implemented `/chatdata` endpoint for chats.
- INTERNAL: Re-implemented much of the chat system to behave well with API calls.
- BUGFIX: We were not recording failed confirmation email results.
- API: Changed `is_subscribed` field in the chat object to `chat_sub`.
- API: Added `show_closed` parameter to the `getchats` endpoint.
- BUGFIX: We were not detecting quoted message parts from Outlook that included a "Cc:" header line.
- CHANGE: Redid the Login With Google authentication system to hopefully conform with their updated requirements.
August 16, 2019
- CHANGE: For premium/enterprise groups, only automatically add an event to the calendar that was emailed to the group if the message is not a reply.
- BUGFIX: When viewing a database row that had checkbox columns, the checkboxes were always checked.
- BUGFIX: Registering a new account via Google or Facebook was broken.
- API: Changed /getgroup endpoint to require a group_name for groups that you are not subscribed to, for security.
- API: Documentation change: The Objects section has been moved to the end of the docs.
- API: The Group object now includes a Perms object if you are subscribed to the group.
- API: Relaxed the requirement for having the `manage_group_settings` permission when accessing the `/getgroup` endpoint.
- API: Added `/sendchatmsg` endpoint.
- INTERNAL: Optimizations for calendars with a lot of repeating events.
- API: Added `/getchathistory` endpoint.
- API: Added `group_name` and `nice_group_name` to the Event object.
August 9, 2019
- INTERNAL: Work to support the app.
- CHANGE: Tweaked the wording of 'Changed display name' activity log entries to be more clear.
- BUGFIX: If someone had changed their display name for a particular subscription, and then changed their display name through their overall profile, an activity log was generated incorrectly saying that the modified display name had been changed, even though it had not.
- NEW: There is a new activity log entry type, 'Moderator changed display name'.
- BUGFIX: Display name activity log records were generated even when the display name wasn't changed when editing a member.
- CHANGE: In the activity log Actions dropdown, change 'Moderated message' to 'Sent message requiring approval'.
- API: Renamed all instances of `sub_id` parameters to `member_info_id`. In all cases, `sub_id` will still be accepted to maintain backwards compatibility.
- BUGFIX: Sending invites still worked even when the group was locked.
- BUGFIX: In message search and member activity search, custom date ranges didn't work correctly if the user had selected a different date format.
- BUGFIX: If a basic group previously was a premium group with a different person set as payor, you could not change who was the payor or upgrade the group.
- API: Removed API_KEY requirement for the /login endpoint.
- API: Changed the /login endpoint from GET to POST.
- NEW: In the sub/resub notification emails, now link to the member pages of the people who joined.
- BUGFIX: Fix for weekly event summary emails not being sent out if the first of the month falls on a Thursday.