acrosman / electronforce Goto Github PK
View Code? Open in Web Editor NEWA basic Salesforce Org exploration tool written with Electron and JSForce.
License: MIT License
A basic Salesforce Org exploration tool written with Electron and JSForce.
License: MIT License
Describe the bug
When attempted to use the buttons on the Permission Set List the describe lookup fails.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
It interface should shift to the detail display for the selected permission set. You can see this behavior by switching to the permission set detail display and entering the name of the permission set. It is worth noting this also triggers the describe query failing above and it runs successfully.
Provide a section of the display for a logging console and add a logging system that display messages there.
Add controls to the display of object fields to select which columns are show to reduce the information overload allow for easier review of desired details.
Summary
Add feature to only show fields on an object during object describe.
Describe the solution you'd like
A common use case of the object describe is to be able to see a list of all fields by their name and basic details. Currently those are nested inside a large hard to navigate generic structure from the describe calls, it would be easier to find what you want it they were in a table.
Add a checkbox to the form for the describe calls to just display the fields.
Update the display when in that mode to only show the fields in a table (and probably an object summary of some kind above the table).
Summary
When looking at the tables it would be helpful to be able to sort them by the columns.
Describe the solution you'd like
For all, or at least most, column headers on the table displays, have them sort on click.
Compare detailed permissions for a specific pair of users in the same org or two different orgs.
Summary
This should be similar to the existing display of permission sets, but adjusted to pull in the current permission set groups for the org.
It should include:
Summary
Adding a feature to filter output of tables by a key column like object name.
Describe the solution you'd like
In addition to the find feature in #51, it would be useful to be able to filter the long lists in the tables of results by the name column or some other key context specific field(s).
The responses all provide the current API limit information pulled from the response headers by JSForce. But it's not displayed in the interface in a meaningful way.
Now that JSON view is part of the app, the last response display should be refactored to use that, and reduce the amount of screen space it takes up.
Currently query results are just the first page of results, but we should support paging through all results.
Summary
Add the ability to pull later pages from a query result with lots of data.
Description
While the application is aware of the need for paging in theory, nothing has been done to implement it in practice. Even the simplest org should return more than 10k records for:
SELECT SobjectType, Field, ParentId, PermissionsEdit, PermissionsRead, Parent.Name FROM FieldPermissions
[QueryMore()](http://jsforce.github.io/jsforce/doc/Connection.html#queryMore)
and this issue for implementation suggestions and discussion.Add a what to display all the permissions and access controls for an object (Standard or Custom) and field level controls.
Describe the bug
If you log into an org twice as the same user (for example after a session expires) the second connection is added to the org drop down as if it is new. Only one per user per org should appear.
I initially selected Electron Builder because someone recommended it during a Hacktoberfest a few years ago on another project. Electron project has selected Electron Forge as the default builder, so I'd like to switch this project to use it.
Right now errors go to the console and the raw response area. The user can easily miss them. It would be better to have them pop up or displayed is a clear message area with more obvious text.
The project uses a bootstrap-based theme, which leverages Roboto from Google. It would be nice to have the font local instead of remote.
If you run something like
SELECT COUNT() FROM Account
The results end up in the header but not cleanly formatted.
Summary
Large response set and information need search.
Can be based on an approach like the one implemented for Salesforce2Sql
Retrieve and display the Organization object
https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_organization.htm
Summary
Add a call to pull in all of an org's roles and display their information. This should be similar to to existing Permission Set retrieval.
The current README screenshots are from an earlier version that displayed both the authentication fields differently and the raw response differently. New screenshots would be helpful.
Doesn't need to take up some much screen space. It would be better if there were a button to trigger the form, and then it could remain next to the connection selector and logout button.
Summary
Electron version 20 is out, this project should be updated to use it.
Known Refactors
Electron 20 adds default support for sandboxing renderer windows. The preload scripts for this project need to refactored to no longer import the list of handlers used for defining the list of send channels. Now that list needs to be hard coded into an array like the receive channels are. You can get the list of functions from the handlers
object in the src/electronForce.js
file.
Create a process to run the same query against multiple orgs to compare results.
Helpful to validate data migration between orgs or sandbox and prod
Describe the bug
npm install throws an error with the node version 13.11.0
To Reproduce
Steps to reproduce the behavior:
npm ERR! code E404 npm ERR! 404 Not Found - GET https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.0.tgz npm ERR! 404 npm ERR! 404 '[email protected]' is not in the npm registry. npm ERR! 404 You should bug the author to publish it (or use the name yourself!) npm ERR! 404 It was specified as a dependency of 'electronForce' npm ERR! 404 npm ERR! 404 Note that you can also install from a npm ERR! 404 tarball, folder, http url, or git url.
view the following errorExpected behavior
I tried re-installing several times
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Describe the bug
All the images in the readme file appear to have stopped working. The images should all be present in the repo so they should be an easy fix.
Error are routed to the console now and nothing appears in the interface.
Describe the bug
Both windows throw an error from an image that's violating policy. Update the content security policy meta tags to resolve.
index.html:1 Refused to load the image 'data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23222' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e' because it violates the following Content Security Policy directive: "default-src 'self'". Note that 'img-src' was not explicitly set, so 'default-src' is used as a fallback.
Summary
Current readme images are out of date. Would be great to get some updated ones, and a few showing newer features. Generally it's wise to use a Trailhead playground or similar throw away org with all fake data.
Describe the bug
When connected to multiple orgs the most recent connection is always used.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Operations should always run against the selected org.
Summary
There is a selector to pull in an org's Default Sharing Rules, but it's not connected to actually do anything. It should be completed so that it fetches and displays the OWDs for all objects in the org.
Summary
JSForce supports OAuth connections, they should be used.
Is your feature request related to a problem? Please describe.
Using the old security token system is not ideal. OAuth connections would be a better choice for most users.
Solution
Setup to use OAuth connections to Salesforce.
Summary
The console window is totally useless and adds overhead for very little gain. Recent log messages can be displayed in a popup, and the larger collection of logs stored in the main thread and called when needed.
Describe the bug
Object2ul should display key value pairs, but at least for the object describe field mode it just shows the values.
To Reproduce
Steps to reproduce the behavior:
When records are returned by a query or search it should be possible to export them to CSV.
Update to Bootstrap and Bootswatch 5.
See for suggestions: https://github.com/acrosman/Salesforce2Sql/pull/129/files
There are a number of places in render.js that generate table cell nodes. A function has been added to handle that, but the older uses need to be refactored to use the new function.
Summary
Currently the connection log message includes that access token. That's bad. Also not needed for anything good. Remove that from the response text sent to the log. Provide the user name and the instance URL values.
Anytime a message is passing between the main process and the primary render process (for the main UI window) it should send something to the logging console window.
Summary
Current the project has no automated testing โ it should.
Describe the solution you'd like
I would like to have an automated test framework that works well with electron and can eventually be supported by CircleCI when I get around to setting that up. I have used Mocha and Chai a very little bit on other projects so would default there, but have no strong opinion if you know another framework that might serve the project better.
Based on the version from Salesforce2SQL or electron-sf-base, add a basic preferences system that starts with just a theme switcher.
Use the Analytics API to be able to run reports.
https://jsforce.github.io/document/#analytics-api
Instead of a generic display of JSON, it should be a more thoughtful table of the objects and their information.
Describe the bug
When you start up the app the console window throw a Content Security Policy warning and refuses to load Google fonts.
Refused to load the stylesheet 'https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap' because it violates the following Content Security Policy directive: "default-src 'self'". Note that 'style-src-elem' was not explicitly set, so 'default-src' is used as a fallback.
Requires an update to the content policy meta tag. See the main index.html file for solution.
Leverage object describe, limits API, and queries, to create a method for finding and deleting all data in a org. Should allow the user to select which objects will get wiped (listing only those with data) and try to determine a reliable order to attempt deletes.
Should also include a really really clear warning that this is really dangerous 90% of the time.
When you log out of an org, its connection should be removed from the list of connections. After that last connection is terminated the display should return to the initial setup state of the page.
SFDO Reference
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_limits.htm
Can be called in JSForce with conn.limits.
Describe the bug
When logging into an org, if something goes wrong nothing appears in the main part of the interface only the console.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.