Skip to content

docs: Fix Heroku deploy button configuration#889

Open
Bennett-hash wants to merge 2 commits into
parse-community:masterfrom
Bennett-hash:fix-heroku-deploy-button-config
Open

docs: Fix Heroku deploy button configuration#889
Bennett-hash wants to merge 2 commits into
parse-community:masterfrom
Bennett-hash:fix-heroku-deploy-button-config

Conversation

@Bennett-hash
Copy link
Copy Markdown

@Bennett-hash Bennett-hash commented May 21, 2026

Summary

  • update the quick-start Heroku deployment configuration
  • align the README deployment button with the app.json setup
  • refresh the app metadata and required environment variable prompts

Fixes #404

Verification

  • JSON validation for app.json
  • git diff --check

Summary by CodeRabbit

  • Documentation

    • Updated deployment guides for Heroku and Google App Engine: replaced legacy mLab/mongolab instructions with MongoDB Atlas guidance, switched Heroku deploy button to a template-based URL, added steps to configure SERVER_URL, and updated App Engine deploy command.
  • Chores

    • Updated project configuration to require DATABASE_URI, show an HTTPS SERVER_URL example, and remove obsolete add-on references.

Review Change Stack

Copilot AI review requested due to automatic review settings May 21, 2026 10:46
@parse-github-assistant
Copy link
Copy Markdown

I will reformat the title to use the proper commit message syntax.

@parse-github-assistant parse-github-assistant Bot changed the title docs: fix Heroku deploy button configuration docs: Fix Heroku deploy button configuration May 21, 2026
@parse-github-assistant
Copy link
Copy Markdown

🚀 Thanks for opening this pull request! We appreciate your effort in improving the project. Please let us know once your pull request is ready for review.

Tip

  • Keep pull requests small. Large PRs will be rejected. Break complex features into smaller, incremental PRs.
  • Use Test Driven Development. Write failing tests before implementing functionality. Ensure tests pass.
  • Group code into logical blocks. Add a short comment before each block to explain its purpose.
  • We offer conceptual guidance. Coding is up to you. PRs must be merge-ready for human review.
  • Our review focuses on concept, not quality. PRs with code issues will be rejected. Use an AI agent.
  • Human review time is precious. Avoid review ping-pong. Inspect and test your AI-generated code.

Note

Please respond to review comments from AI agents just like you would to comments from a human reviewer. Let the reviewer resolve their own comments, unless they have reviewed and accepted your commit, or agreed with your explanation for why the feedback was incorrect.

Caution

Pull requests must be written using an AI agent with human supervision. Pull requests written entirely by a human will likely be rejected, because of lower code quality, higher review effort and the higher risk of introducing bugs. Please note that AI review comments on this pull request alone do not satisfy this requirement. Our CI and AI review are safeguards, not development tools. If many issues are flagged, rethink your development approach. Invest more effort in planning and design rather than using review cycles to fix low-quality code.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Updates the Heroku deployment metadata and docs to use an externally-provided MongoDB connection string (instead of the deprecated mLab add-on) and to reference the parse-community repository.

Changes:

  • Switch Heroku deploy metadata to require DATABASE_URI and remove the mongolab add-on dependency.
  • Update Heroku docs/deploy button to use the repo template and instruct users to provision MongoDB (e.g., Atlas).
  • Modernize Google App Engine deployment instructions (gcloud app deploy) and replace mLab reference.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
app.json Updates repository URL, adds required DATABASE_URI, removes mLab add-on, updates default SERVER_URL scheme.
README.md Updates Heroku deploy flow to external MongoDB + DATABASE_URI, refreshes Google App Engine MongoDB + deploy guidance.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md Outdated
Comment on lines +112 to +113
* By default it will use a path of /parse for the API routes. To change this, or use older client SDKs, run `heroku config:set PARSE_MOUNT=/1`
* Configure the public server URL: `heroku config:set SERVER_URL=https://YourAppName.herokuapp.com/parse`
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in the same commit — the README now adds an explicit heroku config:set SERVER_URL=... step right after the PARSE_MOUNT step, with the /parse and /1 examples side by side so the two stay in sync.

Comment thread README.md Outdated
* Use the [mLab addon](https://elements.heroku.com/addons/mongolab): `heroku addons:create mongolab:sandbox --app YourAppName`
* Log in with the [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) and create an app: `heroku create`
* Create a MongoDB database, for example with [MongoDB Atlas](https://www.mongodb.com/atlas/database), and copy its connection string
* Configure the database connection: `heroku config:set DATABASE_URI='<replace with MongoDB connection string>'`
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in the same commit — the README step for DATABASE_URI doesn't prescribe single quotes; it now says "quote or escape special characters as required by your shell", which leaves Windows / PowerShell users free to use their own syntax.

Comment thread app.json Outdated
"value": "myMasterKey"
},
"DATABASE_URI": {
"description": "MongoDB connection string for this Parse Server deployment, for example a MongoDB Atlas connection string.",
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in the same commit — app.json's DATABASE_URI description now reads "Keep this secret because it can contain credentials.", matching the existing MASTER_KEY framing.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 21, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: fe622c56-4235-455d-992b-f6ae2c55b560

📥 Commits

Reviewing files that changed from the base of the PR and between aa0e955 and 163cb11.

📒 Files selected for processing (2)
  • README.md
  • app.json

📝 Walkthrough

Walkthrough

The PR updates deployment configuration and documentation to fix non-functional deployment buttons and modernize the cloud provider setup processes. Changes include updating the app.json repository reference, adding required DATABASE_URI configuration, switching from mLab to MongoDB Atlas across Heroku and Google App Engine instructions, and updating deployment tooling references to current CLI commands.

Changes

Deployment Documentation and Configuration

Layer / File(s) Summary
Deployment configuration updates
app.json
Repository URL updated to parse-community/parse-server-example, DATABASE_URI added as a required environment variable, SERVER_URL changed to HTTPS example (https://yourappname.herokuapp.com/parse), and mLab addon entry removed.
Heroku deployment documentation
README.md
Deploy button link replaced with template-based URL, MongoDB Atlas setup instructions added, Heroku CLI referenced instead of Toolbelt, mLab addon step removed, and SERVER_URL and PARSE_MOUNT configuration steps added.
Google App Engine deployment documentation
README.md
MongoDB setup guidance switched from mLab to MongoDB Atlas, explicit Dockerfile deletion step added, and gcloud deployment command updated from gcloud preview app deploy to gcloud app deploy.

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 6 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Engage In Review Feedback ⚠️ Warning Commit claims to address review feedback but PR #889 is still open with no visible review discussion in git history or GitHub activity prior to commit. Verify that GitHub review feedback was received and engaged with before making commits. Currently, no evidence of actual review comments or discussion exists.
✅ Passed checks (6 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title begins with 'docs:' which is an approved prefix and accurately describes the main change of updating Heroku deployment documentation.
Linked Issues check ✅ Passed The PR successfully addresses issue #404 by updating the Heroku and Google App Engine deployment configurations with corrected deploy buttons, updated environment variables, and modern service references.
Out of Scope Changes check ✅ Passed All changes are directly related to fixing deployment button configurations and updating deployment documentation as required by issue #404; no out-of-scope modifications detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Security Check ✅ Passed No security vulnerabilities detected. Changes remove deprecated mLab addon, use HTTPS for all URLs, require DATABASE_URI input, include proper secret warnings, and contain no hardcoded credentials.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 OpenGrep (1.21.0)

OpenGrep fatal error (exit code 2): [00.21][ERROR]: Error: exception Unix_error: No such file or directory stat app.json
Raised by primitive operation at UTmp.replace_named_pipe_by_regular_file_if_needed in file "libs/commons/UTmp.ml", line 145, characters 8-27
Called from Scan_CLI.replace_target_roots_by_regular_files_where_needed.(fun) in file "src/osemgrep/cli_scan/Scan_CLI.ml", lines 1086-1087, characters 19-65
Called from List_.fast_map in file "libs/commons/List_.ml", line 81, characters 17-20
Called from Scan_CLI.replace_ta

🔧 Checkov (3.2.529)
app.json

2026-05-21 11:21:35,596 [MainThread ] [ERROR] Template file not found: app.json
2026-05-21 11:21:35,601 [MainThread ] [ERROR] Template file not found: app.json
2026-05-21 11:21:35,606 [MainThread ] [ERROR] Template file not found: app.json
2026-05-21 11:21:35,658 [MainThread ] [ERROR] Failed to invoke function /usr/local/lib/python3.11/dist-packages/checkov/common/runners/object_runner. with app.json
Traceback (most recent call last):
File "/usr/local/lib/python3.11/dist-packages/checkov/common/parallelizer/parallel_runner.py", line 88, in func_wrapper
result = original_func(item)
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/checkov/common/runners/object_runner.py", line 74, in
results = parallel_runner.run_function(lambda f: (f, self._parse_file(f)), files_to_load)
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/checkov/openapi/runner.py",

... [truncated 2512 characters] ...

35,712 [MainThread ] [WARNI] Secret scanning: could not process file app.json
2026-05-21 11:21:35,728 [MainThread ] [ERROR] Exception traceback:
Traceback (most recent call last):
File "/usr/local/lib/python3.11/dist-packages/checkov/main.py", line 647, in run
self.scan_reports = runner_registry.run(
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/checkov/common/runners/runner_registry.py", line 177, in run
for result in parallel_runner_results:
File "/usr/local/lib/python3.11/dist-packages/checkov/common/parallelizer/parallel_runner.py", line 118, in _run_function_multiprocess_fork
raise v.internal_exception.with_traceback(v.internal_exception.traceback)
FileNotFoundError: [Errno 2] No such file or directory: 'app.json'


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
app.json (2)

20-23: ⚡ Quick win

Consider adding a DATABASE_URI format example.

The description mentions "for example a MongoDB Atlas connection string" but doesn't provide an actual format example. Consider adding a placeholder example to help users understand the expected format.

💡 Proposed enhancement
     "DATABASE_URI": {
-      "description": "MongoDB connection string for this Parse Server deployment, for example a MongoDB Atlas connection string.",
+      "description": "MongoDB connection string for this Parse Server deployment, for example a MongoDB Atlas connection string (mongodb+srv://user:pass@cluster.mongodb.net/dbname).",
       "required": true
     },
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app.json` around lines 20 - 23, Add a clear placeholder example for the
DATABASE_URI field in app.json so users know the expected format; update the
"DATABASE_URI" key description to include a sample MongoDB Atlas connection
string (e.g.
mongodb+srv://<username>:<password>@<cluster>.mongodb.net/<dbname>?retryWrites=true&w=majority)
and mark it as a placeholder to be replaced, keeping the existing note about
allowed alternatives.

4-4: Repository URL is correct and reachable

  • app.json sets repository to https://github.com/parse-community/parse-server-example (line 4), and it returns HTTP 200 publicly.
  • DATABASE_URI (lines 20-23) is already marked required and the description clarifies it should be a MongoDB connection string (e.g., Atlas).
  • SERVER_URL (lines 24-27) uses a yourappname placeholder, but the description explicitly instructs replacing it with the app name + PARSE_MOUNT; optionally tighten wording to avoid confusion.
  • Consider confirming image: "heroku/nodejs" (line 29) is still the intended/current Heroku buildpack/image for this deployment.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app.json` at line 4, Confirm repository value remains as is; tighten the
SERVER_URL description to explicitly instruct replacing the placeholder with
your app's full public URL including PARSE_MOUNT (reference key SERVER_URL) to
avoid ambiguity, clarify that DATABASE_URI is required and should be a valid
MongoDB connection string (reference key DATABASE_URI) if you want to make
wording stricter, and verify whether the Heroku image key value "heroku/nodejs"
(reference key image) is still the intended/current build image and update it if
Heroku's recommended stack has changed; no other changes needed to the
repository field.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@app.json`:
- Around line 20-23: Add a clear placeholder example for the DATABASE_URI field
in app.json so users know the expected format; update the "DATABASE_URI" key
description to include a sample MongoDB Atlas connection string (e.g.
mongodb+srv://<username>:<password>@<cluster>.mongodb.net/<dbname>?retryWrites=true&w=majority)
and mark it as a placeholder to be replaced, keeping the existing note about
allowed alternatives.
- Line 4: Confirm repository value remains as is; tighten the SERVER_URL
description to explicitly instruct replacing the placeholder with your app's
full public URL including PARSE_MOUNT (reference key SERVER_URL) to avoid
ambiguity, clarify that DATABASE_URI is required and should be a valid MongoDB
connection string (reference key DATABASE_URI) if you want to make wording
stricter, and verify whether the Heroku image key value "heroku/nodejs"
(reference key image) is still the intended/current build image and update it if
Heroku's recommended stack has changed; no other changes needed to the
repository field.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9c324346-1d83-4b22-8ac9-238583fb0c0c

📥 Commits

Reviewing files that changed from the base of the PR and between 9867131 and aa0e955.

📒 Files selected for processing (2)
  • README.md
  • app.json

coderabbitai[bot]
coderabbitai Bot previously approved these changes May 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Quick-start deployment buttons not working

2 participants