* Fixes modal pop up bugs on page load
* send confirmBeforeExecute attribute with page execution order info
(cherry picked from commit 6d3cfdfbdb83b435e67797f3fb27024799d5d579)
Co-authored-by: Sumit Kumar <sumit@appsmith.com>
* Fix connect test
* check api response
* [wip] test comments across branches (#8704)
* Intercept only connect api
* chore: update switch branches tests (#9005)
* test switch branches from the query params
* test flow wip
* .
* fix merge status update
* change mergeAble to isMergeAble
* wip
* fix: show error popup if pulled from bottom bar
* fix: append branch query to notification links
* fix: disable git connection during onboarding
* fix: typo
* fix: typo
* fix: typo
* fix: z-index bottom bar cout
* fix: pull button minor fix
* fix: reset conflicts when the git sync modal is opened
* fix
* feat: enable search for branch dropdown
* fix
* fix: typo
* added merge conflicting on merge tab
* updated gitsyncsaga for git sync error action
* added generate ssh key on init and updated git changed count message
* removed git sync error action from error processing module(toast and log)
* commented push button on bottom git action bar temperory
* added option to use git global config
* Added latest deploy preview time: didn't appear until the duration was in minutes
* Link open repo button with repo link
* fixed of commented code part
* upated tooltip of push button on bottom quick git sync toolbar
* Update banner styles for error and warning
* updated repo publish url pattern and last deployed view part
* when the user clicks on the push icon the deploy tab should open
* when branch name is too big and user hover on it the tooltip is not displayed
* The dropdown alignment displayed for the git connect should be polished
* update tests
* fix: minor git sync fixes (#9228)
* fixed of Under the merge tab when the user searches for the branch name which is not present the pop up closes all of a sudden
* fix: update merge api, use message from api response
* fix: update field
* added tooltip of long dropdown option and updated merge tab dropdowns
* removed log
* chore: add connection cypress tests
* temp update for running tests locally
* fixed long branch name on branch list popup
* Use _ as the branch name separator, instead of -
* Use large buttons as CTAs
* Remove the % from the progress bar
* Fix alignment for the skeletons on the deploy tab
* Merge CTA moves down when the status is rendered, add offset to prevent that and error branch dropdown on merge tab
* Show progress bar after clicking on Merge CTA as the loading state and generate key button
* after generating the deploy key before clicking on connect close the pop-up and open it again the Remote URL is not visible in the input box
* fixing of conflicting issue
* updated git connection design
* Provide more spacing between the lines
* Learn more does not have a hover state
* Heading Merge Changes should be sentence cased like headings on other tabs
* Button can trigger CTA call when in loading state
* disabled clickable icon on git connect bottom bar
* Git connection tab: on error the window doesn't scroll all the way to the bottom
* updated temp remote url values on action and reducer
* updated ellipsis functions of text
* fix: prune branch flag
* fix: update page level roomId to include branch name
* fix
* fix
* feat: add a separate feature flag for git import
* feat: branch section headers bottom bar branch list
* fixed branch list comments
* fixed merge issue
* fix
* feat: hotkey for commit and push
* remove pull button on git conflict info
* move tempRemoteUrl redux to gitSyncreducer and added messages
* splited git error as individual action
* removed push button from git sync bottom buttons
* feat: section header at the merge dropdown
* added comment of converting ssh to https
* feat: show connected to git badge
* feat: show asterisk when we have uncommitted changes
* fix: upate segment header for dropdown
* t fix: remove redundant success toasts
* removed tempory git repo url from app data
* wrapped tooltip with elipsis text
* fix: rm unused vars
* fix: bottom bar icon updates
* updated dropdown option with ellipsis text
* added new props named "wrappedOption" on dropdown for wrapping ellipsis option
* rename wrappedOption to truncateOption on dropdown component
* updated dropdown option with disabled props of tooltip
* fix: remove remote branches from merge branch dropdown
* reset yarn lock
* reset yarn
* fix: keeping it same as the existing value
* fix: remove branch dropdown border
* fix: show merge success indicator
* feat: init repo limit error modal
* fix: disconnect git wip
* added git user config test
* removed test data
* fix: checkout api
* fix: lint
* chore: pre connection test specs
* added revoking git workflow
* renamed revoke to disconnectGit
* added setting on git sync action over bottom bar
* added analytic on git connection
* added learn more for remote url and init module of temp remote url when select new application
* .
* chore: test learn more ssh url
* Verify the functionality of Read documantation link
* added git connect with onboarding workflow
* Validate the Input Box displayed below Commit to master Text
* updated test module for deploy tab with commit comment and deploy preview
* test of prune branch name
* Validate the error faced when user switches between the branches
* verify the functionality when user click on "+" Icon
* Verify the functionality of serach input box inside the serach dropdown
* Verify the display of the Merge Button
* advanced of disconnect git ui
* added git disconnect modal test case
* updated repo limit error condition
* added learn more link test on git disconnect modal
* for review of repo limit error modal test script.
* fix: issue with intercept
* fixes
* fixes
* add key, misc fixes
* fix
* revert changes
* fix
* fix imports
* Fix import
* Yarn lock update
* fix
* fix imports
* chore: remove timeout for a test run
* Increase timeout for jgit APIs
* chore: try increasing timeout
* try increasing timeout further
* Handle git connect error on the basis of error type
* Add env variable to CI build script
* Fix bad commit for adding env var in workflow
* Refactor
* FAdd env var for local repo path
* fix import
* fix specs
* fix
* fix
* try
* fix
* fix
* fix
* fix
* fix: don't validate error msgs
* fix spec
* improve spec
* chore: rm unused code
* chore: update descriptions
* rm commented out code
* fix
* rm comment
* chore: rm comments
* fix: lint
* chore: update comment
* fix: wait for widget switch transition
* spec updates
* fix
* fix imports
* try waiting for getPagesForViewApp
* fix: rm unused file
* fix: remove spec
* fix: add js collection, comment out repo limit exceeded error since it seems not limited on appsmith instances
* Fix server failure
* chore: correct bootIntercom import and sort lines
Co-authored-by: Rishabh-Rathod <rishabh.rathod@appsmith.com>
Co-authored-by: haojin111 <haojin828@outlook.com>
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
Co-authored-by: Abhijeet <abhijeet@appsmith.com>
Co-authored-by: Abhijeet <41686026+abhvsn@users.noreply.github.com>
Co-authored-by: Anagh Hegde <anagh@appsmith.com>
Co-authored-by: f0c1s <anubhav@appsmith.com>
Added a new API that'll return a list of plugins which are available to install. In other words, it'll return list of default/system plugins. This returns the package name, name and icon only - which will be used by templates to show datasource name and icons.
* fix: content-type is empty when it's not specified.
* feat: try to guess the content type json or form-urlencoded
* fix: broken test for curl with `--data-urlencode` parameter
* fix: fix guessing urlEncodedPattern
* fix: fix broken tests
* fix: Fixed and improved the code formatting
This PR adds API to save a customized theme so that it can be used again for that application. It also adds permission to themes. Each customized theme will have permissions set just like other domain objects.
* fix: if test datasource gets Unauthorized accessing admin database
It will try to access the default database.
* fix: fix broken test
* fix: cleanup unused imports
* test: make test more readable with better comments
* fix: 7794 Google Sheet Fails with Mixed Datatype
* resolved failing test cases after new implementation
* Added code comments to the changes
Co-authored-by: Leo Thomas <leoweb2010@gmail.com>
The GET /application/new API is used to show list of organizations, applications in home page. The list of pages under each application contains only page id. As we're introducing page slugs in URLs, we need the slug of the default page inside the response of this API. This PR adds default page's slug to the response of GET /application/new API.
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* adds apiContentType to actionConfiguration.formData object
* Handling apiContentType property in Rest API formData
* change apiContentType when user types content-type value and switches http method
* makes api editor as similar as possible to postman, project postman.
* Correcting the import in ApiEditorConstants
* Resolved all merge conflicts
* replay DSL functtionality
* removes unneccessary files from worker
* Fixes type declarations, naming e.t.c.
* fix server side merge conflicts
* fix client side merge conflicts
* fix failing cypress tests
Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com>
* This PR removes the Expiry Duration field from the Read file command of S3 plugin.
* An Expiry Duration field got added to Read file command mistakenly some time post migration to UQI schema. This field did not exist with the read command before the migration and does not get used even now.
* Add a new command Delete multiple files. This command will allow users to delete many files at once. Currently, only one file can be deleted at a time. It takes an array of files as config parameter from the user e.g. ["file1", "file2"]
* Add template for the new command.
* Add template for the command Create multiple files
* Fixed issue with Firestore in fetching data while using numbers in the where condition.
* Other Fixes made in the where condition :
When using Boolean
When using Date
When Using Timestamp
When given space in the key
When Space given in the Value
* Delete the pages post merge operation from application if they are removed from file system
* Changes per review
* Add tests
* changes per review
* Use string utils for null check
* Change per review
* Fix tests
* Fix tcs
* Added API to generate deploy keys and store them in a collection for import flow
* Add tests for the key generation flow
* Move the key generation to helper class
* changes per review
* Fix bad merge
* add api to import application
* handle timeout for git import
* Update the comments
* Add API for git import
* handle duplicate application name error & add profiles while importing
* Add tests for import api
* Hydrate from file system after cloning the repo
* Fix test failures
* Test cases
* changes per review
* throw error when the datasource with same name of different type exists
* Fix test failures
* Fis error messages
* Fix test failures
* Fix issue with checking the datasource types
* Add datasource name check while importing the application
* Refactor SSH key gen code for import
* Resolve issues around defaultResourceIds, don't commit app name
* Resolve the issue related to duplicate name for app during import
* Minor fixes
* WIP
* Add logic to get unconfigured datasources for the application
* Fix tests
* WIP
* revert datasource related changes
* Add a boolean flag to Datasource entity
* Add a boolean flag to Datasource entity
* Add flag to identify import status
* Set application name before importing from json files in git-import
* update the variable name
* changes per review
Co-authored-by: Abhijeet <abhijeet@appsmith.com>
* Add logic to sync the repo if the path is not updated in env file
* changes per review
* checkout branch locally when the branch is not present in remote
* Add the local checked out branch to list
When an user signs up, we store the email in lower case. When user logins with oauth2, we fetch user by email ignoring case. This creates a problem if email from oauth is in upper case. As users are registered with lowercase and we're trying to fetch with upper, users are not found.
This PR fetches user by case insensitive emails during oauth login.
* fixes js object cloning issue
* fix10463- JSObject returning new name of cloned object
Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Leo Thomas <leoweb2010@gmail.com>
* Fix clone JSObject issue where cloned JSObject gets attached to both parent and cloned page
* Race condition for delete action when trying to delete page with JSObject
* Set published collection to null during fork application
We've added slug for pages. Each page has a slug which is generated from name automatically. In our get pages API /api/v1/pages/application/<app_id>, the slug names were not included in the Page DTO. This PR adds slug name in this API response.
* Add `getStructure` implementation for S3 to return a list of accessible buckets.
* Add command templates for S3.
- List files
- Read file
- Create file
- Delete file
* Remove getDatasourceMetadata implementation as getStructure method can be directly used now.
* move away from RSA-SHA1 to ECDSA-SHA2 protocol for key generation
* Add migration to regenerate SSH keys via new protocol
* use 256 bit signature for the keys
* remove unused imports
* Fix error message for key generation
* This PR fixes the page load action execution order when the actions have been set to run on page load explicitly via the settings tab by the user and its data has not been referenced in any other widget or action. e.g.
- create action1 and action2.
- make action2 dependent on action1 by adding {{action1.data}} in action2's body.
- set both action1 and action2 to run on page load via settings tab. Do not reference action1 and action2 data in any other widget or action.
* This PR adds a limit field which sets the batchSize for aggregate command. This way the user can set the number of documents they want in their Mongo query result.
* limit is set to 10 initially. However, for pre-existing Mongo actions, migration has been added to set this field to 101 - which is the default value that has been used by Mongodb in the absence of any user set value. Ref: https://docs.mongodb.com/manual/tutorial/iterate-a-cursor/
* Added Mono sink calls for git and import application APIs
* TC for import-export
* Update TCs for gitService
* Added git commit and create branch test
* Test added for midway cancellation flow
* Added API to generate deploy keys and store them in a collection for import flow
* Add tests for the key generation flow
* Move the key generation to helper class
* changes per review
* changes per review
* Error handling for git limit
* clear cahe of git limit on connect api
* update per review
* check the repo is public before checking for the limit
* changes per review
* check if the repo is public or private during connect flow
* fix issues with sync branches
* Add sucess error handler
* changes per review
* add missing return statement
* remove unused import statements
* fix:9648 Mongo update All issue-In Progress
* fix: Mongo Multi update query fail fixes
* Added updated testcases that got affected by the code change
* Changes reverted as per review comments
* add another migration for those Firestore actions that could not be migrated.
* handle ClassCastException via try catch and assigning default empty value.
* Error handling for git limit
* clear cahe of git limit on connect api
* update per review
* check the repo is public before checking for the limit
* changes per review
* check if the repo is public or private during connect flow
- fix Mongo plugin's smart substitution feature to handle quotes around ObjectId in array. e.g. Initial replacement value: ["ObjectId(xyz)"] , final replacement value: [ObjectId(xyz)]
- unrelated: added version number to lombok dependency to stop build failures in IntelliJ.
* feat:9389 Add support to send arbitrary form values to oAuth server during Datasource authentication
* Changes related to Code Review Comments of PR 9650
* Changes implemented to set custom Key Value pairs
* Resolved Code Review comments
* Resolved Code Review comments
We should last updated date of an application in the home page. If an application was updated internally e.g. a new user was added to the application, the updated date was set and it was displayed in the home page. This PR fixes that problem.
* Added check for private repos
* WIP limit repos
* Get the git connected apps from git
* Call CS to get the limit for the git connected apps
* Update comment
* Changes per review
* Add check for limiting the repo
* Cache the results from cloud service
Co-authored-by: Abhijeet <abhijeet@appsmith.com>
* Added appsmith profile as a fallback value
* Modified TC for userData to include git profile TCs
* Added check for null value when user want to use repo level profile and provide empty author name or email
* Refactor method names
* fix/8924-Bulk Insert throwing error on empty data in google sheets new1
* fix/8924 Error in bulk insert empty data
* fix/8924 Code review fix for Google Sheet Bulk insert error
* fix/8924 Code review fix for Google Sheet Bulk insert error
* Fixed code review comments
* Methodconfig data changes since only empty Mono is being tested
* Port Firestore plugin to UQI schema
* This PR implements a non-functional requirement i.e. from an end user perspective there is no change in the features that the plugin provides. However, the underlying DSL to render and interpret the query interface has been updated.
* It also involves a migration change to port existing Firestore plugin actions to the new UQI schema.
* Server comes up
* Instead of extracting ee, we extract the ce to get the mongo repo to work
* ActionRepo migrated
* ApiTemplateRepo migrated
* Application repo migrated
* Asset Repo migrated
* Collection repo migrated
* Comment repo migrated
* Comment thread repo migrated
* Config repo migrated
* datasource repo migrated
* group repo migrated
* Invite user repo migrated
* layout repo migrated
* New action repo migratd
* .
* Migrated rest of the repos.
* Migrated the repo impl as well between ce and common
* acl package partially migrated
* Authentication migration done!
* Controllers migrated
* AppsmithPermission enum migrated to class and split
* Unnecessary change removed
* Appsmith role enum converted to class
* Revert
* Reverting enum to class conversion after failing at implementing
* All services migrated
* server.solutions package completed
* Fixed solutions failing test cases
* Code compiling! Woohoo!
* refactor api's to include branchName for git
* Check for updating Ids for move action
* Added check for global profile
* Fix bad merge
Co-authored-by: Abhijeet <abhijeet@appsmith.com>
When user duplicates an application, the source application is also being marked as recently accessed application. As a result both the duplicated application and the source application are shown in the beginning of the list of applications.
* fix: PageLoad - action.data implicitly depends on action.actionConfiguration. Added this relationship to dag
* Random walkthrough comments
* Logic does not work!
* Ignore pagination configuration from dynamic binding path list to avoid creating cyclic dependency
* The most complicated test case ever passed! Woohoo!
* Code cleanup
* Incorporated review comments
* fix: Added timestamp in where clause types, modified logic for calculating date times
* fix: Added another field for timestamp, shouldn't fail
* Added test case for older filter method as well
* Added test case for older filter method as well
* Modified types for date and time
Sending the test email was using existing email configuration, this commit fixes this to use the configuration provided by the user on the admin settings UI.
* fix: Added client side execution logic and on page load logic for js
* Revert dev env
* Revert dev env
* Updated tests expectation partly to break PR
* fix: Reverted test breakage for this PR
* Untested trigger framework added
* Entity selector is working!
* Moved to query params instead of request body for the trigger api (since the trigger api is of type GET)
* Adding minor comments
* Added test case for trigger functionality
* Added parsing of where condition to Condition format
* Refactoring the name of functions to denote old style before implementing UQI where clause
* Updated the error message for data type problem for mixed data tyeps
* Generating complex logical expression.
* Working version of filtering happening without refactoring of code
* Added where clause configuration in List files in a bucket command.
Not able to render due to some configuration issue.
* Untested code completion
* To be reverted. Ayush's changes.
* Tested where condition on S3 List
* Made AND the default option for where clause
* where clause working in case of no valid inputs provided.
* Added parallel test cases as that were existing for the old where clause
* Revert "To be reverted. Ayush's changes."
This reverts commit a0f9b72e241f0688b7ef07cea8c3017473423512.
* Making equality the default option in a new where clause for LIST command
* Added test cases incorporating the review comments.
* Updated the options for the where command in S3 plugin. Removed the comparison operators except equality, non equality and belonging (in and not in) operators.
* Added catching of exception while parsing the operator into known appsmith condition types
* Reusing objectmapper from BasePlugin instead of creating a new one here.
* Add API to checkout remote branch
* Create a new application on fetch
* Create a new application on checking out remote branch
* Add tests
* Change per review comments
* Changes per review comments
* Migrations for updating dynamic trigger paths for list widget in the existing pages to remove incorrect trigger paths.
* Removed an unnecessary line
* Review comment
* If widgetType is null, then this would ensure that NPE is not thrown.
* Remove Region field from S3 datasource editor page for AWS S3, Upcloud, Digital Ocean Spaces, Dream Objects, Wasabi.
* Use SDK provided property for AWS S3 to delegate region selection to the SDK.
* Extract region info from endpoint URL for Upcloud, Digital Ocean Spaces, Dream Objects and Wasabi, since the SDK property does not work for these service providers.
* Removed some redundant checks from datasourceCreate that were already part of validateDatasource
* Fix show clause in list.json
Generates and stores a slug from application name and page names when they are created or updated. Also adds a migration to set slug to existing applications and pages.
When a page is deleted, the comment threads in that page should also be deleted and should not appear to user.
The Edit mode comments should not be visible to app viewers.
* WIP
* Add relevant error messages for push action
* fix tests
* changes per review comments
* Add error message for the file system related error
* Fix test failures
* Fix test failures
When deciding whether to redirect to default application or the redirect url provided during signup, it'll compare with url path now. Earlier it was considering any query params added to the redirect url.
* core workflows of git - branch, clone, commit, pull, merge, status, log
* Rehydrate file system before merge operation
* Add logic to handle merge conflict for merge and pull flow
* Add defaultBranch to listBranch API
* Add Unit tests for git commands
* Upgrade JGit dependencies to fix the security issue
* Git command tests
* Revert unwanted changes and update delete application flow
* Disable git feature until the FE changes are merged
Co-authored-by: Abhijeet <ABHI.NAGARNAIK@GMAIL.COM>
* Recently a change was introduced to modify the default value of s3 plugin's permanent URL toggle from NO to YES. This created an issue with the older actions where the toggle didn't exist and hence no value was saved against its property. Hence, since the default is now ON and the older actions don't have any value saved, the action editor shows the toggle value as ON but behaves like the value is OFF. To fix this issue, this method adds URL toggle as NO where no toggle value exists.
Solves for two things:
1. From the welcome page signup, depending on telemetry being enabled or disabled, we report.
2. When telemetry is changed from welcome page (which, it obviously will), we make the change persistent by writing to the env file.
* Update asset urls
* fix: use successImageUrl for CRUD success popup
* Increase delay to switch between GIF and image
* Use ASSETS_CDN_URL instead of S3_BUCKET_URL
Co-authored-by: Rishabh-Rathod <rishabh.rathod@appsmith.com>
* Prepared Statements doesn't set value if the data type is not supported in H2. Defaulting to String for unsupported types.
* Incorporated review comment
* Delete CRUD-DB-Table-Template-Application.json
* Updated Template
* Update TC to replace selectedRow with triggeredRow as per the updated template
Co-authored-by: Abhijeet <ABHI.NAGARNAIK@GMAIL.COM>
* -set user photo id when adding a new comment thread
* -update user data when users remove their profile photo
* -updated photo id in comments when user changes or set a profile photo
* -remove photoid from thread, kept it in comment only
* -resized uploaded profile image
* -added test for delete profile photo
* -add test for the comment set user photo
* -check user change event handler is called in delete user photo
* -add test for checking user photo change event is triggered after upload photo
* -fixed tests due to changes
* -make profile pictures thumbnail only
* - used get photo by asset id API to show user photo in comment card
- set cache control header in get asset by id API
* - stop using email address to show user photo
* Adding handling for columns with multiple words in name
* Maintaining the order of columns by using LinkedHashMap instead of Map
* Incorporating review comments
* Migrating the test from Set to List to assert the order of the columns as well in the response
The env config API currently only changes values that are already defined in the env file. It is not capable of adding anything to the file.
This commit adds the capability to do so. However, since we don't want to let the client add just any variable, we've switched from a black list to a white list of env variables that can be managed by this API. If the requested variable is present in the whitelist, we add it, if its missing in the env file.
This commit adds the following API:
`/api/v1/admin/env` — Responds with the names and values of all environment variables currently configured, that are allowed for configuration from the UI. Some variables will be missing from this, ones that are not allowed to be edited from the configuration UI.
Doesn't take any query params. Only usable by the superuser.
Also added a `isSuperUser` boolean field to the response of `api/v1/users/me`, that will indicate whether the current user is a superuser or not.