Releases - PermanentOrg/meta GitHub Wiki
2024
April 30, 2024
Bugfixes
- Prevent left hand panel and file workspace from getting out of sync regarding which archive a user is in
- Handle text wrapping better in item descriptions
- Fix upload button for older browsers
Process
- Refactored RecordVO and added tests in web-app
- Dependency updates in upload-service and sftp-service
April 25, 2024
Bugfixes
- Fix bug causing left side archive info to not match the file list items displayed
Process
- Remove Facebook integration messaging from web-app
- Refactor web-app MessageService
New features
- Add new checklist endpoint
April 17, 2024
Bugfixes
- Let users log in even if they are removed from their default archive
- Store emails in lowercase
- Fix copy so that we don't have orphaned records with no parent folder
Process
- Add account space to /login response
- donations-firebase, notification-service, sftp-service, upload-service dependency updates
- Update Stripe API and client
- URL-encode filenames in tests
New features
- Add admin endpoint to recalculate record thumbnails
April 10, 2024
Process
- Formatting improvements in back-end
- Github actions update in web-app
- New linting rule in web-app
- Dependency updates in upload-service
- Rotate FusionAuth API key
- Documentation updates in stela
Bugfixes
- Attempting to send a text message to a missing phone number now results in the correct error
- You can now upload a file multiple times in a row without refreshing
April 3, 2024
Process
- Update donations-firebase, web-app, upload-service, notifications-service dependencies
- Prettier formatting for PHP
- Fix inconsistent web-app unit tests
March 28, 2024
Process
- Update donations-firebase, web-app, upload-service, sftp-service, notifications-service, stela dependencies
- New linting rules for PHP
- Prettier formatting for PHP
- Explicitly add a folder link to shares
- Fix more strtolower deprecation warnings
New features
- Give users a specific error if an upload fails because of permissions
- Add glam checkbox
- Send Mixpanel calls to the back-end API from the web-app
March 12, 2024
Process
- Dependency updates in sftp-service, upload-service, and web-app
- New linting rules in back-end
- Update node version in upload-service's Dockerfile (used for testing)
- web-app now passes archive type "group" instead of "family" in API calls
Bugfixes
- Stop passing nulls to PHP functions for which this is deprecated
- Pass a valid comparison function to PHP's usort function
New Features
- Added POST /api/v2/event endpoint for recording events in our database (and optionally Mixpanel)
- Added POST /api/v2/promo endpoint, allowing admins to create promo codes
March 6, 2024
Process
- Update dependencies for donations-firebase, sftp-service, and upload-service.
- Enforce more PHP linting rules
- Enforce more web-app linting rules
Bugfixes
- Fix rare web-app test failure
- Fix permission errors when searching in subfolders
February 28, 2024
Process
- New button component and form input component for GLAM
- New key source for PHP packages
- Enforce more PHP linting rules
- Update dependencies for upload-service, donations-firebase, and stela
- Add a new event table
- Accept the "group" type for archives
- Remove deprecated PHP constant
- Speed up stela local tests
- Update back-end Twilio client
Bugfixes
- Fix copying folders
- Fix public search
New features
- Display text files in the browser
February 21, 2024
Process
- New linting rule in back-end
- CI fix in back-end
- Dependency updates in web-app
New Features
- Banner to direct users to the mobile app on mobile web
- Add RootsTech 2024 promo codes
- New toggle component in web-app (added, not yet used)
February 14, 2024
Process
- PHP linting rules
- Handle a file not found error so the client gets a sensible response
New Features
- Tell the user the destination of their uploaded file(s)
- Indicate which fields are editable in the record editor
February 8, 2024
Bugfixes
- Fixed issue with picking a new banner/profile image.
February 7, 2024
Process
- Add and enforce new back-end linting rules
- Web-app, sftp-service, and upload-service dependency updates
- Upgrade to Angular 17
Bugfixes
- Fix how profile completion percentage is calculated
- Handle error if ProcessUploadedRecord can't find the file
- Throw invalid request error if tags is empty string in v2 search
- Fix permission check when updating profile items
- Return full SharebyUrlVO on successful share link update
New Features
- Fetch featured archives from API
- Accept v2 requests to /share/updateShareLink
January 30, 2024
Process
- Dependency updates in upload-service and sftp-service
- Added /admin/account/set_null_subjects endpoint to clean up accounts missing subjects due to age or the bug we fixed last week
- Update the transaction email client library in back-end
Bugfixes
- Fixed authentication bug in /share/updateShareLink
- The assetlinks.json file used for Android deeplinking will now be properly set on the backend instance
New Features
- Added "Your Public Archives" section to public gallery
- /share/generateShareLink now supports v2 requests
January 25, 2024
Process
- New deeplinking updates for iOS
Bugfixes
- FusionAuth account IDs are now recorded in all account creation flows
New Features
- /share/generateShareLink now supports v2 requests
- Profile information of public archives can now expand/collapse on mobile web
January 23, 2024
Process
- New deeplinking updates for Android and iOS
- Deprecation fixes: fix casting to int, remove utf8_decode and utf8_encode, check for null argument to is_file, update Stripe client, stop passing null to DateTime constructor
- Error (instead of warn) on new web-app linting rule
January 22, 2024
Bugfixes
- Share link creation permissions check
Process
- Upgrade PHP libphonenumber and call Guzzle correctly
- Stop setting dynamic properties in VO constructors
New features
- Login is case-insensitive
January 19, 2024
Bugfixes
- Fix some PHP deprecation warnings
- Reduce Sentry sampling rate
- Fix large file uploads
January 17, 2024
Bugfixes
- Fix error in Firebase JWT validation
- Fix issue with permissions in share link generation
Process
- Upgrade back-end, upload-service, and sftp-service dependencies
- Update Mixpanel events in web-app
- Upgrade to PHP 8.3
- Upgrade to Debian 11
January 10, 2024
Bugfixes
- Confirmation message for upload to a public folder now appears when file is submitted via drag-and-drop
- Display an error message when upload is attempted with a zero-byte file
- Viewers can now get links to public archive items
- Public gallery page no longer redirects users with invalid sessions to the login page
- Attempting to create an archive without a session now causes the correct error
Process
- Enable linting rules in web-app
- Improve formatting in back-end
- Dependency updates in sftp-service, upload-service, and back-end
- Remove unused Facebook integration code from back-end
- Update back-end to PHP 7.4
- Standardize how apt source files are copied to images
- Install packer plugins explicitly during image builds
2023
December 12, 2023
Bugfixes
- Return custom metadata correctly for folders
- Make it easier to highlight text in modals
- Make archive.public a boolean everywhere
- Fix archive search
- Return size for shared folders correctly
- Fix archive rollback / hard deletion
- Update permission checks for profile items and relationships
Process
- Improve event tracking
- Update public archive design
- Improve rclone usage documentation
- Stop using ts-node in stela
- Pin the permanent sdk in the sftp-service
- Update sftp-service and upload-service dependencies
New features
- Add a setting to allow/disallow deletion over SFTP
December 5, 2023
Process
- Upgrade
web-app
to Angular 16 - Stop waiting to retrieve file data in the
sftp-service
, since it's now returned by/registerRecord
- Dependency updates in
donations-firebase
,sftp-service
, andupload-service
- Onboarding emails are now sent from Mailchimp instead of through
back-end
Bugfixes
- Folders with special characters in their names will no longer be duplicated on Permanent when syncing via SFTP/rclone
- Custom metadata is now returned correctly from /folder/get (so will now display correctly for folders)
New Features
- Search within an archive now supports searching for internal substrings in file and folder names.
- When searching archives, archives belonging to test accounts will no longer appear in the results.
- Report upload time in the console on the web-app in test environments
November 29, 2023
Process
- Optimize caching in SFTP service
- Include email in Mixpanel requests
- Populate FileVOs in registerRecord response
- Dependency upgrades for sftp-service
Bugfixes
- Fix bug with colon in search queries
- Fix issues with panning in file viewer
November 15, 2023
Process
- refactor refresh tokens on SFTP
- upload service dependency updates
- sftp service dependency updates
- remove anonymous checkbox for storage purchases
Bugfixes
- expand long titles in public archive
New features
- add bulk gifting endpoint
- add email for gift recipients that already have an account
- add UI for multiple gift recipients
- autofill the storage signup promo code from a link
November 7, 2023
Process
- Refactor temporary storage in sftp-service
- Dependency updates in sftp-service, upload-service, and donations-firebase
Bugfixes
- A missing value in a FamilySearch fact object no longer causes an error
- A colon in a search query no longer causes an error
November 1, 2023
New Features
- Storage gifting feature interface
- Show gifting amount in invitations
- Add /billing/gift endpoint
- Add notification email send for gift recipients
Process
- Give invitees 100 MB
- Enable additional linting rule in web-app
Bugfixes
- Upsert to mailchimp on account creation
- Fix parameters in GetToEmailNotificationVOs query
October 25, 2023
Process
- Improved SFTP docs
- Upgrade Storybook and dependencies
- Update SFTP service, notification-service, stela, and upload-service dependencies
- Add human-readable transaction types for gifting
Bugfixes
- Show redeemed storage in storage bar immediately
- Tags persist on scroll in folders
- Search works with quotation marks
Features
- Backend: transfer storage when an invitation with a gift is first created
October 18, 2023
Process
- Add a new invitation code that doesn't get system-generated emails
- Add a new activity type for non-system-generated emails
October 17, 2023
Process
- Added a test coverage analyzer to web-app
- Dependency updates in upload-service and sftp-service
Bugfixes
- Users invited with a storage gift can now sign up even if the inviter doesn't have enough storage to make the gift
October 11, 2023
Process
- Dependency updates in notification-service, upload-service, sftp-service, and web-app
- Fix some unreliable web-app tests
- Check space before gifting storage
Bugfixes
- Fix access roles on items returned by shares
- Fix zip file downloads of shared records and folders
- Extend duration of system messages in web-app
- Show "Add Tags" label even if tags already exist
October 4, 2023
Process
- Refresh auth tokens for SFTP service
- Update sftp-service dependencies
- Delete deprecated API endpoints
Bugfixes
- Fix email and phone verification
- Storage bar updates after uploading/deleting files
- Use branded icons for image zooming
- Remove extra slash from public archive link
New features
- Users can navigate through tags with keyboard arrow buttons
- Add featured archives to database
- Add endpoints to manage featured archives
September 26, 2023
Process
- Dependency updates for sftp-service
- Dependency updates for upload-service
September 15, 2023
Process
- Switch PHP/Apache config to mpm_event + php-fpm
- Add mixpanel events to goal setting flow
- Dependency updates for upload-service
- Dependency updates for sftp-service
New Features
- New onboarding flow focusing on goal setting
- Add alt text metadata field
Bugfixes
- Fix "keep me logged in" functionality
- Fix grid/list display buttons
- Fix error when signing into a new account with multifactor authentication enabled
September 6. 2023
Process
- Enable two new linting rules for web-app
- Dependency updates for upload-service
- Dependency updates for sftp-service
- Add SSH key for a contractor
- Change node installation path
- Update SFTP to node 18
Bugfixes
- Use correct content type for jpg files, to fix FamilySearch integration
- Search now returns expected results in the workspace
New features
- New functional sign up test suite
August 31, 2023
Process
- Dependency upgrades in
sftp-service
- Set Mailchimp tags in test environments
Bugfixes
- Fix scrolling when signing up through a share link
August 29, 2023
Process
- Update featured archives
- Add MixPanel event for signup
- Upgrade upload-service to node 16
- Upgrade notification-service to node 16
- Add linting rules to
web-app
- Dependency updates in
sftp-service
- Dependency updates in
upload-service
August 23, 2023
Process
- Dependency updates in web-app, upload-service, notification-service, and sftp-service.
- Update linting in sftp-service.
- Update featured archives in public gallery.
August 16, 2023
Process
- Activate new linting rules in
web-app
- Dependency updates in
upload-service
- Dependency updates in
sftp-service
Bugfixes
- Stop trying to use deleted records as folder thumbnails
- Fix a bug wherein cached login data on the frontend can cause the app to hang if the user isn't actually logged in
- Handle non-sequential writes correctly in SFTP
New Features
- Add a service to clean up temporary files created by the SFTP service
- Add alt text field to records (backend only so far)
- Add support for processing smaller, more carefully specified batches with the folder thumbnail regeneration endpoint
- Add messages to SFTP failure statuses
- Display available storage for archives with payer accounts
August 9, 2023
Process
- Dependency updates for sftp-service, permanent-sdk, and upload-service
- Update SDK to Node 18
- Delete deprecated location endpoints from back end
- Change instances of "family" to "group" in web app
- Set up new end-to-end (functional) test
- New linting rules on webapp
- Fix environment typing errors on webapp
- Make dependabot faster and better targeted for permanent-sdk
Bugfixes
- Make folder creation requests in small batches
New features
- Add an admin endpoint to trigger folder thumbnail generation
- Install/integrate Mixpanel into the webapp
August 2, 2023
Process
- Bump dependencies for notification-service, sftp-service, stela, and upload-service
- Do not run terraform validation for stela when it's not modified
- Enable web-app linting rules: import/no-default-export, import/no-duplicates, import/no-extraneous-dependencies
Bugfixes
- Standardize sending empty object instead of empty array from back-end
- Validate giftStorage requests
New Features
- Add payer account storage endpoint
July 27, 2023
Process
- More logging of errors for SFTP
- Bump SFTP dependency
Bugfixes
- Archive profile modal always opens
July 25, 2023
Bugfixes
- Fix keyword and custom metadata editing in the full screen editor
New Features
- Archive owners and managers can now set themselves as the payer account for an archive
- Welcome messages are now more personalized based on how a new user signed up
Process
- Delete deprecated invite endpoints
- Dependency updates in
web-app
andback-end
- Generate usable folder thumbnails on the back end
July 19, 2023
Bugfixes
- Stop regenerating CDN urls on displayName change
- Make search work with multiple sequential separators
New features
- Get all public tags for an archive
- Gift storage endpoint
Process
- Set up Sentry for stela
- Add newline-after-import linting rule for web-app
- Delete deprecated device/used endpoint
July 13, 2023
Process
- Unset archives' payer accounts if they become ineligible
- Delete deprecated connector endpoints
- Set up linting on web-app repository
- web-app and sftp-service dependency upgrades
New Features
- Use multipart uploads in web app for files over 100MB
June 30, 2023
Bugfixes
- Eliminated a security vulnerability
- Fix arrow buttons for navigating between files
- Fix arrow key navigation while editing metadata
- Fix PDF display on mobile
June 29, 2023
Bugfixes
- Restore search by tag functionality
- Fix display of spreadsheets, presentations, and .txt files
June 28, 2023
New Features
- Add support for multipart upload on the backend
- Add reminder to claim additional storage to the welcome message for users who have storage to claim
- Add "show more" option to view or hide long archive descriptions
- Add payer account property to archives (not yet in use)
- Add option to download original or converted version of files
- Add an endpoint to retrieve the promo code an account signed up with
- Add an endpoint to retrieve all tags on public items in an archive
Process
- Use the /data volume for temporary storage in the SFTP service
Bugfixes
- Copy corrections in frontend (related to account funding and ownership transfer)
- Flatten multilayer images when converting to .jpgs for in-browser display (previously this conversion failed)
- Fix unclickable links in public archives
- When an archive is transferred to a new owner, the old owner now becomes a manager instead of a curator
June 14, 2023
Legacy planning
- Automate prod deployments for stela
- Allow clearing note to the steward
- Create the legacy contact modal
- Add option to send legacy plan email on ownership transfer, with note
- Let users with MFA see legacy planning
- Show error when trying to update steward to a non-account-holder
- Stop accounts from setting themselves as legacy contact or steward
- Email new legacy contacts and new archive stewards
- Send emails from stela (with MailChimp Transactional API)
- Final legacy planning front-end changes (from QA)
Process
- Fix SFTP remote address documentation
June 8, 2023
Bugfixes
- Use proper file extension when downloading converted files
- Fix bug where Archive Profile can't open
- Log out users when their authentication token is expired
- Point web-app to proper API subdomains
- Recolor archive settings modal to be blue
Process
- sftp-service dependency updates
- Use updated version of node for upload service
- Add custom redirect
New Features
- Add legacy contact modal screens (currently not used in the web-app)
- Add legacy contact API methods to web-app
May 30, 2023
Process
- Dependency upgrades in the SFTP service and web app
Bugfixes
- Longer archive descriptions no longer cause the archive title and search bar to overlap with the banner image.
New Features
- Add directives modal (hidden until the full legacy planning release)
May 25, 2023
Process
- SFTP service dependency upgrades
- Undeprecate /archive/getByArchiveId endpoint
Bugfixes
- Fixed archive title display in public archive
- Made HTML formatting appear correctly on public archives
Stela updates
- Fix SSL cert
- Return a steward object with name and email instead of just the account id
May 17, 2023
Process
- Update
sftp-service
dependencies - Use
country-list
package instead of vendored dataset in web-app
Bugfixes
- Fix error preventing TIF files from being viewed
New Features
- Public archives are redesigned, including a new search bar
May 11, 2023
Process
- Enable manual runs of the more holistic functional tests
- Configure linting rules in
back-end
- Update
sftp-service
dependencies - Apply Prettier formatting in more of
back-end
- Remove deprecated /account/getAllAccounts endpoint
- Update
upload-service
dependencies
New Features
- Connect directive screens (still hidden in production) in web app to the directives API
Bugfixes
- Use maximum resolution images when zooming
- Fix search by tag
May 4, 2023
Process
- Upgrade to Angular 15
- Linting: unary_operator_spaces, visibility_required
- Deploy stela to staging
- Update Node to 14 on backend
- Upgrade SFTP service dependencies
- Upgrade upload service dependencies
- Upgrade notification service dependencies
Bugfixes
- Show full name of file or folder on hover in public gallery
- Increase MaxRequestWorkers to mitigate against SFTP-caused crashes
- Stop fatal errors when an incorrect share link is opened
- Fix share preview toggle
New features
- Backend support for search in public archives
- Add timestamps to legacy contact table (part of directives)
April 27, 2023
Process
- Dependency updates in back end
- Enabled linting rules in back end:
trim_array_spaces
,trailing_comma_in_multiline
New Features
- Add ability to navigate the metadata editor with the tab key
- Add the feature to zoom in and pan around images
April 25, 2023
Process
- Dependency updates in SFTP service
- stela's POST /directive endpoint takes steward account email instead of ID
- add documentation to SFTP service
Bugfixes
- SFTP: fix parameter types for stat handlers
- back-end: Update task runner so timeouts apply to document conversions
April 19, 2023
New Features
- SFTP/SDK: use the new "allow SFTP deletion" setting from backend
Bugfixes
- SFTP: throw more specific errors
- SFTP: always resolve calls
- Back-end: retry move operations
Process
- Linting: ternary operator spaces
- SFTP dependency updates
April 13, 2023
New Features
- Add SFTP delete
- Add enableSFTPDelete setting to backend
Bugfixes
- Handle FamilySearch keys case-insensitively
Process
- Add non-security dependabot to SFTP service and update a bunch of dependencies accordingly
- Consistent function naming in SFTP service
- Reorganize CI and deployment to make migrations run in CI
April 12, 2023
New Features
- Archive type can now be updated
- Directive edit screen now exists (but is hidden until the full feature launch)
- SFTP now supports delete operations (but they're presently disabled for all users)
Process
- New linting rule on
back-end
standardizes style around increment operations dependabot
is now enabled forupload-service
April 6, 2023
Process
- Create v2 account access endpoint
- Linting: enable
space_after_semicolon
rule - Add new routes for tabs in the Storage Dialog
March 30, 2023
Process
- Rotate token to make slack alerts work
- Linting: single quotes everywhere, single space after construct
- Take DELETE verb on folder/delete
Bugfixes
- Long archive names wrap on left side
- Canceling out of the description field now works
- Download works for files with commas in their names
- Update session generation to use random_int
- Make it possible to change archive type
Bugfixes
March 22, 2023
New Features
- Directive display screen (built and deployed, but currently hidden in the app itself)
Process
- Added
single_line_comment_style
linting rule toback-end
Bugfixes
- Prevent multiple directives of the same type on one archive
- SFTP now fails explicitly on unimplemented delete
- SFTP stops closing already closed files
- SFTP no longer makes blocking filesystem calls
- SFTP now waits to access files until they're done processing
- SFTP now bypasses the cache when a file is missing
March 16, 2023
New Features
- Add link to Public Gallery page in archive manager
Process
- Activate and enforce
short_scalar_cast
PHP linting rule - Redirect to Fusion Auth in web-app when resetting password
- Add reset password / signup deeplinks
March 9, 2023
New Features
- Add default access role as new share link setting
- Allow admins to transfer archive ownership (for legacy planning)
Bugfixes
- Remove uppercase extensions from displayName / user-visible title (to match behavior of lowercase extensions)
Process
- SFTP: use archiveNbr instead of archiveId in archive folder naming, show correct dates on folders, be smarter with caching
- Limit to one trigger per directive
March 1, 2023
New Features
- SFTP: cache per user instead of per connection, handle AWS errors, allow null display dates
Process
- Notification service dependency update
- Improve downloadName script to handle names ending in "."
February 23, 2023
New Features
- Add support for v2 requests on record deletions
- Update v2 record endpoint to include all files
Process
- Remove some SSH keys
- Activate database migrations
- Do account signup in one API call
- Add legacy_contact and directives tables
- Update initial storage gift to 100 MB
- Don't send welcome email to users with specific code
- Remove our fork of vis-timeline in web-app and replace it with the standard release
- Activate and enforce PHP linting rules:
phpdoc_summary
,phpdoc_single_line_var_spacing
,phpdoc_to_comment
,phpdoc_types
.
Bugfixes
- Stop treating empty string after dot like a file extension
February 7, 2023
New Features
- Added clarification on supported regions to phone number verification helptext
Process
- Added linting rules to enforce more consistency in phpdoc comments
- Updated dependencies in
web-app
,back-end
,notification-service
, andupload-service
Bugfixes
- Updated the Debian Buster AMI used by our EC2 instances, fixing a breakage in our deploy process
February 2, 2023
Bugfixes
- Style fixes on metadata in public gallery: scroll works and tags don't fall off the side of the page
- Change password fix for users with MFA
- Make breadcrumbs clickable in public archive
Process
- Linting: no alias tag and no "package" tag
- Describe new migrations correctly in README
- Tag new mailchimp entries with invitation type
- Add giveaway banner in app
- Dependency updates in donations-firebase and web-app
SFTP Service
- Update instructions for running rclone against Permanent
- Bugfixes: improved file vs folder detection, skip records that failed processing (i.e. have no original files), handle archive/folder paths with numbers in their names, get files for all records, get size and updated time of files correctly
January 25, 2023
Process
- Add wiggle room for JWT timestamps
- presignedPost v2 now returns the url, not the whole object
- Dependency updates for web-app, upload-service, and notification-service
- Add all new users to Mailchimp (again)
- Ignore deleted files when setting downloadName
- Fix phpdoc indentation
- Set up for Postgres migrations
- Fix config loading
- Paginate downloadName script
January 18, 2023
New Features
- Add new custom metadata manager
- Remove custom metadata values from the tag manager
Process
- Remove more unused MySQL code
- Activate and enforce phpdoc_annotation_without_dot linting rule
- Throw useful ApiException for MicroserviceClient::MakeCurlRequest
- Update Github actions in back-end
January 10, 2023
New Features
- Separate keywords and custom metadata in the public archive file viewer
Process
- Returns a JWT for future use a proof of authentication, and an auth token for use in FusionAuth MFA, from login endpoint
- Support creating tags that aren't yet used on the backend
- Create credentials in FusionAuth before creating any part of an account in Permanent
- Support v2 requests to folder deletion endpoints
- Add structure to errors from v2 requests
- Remove unnecessary CSRF tokens from v2 endpoint responses
- Update dependencies in notification-service
- Remove unused MySQL code
- Remove deprecated endpoints
2022
December 15, 2022
New Features
- Point local instances at a shared database running in docker
- Add Dockerfile so stela can be run in its own container
- Add support for v2 requests on POST folder
Bugfixes
- Fix for failing functional test
- Fix SQL syntax error in FTSFolderVOsInArchiveIdWithTags query
Process
- Dependency upgrades for stela, notification-service, and upload-service
December 8, 2022
New Features
- Final change password updates for IdP upgrade
Process
- Linting: standardize phpdoc alignment
- Dependency upgrades for web-app, upload-service, notification-service
December 1, 2022
New Features
- Prompt for MFA code when changing password on an account with MFA enabled
- Return trust token from
auth/verify
endpoint
Bugfixes
- Center banner images on public gallery
- Wrap tags and custom metadata properly
Process
- Separate FusionAuth account creation from Permanent account creation
- Add upload-service to docker-compose stac
- Add static IPs to SFTP deployments
November 22, 2022
New Features
- SFTP service deployed
Bugfixes
- Move and copy work as expected for shared items
Process
- Deprecate unused endpoints
- Linting: Enforce ordered imports
- Update web-app dependency
- Use new SSH port
November 9, 2022
New Features
- Updated custom metadata UI in archive manager
November 3, 2022
Bugfixes
- Fix bug handling hanging separators on search queries
- Disable folder thumbnails in archive manager
Process
- Delete MySQL tests
- Update
/share/generateShareLink
endpoint to allow caller to set defaultAccessRole
New Features
- Show reCAPTCHA before verifying phone numbers
- Add
/tag/getTagsByArchiveAndType
endpoint - Add functionality to send a different welcome email for a specific invitation code
October 25, 2022
Bugfixes
- Donation form accepts two entries in a row
- Send share activity emails as designed
- Return certain booleans as integers, for backwards compatibility
- Fix owner permissions on all uploads to a shared folder
Process
- Use a PostgreSQL database instead of MySQL
- Linting: no spaces before commas in arrays
October 18, 2022
Bugfixes
- Fix a bug that caused errors viewing imported FamilySearch memories
- Fix a bug that caused errors opening public folders
Process
- Remove sensitive data from error objects so the useful parts of those objects can be freely returned to the caller
- Activate downtime notice banner for next week's database migration
October 13, 2022
New features
- New design for banner on share preview page
Bugfixes
- Fix DateTimeHelper error
- Fix bugs with processing invitations
Process
- Linting and code readability: remove unnecessary curly braces
- Delete more deprecated endpoints
October 6, 2022
Process
- Rename /myfiles url to /private
- Optimize folder opening endpoints
- Allow 3 attempts at entering the MFA code
- Linting and code readability: improve RecordDAO class, remove unnecessary parentheses
- Extend private thumbnail CDN life to 6 months
- Deprecate unused notify endpoint
- Handle illegal characters in
downloadName
for SFTP
Bugfixes
- Make it possible to move folders containing folders
New features
- Allow users to hide the "Download" button on files in their public archives
September 21, 2022
Process
- Activate and enforce a PHP linting rule to forbid redundant PHP doc tags
- Update
jose
from 2.0.5 to 2.0.6 innotification-service
Bugfixes
- Fix login page so it correctly autofills emails when "Remember Me" checkbox has been clicked
- Fix upload logic to allow users whose accounts are out of storage to still upload to nonprofit archives
New features
- Replace banner instructing users who are not logged in on the share preview page how to proceed with new modal
September 14, 2022
Process:
- Linting: no singleline whitespace before semicolons, no multiline whitespace around double arrow
- Remove deprecated endpoints
- Dependency updates for web-app
September 7, 2022
Process:
- Run a local instance of the app on either Postgres or MySQL
- Run tests in CI on PostgreSQL and MySQL
- Address bugs found during testing on PostgreSQL: syntax, remove getColumnMeta calls, change getter/setter format for the FS connection, order query responses
- Linting: forbid empty comments, no leading import slash
- Stop running migrations on dev and staging in preparation to move to PostgreSQL
- Upgrade to Angular 13
New Features:
- Notify people that they can download our app when they're using a mobile web browser on either Android or iOS
August 23, 2022
Process:
- Activate and enforce three new PHP linting rules:
native_function_casing
,native_function_type_declaration_casing
, andnew_with_braces
- Delete unused frontend components
- Add SQL linting
- Fix broken tags tests in
web-app
and broken account deletion tests inback-end
New Features:
- Recalculate downloadName when folders or records move to avoid duplicate download paths
- Update DB interactions to be compatible with both MySQL and PostgreSQL (in preparation for migration to PostgreSQL)
August 17, 2022
Process:
- Add new
/gallery
path to web-app - Add support for v2 requests to get records
- Activate and enforce two new PHP linting rules:
lowercase_keywords
andmethod_argument_space
- Update getWithChildren to v2
Bugfixes:
- Remove the worst back-end unit test side effects
- Treat all soffice error codes as errors (not just 1)
- Public Gallery Landing page bugs: Fix environment detection and specific archiveNbr
New Features:
- Add initial static Public Gallery Landing page
August 11, 2022
Process:
- Add migration script to vcs
- Remove unused "recent share activity" endpoint
Bugfixes:
- Fix broken share preview
- Show less information in errors
August 4, 2022
Process:
- Update
web-app
to stop using deprecated syntax for division
Bugfixes:
- Fix handling of default archive for accounts opened via invitation
July 28, 2022
Process:
- Activate and enforce indentation_type linting rule
- Update how database connection configuration is stored
- Use currently maintained fork of vis-timeline
- Upgrade to Angular 12
July 21, 2022
Process:
- Add support for json_encode
- New linting rules: class_definition, concat_space, include, increment_style
- Dependency updates for upload-service and notification-service
- Drop unused index on
text_data.valueText
Bugfixes:
- Correctly set db floats to floats in the code
New Features:
- Add
downloadName
when a file is uploaded or displayName is changed
July 7, 2022
Process:
- Refactor DB credentials to allow separate credentials in each environment
- Activate linting rule to enforce whitespace between method definitions
- Update getRoot endpoint to support v2 request/responses
Bugfixes:
- Fix bug that prevented users from importing up to a full 8 generations of family from FamilySearch
- Redeploy mysqli -> PDO switchover, with fix for the bug that caused ints to become strings in certain API responses
June 30, 2022
Process:
- Update linter to enforce spaces before a cast
- Replace mysqli with PDO
- Dependency updates on upload-service
June 22, 2022
Process
- Add downloadNameOk property to Folders and Records
- Upgrade Prettier
- Modify linting rules
- Build and use local Docker image in CI
June 15, 2022
Process
- Add downloadNameOk field to folder & record tables
- Format and simplify folder sorting SQL
- Support parameters to archive root queries
- Stop using database name in queries
- Activate and enforce binary_operator_spaces linting rule
- Activate and enforce array_syntax linting rule
- Remove CleanupBadUploads task
- Remove the old directives code
- Remove references to directives
- Deactivate cleanup-bad-uploads cron job
Bugfixes
- Curators should not be able to move or copy to public folder
June 8, 2022
Process
- Remove old payment endpoints (backend) and the code that used to call them (webapp)
- Start removing the old Directives code
- Add a node version for
prettier
- Drop now-unused tables for removed third-party integrations
- Remove database transactions from account space updates
- Linting: enforce no-unused-imports rule
May 31, 2022
Process
- Deprecate billing endpoints
- Upgrade Sentry to v3.5.0
- Allow uploading PHP packages to S3 manually
- Narrow type of argument to SelectVO methods
- Add bcmath for better money calculation
- Mark internal MysqlDB methods as private
- Include more detail in Sentry environment name
- Do not call execute before GetVO/GetVOs
- Install Prettier
- Code Removal: Remove unused GLYPHICONS font, Remove unused argument to MysqlDB::GetVOs, Remove needless broken Facebook lookup on delete, Remove never-used method BaseVO::FillRawByArray, Remove unused endpoint /api/folder/getfoldersizes, Remove unused endpoint /api/archive_nbr/delete
New Features
- Improvements to Left Side Menu
- Public download toggle (backend component)
- Mobile donations (backend component)
May 25, 2022
Process
- Code removal: Donor level, Unnecessary count implementation, unused share methods, unused notification methods, MySQL socket connection option, folder hard delete method.
- Refactor GetMinMaxDTForFolder to use FetchResult.
- Refactor tag link,share deletion, record, folder link deletion, directive deletion, directive deletion, folder size deletion, uberDeleteEverything to use Exec.
- Reformat core database files
- Wait for MySQL to start before running tests.
- Show warning in app about scheduled downtime.
- Split linters into parallel jobs and add Prettier.
- Forbid spaces around offset braces.
Bugfixes
- Check archivelist is empty before running account Engagement task
May 18, 2022
Process
- Code removal: unused methods from BaseDAO, PDF content-type script, captcha message, captcha code, stream thumbnail API, unused arguments to BaseDAO methods, unused methods in MysqlDB, unused, misnamed loadpreference script, unused archive search endpoint, unused profile code, DAO host override constructor argument, unused method BaseDB::NoSingleton, unused arguments from SelectVOsBySql, unused task throttle methods, unused connector methods, daily Facebook task, unused Facebook controller, facebook bulk import, daily Facebook retrieve task
- Linting updates: Use lowercase for PHP language constants,install PHP linting tooling, forbid whitespace around object operators
- Fix ApiException namespace
- Reformat calls to SelectVOsBySql
- Refactor access queries to use Exec
- Unmark /api/archive/getbyarchiveid as deprecated
- Add Liam's SSH Key
Bugfixes
- Fix session cookie authentication
May 5, 2022
Process
- Code removal: record methods, unused method SortFolderVO.
Bugfixes
- Fixing insecurity in record delete.
- Stop adding people to all-user list.
May 5, 2022
Process
- Code removal: unused timeline endpoint
Bugfixes
- Fix insecure shared folder move
- Remove unnecessary access check to enable new onboarding on mobile
May 3, 2022
Process
- Code removal : record methods, various unused code, unused data_size constants, unused search, /search/record endpoint
- Use colon after switch case labels
- Deprecate unused search endpoints
Bugfixes
- Fix insecure search
April 28, 2022
Process
- Remove unused code: Unused activity methods, account methods, old MFA code, archive endpoints, FusionAuth feature flag, archive methods, record endpoints, record methods, batch constants
- Deprecate unused endpoints for: archive, folder, archive_nbr controller
- PHP Linting Fixes: Forbid PHP closing tag, Upgrade PHP-CS-Fixer
- Remove parameters to getAllArchives
- Add path to deeplink to public files on mobile
- Upgrade Sentry to 3.4.0
- Install PostgreSQL driver
- Upgrade from Angular 10 to Angular 11
Bugfixes
- Fix publish URLs with invalid dates
- Show permissions error before adding members to archive
- Fix overlap between upload progress modal and zoho widget
April 13, 2022
Process
- Remove unused code: token verification, dependencies, CURL helpers
- Use exit instead of die everywhere
- Use request in route handlers
New Features
- Change language on share links when autoapprove is on to say "Accept Share" instead of "Request Access"
April 7, 2022
Process
- Remove unused "minor" functionality
- Remove additional unused code
- Use
include
instead ofrequire
in PHP autoloader - Use Illuminate/Http/Request for request processing
- Switch new onboarding flow chance to 100%
Bugfixes
- Fix back end unit tests
- Update PDF content-type script to ignore error status
- Fix sentry-cli actions in web-app
March 31, 2022
Process
- Remove unused code
- Remove CSRF restrictions for OAuth flow
March 22, 2022
Process
- Remove unused code.
- Change default settings for share links.
March 16, 2022
Process
- Update MySQL public key
- Add extension helpers for dedupe work
- Update Mailchimp key
Bugfixes
- Wording change on share links
March 10, 2022
Process
- Point to database cluster instead of separate read/write hosts
Bugfixes
- Metadata tags enhanced to accommodate the new manage tag feature
March 9, 2022
Bugfixes
- Dynamic dates on cards used for unit test and code pointing to correct the Stripe exception
- Web-app dependabots
Process
- Added downloadName field on record & folder tables(https://github.com/PermanentOrg/back-end/pull/37)
- Added the downloadName prop to the concerned VOs with their getters and setters(https://github.com/PermanentOrg/back-end/pull/38)
March 2, 2022
Bugfixes
March 1, 2022
New Features
- Enable A/B testing for the new onboarding flow.
February 24, 2022
New Features
- Prepare front-end changes for the new onboarding flow, but do not enable it yet: part 1, part 2, part 3
- Support GEDCOM files
Process
- Remove some unused API endpoints
- Include more request context in Sentry errors
- Add additional linting to PHP code
February 17, 2022
New Features
- Add column to store whether a user went through the old or new onboarding flow
- Add server changes for the new onboarding flow
Process
- Mark some endpoints deprecated
- Remove unused table
February 15, 2022
Bugfixes
- Change default error text
Process
- Remove some unused code for global tags
- Remove unused "nonowner" role on front and back end
- Fix docs for getShares endpoint
February 9, 2022
New Features
- Managers can manage tags but curators cannot
Bugfixes
- Curators can no longer invite members to archives
- Check access to file before allowing a user to set it as their profile banner
Process
- Web-app dependency updates
February 1, 2022
New Features
- Tags are now local to an archive
- Tags are editable and deletable
January 12, 2022
Bugfixes
- Fix wording on unshare modal
- Make newlines display properly on archive description
2021
December 22, 2021
Bugfixes
- Show pointer cursor on all options in top right menu in web-app.
- Allow an empty archive profile to be set to private.
Process
- Rotate Etherpad token.
- Clean up some comments in back-end codebase.
December 20, 2021
Infrastructure
- Added an additional task-runner to the production deployment, and the ability to spin up more in the future.
December 16, 2021
Bugfixes
- Update verification message to say that the code may be sent to email or phone
Process
- Fix web-app unit tests and whitespace
- Remove deprecated taskrunner tasks
- Improve linting on backend and node-sdk
- Move per-minute cronjobs to a new file
- Redirect root to /app for local development environments
December 9, 2021
Bugfixes
- Fix MFA login for members with capital letters in their email address
Process
December 8, 2021
Process
- Add shared secret for Etherpad plugin in prod.
- Add database migration to create downloadFileName field in the record table.
- Document updated verification code settings.
- Configure new relic about transaction.
- Add pub ssh key for fenn-cs.
December 2, 2021
Process
- Upgrade hosted-git-info on web-app.
- Remove user e-mail address from Sentry logging.
- Use FontAwesome for displaying the default thumbnail for ZIP files in the web-app.
- Migrated back end repository from Bitbucket to Github.
November 23, 2021
Process
- Allow authentication via OAuth 2.0 tokens
- Correctly set content-type in S3 for large files
November 18, 2021
Process
- Use FusionAuth in production! This is the first step towards enabling several important use cases, including better partner integrations and more secure authentication options.
November 17, 2021
Process
- Dependency upgrades on web-app:
- Start using FusionAuth in dev; coming soon in production
November 11, 2021
Process
- Dependency upgrades on web-app.
- Install Jest as dependency of web-app.
- Add client code for calling new tag endpoints in web-app.
- Disable Angular CLI Analytics.
Bugfixes
- Generate the proper link when using the "Publish" functionality.
- Allow user to share to an archive that they are a member of
- Filtering of e-mails moved to query.
October 28, 2021
Process
- Upgrade project requirements
- Firebase hosting setup
- Remove wordpress
Bugfixes
- User shouldn't be allowed to share to self.
- Remove unused /api/auth/signup endpoint
October 20, 2021
Process
- Run database migrations on deploy.
- Run migration on CI.
- Functional test runs on deployment.
- Upgrade ubuntu images used for image builds and code deploys.
- Google API Key rotation in backend.
- Remove needless cacert.pem.
Bugfixes
- Work around missing nodejs bug.
October 13, 2021
Process
- Refactor to prepare for OAuth.
- Remove empty sessionId from request and response.
- Bump tmpl from 1.0.4 to 1.0.5.
- Gmaps api key rotation.
New Features
- Fullscreen metadata editor.
- Onboarding page
October 5, 2021
Process
- Remove unused database table columns.
- Back end now stops sending Session ID in responses.
- Remove unusued fields from AccountVO in web-app.
- Adjust universal links file for iOS to support web credentials and narrow scope of app.
New Features
- Add endpoint for deleting tags.
Bugfixes
- Properly show files that have just been copied into the currently open folder.
- Fix issue with setting end dates on certain files.
- Properly show the UI is loading when trying to navigate to a folder that hasn't loaded properly yet.
September 21, 2021
Process
- Upgrade composer version.
- Clean up unused back end session code.
- Ignore sessionId value on API responses.
- Add additional data to share notifications.
Bugfixes
- Hide files when they are moved out of the current folder.
September 8, 2021
Process
- Sentry reports.
- Bump path-parse from 1.0.6 to 1.0.7.
- Endpoint tag/delete renamed to tag/deleteTagLink.
August 25, 2021
Process
- API key is no longer part of our API requests.
- Updates CSS for various components.
August 17, 2021
Process
- Improve error reporting around claiming storage.
- Add New Relic PHP agent to the back end.
- Fix source code formatting in back end.
August 12, 2021
New Features
- Add endpoint for editing tags.
- Add Zoho widget to the web app.
- Folder thumbnails are now cached after they are first loaded in web app.
Process
- Update endpoint for fetching tags owned by an archive.
August 5, 2021
Process
- Deploy security updates to donations-firebase application
- Supporting work on account/archive separation
Bugfixes
- Use the more-common "sync" spelling, rather than "synch"
July 29, 2021
Bugfixes
- Fix the "Get Link" button on records that are inside a folder in the public workspace.
Process
- Remove unused dependency in back end.
- Add New Relic browser agent to front end.
July 22, 2021
Bugfixes
- Remove a handful of duplicate applied tags, and prevent future duplications
- Copying a folder or a record that has tags applied will now apply tags to the newly created copy
- Clean up the Internet Archive section of the publish dialog box, and document the process of publishing to the Internet Archive
July 15, 2021
Process
- Rotate Stripe API keys
- Deploy security updates to donations-firebase application
July 13, 2021
Process
- Backend migration
- Removed Notification feature flag.
- Always include upload filename in getLeanItems
July 8, 2021
New Features
- Add download button to public gallery items
July 7, 2021
Bugfixes
- Clarify help text on account deletion dialog
- Clarify help text on FamilySearch integration
- Improve handling of invalid invitation codes during account signup
Process
- Supporting work on improving tags
- Add additional linting to PHP code
- Remove some unused code
June 16, 2021
Mobile app support
- Notification service is turned on in prod
Bugfixes
- Update command for running phplint
- Remove getByArchiveNbr from the front end completely
June 15, 2021
Mobile app support
- Add a file to support universal links on iOS in production (infrastructure#57)
- Add credentials for the production notification-service to send push notifications via Firebase
June 10, 2021
New Features
- Allow move to Public and top of My Files
- Pass invitation codes in URL params
- Improved communication with node-sdk; get archive from session
Mobile app support
- Delete device tokens
- Add notification for share invitation acceptance
Bugfixes
- Allow different archives to be open in different browser tabs
Process
- Remove in-house error logging, and exclusively use Sentry
- Remove unused code
- Dependency upgrades
May 20, 2021
New Features
- Show thumbnails for the folders on public gallery pages.
Mobile app support
- Add more information to the push notification sent on request access to a share link
- Add a file to support universal links on iOS in staging (infrastructure#56)
- Send notifications as both Android and iOS expect (notification-service#35)
- Add a notification for "share invitation acceptance"
May 18, 2021
New Features
- Mobile push notification improvements: send notification on request access to a share link, add names to notifications, and send a notification for accepting an invitation to an archive
Process
- Add the mutable content header for mobile push notifications so iOS can compose a notification from data before displaying it to the user
May 11, 2021
Bugfixes
- Zoho integration reconnected
- Re-enable exiftool
Process
- Add logging for microservices (notification and upload)
May 6, 2021
Bugfixes
- Login from share link works correctly
Process
- Notifications can send to Firebase Console, but still only do so in staging
May 5, 2021
New Features
- Disable Facebook integration and link to explanatory blog post
Process
- Add initial linting to PHP code
Bugfixes
- Check for null items on the Shares page
May 4, 2021
New Features
- Add API-side code to send push notification after a new share
April 26, 2021
Bugfixes
- Temporarily disable exiftool use.
New Features
- Register device token for notification service.
April 13, 2021
Bugfixes
- Always return location latitude and longitude as floats, never strings
Process
- Remove outdated and unused device endpoints (to be replaced by the new notification service)
- Don't alert when a local disk is full
March 22, 2021
New Features
- Save metadata as different tag types (e.g. type "medium" and name "film")
March 8, 2021
Bugfixes
- Account deletion failing issue is fixed.
March 1, 2021
New Features
- Add an internal alert for large numbers of accounts created within an hour
Bugfixes
- Replace the Internet Archive integration! Members can now choose to publish files or folders to the Internet Archive in addition to their public Permanent gallery.
Process
- Unified back end repositories
Feb 22, 2021
New Features
- Create new notifications for importing from FamilySearch and uploading to FamilySearch
- Add a direct link to the FamilySearch folder on the left side menu (if the archive was created by FamilySearch import)
- Allow tags that differ only by case
- On download, give a file its original filename
Bugfixes
- Make link to verify email work in the email sent to users
Feb 09, 2021
New Features
- New upload service with the client uploading files directly to S3.
2020
Dec 16, 2020
Bugfix
- Stream remote file contents directly to disk instead of reading the whole file into memory and then writing to disk
- Update system check to work with new network layout and new hostnames
Deprecation
- Remove the last of the unused Vault code
Dec 10, 2020
Security
- Upgraded operation system, OS packages, and PHP version
- Upgraded PHP libraries
- Rotate Stripe and Mandrill secret keys
Bugfix
- Remove check for same destination on record copy
- Clean up routing logic
New Features
- Sentry error logging
- New upload service endpoints
Deprecation
- Remove defunct reprocessing scripts and constants
Dec 8, 2020
New Features
- Simplified design for Milestones on public profiles
Bugfix
- Use plain
date
strings instead ofdatetime
when appropriate while editing dates on profiles
Nov 23, 2020
Bugfix
- Dates for files without EXIF metadata now correctly use the
last modified
file date supplied by the user's browser
Nov 20, 2020
New Features
- Manager role for archive members
- Load PDF version of all files categorized as
Document
to enable full browsing - Enable auto-approve feature for archives requesting access to share links
- Improved date picker year selection
Bugfix
- Fix bug preventing certain PDF documents from loading embedded viewer
- Share access requests would be hidden in share dialog for items with no existing shares present
- Re-add
process-daemon
to taskrunner. Turns out we need it for uploads from URLs.
Nov 16, 2020
Deprecation
- Remove
process-daemon
from taskrunner - Remove
queue-daemon
from production - Remove
resubmit-unprocessed-records
job from cron and taskrunner
Security
- Rotate and better segment all AWS access keys
Nov 4, 2020
Bugfix
- Replace corrupted emailconverter jar with newer, upgraded jar.
- Previously-invited users can now sign-up without the invite code
Oct 26, 2020
Bugfix
- Fix system monitors
Oct 21, 2020
New Feature
- Home page redesign
Oct 20, 2020
Deprecation
- Remove code for deprecated connectors: Dropbox, Box, GDrive
- Remove code related to Phase1 pledges
Bugfix
- Rename production deployment path to "prod" on S3
Oct 13, 2020
Bugfix
- Upgraded installed version of Imagemagick to 7.0.8-8 to support HEIC files
Oct 8, 2020
New Features
- New public archive and public profile design
- New grid view design
Oct 5, 2020
New Features
- New archive sharing design and user flow
- share link
- share by relationship
- share invitation
- Pledges turn into donations, e.g. charged immediately instead of when a target amount of money has been pledged
- Inline donation flow
Deprecation
- Permanently deprecate old
web-client
frontend in favor of newermdot
frontend - Permanently deprecate
files
from application and deployment
Sept 21, 2020
Bug Fixes
- Fix geocoding on file upload for files with geolocation information