Commit Graph

42 Commits

Author SHA1 Message Date
ChandanBalajiBP
e5cdfbe445
feat: AST based entity refactor (#17434)
* task: AST based entity refactor

* implemented refactor logic

* jest cases with string manipulation using AST logic

* comments and indentation

* added evalVersion to request
2022-10-18 12:07:06 +05:30
Nidhi
74c3dbbc1a
fix: Modified on page load actions calculation using AST (#17074)
* Changes to on page load logic and consumption for update layout

* Slight clean up, tests and stuff

* - Added evaluationVersion logic based on application configuration
- Added configuration for slim and fat container rts availability
- Added backup logic of string comparison for slim containers
- Added tests for both paths

* Changes to on page load logic and consumption for update layout

* Slight clean up, tests and stuff

* Cleaned up comments all over

* Why isn't there even a setting to disable auto re-formats

* update rts logic to use updated shared AST logic

* Make changes to naming conventions

* Some temp stuff to check if update layout API changes will work out

* Added health check endpoint in RTS

* Added types for AST request

* update: type for save page request object

* update: return type for getEditorConfigs func

- Added applicationId to the type.
- Fetching from the redux store -> applications -> currentApplication -> id

* update: url generation func for update page API

- added applicationId as query param for the call

* Fixed test failures

* Fixed merge from release with on page load failure messages

* Fixed tests failing after merge

* Review comments, more tests, and fix for array index ref directly after .data path

* Test fix

* Addressed review comments

* Updated comment

* Fixed rts temporarily, added handling for data as function name, left with tests

* fix: failing rts server

* Tests for all types of actions and references

* Changes to test

* Modified type to set

* Test fixes

* Trying to make a test pass

* Added app id in cypress test update dsl

* Added app id in cypress test update dsl

* Added app id in cypress test update dsl

* Removed dep tree temp file

* Resolving compile issues after merging from release

* updated tests for applicationId

* corrected a typo

* fixed some more tests

* updated test

* Updated test

* DSL load AppId fix

* appId removal

* AgHelper LocalStorageCache()

* AgHelper LocalStorageCache() - commit 2

* AgHelper LocalStorageCache() - commit 3

* AgHelper LocalStorageCache() - commit 4

* AllWidgets_Reset_spec - Dsl fix

* Json_spec fix

* S3_2 spec fix

* fixes

* LocalStorageCache fixes

* fixes

* fixes

* fix

* OnLoadActions spec fix

* Promises spec fix

* S3_2 spec fix

* 16702 spec update

* OnLoadActions spec trial fix

* RTS fix

Co-authored-by: Nidhi Nair <cataclysm@Nidhis-MacBook-Pro.local>
Co-authored-by: Ayangade Adeoluwa <adeoluayangade@yahoo.com>
Co-authored-by: Ayush Pahwa <ayush@appsmith.com>
Co-authored-by: Aman Agarwal <aman@appsmith.com>
Co-authored-by: Apple <nandan@thinkify.io>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-10-11 11:02:44 +05:30
Aman Agarwal
7ecb5e1c19
fix: workflow for shared modules testing (#16778)
* fix: workflow for shared modules testing
2022-09-30 18:36:25 +05:30
Aman Agarwal
9b8e684d17
fix: failing rts build due to jest config (#17177)
* fix: failing rts build due to jest config

* fix: changed coverage directory
2022-09-29 16:12:07 +05:30
Ayangade Adeoluwa
610509506e
fix: update rts logic to use updated shared AST logic (#16849)
* update rts logic to use updated shared AST logic

* Make changes to naming conventions

* Add test cases for RTS and rename ast functions

* Add running jest test to RTS workflow

* Install dependencies and then trigger jest tests in workflow

* Close server connection after test ends

* Remove logs

* Improve jest test descriptions
2022-09-28 17:28:18 +00:00
Aman Agarwal
60782d1bce
fix: build error due to fn name change, copy node_modules on mac error (#16874) 2022-09-20 13:57:48 +05:30
Arpit Mohan
7580eb9990
ci: Fixing the RTS build workflow (#16748)
## Description

The problem with the RTS workflow after the induction of AST parsing was that while copying the `node_modules`, Ubuntu doesn't follow the symlink and copy the content. It simply copies the symlink as is. This causes issues for RTS service to start.

## Type of change

- Bug fix (non-breaking change which fixes an issue)

## How Has This Been Tested?

- Personal repository

## Checklist:

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
2022-09-14 14:24:20 +05:30
Ayangade Adeoluwa
b3c4f7c392
feat: AST apis for parsing script and returning identifiers (#16252)
* rts configurations for ast

* update shared dependencies.json for shared ast module

* feat: api for script to identifiers

* fix: typo for identifiers

* feat: api for multiple scripts to get identifiers

* fix: rts config, apis for ast

* fix: removed unnecessary changes for ast modules

* fix: docker image for rts including ast shared module, rts file alias ref

* fix: added comments in build.sh file

Co-authored-by: Aman Agarwal <aman@appsmith.com>
2022-09-12 14:45:47 +05:30
Arpit Mohan
697bdecaa5
ci: Modularizing the Github actions workflow for maintainability (#16505) 2022-09-09 01:08:55 +05:30
Hetu Nandu
16e62fb64f
feat: Fetch Appsmith version when browser tab comes on focus (#16153) 2022-09-01 14:17:29 +05:30
Aman Agarwal
e6a6ceaebc
RTS Docker image build error (#16010) 2022-08-15 15:23:58 +05:30
Aman Agarwal
ba9281cf77
fix: rts version file moved to src (#15963) 2022-08-12 21:10:50 +05:30
Aman Agarwal
3b00508c1e
feat: ast mono repo poc (#15610)
* POC for Shared AST Logic using Yarn Symlinks

* fix: preinstall script for bundling shared packages

* Merge commit

* fix: updated the script to link, unlink the package as shared dep

* fix: updated dependencies

* Add a post-install script and fix yarn.lock file

* Remove commented code

* fix: added verification script, readme, moved scripts to shared

Co-authored-by: Ayangade Adeoluwa <adeoluayangade@yahoo.com>
2022-08-11 20:59:26 +05:30
Aman Agarwal
fb752eaa9e
fix: revamped rts server architecture (#15870)
## Description

RTS node server was being used for Availability feature. Now we will be enhancing the server to utilise client side logic on the server side side like construction of AST, Evaluations logic etc. So, since our codebase was not structured for implementing such use case, so we had to revamp the structure of the codebase.
#### Architecture

- **Routes :** To define different paths to consume apis
- **Controllers :** To capture the routing and formulate the logic to provide response to a particular request
- **Middleware :** action functions that happen to be stitched in between the routes and controllers, or can be used as a part of logic that needs to be injected in between.
- **Constants :** To keep static variables as per the usage without declaring it in other parts of the codebase
- **Sockets :** Any socket apis exists inside this folder to properly structure every socket implementations
- **Utils :** Helper functions which can be used at any stage of the application

Fixes #15645

## Type of change

- New feature (non-breaking change which adds functionality)

## How Has This Been Tested?

> Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce.
> Please also list any relevant details for your test configuration.

- Test A
- Test B

## Checklist:

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes

Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-08-11 15:06:02 +05:30
Arsalan Yaldram
56063ab23d
feat: update dependencies (bot-alerts) (#15124)
* chore(deps): bump async from 2.6.3 to 2.6.4 in /app/client

Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v2.6.3...v2.6.4)

---
updated-dependencies:
- dependency-name: async
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: bump moment from 2.29.3 to 2.29.4 in /app/client

Bumps [moment](https://github.com/moment/moment) from 2.29.3 to 2.29.4.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.3...2.29.4)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* feat: updated rts folder packages

* feat: remove node-sass

* fix: use marked 3.0.8 instead of marked 4

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-15 17:07:56 +05:30
Shrikant Sharat Kandula
7ce8441414
Fix Node version in RTS' Dockerfile (#14223) 2022-06-01 14:32:23 +05:30
Shrikant Sharat Kandula
f3f580a708
NPE when connectionCookie is undefined (#13541) 2022-05-27 17:04:04 +05:30
Arsalan Yaldram
8d55d6f51d
chore: update node version to 16.14.0 (#14127) 2022-05-26 23:39:59 +05:30
Arsalan Yaldram
b28eb3fed8
chore: Update node version to 16.15.0 LTS (#14094) 2022-05-26 16:05:02 +05:30
CommanderRoot
a778a98016
chore: replace deprecated String.prototype.substr() (#11928)
String.prototype.substr() is deprecated (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr) so we replace it with slice() which works similarily but isn't deprecated

Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
2022-04-13 12:30:38 +05:30
dependabot[bot]
c8af22e491
chore: bump follow-redirects from 1.14.7 to 1.14.9 in /app/rts (#12036)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.9.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.9)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-24 15:46:44 +05:30
Shrikant Sharat Kandula
68d8c27a94
Remove CORS allow-star from RTS (#11437) 2022-02-25 10:26:04 +05:30
f0c1s
989086337a
chore: reformat code in rts/ service (#11309) 2022-02-23 15:36:40 +05:30
dependabot[bot]
4b3527e472
chore: bump follow-redirects from 1.14.5 to 1.14.7 in /app/rts (#10370)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.5 to 1.14.7.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.5...v1.14.7)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-15 03:47:34 +05:30
Jen Dunlap
fa4ff18f43
chore: removed string type declaration per JS-0331 (#8428)
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
2021-12-25 01:35:43 +05:30
dependabot[bot]
5fe9df733e
chore: dependency update bump axios from 0.21.1 to 0.21.2 in /app/rts (#9236)
Bumps [axios](https://github.com/axios/axios) from 0.21.1 to 0.21.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.1...v0.21.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-19 13:25:58 +05:30
Nayan
09eff23479
feat: [Feature] Added release version api for clients and RTS (#8324)
Added a new event in RTS when new version is deployed. After receiving this event, client will show a prompt to refresh.
2021-10-29 15:52:21 +06:00
Aanchal
e78ace8bc2
fix: Removed unused variables (#8122)
Fix: Removed unused variables
2021-10-20 18:09:50 +06:00
Anand Jayaram
ad6c015826
Fixed Null comparisons without type-checking (#8293)
Fixed warning for Null comparisons without type-checking operators may not work as intended JS-0059 as found by https://deepsource.io/gh/appsmithorg/appsmith/issue/JS-0059/occurrences
2021-10-08 12:07:29 +06:00
Nayan
c43854677f
fix: send list of users to others when someone leaves the page edit (#8162) 2021-10-05 01:27:53 +05:30
Nayan
dbb0cdef85
feat: added event for online page editors (#8130) 2021-10-03 20:36:17 +06:00
Arpit Mohan
c078976616
chore: Minor refactoring changes for RTS (#7011)
* Checking for anonymousUser when performing session check

* Using the custom path /rts instead of the default /socket.io. This makes the endpoint more readable & scalable for future websocket endpoints as well.
2021-09-02 08:47:42 +05:30
Shrikant Sharat Kandula
0458b304e9
Upgrade socket.io-adapter to fix race condition (#6950)
Fix potential race condition error that's killing RTS, when multiple several users leave a room at the same time, which isn't uncommon for our use case.

This is done by upgrading socket.io-adapter dependency to version 2.3.2, which includes fix from PR socketio/socket.io-adapter#74.
2021-08-31 09:21:22 +05:30
Nayan
2f473fbd66
-improved logging in RTS (#6846) 2021-08-25 15:52:58 +06:00
Nayan
cf2ebe585c
[Feature] - Add api for concurrent page editors (#6542)
* -added socket io namespace and events to broadcast start and edit page

* -broadcast mouse pointers from rts
-add a mouse pointer simulator to show the events in action

* -removed sample file
2021-08-18 05:37:01 +00:00
Nayan
5d8b7a961f
Feature: Add API to set and get concurrent app editors (#6292)
* -add an API in RTS to store and retrieve currently online users of an application

* -handled the case when edit app event received before user is authenticated

* -updated authentication API in rts
2021-08-04 12:28:01 +00:00
Nayan
9a247f3e78
Fix bug where some fields are missing for notifications from the API (#5336)
* -set createdAt and type fields in notification
-add threadId in response for comment

* -fixed bug with unread notification count
2021-06-24 14:35:30 +06:00
Shrikant Sharat Kandula
75479448cc Watch notification collection in RTS 2021-05-18 14:51:31 +05:30
Shrikant Sharat Kandula
dcf425af7e
Fix RTS build and push workflow (#4246)
* Update build.sh

* Fix invalid build-arg argument to docker build
2021-04-30 16:37:33 +05:30
Shrikant Sharat Kandula
506dfd7563 Fix typo in RTS 2021-04-30 16:22:16 +05:30
Shrikant Sharat Kandula
0895c68f1f
Send time information in comments and threads even from RTS (#4235)
* Include time information in comments from RTS

* Fix ISO formatting missing Z suffix
2021-04-30 15:32:34 +05:30
Rishabh Saxena
a0d2e8533d
Initialise comments (#3328)
* Initial scaffolding for comments CRUD APIs

* add actions

* add assets

* state management for existing comments and creating new

* add ui components

* add overlay comments wrapper to baseWidget

* add toggle comment mode button at editor header

* trigger tests

* Disallow commenting as someone else

* Add applicationId for comments

* lint

* Add overlay blacklist to prevent component interaction while adding comments

* Comment thread style updates

* Placeholder comment context menu

* Controlled comment thread visibility for making new comments visible by default

* Update comment type description

* Reset input on save

* Resolve comment thread button ui

* fix close on esc key, dont create new comment on outside click

* Submit on enter

* add emoji picker

* Attempt at adding a websocket server in Java

* CRUD APIs for comment threads

* Add API for getting all threads in application

* Move types to a separate file

* Initial commit for real time server (RTS)

* Add script to start RTS

* Fix position property

* Use create comment thread API

* Use add comment to thread API

* Add custom cursor

* Dispatch logout init on 401 errors

* Allow CORS for real time connection

* Add more logs to RTS

* Fix construction of MongoClient

* WIP: Real time comments

* Enable comments

* Minor updates

* Read backend API base URL from environment

* Escape to reset comments mode

* Set popover position as auto and boundary as scroll parent

* Disable warning

* Added permissions for comment threads

* Add resolved API for comment threads

* Migration to set commenting permission on existing apps

* Fix updates bringing the RTS down

* Show view latest button, scroll to bottom on creating a new comment

* Cleanup comment reducer

* Move to typescript for RTS

* Add missing server.ts and tsconfig files

* Resolve / unresolve comment

* Scaffold app comments

* Minor fixes: comment on top of all widgets, add toggle button at viewer header

* Reconnect socket on creating a new app, set connected status in store

* Retry socket connection flow

* Integration tests for comments with api mocks using msw

* Fix circular depependency

* rm file

* Minor cleanup and comments

* Minor refactors: move isScrolledToBottom to common hooks, decouple prevent interactions overlay from comments wrapper

* Use policies when pushing updates in RTS

* ENV var to set if comments are enabled

* Fix: check if editor/viewer is initialised before waiting for init action

* Add tests for comments reducer

* Revert "ENV var to set if comments are enabled"

This reverts commit 988efeaa69d378d943a387e1e73510334958adc5.

* Enable comments for users with appsmith email

* lint

* fix

* Try running a socket.io server inside backend

* Update comment reducer tests

* Init mentions within comments

* Fix comment thread updates with email rooms

* Minor fixes

* Refactors / review suggestions

* lint

* increase cache limit for builds

* Comment out tests for feature that's under development

* Add Dockerfile for RTS

* Fix policies missing for first comment in threads

* Use draftJS for comments input with mentions support

* fix fixtures

* Use thread's policies when querying for threads

* Update socket.io to v4

* Add support for richer body with mentions

* Update comment body type to RawDraftContentState

* fix stale method

* Fix mentions search

* Minor cleanups

* Comment context menu and thread UI updates

* revert: Scaffold app comments

* Yarn dependencies

* Delete comment using id api added

* Init app comments

* Add test for creating thread

* Api for delete comment with id

* Test comment creation response and policies

* Copy comment links

* Fix reset editor state

* Delete valid comment testcase added

* Delete comment TC : code refactor

* Don't allow creating comments with an empty body

* Pin comments WIP[]

* Ignore dependency-reduced-pom.xml files from VCS

* Cleanup of some dev-only files, for review

* Delete comment

* Update socket.io to v4 in RTS

* Pin and resolve comment thread object added in commentThread

* Pin and resolve comment thread object added in commentThread

* Update comment thread API

* Added creationTime and updationTime in comment thread response

* Added creationTime and updationTime in comment thread response

* Added human readable id to comment threads, fallback to username for null name in user document

* Refactor

* lint

* fix test, rm duplicate selector

* comment out saga used for dev

* CommentThread viewed status, username fallback for getName=null, username field added in pin & resolve status

* lint

* trigger tests

Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
Co-authored-by: Abhijeet <abhi.nagarnaik@gmail.com>
2021-04-29 16:03:51 +05:30