Commit Graph

34 Commits

Author SHA1 Message Date
Nayan
95b5e8ce9e
chore: Removed comment related codes from RTS (#20639)
As part of the removing comment related codes, this PR removes the unused codes from RTS.
2023-02-17 23:29:26 +06:00
Sumesh Pradhan
a846bd4952
fix: renamed rts port env to APPSMITH_RTS_PORT (#20121)
Issue: Nginx and RTS used the same env PORT for binding it's service,
while the backend server had the rts port hardcoded on its rts uri.
- Renamed env PORT to APPSMITH_RTS_PORT for starting the rts server.
- Updated nginx config templates to use env `APPSMITH_RTS_PORT`
- Added appsmith.rts.port property in server to use env
APPSMITH_RTS_PORT
- Updated CommonConfig.java rtsBaseDomain to use appsmith.rts.port

---------

Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2023-02-15 07:06:02 +05:30
subratadeypappu
0ae19d6d32
fix: Unblocking CI - Unexpected cyclic dependency error and Lint spec fixes (#20260)
## Description
This PR fixes the false cyclic dependency error Cypress tests and the
basic Lint error Cypress tests.

> Add a TL;DR when description is extra long (helps content team)

Fixes # (issue)
> if no issue exists, please create an issue and ask the maintainers
about this first


Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video


## Type of change

> Please delete options that are not relevant.

- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update


## 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.
> Delete anything that is not important

- Manual
- Jest
- Cypress

### Test Plan
> Add Testsmith test cases links that relate to this PR

### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)


## Checklist:
### Dev activity
- [ ] 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
- [ ] PR is being merged under a feature flag


### QA activity:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test

---------

Co-authored-by: ChandanBalajiBP <104058110+ChandanBalajiBP@users.noreply.github.com>
2023-01-31 20:33:10 +06:00
Nidhi
5329010415
fix: Refactor entities based on AST parsing logic (#18517)
* feat: Refactor entities based on AST parsing logic

* Deleted jmh file

* rts updates for the edge cases

* adding jest test cases

* update review comments

* Fixed issue with references outside of bindings and some other stuff

* Added tests for DSLUtils

* bug fix 18699

* Test fixes

* Test fixes

* Review comments

* Changed type to boxed

Co-authored-by: ChandanBalajiBP <chandan@appsmith.com>
Co-authored-by: ChandanBalajiBP <104058110+ChandanBalajiBP@users.noreply.github.com>
2022-12-12 08:12:21 +03:00
subratadeypappu
993eae833e
fix: JS Objects save failures due to AST changes (#18018) 2022-11-16 05:40:29 +05:30
ChandanBalajiBP
5e909eddef
fix: Add performance metric for requests in RTS (#17923)
fix: Add pref metric in RTS
2022-10-28 10:41:18 +05:30
Nidhi
204a187bc2
fix: Refactor entities with specific rules (#17523)
* Refactor changes for DSL

* Spaces

* Action and collection refactor logic

* Changes to some logic for DSL

* Fixed tests, added dynamic trigger path list logic as well

* Added test for dynamicTriggerList condition

* added analytics data to response in ast

* Fix for peer closed connection on AST

* Added comments for clarity

* Added logs for time taken by AST call

* handle export default and update success param accordingly

* updates for review comments

Co-authored-by: ChandanBalajiBP <chandan@appsmith.com>
2022-10-26 20:23:06 +05:30
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
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
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
Hetu Nandu
16e62fb64f
feat: Fetch Appsmith version when browser tab comes on focus (#16153) 2022-09-01 14:17:29 +05:30
Aman Agarwal
ba9281cf77
fix: rts version file moved to src (#15963) 2022-08-12 21:10:50 +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
Shrikant Sharat Kandula
f3f580a708
NPE when connectionCookie is undefined (#13541) 2022-05-27 17:04:04 +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
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
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
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
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
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