Releases: weaponsforge/my-phonebook
my-phonebook_v2.1.1
Summary
November 1, 2024
- Fix: create a temporary .env file on scheduled docker image pull
What's Changed
- v2.1.1 by @weaponsforge in #146
Full Changelog: v2.1.0...v2.1.1
my-phonebook_v2.1.0
Summary
October 4, 2024
- Feat: deploy the latest development images to Docker Hub, #142
- Feat: pull the development images every 2 months to keep them active in the free Docker Hub account
- Feat: allow debugging the server running in the container in VSCode
- Fix: use actions upload/download artifact v4, #140
What's Changed
- feat: deploy development images to docker hub by @weaponsforge in #143
- fix: use actions upload/download artifact v4 by @weaponsforge in #145
- v2.1.0 by @weaponsforge in #144
Full Changelog: v2.0.4...v2.1.0
my-phonebook_v2.0.4
Summary
July 14, 2024
- Hot reload NextJS and nodemon on Docker desktop (WSL2), #137
What's Changed
- Fix/weaponsforge 137 by @weaponsforge in #138
- v2.0.4 by @weaponsforge in #139
Full Changelog: v2.0.3...v2.0.4
my-phonebook_v2.0.3
Summary
May 28, 2023
- When visiting the
/route:- Redirect signed in users to the
/contactspage - Redirect the signed-out users to the
/loginpage
- Redirect signed in users to the
- When visiting the login page
- Redirect signed in users to the
/contactsroute
- Redirect signed in users to the
- Set
animate=trueas default - Set the default theme to
light - Updated / fix the
useSyncLocalStorageJSON.parsing
What's Changed
Full Changelog: v2.0.2...v2.0.3
my-phonebook_v2.0.2
Summary
April 27, 2023
NOTE: This Release completes MyPhonebook v1 Beta version
- Fix the actionCode URL sent in the account email verification for the v2.0.1 production website by setting the production website's URL in the server's
CLIENT_WEBSITE_URLenv variable - Attach the requesting whitelisted domain's (root) origin in the CSV/PDF export API's
Access-Control-Allow-Originresponse header instead of theCLIENT_WEBSITE_URLvariable value, #118 - Display the resend email verification link in the /recoverPassword page
- Append the
NEXT_PUBLIC_BASE_PATHin account-related links on the production website. - Minor URL.createObjectURL optimizations
What's Changed
- Fix/weaponsforge 118 by @weaponsforge in #119
- v2.0.2 by @weaponsforge in #120
Full Changelog: v2.0.1...v2.0.2
my-phonebook_v2.0.1
Summary
April 25, 2023
- Update use-sync-v to v2.0.19
useSyncQueryVdata is now cached by default
- Cache the /contacts thumbnail photos, #115
- Re-download an updated Contact photo thumbnail in the /contacts page
What's Changed
- added profile picture cache on global var by @vikyw89 in #116
- v2.0.1 by @weaponsforge in #117
Full Changelog: v2.0.0...v2.0.1
my-phonebook_v2.0.0
Summary
April 25, 2023
- Change password feature inside the /settings page, #30
- Sidebar re-design
- Export all Contacts or selected Contacts to CSV/PDF from the sidebar Download tab, #43
- Update use-sync-v version to v2.0.16
- Upload a Contact photo when creating a new Contact or updating an existing Contact, #39, #104
- Delete a Contact photo along with Contact document deletion
- Linked profile_picture_url to actual picture from firebase
- 🆕 👉 Make Contact photos private - Store the Contact photo's Full Firebase Storage File path in the
profile_picture_urlfield instead of the uploaded file's public StoragedownloadURL - Display an option to resend the account verification email in the
- /register page - when trying to register an unverified email
- /account page - when signing in with an unverified email
- Use a stricter set of Firebase Storage Security Rules for Contact photo uploads, #50
- Display user-friendly generic Firebase permissions error messages when uploading Contact photos and creating/updating Contact documents
- Fix page errors in the /account?mode=resend_email_verification and mode=resetPassword pages
Firebase Storage Rules Updates
- Photo Image File Specifications
- The new Storage Rules accepts image files of type
.jpg,.jpeg,.png,.gif,.bmpand.webp - Image Files should not exceed
1 MB(megabyte)
- The new Storage Rules accepts image files of type
- Filename
- The Firebase Storage file name should follow the pattern
photo_{docId}without a file extension name. - For example, when uploading a "mountain.jpg" photo on Contact document
HgKAzTCzoHaIBSvqYYCAEZBO9Qp1- Firebase Storage file name becomes
photo_HgKAzTCzoHaIBSvqYYCAEZBO9Qp1
- Firebase Storage file name becomes
- The Firebase Storage file name should follow the pattern
- Full Firebase Storage File path
- The Storage Rules only accepts a full Firebase storage file path following the pattern:
photos/{userId}/photo_{docId}- User uploads to other paths are blocked
- Using "mountain.jpg" and the Contact document from the previous example,
- Full Firebase Storage file path becomes:
photos/XwLYjqlWbSMRJLqcwrS9wla1bzs1/photos_HgKAzTCzoHaIBSvqYYCAEZBO9Qp1 - The total Firebase Storage file path string length should not exceed
100characters - The
{userId}path segment refers to a signed-in user'sauthId(uid). Users must be signed-in and have a valid Firebase Auth record:- emailVerified=true
- custom claims account_level=2
- Full Firebase Storage file path becomes:
- The Storage Rules only accepts a full Firebase storage file path following the pattern:
- Display an option to resend the account verification email in the
- /register page - when trying to register an unverified email
- /account page - when signing in with an unverified email
What's Changed
- Feature/viky 30 by @vikyw89 in #103
- export contacts UI by @vikyw89 in #105
- Feature/weaponsforge 43 by @weaponsforge in #106
- fix: bumped use-sync-v version and bug on /login by @vikyw89 in #108
- Feature/weaponsforge 39 by @weaponsforge in #109
- Update/weaponsforge 39 by @weaponsforge in #110
- Update/weaponsforge 39b by @weaponsforge in #111
- put real profile_picture on /contacts with initial as fallback by @vikyw89 in #113
- v2.0.0 by @weaponsforge in #114
Full Changelog: v1.0.6...v2.0.0
my-phonebook_v1.0.6
Summary
April 16, 2023
- Export contacts API endpoint on
/api/contacts/export, #14- Exports contacts to a CSV file
- Exports contacts to a PDF file
- API documentation and example usage is available on the dev api docs for reference
- use route instead of state ref ui.. or show.. in the client app
- added sidebar
- adjusted mobile responsiveness
- Strict Firestore Security Rules for Issue #50
- Minimal Firebase Storage Security Rules for Issue #51
What's Changed
- Feature/weaponsforge 14 by @weaponsforge in #99
- Feature/viky 98 by @vikyw89 in #100
- Feature/weaponsforge 50 by @weaponsforge in #101
- v1.0.6 by @weaponsforge in #102
Full Changelog: v1.0.5...v1.0.6
Firestore Security Rules Summary
-
Allow writing (create, update, delete) documents under the
usersroot-level collection only- success:
/users/{userId} - fail:
/mycollection/{docId}
- success:
-
Allow writing (create, update, delete) of only uid-named documents under the
/usersroot collection- success:
/users/{userId} - fail:
/users/mydocument
- success:
-
Allow writing (create, update, delete) documents in allowed subcollections only. Currently, only the
users/{userId}/contactssubcollection is allowed to contain documents- success:
/users/{userId}/contacts/{docId} - fail:
/users/{userId}/tickets/{docId}
- success:
-
Allow reading documents only when a user is signed-in, the user has an
request.auth.account_levelkey and the requested document falls under (or is) a/{userId}document- success (requires sign-in):
/users/{userId}/contacts/{docId},/users/{userId}
- success (requires sign-in):
-
Disable creating new subcollections under documents in
users/{userId}/contacts/{docId}- Creating subcollections under a document in a subcollection is disabled by default
- fail (creating mysubcollection):
/users/{userId}/contacts/{docId}/mysubcollection/{newId}
Create New Contact Document Rules
The following fields and their field type and character lengths are required when creating a new Contact under /users/{userId}/contacts/{docId}. Adding extra fields will cause the Contact document creation to fail.
| Field | Type | Length |
|---|---|---|
| doc_id | string | 50 |
| email_address | string | 50 |
| first_name | string | 50 |
| last_name | string | 50 |
| middle_name | string | 50 |
| phone_number | string | 50 |
| profile_picture_url | string | 600 |
| sorting | string | 200 |
| date_created | Firestore Timestamp | - |
| date_updated | Firestore Timestamp | - |
Update Contact Document Rules
The following fields and their field type and character lengths are required when updating an existing Contact under `/users/{userId}/contacts/{docId}. Adding extra fields will also cause the Contact document update to fail.
Provide the Required fields and do not supply the Not Allowed fields when updating a Contact. One or more Optional fields may be set for update.
Required
| Field | Type | Length |
|---|---|---|
| date_updated | Firestore Timestamp | - |
Not Allowed
| Field | Type | Length |
|---|---|---|
| doc_id | string | 50 |
| date_created | Firestore Timestamp | - |
Optional
| Field | Type | Length |
|---|---|---|
| email_address | string | 50 |
| first_name | string | 50 |
| last_name | string | 50 |
| middle_name | string | 50 |
| phone_number | string | 50 |
| profile_picture_url | string | 600 |
| sorting | string | 200 |
Update User Profile Document Rules
The following fields and their field type and character lengths are required when updating an existing User profile document in /users/{userId}. Adding extra fields will also cause the document update to fail.
Provide the Required fields and do not supply the Not Allowed fields when updating a User profile document. One or more Optional fields may be set for update.
Required
| Field | Type | Length |
|---|---|---|
| date_updated | Firestore Timestamp | - |
Not Allowed
| Field | Type | Length |
|---|---|---|
| doc_id | string | 50 |
| date_created | Firestore Timestamp | - |
Optional
| Field | Type | Length |
|---|---|---|
| email_address | string | 50 |
| first_name | string | 50 |
| last_name | string | 50 |
| middle_name | string | 50 |
| phone_number | string | 50 |
my-phonebook_v1.0.5
Summary
April 5, 2023
- Create a default (blank) user document after email verification under
/users/{authId}after a successful email verification. #93 - Redirect to the
/contactspage after a successful sign-in. - Dry-run
npm run exporton the GH actions lint.yml - Use the
use-sync-vlib for managing the user auth states, an update for #76 - Remove the redux lib and related files
What's Changed
- Feature/weaponsforge 93 by @weaponsforge in #95
- Update/weaponsforge 76 by @weaponsforge in #96
- v1.0.5 by @weaponsforge in #97
Full Changelog: v1.0.4...v1.0.5
my-phonebook_v1.0.4
Summary
April 4, 2023
User Profile
Contacts
- View a contact document, #36
- View contacts list feature, #32
- Create a new contact feature, #34
- Update contact, #40
- Search and filter contacts feature
Other Updates
- Create the resend email verification page, #22 , #23
- Use descriptive text content on the account handler page (from email), with URL link back to the /login and /resend email verification pages #87
/contacts route UI - wired firestore, firebaseAuth to profile page
- Desktop and mobile layout adjustments
- Fix the
npm exportbug useSyncLocalStoragehooks update- the old one returned
[value, setValue] - the new one, only return value
- and the
setValueis extracted to different function
- the old one returned
What's Changed
- Feature/weaponsforge 87 by @weaponsforge in #88
- Feature/viky 31 by @vikyw89 in #89
- Fix/vikyw 90 by @vikyw89 in #91
- Feature/viky 27 by @vikyw89 in #92
- v1.0.4 by @weaponsforge in #94
Full Changelog: v1.0.3...v1.0.4