You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
replace the manual setup's globally open Firestore rule with the scoped rules installed by the server's automatic Firebase setup
allow unauthenticated reads only for server/config and unauthenticated writes only for server/commands
explain default denial for unmatched paths, the service-account Admin SDK bypass, and the remaining public access boundary
link the server implementation that is the source of truth for the policy and require maintainers to compare the two when either changes
Why
The written manual setup currently instructs users to change Firebase's default rule to allow read, write: if true;. That exposes every Firestore document to unauthenticated reads and writes. The server's automatic setup already uses a narrower rule set, but the manual guide never adopted it.
User impact
New manual-setup users will grant only the two client operations BlueBubbles needs instead of opening the entire database. Existing users can also replace their permissive rule with the documented rule. This limits exposure but does not authenticate the two public client operations.
Coordination
PR #31 edits the database-creation steps on the same page for a separate issue. Merge simulations pass with #31 and #34 applied in either order, and the combined result preserves both changes.
Validation
git diff --check origin/master...HEAD passes
the documented rules are byte-for-byte identical to FCMService.setFirestoreRulesForApp on current server master and development
a local Firestore Emulator access matrix passed for the documented policy: public config read and commands write were allowed; the inverse operations and unmatched-path reads/writes were denied
the old globally open rule no longer appears in this branch
The emulator test did not read or modify a production Firebase project. No production deployment was performed or required.
The test used only the local emulator and did not read or modify a production Firebase project.
This page overlaps PR #31. Any rebase or conflict resolution must preserve both #31's live-validated database-creation labels and this PR's scoped rules.
Merge-readiness update: 8e7bbad adds a direct policy source-of-truth link and maintenance instruction. The documented rule is byte-for-byte identical to current server master and development; the recorded emulator access matrix remains applicable because the rule bytes are unchanged. Structural checks pass, and merge simulations with PR #31 pass in both orders. No production Firebase state was touched.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
server/configand unauthenticated writes only forserver/commandsWhy
The written manual setup currently instructs users to change Firebase's default rule to
allow read, write: if true;. That exposes every Firestore document to unauthenticated reads and writes. The server's automatic setup already uses a narrower rule set, but the manual guide never adopted it.User impact
New manual-setup users will grant only the two client operations BlueBubbles needs instead of opening the entire database. Existing users can also replace their permissive rule with the documented rule. This limits exposure but does not authenticate the two public client operations.
Coordination
PR #31 edits the database-creation steps on the same page for a separate issue. Merge simulations pass with #31 and #34 applied in either order, and the combined result preserves both changes.
Validation
git diff --check origin/master...HEADpassesFCMService.setFirestoreRulesForAppon current servermasteranddevelopmentThe emulator test did not read or modify a production Firebase project. No production deployment was performed or required.
Fixes BlueBubblesApp/bluebubbles-server#783