* 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.
* On setting an application to public view, correct permissions are assigned to the application and its pages & actions.
* If anonymous user is allowed a certain permission, the all users (anonymous/logged in) should be allowed the certain permission.
* Feat: Implement page not found UI
* fix: check user login status and minor code refactoring
- Check if user is logged in or not in page header.
- Based on login status show relevant CTAs
- Fix ESLint errors
- Move RoleNameCell and DeleteActionCell as seperate components.
* fix: Add catch all for pagenotfound
* fix: Use constants and update css syntax.
Co-authored-by: Arpit Mohan <me@arpitmohan.com>
* Bug fix is working. Added a test case which is not working.
* Code cleanup. Test case fixed. Now, when we set the user to enabled, we also store the password that has been passed to the flatMap.
* Minor code cleanup.
* Use envsubst and nginx templates to generate nginx configs which can substitute environment variables and inject into the index.html file
* Fix path in dockerfile. Add .gitignore and .env.example files. Fix nginx-linux template.
* Add all environment variables. Add prefix to all environment variables. Update scripts to attempt to substitute all environment variables with the prefix
* Setup dockerfile to execute a bash script. use env.example for fetching environment variables in development
* Toggle features based on injected configs. Fix nginx template substitution script.
* Update env.example file
* Remove debug code from start-nginx.sh
* Fix nginx config templates by adding quotes by default. Fix sed regex to include numerals. Toggle social login buttons on Login page based on the config.
* Update rapid api environment variable name. Toggle oauth buttons based on config in SignUp page. Update .env.example to be a union of server and client environment variables
* Adding a Map disabled message on Map widget
* Adding links to Privacy policy and TNC
* Use REACT_APP_ env variables with higher priority over injected config variables for toggling features
* Update netlify.toml by commenting out the build environment variables
* Remove env variables not required by the client
* Remove start-storybook entry from package.json
* Fix netlify.toml. Fallback algolia configs
* Add contexts to netlify.toml for successful deploys. Swith to using APPSMITH_MARKETPLACE_URL as the toggle for RapidAPI feature on the client. Remove comments in nginx config templates. Fix template used in dockerfile.
Co-authored-by: Satbir Singh <apple@apples-MacBook-Pro.local>
Co-authored-by: Satbir Singh <satbir121@gmail.com>
* 404 error added for a few API calls which would be specially handled on the frontend to display an ACL 404 error.
* Putting everything except GET actions, GET pages, and GET applications behind authenticated. This ensures that in the future public applications (view only) would not lead to 401 but any other page would.
* Code formatted.
- Increased timeout for move action
- Table header typescript fix
- Fix data tree selectors for better performance
- Debounce update action saga by 500 ms
- Query delete fix
- Query save fix
* Dates from Postgres queries now show up as ISO date strings
* Use constant for date column name in PostgresPlugin
* Fix formats for more date-time types on Postgres
* Add support for time and timestamp data types in Postgres plugin
* Add support for timestamptz column data type in Postgres plugin
* Add support for interval data type in PostgresPlugin
* Move application configuration to be loaded from environment variables
* Remove unused sentry.properties
* Make missing value sentinel a constant and ignore all *.env files
* Removed now-used ACL properties
* Prefix RapidAPI environment variable with APPSMITH_
* Fix application properties not being loaded into static fields
* Remove application-test.properties file
* Add required env variables for test in GitHub
* Quote URLs for MongoDB and Redis in test config
* Change RAPIDAPI to RAPID_API in environment variable names
* Source .env file in the root of repo in start script
Changes to fix the the UI/functionality breaking in widget action selectors when the onError action is configured first for an api or a query type action. Remove validation widget action selectors.
* New api and query has name in edit mode
* Curl import new api.
* Changing createApi command for new ui.
* Edit Api name is not visible in UI.
* Removed edit api name click.
Co-authored-by: Satbir Singh <satbir@appsmith.com>
Co-authored-by: Arpit Mohan <me@arpitmohan.com>
Co-authored-by: Satbir Singh <apple@apples-MacBook-Pro.local>
* Adding the Github action workflow for the server code
* Modifying the redis endpoint in application-test.properties to point to localhost because the Docker service exposes ports to the host
- Remove drafts from actions
- Direct update action from forms
- Debounced saving of actions
- Add org id in default datasource
- Merge query and api run saga
* 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
* added onSearch to getTriggerPropertyMap
* debouncing search fixed
* 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
* Client side search key made as case insensitive and property of table search value names as searchKey
* Removed unused function form SearchComponent
* Colors used from constants
* Adding tool tip to truncated values in table widget. Added AutoToolTipComponent that adds tooltip when text is truncated. (#16)
Co-authored-by: Arpit Mohan <me@arpitmohan.com>
* Created header for common functionalities in Table Widget
* Client side searching added in Table Widget. Action created for server side searching also.
* added onSearch to getTriggerPropertyMap
* debouncing search fixed
* Client side search key made as case insensitive and property of table search value names as searchKey
* Removed unused function form SearchComponent
* Feature/table ui update column visibility (#14)
* Columns visibility feature initial commit
* Column visibility list added in Table Widget
* Colors used from constants
Co-authored-by: Arpit Mohan <me@arpitmohan.com>
Co-authored-by: Arpit Mohan <me@arpitmohan.com>
* Fixing the move action API by removing invocations to subscribe
Calling subscribe() inside function calls is an anti-pattern and we shouldn't be doing it.
The reactiveContext is not called if the subscribe() function is called in the middle of execution flows. This breaks DB queries.
* Added test case for move action.
Co-authored-by: Trisha Anand <trisha@appsmith.com>
* Refactor CodeMirror component to be more configurable and testable (hints, markings)
* Update the existing datasource path component
* Better text highlighting for JSON fields
* Case insensitive hinting in autocomplete
- Wrap evaluated value to oveflow vertically instead of horizontally
- Stop showing arrows for the port field in datasources
- Show create query option when there are no datasources
- Stop showing loader for query creation error
- Throw error where there is no body in query response
Show the action's actionConfiguration for for 'config' in autocompletion
Show the action's actionConfiguration for 'config' in autocompletion
See merge request theappsmith/internal-tools-client!794
When organizationId is null in a datasource, fail with the right error message
The organization id is subsequently used to find a matching plugin (checking for installation essentially), but when organization id is missing, this query never returns. But the error message reads as if the plugin is not installed, whereas it should've been that organization id is missing.
See merge request theappsmith/internal-tools-server!406
Taking keys from all data points of table to generate columns instead of just first data point of table data.
See merge request theappsmith/internal-tools-client!779
Race condition bug caught in remove user from organization flow where multiple applicaitons/pages/actions exist for an organization.
See merge request theappsmith/internal-tools-server!407
Fix/scrollbars
Remove scrollbars for function docs, autocomplete, current value and evaluated value.
See merge request theappsmith/internal-tools-client!775
- Use manage:organizations permission to restrict users from managing apps
- Add loading indicators will changing role and deleting users
- Restrict user from deleting himself or changing his role.
Bug fix : Create Organization is failing because the user is read from the session and not from the repository. Now reading the user at appropriate places.
See merge request theappsmith/internal-tools-server!405
Add server-side templates support for plugins
Two main themes in this MR:
1. Add support for saving query templates as resource files inside a plugin. This has been done for both Postgres and MongoDB plugins, based on current template contents.
2. Loading of form JSON is now reactive. The blocking call has been moved inside a `Mono.fromSupplier`.
3. The loading of from JSON as well as the templates is cached and are loaded on-demand. This means that the templates are loaded once for a plugin through the lifetime of the server process, and that they are loaded only at the first time they are needed.
4. If loading of these resources fails, we try again when they are needed the next time.
See merge request theappsmith/internal-tools-server!385
Expand evaluated value on click
- Show evaluatedValue based on input focus and content's hover state.
See merge request theappsmith/internal-tools-client!765
Fix/create api loader
- Show loader in api home screen when creating a new api action
- Show loader in query home screen when creating a new query action
- Show column lines for table in query pane
See merge request theappsmith/internal-tools-client!734
Duplicate datasource fixes
- Do not show datasoure field menu when url is blank
- Embedded datasource name shouldn't be blank
- Omit datasource name while creating a datasource
See merge request theappsmith/internal-tools-client!759
Bug Fix : Application and page can only be deleted if you have manage application/page permissions respectively.
See merge request theappsmith/internal-tools-server!395
Fix the chart widget crash issue
- Fix chart widget crash issue which was caused due to incorrect default values.
See merge request theappsmith/internal-tools-client!744
The current push for fixing tests in the new ACL flow.
1. New way to handle create application.
2. API login
3. Removed redundant tests.
4. Fixed Issues wrt ACL changes
Adding the widget names set to the default layout for a page
During action name refactor, we require the widget names to exist in the layout. Hence all default layouts must have the widgetName set.
See merge request theappsmith/internal-tools-server!387
Fix/lightning menu
- Add lightning menu to assist users in binding
- Change the action selection display for consistency.
See merge request theappsmith/internal-tools-client!706