* Correcting the Docker image for Appsmith server for Github actions test
* Also fixing the bug where the datasource config is not returned properly for restapi-plugin
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
* WIP: Not working bulk invite.
* WIP : Non compilable.
* Current test cases running.
TODO : Code Cleanup and write new test cases for bulk invite.
* Code cleanup
* Added a test case for bulk invite of users to an organization.
* Incorporated review comment.
* Merged the latest release and incorporated review comments.
* Corrected the error thrown when usernames is empty or null for invite user API.
* Auto-login on signup works!
* Support form-encoded data body for signup requests
* Remove debug log entry when getting session
* Refactoring and add some docs to UserSignup solution
* Move user object construction to UserSignup solution
* Redirect with error message on signup errors
* Fix: When navigating to a widget, the widget reference isn't found, resulting in the property pane rendering without reference. Resolution: Show property pane only if reference is available
# New Feature: Entity Explorer
- Entities are actions (apis and queries), datasources, pages, and widgets
- With this new feature, all entities in the application will be available
to view in the new entity explorer sidebar
- All existing application features from the api sidebar, query sidebar, datasource sidebar and pages sidebar
now are avialable on the entity explorer sidebar
- Users are now able to quickly switch to any entity in the application from the entity explorer sidebar.
- Users can also search all entities in the application from the new sidebar. Use cmd + f or ctrl + f to focus on the search input
- Users can rename entities from the new sidebar
- Users can also perform contextual actions on these entities like set a page as home page, copy/move actions, delete entity, etc from the context menu available alongside the entities in the sidebar
- Users can view the properties of the entities in the sidebar, as well as copy bindings to use in the application.
* Added Redux action to clear widget meta properties when page is fetched
* reset widget meta for view mode too
Co-authored-by: Nikhil Nandagopal <nikhil@appsmith.com>
* fix table styles
* rich text editor fix
* Fix action panes showing as blank
* correct fix this time
* cleanup
* default search in table
* Fix for text widget heading style
* Fix for table widget filtered table search
* Another approach to see if app has been created
* Fixes in styles of table and text
* Added information to setup domain
* Fixed incorrect var reference
* Updated documentation message
* Updated env template
* updated template
* removed debug echo
* Updated Script
* Updated Text
* Removed option to connect to external mongo for fresh installs
Exit script of docker desktop is not installed
* Updated docker installation explanation
* added a question to skip custom domain if user is installing locally
* Inverted script question and
* Removed question to determine local installation
* Updated Popup CTA to Modal
Updated query templates to contain bindings
Added a message to display on API / Query errors
* updated styles for evaluated value
updated styles for auto complete
* added spaces to questions
* grouped data tree functions together in autocomplete
* Updated autocomplete styles
* Updated property pane styles to become more dense
* Fixed lightning menu styling
* fixed tests
* Fixed Cypress test
* added property to show / hide tabs
* fixed selected tabs not updating
* fixed cypress tests for tabs
Co-authored-by: Nikhil Nandagopal <nikhil@appsmith.com>
* Added information to setup domain
* Fixed incorrect var reference
* Updated documentation message
* Updated env template
* updated template
* removed debug echo
* Updated Script
* Updated Text
* Removed option to connect to external mongo for fresh installs
Exit script of docker desktop is not installed
* Updated docker installation explanation
* added a question to skip custom domain if user is installing locally
* Inverted script question and
* Removed question to determine local installation
* Updated Popup CTA to Modal
Updated query templates to contain bindings
Added a message to display on API / Query errors
* updated styles for evaluated value
updated styles for auto complete
* added spaces to questions
* grouped data tree functions together in autocomplete
* Updated autocomplete styles
* Updated property pane styles to become more dense
* Fixed lightning menu styling
* fixed tests
* Fixed Cypress test
* added property to show / hide tabs
Co-authored-by: Nikhil Nandagopal <nikhil@appsmith.com>
* Added information to setup domain
* Fixed incorrect var reference
* Updated documentation message
* Updated env template
* updated template
* removed debug echo
* Updated Script
* Updated Text
* Removed option to connect to external mongo for fresh installs
Exit script of docker desktop is not installed
* Updated docker installation explanation
* added a question to skip custom domain if user is installing locally
* Inverted script question and
* Removed question to determine local installation
* Updated Popup CTA to Modal
Updated query templates to contain bindings
Added a message to display on API / Query errors
* updated styles for evaluated value
updated styles for auto complete
* added spaces to questions
* grouped data tree functions together in autocomplete
* Updated autocomplete styles
* Updated property pane styles to become more dense
* Fixed lightning menu styling
* fixed tests
* Fixed Cypress test
Co-authored-by: Nikhil Nandagopal <nikhil@appsmith.com>
* Added information to setup domain
* Fixed incorrect var reference
* Updated documentation message
* Updated env template
* updated template
* removed debug echo
* Updated Script
* Updated Text
* Removed option to connect to external mongo for fresh installs
Exit script of docker desktop is not installed
* Updated docker installation explanation
* added a question to skip custom domain if user is installing locally
* Inverted script question and
* Removed question to determine local installation
* Updated Popup CTA to Modal
Updated query templates to contain bindings
Added a message to display on API / Query errors
* updated styles for evaluated value
updated styles for auto complete
* added spaces to questions
Co-authored-by: Nikhil Nandagopal <nikhil@appsmith.com>
* Fix UI Bugs
- Double search box width and change text to Search app name
- Half the space between the org icon and the org name on home page
- Make org name bold and increase font to 16px
- Remove manage users button from invite modal if modal is opened in organisation settings page
* fix: Review Comments and other minor changes
- Clear TagList on form submit
- Fix CSS for search widget width
- Fix table height
- Make org name text bold for admin access.
* fix: Test Cases
Keeping the function to read plugin resource generic for any type of resource. Now the parent function can also conditionally decide which plugin would require to read which resources from the filesystem.
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
* feat: Add org share option to application share modal
* fix: Update design and implement copy to clipboard
* fix: Show share based on permission and update modal UI
- Update modal style
- show application share button only to admins.
* fix: refine code
* Overwriting the base service's getById for OrganizationService to ensure that the response contains userPermissions (by using custom repository instead of default mongo repository classes)
* Fixed the failing test cases.
* Minor code formatting.
The client will have to send a query parameter redirectUrl or a header X-Redirect-Url in order for the server to redirect the client to the appropriate URL post login. If neither of these parameters are present, the client is redirected to /applications by default.
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
* Fixed tabs widget bugs and other updates:
1. Moved drag icon to the left of tab name field in the tabs widget property pane
2. Change drag icon
3. Add scroll when the tabs occupy more width than the width of tabs widget.
4. Add selected tab name validation.
5. Hide overflow tabs.
6. Avoid vertical scrollbars in tabs widget header
* During signup, if the user already exists, instead of throwing a generic duplicate key exception, request the user to sign in.
* Minor change in the error message.
* Add a new meta property to tableWidget called filteredTableData which will be used by the table to filter
* Use derived properties to update filteredTableData
* Check if search is done via actions, if so, filteredTableData is the same as tableData
* Row selection when button is clicked and row is not selected
* Added columnActions to useMemo for columns computation to support live action name updated and action change support
* Fix cloning fails in some cases for organizations
Cloning currently fails in cases like the following:
- Application with no pages
- Pages with no actions
- Pages with more than one action
* Remove debug naming of cloned datasources
* Add test for organization cloning
* Add more tests for organization cloning
* Fix potential race condition in adding pages to an application
* Move db update call to add page to application, into repository
* Use `getIdCriteria` to query for document's _id
* Reuse layout that's automatically created with page
* Use correct API for updating a layout
* Commenting out organization cloning test.
* Removed organization cloning test
* Adding a dummy commit to run the pipeline.
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
* Fix layouts not be updated when an action is updated
* Add test for updating onLoadActions when action updated
* Split layout and action test to separate class
* Remove duplicated test in ActionServiceTest
* Added Button component in Table widget for actions
* Action button state loading added for Table widget
* Action button font-weight made as normal
* Created header for common functionalities in Table Widget
* Client side searching added in Table Widget. Action created for server side searching also.
* Columns visibility feature initial commit
* Column visibility list added in Table Widget
* Changed pagination designs in accordance with new layout. This enable user to jump page as well.
* Using colors values from constants
* Table widget pagination, numeric input page number clamped between 1 and total pages
* Adding tool tip to truncated values in table widget. Added AutoToolTipComponent that adds tooltip when text is truncated.
* Table data download changes. Added downlaod icon and button to table widget.
* Table data download changes
* Table button loading state fixed. Table code refactored, rendering from props instead of state in ReactTableComponent
* Table widget action button alignment fixed
* Handled actions column changes
* added proper keys to useMemo for react table widget
* Download table data as CSV implemented
* table data download, unused code removed
* Code refactors and added dependency map with meta props and table data for computing columns
* Table UI breakages on scroll and empty cells fixed
* Handled empty rows in table widget
* Fixed last row cut issue
* Code review changes
* Code review changes
* Added table widget component heights as enum
* code review changes
* Search component in Table widget updated with support for clearing data, renamed properties
* Opening image in new tab on clicking in table widget
* Fixed table craching due to empty data filtering
* Empty extra space on loading removed in table widget
* Removed stopping of event propagation on table widget action button click
* Fixing for test cases
* Table header UI overflow fixed
* Clearing selected row on searching data in table widget
* fix for cypress test
* Table crash issue fix
* searchKeyword renamed to searchText. searchText added to entity definitions
Co-authored-by: Arpit Mohan <me@arpitmohan.com>
The policies of `User` objects is an empty set by default. So, when using a new `User` object to call `update`, it also updates existing policies to be an empty list.
* Fixing test cases failing due to non unique names.
* Adding execute action permissions policy to match read actions policy in existing actions.
* Only save the action if there are read actions permission present (and hence could have been updated)
* Added Button component in Table widget for actions
* Action button state loading added for Table widget
* Action button font-weight made as normal
* Created header for common functionalities in Table Widget
* Client side searching added in Table Widget. Action created for server side searching also.
* Columns visibility feature initial commit
* Column visibility list added in Table Widget
* Changed pagination designs in accordance with new layout. This enable user to jump page as well.
* Using colors values from constants
* Table widget pagination, numeric input page number clamped between 1 and total pages
* Adding tool tip to truncated values in table widget. Added AutoToolTipComponent that adds tooltip when text is truncated.
* Table data download changes. Added downlaod icon and button to table widget.
* Table data download changes
* Table button loading state fixed. Table code refactored, rendering from props instead of state in ReactTableComponent
* Table widget action button alignment fixed
* Handled actions column changes
* added proper keys to useMemo for react table widget
* Download table data as CSV implemented
* table data download, unused code removed
* Code refactors and added dependency map with meta props and table data for computing columns
* Table UI breakages on scroll and empty cells fixed
* Handled empty rows in table widget
* Fixed last row cut issue
* Code review changes
* Code review changes
* Added table widget component heights as enum
* code review changes
* Search component in Table widget updated with support for clearing data, renamed properties
* Opening image in new tab on clicking in table widget
* Fixed table craching due to empty data filtering
* Empty extra space on loading removed in table widget
* Removed stopping of event propagation on table widget action button click
* Table header UI overflow fixed
* Clearing selected row on searching data in table widget
* fix for cypress test
Co-authored-by: Arpit Mohan <me@arpitmohan.com>
* Datasource test should always test the latest object given by the client (instead of fetching the same from the db). If it is a saved datasource, then we should decrypt and set the password in the datasource (unless the password is one of the changes that is being tested).
* Added function level comment to clarify that this function can no longer be used by just sending the datasource.id field set.
* Handle stale database connection from datasources
* Fix potential secondary case of stale connection error
* Fix Postgres to MySQL
* Move validity check timeout to a constant field
* Add test for recovery when stale connection error is thrown
The plugin class loader from Pf4J looks for jars under target/lib
to use to load any classes that are missing target/classes. This
PR adds the `maven-dependency-plugin` to copy the jars to this
folder automatically so the classes are available during
development.
The client can send the redirect URL in X-Redirect-Url header. The server will honour the value set and redirect the client browser to this particular url. By default the server will redirect to /applications if the custom header is missing. The redirect url can either be absolute or relative.
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
1. Bug fix for when actions for a public application use an external datasource (aka db queries). The db queries were not getting executed because the permission for execute datasource was not getting set for anonymousUser.
2. When using the Test endpoint for datasource, if the datasource is being read from the db and there are encrypted fields, first decrypt the field and then send to the plugin for testing the co
* fix: Table scroll issue, application share issue, eslint errors
- Settings page: whole page should scroll not the table
- Application name to be displayed to user on share
- Fix eslint errors
* fix: Get Application details and pass it to as props.
* Query pane refactor and fixes
* Check if body exists
* Get pluginId from the datasource
* Move plugin image logic to selector
* Show info in new line on the datasource form page
* Update link text to Docs
* Handle string as run api response body
* Remove harcoded height
* Remove all references to ImageAlt except in selector
* Updata info text
This commit adds the Mysql plugin to the Appsmith server. We also add a migration to ensure that this plugin is installed by default for all existing organizations. The migration also adds the plugin details into the DB.
Also adding the test cases for mysql plugin.
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
Co-authored-by: Hetu Nandu <hetu@appsmith.com>
Co-authored-by: Arpit Mohan <me@arpitmohan.com>
Co-authored-by: Nupur Singhal <nupursinghal@Nupurs-MacBook-Air.local>
* When cloning examples organization, clone only public applications
* Create template organization within the test
* Cleaned up test for cloning of examples organization
* Fix Mono chaning
Co-authored-by: Trisha Anand <trisha@appsmith.com>
* Create test apps and config simultaneously
Co-authored-by: Trisha Anand <trisha@appsmith.com>
* Datasource authentication object fields should only be encrypted during create or if the update object contains authentication object. Added a test case to check that update to any other field doesnt update the encrypted fields.
* Incorporated review comment
* Create Org related usecases
* Review comments incorporated
* Updated with env variables for test users and routes
Co-authored-by: Nandan Anantharamu <Nandan@thinkify.com>
* Trying to clone the examples repo on new user signup
* Working implementation of cloning examples organization on user sign up
* Fix personal org not being created when template org is missing
* A working version of cloning of examples organization on first-login
* Add docs for methods in ExamplesOrganizationCloner
* Refactor computing user's first name into a method
* Add some menial tests for examples organization cloning
* Use explicit permissions when fetching applications and datasources
* Fix template organization config name hard-coding
* Refactor implicit permissions in service methods as function arguments
* Revert an unintended change that got committed
* Fix permission variable name
Co-authored-by: Trisha Anand <trisha@appsmith.com>
Co-authored-by: Trisha Anand <trisha@appsmith.com>
* Created header for common functionalities in Table Widget
* Client side searching added in Table Widget. Action created for server side searching also.
* Columns visibility feature initial commit
* Column visibility list added in Table Widget
* Changed pagination designs in accordance with new layout. This enable user to jump page as well.
* Using colors values from constants
* Table widget pagination, numeric input page number clamped between 1 and total pages
* Adding tool tip to truncated values in table widget. Added AutoToolTipComponent that adds tooltip when text is truncated.
* Table data download changes. Added downlaod icon and button to table widget.
* Table data download changes
* Download table data as CSV implemented
* table data download, unused code removed
* Code review changes
* code review changes
Co-authored-by: Arpit Mohan <me@arpitmohan.com>
Adds a third parameter to the Action.run function that can be referenced inside an action config
Usage
`{{ Api1.run(...,...,{key: value}) }}` inside property pane
`{{this.params.key}}` inside action pane
* You can reference data tree properties in the params values:
`{{ Api1.run(..., ..., { key: "Input1.text.toUpperCase()" })`
* Bindings can have both params and data tree values referenced.
* Param values can be javascript functions
`body: {{ this.params.list.map(i => Input1.text + i ) }}`
* Added Button component in Table widget for actions
* Action button state loading added for Table widget
* Action button font-weight made as normal
* Table button loading state fixed. Table code refactored, rendering from props instead of state in ReactTableComponent
* Table widget action button alignment fixed
* Handled actions column changes
* added proper keys to useMemo for react table widget
* Code refactors and added dependency map with meta props and table data for computing columns
* Table UI breakages on scroll and empty cells fixed
* Handled empty rows in table widget
* Fixed last row cut issue
* Code review changes
* Added table widget component heights as enum
Co-authored-by: Arpit Mohan <me@arpitmohan.com>
* Disable the direct `create` methods for pages and applications
* Create differently named versions of create methods to avoid ambiguity
* Removed unused pageService in DatasourceServiceTest
* Rename createPlain method to createDefault to better convey intent
* Getting the script to work on Mac OS X Bash Version 3
* Correcting the nginx template configuration and Dockerfile for the appsmith-editor. Now any replaced environment variables will be replaced when the Nginx Docker container restarts.
This PR adds the build, test & package workflow to the client code base as well.
In order for us to run the Cypress tests, we also spin up a local server in a Docker container and run all our tests against that server. This ensures that our tests are faster to run as well.
We also introduce the concept of stubbing network requests by stubbing the API that fetches the property pane configuration from the server.
Results for the Cypress tests can be viewed at: https://dashboard.cypress.io/projects/eyxvp8/runs/
* Bug fixes :
1. Get actions in view mode should be open for unauthorized requests. Fixed that.
2. set transient fields in action is called post fetching all the actions (after taking care of all the permissions). At this point, we shouldnt be using permissions to fetch datasource.
* Added pageId in the ActionViewDTO and NPE check for setting the json path keys.
* Checking for both json path keys being null and not empty before copying the json path keys into action view dto.
The MAIL_FROM & REPLY_TO addresses default to appsmith@localhost. This should be changed in the generated docker.env file during deployment to actual values.
Most email providers will not send emails unless they originate from a valid sender ID.
* Fix autocomplete for special cases
- Send the currently focused dynamic binding to tern instead of the entire editor value
* Add tests for TernServer methods
- Make request callback a seperate so that it could be testable
- Add tests for getFocusedDynamicValue, buildRequest and requestCallback
* Keep input and expected values together
* Encrypting the password stored in AuthenticationDTO for every db.
* Adding comment to the properties file to denote that adding encryption salt and password are mandatory to the server coming up.
* Added the encryption salt and password to server.yml to allow the github actions to succeed.
* Adding database migration to encrypt the existing passwords for authentication object (used for storing db connection username/password)
Changes to the installation script install.sh:
1. Instead of overwriting the existing encryption password or salt, giving the user an option to conserve the previous encryption credentials to ensure that the developer users do not lose access to their database configurations (passwords).
2. Added another file for writing encryption credentials (encryption.env) to ensure that we dont delete the encryption password and salt by mistake.
* Added Button component in Table widget for actions
* Action button state loading added for Table widget
* Action button font-weight made as normal
* Table button loading state fixed. Table code refactored, rendering from props instead of state in ReactTableComponent
* Table widget action button alignment fixed
* Handled actions column changes
* added proper keys to useMemo for react table widget
* Code refactors and added dependency map with meta props and table data for computing columns
* RenameColumnHeader function renamed to TableHeaderCell
Co-authored-by: Arpit Mohan <me@arpitmohan.com>
* Table column show column fixed. Show icon changed. Columns list made static in visibility dropdown
* Code review comments handled
* Hiding visibililty options in published mode
* fix: error page and get applications API
* fix: apptoaster check for show variable instead of error code.
* fix: Update naming and combine currentOrgId and OrgDetails.