diff --git a/.github/config.json b/.github/config.json
index b3d24e5865..6b795c548b 100644
--- a/.github/config.json
+++ b/.github/config.json
@@ -1 +1 @@
-{"runners":[{"versioning":{"source":"milestones","type":"SemVer"},"prereleaseName":"alpha","issue":{"labels":{"Widget design system":{"conditions":[{"label":"App Theming","type":"hasLabel","value":true},{"label":"Widget Styling","type":"hasLabel","value":true},{"label":"Checkbox Group widget","type":"hasLabel","value":true},{"label":"Checkbox Widget","type":"hasLabel","value":true},{"label":"Checkbox Component","type":"hasLabel","value":true},{"label":"WDS team","type":"hasLabel","value":true}],"requires":1},"Performance Pod":{"conditions":[{"label":"Performance","type":"hasLabel","value":true},{"label":"Performance infra","type":"hasLabel","value":true}],"requires":1},"Billing & Usage Pod":{"conditions":[{"label":"CE Instance","type":"hasLabel","value":true},{"label":"Customer Portal","type":"hasLabel","value":true},{"label":"Cloud Services","type":"hasLabel","value":true},{"label":"Billing Integrations","type":"hasLabel","value":true},{"label":"Billing","type":"hasLabel","value":true},{"label":"Self Serve","type":"hasLabel","value":true},{"label":"Enterprise Billing","type":"hasLabel","value":true},{"label":"In-app ramps","type":"hasLabel","value":true},{"label":"Analytics Improvements","type":"hasLabel","value":true},{"label":"Self Serve 1.0","type":"hasLabel","value":true},{"label":"License","type":"hasLabel","value":true},{"label":"1-click upgrade","type":"hasLabel","value":true},{"label":"Appsmith Business Cloud","type":"hasLabel","value":true},{"label":"BE instance","type":"hasLabel","value":true},{"label":"Feature Flagging","type":"hasLabel","value":true}],"requires":1},"Mobile Pod":{"conditions":[],"requires":1},"Git Pod":{"conditions":[{"label":"Git Version Control","type":"hasLabel","value":true},{"label":"Import-Export-App","type":"hasLabel","value":true}],"requires":1},"Integrations Pod":{"conditions":[{"label":"New Datasource","type":"hasLabel","value":true},{"label":"Firestore","type":"hasLabel","value":true},{"label":"Google Sheets","type":"hasLabel","value":true},{"label":"Mongo","type":"hasLabel","value":true},{"label":"Redshift","type":"hasLabel","value":true},{"label":"snowflake","type":"hasLabel","value":true},{"label":"S3","type":"hasLabel","value":true},{"label":"Redis","type":"hasLabel","value":true},{"label":"Postgres","type":"hasLabel","value":true},{"label":"GraphQL Plugin","type":"hasLabel","value":true},{"label":"ArangoDB","type":"hasLabel","value":true},{"label":"MsSQL","type":"hasLabel","value":true},{"label":"REST API plugin","type":"hasLabel","value":true},{"label":"Elastic Search","type":"hasLabel","value":true},{"label":"OAuth","type":"hasLabel","value":true},{"label":"Airtable","type":"hasLabel","value":true},{"label":"CURL","type":"hasLabel","value":true},{"label":"DynamoDB","type":"hasLabel","value":true},{"label":"Zendesk","type":"hasLabel","value":true},{"label":"Hubspot","type":"hasLabel","value":true},{"label":"Query Forms","type":"hasLabel","value":true},{"label":"Twilio","type":"hasLabel","value":true},{"label":"MySQL","type":"hasLabel","value":true},{"label":"Connection pool","type":"hasLabel","value":true},{"label":"MariaDB","type":"hasLabel","value":true},{"label":"Integrations Pod General","type":"hasLabel","value":true},{"label":"SMTP plugin","type":"hasLabel","value":true},{"label":"Oracle SQL DB","type":"hasLabel","value":true},{"label":"Query filter","type":"hasLabel","value":true},{"label":"Activation - datasources","type":"hasLabel","value":true}],"requires":1},"Data Platform Pod":{"conditions":[{"label":"Datasource Environments","type":"hasLabel","value":true},{"label":"Datatype issue","type":"hasLabel","value":true},{"label":"Entity Refactor","type":"hasLabel","value":true},{"label":"Core Query Execution","type":"hasLabel","value":true},{"label":"Query Management","type":"hasLabel","value":true},{"label":"Query Settings","type":"hasLabel","value":true},{"label":"SmartSubstitution","type":"hasLabel","value":true},{"label":"Query Generation","type":"hasLabel","value":true},{"label":"Query performance","type":"hasLabel","value":true},{"label":"Suggested Widgets","type":"hasLabel","value":true},{"label":"Page load executions","type":"hasLabel","value":true},{"label":"DSL Update","type":"hasLabel","value":true},{"label":"AST-backend","type":"hasLabel","value":true},{"label":"Deploy App","type":"hasLabel","value":true},{"label":"File upload issues","type":"hasLabel","value":true},{"label":"Datasources","type":"hasLabel","value":true},{"label":"DocumentDB","type":"hasLabel","value":true},{"label":"Multiple Environments","type":"hasLabel","value":true},{"label":"Platformization","type":"hasLabel","value":true},{"label":"Custom environments","type":"hasLabel","value":true},{"label":"Schema","type":"hasLabel","value":true}],"requires":1},"Design System Pod":{"conditions":[{"label":"Design System Pod","type":"hasLabel","value":true},{"label":"ADS Component Issue","type":"hasLabel","value":true},{"label":"Keyboard accessibility ","type":"hasLabel","value":true},{"label":"Toggle button","type":"hasLabel","value":true},{"label":"ADS Category Token","type":"hasLabel","value":true},{"label":"ADS Component Documentation","type":"hasLabel","value":true},{"label":"ADS Migration","type":"hasLabel","value":true},{"label":"ADS Deduplication ","type":"hasLabel","value":true},{"label":"ADS Revamp","type":"hasLabel","value":true},{"label":"ADS Deduplication","type":"hasLabel","value":true},{"label":"ADS Unit Test","type":"hasLabel","value":true},{"label":"ADS Components","type":"hasLabel","value":true},{"label":"ADS Grayscale","type":"hasLabel","value":true},{"label":"Design System","type":"hasLabel","value":true},{"label":"ADS Typography","type":"hasLabel","value":true},{"label":"ADS Visual Styles","type":"hasLabel","value":true},{"label":"ADS Component Design","type":"hasLabel","value":true},{"label":"Modal Component","type":"hasLabel","value":true}],"requires":1},"DevOps Pod":{"conditions":[{"label":"Docker","type":"hasLabel","value":true},{"label":"Super Admin","type":"hasLabel","value":true},{"label":"Deployment","type":"hasLabel","value":true},{"label":"K8s","type":"hasLabel","value":true},{"label":"Email Config","type":"hasLabel","value":true},{"label":"Backup & Restore","type":"hasLabel","value":true},{"label":"AWS AMI","type":"hasLabel","value":true},{"label":"Observability","type":"hasLabel","value":true},{"label":"Heroku","type":"hasLabel","value":true},{"label":"New Deployment Mode","type":"hasLabel","value":true}],"requires":1},"Team Managers Pod":{"conditions":[{"label":"Settings","type":"hasLabel","value":true},{"label":"Home Page","type":"hasLabel","value":true},{"label":"Invite users","type":"hasLabel","value":true},{"label":"Realtime Commenting","type":"hasLabel","value":true},{"label":"SSO","type":"hasLabel","value":true},{"label":"Multi User Realtime","type":"hasLabel","value":true},{"label":"RBAC","type":"hasLabel","value":true},{"label":"ABAC","type":"hasLabel","value":true},{"label":"Audit Logs","type":"hasLabel","value":true},{"label":"Multitenancy","type":"hasLabel","value":true},{"label":"Airgap","type":"hasLabel","value":true},{"label":"Enterprise Edition","type":"hasLabel","value":true},{"label":"SCIM","type":"hasLabel","value":true}],"requires":1},"New Developers Pod":{"conditions":[{"label":"Fork App","type":"hasLabel","value":true},{"label":"Omnibar","type":"hasLabel","value":true},{"label":"Onboarding","type":"hasLabel","value":true},{"label":"Telemetry","type":"hasLabel","value":true},{"label":"Entity Explorer","type":"hasLabel","value":true},{"label":"Generate Page","type":"hasLabel","value":true},{"label":"IDE","type":"hasLabel","value":true},{"label":"Sniping Mode","type":"hasLabel","value":true},{"label":"Example Apps","type":"hasLabel","value":true},{"label":"i18n","type":"hasLabel","value":true},{"label":"Welcome Screen","type":"hasLabel","value":true},{"label":"IDE Navigation","type":"hasLabel","value":true},{"label":"Login / Signup","type":"hasLabel","value":true},{"label":"Clean URLs","type":"hasLabel","value":true},{"label":"Embedding Apps","type":"hasLabel","value":true},{"label":"In App Comms","type":"hasLabel","value":true},{"label":"In App Comms","type":"hasLabel","value":true},{"label":"App setting","type":"hasLabel","value":true}],"requires":1},"BE Coders Pod":{"conditions":[{"label":"SAAS Plugins","type":"hasLabel","value":true},{"label":"SAAS Manager App","type":"hasLabel","value":true},{"label":"Data Platform Pod","type":"hasLabel","value":true},{"label":"Integrations Pod","type":"hasLabel","value":true}],"requires":1},"FE Coders Pod":{"conditions":[{"label":"JS Linting & Errors","type":"hasLabel","value":true},{"label":"Debugger","type":"hasLabel","value":true},{"label":"JS Snippets","type":"hasLabel","value":true},{"label":"Autocomplete","type":"hasLabel","value":true},{"label":"Evaluated Value","type":"hasLabel","value":true},{"label":"Slash Command","type":"hasLabel","value":true},{"label":"New JS Function","type":"hasLabel","value":true},{"label":"JS Promises","type":"hasLabel","value":true},{"label":"JS Usability","type":"hasLabel","value":true},{"label":"Code Refactoring","type":"hasLabel","value":true},{"label":"storeValue","type":"hasLabel","value":true},{"label":"OnPageLoad","type":"hasLabel","value":true},{"label":"Framework Functions","type":"hasLabel","value":true},{"label":"Code Editor","type":"hasLabel","value":true},{"label":"JS Objects","type":"hasLabel","value":true},{"label":"JS Evaluation","type":"hasLabel","value":true},{"label":"AST-frontend","type":"hasLabel","value":true},{"label":"Custom JS Libraries","type":"hasLabel","value":true},{"label":"Action Selector","type":"hasLabel","value":true},{"label":"JS Function execution","type":"hasLabel","value":true},{"label":"Widget setter method","type":"hasLabel","value":true},{"label":"Error Handling","type":"hasLabel","value":true},{"label":"AI","type":"hasLabel","value":true}],"requires":1},"App Viewers Pod":{"conditions":[{"label":"Button Widget","type":"hasLabel","value":true},{"label":"Chart Widget","type":"hasLabel","value":true},{"label":"Container Widget","type":"hasLabel","value":true},{"label":"Date Picker Widget","type":"hasLabel","value":true},{"label":"Select Widget","type":"hasLabel","value":true},{"label":"File Picker Widget","type":"hasLabel","value":true},{"label":"Form Widget","type":"hasLabel","value":true},{"label":"Image Widget","type":"hasLabel","value":true},{"label":"Input Widget","type":"hasLabel","value":true},{"label":"List Widget","type":"hasLabel","value":true},{"label":"MultiSelect Widget","type":"hasLabel","value":true},{"label":"Map Widget","type":"hasLabel","value":true},{"label":"Modal Widget","type":"hasLabel","value":true},{"label":"Radio Widget","type":"hasLabel","value":true},{"label":"Rich Text Editor Widget","type":"hasLabel","value":true},{"label":"Tab Widget","type":"hasLabel","value":true},{"label":"Table Widget","type":"hasLabel","value":true},{"label":"Text Widget","type":"hasLabel","value":true},{"label":"Video Widget","type":"hasLabel","value":true},{"label":"iFrame","type":"hasLabel","value":true},{"label":"Menu Button","type":"hasLabel","value":true},{"label":"Rating","type":"hasLabel","value":true},{"label":"Widget Validation","type":"hasLabel","value":true},{"label":"reallabel","type":"hasLabel","value":true},{"label":"New Widget","type":"hasLabel","value":true},{"label":"Switch widget","type":"hasLabel","value":true},{"label":"Audio Widget","type":"hasLabel","value":true},{"label":"Icon Button Widget","type":"hasLabel","value":true},{"label":"Stat Box Widget","type":"hasLabel","value":true},{"label":"Voice Recorder Widget","type":"hasLabel","value":true},{"label":"Calendar Widget","type":"hasLabel","value":true},{"label":"Menu Button Widget","type":"hasLabel","value":true},{"label":"Divider Widget","type":"hasLabel","value":true},{"label":"Rating Widget","type":"hasLabel","value":true},{"label":"App Navigation","type":"hasLabel","value":true},{"label":"View Mode","type":"hasLabel","value":true},{"label":"Widget Property","type":"hasLabel","value":true},{"label":"Document Viewer Widget","type":"hasLabel","value":true},{"label":"Radio Group Widget","type":"hasLabel","value":true},{"label":"Currency Input Widget","type":"hasLabel","value":true},{"label":"TreeSelect","type":"hasLabel","value":true},{"label":"MultiTree Select Widget","type":"hasLabel","value":true},{"label":"Phone Input Widget","type":"hasLabel","value":true},{"label":"JSON Form","type":"hasLabel","value":true},{"label":"All Widgets","type":"hasLabel","value":true},{"label":"Button Group widget","type":"hasLabel","value":true},{"label":"Progress bar widget","type":"hasLabel","value":true},{"label":"Audio Recorder Widget","type":"hasLabel","value":true},{"label":"Camera Widget","type":"hasLabel","value":true},{"label":"Table Widget V2","type":"hasLabel","value":true},{"label":"Branding","type":"hasLabel","value":true},{"label":"Map Chart Widget","type":"hasLabel","value":true},{"label":"Code Scanner Widget","type":"hasLabel","value":true},{"label":"Widget keyboard accessibility","type":"hasLabel","value":true},{"label":"List Widget V2","type":"hasLabel","value":true},{"label":"Slider Widget","type":"hasLabel","value":true},{"label":"Widget design system","type":"hasLabel","value":true},{"label":"One-click Binding","type":"hasLabel","value":true},{"label":"Old widget version","type":"hasLabel","value":true},{"label":"Widget Discoverability","type":"hasLabel","value":true},{"label":"Custom widgets","type":"hasLabel","value":true}],"requires":1},"UI Builders Pod":{"conditions":[{"label":"Property Pane","type":"hasLabel","value":true},{"label":"Pages","type":"hasLabel","value":true},{"label":"Copy Paste","type":"hasLabel","value":true},{"label":"Drag & Drop","type":"hasLabel","value":true},{"label":"Undo/Redo","type":"hasLabel","value":true},{"label":"Widgets Pane","type":"hasLabel","value":true},{"label":"UI Performance","type":"hasLabel","value":true},{"label":"Widget Grouping","type":"hasLabel","value":true},{"label":"Reflow & Resize","type":"hasLabel","value":true},{"label":"Canvas / Grid","type":"hasLabel","value":true},{"label":"Canvas Zooms","type":"hasLabel","value":true},{"label":"Frontend Libraries Upgrade","type":"hasLabel","value":true},{"label":"Auto Height","type":"hasLabel","value":true},{"label":"Responsive Canvas","type":"hasLabel","value":true},{"label":"Responsive Widget","type":"hasLabel","value":true},{"label":"Responsive Viewport","type":"hasLabel","value":true},{"label":"Conversion Algorithm","type":"hasLabel","value":true},{"label":"Spacing","type":"hasLabel","value":true},{"label":"Browser specific","type":"hasLabel","value":true},{"label":"widget vertical alignment","type":"hasLabel","value":true},{"label":"Auto Layout","type":"hasLabel","value":true},{"label":"Fixed layout","type":"hasLabel","value":true},{"label":"Anvil layout","type":"hasLabel","value":true}],"requires":1},"User Education Pod":{"conditions":[{"label":"Content","type":"hasLabel","value":true},{"label":"Documentation","type":"hasLabel","value":true}],"requires":1},"Templates pod":{"conditions":[{"label":"Templates","type":"hasLabel","value":true},{"label":"Community template","type":"hasLabel","value":true},{"label":"Partial-import-export","type":"hasLabel","value":true}],"requires":1},"Error Handling":{"conditions":[],"requires":1},"Workflows":{"conditions":[],"requires":1},"AI Pod":{"conditions":[],"requires":1}}},"root":"."}],"labels":{"Tab Widget":{"color":"e2c76c","name":"Tab Widget","description":""},"Dont merge":{"color":"ADB39C","name":"Dont merge","description":""},"Epic":{"color":"3E4B9E","name":"Epic","description":"A zenhub epic that describes a project"},"Menu Button Widget":{"color":"235708","name":"Menu Button Widget","description":"Issues related to Menu Button widget"},"Checkbox Group widget":{"color":"88054d","name":"Checkbox Group widget","description":"Issues related to Checkbox Group Widget"},"Input Widget":{"color":"ae65d8","name":"Input Widget","description":""},"Security":{"color":"99139C","name":"Security","description":""},"QA":{"color":"e2ca68","name":"QA","description":""},"Verified":{"color":"9bf416","name":"Verified","description":""},"Wont Fix":{"color":"ffffff","name":"Wont Fix","description":"This will not be worked on"},"MySQL":{"color":"c9ddc6","name":"MySQL","description":"Issues related to MySQL plugin"},"Development":{"color":"9F8A02","name":"Development","description":""},"Help Wanted":{"color":"008672","name":"Help Wanted","description":"Extra attention is needed"},"Home Page":{"color":"9c0c8e","name":"Home Page","description":"Issues related to the application home page"},"Rating Widget":{"color":"235708","name":"Rating Widget","description":"Issues related to the rating widget"},"Stat Box Widget":{"color":"f1c9ce","name":"Stat Box Widget","description":"Issues related to stat box"},"Enhancement":{"color":"a2eeef","name":"Enhancement","description":"New feature or request"},"Settings":{"color":"f7ff60","name":"Settings","description":"organization, team & user settings"},"Fork App":{"color":"5369db","name":"Fork App","description":"Issues related to forking apps"},"Container Widget":{"color":"19AD0D","name":"Container Widget","description":"Container widget"},"Papercut":{"color":"B562F6","name":"Papercut","description":""},"Needs Design":{"color":"bfd4f2","name":"Needs Design","description":"needs design or changes to design"},"i18n":{"color":"1799b0","name":"i18n","description":"Represents issues that need to be tackled to handle internationalization"},"Rich Text Editor Widget":{"color":"f72cac","name":"Rich Text Editor Widget","description":""},"Onboarding":{"color":"d5794b","name":"Onboarding","description":"Issues related to onboarding new developers"},"Pages":{"color":"d7fd80","name":"Pages","description":"Issues related to configuring pages"},"skip-changelog":{"color":"06086F","name":"skip-changelog","description":"Adding this label to a PR prevents it from being listed in the changelog"},"Low":{"color":"79e53b","name":"Low","description":"An issue that is neither critical nor breaks a user flow"},"potential-duplicate":{"color":"d3cb2e","name":"potential-duplicate","description":"This label marks issues that are potential duplicates of already open issues"},"Audio Widget":{"color":"447B9A","name":"Audio Widget","description":"Issues related to Audio Widget"},"Firestore":{"color":"8078b0","name":"Firestore","description":"Issues related to the firestore Integration"},"New Widget":{"color":"be4cf2","name":"New Widget","description":"A request for a new widget"},"Modal Widget":{"color":"03846f","name":"Modal Widget","description":""},"UX Improvement":{"color":"f4a089","name":"UX Improvement","description":""},"S3":{"color":"8078b0","name":"S3","description":"Issues related to the S3 plugin"},"Release Blocker":{"color":"5756bf","name":"Release Blocker","description":"This issue must be resolved before the release"},"safari":{"color":"51C6AA","name":"safari","description":"Bugs seen on safari browser"},"Example Apps":{"color":"1799b0","name":"Example Apps","description":"Example apps created for new signups"},"MultiSelect Widget":{"color":"AB62D4","name":"MultiSelect Widget","description":"Issues related to MultiSelect Widget"},"Widget Styling":{"color":"905420","name":"Widget Styling","description":"all about widget styling"},"Calendar Widget":{"color":"8c6644","name":"Calendar Widget","description":""},"Website":{"color":"151720","name":"Website","description":"Related to www.appsmith.com website"},"Low effort":{"color":"8B59F0","name":"Low effort","description":"Something that'll take a few days to build"},"App Viewers Pod":{"color":"cd8ef9","name":"App Viewers Pod","description":"This label assigns issues to the app viewers pod"},"Checkbox Widget":{"color":"88054d","name":"Checkbox Widget","description":""},"Spam":{"color":"620faf","name":"Spam","description":""},"Voice Recorder Widget":{"color":"85bc87","name":"Voice Recorder Widget","description":""},"Select Widget":{"color":"0c669e","name":"Select Widget","description":"Select or dropdown widget"},"Bug":{"color":"d73a4a","name":"Bug","description":"Something isn't working"},"Widget Validation":{"color":"6990BC","name":"Widget Validation","description":"Issues related to widget property validation"},"Generate Page":{"color":"f14274","name":"Generate Page","description":"Issures related to page generation"},"File Picker Widget":{"color":"6ae4f2","name":"File Picker Widget","description":""},"snowflake":{"color":"8078b0","name":"snowflake","description":"Issues related to the snowflake Integration"},"Automation":{"color":"CCAF60","name":"Automation","description":""},"hotfix":{"color":"BA3F1D","name":"hotfix","description":""},"Team Managers Pod":{"color":"bddb81","name":"Team Managers Pod","description":"Issues that team managers care about for the security and efficiency of their teams"},"Import-Export-App":{"color":"15076d","name":"Import-Export-App","description":"Issues related to importing and exporting apps"},"High effort":{"color":"A7E87B","name":"High effort","description":"Something that'll take more than a month to build"},"Telemetry":{"color":"bc70f9","name":"Telemetry","description":"Issues related to instrumenting appsmith"},"Radio Widget":{"color":"91ef15","name":"Radio Widget","description":""},"Omnibar":{"color":"10b5ce","name":"Omnibar","description":"Issues related to the omnibar for navigation"},"Button Widget":{"color":"34efae","name":"Button Widget","description":""},"Switch widget":{"color":"33A8CE","name":"Switch widget","description":"The switch widget"},"Map Widget":{"color":"7eef7a","name":"Map Widget","description":""},"Task":{"color":"085630","name":"Task","description":"A simple Todo"},"Design System":{"color":"2958a4","name":"Design System","description":"Design system"},"opera":{"color":"C63F5B","name":"opera","description":"Any issues identified on the opera browser"},"Login / Signup":{"color":"771e69","name":"Login / Signup","description":"Authentication flows"},"Image Widget":{"color":"8de8ad","name":"Image Widget","description":""},"firefox":{"color":"6d56e2","name":"firefox","description":""},"Property Pane":{"color":"b356ff","name":"Property Pane","description":"Issues related to the behaviour of the property pane"},"Deployment":{"color":"93491f","name":"Deployment","description":"Installation process of appsmith"},"Critical":{"color":"9b1b28","name":"Critical","description":"This issue needs immediate attention. Drop everything else"},"IDE":{"color":"61b2ee","name":"IDE","description":"Issues related to the IDE"},"Production":{"color":"b60205","name":"Production","description":""},"Dependencies":{"color":"0366d6","name":"Dependencies","description":"Pull requests that update a dependency file"},"Google Sheets":{"color":"8078b0","name":"Google Sheets","description":"Issues related to Google Sheets"},"Icon Button Widget":{"color":"D319CE","name":"Icon Button Widget","description":"Issues related to the icon button widget"},"Mongo":{"color":"8078b0","name":"Mongo","description":"Issues related to Mongo DB plugin"},"Documentation":{"color":"a8dff7","name":"Documentation","description":"Improvements or additions to documentation"},"TestGap":{"color":"f28253","name":"TestGap","description":"Issues identified for test plan improvement"},"keyboard shortcut":{"color":"0688B6","name":"keyboard shortcut","description":""},"Git Version Control":{"color":"858172","name":"Git Version Control","description":"Issues related to version control"},"Reopen":{"color":"897548","name":"Reopen","description":""},"Redshift":{"color":"8078b0","name":"Redshift","description":"Issues related to the redshift integration"},"Date Picker Widget":{"color":"ef1ce1","name":"Date Picker Widget","description":""},"Entity Explorer":{"color":"a2e2f9","name":"Entity Explorer","description":"Issues related to navigation using the entity explorer"},"JS Linting & Errors":{"color":"E56AA5","name":"JS Linting & Errors","description":"Issues related to JS Linting and errors"},"iFrame":{"color":"3CD1DB","name":"iFrame","description":"Issues related to iFrame"},"Stale":{"color":"ededed","name":"Stale","description":null},"Debugger":{"color":"e79062","name":"Debugger","description":"Issues related to the debugger"},"Quick effort":{"color":"95ED65","name":"Quick effort","description":"Something that'll take a few hours to build"},"Text Widget":{"color":"d130d1","name":"Text Widget","description":""},"Video Widget":{"color":"23dd4b","name":"Video Widget","description":""},"Datasources":{"color":"5052f6","name":"Datasources","description":"Issues related to configuring datasource on appsmith"},"error":{"color":"B66773","name":"error","description":"All issues connected to error messages"},"Form Widget":{"color":"09ed77","name":"Form Widget","description":""},"Needs Triaging":{"color":"e8b851","name":"Needs Triaging","description":"Needs attention from maintainers to triage"},"Autocomplete":{"color":"235708","name":"Autocomplete","description":"Issues related to the autocomplete"},"hacktoberfest":{"color":"0052cc","name":"hacktoberfest","description":"All issues that can be solved by the community during Hacktoberfest"},"Medium effort":{"color":"D31156","name":"Medium effort","description":"Something that'll take more than a week but less than a month to build"},"Release":{"color":"57e5e0","name":"Release","description":""},"High":{"color":"c94d14","name":"High","description":"This issue blocks a user from building or impacts a lot of users"},"UI Performance":{"color":"1799b0","name":"UI Performance","description":"Issues related to UI performance"},"UI Builders Pod":{"color":"517fba","name":"UI Builders Pod","description":"Issues that UI Builders face using appsmith"},"Deploy Preview":{"color":"bfdadc","name":"Deploy Preview","description":"Issues found in Deploy Preview"},"Needs Tests":{"color":"8ee263","name":"Needs Tests","description":"Needs automated tests to assert a feature/bug fix"},"Refactor":{"color":"B96662","name":"Refactor","description":"needs refactoring of code"},"Divider Widget":{"color":"235708","name":"Divider Widget","description":"Issues related to the divider widget"},"Table Widget":{"color":"2eead1","name":"Table Widget","description":""},"Needs More Info":{"color":"e54c10","name":"Needs More Info","description":"Needs additional information"},"Good First Issue":{"color":"7057ff","name":"Good First Issue","description":"Good for newcomers"},"UI Improvement":{"color":"9aeef4","name":"UI Improvement","description":""},"Backend":{"color":"d4c5f9","name":"Backend","description":"This marks the issue or pull request to reference server code"},"Frontend":{"color":"87c7f2","name":"Frontend","description":"This label marks the issue or pull request to reference client code"},"In App Comms":{"name":"In App Comms","description":"Issues around communication with appsmith instances","color":"463cca"},"Chart Widget":{"color":"616ecc","name":"Chart Widget","description":""},"List Widget":{"color":"8508A0","name":"List Widget","description":"Issues related to the list widget"},"Duplicate":{"color":"cfd3d7","name":"Duplicate","description":"This issue or pull request already exists"},"JS Snippets":{"color":"8d62d2","name":"JS Snippets","description":"issues related to JS Snippets"},"Copy Paste":{"name":"Copy Paste","description":"Issues related to copy paste","color":"b4f0a9"},"Drag & Drop":{"name":"Drag & Drop","description":"Issues related to the drag & drop experience","color":"92115a"},"BE Coders Pod":{"color":"5d9848","name":"BE Coders Pod","description":"Issues related to users writing code to fetch and update data"},"FE Coders Pod":{"color":"a7effc","name":"FE Coders Pod","description":"Issues related to users writing javascript in appsmith"},"New Developers Pod":{"color":"6310da","name":"New Developers Pod","description":"Issues that new developers face while exploring the IDE"},"Sniping Mode":{"name":"Sniping Mode","description":"Issues related to sniping mode","color":"6310da"},"Redis":{"name":"Redis","description":"Issues related to Redis","color":"8078b0"},"New Datasource":{"color":"60b14c","name":"New Datasource","description":"Requests for new datasources"},"Evaluated Value":{"name":"Evaluated Value","description":"Issues related to evaluated values","color":"39f6e7"},"Undo/Redo":{"name":"Undo/Redo","description":"Issues related to undo/redo","color":"f25880"},"App Navigation":{"name":"App Navigation","description":"Issues related to the topbar navigation and configuring it","color":"12b715"},"Responsive Viewport":{"color":"d12d2e","name":"Responsive Viewport","description":"Issues seen on different viewports like mobile"},"Widgets Pane":{"name":"Widgets Pane","description":"Issues related to the discovery and organisation of widgets","color":"ad5d78"},"Invite users":{"color":"1799b0","name":"Invite users","description":"Invite users flow and any associated actions"},"View Mode":{"color":"1799b0","name":"View Mode","description":"Issues related to the view mode"},"User Education Pod":{"name":"User Education Pod","description":"Issues related to user education","color":"1799b0"},"Content":{"name":"Content","description":"For content related topics i.e blogs, templates, videos","color":"a8dff7"},"Embedding Apps":{"name":"Embedding Apps","description":"Issues related to embedding","color":"26ef4f"},"Slash Command":{"name":"Slash Command","description":"Issues related to the slash command","color":"a0608e"},"Widget Property":{"name":"Widget Property","description":"Issues related to adding / modifying widget properties across widgets","color":"5e92cb"},"Windows":{"name":"Windows","description":"Issues related exclusively to Windows systems","color":"b4cb8a"},"Old App Issues":{"name":"Old App Issues","description":"Issues related to apps old apps a few weeks old and app issues in stale browser session","color":"87ab18"},"Document Viewer Widget":{"name":"Document Viewer Widget","description":"Issues related to Document Viewer Widget","color":"899d4b"},"Radio Group Widget":{"name":"Radio Group Widget","description":"Issues related to radio group widget","color":"b68495"},"Super Admin":{"name":"Super Admin","description":"Issues related to the super admin page","color":"aa95cf"},"Postgres":{"name":"Postgres","description":"Postgres related issues","color":"8078b0"},"REST API plugin":{"name":"REST API plugin","description":"REST API plugin related issues","color":"8078b0"},"New JS Function":{"name":"New JS Function","description":"Issues related to adding a JS Function","color":"8e8aa4"},"Cannot Reproduce Issue":{"color":"93c9cc","name":"Cannot Reproduce Issue","description":"Issues that cannot be reproduced"},"Widget Grouping":{"name":"Widget Grouping","description":"Issues related to Widget Grouping","color":"a49951"},"K8s":{"name":"K8s","description":"Kubernetes related issues","color":"5f318a"},"Docker":{"name":"Docker","description":"Issues related to docker","color":"89b808"},"Camera Widget":{"name":"Camera Widget","description":"Issues and enhancements related to camera widget","color":"e6038e"},"SAAS Plugins":{"name":"SAAS Plugins","description":"Issues related to SAAS Plugins","color":"ef9c9d"},"JS Promises":{"name":"JS Promises","description":"Issues related to promises","color":"d7771f"},"OnPageLoad":{"name":"OnPageLoad","description":"OnPageLoad issues on functions and queries","color":"50559d"},"JS Usability":{"name":"JS Usability","description":"usability issues with JS editor and JS elsewhere","color":"a302b0"},"Currency Input Widget":{"name":"Currency Input Widget","description":"Issues related to currency input widget","color":"b2164f"},"TreeSelect":{"name":"TreeSelect","description":"Issues related to TreeSelect Widget","color":"a1633e"},"MultiTree Select Widget":{"name":"MultiTree Select Widget","description":"Issues related to MultiTree Select Widget","color":"a1633e"},"Welcome Screen":{"name":"Welcome Screen","description":"Issues related to the welcome screen","color":"3897be"},"Realtime Commenting":{"color":"a70b86","name":"Realtime Commenting","description":"In-app communication between teams"},"Phone Input Widget":{"name":"Phone Input Widget","description":"Issues related to the Phone Input widget","color":"a70b86"},"JSON Form":{"name":"JSON Form","description":"Issue / features related to the JSON form wiget","color":"46b209"},"All Widgets":{"name":"All Widgets","description":"Issues related to all widgets","color":"972b36"},"V1":{"name":"V1","description":"V1","color":"67ab2e"},"Reflow & Resize":{"name":"Reflow & Resize","description":"All issues related to reflow and resize experience","color":"748a13"},"App Theming":{"name":"App Theming","description":"Items that are related to the App level theming controls epic","color":"905420"},"SSO":{"name":"SSO","description":"Issues, requests and enhancements around Single sign-on.","color":"bf019b"},"Multi User Realtime":{"name":"Multi User Realtime","description":"Issues related to multiple users using or editing an application","color":"e7b6ce"},"Templates":{"name":"Templates","description":"Issues related to templates","color":"b7e568"},"Ready for design":{"name":"Ready for design","description":"this issue is ready for design: it contains clear problem statements and other required information","color":"ebf442"},"Support":{"name":"Support","description":"Issues created by the A-force team to address user queries","color":"1740f3"},"Button Group widget":{"name":"Button Group widget","description":"Issue and enhancements related to the button group widget","color":"f17025"},"GraphQL Plugin":{"name":"GraphQL Plugin","description":"Issues related to GraphQL plugin","color":"8078b0"},"DevOps Pod":{"name":"DevOps Pod","description":"Issues related to devops","color":"d956c7"},"medium":{"name":"medium","description":"Issues that frustrate users due to poor UX","color":"23dfd9"},"ArangoDB":{"name":"ArangoDB","description":"Issues related to arangoDB","color":"8078b0"},"Code Refactoring":{"name":"Code Refactoring","description":"Issues related to code refactoring","color":"76310e"},"Progress bar widget":{"name":"Progress bar widget","description":"To track issues related to progress bar","color":"2d7abf"},"Audio Recorder Widget":{"name":"Audio Recorder Widget","description":"Issues related to Audio Recorder Widget","color":"9accef"},"Airtable":{"name":"Airtable","description":"Issues for Airtable","color":"60885f"},"RBAC":{"name":"RBAC","description":"Issues, requests and enhancements around RBAC.","color":"9211c3"},"Canvas / Grid":{"name":"Canvas / Grid","description":"Issues related to the canvas","color":"16b092"},"Email Config":{"name":"Email Config","description":"Issues related to configuring the email service","color":"2a21d1"},"CURL":{"name":"CURL","description":"Issues related to CURL impor","color":"60885f"},"Canvas Zooms":{"name":"Canvas Zooms","description":"Issues related to zooming the canvas","color":"e6038e"},"business":{"name":"business","description":"Features that will be a part of our business edition","color":"cd59eb"},"Action Pod":{"name":"Action Pod","description":"","color":"ee2e36"},"AutomationGap1":{"color":"a5e07c","name":"AutomationGap1","description":"Issues that needs automated tests"},"A-Force11":{"name":"A-Force11","description":"Issues raised by A-Force team","color":"d667b6"},"Business Edition":{"name":"Business Edition","description":"Features that will be a part of our business edition","color":"89bb6c"},"storeValue":{"name":"storeValue","description":"Issues related to the store value function","color":"5d3e66"},"Tests":{"name":"Tests","description":"test item","color":"1c6990"},"DynamoDB":{"name":"DynamoDB","description":"Issues that are related to DynamoDB should have this label","color":"60885f"},"Design System Pod":{"name":"Design System Pod","description":"Appsmith design system related issues","color":"706f03"},"ABAC":{"color":"e009a5","name":"ABAC","description":"User permissions and access controls"},"Backup & Restore":{"name":"Backup & Restore","description":"Issues related to backup and restore","color":"86874d"},"Billing":{"name":"Billing","description":"Billing infrastructure and flows for Business Edition and Trial users","color":"d2bc40"},"Datatype issue":{"name":"Datatype issue","description":"Issues that have risen because data types weren't handled","color":"60885f"},"OAuth":{"name":"OAuth","description":"OAuth related bugs or features","color":"60885f"},"Table Widget V2":{"name":"Table Widget V2","description":"Issues related to Table Widget V2","color":"3a7192"},"IDE Navigation":{"name":"IDE Navigation","description":"Issues/feature requests related to IDE navigation, and context switching","color":"bc0cba"},"Query performance":{"name":"Query performance","description":"Issues that have to do with lack in performance of query execution","color":"e4d966"},"SAAS Manager App":{"name":"SAAS Manager App","description":"Issues with the SAAS manager app","color":"d427db"},"Twilio":{"name":"Twilio","description":"Issues related to Twilio integration","color":"23ba8d"},"Hubspot":{"name":"Hubspot","description":"Issues related to Hubspot integration","color":"60885f"},"Zendesk":{"name":"Zendesk","description":"Issues related to Zendesk integration","color":"60885f"},"Entity Refactor":{"name":"Entity Refactor","description":"Issues related to refactor logic","color":"418fa4"},"Branding":{"name":"Branding","description":"All issues under branding and whitelabelling appsmith ecosystem","color":"7aaaf1"},"Map Chart Widget":{"name":"Map Chart Widget","description":"Issues related to Map Chart Widgets","color":"c8397f"},"Product Catchup":{"name":"Product Catchup","description":"Issues created in the product catchup","color":"29cd2c"},"Framework Functions":{"name":"Framework Functions","description":"Issues related to internal functions like showAlert(), navigateTo() etc...","color":"c25a09"},"Frontend Libraries Upgrade":{"name":"Frontend Libraries Upgrade","description":"Issues related to frontend libraries upgrade","color":"ede1fc"},"Audit Logs":{"name":"Audit Logs","description":"Audit trails to ensure data security","color":"f3fd62"},"MsSQL":{"name":"MsSQL","description":"Issues related to MsSQL plugin","color":"8078b0"},"Data Platform Pod":{"name":"Data Platform Pod","description":"Issues related to the underlying data platform","color":"3f8c3a"},"Integrations Pod":{"name":"Integrations Pod","description":"Issues related to a specific integration","color":"5dbbb1"},"Datasource Environments":{"name":"Datasource Environments","description":"Issues related to datasource environments","color":"bb7a14"},"Elastic Search":{"name":"Elastic Search","description":"Issues related to the elastic search datasource","color":"8078b0"},"Core Query Execution":{"color":"418fa4","name":"Core Query Execution","description":"Issues related to the execution of all queries"},"Query Management":{"name":"Query Management","description":"Issues related to the CRUD of actions or queries","color":"6a5b42"},"Query Settings":{"name":"Query Settings","description":"Issues related to the settings of all queries","color":"c7da7a"},"Code Editor":{"name":"Code Editor","description":"Issues related to the code editor","color":"4ca16e"},"Query Forms":{"color":"12b253","name":"Query Forms","description":"Isuses related to the query forms"},"JS Objects":{"color":"22962c","name":"JS Objects","description":"Issues related to JS Objects"},"JS Evaluation":{"color":"22962c","name":"JS Evaluation","description":"Issues related to JS evaluation on the platform"},"SmartSubstitution":{"name":"SmartSubstitution","description":"Issues related to Smart substitution of mustache bindings in queries","color":"e4d966"},"Query Generation":{"name":"Query Generation","description":"Issues related to query generation","color":"e4d966"},"Suggested Widgets":{"name":"Suggested Widgets","description":"Issues related to suggesting widgets based on query response","color":"e4d966"},"Page load executions":{"name":"Page load executions","description":"Issues related to page load execution","color":"5696b2"},"Code Scanner Widget":{"name":"Code Scanner Widget","description":"Issues related to code scanner widget","color":"9bc1a0"},"Clean URLs":{"name":"Clean URLs","description":"Issues related to clean URLs epic","color":"112623"},"Widget keyboard accessibility":{"name":"Widget keyboard accessibility","description":"All issues related to keyboard accessibility in widgets","color":"b626fd"},"Connection pool":{"name":"Connection pool","description":"issues to do with connection pooling of various plugins","color":"94fe36"},"List Widget V2":{"name":"List Widget V2","description":"Issues related to the list widget v2","color":"adaaf7"},"Auto Height":{"name":"Auto Height","description":"Issues related to dynamic height of widgets","color":"5149cf"},"cypress_failed_test":{"name":"cypress_failed_test","description":"Cypress failed tests","color":"4745d5"},"Needs validation":{"name":"Needs validation","description":"Needs problem validation before being picked up","color":"66673d"},"Slider Widget":{"name":"Slider Widget","description":"Issues raised for slider widgets.","color":"2eef5f"},"Multitenancy":{"name":"Multitenancy","description":"Support multitenancy within single appsmith instance","color":"8c49a9"},"Git Pod":{"name":"Git Pod","description":"Anything related to git sync","color":"2e5ba4"},"Mobile Pod":{"name":"Mobile Pod","description":"All issues related to mobile responsiveness","color":"6c97fd"},"Responsive Widget":{"name":"Responsive Widget","description":"All issues related to widget responsiveness","color":"d12d2e"},"Responsive Canvas":{"name":"Responsive Canvas","description":"All issues related to canvas responsiveness","color":"45a0a8"},"Conversion Algorithm":{"name":"Conversion Algorithm","description":"All issue related to converting app from fixed to flex mode & vice versa","color":"d12d2e"},"Spacing":{"name":"Spacing","description":"All issue related to spacing between widgets in auto layout","color":"d12d2e"},"Browser specific":{"name":"Browser specific","description":"All issue related to browser","color":"d12d2e"},"Error Handling":{"name":"Error Handling","description":"Issues related to error handling","color":"4e1872"},"Performance infra":{"name":"Performance infra","description":"all issue related to the performance infra","color":"8a60f6"},"DSL Update":{"name":"DSL Update","description":"Issues related to storing and updating the DSL","color":"e16cf3"},"AST-frontend":{"name":"AST-frontend","description":"Issues related to maintaining AST logic","color":"434a3a"},"AST-backend":{"name":"AST-backend","description":"Backend issues related to AST parsing","color":"c476eb"},"MariaDB":{"name":"MariaDB","description":"MariaDB datasource","color":"8428c3"},"Billing & Usage Pod":{"name":"Billing & Usage Pod","description":"Issues pertaining to licensing, billing, usage across self serve and enterprise customers","color":"256808"},"ADS Component Issue":{"name":"ADS Component Issue","description":"Issues which are caused due to ADS components","color":"d89119"},"Regressed":{"color":"723fd0","name":"Regressed","description":"Scenarios that were working before but have now regressed"},"Needs RCA":{"name":"Needs RCA","description":"a critical or high priority issue that needs an RCA","color":"2cc68f"},"Custom JS Libraries":{"name":"Custom JS Libraries","description":"Issues related to adding custom JS library","color":"bacb6d"},"Integrations Pod General":{"name":"Integrations Pod General","description":"Issues related to the Integrations Pod that don't fit into other tags.","color":"287823"},"Performance Pod":{"name":"Performance Pod","description":"All things related to Appsmith performance","color":"b5a25d"},"Performance":{"name":"Performance","description":"Issues related to performance","color":"9a18d7"},"File upload issues":{"name":"File upload issues","description":"Issues related to uploading any type of files from within Appsmith","color":"8154df"},"Action Selector":{"name":"Action Selector","description":"Issues related to action selector on the property pane","color":"2f9e20"},"Widget design system":{"name":"Widget design system","description":"","color":"11cc90"},"Deploy App":{"name":"Deploy App","description":"Issues related to app deployment","color":"6f6152"},"Community Reported":{"name":"Community Reported","description":"issues reported by community members","color":"1402e5"},"JS Function execution":{"name":"JS Function execution","description":"JS function execution","color":"7c2de1"},"Self Serve":{"name":"Self Serve","description":"For all issues related to self-serve flow for business edition","color":"4dacfc"},"Self Serve 1.0":{"name":"Self Serve 1.0","description":"For all issues related to v1 of the self serve project","color":"ae839e"},"CE Instance":{"name":"CE Instance","description":"For all issues relating to usage, licensing or billing on the CE instance","color":"d2bc40"},"Customer Portal":{"name":"Customer Portal","description":"For all tasks/issues pertaining to customer.appsmith.com","color":"d2bc40"},"Cloud Services":{"name":"Cloud Services","description":"For all tasks/issues on Appsmith cloud-services relating to licensing, usage and billing","color":"d2bc40"},"Billing Integrations":{"name":"Billing Integrations","description":"For all issues relating to 3P integrations Appsmith is using for billing & usage","color":"d2bc40"},"One-click Binding":{"name":"One-click Binding","description":"Issues related to the One click binding epic","color":"f1661c"},"Airgap":{"name":"Airgap","description":"Tickets related to supporting air-gapped Appsmith instances","color":"1cb294"},"SMTP plugin":{"name":"SMTP plugin","description":"Issues related to SMTP plugin","color":"541457"},"AWS AMI":{"name":"AWS AMI","description":"Issues Related to AWS AMI","color":"b44680"},"Old widget version":{"name":"Old widget version","description":"Use this label to raise issue specific only to an older version of a widget","color":"ff3814"},"Enterprise Billing":{"name":"Enterprise Billing","description":"To track all tasks/issues related to licensing & billing for enterprise customers","color":"14c156"},"Appsmith Business Cloud":{"name":"Appsmith Business Cloud","description":"Issues related to our business cloud offering","color":"89bb6c"},"Oracle SQL DB":{"name":"Oracle SQL DB","description":"Issues related to the Oracle plugin","color":"cbabcb"},"Community Contributor":{"name":"Community Contributor","description":"Meant to track issues that are assigned to external contributors","color":"149ab6"},"widget vertical alignment":{"name":"widget vertical alignment","description":"All issue related widget vertical alignment on the auto layout canvas","color":"d12d2e"},"Observability":{"name":"Observability","description":"Issues related to observability on the Appsmith instance","color":"dff913"},"Checkbox Component":{"name":"Checkbox Component","description":"This labels deals with checkbox component in wds package","color":"75a401"},"In-app ramps":{"name":"In-app ramps","description":"For all tasks/issues relating to adding in-app ramps in the community edition of the product","color":"8abae0"},"Analytics Improvements":{"name":"Analytics Improvements","description":"For all tasks focused on improving our overall analytics and fixing any issues ","color":"29b8ed"},"WDS team":{"name":"WDS team","description":"","color":"8d675a"},"Enterprise Edition":{"name":"Enterprise Edition","description":"Features that will be supported in Enterprise Edition only","color":"984f5e"},"Query filter":{"name":"Query filter","description":"Issues related to query filtering, e.g., WHERE clause","color":"a15134"},"Keyboard accessibility ":{"name":"Keyboard accessibility ","description":"All issue related to ADS component keyboard accessibility","color":"2ba696"},"Toggle button":{"name":"Toggle button","description":"All issue related to ADS toggle button","color":"edc47f"},"1-click upgrade":{"name":"1-click upgrade","description":"For all issues/tasks related to 1-click upgrade & downgrade project","color":"129082"},"Feature Flagging":{"name":"Feature Flagging","description":"Anything related feature flagging","color":"77443f"},"SCIM":{"name":"SCIM","description":"Label to collate our SCIM issues","color":"61a852"},"ADS Category Token":{"name":"ADS Category Token","description":"All issues related appsmith design system category tokens","color":"920961"},"ADS Component Documentation":{"name":"ADS Component Documentation","description":"All issues Appsmith design system component documentation","color":"64c46a"},"ADS Migration":{"name":"ADS Migration","description":"All issues related to Appsmith design system migration","color":"b082d6"},"ADS Deduplication ":{"name":"ADS Deduplication ","description":"Replacing component with ADS components","color":"b082d6"},"ADS Revamp":{"name":"ADS Revamp","description":"All issues related to ads revamp. ","color":"b082d6"},"ADS Deduplication":{"name":"ADS Deduplication","description":"Replacing component with ADS components","color":"b082d6"},"ADS Grayscale":{"name":"ADS Grayscale","description":"Support grayscale color changes","color":"b03577"},"ADS Unit Test":{"name":"ADS Unit Test","description":"All issue related ads unit cases ","color":"b082d6"},"ADS Components":{"name":"ADS Components","description":"All issues related ADS components","color":"b082d6"},"Widget Discoverability":{"name":"Widget Discoverability","description":"Issues related to Widget Discoverability","color":"7b55ce"},"Widget setter method":{"name":"Widget setter method","description":"Issues with widget property setters","color":"8dce87"},"License":{"name":"License","description":"For all issues/tasks related to licensing of appsmith-ee edition","color":"90ee98"},"Templates pod":{"name":"Templates pod","description":"Issues related to Templates","color":"b7e568"},"Community template":{"name":"Community template","description":"Label for development of community templates and its integration to platform","color":"8a0510"},"DocumentDB":{"name":"DocumentDB","description":"Issues related to support DocumentDB in Appsmith Data layer","color":"2c8b56"},"Multiple Environments":{"name":"Multiple Environments","description":"Issues or tasks related to multiple environments","color":"4e972b"},"Platformization":{"name":"Platformization","description":"Issues or tasks related to platformization of Appsmith codebase","color":"4e972b"},"Activation - datasources":{"name":"Activation - datasources","description":"issues related to activation projects","color":"7c7ace"},"Partial-import-export":{"name":"Partial-import-export","description":"Label for granular reusability.","color":"1e439c"},"AI":{"name":"AI","description":"All tasks related to AI","color":"69c7ca"},"Custom environments":{"name":"Custom environments","description":"Issues with creating or working with custom environments","color":"2137d6"},"ADS Typography":{"name":"ADS Typography","description":"All issue related typographical changes","color":"2dbe8d"},"Auto Layout":{"name":"Auto Layout","description":"Issues relates to auto layout","color":"92cf8c"},"Heroku":{"name":"Heroku","description":"Issues related to Heroku","color":"a81b69"},"ADS Visual Styles":{"name":"ADS Visual Styles","description":"All issues related to ADS visual styles","color":"d3da89"},"ADS Component Design":{"name":"ADS Component Design","description":"All issue related to component design","color":"5cc91e"},"Modal Component":{"name":"Modal Component","description":"All issue related to ads modal component","color":"ee63f3"},"App setting":{"name":"App setting","description":"Related to app settings panel within the app","color":"144206"},"BE instance":{"name":"BE instance","description":"For all issues related to license, billing on BE instance","color":"ae8f98"},"Workflows":{"name":"Workflows","description":"For all issues related to the Workflows feature","color":"ae2aa6"},"Schema":{"name":"Schema","description":"Issues related to database schema","color":"c470c2"},"AI Pod":{"name":"AI Pod","description":"Pod for all AI related tasks","color":"d18528"},"Fixed layout":{"name":"Fixed layout","description":"issues related to fixed layout","color":"b66681"},"Anvil layout":{"name":"Anvil layout","description":"issues related to the new layout system anvil","color":"722bf0"},"New Deployment Mode":{"name":"New Deployment Mode","description":"Support a new mode of deployment","color":"108033"},"Custom widgets":{"name":"Custom widgets","description":"For all issues related to the custom widget project","color":"c9db9c"}},"success":true}
\ No newline at end of file
+{"runners":[{"versioning":{"source":"milestones","type":"SemVer"},"prereleaseName":"alpha","issue":{"labels":{"AI Pod":{"conditions":[{"label":"AI","type":"hasLabel","value":true}],"requires":1},"Workflows":{"conditions":[],"requires":1},"Error Handling":{"conditions":[],"requires":1},"Templates pod":{"conditions":[{"label":"Templates","type":"hasLabel","value":true},{"label":"Community template","type":"hasLabel","value":true},{"label":"Partial-import-export","type":"hasLabel","value":true}],"requires":1},"Team Managers Pod":{"conditions":[{"label":"Settings","type":"hasLabel","value":true},{"label":"Home Page","type":"hasLabel","value":true},{"label":"Invite users","type":"hasLabel","value":true},{"label":"Realtime Commenting","type":"hasLabel","value":true},{"label":"SSO","type":"hasLabel","value":true},{"label":"Multi User Realtime","type":"hasLabel","value":true},{"label":"RBAC","type":"hasLabel","value":true},{"label":"ABAC","type":"hasLabel","value":true},{"label":"Audit Logs","type":"hasLabel","value":true},{"label":"Multitenancy","type":"hasLabel","value":true},{"label":"Airgap","type":"hasLabel","value":true},{"label":"Enterprise Edition","type":"hasLabel","value":true},{"label":"SCIM","type":"hasLabel","value":true}],"requires":1},"New Developers Pod":{"conditions":[{"label":"Omnibar","type":"hasLabel","value":true},{"label":"Telemetry","type":"hasLabel","value":true},{"label":"Entity Explorer","type":"hasLabel","value":true},{"label":"IDE","type":"hasLabel","value":true},{"label":"Example Apps","type":"hasLabel","value":true},{"label":"i18n","type":"hasLabel","value":true},{"label":"IDE Navigation","type":"hasLabel","value":true},{"label":"Clean URLs","type":"hasLabel","value":true},{"label":"In App Comms","type":"hasLabel","value":true},{"label":"In App Comms","type":"hasLabel","value":true},{"label":"App setting","type":"hasLabel","value":true}],"requires":1},"BE Coders Pod":{"conditions":[{"label":"SAAS Plugins","type":"hasLabel","value":true},{"label":"SAAS Manager App","type":"hasLabel","value":true},{"label":"Data Platform Pod","type":"hasLabel","value":true},{"label":"Integrations Pod","type":"hasLabel","value":true}],"requires":1},"FE Coders Pod":{"conditions":[{"label":"JS Linting & Errors","type":"hasLabel","value":true},{"label":"Debugger","type":"hasLabel","value":true},{"label":"JS Snippets","type":"hasLabel","value":true},{"label":"Autocomplete","type":"hasLabel","value":true},{"label":"Evaluated Value","type":"hasLabel","value":true},{"label":"Slash Command","type":"hasLabel","value":true},{"label":"New JS Function","type":"hasLabel","value":true},{"label":"JS Promises","type":"hasLabel","value":true},{"label":"JS Usability","type":"hasLabel","value":true},{"label":"Code Refactoring","type":"hasLabel","value":true},{"label":"storeValue","type":"hasLabel","value":true},{"label":"OnPageLoad","type":"hasLabel","value":true},{"label":"Framework Functions","type":"hasLabel","value":true},{"label":"Code Editor","type":"hasLabel","value":true},{"label":"JS Objects","type":"hasLabel","value":true},{"label":"JS Evaluation","type":"hasLabel","value":true},{"label":"AST-frontend","type":"hasLabel","value":true},{"label":"Custom JS Libraries","type":"hasLabel","value":true},{"label":"Action Selector","type":"hasLabel","value":true},{"label":"JS Function execution","type":"hasLabel","value":true},{"label":"Widget setter method","type":"hasLabel","value":true},{"label":"Error Handling","type":"hasLabel","value":true}],"requires":1},"App Viewers Pod":{"conditions":[{"label":"Button Widget","type":"hasLabel","value":true},{"label":"Chart Widget","type":"hasLabel","value":true},{"label":"Container Widget","type":"hasLabel","value":true},{"label":"Date Picker Widget","type":"hasLabel","value":true},{"label":"Select Widget","type":"hasLabel","value":true},{"label":"File Picker Widget","type":"hasLabel","value":true},{"label":"Form Widget","type":"hasLabel","value":true},{"label":"Image Widget","type":"hasLabel","value":true},{"label":"Input Widget","type":"hasLabel","value":true},{"label":"List Widget","type":"hasLabel","value":true},{"label":"MultiSelect Widget","type":"hasLabel","value":true},{"label":"Map Widget","type":"hasLabel","value":true},{"label":"Modal Widget","type":"hasLabel","value":true},{"label":"Radio Widget","type":"hasLabel","value":true},{"label":"Rich Text Editor Widget","type":"hasLabel","value":true},{"label":"Tab Widget","type":"hasLabel","value":true},{"label":"Table Widget","type":"hasLabel","value":true},{"label":"Text Widget","type":"hasLabel","value":true},{"label":"Video Widget","type":"hasLabel","value":true},{"label":"iFrame","type":"hasLabel","value":true},{"label":"Menu Button","type":"hasLabel","value":true},{"label":"Rating","type":"hasLabel","value":true},{"label":"Widget Validation","type":"hasLabel","value":true},{"label":"reallabel","type":"hasLabel","value":true},{"label":"New Widget","type":"hasLabel","value":true},{"label":"Switch widget","type":"hasLabel","value":true},{"label":"Audio Widget","type":"hasLabel","value":true},{"label":"Icon Button Widget","type":"hasLabel","value":true},{"label":"Stat Box Widget","type":"hasLabel","value":true},{"label":"Voice Recorder Widget","type":"hasLabel","value":true},{"label":"Calendar Widget","type":"hasLabel","value":true},{"label":"Menu Button Widget","type":"hasLabel","value":true},{"label":"Divider Widget","type":"hasLabel","value":true},{"label":"Rating Widget","type":"hasLabel","value":true},{"label":"App Navigation","type":"hasLabel","value":true},{"label":"View Mode","type":"hasLabel","value":true},{"label":"Widget Property","type":"hasLabel","value":true},{"label":"Document Viewer Widget","type":"hasLabel","value":true},{"label":"Radio Group Widget","type":"hasLabel","value":true},{"label":"Currency Input Widget","type":"hasLabel","value":true},{"label":"TreeSelect","type":"hasLabel","value":true},{"label":"MultiTree Select Widget","type":"hasLabel","value":true},{"label":"Phone Input Widget","type":"hasLabel","value":true},{"label":"JSON Form","type":"hasLabel","value":true},{"label":"All Widgets","type":"hasLabel","value":true},{"label":"Button Group widget","type":"hasLabel","value":true},{"label":"Progress bar widget","type":"hasLabel","value":true},{"label":"Audio Recorder Widget","type":"hasLabel","value":true},{"label":"Camera Widget","type":"hasLabel","value":true},{"label":"Table Widget V2","type":"hasLabel","value":true},{"label":"Branding","type":"hasLabel","value":true},{"label":"Map Chart Widget","type":"hasLabel","value":true},{"label":"Code Scanner Widget","type":"hasLabel","value":true},{"label":"Widget keyboard accessibility","type":"hasLabel","value":true},{"label":"List Widget V2","type":"hasLabel","value":true},{"label":"Slider Widget","type":"hasLabel","value":true},{"label":"One-click Binding","type":"hasLabel","value":true},{"label":"Old widget version","type":"hasLabel","value":true},{"label":"Widget Discoverability","type":"hasLabel","value":true},{"label":"Custom widgets","type":"hasLabel","value":true}],"requires":1},"UI Builders Pod":{"conditions":[{"label":"Property Pane","type":"hasLabel","value":true},{"label":"Pages","type":"hasLabel","value":true},{"label":"Copy Paste","type":"hasLabel","value":true},{"label":"Drag & Drop","type":"hasLabel","value":true},{"label":"Undo/Redo","type":"hasLabel","value":true},{"label":"Widgets Pane","type":"hasLabel","value":true},{"label":"UI Performance","type":"hasLabel","value":true},{"label":"Widget Grouping","type":"hasLabel","value":true},{"label":"Reflow & Resize","type":"hasLabel","value":true},{"label":"Canvas / Grid","type":"hasLabel","value":true},{"label":"Canvas Zooms","type":"hasLabel","value":true},{"label":"Frontend Libraries Upgrade","type":"hasLabel","value":true},{"label":"Auto Height","type":"hasLabel","value":true},{"label":"Responsive Canvas","type":"hasLabel","value":true},{"label":"Responsive Widget","type":"hasLabel","value":true},{"label":"Responsive Viewport","type":"hasLabel","value":true},{"label":"Conversion Algorithm","type":"hasLabel","value":true},{"label":"Spacing","type":"hasLabel","value":true},{"label":"Browser specific","type":"hasLabel","value":true},{"label":"widget vertical alignment","type":"hasLabel","value":true},{"label":"Auto Layout","type":"hasLabel","value":true},{"label":"Fixed layout","type":"hasLabel","value":true},{"label":"Anvil layout","type":"hasLabel","value":true}],"requires":1},"User Education Pod":{"conditions":[{"label":"Content","type":"hasLabel","value":true},{"label":"Documentation","type":"hasLabel","value":true}],"requires":1},"DevOps Pod":{"conditions":[{"label":"Docker","type":"hasLabel","value":true},{"label":"Super Admin","type":"hasLabel","value":true},{"label":"Deployment","type":"hasLabel","value":true},{"label":"K8s","type":"hasLabel","value":true},{"label":"Email Config","type":"hasLabel","value":true},{"label":"Backup & Restore","type":"hasLabel","value":true},{"label":"AWS AMI","type":"hasLabel","value":true},{"label":"Observability","type":"hasLabel","value":true},{"label":"Heroku","type":"hasLabel","value":true},{"label":"New Deployment Mode","type":"hasLabel","value":true},{"label":"Feature Flagging","type":"hasLabel","value":true}],"requires":1},"Design System Pod":{"conditions":[{"label":"Design System Pod","type":"hasLabel","value":true},{"label":"ADS Component Issue","type":"hasLabel","value":true},{"label":"Keyboard accessibility ","type":"hasLabel","value":true},{"label":"Toggle button","type":"hasLabel","value":true},{"label":"ADS Category Token","type":"hasLabel","value":true},{"label":"ADS Component Documentation","type":"hasLabel","value":true},{"label":"ADS Migration","type":"hasLabel","value":true},{"label":"ADS Deduplication ","type":"hasLabel","value":true},{"label":"ADS Revamp","type":"hasLabel","value":true},{"label":"ADS Deduplication","type":"hasLabel","value":true},{"label":"ADS Unit Test","type":"hasLabel","value":true},{"label":"ADS Components","type":"hasLabel","value":true},{"label":"ADS Grayscale","type":"hasLabel","value":true},{"label":"Design System","type":"hasLabel","value":true},{"label":"ADS Typography","type":"hasLabel","value":true},{"label":"ADS Visual Styles","type":"hasLabel","value":true},{"label":"ADS Component Design","type":"hasLabel","value":true},{"label":"Modal Component","type":"hasLabel","value":true}],"requires":1},"Data Platform Pod":{"conditions":[{"label":"Datasource Environments","type":"hasLabel","value":true},{"label":"Datatype issue","type":"hasLabel","value":true},{"label":"Entity Refactor","type":"hasLabel","value":true},{"label":"Core Query Execution","type":"hasLabel","value":true},{"label":"Query Management","type":"hasLabel","value":true},{"label":"Query Settings","type":"hasLabel","value":true},{"label":"SmartSubstitution","type":"hasLabel","value":true},{"label":"Query Generation","type":"hasLabel","value":true},{"label":"Query performance","type":"hasLabel","value":true},{"label":"Suggested Widgets","type":"hasLabel","value":true},{"label":"Page load executions","type":"hasLabel","value":true},{"label":"DSL Update","type":"hasLabel","value":true},{"label":"AST-backend","type":"hasLabel","value":true},{"label":"Deploy App","type":"hasLabel","value":true},{"label":"File upload issues","type":"hasLabel","value":true},{"label":"Datasources","type":"hasLabel","value":true},{"label":"DocumentDB","type":"hasLabel","value":true},{"label":"Multiple Environments","type":"hasLabel","value":true},{"label":"Platformization","type":"hasLabel","value":true},{"label":"Custom environments","type":"hasLabel","value":true},{"label":"Schema","type":"hasLabel","value":true}],"requires":1},"Integrations Pod":{"conditions":[{"label":"New Datasource","type":"hasLabel","value":true},{"label":"Firestore","type":"hasLabel","value":true},{"label":"Google Sheets","type":"hasLabel","value":true},{"label":"Mongo","type":"hasLabel","value":true},{"label":"Redshift","type":"hasLabel","value":true},{"label":"snowflake","type":"hasLabel","value":true},{"label":"S3","type":"hasLabel","value":true},{"label":"Redis","type":"hasLabel","value":true},{"label":"Postgres","type":"hasLabel","value":true},{"label":"GraphQL Plugin","type":"hasLabel","value":true},{"label":"ArangoDB","type":"hasLabel","value":true},{"label":"MsSQL","type":"hasLabel","value":true},{"label":"REST API plugin","type":"hasLabel","value":true},{"label":"Elastic Search","type":"hasLabel","value":true},{"label":"OAuth","type":"hasLabel","value":true},{"label":"Airtable","type":"hasLabel","value":true},{"label":"CURL","type":"hasLabel","value":true},{"label":"DynamoDB","type":"hasLabel","value":true},{"label":"Zendesk","type":"hasLabel","value":true},{"label":"Hubspot","type":"hasLabel","value":true},{"label":"Query Forms","type":"hasLabel","value":true},{"label":"Twilio","type":"hasLabel","value":true},{"label":"MySQL","type":"hasLabel","value":true},{"label":"Connection pool","type":"hasLabel","value":true},{"label":"MariaDB","type":"hasLabel","value":true},{"label":"Integrations Pod General","type":"hasLabel","value":true},{"label":"SMTP plugin","type":"hasLabel","value":true},{"label":"Oracle SQL DB","type":"hasLabel","value":true},{"label":"Query filter","type":"hasLabel","value":true},{"label":"Activation - datasources","type":"hasLabel","value":true},{"label":"Onboarding","type":"hasLabel","value":true},{"label":"Generate Page","type":"hasLabel","value":true},{"label":"Sniping Mode","type":"hasLabel","value":true},{"label":"Welcome Screen","type":"hasLabel","value":true},{"label":"Login / Signup","type":"hasLabel","value":true}],"requires":1},"Git Pod":{"conditions":[{"label":"Git Version Control","type":"hasLabel","value":true},{"label":"Import-Export-App","type":"hasLabel","value":true},{"label":"Fork App","type":"hasLabel","value":true}],"requires":1},"Mobile Pod":{"conditions":[],"requires":1},"Billing & Usage Pod":{"conditions":[{"label":"CE Instance","type":"hasLabel","value":true},{"label":"Customer Portal","type":"hasLabel","value":true},{"label":"Cloud Services","type":"hasLabel","value":true},{"label":"Billing Integrations","type":"hasLabel","value":true},{"label":"Billing","type":"hasLabel","value":true},{"label":"Self Serve","type":"hasLabel","value":true},{"label":"Enterprise Billing","type":"hasLabel","value":true},{"label":"In-app ramps","type":"hasLabel","value":true},{"label":"Analytics Improvements","type":"hasLabel","value":true},{"label":"Self Serve 1.0","type":"hasLabel","value":true},{"label":"License","type":"hasLabel","value":true},{"label":"1-click upgrade","type":"hasLabel","value":true},{"label":"Appsmith Business Cloud","type":"hasLabel","value":true},{"label":"BE instance","type":"hasLabel","value":true},{"label":"Embedding Apps","type":"hasLabel","value":true},{"label":"TM_BU","type":"hasLabel","value":true},{"label":"Homepage Experience V2","type":"hasLabel","value":true}],"requires":1},"Performance Pod":{"conditions":[{"label":"Performance","type":"hasLabel","value":true},{"label":"Performance infra","type":"hasLabel","value":true}],"requires":1},"Widget design system":{"conditions":[{"label":"App Theming","type":"hasLabel","value":true},{"label":"Widget Styling","type":"hasLabel","value":true},{"label":"Checkbox Group widget","type":"hasLabel","value":true},{"label":"Checkbox Widget","type":"hasLabel","value":true},{"label":"Checkbox Component","type":"hasLabel","value":true},{"label":"WDS team","type":"hasLabel","value":true},{"label":"Widget design system","type":"hasLabel","value":true}],"requires":1},"IDE Pod":{"conditions":[],"requires":1}}},"root":"."}],"labels":{"Tab Widget":{"color":"e2c76c","name":"Tab Widget","description":""},"Dont merge":{"color":"ADB39C","name":"Dont merge","description":""},"Epic":{"color":"3E4B9E","name":"Epic","description":"A zenhub epic that describes a project"},"Menu Button Widget":{"color":"235708","name":"Menu Button Widget","description":"Issues related to Menu Button widget"},"Checkbox Group widget":{"color":"88054d","name":"Checkbox Group widget","description":"Issues related to Checkbox Group Widget"},"Input Widget":{"color":"ae65d8","name":"Input Widget","description":""},"Security":{"color":"99139C","name":"Security","description":""},"QA":{"color":"e2ca68","name":"QA","description":""},"Verified":{"color":"9bf416","name":"Verified","description":""},"Wont Fix":{"color":"ffffff","name":"Wont Fix","description":"This will not be worked on"},"MySQL":{"color":"c9ddc6","name":"MySQL","description":"Issues related to MySQL plugin"},"Development":{"color":"9F8A02","name":"Development","description":""},"Help Wanted":{"color":"008672","name":"Help Wanted","description":"Extra attention is needed"},"Home Page":{"color":"9c0c8e","name":"Home Page","description":"Issues related to the application home page"},"Rating Widget":{"color":"235708","name":"Rating Widget","description":"Issues related to the rating widget"},"Stat Box Widget":{"color":"f1c9ce","name":"Stat Box Widget","description":"Issues related to stat box"},"Enhancement":{"color":"a2eeef","name":"Enhancement","description":"New feature or request"},"Settings":{"color":"f7ff60","name":"Settings","description":"organization, team & user settings"},"Fork App":{"color":"30c76d","name":"Fork App","description":"Issues related to forking apps"},"Container Widget":{"color":"19AD0D","name":"Container Widget","description":"Container widget"},"Papercut":{"color":"B562F6","name":"Papercut","description":""},"Needs Design":{"color":"bfd4f2","name":"Needs Design","description":"needs design or changes to design"},"i18n":{"color":"1799b0","name":"i18n","description":"Represents issues that need to be tackled to handle internationalization"},"Rich Text Editor Widget":{"color":"f72cac","name":"Rich Text Editor Widget","description":""},"Onboarding":{"color":"30c76d","name":"Onboarding","description":"Issues related to onboarding new developers"},"Pages":{"color":"d7fd80","name":"Pages","description":"Issues related to configuring pages"},"skip-changelog":{"color":"06086F","name":"skip-changelog","description":"Adding this label to a PR prevents it from being listed in the changelog"},"Low":{"color":"79e53b","name":"Low","description":"An issue that is neither critical nor breaks a user flow"},"potential-duplicate":{"color":"d3cb2e","name":"potential-duplicate","description":"This label marks issues that are potential duplicates of already open issues"},"Audio Widget":{"color":"447B9A","name":"Audio Widget","description":"Issues related to Audio Widget"},"Firestore":{"color":"8078b0","name":"Firestore","description":"Issues related to the firestore Integration"},"New Widget":{"color":"be4cf2","name":"New Widget","description":"A request for a new widget"},"Modal Widget":{"color":"03846f","name":"Modal Widget","description":""},"UX Improvement":{"color":"f4a089","name":"UX Improvement","description":""},"S3":{"color":"8078b0","name":"S3","description":"Issues related to the S3 plugin"},"Release Blocker":{"color":"5756bf","name":"Release Blocker","description":"This issue must be resolved before the release"},"safari":{"color":"51C6AA","name":"safari","description":"Bugs seen on safari browser"},"Example Apps":{"color":"1799b0","name":"Example Apps","description":"Example apps created for new signups"},"MultiSelect Widget":{"color":"AB62D4","name":"MultiSelect Widget","description":"Issues related to MultiSelect Widget"},"Widget Styling":{"color":"905420","name":"Widget Styling","description":"all about widget styling"},"Calendar Widget":{"color":"8c6644","name":"Calendar Widget","description":""},"Website":{"color":"151720","name":"Website","description":"Related to www.appsmith.com website"},"Low effort":{"color":"8B59F0","name":"Low effort","description":"Something that'll take a few days to build"},"App Viewers Pod":{"color":"cd8ef9","name":"App Viewers Pod","description":"This label assigns issues to the app viewers pod"},"Checkbox Widget":{"color":"88054d","name":"Checkbox Widget","description":""},"Spam":{"color":"620faf","name":"Spam","description":""},"Voice Recorder Widget":{"color":"85bc87","name":"Voice Recorder Widget","description":""},"Select Widget":{"color":"0c669e","name":"Select Widget","description":"Select or dropdown widget"},"Bug":{"color":"d73a4a","name":"Bug","description":"Something isn't working"},"Widget Validation":{"color":"6990BC","name":"Widget Validation","description":"Issues related to widget property validation"},"Generate Page":{"color":"30c76d","name":"Generate Page","description":"Issures related to page generation"},"File Picker Widget":{"color":"6ae4f2","name":"File Picker Widget","description":""},"snowflake":{"color":"8078b0","name":"snowflake","description":"Issues related to the snowflake Integration"},"Automation":{"color":"CCAF60","name":"Automation","description":""},"hotfix":{"color":"BA3F1D","name":"hotfix","description":""},"Team Managers Pod":{"color":"bddb81","name":"Team Managers Pod","description":"Issues that team managers care about for the security and efficiency of their teams"},"Import-Export-App":{"color":"15076d","name":"Import-Export-App","description":"Issues related to importing and exporting apps"},"High effort":{"color":"A7E87B","name":"High effort","description":"Something that'll take more than a month to build"},"Telemetry":{"color":"bc70f9","name":"Telemetry","description":"Issues related to instrumenting appsmith"},"Radio Widget":{"color":"91ef15","name":"Radio Widget","description":""},"Omnibar":{"color":"10b5ce","name":"Omnibar","description":"Issues related to the omnibar for navigation"},"Button Widget":{"color":"34efae","name":"Button Widget","description":""},"Switch widget":{"color":"33A8CE","name":"Switch widget","description":"The switch widget"},"Map Widget":{"color":"7eef7a","name":"Map Widget","description":""},"Task":{"color":"085630","name":"Task","description":"A simple Todo"},"Design System":{"color":"2958a4","name":"Design System","description":"Design system"},"opera":{"color":"C63F5B","name":"opera","description":"Any issues identified on the opera browser"},"Login / Signup":{"color":"30c76d","name":"Login / Signup","description":"Authentication flows"},"Image Widget":{"color":"8de8ad","name":"Image Widget","description":""},"firefox":{"color":"6d56e2","name":"firefox","description":""},"Property Pane":{"color":"b356ff","name":"Property Pane","description":"Issues related to the behaviour of the property pane"},"Deployment":{"color":"93491f","name":"Deployment","description":"Installation process of appsmith"},"Critical":{"color":"9b1b28","name":"Critical","description":"This issue needs immediate attention. Drop everything else"},"IDE":{"color":"61b2ee","name":"IDE","description":"Issues related to the IDE"},"Production":{"color":"b60205","name":"Production","description":""},"Dependencies":{"color":"0366d6","name":"Dependencies","description":"Pull requests that update a dependency file"},"Google Sheets":{"color":"8078b0","name":"Google Sheets","description":"Issues related to Google Sheets"},"Icon Button Widget":{"color":"D319CE","name":"Icon Button Widget","description":"Issues related to the icon button widget"},"Mongo":{"color":"8078b0","name":"Mongo","description":"Issues related to Mongo DB plugin"},"Documentation":{"color":"a8dff7","name":"Documentation","description":"Improvements or additions to documentation"},"TestGap":{"color":"f28253","name":"TestGap","description":"Issues identified for test plan improvement"},"keyboard shortcut":{"color":"0688B6","name":"keyboard shortcut","description":""},"Git Version Control":{"color":"858172","name":"Git Version Control","description":"Issues related to version control"},"Reopen":{"color":"897548","name":"Reopen","description":""},"Redshift":{"color":"8078b0","name":"Redshift","description":"Issues related to the redshift integration"},"Date Picker Widget":{"color":"ef1ce1","name":"Date Picker Widget","description":""},"Entity Explorer":{"color":"a2e2f9","name":"Entity Explorer","description":"Issues related to navigation using the entity explorer"},"JS Linting & Errors":{"color":"E56AA5","name":"JS Linting & Errors","description":"Issues related to JS Linting and errors"},"iFrame":{"color":"3CD1DB","name":"iFrame","description":"Issues related to iFrame"},"Stale":{"color":"ededed","name":"Stale","description":null},"Debugger":{"color":"e79062","name":"Debugger","description":"Issues related to the debugger"},"Quick effort":{"color":"95ED65","name":"Quick effort","description":"Something that'll take a few hours to build"},"Text Widget":{"color":"d130d1","name":"Text Widget","description":""},"Video Widget":{"color":"23dd4b","name":"Video Widget","description":""},"Datasources":{"color":"5052f6","name":"Datasources","description":"Issues related to configuring datasource on appsmith"},"error":{"color":"B66773","name":"error","description":"All issues connected to error messages"},"Form Widget":{"color":"09ed77","name":"Form Widget","description":""},"Needs Triaging":{"color":"e8b851","name":"Needs Triaging","description":"Needs attention from maintainers to triage"},"Autocomplete":{"color":"235708","name":"Autocomplete","description":"Issues related to the autocomplete"},"hacktoberfest":{"color":"0052cc","name":"hacktoberfest","description":"All issues that can be solved by the community during Hacktoberfest"},"Medium effort":{"color":"D31156","name":"Medium effort","description":"Something that'll take more than a week but less than a month to build"},"Release":{"color":"57e5e0","name":"Release","description":""},"High":{"color":"c94d14","name":"High","description":"This issue blocks a user from building or impacts a lot of users"},"UI Performance":{"color":"1799b0","name":"UI Performance","description":"Issues related to UI performance"},"UI Builders Pod":{"color":"517fba","name":"UI Builders Pod","description":"Issues that UI Builders face using appsmith"},"Deploy Preview":{"color":"bfdadc","name":"Deploy Preview","description":"Issues found in Deploy Preview"},"Needs Tests":{"color":"8ee263","name":"Needs Tests","description":"Needs automated tests to assert a feature/bug fix"},"Refactor":{"color":"B96662","name":"Refactor","description":"needs refactoring of code"},"Divider Widget":{"color":"235708","name":"Divider Widget","description":"Issues related to the divider widget"},"Table Widget":{"color":"2eead1","name":"Table Widget","description":""},"Needs More Info":{"color":"e54c10","name":"Needs More Info","description":"Needs additional information"},"Good First Issue":{"color":"7057ff","name":"Good First Issue","description":"Good for newcomers"},"UI Improvement":{"color":"9aeef4","name":"UI Improvement","description":""},"Backend":{"color":"d4c5f9","name":"Backend","description":"This marks the issue or pull request to reference server code"},"Frontend":{"color":"87c7f2","name":"Frontend","description":"This label marks the issue or pull request to reference client code"},"In App Comms":{"name":"In App Comms","description":"Issues around communication with appsmith instances","color":"463cca"},"Chart Widget":{"color":"616ecc","name":"Chart Widget","description":""},"List Widget":{"color":"8508A0","name":"List Widget","description":"Issues related to the list widget"},"Duplicate":{"color":"cfd3d7","name":"Duplicate","description":"This issue or pull request already exists"},"JS Snippets":{"color":"8d62d2","name":"JS Snippets","description":"issues related to JS Snippets"},"Copy Paste":{"name":"Copy Paste","description":"Issues related to copy paste","color":"b4f0a9"},"Drag & Drop":{"name":"Drag & Drop","description":"Issues related to the drag & drop experience","color":"92115a"},"BE Coders Pod":{"color":"5d9848","name":"BE Coders Pod","description":"Issues related to users writing code to fetch and update data"},"FE Coders Pod":{"color":"a7effc","name":"FE Coders Pod","description":"Issues related to users writing javascript in appsmith"},"New Developers Pod":{"color":"6310da","name":"New Developers Pod","description":"Issues that new developers face while exploring the IDE"},"Sniping Mode":{"name":"Sniping Mode","description":"Issues related to sniping mode","color":"30c76d"},"Redis":{"name":"Redis","description":"Issues related to Redis","color":"8078b0"},"New Datasource":{"color":"60b14c","name":"New Datasource","description":"Requests for new datasources"},"Evaluated Value":{"name":"Evaluated Value","description":"Issues related to evaluated values","color":"39f6e7"},"Undo/Redo":{"name":"Undo/Redo","description":"Issues related to undo/redo","color":"f25880"},"App Navigation":{"name":"App Navigation","description":"Issues related to the topbar navigation and configuring it","color":"12b715"},"Responsive Viewport":{"color":"d12d2e","name":"Responsive Viewport","description":"Issues seen on different viewports like mobile"},"Widgets Pane":{"name":"Widgets Pane","description":"Issues related to the discovery and organisation of widgets","color":"ad5d78"},"Invite users":{"color":"1799b0","name":"Invite users","description":"Invite users flow and any associated actions"},"View Mode":{"color":"1799b0","name":"View Mode","description":"Issues related to the view mode"},"User Education Pod":{"name":"User Education Pod","description":"Issues related to user education","color":"1799b0"},"Content":{"name":"Content","description":"For content related topics i.e blogs, templates, videos","color":"a8dff7"},"Embedding Apps":{"name":"Embedding Apps","description":"Issues related to embedding","color":"30c76d"},"Slash Command":{"name":"Slash Command","description":"Issues related to the slash command","color":"a0608e"},"Widget Property":{"name":"Widget Property","description":"Issues related to adding / modifying widget properties across widgets","color":"5e92cb"},"Windows":{"name":"Windows","description":"Issues related exclusively to Windows systems","color":"b4cb8a"},"Old App Issues":{"name":"Old App Issues","description":"Issues related to apps old apps a few weeks old and app issues in stale browser session","color":"87ab18"},"Document Viewer Widget":{"name":"Document Viewer Widget","description":"Issues related to Document Viewer Widget","color":"899d4b"},"Radio Group Widget":{"name":"Radio Group Widget","description":"Issues related to radio group widget","color":"b68495"},"Super Admin":{"name":"Super Admin","description":"Issues related to the super admin page","color":"aa95cf"},"Postgres":{"name":"Postgres","description":"Postgres related issues","color":"8078b0"},"REST API plugin":{"name":"REST API plugin","description":"REST API plugin related issues","color":"8078b0"},"New JS Function":{"name":"New JS Function","description":"Issues related to adding a JS Function","color":"8e8aa4"},"Cannot Reproduce Issue":{"color":"93c9cc","name":"Cannot Reproduce Issue","description":"Issues that cannot be reproduced"},"Widget Grouping":{"name":"Widget Grouping","description":"Issues related to Widget Grouping","color":"a49951"},"K8s":{"name":"K8s","description":"Kubernetes related issues","color":"5f318a"},"Docker":{"name":"Docker","description":"Issues related to docker","color":"89b808"},"Camera Widget":{"name":"Camera Widget","description":"Issues and enhancements related to camera widget","color":"e6038e"},"SAAS Plugins":{"name":"SAAS Plugins","description":"Issues related to SAAS Plugins","color":"ef9c9d"},"JS Promises":{"name":"JS Promises","description":"Issues related to promises","color":"d7771f"},"OnPageLoad":{"name":"OnPageLoad","description":"OnPageLoad issues on functions and queries","color":"50559d"},"JS Usability":{"name":"JS Usability","description":"usability issues with JS editor and JS elsewhere","color":"a302b0"},"Currency Input Widget":{"name":"Currency Input Widget","description":"Issues related to currency input widget","color":"b2164f"},"TreeSelect":{"name":"TreeSelect","description":"Issues related to TreeSelect Widget","color":"a1633e"},"MultiTree Select Widget":{"name":"MultiTree Select Widget","description":"Issues related to MultiTree Select Widget","color":"a1633e"},"Welcome Screen":{"name":"Welcome Screen","description":"Issues related to the welcome screen","color":"30c76d"},"Realtime Commenting":{"color":"a70b86","name":"Realtime Commenting","description":"In-app communication between teams"},"Phone Input Widget":{"name":"Phone Input Widget","description":"Issues related to the Phone Input widget","color":"a70b86"},"JSON Form":{"name":"JSON Form","description":"Issue / features related to the JSON form wiget","color":"46b209"},"All Widgets":{"name":"All Widgets","description":"Issues related to all widgets","color":"972b36"},"V1":{"name":"V1","description":"V1","color":"67ab2e"},"Reflow & Resize":{"name":"Reflow & Resize","description":"All issues related to reflow and resize experience","color":"748a13"},"App Theming":{"name":"App Theming","description":"Items that are related to the App level theming controls epic","color":"905420"},"SSO":{"name":"SSO","description":"Issues, requests and enhancements around Single sign-on.","color":"bf019b"},"Multi User Realtime":{"name":"Multi User Realtime","description":"Issues related to multiple users using or editing an application","color":"e7b6ce"},"Templates":{"name":"Templates","description":"Issues related to templates","color":"b7e568"},"Ready for design":{"name":"Ready for design","description":"this issue is ready for design: it contains clear problem statements and other required information","color":"ebf442"},"Support":{"name":"Support","description":"Issues created by the A-force team to address user queries","color":"1740f3"},"Button Group widget":{"name":"Button Group widget","description":"Issue and enhancements related to the button group widget","color":"f17025"},"GraphQL Plugin":{"name":"GraphQL Plugin","description":"Issues related to GraphQL plugin","color":"8078b0"},"DevOps Pod":{"name":"DevOps Pod","description":"Issues related to devops","color":"d956c7"},"medium":{"name":"medium","description":"Issues that frustrate users due to poor UX","color":"23dfd9"},"ArangoDB":{"name":"ArangoDB","description":"Issues related to arangoDB","color":"8078b0"},"Code Refactoring":{"name":"Code Refactoring","description":"Issues related to code refactoring","color":"76310e"},"Progress bar widget":{"name":"Progress bar widget","description":"To track issues related to progress bar","color":"2d7abf"},"Audio Recorder Widget":{"name":"Audio Recorder Widget","description":"Issues related to Audio Recorder Widget","color":"9accef"},"Airtable":{"name":"Airtable","description":"Issues for Airtable","color":"60885f"},"RBAC":{"name":"RBAC","description":"Issues, requests and enhancements around RBAC.","color":"9211c3"},"Canvas / Grid":{"name":"Canvas / Grid","description":"Issues related to the canvas","color":"16b092"},"Email Config":{"name":"Email Config","description":"Issues related to configuring the email service","color":"2a21d1"},"CURL":{"name":"CURL","description":"Issues related to CURL impor","color":"60885f"},"Canvas Zooms":{"name":"Canvas Zooms","description":"Issues related to zooming the canvas","color":"e6038e"},"business":{"name":"business","description":"Features that will be a part of our business edition","color":"cd59eb"},"Action Pod":{"name":"Action Pod","description":"","color":"ee2e36"},"AutomationGap1":{"color":"a5e07c","name":"AutomationGap1","description":"Issues that needs automated tests"},"A-Force11":{"name":"A-Force11","description":"Issues raised by A-Force team","color":"d667b6"},"Business Edition":{"name":"Business Edition","description":"Features that will be a part of our business edition","color":"89bb6c"},"storeValue":{"name":"storeValue","description":"Issues related to the store value function","color":"5d3e66"},"Tests":{"name":"Tests","description":"test item","color":"1c6990"},"DynamoDB":{"name":"DynamoDB","description":"Issues that are related to DynamoDB should have this label","color":"60885f"},"Design System Pod":{"name":"Design System Pod","description":"Appsmith design system related issues","color":"706f03"},"ABAC":{"color":"e009a5","name":"ABAC","description":"User permissions and access controls"},"Backup & Restore":{"name":"Backup & Restore","description":"Issues related to backup and restore","color":"86874d"},"Billing":{"name":"Billing","description":"Billing infrastructure and flows for Business Edition and Trial users","color":"d2bc40"},"Datatype issue":{"name":"Datatype issue","description":"Issues that have risen because data types weren't handled","color":"60885f"},"OAuth":{"name":"OAuth","description":"OAuth related bugs or features","color":"60885f"},"Table Widget V2":{"name":"Table Widget V2","description":"Issues related to Table Widget V2","color":"3a7192"},"IDE Navigation":{"name":"IDE Navigation","description":"Issues/feature requests related to IDE navigation, and context switching","color":"bc0cba"},"Query performance":{"name":"Query performance","description":"Issues that have to do with lack in performance of query execution","color":"e4d966"},"SAAS Manager App":{"name":"SAAS Manager App","description":"Issues with the SAAS manager app","color":"d427db"},"Twilio":{"name":"Twilio","description":"Issues related to Twilio integration","color":"23ba8d"},"Hubspot":{"name":"Hubspot","description":"Issues related to Hubspot integration","color":"60885f"},"Zendesk":{"name":"Zendesk","description":"Issues related to Zendesk integration","color":"60885f"},"Entity Refactor":{"name":"Entity Refactor","description":"Issues related to refactor logic","color":"418fa4"},"Branding":{"name":"Branding","description":"All issues under branding and whitelabelling appsmith ecosystem","color":"7aaaf1"},"Map Chart Widget":{"name":"Map Chart Widget","description":"Issues related to Map Chart Widgets","color":"c8397f"},"Product Catchup":{"name":"Product Catchup","description":"Issues created in the product catchup","color":"29cd2c"},"Framework Functions":{"name":"Framework Functions","description":"Issues related to internal functions like showAlert(), navigateTo() etc...","color":"c25a09"},"Frontend Libraries Upgrade":{"name":"Frontend Libraries Upgrade","description":"Issues related to frontend libraries upgrade","color":"ede1fc"},"Audit Logs":{"name":"Audit Logs","description":"Audit trails to ensure data security","color":"f3fd62"},"MsSQL":{"name":"MsSQL","description":"Issues related to MsSQL plugin","color":"8078b0"},"Data Platform Pod":{"name":"Data Platform Pod","description":"Issues related to the underlying data platform","color":"3f8c3a"},"Integrations Pod":{"name":"Integrations Pod","description":"Issues related to a specific integration","color":"5dbbb1"},"Datasource Environments":{"name":"Datasource Environments","description":"Issues related to datasource environments","color":"bb7a14"},"Elastic Search":{"name":"Elastic Search","description":"Issues related to the elastic search datasource","color":"8078b0"},"Core Query Execution":{"color":"418fa4","name":"Core Query Execution","description":"Issues related to the execution of all queries"},"Query Management":{"name":"Query Management","description":"Issues related to the CRUD of actions or queries","color":"6a5b42"},"Query Settings":{"name":"Query Settings","description":"Issues related to the settings of all queries","color":"c7da7a"},"Code Editor":{"name":"Code Editor","description":"Issues related to the code editor","color":"4ca16e"},"Query Forms":{"color":"12b253","name":"Query Forms","description":"Isuses related to the query forms"},"JS Objects":{"color":"22962c","name":"JS Objects","description":"Issues related to JS Objects"},"JS Evaluation":{"color":"22962c","name":"JS Evaluation","description":"Issues related to JS evaluation on the platform"},"SmartSubstitution":{"name":"SmartSubstitution","description":"Issues related to Smart substitution of mustache bindings in queries","color":"e4d966"},"Query Generation":{"name":"Query Generation","description":"Issues related to query generation","color":"e4d966"},"Suggested Widgets":{"name":"Suggested Widgets","description":"Issues related to suggesting widgets based on query response","color":"e4d966"},"Page load executions":{"name":"Page load executions","description":"Issues related to page load execution","color":"5696b2"},"Code Scanner Widget":{"name":"Code Scanner Widget","description":"Issues related to code scanner widget","color":"9bc1a0"},"Clean URLs":{"name":"Clean URLs","description":"Issues related to clean URLs epic","color":"112623"},"Widget keyboard accessibility":{"name":"Widget keyboard accessibility","description":"All issues related to keyboard accessibility in widgets","color":"b626fd"},"Connection pool":{"name":"Connection pool","description":"issues to do with connection pooling of various plugins","color":"94fe36"},"List Widget V2":{"name":"List Widget V2","description":"Issues related to the list widget v2","color":"adaaf7"},"Auto Height":{"name":"Auto Height","description":"Issues related to dynamic height of widgets","color":"5149cf"},"cypress_failed_test":{"name":"cypress_failed_test","description":"Cypress failed tests","color":"4745d5"},"Needs validation":{"name":"Needs validation","description":"Needs problem validation before being picked up","color":"66673d"},"Slider Widget":{"name":"Slider Widget","description":"Issues raised for slider widgets.","color":"2eef5f"},"Multitenancy":{"name":"Multitenancy","description":"Support multitenancy within single appsmith instance","color":"8c49a9"},"Git Pod":{"name":"Git Pod","description":"Anything related to git sync","color":"2e5ba4"},"Mobile Pod":{"name":"Mobile Pod","description":"All issues related to mobile responsiveness","color":"6c97fd"},"Responsive Widget":{"name":"Responsive Widget","description":"All issues related to widget responsiveness","color":"d12d2e"},"Responsive Canvas":{"name":"Responsive Canvas","description":"All issues related to canvas responsiveness","color":"45a0a8"},"Conversion Algorithm":{"name":"Conversion Algorithm","description":"All issue related to converting app from fixed to flex mode & vice versa","color":"d12d2e"},"Spacing":{"name":"Spacing","description":"All issue related to spacing between widgets in auto layout","color":"d12d2e"},"Browser specific":{"name":"Browser specific","description":"All issue related to browser","color":"d12d2e"},"Error Handling":{"name":"Error Handling","description":"Issues related to error handling","color":"4e1872"},"Performance infra":{"name":"Performance infra","description":"all issue related to the performance infra","color":"8a60f6"},"DSL Update":{"name":"DSL Update","description":"Issues related to storing and updating the DSL","color":"e16cf3"},"AST-frontend":{"name":"AST-frontend","description":"Issues related to maintaining AST logic","color":"434a3a"},"AST-backend":{"name":"AST-backend","description":"Backend issues related to AST parsing","color":"c476eb"},"MariaDB":{"name":"MariaDB","description":"MariaDB datasource","color":"8428c3"},"Billing & Usage Pod":{"name":"Billing & Usage Pod","description":"Issues pertaining to licensing, billing, usage across self serve and enterprise customers","color":"256808"},"ADS Component Issue":{"name":"ADS Component Issue","description":"Issues which are caused due to ADS components","color":"d89119"},"Regressed":{"color":"723fd0","name":"Regressed","description":"Scenarios that were working before but have now regressed"},"Needs RCA":{"name":"Needs RCA","description":"a critical or high priority issue that needs an RCA","color":"2cc68f"},"Custom JS Libraries":{"name":"Custom JS Libraries","description":"Issues related to adding custom JS library","color":"bacb6d"},"Integrations Pod General":{"name":"Integrations Pod General","description":"Issues related to the Integrations Pod that don't fit into other tags.","color":"287823"},"Performance Pod":{"name":"Performance Pod","description":"All things related to Appsmith performance","color":"b5a25d"},"Performance":{"name":"Performance","description":"Issues related to performance","color":"9a18d7"},"File upload issues":{"name":"File upload issues","description":"Issues related to uploading any type of files from within Appsmith","color":"8154df"},"Action Selector":{"name":"Action Selector","description":"Issues related to action selector on the property pane","color":"2f9e20"},"Widget design system":{"name":"Widget design system","description":"","color":"cb6188"},"Deploy App":{"name":"Deploy App","description":"Issues related to app deployment","color":"6f6152"},"Community Reported":{"name":"Community Reported","description":"issues reported by community members","color":"1402e5"},"JS Function execution":{"name":"JS Function execution","description":"JS function execution","color":"7c2de1"},"Self Serve":{"name":"Self Serve","description":"For all issues related to self-serve flow for business edition","color":"4dacfc"},"Self Serve 1.0":{"name":"Self Serve 1.0","description":"For all issues related to v1 of the self serve project","color":"ae839e"},"CE Instance":{"name":"CE Instance","description":"For all issues relating to usage, licensing or billing on the CE instance","color":"d2bc40"},"Customer Portal":{"name":"Customer Portal","description":"For all tasks/issues pertaining to customer.appsmith.com","color":"d2bc40"},"Cloud Services":{"name":"Cloud Services","description":"For all tasks/issues on Appsmith cloud-services relating to licensing, usage and billing","color":"d2bc40"},"Billing Integrations":{"name":"Billing Integrations","description":"For all issues relating to 3P integrations Appsmith is using for billing & usage","color":"d2bc40"},"One-click Binding":{"name":"One-click Binding","description":"Issues related to the One click binding epic","color":"f1661c"},"Airgap":{"name":"Airgap","description":"Tickets related to supporting air-gapped Appsmith instances","color":"1cb294"},"SMTP plugin":{"name":"SMTP plugin","description":"Issues related to SMTP plugin","color":"541457"},"AWS AMI":{"name":"AWS AMI","description":"Issues Related to AWS AMI","color":"b44680"},"Old widget version":{"name":"Old widget version","description":"Use this label to raise issue specific only to an older version of a widget","color":"ff3814"},"Enterprise Billing":{"name":"Enterprise Billing","description":"To track all tasks/issues related to licensing & billing for enterprise customers","color":"14c156"},"Appsmith Business Cloud":{"name":"Appsmith Business Cloud","description":"Issues related to our business cloud offering","color":"89bb6c"},"Oracle SQL DB":{"name":"Oracle SQL DB","description":"Issues related to the Oracle plugin","color":"cbabcb"},"Community Contributor":{"name":"Community Contributor","description":"Meant to track issues that are assigned to external contributors","color":"149ab6"},"widget vertical alignment":{"name":"widget vertical alignment","description":"All issue related widget vertical alignment on the auto layout canvas","color":"d12d2e"},"Observability":{"name":"Observability","description":"Issues related to observability on the Appsmith instance","color":"dff913"},"Checkbox Component":{"name":"Checkbox Component","description":"This labels deals with checkbox component in wds package","color":"75a401"},"In-app ramps":{"name":"In-app ramps","description":"For all tasks/issues relating to adding in-app ramps in the community edition of the product","color":"8abae0"},"Analytics Improvements":{"name":"Analytics Improvements","description":"For all tasks focused on improving our overall analytics and fixing any issues ","color":"29b8ed"},"WDS team":{"name":"WDS team","description":"","color":"8d675a"},"Enterprise Edition":{"name":"Enterprise Edition","description":"Features that will be supported in Enterprise Edition only","color":"984f5e"},"Query filter":{"name":"Query filter","description":"Issues related to query filtering, e.g., WHERE clause","color":"a15134"},"Keyboard accessibility ":{"name":"Keyboard accessibility ","description":"All issue related to ADS component keyboard accessibility","color":"2ba696"},"Toggle button":{"name":"Toggle button","description":"All issue related to ADS toggle button","color":"edc47f"},"1-click upgrade":{"name":"1-click upgrade","description":"For all issues/tasks related to 1-click upgrade & downgrade project","color":"129082"},"Feature Flagging":{"name":"Feature Flagging","description":"Anything related feature flagging","color":"30c76d"},"SCIM":{"name":"SCIM","description":"Label to collate our SCIM issues","color":"61a852"},"ADS Category Token":{"name":"ADS Category Token","description":"All issues related appsmith design system category tokens","color":"920961"},"ADS Component Documentation":{"name":"ADS Component Documentation","description":"All issues Appsmith design system component documentation","color":"64c46a"},"ADS Migration":{"name":"ADS Migration","description":"All issues related to Appsmith design system migration","color":"b082d6"},"ADS Deduplication ":{"name":"ADS Deduplication ","description":"Replacing component with ADS components","color":"b082d6"},"ADS Revamp":{"name":"ADS Revamp","description":"All issues related to ads revamp. ","color":"b082d6"},"ADS Deduplication":{"name":"ADS Deduplication","description":"Replacing component with ADS components","color":"b082d6"},"ADS Grayscale":{"name":"ADS Grayscale","description":"Support grayscale color changes","color":"b03577"},"ADS Unit Test":{"name":"ADS Unit Test","description":"All issue related ads unit cases ","color":"b082d6"},"ADS Components":{"name":"ADS Components","description":"All issues related ADS components","color":"b082d6"},"Widget Discoverability":{"name":"Widget Discoverability","description":"Issues related to Widget Discoverability","color":"7b55ce"},"Widget setter method":{"name":"Widget setter method","description":"Issues with widget property setters","color":"8dce87"},"License":{"name":"License","description":"For all issues/tasks related to licensing of appsmith-ee edition","color":"90ee98"},"Templates pod":{"name":"Templates pod","description":"Issues related to Templates","color":"b7e568"},"Community template":{"name":"Community template","description":"Label for development of community templates and its integration to platform","color":"8a0510"},"DocumentDB":{"name":"DocumentDB","description":"Issues related to support DocumentDB in Appsmith Data layer","color":"2c8b56"},"Multiple Environments":{"name":"Multiple Environments","description":"Issues or tasks related to multiple environments","color":"4e972b"},"Platformization":{"name":"Platformization","description":"Issues or tasks related to platformization of Appsmith codebase","color":"4e972b"},"Activation - datasources":{"name":"Activation - datasources","description":"issues related to activation projects","color":"7c7ace"},"Partial-import-export":{"name":"Partial-import-export","description":"Label for granular reusability.","color":"1e439c"},"AI":{"name":"AI","description":"All tasks related to AI","color":"361281"},"Custom environments":{"name":"Custom environments","description":"Issues with creating or working with custom environments","color":"2137d6"},"ADS Typography":{"name":"ADS Typography","description":"All issue related typographical changes","color":"2dbe8d"},"Auto Layout":{"name":"Auto Layout","description":"Issues relates to auto layout","color":"92cf8c"},"Heroku":{"name":"Heroku","description":"Issues related to Heroku","color":"a81b69"},"ADS Visual Styles":{"name":"ADS Visual Styles","description":"All issues related to ADS visual styles","color":"d3da89"},"ADS Component Design":{"name":"ADS Component Design","description":"All issue related to component design","color":"5cc91e"},"Modal Component":{"name":"Modal Component","description":"All issue related to ads modal component","color":"ee63f3"},"App setting":{"name":"App setting","description":"Related to app settings panel within the app","color":"144206"},"BE instance":{"name":"BE instance","description":"For all issues related to license, billing on BE instance","color":"ae8f98"},"Workflows":{"name":"Workflows","description":"For all issues related to the Workflows feature","color":"ae2aa6"},"Schema":{"name":"Schema","description":"Issues related to database schema","color":"c470c2"},"AI Pod":{"name":"AI Pod","description":"Pod for all AI related tasks","color":"d18528"},"Fixed layout":{"name":"Fixed layout","description":"issues related to fixed layout","color":"b66681"},"Anvil layout":{"name":"Anvil layout","description":"issues related to the new layout system anvil","color":"722bf0"},"New Deployment Mode":{"name":"New Deployment Mode","description":"Support a new mode of deployment","color":"108033"},"Custom widgets":{"name":"Custom widgets","description":"For all issues related to the custom widget project","color":"c9db9c"},"IDE Pod":{"name":"IDE Pod","description":"https://app.zenhub.com/workspaces/new-developers-pod-60507ad1d4b98d00150a2858/board","color":"d3d248"},"TM_BU":{"name":"TM_BU","description":"The issues on Team Manager which needs to be taken up by Billing & Usage","color":"198cdf"},"Homepage Experience V2":{"name":"Homepage Experience V2","description":"Label for reporting new tasks and bug fixes related to revamped homepage experience","color":"c55d54"}},"success":true}
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index 4af1d28854..55e3511a87 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -32,7 +32,10 @@ RUN cd ./utils && npm install --only=prod && npm install --only=prod -g . && cd
&& chmod +x *.sh templates/nginx-app.conf.sh /watchtower-hooks/*.sh \
# Disable setuid/setgid bits for the files inside container.
&& find / \( -path /proc -prune \) -o \( \( -perm -2000 -o -perm -4000 \) -print -exec chmod -s '{}' + \) || true \
- && node prepare-image.mjs
+ && node prepare-image.mjs \
+ && mkdir -p /.mongodb/mongosh /appsmith-stacks \
+ && chmod ugo+w /etc /appsmith-stacks \
+ && chmod -R ugo+w /var/lib/nginx /var/log/nginx /var/run /usr/sbin/cron /.mongodb /etc/ssl /usr/local/share
LABEL com.centurylinklabs.watchtower.lifecycle.pre-check=/watchtower-hooks/pre-check.sh
LABEL com.centurylinklabs.watchtower.lifecycle.pre-update=/watchtower-hooks/pre-update.sh
diff --git a/README.md b/README.md
index 0dcbd00be6..9174c78f6d 100644
--- a/README.md
+++ b/README.md
@@ -93,40 +93,38 @@ Let's build great software together.
[](https://github.com/ayushpahwa)
[](https://github.com/sneha122)
[](https://github.com/ApekshaBhosale)
-[](https://github.com/yatinappsmith)
[](https://github.com/Parthvi12)
+[](https://github.com/yatinappsmith)
[](https://github.com/somangshu)
[](https://github.com/pratapaprasanna)
[](https://github.com/pranavkanade)
-[](https://github.com/marks0351)
[](https://github.com/albinAppsmith)
+[](https://github.com/marks0351)
[](https://github.com/nsarupr)
[](https://github.com/ashit-rath)
-[](https://github.com/sondermanish)
[](https://github.com/NilanshBansal)
+[](https://github.com/sondermanish)
+[](https://github.com/KelvinOm)
[](https://github.com/dhruvikn)
[](https://github.com/rajatagrawal)
-[](https://github.com/KelvinOm)
[](https://github.com/areyabhishek)
-[](https://github.com/Druthi)
[](https://github.com/subrata71)
[](https://github.com/ichik)
[](https://github.com/dipyamanbiswas07)
[](https://github.com/rahulbarwal)
[](https://github.com/ankitsrivas14)
[](https://github.com/vsvamsi1)
-[](https://github.com/sharanya-appsmith)
[](https://github.com/brayn003)
-[](https://github.com/shubham7saxena7)
-[](https://github.com/dvj1988)
+[](https://github.com/sharanya-appsmith)
[](https://github.com/vivonk)
+[](https://github.com/dvj1988)
[](https://github.com/ramsaptami)
[](https://github.com/rohan-arthur)
+[](https://github.com/jacquesikot)
[](https://github.com/danciaclara)
[](https://github.com/kocharrahul7)
[](https://github.com/riteshkew)
[](https://github.com/srix)
-[](https://github.com/jacquesikot)
[](https://github.com/laveena-en)
[](https://github.com/RakshaKShetty)
[](https://github.com/Rishabhkaul)
@@ -169,6 +167,7 @@ Let's build great software together.
[](https://github.com/kavitasmoolya)
[](https://github.com/NeelPattani1)
[](https://github.com/rashmi-sahoo-git)
+[](https://github.com/michael-peach-appsmith)
[](https://github.com/akash-codemonk)
[](https://github.com/Tooluloope)
[](https://github.com/rishabhsaxena)
@@ -194,6 +193,7 @@ Let's build great software together.
[](https://github.com/tanvibhakta)
[](https://github.com/rashmigowda55)
[](https://github.com/ankurrsinghal)
+[](https://github.com/Druthi)
[](https://github.com/geekup-legodevops)
[](https://github.com/megaconfidence)
[](https://github.com/vihar)
@@ -216,6 +216,7 @@ Let's build great software together.
[](https://github.com/iamakulov)
[](https://github.com/iamrkcheers)
[](https://github.com/sumanthyedoti)
+[](https://github.com/shubham7saxena7)
[](https://github.com/vaibh1297)
[](https://github.com/vnodecg)
[](https://github.com/pc9795)
@@ -345,6 +346,7 @@ Let's build great software together.
[](https://github.com/Sufiyan1997)
[](https://github.com/rayrny)
[](https://github.com/trishitapingolia)
+[](https://github.com/trivikr)
[](https://github.com/webdott)
[](https://github.com/vasanthkumar18)
[](https://github.com/VanshajPoonia)
diff --git a/app/client/cypress/e2e/Regression/Apps/MongoDBShoppingCart_spec.ts b/app/client/cypress/e2e/Regression/Apps/MongoDBShoppingCart_spec.ts
index cfc049ebdd..5092af0694 100644
--- a/app/client/cypress/e2e/Regression/Apps/MongoDBShoppingCart_spec.ts
+++ b/app/client/cypress/e2e/Regression/Apps/MongoDBShoppingCart_spec.ts
@@ -170,6 +170,7 @@ describe("Shopping cart App", function () {
);
agHelper.GetNClick(appPage.addButton, 0, true);
assertHelper.AssertNetworkStatus("@postExecute");
+ agHelper.Sleep(3000);
// Deleting the book from the cart
agHelper.GetNClick(appPage.deleteButton, 1, false);
assertHelper.AssertNetworkStatus("@postExecute");
diff --git a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/StoreValue_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/StoreValue_spec.ts
index c299e2fb70..fe1af0cca7 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/StoreValue_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/StoreValue_spec.ts
@@ -5,6 +5,8 @@ import {
propPane,
deployMode,
debuggerHelper,
+ locators,
+ draggableWidgets,
} from "../../../../support/Objects/ObjectsCore";
describe("storeValue Action test", () => {
@@ -52,6 +54,9 @@ describe("storeValue Action test", () => {
});
deployMode.DeployApp();
+ agHelper.AssertElementVisibility(
+ locators._widgetInDeployed(draggableWidgets.BUTTON),
+ );
agHelper.ClickButton("StoreTest");
agHelper.AssertContains(
JSON.stringify({
diff --git a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/AppNavigationWithAutoLayout_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/AppNavigationWithAutoLayout_spec.ts
index c457265c23..3c5273962c 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/AppNavigationWithAutoLayout_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/AppNavigationWithAutoLayout_spec.ts
@@ -1,12 +1,15 @@
import {
agHelper,
- locators,
- entityExplorer,
- propPane,
appSettings,
autoLayout,
draggableWidgets,
+ entityExplorer,
+ locators,
+ propPane,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
describe("Validating multiple widgets in auto layout mode with App navigation settings", function () {
it("1. Drag and Drop multiple widgets in auto layout mode", function () {
@@ -19,13 +22,13 @@ describe("Validating multiple widgets in auto layout mode with App navigation se
it("2. Change App navigation settings and valdiate the layout settings", () => {
entityExplorer.SelectEntityByName("Page1", "Pages");
- agHelper.GetNClick(appSettings.locators._appSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
agHelper.GetNClick(appSettings.locators._navigationSettingsTab);
agHelper.GetNClick(
appSettings.locators._navigationSettings._orientationOptions._side,
);
agHelper.AssertElementExist(appSettings.locators._sideNavbar);
- agHelper.GetNClick(locators._canvas);
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
agHelper.AssertElementExist(locators._widgetInCanvas("inputwidgetv2"));
agHelper.AssertElementExist(locators._widgetInCanvas("inputwidgetv2"), 1);
agHelper.AssertElementExist(locators._fixedLayout);
diff --git a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/AppNavigationWithMultiplePages_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/AppNavigationWithMultiplePages_spec.ts
index 8b3a967e88..eca404bbac 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/AppNavigationWithMultiplePages_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/AppNavigationWithMultiplePages_spec.ts
@@ -1,18 +1,22 @@
import {
agHelper,
- locators,
- entityExplorer,
- propPane,
- deployMode,
appSettings,
autoLayout,
+ deployMode,
draggableWidgets,
+ entityExplorer,
+ locators,
+ propPane,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
+
let currentUrl: string;
describe("Page orientation and navigation related usecases ", function () {
it("1. Change 'Orientation' to 'Side', sidebar should appear", () => {
- agHelper.GetNClick(appSettings.locators._appSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
agHelper.GetNClick(appSettings.locators._navigationSettingsTab);
agHelper.GetNClick(
appSettings.locators._navigationSettings._orientationOptions._side,
diff --git a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/NavigationSettings_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/NavigationSettings_spec.ts
index fb75d971c7..0dd3e910a6 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/NavigationSettings_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/NavigationSettings_spec.ts
@@ -5,10 +5,13 @@ import {
deployMode,
appSettings,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
describe("Test app's navigation settings", function () {
it("1. Open app settings and navigation tab should be there and when the navigation tab is selected, navigation preview should be visible", () => {
- agHelper.GetNClick(appSettings.locators._appSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
agHelper.AssertElementVisibility(
appSettings.locators._navigationSettingsTab,
);
@@ -34,7 +37,7 @@ describe("Test app's navigation settings", function () {
//Browser back is used as the Navbar is off and there wont be option to come back to editor
agHelper.BrowserNavigation(-1);
// Wait for the app to load
- agHelper.GetNClick(appSettings.locators._appSettings, 0, true);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
agHelper.GetNClick(appSettings.locators._navigationSettingsTab);
// Toggle show navbar back to on
agHelper.GetNClick(
@@ -60,7 +63,7 @@ describe("Test app's navigation settings", function () {
it("4. Change 'Orientation' back to 'Top', and 'Nav style' to 'Inline', page navigation items should appear inline", () => {
entityExplorer.AddNewPage();
- agHelper.GetNClick(appSettings.locators._appSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
agHelper.GetNClick(appSettings.locators._navigationSettingsTab);
agHelper.GetNClick(
appSettings.locators._navigationSettings._orientationOptions._top,
diff --git a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/SidebarCollapse_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/SidebarCollapse_spec.ts
index 128d4223b1..02fb20f7c3 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/SidebarCollapse_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/SidebarCollapse_spec.ts
@@ -4,11 +4,14 @@ import {
appSettings,
locators,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
describe("Test Sidebar Collapse", function () {
it("1. Sidebar collapse button should be there", () => {
// First make sure that nav orientation is set to side
- agHelper.GetNClick(appSettings.locators._appSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
agHelper.GetNClick(appSettings.locators._navigationSettingsTab);
agHelper.GetNClick(
appSettings.locators._navigationSettings._orientationOptions._side,
diff --git a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/Sidebar_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/Sidebar_spec.ts
index e6e0b7cb4c..cb27d48722 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/Sidebar_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/Sidebar_spec.ts
@@ -6,6 +6,9 @@ import {
assertHelper,
locators,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
describe("Test Sidebar navigation style", function () {
before(() => {
@@ -26,7 +29,7 @@ describe("Test Sidebar navigation style", function () {
});
it("1. Change 'Orientation' to 'Side', sidebar should appear", () => {
- agHelper.GetNClick(appSettings.locators._appSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
agHelper.GetNClick(appSettings.locators._navigationSettingsTab);
agHelper.GetNClick(
appSettings.locators._navigationSettings._orientationOptions._side,
@@ -60,7 +63,7 @@ describe("Test Sidebar navigation style", function () {
);
// Changing color style to theme should change navigation's background color
deployMode.NavigateBacktoEditor();
- agHelper.GetNClick(appSettings.locators._appSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
agHelper.GetNClick(appSettings.locators._navigationSettingsTab);
agHelper.GetNClick(appSettings.locators._colorStyleOptions._theme, 0, true);
deployMode.DeployApp();
diff --git a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/TopInline_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/TopInline_spec.ts
index 9ff0e9db70..fd23928cc1 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/TopInline_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/TopInline_spec.ts
@@ -6,6 +6,9 @@ import {
appSettings,
locators,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
describe("Test Top + Inline navigation style", function () {
before(() => {
@@ -27,7 +30,7 @@ describe("Test Top + Inline navigation style", function () {
});
it("1. Change 'Orientation' to 'Top', and 'Nav style' to 'Inline', page navigation items should appear inline", () => {
- agHelper.GetNClick(appSettings.locators._appSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
agHelper.GetNClick(appSettings.locators._navigationSettingsTab);
agHelper.GetNClick(
appSettings.locators._navigationSettings._orientationOptions._top,
@@ -101,7 +104,7 @@ describe("Test Top + Inline navigation style", function () {
);
// Changing color style to theme should change navigation's background color
deployMode.NavigateBacktoEditor();
- agHelper.GetNClick(appSettings.locators._appSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
agHelper.GetNClick(appSettings.locators._navigationSettingsTab);
agHelper.GetNClick(appSettings.locators._colorStyleOptions._theme, 0, true);
deployMode.DeployApp();
diff --git a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/TopStacked_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/TopStacked_spec.ts
index 1cf689aeaa..c388017a4b 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/TopStacked_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/AppNavigation/TopStacked_spec.ts
@@ -6,6 +6,9 @@ import {
appSettings,
locators,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
describe("Test Top + Stacked navigation style", function () {
before(() => {
@@ -124,7 +127,7 @@ describe("Test Top + Stacked navigation style", function () {
);
// Changing color style to theme should change navigation's background color
deployMode.NavigateBacktoEditor();
- agHelper.GetNClick(appSettings.locators._appSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
agHelper.GetNClick(appSettings.locators._navigationSettingsTab);
agHelper.GetNClick(appSettings.locators._colorStyleOptions._theme, 0, true);
deployMode.DeployApp();
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/Autocomplete_setters_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/Autocomplete_setters_spec.ts
index 2f23daf1c4..a9ab1ac4a7 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/Autocomplete_setters_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/Autocomplete_setters_spec.ts
@@ -80,4 +80,29 @@ describe("Autocomplete tests for setters", () => {
propPane.EnterJSContext("onClick", "{{Input1.set", true, false);
agHelper.GetElementsNAssertTextPresence(locators._hints, "setDisabled");
});
+
+ it("3. function arguments hint shows up", () => {
+ entityExplorer.SelectEntityByName("Button1");
+ propPane.EnterJSContext("onClick", "{{", true, false);
+ agHelper.GetNClickByContains(locators._hints, "appsmith", 0, false);
+ agHelper.AssertElementVisibility(locators._evalValuePopover);
+ propPane.EnterJSContext("onClick", "{{showAlert", true, false);
+ agHelper.GetElementsNAssertTextPresence(locators._hints, "showAlert");
+ agHelper.AssertElementAbsence(locators._evalValuePopover);
+ agHelper.GetNClickByContains(locators._hints, "showAlert", 0, false);
+ agHelper.GetNAssertElementText(
+ locators._argHintFnName,
+ "showAlert",
+ "contain.text",
+ );
+ agHelper.AssertElementAbsence(locators._evalValuePopover);
+ });
+
+ it("4. function description tooltip shows up", () => {
+ entityExplorer.DragDropWidgetNVerify(draggableWidgets.BUTTON, 100, 100);
+ entityExplorer.SelectEntityByName("Button1");
+ propPane.EnterJSContext("onClick", "{{showAlert", true, false);
+ agHelper.GetElementsNAssertTextPresence(locators._hints, "showAlert");
+ agHelper.AssertElementExist(locators._tern_doc);
+ });
});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/Bugs_AC_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/Bugs_AC_Spec.ts
index 2dbf74a72e..e0532155c0 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/Bugs_AC_Spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/Bugs_AC_Spec.ts
@@ -8,6 +8,9 @@ import {
installer,
draggableWidgets,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
describe("Autocomplete bug fixes", function () {
it("1. Bug #12790 Verifies if selectedRow is in best match", function () {
@@ -90,10 +93,11 @@ describe("Autocomplete bug fixes", function () {
"excludeForAirgap",
"7. Installed library should show up in autocomplete",
function () {
- entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
installer.OpenInstaller();
installer.InstallLibrary("uuidjs", "UUID");
installer.CloseInstaller();
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
entityExplorer.SelectEntityByName("Text1");
propPane.TypeTextIntoField("Text", "{{UUI");
agHelper.GetNAssertElementText(locators._hints, "UUID");
@@ -105,7 +109,9 @@ describe("Autocomplete bug fixes", function () {
"8. No autocomplete for Removed libraries",
function () {
entityExplorer.RenameEntityFromExplorer("Text1Copy", "UUIDTEXT");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
installer.uninstallLibrary("uuidjs");
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
propPane.TypeTextIntoField("Text", "{{UUID.");
agHelper.AssertElementAbsence(locators._hints);
},
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/autocomplete_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/autocomplete_spec.js
index dd0150501e..d4d1e445f6 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/autocomplete_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/autocomplete_spec.js
@@ -38,28 +38,7 @@ describe("Dynamic input autocomplete", () => {
cy.testJsontext("label", "", {
parseSpecialCharSequences: true,
});
- // Tests if "No suggestions" message will pop if you type any garbage
- cy.get(dynamicInputLocators.input)
- .first()
- .click({ force: true })
- .type("{uparrow}", { parseSpecialCharSequences: true })
- .type("{ctrl}{shift}{downarrow}", { parseSpecialCharSequences: true })
- .type("{backspace}", { parseSpecialCharSequences: true })
-
- .then(() => {
- cy.get(dynamicInputLocators.input)
- .first()
- .click({ force: true })
- .type("{{garbage", {
- parseSpecialCharSequences: true,
- });
- cy.get(".CodeMirror-Tern-tooltip").should(
- "have.text",
- "No suggestions",
- );
- });
});
- cy.evaluateErrorMessage("garbage is not defined");
});
it("2. Test if action inside non event field throws error & open current value popup", () => {
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Binding/ButtonWidgets_NavigateTo_validation_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Binding/ButtonWidgets_NavigateTo_validation_spec.js
index 8c65268747..bdfb7ee555 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Binding/ButtonWidgets_NavigateTo_validation_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Binding/ButtonWidgets_NavigateTo_validation_spec.js
@@ -32,7 +32,5 @@ describe("Binding the button Widgets and validating NavigateTo Page functionalit
locators._widgetInDeployed(draggableWidgets.BUTTON),
);
cy.url().should("contain", testdata.externalPage);
-
-
});
});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/ApiBugs_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/BugTests/ApiBugs_Spec.ts
index a320a1c4ad..974f21de8d 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/BugTests/ApiBugs_Spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/ApiBugs_Spec.ts
@@ -17,6 +17,9 @@ import {
ERROR_ACTION_EXECUTE_FAIL,
createMessage,
} from "../../../../support/Objects/CommonErrorMessages";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
describe("API Bugs", function () {
before(() => {
@@ -60,6 +63,7 @@ describe("API Bugs", function () {
action: "Delete",
entityType: entityItems.Api,
});
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
});
it("3. Bug 18876 Ensures application does not crash when saving datasource", () => {
@@ -71,7 +75,7 @@ describe("API Bugs", function () {
);
apiPage.SelectPaneTab("Authentication");
cy.get(apiPage._saveAsDS).last().click({ force: true });
- cy.get(".t--close-editor").click({ force: true });
+ cy.go("back");
cy.get(dataSources._datasourceModalSave).click();
// ensures app does not crash and datasource is saved.
cy.contains("Edit datasource to access authentication settings").should(
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug14987_spec.js b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug14987_spec.js
index 81d712d999..5de1d4130c 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug14987_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug14987_spec.js
@@ -52,6 +52,6 @@ describe("Verify setting tab form controls not to have tooltip and tooltip (unde
action: "Delete",
entityType: entityItems.Query,
});
- dataSources.DeleteDatasouceFromActiveTab(datasourceName, 200);
+ dataSources.DeleteDatasourceFromWithinDS(datasourceName, 200);
});
});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug18035_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug18035_Spec.ts
index b2b461aafa..dce568310a 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug18035_Spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug18035_Spec.ts
@@ -1,4 +1,7 @@
import { ObjectsRegistry } from "../../../../support/Objects/Registry";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
const dataSources = ObjectsRegistry.DataSources,
agHelper = ObjectsRegistry.AggregateHelper;
@@ -10,7 +13,7 @@ describe(
it("1. Create gsheet datasource, click on back button, discard popup should contain save and authorize", function () {
dataSources.NavigateToDSCreateNew();
dataSources.CreatePlugIn("Google Sheets");
- agHelper.GoBack();
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
agHelper.AssertContains(
"Save & Authorize",
"exist",
@@ -22,7 +25,7 @@ describe(
dataSources.CreatePlugIn("PostgreSQL");
// Need to add values since without that, going back won't show any popup
dataSources.FillPostgresDSForm();
- agHelper.GoBack();
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
agHelper.AssertContains(
"Save",
"exist",
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug21734_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug21734_Spec.ts
index 1eab4b0c88..13ccd5a95a 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug21734_Spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug21734_Spec.ts
@@ -1,4 +1,7 @@
import { ObjectsRegistry } from "../../../../support/Objects/Registry";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
const dataSources = ObjectsRegistry.DataSources,
agHelper = ObjectsRegistry.AggregateHelper,
@@ -11,14 +14,16 @@ describe("Bug 21734: On exiting from the Datasources page without saving changes
// Have to fill form since modal won't show for empty ds
dataSources.FillMongoDSForm();
- ee.AddNewPage();
+ agHelper.GetNClick(dataSources._addNewDataSource, 0, true);
agHelper.AssertContains(
"Don't save",
"exist",
dataSources._datasourceModalDoNotSave,
);
- cy.get(dataSources._datasourceModalDoNotSave).click();
+ cy.get(dataSources._datasourceModalDoNotSave).click({ force: true });
+
+ ee.AddNewPage();
ee.SelectEntityByName("Page1");
agHelper.AssertURL("page1");
@@ -32,13 +37,14 @@ describe("Bug 21734: On exiting from the Datasources page without saving changes
// Have to fill form since modal won't show for empty ds
dataSources.FillPostgresDSForm();
- ee.SelectEntityByName("Page1");
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
agHelper.AssertContains(
"Don't save",
"exist",
dataSources._datasourceModalDoNotSave,
);
cy.get(dataSources._datasourceModalDoNotSave).click();
+ ee.SelectEntityByName("Page1");
agHelper.AssertURL("page1");
ee.SelectEntityByName("Page2");
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug26716_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug26716_Spec.ts
index 88c20a7c80..8de0bed392 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug26716_Spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug26716_Spec.ts
@@ -1,5 +1,4 @@
import {
- agHelper,
dataSources,
entityExplorer,
} from "../../../../support/Objects/ObjectsCore";
@@ -23,29 +22,13 @@ describe(
cy.get("@dsName").then(($dsName) => {
dsName = $dsName;
// Select Users
- entityExplorer.SelectEntityByName(userMock, "Datasources");
- agHelper.Sleep(200);
- agHelper.AssertClassExists(
- dataSources._entityExplorerID(userMock),
- "active",
- );
+ dataSources.navigateToDatasource(userMock);
// Switch to Movies
- entityExplorer.SelectEntityByName(movieMock, "Datasources");
- agHelper.Sleep(200);
- agHelper.AssertClassExists(
- dataSources._entityExplorerID(movieMock),
- "active",
- );
+ dataSources.navigateToDatasource(movieMock);
// Switch to custom DS
- entityExplorer.SelectEntityByName(dsName, "Datasources");
- entityExplorer.ExpandCollapseEntity(dsName, false);
- agHelper.Sleep(200);
- agHelper.AssertClassExists(
- dataSources._entityExplorerID(dsName),
- "active",
- );
+ dataSources.navigateToDatasource(dsName);
// Delete all datasources
entityExplorer.ActionContextMenuByEntityName({
@@ -61,9 +44,9 @@ describe(
action: "Delete",
});
- dataSources.DeleteDatasouceFromActiveTab(userMock);
- dataSources.DeleteDatasouceFromActiveTab(movieMock);
- dataSources.DeleteDatasouceFromActiveTab(dsName);
+ dataSources.DeleteDatasourceFromWithinDS(userMock);
+ dataSources.DeleteDatasourceFromWithinDS(movieMock);
+ dataSources.DeleteDatasourceFromWithinDS(dsName);
});
});
});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug28731_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug28731_Spec.ts
new file mode 100644
index 0000000000..c7fc42f397
--- /dev/null
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug28731_Spec.ts
@@ -0,0 +1,41 @@
+import OneClickBindingLocator from "../../../../locators/OneClickBindingLocator";
+import {
+ agHelper,
+ entityExplorer,
+ apiPage,
+ dataManager,
+ draggableWidgets,
+ propPane,
+} from "../../../../support/Objects/ObjectsCore";
+
+describe("transformed one-click binding", function () {
+ before(() => {
+ entityExplorer.NavigateToSwitcher("Explorer");
+ });
+
+ it("Transforms API data to match widget exppected type ", function () {
+ // Create anAPI that mreturns object response
+ apiPage.CreateAndFillApi(
+ dataManager.dsValues[dataManager.defaultEnviorment].mockApiObjectUrl,
+ );
+ apiPage.RunAPI();
+
+ // Table
+ entityExplorer.DragDropWidgetNVerify(draggableWidgets.TABLE, 300, 300);
+
+ agHelper.GetNClick(OneClickBindingLocator.datasourceDropdownSelector);
+ agHelper.GetNClick(OneClickBindingLocator.datasourceQuerySelector("Api1"));
+ propPane.ToggleJSMode("Table Data", true);
+ agHelper.AssertContains("{{Api1.data.users}}");
+
+ // Select widget
+ entityExplorer.DragDropWidgetNVerify(draggableWidgets.SELECT, 100, 100);
+
+ agHelper.GetNClick(OneClickBindingLocator.datasourceDropdownSelector);
+ agHelper.GetNClick(OneClickBindingLocator.datasourceQuerySelector("Api1"));
+ propPane.ToggleJSMode("Source Data", true);
+ agHelper.AssertContains(
+ "{{Api1.data.users.map( (obj) =>{ return {'label': obj.address, 'value': obj.avatar } })}}",
+ );
+ });
+});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug28750_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug28750_Spec.ts
new file mode 100644
index 0000000000..971849a204
--- /dev/null
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug28750_Spec.ts
@@ -0,0 +1,24 @@
+import { agHelper, dataSources } from "../../../../support/Objects/ObjectsCore";
+import { featureFlagIntercept } from "../../../../support/Objects/FeatureFlags";
+
+describe("Datasource structure schema preview data", () => {
+ before(() => {
+ featureFlagIntercept({ ab_gsheet_schema_enabled: true });
+ dataSources.CreateMockDB("Users");
+ });
+
+ it(
+ "excludeForAirgap",
+ "1. Verify if the schema table accordions is collapsed in case of search",
+ () => {
+ agHelper.TypeText(
+ dataSources._datasourceStructureSearchInput,
+ "public.us",
+ );
+ agHelper.Sleep(1000);
+ agHelper.AssertElementAbsence(
+ `${dataSources._dsStructurePreviewMode} ${dataSources._datasourceSchemaColumn}`,
+ );
+ },
+ );
+});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug28764_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug28764_Spec.ts
new file mode 100644
index 0000000000..d2759c4ae6
--- /dev/null
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug28764_Spec.ts
@@ -0,0 +1,74 @@
+import {
+ agHelper,
+ locators,
+ entityExplorer,
+ jsEditor,
+} from "../../../../support/Objects/ObjectsCore";
+
+describe("JS Function Execution", function () {
+ before(() => {
+ entityExplorer.NavigateToSwitcher("Explorer");
+ });
+
+ it("Retains lint errors after navigation", function () {
+ // JS Object 1
+ jsEditor.CreateJSObject(
+ `export default {
+ myVar1: [],
+ myVar2: {},
+ myFun1 () {
+ // write code here
+ // this.myVar1 = [1,2,3]
+ },
+ async myFun2 () {
+ // use async-await or promises
+ // Lint Error
+ fff
+ }
+ }`,
+ {
+ paste: true,
+ completeReplace: true,
+ toRun: false,
+ shouldCreateNewJSObj: true,
+ prettify: false,
+ },
+ );
+ // JS Object 2
+ jsEditor.CreateJSObject(
+ `export default {
+ myVar1: [],
+ myVar2: {},
+ myFun1 () {
+ // write code here
+ // this.myVar1 = [1,2,3]
+ },
+ async myFun2 () {
+ // use async-await or promises
+ }
+ }`,
+ {
+ paste: true,
+ completeReplace: true,
+ toRun: false,
+ shouldCreateNewJSObj: true,
+ prettify: false,
+ },
+ );
+
+ entityExplorer.SelectEntityByName("JSObject1", "Queries/JS");
+ // Assert lint error
+ agHelper.AssertElementLength(locators._lintErrorElement, 1);
+ agHelper.HoverElement(locators._lintErrorElement);
+ agHelper.AssertContains(`'fff' is not defined`);
+
+ entityExplorer.SelectEntityByName("JSObject2", "Queries/JS");
+ agHelper.AssertElementAbsence(locators._lintErrorElement);
+
+ entityExplorer.SelectEntityByName("JSObject1", "Queries/JS");
+ // Assert lint error
+ agHelper.AssertElementLength(locators._lintErrorElement, 1);
+ agHelper.HoverElement(locators._lintErrorElement);
+ agHelper.AssertContains(`'fff' is not defined`);
+ });
+});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug9334_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug9334_Spec.ts
index 540d3eb044..9061619eca 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug9334_Spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Bug9334_Spec.ts
@@ -7,6 +7,9 @@ import {
appSettings,
entityExplorer,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
let dsName: any;
@@ -17,6 +20,7 @@ describe("Bug 9334: The Select widget value is sent as null when user switches b
cy.get("@dsName").then(($dsName) => {
dsName = $dsName;
});
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
});
it("1. Create dummy pages for navigating", () => {
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/DSDiscardBugs_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/BugTests/DSDiscardBugs_spec.ts
index c02e3abdd2..acaee673da 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/BugTests/DSDiscardBugs_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/DSDiscardBugs_spec.ts
@@ -1,4 +1,7 @@
import * as _ from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
let dsName: any;
@@ -18,9 +21,9 @@ describe("datasource unsaved changes popup shows even without changes", function
_.dataSources.SaveDatasource();
_.agHelper.Sleep();
_.dataSources.EditDatasource();
- _.agHelper.GoBack();
+ _.dataSources.cancelDSEditAndAssertModalPopUp(false);
_.agHelper.AssertElementVisibility(_.dataSources._activeDS);
- _.dataSources.DeleteDatasouceFromActiveTab(dsName);
+ _.dataSources.DeleteDatasourceFromWithinDS(dsName);
});
});
@@ -42,9 +45,9 @@ describe("datasource unsaved changes popup shows even without changes", function
// Even if headers, and query parameters are being initialized, we shouldnt see the popup
// as those are not initialized by user
_.dataSources.EditDatasource();
- _.agHelper.GoBack();
+ _.dataSources.cancelDSEditAndAssertModalPopUp(false);
_.agHelper.AssertElementVisibility(_.dataSources._activeDS);
- _.dataSources.DeleteDatasouceFromActiveTab(dsName);
+ _.dataSources.DeleteDatasourceFromWithinDS(dsName);
});
});
@@ -68,7 +71,7 @@ describe("datasource unsaved changes popup shows even without changes", function
// Assert that popup is visible
_.dataSources.SaveDSFromDialog(false);
- _.dataSources.DeleteDatasouceFromActiveTab(dsName);
+ _.dataSources.DeleteDatasourceFromWithinDS(dsName);
});
});
@@ -92,7 +95,7 @@ describe("datasource unsaved changes popup shows even without changes", function
// Assert that popup is visible
_.dataSources.cancelDSEditAndAssertModalPopUp(true, false);
- _.dataSources.DeleteDatasouceFromActiveTab(dsName);
+ _.dataSources.DeleteDatasourceFromWithinDS(dsName);
});
});
@@ -115,7 +118,7 @@ describe("datasource unsaved changes popup shows even without changes", function
// Assert that popup is visible
_.dataSources.cancelDSEditAndAssertModalPopUp(false, false);
- _.dataSources.DeleteDatasouceFromActiveTab(dsName);
+ _.dataSources.DeleteDatasourceFromWithinDS(dsName);
});
});
@@ -148,8 +151,14 @@ describe("datasource unsaved changes popup shows even without changes", function
_.dataSources._host(),
_.dataManager.dsValues.Staging.mongo_host,
);
+ _.agHelper.GetNClick(
+ _.dataSources._cancelEditDatasourceButton,
+ 0,
+ true,
+ 200,
+ );
- _.dataSources.DeleteDatasouceFromActiveTab(dsName);
+ _.dataSources.DeleteDatasourceFromWithinDS(dsName);
});
});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/DatasourceSchema_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/BugTests/DatasourceSchema_spec.ts
index 7b8e8cf46d..2ca51d6979 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/BugTests/DatasourceSchema_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/DatasourceSchema_spec.ts
@@ -5,11 +5,19 @@ import {
entityExplorer,
homePage,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
+import { featureFlagIntercept } from "../../../../support/Objects/FeatureFlags";
let guid;
let dataSourceName: string;
describe("Datasource form related tests", function () {
before(() => {
+ featureFlagIntercept({
+ ab_gsheet_schema_enabled: true,
+ ab_mock_mongo_schema_enabled: true,
+ });
homePage.CreateNewWorkspace("FetchSchemaOnce", true);
homePage.CreateAppInWorkspace("FetchSchemaOnce");
});
@@ -19,7 +27,6 @@ describe("Datasource form related tests", function () {
cy.get("@guid").then((uid) => {
guid = uid;
dataSourceName = "Postgres " + guid;
- entityExplorer.ExpandCollapseEntity("Datasources");
dataSources.NavigateToDSCreateNew();
dataSources.CreatePlugIn("PostgreSQL");
agHelper.RenameWithInPane(dataSourceName, false);
@@ -42,12 +49,11 @@ describe("Datasource form related tests", function () {
it("2. Verify if schema was fetched once #18448", () => {
agHelper.RefreshPage();
- entityExplorer.ExpandCollapseEntity("Datasources");
- entityExplorer.ExpandCollapseEntity(dataSourceName, false);
- entityExplorer.ExpandCollapseEntity("Datasources");
- entityExplorer.ExpandCollapseEntity(dataSourceName);
+ dataSources.navigateToDatasource(dataSourceName);
agHelper.Sleep(1500);
agHelper.VerifyCallCount(`@getDatasourceStructure`, 1);
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
+ entityExplorer.SelectEntityByName("Query1");
agHelper.ActionContextMenuWithInPane({
action: "Delete",
entityType: entityItems.Query,
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/GitBugs_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/BugTests/GitBugs_Spec.ts
index 6234eb0e30..bfb96f3090 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/BugTests/GitBugs_Spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/GitBugs_Spec.ts
@@ -1,4 +1,7 @@
import * as _ from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
let repoName: any;
let tempBranch: any;
@@ -81,12 +84,11 @@ describe("Git Bugs", function () {
_.gitSync.CreateGitBranch(`st`, true);
cy.get("@gitbranchName").then((branchName) => {
statusBranch = branchName;
- _.agHelper.GetNClick(_.locators._appEditMenuBtn);
- // cy.wait(_.locators._appEditMenu);
- _.agHelper.GetNClick(_.locators._appEditMenuSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
_.agHelper.GetNClick(_.locators._appThemeSettings);
_.agHelper.GetNClick(_.locators._appChangeThemeBtn, 0, true);
_.agHelper.GetNClick(_.locators._appThemeCard, 2);
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
_.agHelper.GetNClick(_.locators._publishButton);
_.agHelper.WaitUntilEleAppear(_.gitSync._gitStatusChanges);
_.agHelper.AssertContains(
@@ -95,11 +97,10 @@ describe("Git Bugs", function () {
_.gitSync._gitStatusChanges,
);
_.agHelper.GetNClick(_.locators._dialogCloseButton);
- _.agHelper.GetNClick(_.locators._appEditMenuBtn);
- // cy.wait(_.locators._appEditMenu);
- _.agHelper.GetNClick(_.locators._appEditMenuSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
_.agHelper.GetNClick(_.locators._appNavigationSettings);
_.agHelper.GetNClick(_.locators._appNavigationSettingsShowTitle);
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
_.agHelper.GetNClick(_.locators._publishButton);
_.agHelper.WaitUntilEleAppear(_.gitSync._gitStatusChanges);
_.agHelper.AssertContains(
@@ -116,10 +117,10 @@ describe("Git Bugs", function () {
_.gitSync.CreateGitBranch(`b24946`, true);
cy.get("@gitbranchName").then((branchName) => {
statusBranch = branchName;
- _.agHelper.GetNClick(_.locators._appEditMenuBtn);
- _.agHelper.GetNClick(_.locators._appEditMenuSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
_.agHelper.GetNClick(_.locators._appNavigationSettings);
_.agHelper.GetNClick(_.locators._appNavigationSettingsShowTitle);
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
_.agHelper.GetNClick(_.locators._publishButton);
_.agHelper.WaitUntilEleAppear(_.gitSync._gitStatusChanges);
_.agHelper.GetNClick(_.gitSync._discardChanges);
@@ -146,7 +147,7 @@ describe("Git Bugs", function () {
it("7. Bug 24920: Not able to discard app settings changes for the first time in git connected app ", function () {
_.gitSync.SwitchGitBranch("master", false, true);
// add navigation settings changes
- _.agHelper.GetNClick(_.appSettings.locators._appSettings);
+ EditorNavigation.ViaSidebar(SidebarButton.Settings);
_.agHelper.GetNClick(_.appSettings.locators._navigationSettingsTab);
_.agHelper.GetNClick(
_.appSettings.locators._navigationSettings._orientationOptions._side,
diff --git a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Moment_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Moment_Spec.ts
index 57c3edc845..75eb985c64 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/BugTests/Moment_Spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/BugTests/Moment_Spec.ts
@@ -121,7 +121,6 @@ describe("Bug #14299 - The data from the query does not show up on the widget",
agHelper.WaitUntilAllToastsDisappear();
deployMode.DeployApp(locators._widgetInDeployed("tablewidget"), false);
deployMode.NavigateBacktoEditor();
- entityExplorer.ExpandCollapseEntity("Datasources");
dataSources.DeleteDatasourceFromWithinDS(dsName, 200);
},
);
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Debugger/Query_pane_navigation.ts b/app/client/cypress/e2e/Regression/ClientSide/Debugger/Query_pane_navigation.ts
index d2fddc1e9a..134cb5934a 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Debugger/Query_pane_navigation.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/Debugger/Query_pane_navigation.ts
@@ -8,6 +8,9 @@ import {
entityItems,
debuggerHelper,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
describe("excludeForAirgap", "Query pane navigation", () => {
let ds1Name: string;
@@ -27,6 +30,7 @@ describe("excludeForAirgap", "Query pane navigation", () => {
cy.get("@dsName").then(($dsName) => {
ds2Name = $dsName as unknown as string;
});
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
});
it("1. Switching between S3 query and firestore query from the debugger", () => {
@@ -46,6 +50,7 @@ describe("excludeForAirgap", "Query pane navigation", () => {
cy.get("@dsName").then(($dsName) => {
ds2Name = $dsName as unknown as string;
});
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
entityExplorer.CreateNewDsQuery(ds2Name);
agHelper.UpdateCodeInput(
".t--actionConfiguration\\.formData\\.limitDocuments\\.data",
@@ -77,7 +82,7 @@ describe("excludeForAirgap", "Query pane navigation", () => {
entityType: entityItems.Query,
});
- dataSources.DeleteDSFromEntityExplorer(ds1Name);
- dataSources.DeleteDSFromEntityExplorer(ds2Name);
+ dataSources.DeleteDatasourceFromWithinDS(ds1Name);
+ dataSources.DeleteDatasourceFromWithinDS(ds2Name);
});
});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/API_Pane_spec.js b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/API_Pane_spec.js
index 230c7d22dd..e2e1afb5f5 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/API_Pane_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/API_Pane_spec.js
@@ -24,18 +24,9 @@ describe("Entity explorer API pane related testcases", function () {
locator._visibleTextSpan("No query/JS to display"),
);
agHelper.AssertElementVisibility(locator._visibleTextSpan("New query/JS"));
-
- ee.ExpandCollapseEntity("Datasources");
- agHelper.AssertElementVisibility(
- locator._visibleTextSpan("No datasource to display"),
- );
- agHelper.AssertElementVisibility(
- locator._visibleTextSpan("New datasource"),
- );
});
it("2. Move to page / edit API name /properties validation", function () {
- cy.NavigateToAPI_Panel();
cy.CreateAPI("FirstAPI");
cy.enterDatasourceAndPath(testdata.baseUrl, testdata.methods);
cy.SaveAndRunAPI();
diff --git a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/CopyQuery_RenameDatasource_spec.js b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/CopyQuery_RenameDatasource_spec.js
index 58b3dc1991..57adfde6c8 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/CopyQuery_RenameDatasource_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/CopyQuery_RenameDatasource_spec.js
@@ -28,7 +28,6 @@ describe("Entity explorer tests related to copy query", function () {
cy.get("@saveDatasource").then((httpResponse) => {
datasourceName = httpResponse.response.body.data.name;
- cy.CheckAndUnfoldEntityItem("Datasources");
cy.NavigateToActiveDSQueryPane(datasourceName);
});
@@ -83,37 +82,4 @@ describe("Entity explorer tests related to copy query", function () {
expect($lis.eq(4)).to.contain("{{Query1.clear()}}");
});
});
-
- it("3. Rename datasource in explorer, Delete query and try to Delete datasource", function () {
- entityExplorer.SelectEntityByName("Page1");
- cy.generateUUID().then((uid) => {
- updatedName = uid;
- cy.log("complete uid :" + updatedName);
- updatedName = uid.replace(/-/g, "_").slice(1, 15);
- cy.log("sliced id :" + updatedName);
- entityExplorer.ExpandCollapseEntity("Queries/JS");
- entityExplorer.ExpandCollapseEntity("Datasources");
- entityExplorer.RenameEntityFromExplorer(datasourceName, updatedName);
- //cy.EditEntityNameByDoubleClick(datasourceName, updatedName);
- cy.wait(1000);
- entityExplorer.ActionContextMenuByEntityName({
- entityNameinLeftSidebar: updatedName,
- action: "Delete",
- toAssertAction: false,
- });
- cy.wait(1000);
- //This is check to make sure if a datasource is active 409
- cy.wait("@deleteDatasource").should(
- "have.nested.property",
- "response.body.responseMeta.status",
- 409,
- );
- });
- entityExplorer.SelectEntityByName("Query1", "Queries/JS");
- entityExplorer.ActionContextMenuByEntityName({
- entityNameinLeftSidebar: "Query1",
- action: "Delete",
- entityType: entityItems.Query,
- });
- });
});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Datasource_Structure_spec.js b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Datasource_Structure_spec.js
deleted file mode 100644
index 1b4607bf2a..0000000000
--- a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Datasource_Structure_spec.js
+++ /dev/null
@@ -1,125 +0,0 @@
-const explorer = require("../../../../locators/explorerlocators.json");
-const queryLocators = require("../../../../locators/QueryEditor.json");
-const apiwidget = require("../../../../locators/apiWidgetslocator.json");
-import {
- entityExplorer,
- dataSources,
-} from "../../../../support/Objects/ObjectsCore";
-
-describe("Entity explorer datasource structure", function () {
- let datasourceName;
-
- beforeEach(() => {
- //cy.ClearSearch();
- cy.startRoutesForDatasource();
- cy.createPostgresDatasource();
- cy.get("@saveDatasource").then((httpResponse) => {
- datasourceName = httpResponse.response.body.data.name;
- });
- });
-
- it("1. Entity explorer datasource structure", function () {
- cy.NavigateToActiveDSQueryPane(datasourceName);
- cy.wait("@createNewApi").should(
- "have.nested.property",
- "response.body.responseMeta.status",
- 201,
- );
-
- cy.get(apiwidget.apiTxt)
- .clear()
- .type("MyQuery", { force: true })
- .should("have.value", "MyQuery")
- .blur();
- cy.WaitAutoSave();
- entityExplorer.ExpandCollapseEntity("Datasources");
- entityExplorer.ActionContextMenuByEntityName({
- entityNameinLeftSidebar: datasourceName,
- action: "Refresh",
- });
- cy.wait(2000); //for the tables to open
- cy.wait("@getDatasourceStructure").should(
- "have.nested.property",
- "response.body.responseMeta.status",
- 200,
- );
-
- // cy.get(explorer.datasourceStructure)
- // .first()
- // .find(explorer.collapse)
- // .click();
- // cy.get(explorer.datasourceColumn)
- // .first()
- // .click();
- // cy.get(".bp3-popover-content").should("be.visible");
-
- cy.get(explorer.templateMenuIcon).first().click({ force: true });
- // assert suggested tag is present
- cy.get(".t--structure-template-menu-popover").last().contains("Suggested");
- cy.get(".t--structure-template-menu-popover")
- .last()
- .contains("Select")
- .click({ force: true });
- cy.wait("@createNewApi").should(
- "have.nested.property",
- "response.body.responseMeta.status",
- 201,
- );
-
- cy.deleteQueryUsingContext();
- entityExplorer.ExpandCollapseEntity("Queries/JS");
- entityExplorer.ActionContextMenuByEntityName({
- entityNameinLeftSidebar: "MyQuery",
- });
- cy.deleteDatasource(datasourceName);
- });
-
- it("2. Refresh datasource structure", function () {
- cy.NavigateToActiveDSQueryPane(datasourceName);
-
- //cy.GlobalSearchEntity(datasourceName);
- // cy.get(`.t--entity.datasource:contains(${datasourceName})`)
- // .find(explorer.collapse)
- // .as("datasourceEntityCollapse");
- // cy.wait("@getDatasourceStructure").should(
- // "have.nested.property",
- // "response.body.responseMeta.status",
- // 200,
- // );
- //cy.get(commonlocators.entityExplorersearch).clear({ force: true });
-
- const tableName = Math.random()
- .toString(36)
- .replace(/[^a-z]+/g, "");
- dataSources.EnterQuery(`CREATE TABLE public.${tableName} ( ID int );`);
- cy.onlyQueryRun();
- cy.wait("@postExecute").then(({ response }) => {
- expect(response.body.data.request.requestParams.Query.value).to.contain(
- tableName,
- );
- });
-
- //cy.wait(8000)
- // cy.GlobalSearchEntity(datasourceName);
- // cy.get("@datasourceEntityCollapse")
- // .first()
- // .click();
- // cy.xpath(explorer.datsourceEntityPopover)
- // .last()
- // .click({ force: true });
- dataSources.AssertTableInVirtuosoList(
- datasourceName,
- `public.${tableName}`,
- );
-
- cy.typeValueNValidate(`DROP TABLE public.${tableName}`);
- cy.runQuery();
- dataSources.AssertTableInVirtuosoList(
- datasourceName,
- `public.${tableName}`,
- false,
- );
- cy.deleteQueryUsingContext();
- cy.deleteDatasource(datasourceName);
- });
-});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Entity_Naming_conflict_spec.js b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Entity_Naming_conflict_spec.js
index fed3471386..8807fe4685 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Entity_Naming_conflict_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Entity_Naming_conflict_spec.js
@@ -11,8 +11,6 @@ describe("Tab widget test", function () {
it("1. Rename API with table widget name validation test", function () {
cy.log("Login Successful");
- cy.NavigateToAPI_Panel();
- cy.log("Navigation to API Panel screen successful");
cy.CreateApiAndValidateUniqueEntityName(apiName);
cy.get(apiwidget.apiTxt)
.clear()
diff --git a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Long_Name_Tooltip_spec.js b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Long_Name_Tooltip_spec.js
index 0d539be0b6..597c07311a 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Long_Name_Tooltip_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Long_Name_Tooltip_spec.js
@@ -9,7 +9,6 @@ const tooltTipQuery = `.rc-tooltip.ads-v2-tooltip:not(.rc-tooltip-hidden) > .rc-
describe("Entity Explorer showing tooltips on long names", function () {
it("1. Expect tooltip on long names only", function () {
// create an API with a short name
- cy.NavigateToAPI_Panel();
cy.CreateAPI(shortName);
ee.ExpandCollapseEntity("Queries/JS", true);
// assert that a tooltip does not show up during hover
@@ -19,7 +18,6 @@ describe("Entity Explorer showing tooltips on long names", function () {
cy.get("body").realHover({ position: "topLeft" });
// create another API with a long name
- cy.NavigateToAPI_Panel();
cy.CreateAPI(longName);
// assert that a tooltip does show up during hover
diff --git a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Pages_spec.js b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Pages_spec.js
index 2b56f720cc..17f0972a58 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Pages_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Pages_spec.js
@@ -8,7 +8,6 @@ describe("Pages", function () {
let apiName = "someApi";
it("1. Clone page & check tooltip for long name", function () {
- //cy.NavigateToAPI_Panel();
_.apiPage.CreateApi(apiName);
_.entityExplorer.SelectEntityByName("Page1", "Pages");
_.entityExplorer.ClonePage("Page1");
diff --git a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Pin_spec.js b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Pin_spec.js
deleted file mode 100644
index 3269a17033..0000000000
--- a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Pin_spec.js
+++ /dev/null
@@ -1,147 +0,0 @@
-import {
- agHelper,
- entityExplorer,
- locators,
- draggableWidgets,
- installer,
- homePage,
-} from "../../../../support/Objects/ObjectsCore";
-
-const ExplorerMenu = {
- ADD_PAGE: "ADD_PAGE",
- ENTITY: "ENTITY",
- ADD_LIBRARY: "ADD_LIBRARY",
- ADD_QUERY_JS: "ADD_QUERY_JS",
-};
-
-const OpenExplorerMenu = (menu) => {
- switch (menu) {
- case ExplorerMenu.ADD_PAGE:
- agHelper.GetNClick(locators._newPage);
- cy.get(locators._canvas).trigger("mousemove", 500, 400, {
- force: true,
- });
- break;
- case ExplorerMenu.ENTITY:
- cy.xpath(entityExplorer._contextMenu("Page1"))
- .last()
- .click({ force: true });
- cy.get(locators._canvas).trigger("mousemove", 500, 400, {
- force: true,
- });
- break;
- case ExplorerMenu.ADD_QUERY_JS:
- cy.get(locators._createNew).last().click({ force: true });
- cy.get(locators._canvas).trigger("mousemove", 500, 300, {
- force: true,
- });
- break;
- case ExplorerMenu.ADD_LIBRARY:
- installer.OpenInstaller(true);
- cy.get(locators._canvas).trigger("mousemove", 500, 100, {
- force: true,
- });
- break;
- default:
- }
-};
-
-describe("Entity explorer tests related to pinning and unpinning", function () {
- before(() => {
- agHelper.AddDsl("displayWidgetDsl");
- });
-
- it("1. checks entity explorer visibility on unpin", function () {
- cy.wait(5000);
- cy.get(".t--entity-explorer").should("be.visible");
- cy.get(".t--pin-entity-explorer").click();
- cy.wait(5000);
- cy.get("[data-testid=widgets-editor]").click({ force: true });
- cy.wait(3000);
- cy.get(".t--entity-explorer").should("not.be.visible");
- //checks entity explorer visibility on pin
- cy.get(".t--pin-entity-explorer").click();
- cy.get(".t--entity-explorer").should("be.visible");
- });
-
- it("2. Widgets visibility in widget pane", function () {
- entityExplorer.NavigateToSwitcher("Widgets");
- agHelper.ScrollTo(locators._widgetPane, "bottom");
- agHelper.AssertElementVisibility(
- locators._widgetPageIcon(draggableWidgets.VIDEO),
- );
- entityExplorer.PinUnpinEntityExplorer(true);
- agHelper.AssertElementVisibility(
- locators._widgetPageIcon(draggableWidgets.VIDEO),
- );
- entityExplorer.PinUnpinEntityExplorer(false);
- entityExplorer.NavigateToSwitcher("Explorer");
- });
-
- it(
- "excludeForAirgap",
- "3. Unpinned explorer is to be open when any context menu is open or when an entity name is being edited",
- function () {
- agHelper.AssertElementVisibility(entityExplorer._entityExplorer);
- entityExplorer.PinUnpinEntityExplorer(true);
- const menu = Object.keys(ExplorerMenu);
-
- Cypress._.times(menu.length, (index) => {
- OpenExplorerMenu(menu[index]);
- agHelper.Sleep();
- cy.get("[data-testid=sidebar-active]").should("exist");
- });
-
- // when an entity is being edited
- entityExplorer.ActionContextMenuByEntityName({
- entityNameinLeftSidebar: "Page1",
- action: "Edit name",
- });
- cy.get(locators._canvas).trigger("mousemove", 500, 400);
- agHelper.AssertElementVisibility(entityExplorer._entityExplorer);
- entityExplorer.PinUnpinEntityExplorer(false);
- },
- );
-
- it(
- "airgap",
- "4. Unpinned explorer is to be open when any context menu is open or when an entity name is being edited",
- function () {
- agHelper.AssertElementVisibility(entityExplorer._entityExplorer);
- entityExplorer.PinUnpinEntityExplorer(true);
- // We cannot add libraries on airgap
- const menu = Object.keys(ExplorerMenu).filter(
- (menu) => menu !== ExplorerMenu.ADD_LIBRARY,
- );
-
- Cypress._.times(menu.length, (index) => {
- OpenExplorerMenu(menu[index]);
- agHelper.Sleep();
- cy.get("[data-testid=sidebar-active]").should("exist");
- });
-
- // when an entity is being edited
- entityExplorer.ActionContextMenuByEntityName({
- entityNameinLeftSidebar: "Page1",
- action: "Edit name",
- });
- cy.get(locators._canvas).trigger("mousemove", 500, 400);
- agHelper.AssertElementVisibility(entityExplorer._entityExplorer);
- entityExplorer.PinUnpinEntityExplorer(false);
- },
- );
-
- it("5. Explorer should be visible by default on a new application", function () {
- agHelper.AssertElementVisibility(entityExplorer._entityExplorer);
- entityExplorer.PinUnpinEntityExplorer(true);
- agHelper.GetElement(locators._canvas).trigger("mousemove", 500, 100, {
- force: true,
- });
- agHelper
- .GetElement(entityExplorer._entityExplorer)
- .should("not.be.visible");
- homePage.NavigateToHome();
- homePage.CreateNewApplication();
- agHelper.AssertElementVisibility(entityExplorer._entityExplorer);
- });
-});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Query_Datasource_spec.js b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Query_Datasource_spec.js
index 75eb1ea5e6..feae6abf2a 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Query_Datasource_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Query_Datasource_spec.js
@@ -1,6 +1,8 @@
///
-const datasource = require("../../../../locators/DatasourcesEditor.json");
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
const apiwidget = require("../../../../locators/apiWidgetslocator.json");
const commonlocators = require("../../../../locators/commonlocators.json");
@@ -52,26 +54,14 @@ describe("Entity explorer tests related to query and datasource", function () {
cy.testSaveDatasource();
cy.NavigateToActiveDSQueryPane(datasourceName);
- /* eslint-disable */
- cy.wait(2000);
- cy.NavigateToQueryEditor();
- cy.CheckAndUnfoldEntityItem("Datasources");
- cy.contains(".t--entity-name", datasourceName).click();
-
- cy.get(".t--edit-datasource-name").click();
- cy.get(".t--edit-datasource-name input")
- .clear()
- .type(`${datasourceName}new`, { force: true })
- .blur();
-
- cy.contains(commonlocators.entityName, `${datasourceName}new`);
+ dataSources.navigateToDatasource(datasourceName);
+ agHelper.RenameWithInPane(`${datasourceName}new`, false);
+ cy.contains(dataSources._datasourceCard, `${datasourceName}new`);
// reverting the name
- cy.get(".t--edit-datasource-name").click();
- cy.get(".t--edit-datasource-name input")
- .clear()
- .type(`${datasourceName}`, { force: true })
- .blur();
+ agHelper.RenameWithInPane(datasourceName, false);
+
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
// going to the query create page
cy.CheckAndUnfoldEntityItem("Queries/JS");
@@ -122,6 +112,6 @@ describe("Entity explorer tests related to query and datasource", function () {
action: "Delete",
entityType: entityItems.Query,
});
- dataSources.DeleteDatasouceFromActiveTab(datasourceName);
+ dataSources.DeleteDatasourceFromWithinDS(datasourceName);
});
});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Scrolling_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Scrolling_Spec.ts
index f2daf9a419..e39b464d9e 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Scrolling_Spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/ExplorerTests/Scrolling_Spec.ts
@@ -3,7 +3,6 @@ import {
dataSources,
draggableWidgets,
entityExplorer,
- entityItems,
locators,
} from "../../../../support/Objects/ObjectsCore";
let mockDBNameUsers: string, mockDBNameMovies: string;
@@ -13,6 +12,12 @@ describe("Entity explorer context menu should hide on scrolling", function () {
"excludeForAirgap",
"1. Bug #15474 - Entity explorer menu must close on scroll",
function () {
+ entityExplorer.DragDropWidgetNVerify(draggableWidgets.MODAL);
+ agHelper.GetNClick(locators._closeModal, 0, true, 0);
+ entityExplorer.DragDropWidgetNVerify(draggableWidgets.MODAL);
+ agHelper.GetNClick(locators._closeModal, 0, true, 0);
+ entityExplorer.DragDropWidgetNVerify(draggableWidgets.MODAL);
+ agHelper.GetNClick(locators._closeModal, 0, true, 0);
entityExplorer.DragDropWidgetNVerify(draggableWidgets.MODAL);
agHelper.GetNClick(locators._closeModal, 0, true, 0);
entityExplorer.DragDropWidgetNVerify(draggableWidgets.MODAL);
@@ -22,27 +27,31 @@ describe("Entity explorer context menu should hide on scrolling", function () {
entityExplorer.ExpandCollapseEntity("Modal1");
entityExplorer.ExpandCollapseEntity("Modal2");
entityExplorer.ExpandCollapseEntity("Modal3");
+ entityExplorer.ExpandCollapseEntity("Modal4");
+ entityExplorer.ExpandCollapseEntity("Modal5");
+ entityExplorer.ExpandCollapseEntity("Modal6");
// Setup to make the explorer scrollable
entityExplorer.ExpandCollapseEntity("Queries/JS");
- entityExplorer.ExpandCollapseEntity("Datasources");
- agHelper.ContainsNClick("Libraries");
dataSources.CreateMockDB("Users").then(($createdMockUsers) => {
cy.log("Users DB created is " + $createdMockUsers);
mockDBNameUsers = $createdMockUsers;
dataSources.CreateQueryAfterDSSaved();
- dataSources.AssertTableInVirtuosoList(mockDBNameUsers, "public.users");
+ entityExplorer.CreateNewDsQuery(mockDBNameUsers);
+ entityExplorer.CreateNewDsQuery(mockDBNameUsers);
+ entityExplorer.CreateNewDsQuery(mockDBNameUsers);
dataSources.CreateMockDB("Movies").then(($createdMockMovies) => {
cy.log("Movies DB created is " + $createdMockMovies);
mockDBNameMovies = $createdMockMovies;
dataSources.CreateQueryAfterDSSaved();
-
- dataSources.AssertTableInVirtuosoList(mockDBNameMovies, "movies");
+ entityExplorer.CreateNewDsQuery(mockDBNameMovies);
+ entityExplorer.CreateNewDsQuery(mockDBNameMovies);
+ entityExplorer.CreateNewDsQuery(mockDBNameMovies);
agHelper.GetNClick(locators._createNew);
agHelper.AssertElementVisibility(entityExplorer._adsPopup);
- agHelper.ScrollTo(entityExplorer._entityExplorerWrapper, "bottom");
+ agHelper.ScrollTo(entityExplorer._entityExplorerWrapper, "top");
agHelper.AssertElementAbsence(entityExplorer._adsPopup);
});
});
@@ -53,6 +62,12 @@ describe("Entity explorer context menu should hide on scrolling", function () {
"airgap",
"1. Bug #15474 - Entity explorer menu must close on scroll - airgap",
function () {
+ entityExplorer.DragDropWidgetNVerify(draggableWidgets.MODAL);
+ agHelper.GetNClick(locators._closeModal, 0, true, 0);
+ entityExplorer.DragDropWidgetNVerify(draggableWidgets.MODAL);
+ agHelper.GetNClick(locators._closeModal, 0, true, 0);
+ entityExplorer.DragDropWidgetNVerify(draggableWidgets.MODAL);
+ agHelper.GetNClick(locators._closeModal, 0, true, 0);
entityExplorer.DragDropWidgetNVerify(draggableWidgets.MODAL);
agHelper.GetNClick(locators._closeModal, 0, true, 0);
entityExplorer.DragDropWidgetNVerify(draggableWidgets.MODAL);
@@ -62,51 +77,34 @@ describe("Entity explorer context menu should hide on scrolling", function () {
entityExplorer.ExpandCollapseEntity("Modal1");
entityExplorer.ExpandCollapseEntity("Modal2");
entityExplorer.ExpandCollapseEntity("Modal3");
+ entityExplorer.ExpandCollapseEntity("Modal4");
+ entityExplorer.ExpandCollapseEntity("Modal5");
+ entityExplorer.ExpandCollapseEntity("Modal6");
// Setup to make the explorer scrollable
entityExplorer.ExpandCollapseEntity("Queries/JS");
- entityExplorer.ExpandCollapseEntity("Datasources");
- agHelper.ContainsNClick("Libraries");
dataSources.CreateDataSource("Postgres");
cy.get("@dsName").then(($createdMockUsers: any) => {
mockDBNameUsers = $createdMockUsers;
dataSources.CreateQueryAfterDSSaved();
-
- dataSources.AssertTableInVirtuosoList(mockDBNameUsers, "public.users");
+ entityExplorer.CreateNewDsQuery(mockDBNameUsers);
+ entityExplorer.CreateNewDsQuery(mockDBNameUsers);
+ entityExplorer.CreateNewDsQuery(mockDBNameUsers);
dataSources.CreateDataSource("Mongo");
cy.get("@dsName").then(($createdMockMovies: any) => {
mockDBNameMovies = $createdMockMovies;
dataSources.CreateQueryAfterDSSaved();
-
- dataSources.AssertTableInVirtuosoList(
- mockDBNameMovies,
- "listingAndReviews",
- );
+ entityExplorer.CreateNewDsQuery(mockDBNameMovies);
+ entityExplorer.CreateNewDsQuery(mockDBNameMovies);
+ entityExplorer.CreateNewDsQuery(mockDBNameMovies);
agHelper.GetNClick(locators._createNew);
agHelper.AssertElementVisibility(entityExplorer._adsPopup);
- agHelper.ScrollTo(entityExplorer._entityExplorerWrapper, "bottom");
+ agHelper.ScrollTo(entityExplorer._entityExplorerWrapper, "top");
agHelper.AssertElementAbsence(entityExplorer._adsPopup);
});
});
},
);
-
- after(() => {
- //clean up
- entityExplorer.ActionContextMenuByEntityName({
- entityNameinLeftSidebar: "Query1",
- action: "Delete",
- entityType: entityItems.Query,
- });
-
- entityExplorer.ActionContextMenuByEntityName({
- entityNameinLeftSidebar: "Query2",
- action: "Delete",
- entityType: entityItems.Query,
- });
- dataSources.DeleteDatasouceFromActiveTab(mockDBNameMovies); //Since sometimes after Queries are deleted, ds is no more visible in EE tree
- dataSources.DeleteDatasouceFromActiveTab(mockDBNameUsers);
- });
});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Git/GitSync/GitSyncedApps_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Git/GitSync/GitSyncedApps_spec.js
index dd6490b6f0..2451d218f0 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Git/GitSync/GitSyncedApps_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Git/GitSync/GitSyncedApps_spec.js
@@ -121,8 +121,6 @@ describe("Git sync apps", function () {
cy.get(`.t--entity-item:contains(${newPage})`).click();
cy.wait(1000);
// create a get api call
- cy.NavigateToAPI_Panel();
- cy.wait(2000);
cy.CreateAPI("get_data");
// creating get request using echo
cy.get(apiwidget.resourceUrl)
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Git/GitSync/SwitchBranches_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Git/GitSync/SwitchBranches_spec.js
index f254b4be72..c82e2f3a82 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Git/GitSync/SwitchBranches_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Git/GitSync/SwitchBranches_spec.js
@@ -120,12 +120,9 @@ describe("Git sync:", function () {
"ParentPageRenamed",
true,
);
- entityExplorer.SelectEntityByName("ParentApi1", "Queries/JS");
- entityExplorer.RenameEntityFromExplorer(
- "ParentApi1",
- "ParentApiRenamed",
- true,
- );
+ agHelper.RemoveUIElement("Tooltip", "Add a new query/JS Object");
+ entityExplorer.ExpandCollapseEntity("Queries/JS");
+ entityExplorer.RenameEntityFromExplorer("ParentApi1", "ParentApiRenamed");
cy.switchGitBranch(parentBranchKey);
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Git/GitWithJSLibrary/GitwithCustomJSLibrary_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Git/GitWithJSLibrary/GitwithCustomJSLibrary_spec.js
index b78c0ec540..a5f2572f37 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Git/GitWithJSLibrary/GitwithCustomJSLibrary_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Git/GitWithJSLibrary/GitwithCustomJSLibrary_spec.js
@@ -7,6 +7,9 @@ import {
gitSync,
installer,
} from "../../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../../support/Pages/EditorNavigation";
const mainBranch = "master";
const tempBranch = "feat/tempBranch";
@@ -28,25 +31,24 @@ describe("excludeForAirgap", "Tests JS Library with Git", () => {
});
it("1. Install JS Library and commit changes, create branch and verify JS library changes are present on new branch ", () => {
- entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
installer.OpenInstaller();
installer.InstallLibrary("uuidjs", "UUID");
gitSync.CommitAndPush();
// create new branch
gitSync.CreateGitBranch(tempBranch, true);
// verify js library changes are present
- entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
installer.AssertLibraryinExplorer("uuidjs");
});
it("2. Discard custom js library changes, verify changes are discarded also verify it deosnt show uncommitted changes", () => {
- entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
installer.uninstallLibrary("uuidjs");
- installer.assertUnInstall("uuidjs");
// discard js library uninstallation
gitSync.DiscardChanges();
// verify js library is present
- entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
installer.AssertLibraryinExplorer("uuidjs");
// verify no uncommitted changes are there
agHelper.AssertElementExist(gitSync._bottomBarPull);
@@ -66,7 +68,7 @@ describe("excludeForAirgap", "Tests JS Library with Git", () => {
it("3. Merge custom js lib changes from child branch to master, verify changes are merged", () => {
cy.switchGitBranch(tempBranch);
agHelper.AssertElementExist(gitSync._bottomBarPull);
- entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
installer.OpenInstaller();
installer.InstallLibrary("jspdf", "jspdf");
//cy.commitAndPush();
@@ -84,7 +86,7 @@ describe("excludeForAirgap", "Tests JS Library with Git", () => {
// verify custom js library is present in master branch
cy.switchGitBranch(mainBranch);
agHelper.AssertElementExist(gitSync._bottomBarPull);
- entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
installer.AssertLibraryinExplorer("jspdf");
});
after(() => {
diff --git a/app/client/cypress/e2e/Regression/ClientSide/IDE/MaintainContext&Focus_spec.js b/app/client/cypress/e2e/Regression/ClientSide/IDE/MaintainContext&Focus_spec.js
index ce72d9ea7e..0180575047 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/IDE/MaintainContext&Focus_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/IDE/MaintainContext&Focus_spec.js
@@ -7,6 +7,9 @@ import {
homePage,
locators,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
const apiwidget = require("../../../../locators/apiWidgetslocator.json");
const queryLocators = require("../../../../locators/QueryEditor.json");
@@ -183,16 +186,16 @@ describe("MaintainContext&Focus", function () {
});
it("4. Datasource edit mode has to be maintained", () => {
- entityExplorer.SelectEntityByName("Appsmith", "Datasources");
+ dataSources.navigateToDatasource("Appsmith");
dataSources.EditDatasource();
- agHelper.GoBack();
- entityExplorer.SelectEntityByName("Github", "Datasources");
+ dataSources.navigateToDatasource("Github");
dataSources.AssertDSEditViewMode("View");
- entityExplorer.SelectEntityByName("Appsmith", "Datasources");
+ dataSources.navigateToDatasource("Appsmith");
dataSources.AssertDSEditViewMode("Edit");
});
it("5. Maintain focus of form control inputs", () => {
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
entityExplorer.SelectEntityByName("SQL_Query");
dataSources.ToggleUsePreparedStatement(false);
entityExplorer.SelectEntityByName("S3_Query");
diff --git a/app/client/cypress/e2e/Regression/ClientSide/JSLibrary/Library_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/JSLibrary/Library_spec.ts
index b86b9bf19e..01bad28547 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/JSLibrary/Library_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/JSLibrary/Library_spec.ts
@@ -1,9 +1,12 @@
import HomePage from "../../../../locators/HomePage";
import * as _ from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
describe("excludeForAirgap", "Tests JS Libraries", () => {
it("1. Validates Library install/uninstall", () => {
- _.entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
_.installer.OpenInstaller();
_.installer.InstallLibrary("uuidjs", "UUID");
_.installer.uninstallLibrary("uuidjs");
@@ -11,16 +14,17 @@ describe("excludeForAirgap", "Tests JS Libraries", () => {
});
it("2. Installs the library against a unique namespace when there is a collision with the existing entity", () => {
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
_.entityExplorer.DragDropWidgetNVerify(_.draggableWidgets.TABLE, 200, 200);
_.entityExplorer.NavigateToSwitcher("Explorer");
_.entityExplorer.RenameEntityFromExplorer("Table1", "jsonwebtoken");
- _.entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
_.installer.OpenInstaller();
_.installer.InstallLibrary("jsonwebtoken", "jsonwebtoken_1", true);
});
it("3. Checks jspdf library", () => {
- _.entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
_.installer.OpenInstaller();
_.installer.InstallLibrary("jspdf", "jspdf");
_.jsEditor.CreateJSObject(
@@ -46,7 +50,7 @@ describe("excludeForAirgap", "Tests JS Libraries", () => {
});
it("4. ESM build should pass installation, uninstallation and reinstallation", () => {
- _.entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
_.installer.OpenInstaller();
_.installer.InstallLibraryViaURL(
"https://cdn.jsdelivr.net/npm/fast-xml-parser@4.2.7/+esm",
@@ -67,7 +71,7 @@ describe("excludeForAirgap", "Tests JS Libraries", () => {
it("5. Shows list of recommended libraries", () => {
const recommendedLibraryNames = ["jsonwebtoken", "jspdf", "bcryptjs"];
- _.entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
_.installer.OpenInstaller();
for (const recommendedLib of recommendedLibraryNames) {
cy.contains(recommendedLib);
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Linting/BasicLint_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Linting/BasicLint_spec.ts
index ed608f9636..556c4af893 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Linting/BasicLint_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/Linting/BasicLint_spec.ts
@@ -11,6 +11,9 @@ import {
entityItems,
dataManager,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
const successMessage = "Successful Trigger";
const errorMessage = "Unsuccessful Trigger";
@@ -60,6 +63,7 @@ describe("Linting", () => {
cy.get("@dsName").then(($dsName) => {
dsName = $dsName as unknown as string;
});
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
});
it("1. TC 1927 - Shows correct lint error when Api is deleted or created", () => {
@@ -342,22 +346,22 @@ describe("Linting", () => {
});
agHelper.AssertElementExist(locators._lintErrorElement);
- entityExplorer.ExpandCollapseEntity("Libraries");
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
// install the library
installer.OpenInstaller();
installer.InstallLibrary("uuidjs", "UUID");
installer.CloseInstaller();
+ entityExplorer.SelectEntityByName("JSObject3");
agHelper.AssertElementAbsence(locators._lintErrorElement);
-
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
installer.uninstallLibrary("uuidjs");
-
+ entityExplorer.SelectEntityByName("JSObject3");
agHelper.AssertElementExist(locators._lintErrorElement);
- agHelper.Sleep(2000);
+ EditorNavigation.ViaSidebar(SidebarButton.Libraries);
installer.OpenInstaller();
installer.InstallLibrary("uuidjs", "UUID");
installer.CloseInstaller();
-
homePage.NavigateToHome();
homePage.CreateNewApplication();
diff --git a/app/client/cypress/e2e/Regression/ClientSide/MobileResponsiveTests/AutoFillWidgets_Basic_2_spec.js b/app/client/cypress/e2e/Regression/ClientSide/MobileResponsiveTests/AutoFillWidgets_Basic_2_spec.js
index c477e015f2..2248c0369e 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/MobileResponsiveTests/AutoFillWidgets_Basic_2_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/MobileResponsiveTests/AutoFillWidgets_Basic_2_spec.js
@@ -25,7 +25,7 @@ describe("Validating Mobile Views for Auto Fill Widgets", function () {
cy.dragAndDropToCanvas("codescannerwidget", { x: 100, y: 200 });
cy.dragAndDropToCanvas("listwidgetv2", { x: 620, y: 820 });
cy.dragAndDropToCanvas("tablewidgetv2", { x: 620, y: 820 });
- cy.dragAndDropToCanvas("tabswidget", { x: 770, y: 770 });
+ cy.dragAndDropToCanvas("tabswidget", { x: 670, y: 770 });
cy.wait(2000);
_.deployMode.DeployApp();
cy.wait(2000);
diff --git a/app/client/cypress/e2e/Regression/ClientSide/MobileResponsiveTests/AutoFillWidgets_Basic_spec.js b/app/client/cypress/e2e/Regression/ClientSide/MobileResponsiveTests/AutoFillWidgets_Basic_spec.js
index 1c073c1045..fd6b44bbfd 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/MobileResponsiveTests/AutoFillWidgets_Basic_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/MobileResponsiveTests/AutoFillWidgets_Basic_spec.js
@@ -42,9 +42,9 @@ describe("Validating Mobile Views for Auto Fill Widgets", function () {
cy.dragAndDropToCanvas("currencyinputwidget", { x: 110, y: 210 });
cy.dragAndDropToCanvas("audiowidget", { x: 250, y: 300 });
cy.dragAndDropToCanvas("selectwidget", { x: 560, y: 560 });
- cy.dragAndDropToCanvas("checkboxwidget", { x: 770, y: 770 });
- cy.dragAndDropToCanvas("radiogroupwidget", { x: 770, y: 770 });
- cy.dragAndDropToCanvas("datepickerwidget2", { x: 770, y: 970 });
+ cy.dragAndDropToCanvas("checkboxwidget", { x: 670, y: 770 });
+ cy.dragAndDropToCanvas("radiogroupwidget", { x: 670, y: 770 });
+ cy.dragAndDropToCanvas("datepickerwidget2", { x: 670, y: 970 });
cy.dragAndDropToCanvas("phoneinputwidget", { x: 660, y: 810 });
cy.dragAndDropToCanvas("categorysliderwidget", { x: 620, y: 810 });
cy.wait(5000);
diff --git a/app/client/cypress/e2e/Regression/ClientSide/MobileResponsiveTests/Snipping_mode_Basic_test.js b/app/client/cypress/e2e/Regression/ClientSide/MobileResponsiveTests/Snipping_mode_Basic_test.js
index 38f34eaced..ccaa3a517d 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/MobileResponsiveTests/Snipping_mode_Basic_test.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/MobileResponsiveTests/Snipping_mode_Basic_test.js
@@ -1,5 +1,8 @@
import * as _ from "../../../../support/Objects/ObjectsCore";
import { Widgets } from "../../../../support/Pages/DataSources";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
let datasourceName;
@@ -9,12 +12,10 @@ describe("Add widget - Postgress DataSource", function () {
cy.get("@dsName").then(($dsName) => {
datasourceName = $dsName;
});
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
});
it("1. Validate Snipping with query and table widget on canvas", () => {
- cy.get(".t--close-editor span:contains('Back')").click({ force: true });
- cy.get(".t--back-button span:contains('Back')").click({ force: true });
-
_.autoLayout.ConvertToAutoLayoutAndVerify(false);
cy.NavigateToActiveDSQueryPane(datasourceName);
_.dataSources.EnterQuery("select * from public.configs");
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Onboarding/FirstTimeUserOnboarding_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Onboarding/FirstTimeUserOnboarding_spec.js
index 8e290495ac..5ca32ff7d7 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Onboarding/FirstTimeUserOnboarding_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Onboarding/FirstTimeUserOnboarding_spec.js
@@ -1,3 +1,7 @@
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
+
const OnboardingLocator = require("../../../../locators/FirstTimeUserOnboarding.json");
import {
agHelper,
@@ -23,6 +27,7 @@ describe("FirstTimeUserOnboarding", function () {
cy.get(OnboardingLocator.introModal).should("be.visible");
cy.get(OnboardingLocator.checklistDatasourceBtn).click();
cy.get(OnboardingLocator.introModal).should("not.exist");
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
cy.get(".t--entity-name:contains(Page1)")
.trigger("mouseover")
.click({ force: true });
@@ -36,7 +41,7 @@ describe("FirstTimeUserOnboarding", function () {
agHelper.GetNAssertContains(OnboardingLocator.checklistStatus, "0 of 5");
agHelper.AssertElementExist(OnboardingLocator.checklistDatasourceBtn);
agHelper.GetNClick(OnboardingLocator.checklistDatasourceBtn);
- agHelper.AssertElementVisibility(OnboardingLocator.datasourcePage);
+ agHelper.AssertElementVisibility(dataSources._newDatasourceContainer);
agHelper.GetNClick(OnboardingLocator.datasourceMock);
@@ -48,6 +53,7 @@ describe("FirstTimeUserOnboarding", function () {
.realHover()
.should("have.css", "cursor", "auto");
agHelper.GetNClick(OnboardingLocator.checklistActionBtn);
+ dataSources.navigateToDatasource("Movies");
agHelper.GetNClick(OnboardingLocator.createQuery);
agHelper.Sleep();
@@ -117,7 +123,7 @@ describe("FirstTimeUserOnboarding", function () {
.should("have.css", "cursor", "pointer");
cy.get(OnboardingLocator.checklistDatasourceBtn).click();
- cy.get(OnboardingLocator.datasourcePage).should("be.visible");
+ cy.get(dataSources._newDatasourceContainer).should("be.visible");
cy.get(datasource.MongoDB).click();
dataSources.FillMongoDSForm();
cy.generateUUID().then((uid) => {
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Onboarding/GuidedTour_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Onboarding/GuidedTour_spec.js
index c5951f4c58..640c9d31d6 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Onboarding/GuidedTour_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Onboarding/GuidedTour_spec.js
@@ -39,7 +39,7 @@ describe("excludeForAirgap", "Guided Tour", function () {
dataSources.RunQuery();
cy.get(guidedTourLocators.successButton).click();
// Step 2: Select table widget
- entityExplorer.SelectEntityByName("CustomersTable");
+ cy.get(".t--entity-name").contains("CustomersTable").click({ force: true });
// Step 3: Add binding to the tableData property
propPane.UpdatePropertyFieldValue(
@@ -106,7 +106,7 @@ describe("excludeForAirgap", "Guided Tour", function () {
cy.get(guidedTourLocators.successButton).click();
// Step 6: Drag and drop a widget
cy.dragAndDropToCanvas("buttonwidget", {
- x: 800,
+ x: 845,
y: 750,
});
cy.get(guidedTourLocators.successButton).click();
diff --git a/app/client/cypress/e2e/Regression/ClientSide/OneClickBinding/PropertyControl_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/OneClickBinding/PropertyControl_spec.ts
index cc7c0eb1c9..208f07e299 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/OneClickBinding/PropertyControl_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/OneClickBinding/PropertyControl_spec.ts
@@ -9,6 +9,9 @@ import {
import { expandLoadMoreOptions, OneClickBinding } from "./spec_utility";
import oneClickBindingLocator from "../../../../locators/OneClickBindingLocator";
import onboardingLocator from "../../../../locators/FirstTimeUserOnboarding.json";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
const oneClickBinding = new OneClickBinding();
@@ -67,9 +70,9 @@ describe("excludeForAirgap", "One click binding control", () => {
oneClickBindingLocator.otherActionSelector("Connect new datasource"),
);
- agHelper.AssertElementExist(onboardingLocator.datasourcePage);
+ agHelper.AssertElementExist(dataSources._newDatasourceContainer);
- agHelper.GetNClick(onboardingLocator.datasourceBackBtn);
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
agHelper.GetNClick(oneClickBindingLocator.datasourceDropdownSelector);
@@ -121,7 +124,7 @@ describe("excludeForAirgap", "One click binding control", () => {
dataSources.SaveDatasource();
- entityExplorer.NavigateToSwitcher("Widgets");
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
agHelper.GetNClick(oneClickBindingLocator.datasourceDropdownSelector);
@@ -149,15 +152,13 @@ describe("excludeForAirgap", "One click binding control", () => {
dataSources.SaveDatasource();
- entityExplorer.NavigateToSwitcher("Widgets");
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
});
propPane.MoveToTab("Style");
propPane.MoveToTab("Content");
- entityExplorer.NavigateToSwitcher("Explorer");
-
[1, 2, 3, 4, 5].forEach(() => {
apiPage.CreateAndFillApi("http://www.example.com");
});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/OneClickBinding/SelectWidget/mongoDB_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/OneClickBinding/SelectWidget/mongoDB_spec.ts
index 966380d01d..5407cf0869 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/OneClickBinding/SelectWidget/mongoDB_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/OneClickBinding/SelectWidget/mongoDB_spec.ts
@@ -11,6 +11,9 @@ import {
import formWidgetsPage from "../../../../../locators/FormWidgets.json";
import widgetsPage from "../../../../../locators/Widgets.json";
import commonlocators from "../../../../../locators/commonlocators.json";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../../support/Pages/EditorNavigation";
const oneClickBinding = new OneClickBinding();
@@ -23,6 +26,7 @@ describe("Table widget one click binding feature", () => {
dataSources.CreateDataSource("Mongo");
cy.get("@dsName").then((dsName) => {
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
entityExplorer.NavigateToSwitcher("Widgets");
entityExplorer.SelectEntityByName("Select1", "Widgets");
diff --git a/app/client/cypress/e2e/Regression/ClientSide/OneClickBinding/TableWidget/mongoDB_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/OneClickBinding/TableWidget/mongoDB_spec.ts
index 4dc20458c0..16f5c15039 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/OneClickBinding/TableWidget/mongoDB_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/OneClickBinding/TableWidget/mongoDB_spec.ts
@@ -8,6 +8,9 @@ import {
assertHelper,
} from "../../../../../support/Objects/ObjectsCore";
import { OneClickBinding } from "../spec_utility";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../../support/Pages/EditorNavigation";
const oneClickBinding = new OneClickBinding();
@@ -23,6 +26,7 @@ describe("one click binding mongodb datasource", function () {
dataSources.CreateDataSource("Mongo");
cy.get("@dsName").then((dsName) => {
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
entityExplorer.SelectEntityByName("Table1", "Widgets");
oneClickBinding.ChooseAndAssertForm(`${dsName}`, dsName, "netflix", {
diff --git a/app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/EntityBottomBar_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/EntityBottomBar_spec.ts
index 5fbd3852f0..b26b0f5746 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/EntityBottomBar_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/EntityBottomBar_spec.ts
@@ -66,15 +66,7 @@ describe("Entity bottom bar", () => {
_.debuggerHelper.AssertClosed();
//Verify if bottom bar opens on clicking debugger icon in datasource page.
_.debuggerHelper.ClickDebuggerIcon();
- _.debuggerHelper.AssertOpen(PageType.DataSources);
- //Verify if selected tab is errors in tab title.
- _.debuggerHelper.AssertSelectedTab("Errors");
- //Verify if bottom bar is closed on clicking close icon in datasource page.
- _.debuggerHelper.CloseBottomBar();
_.debuggerHelper.AssertClosed();
- //Verify if bottom bar opens on clicking debugger icon in datasource page.
- _.debuggerHelper.ClickDebuggerIcon();
- _.debuggerHelper.AssertOpen(PageType.DataSources);
});
it("excludeForAirgap", "5. Query bottom bar should be collapsable", () => {
@@ -107,7 +99,7 @@ describe("Entity bottom bar", () => {
_.debuggerHelper.AssertSelectedTab("Response");
// clean up
_.dataSources.DeleteQuery("Query1");
- _.dataSources.DeleteDatasouceFromActiveTab(dbName);
+ _.dataSources.DeleteDatasourceFromWithinDS(dbName);
});
});
@@ -138,7 +130,7 @@ describe("Entity bottom bar", () => {
// clean up
_.dataSources.DeleteQuery("Query1");
cy.get("@dsName").then(($dsName) => {
- _.dataSources.DeleteDatasouceFromActiveTab($dsName as any);
+ _.dataSources.DeleteDatasourceFromWithinDS($dsName as any);
});
});
});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/GlobalSearch_spec.js b/app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/GlobalSearch_spec.js
index a175f5506a..29cc1c0125 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/GlobalSearch_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/GlobalSearch_spec.js
@@ -1,4 +1,8 @@
/* eslint-disable cypress/no-unnecessary-waiting */
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
+
const commonlocators = require("../../../../locators/commonlocators.json");
const dsl = require("../../../../fixtures/MultipleWidgetDsl.json");
const globalSearchLocators = require("../../../../locators/GlobalSearch.json");
@@ -49,7 +53,6 @@ describe("GlobalSearch", function () {
});
it("3. navigatesToApi", () => {
- cy.NavigateToAPI_Panel();
cy.CreateAPI("SomeApi");
cy.get(commonlocators.globalSearchTrigger).click({ force: true });
@@ -136,6 +139,7 @@ describe("GlobalSearch", function () {
});
it("7. Api actions should have API as prefix", () => {
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
cy.get(globalSearchLocators.createNew).click({ force: true });
cy.get(globalSearchLocators.blankDatasource).first().click({ force: true });
cy.get(datasourceHomeLocators.createAuthApiDatasource).click();
@@ -148,6 +152,7 @@ describe("GlobalSearch", function () {
cy.fillAuthenticatedAPIForm();
cy.saveDatasource();
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
cy.get(globalSearchLocators.createNew).click({ force: true });
cy.get(".ads-v2-menu__menu-item span:contains('omnibarApiDatasource')")
.first()
diff --git a/app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/Replay_Editor_spec.js b/app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/Replay_Editor_spec.js
index 33f286819d..d9537bcd80 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/Replay_Editor_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/Replay_Editor_spec.js
@@ -49,8 +49,6 @@ describe("Undo/Redo functionality", function () {
});
it("2. Checks undo/redo for Api pane", function () {
- cy.NavigateToAPI_Panel();
- cy.log("Navigation to API Panel screen successful");
cy.CreateAPI("FirstAPI");
cy.get(`${apiwidget.resourceUrl} .CodeMirror-placeholder`).should(
"have.text",
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Refactoring/Refactoring_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Refactoring/Refactoring_spec.ts
index 95ef1bdfea..627dc4e7a3 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Refactoring/Refactoring_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/Refactoring/Refactoring_spec.ts
@@ -9,6 +9,9 @@ import {
propPane,
dataManager,
} from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
describe("Validate JS Object Refactoring does not affect the comments & variables", () => {
let dsName: any;
@@ -41,6 +44,7 @@ describe("Validate JS Object Refactoring does not affect the comments & variable
dataSources.CreateDataSource("MySql", true, false);
cy.get("@dsName").then(($dsName) => {
dsName = $dsName;
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
//Selecting paintings table from MySQL DS
//Initialize new JSObject with custom code
diff --git a/app/client/cypress/e2e/Regression/ClientSide/SetProperty/WidgetPropertySetters2_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/SetProperty/WidgetPropertySetters2_spec.ts
index 111ff48607..8d7ab55ce4 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/SetProperty/WidgetPropertySetters2_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/SetProperty/WidgetPropertySetters2_spec.ts
@@ -96,6 +96,7 @@ describe("Widget Property Setters - Part II - Tc #2409", () => {
expect(val).be.empty;
});
agHelper.ClickButton("Submit");
+ agHelper.Sleep(3000); //for the Api to run & new value to be set, for CI runs
agHelper
.GetText(
locators._widgetInDeployed(draggableWidgets.INPUT_V2) +
diff --git a/app/client/cypress/e2e/Regression/ClientSide/SettingsPane/GeneralSettings_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/SettingsPane/GeneralSettings_spec.ts
index 10427aa2d2..0f7bc8f5aa 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/SettingsPane/GeneralSettings_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/SettingsPane/GeneralSettings_spec.ts
@@ -12,7 +12,11 @@ describe("General Settings", () => {
it("1. App name change updates URL", () => {
_.appSettings.OpenAppSettings();
_.appSettings.GoToGeneralSettings();
- _.generalSettings.UpdateAppNameAndVerifyUrl(true, guid);
+ _.generalSettings.UpdateAppNameAndVerifyUrl({
+ reset: true,
+ newAppName: guid,
+ restOfUrl: "/settings",
+ });
_.homePage.GetAppName().then((appName) => {
_.deployMode.DeployApp();
_.appSettings.CheckUrl(appName as string, "Page1", undefined, false);
@@ -28,7 +32,12 @@ describe("General Settings", () => {
//App name allows special and accented character
_.appSettings.OpenAppSettings();
_.appSettings.GoToGeneralSettings();
- _.generalSettings.UpdateAppNameAndVerifyUrl(true, guid + "!@#œ™¡", guid);
+ _.generalSettings.UpdateAppNameAndVerifyUrl({
+ reset: true,
+ newAppName: guid + "!@#œ™¡",
+ verifyAppNameAs: guid,
+ restOfUrl: "/settings",
+ });
_.appSettings.ClosePane();
//Veirfy App name doesn't allow empty
diff --git a/app/client/cypress/e2e/Regression/ClientSide/SettingsPane/PageSettings_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/SettingsPane/PageSettings_spec.ts
index acde3460f8..8ea7e1a71a 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/SettingsPane/PageSettings_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/SettingsPane/PageSettings_spec.ts
@@ -4,7 +4,12 @@ describe("Page Settings", () => {
it("1. Page name change updates URL", () => {
_.appSettings.OpenAppSettings();
_.appSettings.GoToPageSettings("Page1");
- _.pageSettings.UpdatePageNameAndVerifyUrl("Page2", undefined, false);
+ _.pageSettings.UpdatePageNameAndVerifyUrl({
+ newPageName: "Page2",
+ verifyPageNameAs: undefined,
+ reset: false,
+ restOfUrl: "/settings",
+ });
_.homePage.GetAppName().then((appName) => {
_.deployMode.DeployApp();
_.appSettings.CheckUrl(appName as string, "Page2", undefined, false);
@@ -16,7 +21,7 @@ describe("Page Settings", () => {
it("2. Custom slug change updates URL", () => {
_.appSettings.OpenAppSettings();
_.appSettings.GoToPageSettings("Page2");
- _.pageSettings.UpdateCustomSlugAndVerifyUrl("custom");
+ _.pageSettings.UpdateCustomSlugAndVerifyUrl("custom", "/settings");
_.homePage.GetAppName().then((appName) => {
_.deployMode.DeployApp();
_.appSettings.CheckUrl(appName as string, "Page2", "custom", false);
@@ -46,7 +51,11 @@ describe("Page Settings", () => {
// Page name allows accented character
_.appSettings.OpenAppSettings();
_.appSettings.GoToPageSettings("Page3");
- _.pageSettings.UpdatePageNameAndVerifyUrl("Page3œßð", "Page3");
+ _.pageSettings.UpdatePageNameAndVerifyUrl({
+ newPageName: "Page3œßð",
+ verifyPageNameAs: "Page3",
+ restOfUrl: "/settings",
+ });
_.appSettings.ClosePane();
//Page name doesn't allow special character
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Templates/Fork_Template_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Templates/Fork_Template_spec.js
index 8c1391574b..04a3ebd767 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Templates/Fork_Template_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Templates/Fork_Template_spec.js
@@ -79,7 +79,7 @@ describe("excludeForAirgap", "Fork a template to an workspace", () => {
.find(reconnectDatasourceLocators.ListItemIcon)
.should("be.visible");
cy.get(reconnectDatasourceLocators.DatasourceList)
- .find(reconnectDatasourceLocators.ListItemIcon, {
+ .find(reconnectDatasourceLocators.DatasourceTitle, {
withinSubject: null,
})
.first()
diff --git a/app/client/cypress/e2e/Regression/ClientSide/VisualTests/DatasourcePageLayout_spec.js b/app/client/cypress/e2e/Regression/ClientSide/VisualTests/DatasourcePageLayout_spec.js
index af4b55b064..a205f4501c 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/VisualTests/DatasourcePageLayout_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/VisualTests/DatasourcePageLayout_spec.js
@@ -1,4 +1,7 @@
import * as _ from "../../../../support/Objects/ObjectsCore";
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../support/Pages/EditorNavigation";
describe("Visual tests for datasources", () => {
// for any changes in UI, update the screenshot in snapshot folder, to do so:
@@ -13,10 +16,8 @@ describe("Visual tests for datasources", () => {
const newWorkspaceName = interception.response.body.data.name;
cy.CreateAppForWorkspace(newWorkspaceName, newWorkspaceName);
});
- _.dataSources.NavigateToActiveTab();
- cy.get(".t--integrationsHomePage").matchImageSnapshot(
- "emptydatasourcepage",
- );
+ EditorNavigation.ViaSidebar(SidebarButton.Data);
+ cy.get(".t--data-blank-state").matchImageSnapshot("emptydatasourcepage");
});
/* cy.NavigateToDatasourceEditor();
cy.wait(2000);
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Button/Button_onClickAction_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Button/Button_onClickAction_spec.js
index 82175f03a3..744651d94b 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Button/Button_onClickAction_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Button/Button_onClickAction_spec.js
@@ -38,7 +38,6 @@ describe("Button Widget Functionality", function () {
//creating an api and calling it from the onClickAction of the button widget.
// Creating the api
propPane.ClearActionField("onClick");
- cy.NavigateToAPI_Panel();
cy.CreateAPI("buttonApi");
cy.log("Creation of buttonApi Action successful");
cy.enterDatasourceAndPath(
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Chart/Custom3DChartSpec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Chart/Custom3DChartSpec.ts
index ab44a2c03b..4e515ff717 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Chart/Custom3DChartSpec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Chart/Custom3DChartSpec.ts
@@ -9,12 +9,81 @@ describe("3D Custom EChart feature", function () {
});
_.agHelper.RefreshPage();
_.entityExplorer.DragDropWidgetNVerify(_.draggableWidgets.CHART);
+
_.propPane.SelectPropertiesDropDown("Chart type", "Custom EChart");
+
+ cy.wait(1000);
+ cy.get(publicWidgetsPage.chartWidget).matchImageSnapshot("2DCustomECharts");
+
_.propPane.UpdatePropertyFieldValue(
"Custom ECharts Configuration",
`{{${JSON.stringify(this.dataSet.Custom3DEChartConfig)}}}`,
);
- _.deployMode.DeployApp();
+
+ cy.wait(1000);
cy.get(publicWidgetsPage.chartWidget).matchImageSnapshot("3DCustomECharts");
+
+ _.entityExplorer.SelectEntityByName("Chart1", "Widgets");
+ _.propPane.UpdatePropertyFieldValue(
+ "Custom ECharts Configuration",
+ `{{${JSON.stringify(this.dataSet.InvalidCustom3DEChartConfig)}}}`,
+ );
+
+ _.agHelper.AssertContains(
+ "Error in Chart Data/Configuration",
+ "exist",
+ _.locators._widgetInDeployed(_.draggableWidgets.CHART),
+ );
+
+ _.propPane.UpdatePropertyFieldValue(
+ "Custom ECharts Configuration",
+ `{{${JSON.stringify(this.dataSet.Custom3DEChartConfig)}}}`,
+ );
+
+ _.agHelper.AssertContains(
+ "Error in Chart Data/Configuration",
+ "not.exist",
+ _.locators._widgetInDeployed(_.draggableWidgets.CHART),
+ );
+
+ _.propPane.UpdatePropertyFieldValue(
+ "Custom ECharts Configuration",
+ `{{${JSON.stringify(this.dataSet.InvalidCustom3DEChartConfig)}}}`,
+ );
+
+ _.agHelper.AssertContains(
+ "Error in Chart Data/Configuration",
+ "exist",
+ _.locators._widgetInDeployed(_.draggableWidgets.CHART),
+ );
+
+ _.propPane.SelectPropertiesDropDown("Chart type", "Custom Fusion Charts");
+
+ cy.wait(1000);
+ cy.get(publicWidgetsPage.chartWidget).matchImageSnapshot("FusionCharts");
+
+ _.propPane.SelectPropertiesDropDown("Chart type", "Custom EChart");
+
+ _.agHelper.AssertContains(
+ "Error in Chart Data/Configuration",
+ "exist",
+ _.locators._widgetInDeployed(_.draggableWidgets.CHART),
+ );
+
+ _.propPane.UpdatePropertyFieldValue(
+ "Custom ECharts Configuration",
+ `{{${JSON.stringify(this.dataSet.Custom3DEChartConfig)}}}`,
+ );
+
+ _.agHelper.AssertContains(
+ "Error in Chart Data/Configuration",
+ "not.exist",
+ _.locators._widgetInDeployed(_.draggableWidgets.CHART),
+ );
+
+ cy.wait(1000);
+ cy.get(publicWidgetsPage.chartWidget).matchImageSnapshot(
+ "3DCustomECharts-2",
+ );
});
});
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Checkbox/CheckboxGroup_withQuery_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Checkbox/CheckboxGroup_withQuery_spec.js
index 3a5b0f421d..891ab4fa42 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Checkbox/CheckboxGroup_withQuery_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Checkbox/CheckboxGroup_withQuery_spec.js
@@ -1,3 +1,7 @@
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../../support/Pages/EditorNavigation";
+
const publish = require("../../../../../locators/publishWidgetspage.json");
const explorer = require("../../../../../locators/explorerlocators.json");
import * as _ from "../../../../../support/Objects/ObjectsCore";
@@ -9,6 +13,7 @@ describe("Checkbox Group Widget Functionality", function () {
cy.get("@dsName").then(($dsName) => {
dsName = $dsName;
});
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
});
it("1. Check checkbox group with dynamic query", function () {
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Dropdown/DropDownWidget_value_reset_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Dropdown/DropDownWidget_value_reset_spec.js
index 8e59099304..a74cd3f9eb 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Dropdown/DropDownWidget_value_reset_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Dropdown/DropDownWidget_value_reset_spec.js
@@ -1,3 +1,7 @@
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../../support/Pages/EditorNavigation";
+
const commonlocators = require("../../../../../locators/commonlocators.json");
import * as _ from "../../../../../support/Objects/ObjectsCore";
@@ -15,7 +19,8 @@ describe("Dropdown Widget Check value does not reset on navigation", function ()
cy.wait(200);
//Navigate
- cy.NavigateToAPI_Panel();
+ EditorNavigation.ViaSidebar(SidebarButton.Data);
+ EditorNavigation.ViaSidebar(SidebarButton.Pages);
//Again navigate back to the widget
_.entityExplorer.SelectEntityByName("Select3");
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Dropdown/Dropdown_onOptionChange_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Dropdown/Dropdown_onOptionChange_spec.js
index f06d14b406..11b4ca7386 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Dropdown/Dropdown_onOptionChange_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Dropdown/Dropdown_onOptionChange_spec.js
@@ -42,7 +42,6 @@ describe("Dropdown Widget", function () {
it("2. Dropdown-Call-Api Validation", function () {
//creating an api and calling it from the onOptionChangeAction of the Dropdown widget.
// Creating the api
- cy.NavigateToAPI_Panel();
cy.CreateAPI("dropdownApi");
cy.log("Creation of buttonApi Action successful");
cy.enterDatasourceAndPath(
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/JSONForm/JSONForm_RadioGroupField_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/JSONForm/JSONForm_RadioGroupField_spec.js
index c4c8ca6669..2fd30f8306 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/JSONForm/JSONForm_RadioGroupField_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/JSONForm/JSONForm_RadioGroupField_spec.js
@@ -1,10 +1,7 @@
const commonlocators = require("../../../../../locators/commonlocators.json");
const dslWithoutSchema = require("../../../../../fixtures/jsonFormDslWithoutSchema.json");
const fieldPrefix = ".t--jsonformfield";
-import { ObjectsRegistry } from "../../../../../support/Objects/Registry";
-let agHelper = ObjectsRegistry.AggregateHelper;
-let locators = ObjectsRegistry.CommonLocators;
-let propPane = ObjectsRegistry.PropertyPane;
+import { agHelper, propPane } from "../../../../../support/Objects/ObjectsCore";
function selectAndValidateOption(selector, option, expectedFormData) {
// Select option Zero
@@ -50,7 +47,7 @@ describe("JSONForm RadioGroup Field", () => {
cy.closePropertyPane();
});
- it("accepts numeric options value", () => {
+ it("1. accepts numeric options value", () => {
cy.openPropertyPane("jsonformwidget");
const schema = {
binary: 1,
@@ -76,7 +73,7 @@ describe("JSONForm RadioGroup Field", () => {
cy.selectDropdownValue(commonlocators.jsonFormFieldType, /^Radio Group$/);
clearOptionsProperty();
- cy.testJsontext("options", JSON.stringify(options));
+ propPane.UpdatePropertyFieldValue("Options", JSON.stringify(options));
cy.wait(2000);
@@ -99,7 +96,7 @@ describe("JSONForm RadioGroup Field", () => {
});
});
- it("accepts string options value", () => {
+ it("2. accepts string options value", () => {
cy.openPropertyPane("jsonformwidget");
const schema = {
accept: "N",
@@ -126,8 +123,7 @@ describe("JSONForm RadioGroup Field", () => {
cy.selectDropdownValue(commonlocators.jsonFormFieldType, /^Radio Group$/);
clearOptionsProperty();
- cy.testJsontext("options", JSON.stringify(options));
-
+ propPane.UpdatePropertyFieldValue("Options", JSON.stringify(options));
cy.wait(2000);
// Validate initial form data
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/ListV2/Listv2_BasicServerSideData_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/ListV2/Listv2_BasicServerSideData_spec.js
index b1c74122b0..967f8b8455 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/ListV2/Listv2_BasicServerSideData_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/ListV2/Listv2_BasicServerSideData_spec.js
@@ -1,3 +1,7 @@
+import EditorNavigation, {
+ SidebarButton,
+} from "../../../../../support/Pages/EditorNavigation";
+
const publishLocators = require("../../../../../locators/publishWidgetspage.json");
const datasource = require("../../../../../locators/DatasourcesEditor.json");
const queryLocators = require("../../../../../locators/QueryEditor.json");
@@ -328,17 +332,10 @@ describe("List widget v2 - Basic server side data tests", () => {
// Click on sample(mock) user database.
cy.get(datasource.mockUserDatabase).click();
- _.dataSources.NavigateToActiveTab();
+ EditorNavigation.ViaSidebar(SidebarButton.Data);
// Choose the first data source which consists of users keyword & Click on the "New query +"" button
- cy.get(`${datasource.datasourceCard}`)
- .filter(":contains('Users')")
- .first()
- .within(() => {
- cy.get(`${datasource.createQuery}`).click({
- force: true,
- });
- });
+ _.dataSources.CreateQueryFromActiveTab("Users");
// Click the editing field
cy.get(".t--action-name-edit-field").click({
@@ -379,7 +376,7 @@ describe("List widget v2 - Basic server side data tests", () => {
);
it(
"airgap",
- "6. no of items rendered should be equal to page size - airgap",
+ "7. no of items rendered should be equal to page size - airgap",
() => {
_.dataSources.CreateDataSource("Postgres");
cy.wait(1000);
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/ListV2/Listv2_onItemClick_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/ListV2/Listv2_onItemClick_spec.js
index 4cd81f10c6..4bf2176a19 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/ListV2/Listv2_onItemClick_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/ListV2/Listv2_onItemClick_spec.js
@@ -82,7 +82,7 @@ describe("List widget v2 onItemClick", () => {
entityExplorer.DragDropWidgetNVerify(
draggableWidgets.INPUT_V2,
- 250,
+ 150,
50,
draggableWidgets.CONTAINER,
);
@@ -94,7 +94,7 @@ describe("List widget v2 onItemClick", () => {
entityExplorer.DragDropWidgetNVerify(
draggableWidgets.SELECT,
- 250,
+ 150,
50,
draggableWidgets.CONTAINER,
);
@@ -107,7 +107,7 @@ describe("List widget v2 onItemClick", () => {
entityExplorer.DragDropWidgetNVerify(
draggableWidgets.BUTTON,
- 250,
+ 150,
50,
draggableWidgets.CONTAINER,
);
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Modal/Modal_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Modal/Modal_spec.ts
index d6dd991ffb..03c8b6a42b 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Modal/Modal_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Modal/Modal_spec.ts
@@ -27,7 +27,8 @@ describe("Modal Widget test cases", function () {
//Verify that the Modal widget opens correctly when configured on a button click.
agHelper.ClickButton("Submit");
- agHelper.AssertElementVisibility(locators._modal);
+ agHelper.WaitUntilEleAppear(locators._modal);
+ agHelper.AssertElementExist(locators._modal);
//Verify that the Modal widget is closed and no longer visible on the screen on clicking the "X" button.
agHelper.AssertElementVisibility(
@@ -38,7 +39,8 @@ describe("Modal Widget test cases", function () {
//Verify that clicking outside the Modal widget closes it as expected when Quick dismiss is enabled
agHelper.ClickButton("Submit");
- agHelper.AssertElementVisibility(locators._modal);
+ agHelper.WaitUntilEleAppear(locators._modal);
+ agHelper.AssertElementExist(locators._modal);
agHelper.ClickOutside(350, 150, false);
agHelper.Sleep();
agHelper.AssertElementAbsence(locators._modal);
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Multiselect/MultiSelect3_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Multiselect/MultiSelect3_spec.js
index 4ce7f7921d..498cbc74b9 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Multiselect/MultiSelect3_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Multiselect/MultiSelect3_spec.js
@@ -29,7 +29,7 @@ describe("Dropdown Widget Functionality", function () {
.find(widgetLocators.menuButton)
.then(($menuButton) => {
const outerWidth = Cypress.$($menuButton).outerWidth();
- expect(parseInt(outerWidth)).to.equal(147);
+ expect(parseInt(outerWidth)).to.equal(137);
});
cy.get(formWidgetsPage.menuButtonWidget)
.find(widgetLocators.menuButton)
@@ -41,7 +41,7 @@ describe("Dropdown Widget Functionality", function () {
cy.get(".menu-button-popover")
.invoke("outerWidth")
.then((width) => {
- expect(parseInt(width)).to.equal(147);
+ expect(parseInt(width)).to.equal(137);
});
// MultiSelect
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Others/StatboxDsl_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Others/StatboxDsl_spec.js
index 9406c3c564..095f540dab 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Others/StatboxDsl_spec.js
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Others/StatboxDsl_spec.js
@@ -30,7 +30,7 @@ describe("Statbox Widget", function () {
entityExplorer.SelectEntityByName("IconButton1", "Statbox1");
cy.get(".t--property-pane-section-general").then(() => {
// changing the icon to arrow-up
- cy.get(".bp3-button-text").first().click();
+ cy.get(".bp3-button-text").first().click().wait(500);
cy.get(".bp3-icon-arrow-up").click().wait(500);
// opening modal from onClick action of icon button
cy.createModal("Modal", "onClick");
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Radio/Radio2_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Radio/Radio2_spec.ts
index 80ec9740b3..6872422d14 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Radio/Radio2_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Radio/Radio2_spec.ts
@@ -252,7 +252,7 @@ describe("Radio Widget test cases", function () {
agHelper.AssertCSS(
widgetLocators.radioWidgetLabelContainer,
"width",
- "59.765625px",
+ "55.859375px",
);
agHelper.GetNClick(widgetLocators.selectWidgetWidthPlusBtn);
agHelper.GetNClick(widgetLocators.selectWidgetWidthPlusBtn);
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Select/Select2_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Select/Select2_Spec.ts
index a589a0374a..1802411e87 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Select/Select2_Spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Select/Select2_Spec.ts
@@ -44,7 +44,7 @@ describe("Select widget tests", function () {
agHelper.AssertCSS(
widgetLocators.selectWidgetLabelContainer,
"width",
- "59.765625px",
+ "55.859375px",
);
agHelper.GetNClick(widgetLocators.selectWidgetWidthPlusBtn);
agHelper.GetNClick(widgetLocators.selectWidgetWidthPlusBtn);
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Select/Select3_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Select/Select3_Spec.ts
index 52ad40d03c..0c300b0ad2 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Select/Select3_Spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Select/Select3_Spec.ts
@@ -59,7 +59,7 @@ describe("Select widget tests", function () {
deployMode.DeployApp(locators._widgetInDeployed(draggableWidgets.SELECT));
//Validate filtered data
- agHelper.Sleep(3000); //Wait for widget to settle
+ agHelper.Sleep(6000); //Wait for widget to settle for CI failure
agHelper.GetNClick(locators._widgetInDeployed(draggableWidgets.SELECT));
agHelper.TypeText(widgetLocators.selectWidgetFilter, "Ulf");
agHelper.Sleep(3000); //Wait for widget filter to settle for CI runs
diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TreeSelect/Tree_Select_2_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TreeSelect/Tree_Select_2_spec.ts
index 797b3b9e2e..4cf7031850 100644
--- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TreeSelect/Tree_Select_2_spec.ts
+++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TreeSelect/Tree_Select_2_spec.ts
@@ -160,10 +160,6 @@ describe("Tree Select widget Tests", function () {
// Execute the query
let postgresDatasourceName: any;
dataSources.StartDataSourceRoutes();
- agHelper
- .GetElement(locators._newDataSourceBtn)
- .last()
- .click({ force: true });
dataSources.NavigateToDSCreateNew();
dataSources.CreatePlugIn("PostgreSQL");
agHelper.GenerateUUID();
@@ -300,7 +296,7 @@ describe("Tree Select widget Tests", function () {
propPane.UpdatePropertyFieldValue(
"srcDoc",
`