* Add analytics data point on action execution
* Include application details in action exec data point
* Only send action execution event on cloud
* Analytics is auto-disabled on self-hosted setups
* Move event name to AnalyticsEvents enum
* Move analytics Mono to separate method
* Use a common function to enqueue analytics message
* Provide analytics properties from caller method
* Use consistent casing in event names for analytics
WSL has issues when handling IPv6 ips. In order to resolve this, on dev machines, we now check if it's a WSL environment. If yes, we default to using IPv4 instead of IPv6.
* Proof of concept code which calculates the on load page actions.
* Refactored the field names introduced in Layout. Added a new field to keep a track of direct action names used in dynamic bindings in the DSL.
* Untested compute on on page load actions completed.
* Working page load actions computation.
TODO : Update the tests for correctness.
* Added fix for BFS starting from root nodes instead of arbitrary nodes.
Fixed a test case to assert for correct page load actions.
* Fixed the bug where the ids of the actions were not getting set in the layout. Also asserting the same in the test case for catching the future breaks.
* Minor refactor of function name to clear its purpose without reading the code.
* Incorporated review comments.
* Added conditional checks for unpublished action deleted and circular dependency of actions depending on each other.
This is needed for remembering when a user has viewed
release notes. Snapshot versions aren't a tagged marker
on the version timeline so aren't useful for this purpose.
* In case cs service returns an error, stop processing release notes and resume with the caller flow.
* In case the server was unable to exchange messages with the CS server, bail out of further processing gracefully since this is not a must have but rather a good to have feature.
* Include version information in backend builds
* Enable manual trigger of server workflow
* Add a dummy input field for manual trigger
* Fix secret checking in github actions
* Disable cron scheduling of sync job
* Build docker image on pushing a version tag
* Fix duplicated id and invalid id in release workflow
* Don't try to login to Docker
* Avoid download progress outputs from Maven
* Add version information for building client
* Calculate version number only once
* Enable push to DockerHub after building images
* Use Docker username from GitHub secrets
* Fix Docker username in tags when building image
* Use different secret for org name
* Minor refactoring in server workflow
* Update client build workflow to use version
* Enable manual triggering of client workflow
* Set snapshot version for server builds
* Push to docker for all branches (temp)
* Undo temp change to push all branches to DockerHub
* Use Docker org from secrets in client.yml
* Fix missing version reference in client.yml
* Remove debug command in dockerfile
* Save release notes in a resource file in Docker image
* Fix query serialization to get release notes
* Get releases of current repo instead of hard-coded repo
* Fix variable quoting for repo variables
* Exclude draft and prerelease nodes from image
* Fix call to any in release notes processor
* Fix syntax error in release notes script
* Implement API to get new release count and info
* Add missing ReleaseNotes component
* Have the release workflow run after a release is created
* Build server after generating release notes
* Change release trigger to "released"
* Change release trigger to "published"
* Change release trigger to released, edited and deleted
* Use JS script to get release notes, take 1
* Filter drafts and prereleases in script
* Fix syntax error in ES6
* Write release notes to file
* Create parent directory before writing release notes
* Log cwd in release notes script
* Log pwd along with release-notes content
* Handle case where working directory is incorrect
* Remove shell based release notes generator
* Don't show error when Sentry config is missing
* Check for sentry auth token to enable Sentry
* Carry build's exit code over to CI
* Mark out build result and add a note about it
* Add a small test to verify new versions computation
* Remove incorrect test assertion
* Remove generation of release notes file
* Connect to cloud services to fetch release notes data
* Fix missing runner for test class
* Handle missing cloud_services base URL
* Fix test failures due to missing mocks
* Enable sync-ee cron job
* Revert build.sh as there's no real change
* Add API to update release notes viewed version for users
* Fix prettier line-length errors
* Create UserData model for info unrelated to auth
* Fix field name calls
* Ensure we have a userId before setting userData
* Add tests for setting version number in UserData
* Include instanceId when fetching release notes
* Disable signup API via environment variable
* Allow signup for invited users, even if disabled publicly
* Add test for signup when signup is disabled
* Run invite flow tests when signup is disabled
* Revert status annotation in signup API endpoint
* Remove unused tests on invite flow
* Change signup disabled error message
* Fixed unreferenced actions not being triggered for execute on load
* WIP : Have to commit some minor cosmetic code formatting changes
* Comments and fix for action ordering
* modified test case
Co-authored-by: Trisha Anand <trisha@appsmith.com>
* Increased logs to debug future connection leaks.
* Fetch a connection from the pool only if a query exists.
* Minor comment added.
* Minor rewrite
* Code formatting.
* Update app/server/appsmith-plugins/postgresPlugin/src/main/java/com/external/plugins/PostgresPlugin.java
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
* Added hikari cp pool stats to get database structure function as well.
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
* Increased logs to debug future connection leaks.
* Fetch a connection from the pool only if a query exists.
* Minor comment added.
* Minor rewrite
* Code formatting.
* Update app/server/appsmith-plugins/postgresPlugin/src/main/java/com/external/plugins/PostgresPlugin.java
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
* Added hikari cp pool stats to get database structure function as well.
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
1. Get rid of cypress test failures which asserts a certain order till the cypress test case is fixed and unblocks the frontend team.
2. Uses a bulk API to fetch all the pages instead of fetching each page sequentially over different network calls with the database.
* Zipping flux with mono leads to mono not getting repeated and only the first emitted value of flux is processed further. This is leading to only a single page getting emitted in a multi page application.
* Added a test case to assert this for a multi page application
1. Test that when a query is attempted to run on mongodb server but refused because of lack of authorization, then
also, it indicates a successful connection establishment.
* All newly created applications now have a default published state.
* Added a test case to assert a new application comes up with default published states for both application and the default page.
* Function name changed.
* When trying to fetch a published version of a page when the page has not been published, throw a 404.
* WIP : Not working
1. Check if mysql plugin connection is stale. If so, then return stale connection exception which triggers a retry after
establishing a new connection.
2. Refactor execute method code to remove code duplication.
3. Add a new test case to check if stale connection gets detected.
1. Encode request body in REST API plugin when content header for URL encode is set.
2. Add a test case to test the encoding function.
3. Add a test case to check non-encoding (raw) function.
1. Add R2BC driver and remove JDBC driver usage in mysql plugin to make the plugin reactive.
2. Update dependencies in POM file.
3. Update mysql plugin to return result based on the type of sql query i.e select vs other queries. In case the queries are chained, then the last query is used for deciding the type.
4. Added a new TC for testing datasource and removed a non functional TC.
* Adding the skeleton for Firestore integration
* Adding the datasource & query editor forms
Also adding the database changelog for the firestore plugin
Commenting out the firestore.close() connection because that causes issues with multiple Firestore tenants running in the same JVM.
* Adding the code for fetching the structure of collections from Firestore
* Use single document path field for Firestore
* Fix potential NPE when datasource destroy timeouts
* Work in progress on collection level ops for Firestore
* Get documents in a collection now works
* Add collection level querying support
* Mild refactoring
* Fix NPE when some fields are missing
* Hide clientJSON as a password field for Firestore
* Make collection level querying reactive
* Make reactive
* Validate before connecting
* Add tests for all supported methods in Firestore
* Fix forms for Firestore with hidden fields
* Hide limit and order by fields when not needed
* Restore log entry deleted by mistake
* Use S3 URL for Firestore/Firebase logo
* Add comments detailing why some code is commented
* Make parsing JSON reactive and fix subscribe calls
* Fix reactive scheduler
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
* Making postgres plugin blocking statements run on elastic threadpool.
* Moved the blocking calls to check for the connection validity, etc. also inside the Mono.fromCallable
Instead of using compound index, using single indices to ensure that both fetch actions by app id (during load of actions in edit/view mode) and fetch actions by page id (during update layout) are indexed queries.
* Doing a deep copy during clone application instead of updating the original application which may have been causing a concurrency bug.
* Ensuring that once the clone application flow is triggered, the flow completes eventually even if the client cancels the request before completion.
* Cloned application would not be public.
* Added parametrized Application constructor
* Removed lombok all args constructor
* Optimized import
* Incorporated review comments :
1. Updated the constructor for creating the application
2. Added a test case to assert that if during cloning of an application the flow gets cancelled, the cloning would still complete and ensure that the application created is sane.
Also adding the APPSMITH_SEGMENT_CE_KEY as a build arg to the server Dockerfile. This will be used to set the environment variable in the Docker image itself.
1. Fix mongodb datasource cypress test failure.
2. Against certain mongodb instances, we expect to receive an exception of type "unauthorized" when testing datasource. Earlier, this case was caught and whitelisted until the recent change to replace mongodb infra with reactive mongodb infra.
Add support for reactive streams with mongodb. (fixes 1480)
1. Replace mongodb driver with reactive mongodb driver. Change APIs accordingly.
2. Use webflux + reactor framework to execute mongodb queries in event loop model.
3. Add test to test MongoPluginExecutor class' method "testDatasource".
* Experimenting with spring metrics, prometheus
* Added prometheus config in application.properties.
* Added a few more configurations for spring metrics to improve performance tooling.
* Added basic authentication to allow prometheus to scrape our monitoring data in an authenticated fashion.
* Only exposing prometheus end point at this junction instead of other metric endpoints as well.
* Fixed test case which failed because of actuator instantiating bean.
* Report selective errors to rollbar.
1. Assign an action attribute to each AppsmithError enum item. Take action based on the action attribute.
* Fixing the condition for organization name being empty
* Report selective errors to rollbar.
1. Assign an action attribute to each AppsmithError enum item. Take action based on the action attribute.
Co-authored-by: Sumit Kumar <sumitsum@Sumits-MacBook-Pro.local>
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
* Fixed timeout error message, added new type of error for plugin timeouts
* Switched error code and added test for a secondary StaleConnectionException
* [Do Not Merge]Brought down cloud migration time from 122 minutes to 9.5 minutes
* Removed commented code.
TODO : Figure out if we want to change the migration order numbers once the release environment is reverted back to pre original migration data.
* Added plugin id for the migrated action.
* Renamed the createIndex functions for new action and new page and added a drop collection command before creating the index. This ensures that if any developer has pulled code in the last two days, this migration does not negatively impact them
* Adding host:port validation checks to ES plugin & Redis plugin
Also correcting the assertions in the RedisPluginTest so that the error message on test failure is accurate.
* Removing the endpoint validation from datasourceServiceImpl
Moving the endpoint validation to the plugin implementation classes because there are databases that require complete HTTP URL in their configuration. Checking for http/https at the platform level affects the UX for the user & plugin developer when using a new integration. Hence, all plugins must implement their own client/server validations in their own implementations
* Adding tests to assert hostname validation in mysql & postgres plugins
* Bug Fix : Reading the datasource configuration incorrectly from actionDTO instead of datasource object.
* Added test case to assert that datasource configuration and action configurations are not null when action execute is called.