-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Add Cloud Function execution on Parse Object in data browser #2409
Conversation
I will reformat the title to use the proper commit message syntax. |
Thanks for opening this pull request!
|
mov.mov |
The Parse Cloud code for this would be: Parse.Cloud.define('deleteAccount', async (req) => {
req.params.object.set('deleted', true);
await req.params.object.save(null, {useMasterKey: true});
}, {
requireMaster: true
}); With the scripts config: "scripts": [
{
"title": "Delete account",
"classes": ["_User"],
"cloudCodeFunction": "deleteAccount"
}
] |
Uffizzi Ephemeral Environment
|
This is just an amazing feature, great work! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This feature requires a certain version of Parse Server to work properly (parse-community/parse-server#8490). The compatibility table in the README needs to be updated to indicate which version of Parse Server is required for this feature.
Co-authored-by: Manuel <5673677+mtrezza@users.noreply.github.com> Signed-off-by: Daniel <daniel-blyth@live.com.au>
I have updated the README |
I'm unsure how we should define the compatibility when only 1 feature requires a certain Parse Server version.
I think the best would be if use the Parse Server version (which the dashboard knows) and based on that we hide the feature, or only disable it with a tool tip "Requires Parse Server >=...". Not sure how difficult that is? |
Uffizzi Ephemeral Environment
|
@dblythy Damn Daniel (always wanted to say that) let me check this branch out. |
@dblythy we've always been mentioning pointers which cause the issue in Parse Server. I though of it like pointers within a Parse Object, that point to another object. But from the examples in the README it seems that the object itself needs to be transformed from POJO to a Parse.Object instance. Could you clarify this, so we know what changes are necessary in the README for this to get merged. Also I'd like to clarify this to write up a proper changelog entry and API doc for the temp option for the fix in Parse Server parse-community/parse-server#8646. |
Yes, that is correct. Cloud code currently has no way to decode a pointer that is sent in a payload, it is always interpreted as a POJO. There is not a current mechanism to do the following: Parse.Cloud.define("updateObject", async req => {
req.params.object.increment("count"); // req.params.object with be a POJO so Parse Object prototypes will throw
await req.params.object.save(null, { useMasterKey: true });
});
const object = await new Parse.Object("Test").save();
await Parse.Cloud.run("updateObject", { object }); // throws Parse Objects not allowed here, so let's use object.toPointer() instead Therefore, currently it's up to the developer to transform the payload, such as: Parse.Cloud.define("updateObject", async req => {
const object = Parse.Object.extend("Test").createWithoutData(req.params.id);
object.increment("count");
await object.save(null, { useMasterKey: true });
});
const obj = await new Parse.Object("Test").save();
await Parse.Cloud.run("updateObject", { id: obj.id }); So, as there's no way to implicitly pass |
Got it, changes in parse-community/parse-server#8646 made accordingly. So we can go ahead and merge this. |
Signed-off-by: Manuel <5673677+mtrezza@users.noreply.github.com>
Signed-off-by: Manuel <5673677+mtrezza@users.noreply.github.com>
Signed-off-by: Manuel <5673677+mtrezza@users.noreply.github.com>
Signed-off-by: Manuel <5673677+mtrezza@users.noreply.github.com>
Ready for merge, waiting for CI to pass... |
# [5.2.0-alpha.19](5.2.0-alpha.18...5.2.0-alpha.19) (2023-06-23) ### Features * Add Cloud Function execution on Parse Object in data browser ([#2409](#2409)) ([996ce91](996ce91))
🎉 This change has been released in version 5.2.0-alpha.19 |
# [5.3.0-beta.1](5.2.0...5.3.0-beta.1) (2023-09-15) ### Bug Fixes * Adding a file when adding a new row in the data browser doesn't show filename ([#2471](#2471)) ([5bbb94e](5bbb94e)) * File extension is hidden in file field when editing object in modal dialog in data browser ([#2472](#2472)) ([8df4e4d](8df4e4d)) * Incorrect highlight maker position in class list in data browser ([#2490](#2490)) ([8c28d24](8c28d24)) * Pasting location coordinates into field of type `GeoPoint` does not work in data browser ([#2464](#2464)) ([a8ce343](a8ce343)) * Selecting a saved filter in data browser also highlights other filters with equal names ([#2466](#2466)) ([35360fe](35360fe)) * Vertical scrollbar in data browser is outside visible area when scrolling horizontally ([#2457](#2457)) ([5acac3f](5acac3f)) ### Features * Add Cloud Function execution on Parse Object in data browser ([#2409](#2409)) ([996ce91](996ce91)) * Add parameter `selectedField` to script payload to determine which object field was selected when script was invoked ([#2483](#2483)) ([e98d653](e98d653)) * Add refresh button to Cloud Config page ([#2480](#2480)) ([be212b0](be212b0)) * Add security checks page ([#2491](#2491)) ([103b9c6](103b9c6)) * Add support for confirmation dialog before script execution in data browser ([#2481](#2481)) ([64d3913](64d3913)) * Add typing with auto-complete to select a filter field in the data browser ([#2463](#2463)) ([257f76b](257f76b)) * Reopen last opened class when navigating to data browser ([#2468](#2468)) ([3d7148e](3d7148e)) ### Reverts * fix: Vertical scrollbar in data browser is outside visible area when scrolling horizontally ([#2457](#2457)) ([#2477](#2477)) ([2f1d84e](2f1d84e))
🎉 This change has been released in version 5.3.0-beta.1 |
# [5.3.0-alpha.1](5.2.0...5.3.0-alpha.1) (2023-09-20) ### Bug Fixes * Adding a file when adding a new row in the data browser doesn't show filename ([#2471](#2471)) ([5bbb94e](5bbb94e)) * File extension is hidden in file field when editing object in modal dialog in data browser ([#2472](#2472)) ([8df4e4d](8df4e4d)) * Incorrect highlight maker position in class list in data browser ([#2490](#2490)) ([8c28d24](8c28d24)) * Pasting location coordinates into field of type `GeoPoint` does not work in data browser ([#2464](#2464)) ([a8ce343](a8ce343)) * Selecting a saved filter in data browser also highlights other filters with equal names ([#2466](#2466)) ([35360fe](35360fe)) * Vertical scrollbar in data browser is outside visible area when scrolling horizontally ([#2457](#2457)) ([5acac3f](5acac3f)) ### Features * Add Cloud Function execution on Parse Object in data browser ([#2409](#2409)) ([996ce91](996ce91)) * Add parameter `selectedField` to script payload to determine which object field was selected when script was invoked ([#2483](#2483)) ([e98d653](e98d653)) * Add refresh button to Cloud Config page ([#2480](#2480)) ([be212b0](be212b0)) * Add security checks page ([#2491](#2491)) ([103b9c6](103b9c6)) * Add support for confirmation dialog before script execution in data browser ([#2481](#2481)) ([64d3913](64d3913)) * Add typing with auto-complete to select a filter field in the data browser ([#2463](#2463)) ([257f76b](257f76b)) * Reopen last opened class when navigating to data browser ([#2468](#2468)) ([3d7148e](3d7148e)) ### Reverts * fix: Vertical scrollbar in data browser is outside visible area when scrolling horizontally ([#2457](#2457)) ([#2477](#2477)) ([2f1d84e](2f1d84e))
🎉 This change has been released in version 5.3.0-alpha.1 |
# [5.3.0](5.2.0...5.3.0) (2023-11-16) ### Bug Fixes * Adding a file when adding a new row in the data browser doesn't show filename ([#2471](#2471)) ([5bbb94e](5bbb94e)) * File extension is hidden in file field when editing object in modal dialog in data browser ([#2472](#2472)) ([8df4e4d](8df4e4d)) * Incorrect highlight maker position in class list in data browser ([#2490](#2490)) ([8c28d24](8c28d24)) * Pasting location coordinates into field of type `GeoPoint` does not work in data browser ([#2464](#2464)) ([a8ce343](a8ce343)) * Selecting a saved filter in data browser also highlights other filters with equal names ([#2466](#2466)) ([35360fe](35360fe)) * Vertical scrollbar in data browser is outside visible area when scrolling horizontally ([#2457](#2457)) ([5acac3f](5acac3f)) ### Features * Add Cloud Function execution on Parse Object in data browser ([#2409](#2409)) ([996ce91](996ce91)) * Add parameter `selectedField` to script payload to determine which object field was selected when script was invoked ([#2483](#2483)) ([e98d653](e98d653)) * Add refresh button to Cloud Config page ([#2480](#2480)) ([be212b0](be212b0)) * Add security checks page ([#2491](#2491)) ([103b9c6](103b9c6)) * Add support for confirmation dialog before script execution in data browser ([#2481](#2481)) ([64d3913](64d3913)) * Add typing with auto-complete to select a filter field in the data browser ([#2463](#2463)) ([257f76b](257f76b)) * Reopen last opened class when navigating to data browser ([#2468](#2468)) ([3d7148e](3d7148e)) ### Reverts * fix: Vertical scrollbar in data browser is outside visible area when scrolling horizontally ([#2457](#2457)) ([#2477](#2477)) ([2f1d84e](2f1d84e))
🎉 This change has been released in version 5.3.0 |
* feat: Add refresh indicator to Cloud Config page (parse-community#2505) * chore(release): 5.3.0-alpha.2 [skip ci] # [5.3.0-alpha.2](parse-community/parse-dashboard@5.3.0-alpha.1...5.3.0-alpha.2) (2023-10-18) ### Features * Add refresh indicator to Cloud Config page ([parse-community#2505](parse-community#2505)) ([a10d1f0](parse-community@a10d1f0)) * release * chore(release): 5.3.0 [skip ci] # [5.3.0](parse-community/parse-dashboard@5.2.0...5.3.0) (2023-11-16) ### Bug Fixes * Adding a file when adding a new row in the data browser doesn't show filename ([parse-community#2471](parse-community#2471)) ([5bbb94e](parse-community@5bbb94e)) * File extension is hidden in file field when editing object in modal dialog in data browser ([parse-community#2472](parse-community#2472)) ([8df4e4d](parse-community@8df4e4d)) * Incorrect highlight maker position in class list in data browser ([parse-community#2490](parse-community#2490)) ([8c28d24](parse-community@8c28d24)) * Pasting location coordinates into field of type `GeoPoint` does not work in data browser ([parse-community#2464](parse-community#2464)) ([a8ce343](parse-community@a8ce343)) * Selecting a saved filter in data browser also highlights other filters with equal names ([parse-community#2466](parse-community#2466)) ([35360fe](parse-community@35360fe)) * Vertical scrollbar in data browser is outside visible area when scrolling horizontally ([parse-community#2457](parse-community#2457)) ([5acac3f](parse-community@5acac3f)) ### Features * Add Cloud Function execution on Parse Object in data browser ([parse-community#2409](parse-community#2409)) ([996ce91](parse-community@996ce91)) * Add parameter `selectedField` to script payload to determine which object field was selected when script was invoked ([parse-community#2483](parse-community#2483)) ([e98d653](parse-community@e98d653)) * Add refresh button to Cloud Config page ([parse-community#2480](parse-community#2480)) ([be212b0](parse-community@be212b0)) * Add security checks page ([parse-community#2491](parse-community#2491)) ([103b9c6](parse-community@103b9c6)) * Add support for confirmation dialog before script execution in data browser ([parse-community#2481](parse-community#2481)) ([64d3913](parse-community@64d3913)) * Add typing with auto-complete to select a filter field in the data browser ([parse-community#2463](parse-community#2463)) ([257f76b](parse-community@257f76b)) * Reopen last opened class when navigating to data browser ([parse-community#2468](parse-community#2468)) ([3d7148e](parse-community@3d7148e)) ### Reverts * fix: Vertical scrollbar in data browser is outside visible area when scrolling horizontally ([parse-community#2457](parse-community#2457)) ([parse-community#2477](parse-community#2477)) ([2f1d84e](parse-community@2f1d84e)) * release * chore(release): 5.4.0-beta.1 [skip ci] # [5.4.0-beta.1](parse-community/parse-dashboard@5.3.0...5.4.0-beta.1) (2023-11-16) ### Features * Add refresh indicator to Cloud Config page ([parse-community#2505](parse-community#2505)) ([a10d1f0](parse-community@a10d1f0)) * refactor: Security upgrade js-beautify from 1.14.6 to 1.14.10 (parse-community#2513) * chore(release): 5.4.0-alpha.1 [skip ci] # [5.4.0-alpha.1](parse-community/parse-dashboard@5.3.0...5.4.0-alpha.1) (2023-12-02) ### Features * Add refresh indicator to Cloud Config page ([parse-community#2505](parse-community#2505)) ([a10d1f0](parse-community@a10d1f0)) * feat: Execute script for selected rows (parse-community#2508) * chore(release): 5.4.0-alpha.2 [skip ci] # [5.4.0-alpha.2](parse-community/parse-dashboard@5.4.0-alpha.1...5.4.0-alpha.2) (2023-12-16) ### Features * Execute script for selected rows ([parse-community#2508](parse-community#2508)) ([5d9901e](parse-community@5d9901e)) * fix: Dashboard crashes if Parse Server Cloud Function script returns object (parse-community#2516) * chore(release): 5.4.0-alpha.3 [skip ci] # [5.4.0-alpha.3](parse-community/parse-dashboard@5.4.0-alpha.2...5.4.0-alpha.3) (2023-12-16) ### Bug Fixes * Dashboard crashes if Parse Server Cloud Function script returns object ([parse-community#2516](parse-community#2516)) ([5de08f8](parse-community@5de08f8)) * fix: Data browser redirects to wrong class when changing app (parse-community#2526) * chore(release): 5.4.0-alpha.4 [skip ci] # [5.4.0-alpha.4](parse-community/parse-dashboard@5.4.0-alpha.3...5.4.0-alpha.4) (2024-02-15) ### Bug Fixes * Data browser redirects to wrong class when changing app ([parse-community#2526](parse-community#2526)) ([7713f54](parse-community@7713f54)) * fix: Open pointer in new tab in data browser not working when mount path is not root (parse-community#2527) * chore(release): 5.4.0-alpha.5 [skip ci] # [5.4.0-alpha.5](parse-community/parse-dashboard@5.4.0-alpha.4...5.4.0-alpha.5) (2024-02-18) ### Bug Fixes * Open pointer in new tab in data browser not working when mount path is not root ([parse-community#2527](parse-community#2527)) ([2f4081f](parse-community@2f4081f)) * fix: App metrics for user and installation counts show dash (parse-community#2528) * chore(release): 5.4.0-alpha.6 [skip ci] # [5.4.0-alpha.6](parse-community/parse-dashboard@5.4.0-alpha.5...5.4.0-alpha.6) (2024-02-26) ### Bug Fixes * App metrics for user and installation counts show dash ([parse-community#2528](parse-community#2528)) ([850d7b3](parse-community@850d7b3)) * feat: Add descriptive statistics for number cells in data browser (parse-community#2529) * chore(release): 5.4.0-alpha.7 [skip ci] # [5.4.0-alpha.7](parse-community/parse-dashboard@5.4.0-alpha.6...5.4.0-alpha.7) (2024-02-26) ### Features * Add descriptive statistics for number cells in data browser ([parse-community#2529](parse-community#2529)) ([ead9ec4](parse-community@ead9ec4)) * fix: Config page fails to load (parse-community#2531) * chore(release): 5.4.0-alpha.8 [skip ci] # [5.4.0-alpha.8](parse-community/parse-dashboard@5.4.0-alpha.7...5.4.0-alpha.8) (2024-02-29) ### Bug Fixes * Config page fails to load ([parse-community#2531](parse-community#2531)) ([d721b7c](parse-community@d721b7c)) * feat: Add Node 20 support; remove Node 14, 16 support (parse-community#2532) * feat: Add Node 20 support; remove Node 14, 16 support (parse-community#2535) BREAKING CHANGE: Removes support for Node 14 and 16 * chore(release): 6.0.0-alpha.1 [skip ci] # [6.0.0-alpha.1](parse-community/parse-dashboard@5.4.0-alpha.8...6.0.0-alpha.1) (2024-03-05) ### Features * Add Node 20 support; remove Node 14, 16 support ([parse-community#2532](parse-community#2532)) ([578a339](parse-community@578a339)) * Add Node 20 support; remove Node 14, 16 support ([parse-community#2535](parse-community#2535)) ([5c90f2d](parse-community@5c90f2d)) ### BREAKING CHANGES * Removes support for Node 14 and 16 ([5c90f2d](5c90f2d)) * refactor: Security upgrade express from 4.18.1 to 4.19.2 (parse-community#2539) * ci: Fix nginx config for preview environment (parse-community#2542) * refactor: Upgrade to npm lockfile version 3 (parse-community#2543) * fix: make cursor pointer for support more icon * fix: more icon cursor pointer * fix: remove console from B4aNotification * feat: add light themed b4aEmptyState * fix: B4aObjectPicker app crash when class exists not * fix: cloudcode empty states * fix: reduce size to remove scrollbar * fix: remove extra space from REST Console top * fix: dark themed dropdown arrow * fix: error modal * feat: add logRocket --------- Co-authored-by: patelmilanun <20059797+patelmilanun@users.noreply.github.com> Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net> Co-authored-by: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Co-authored-by: Parse Platform <90459499+parseplatformorg@users.noreply.github.com> Co-authored-by: Ashish Baravaliya <49753983+AshishBarvaliya@users.noreply.github.com> Co-authored-by: Corey <coreyearleon@icloud.com>
New Pull Request Checklist
Issue Description
Adds a scripts context menu that can call custom cloud code scripts with
req.params.object
. A small server update will be needed to allow Pointers to be passed.Closes: #2399
Approach
TODOs before merging