Commit Graph

44 Commits

Author SHA1 Message Date
Diljit
d538d0dc7d
chore: convert consolidated api etag to a weak one (#38939)
## Description
Updated the computeConsolidatedAPIResponseEtag method to return weak
ETags instead of strong ETags to ensure compatibility with nginx when
gzip is enabled. This change includes adding a prefix "W/" to the ETag
value and includes references to related issues and documentation.

Ref: https://github.com/kubernetes/ingress-nginx/issues/1390


Fixes #`Issue Number`  
_or_  
Fixes `Issue URL`
> [!WARNING]  
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._

## Automation

/ok-to-test tags="@tag.All"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/13069342399>
> Commit: b09d978d0123359c20a16d02445f97d9b9102d83
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13069342399&attempt=3"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Fri, 31 Jan 2025 10:40:19 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Configuration Changes**
- Modified NGINX configuration to potentially enable gzip compression
for API responses
- Updated ETag generation to use weak ETag format for better
compatibility
- Removed specific route handling for consolidated API endpoint in Caddy
configuration

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-01-31 16:35:20 +05:30
Diljit
01cda23c3d
chore: add etag caching in consolidated api for application view mode (#38873)
## Description
- Implement Etag caching for consolidated api in view mode.
  - Generate Etag for consolidated api in view mode
- compare the if none match header with the computed etag and respond
with either a 304 or 200
  - add span for generate etag fn
- Remove prefetching and caching of static assets in service worker  

```mermaid
sequenceDiagram
    Client->>Server: Request Consolidated API
    Server-->>Server: Compute ETag
    Server-->>Client: Respond with ETag, Cache-Control
    Client->>Server: Subsequent Request with If-None-Match
    alt ETag Matches
        Server-->>Client: 304 Not Modified
    else ETag Different
        Server-->>Client: Full Response with New ETag
    end
```

## Automation

/ok-to-test tags="@tag.All"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/13046610688>
> Commit: c14d58da8a59b3bbfb10c7e308b518d2cd8e3b7d
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13046610688&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Thu, 30 Jan 2025 07:14:21 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added ETag support for consolidated API responses to improve caching
efficiency.
- Introduced a new route handler for the `/api/v1/consolidated-api/view`
endpoint.

- **Performance Improvements**
	- Optimized NGINX configuration for API responses.
	- Updated tracing endpoint for better monitoring.

- **Dependency Updates**
	- Added Jackson datatype support for Java 8 date and time handling.

- **Technical Enhancements**
	- Improved request handling in ConsolidatedAPIController.
	- Updated service worker configuration.
	- Refined feature flag handling in the client.
	- Enhanced API request headers for consolidated page load functions.
	- Simplified caching and routing logic in the service worker.
	- Adjusted service worker caching strategy for production environment.
	- Updated test specification path for Cypress limited tests.
- Modified request handling to remove unnecessary headers in feature
flag functions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-01-30 13:54:34 +05:30
Shrikant Sharat Kandula
362b72676b
chore: Find version after backend is ready (#37861) 2024-11-29 18:57:57 +05:30
Shrikant Sharat Kandula
d9b1a32673
chore: Always get version from $backend (#37857) 2024-11-29 15:55:27 +05:30
Shrikant Sharat Kandula
591b25dd22
chore: Fix check for getting backend vesrion 2024-11-28 09:47:48 +05:30
Shrikant Sharat Kandula
7615cd0a3f
chore: Fix start-https when backend isn't set 2024-11-28 06:58:36 +05:30
Shrikant Sharat Kandula
0b1069663e
chore: Get release's version if needed (#37777)
**/test sanity**



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Enhanced script to retrieve and export the Appsmith application
version when using a specific release URL.
- **Bug Fixes**
- Improved error handling and messaging for missing dependencies or
incorrect configurations.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-27 14:11:20 +05:30
Rishabh Rathod
fb0bbdfa5c
chore: Remove deprecated start-https.sh message (#33856)
## Description

- Remove the deprecated message in `start-https.sh` script and
suggestion to use caddy as it is still work in progress.
2024-05-31 07:18:57 +05:30
Shrikant Sharat Kandula
7a50b9095f
chore: Local Caddy support (#31325)
Replaces NGINX for local dev with Caddy.

The advandage here is that the script that generates `Caddyfile` at
runtime on production deployments, is also used to generate the
`Caddyfile` at local development. This reduces the local--production
gap.

/ok-to-test tags="@tag.Sanity"
2024-04-19 06:38:01 +05:30
Shrikant Sharat Kandula
92993cccef
chore: Remove unused services (#30292)
I've been doing this in pieces bit by bit, not to rock the boat too much
too fast, but it's taking too long, and too much effort. Instead opting
for a rip-the-bandaid style, hopefully without the pain.
2024-01-23 05:43:16 +05:30
Shrikant Sharat Kandula
cb37369f45
chore: remove unused APPSMITH_TNC_PP env variable (#30288) 2024-01-16 09:59:06 +05:30
Shrikant Sharat Kandula
3313cdadc0
chore: Detect other NGINX and offer to kill (#25478)
In the `start-https.sh` script, detect if some other process is
listening on the ports we need, and if yes, inform of this, and offer to
kill and proceed.
2023-07-19 16:39:11 +05:30
Shrikant Sharat Kandula
6dc05d1e09
chore: Fail when backend has a trailing slash (#23437)
This is the same fix from
https://github.com/appsmithorg/appsmith/pull/6981. Unfortunately, looks
like we've missed this and has caused wasted time again.
2023-05-17 13:56:23 +05:30
Shrikant Sharat Kandula
afb763204a
chore: Remove login and signup related env variables from client (#22891)
Remove form login and form signup env variables from client, and get
this information, tenant-specific, from the server.
2023-05-16 14:34:48 +05:30
Shrikant Sharat Kandula
7558df366e
chore: Remove OAuth env variables from client (#20660)
Client will get supported OAuth list from the tenant API, instead of
from injected env variables like `APPSMITH_OAUTH2_GOOGLE_CLIENT_ID`.

This is a step towards moving OAuth configuration out of env variables
completely, and into the backend database, so their configuration can be
tenant-wide, instead of instance-wide.
2023-04-30 11:52:42 +05:30
Shrikant Sharat Kandula
b4570847e2
chore: Disable all caching during dev time (#22173)
Caching causes more problems than it solves, during development time.
This PR explicitly disables all cache during development.
2023-04-10 13:25:17 +05:30
Shrikant Sharat Kandula
43656a3714
fix: Revert container-internal communication when using IPv6 (#21260)
This reverts commit b3dbd85dbe.

This causes NGINX to fail to start if IPv6 is not available on the
system.
2023-03-08 21:03:46 +05:30
Shrikant Sharat Kandula
b3dbd85dbe
fix: Fix container-internal communication when using IPv6 (#20981)
When services within the fat container try to communicate with each
other, like backend to RTS etc., if they use the loopback address of
IPv4, `127.0.0.1`, it works. But if they use the loopback address of
IPv6, `::1`, it fails because the NGINX inside the fat container isn't
set to bind to IPv6.

This PR fixes this.

In EE, we attempt to make connections to Keycloak without setting the
hostname on the `WebClient`. This picks up the hostname of `::1` on
systems with IPv6 as default, and so the communication between backend
and Keycloak fails.

This is affecting users on ECS Fargate, for example.
2023-02-27 19:51:54 +05:30
Nidhi
412179d1fc
fix: Increased Nginx limit to 150 MB to allow 100 MB Base 64 encoded files (#20617)
## Description

We're increasing the default limit of request payload on cloud so that
100 MB files that are base 64 encoded can also be uploaded via Appsmith.

Fixes #20424

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

## How Has This Been Tested?
- Manual

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

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


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


### QA activity:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test
2023-02-20 20:34:02 +05:30
Shrikant Sharat Kandula
12cf30687f
fix: Remove extra event and old disable var (#20624)
1. Remove the `disableTelemetry` app config field, and the
`APPSMITH_DISABLE_TELEMETRY` runtime env variable in client, since it is
unused and is misleading.

2. There's a bug where the page event is being sent even if telemetry is
turned off. This is just one event, all the others are still disabled
when telemetry is off. The reason for this is because Segment
automatically sends this event on load. Quoting from [their
docs](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#page):
> Analytics.js includes a Page call by default as the final line in [the
Analytics.js
snippet](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2-copy-the-segment-snippet).
2023-02-15 19:16:04 +05:30
Shrikant Sharat Kandula
bb4ca19179
chore: Remove Maps API Key env variable for client (#19486)
Part of #11855.

Instead of getting the Google Maps API Key from runtime env variables,
we get it from the server, as part of the response of
`/api/v1/tenant/current`. This doesn't add a database call, just include
the env variable name in the response, so shouldn't have any performance
impact on the API.

On the client though, the Maps API key won't be available, until at
least the first call to `/tenant/current` is finished.

Also, first big PR in client code. 🙂

Edit: not `/me` anymore, but from `/tenant/current`.

---------

Co-authored-by: Pawan Kumar <pawan.stardust@gmail.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2023-02-07 14:53:15 +05:30
Shrikant Sharat Kandula
55462ae7e3
chore: Add frame-ancestors CSP during dev time (#19735)
We use `APPSMITH_ALLOWED_FRAME_ANCESTORS` env variable to determine the
CSP value for `frame-ancestors` in the Docker container, but we don't do
this in the `start-https.sh` script, which is used during development.
This PR fixes this inconsistency.
2023-01-25 14:13:36 +05:30
Shrikant Sharat Kandula
2198ed4c61
chore: Support using custom port(s) for listening in the start-https.sh script (#18451)
Added `--https-port` and `--http-port`, so you can set a custom port instead of the default 80 and 443. This is useful if you want to test Appsmith when using a non-standard port, fox example, how `appsmith.URL.host` behaves, or how OAuth redirects behave etc.

We also add a shortcut to start this with release endpoint. Just using `release` is now the same thing as using `https://release.app.appsmith.com`. This is useful to people like me who are _very_ good with typos.
2022-12-05 13:34:30 +05:30
Shrikant Sharat Kandula
4fed4ec52a
Fix Stale PID file breaking start-https.sh script (#17957) 2022-11-18 11:51:38 +05:30
Abhinav Jha
e6b89d03aa
Sandboxed iFrames with srcDoc (#11426)
Change iFrame widgets to use sandbox mode if srcDoc is provided
Allowed options:
`allow-forms allow-modals allow-orientation-lock allow-pointer-lock allow-popups allow-scripts allow-top-navigation-by-user-activation`

Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2022-10-04 15:20:45 +05:30
Shrikant Sharat Kandula
fc983fc65e
Fix hard-coded mime.types location (#16826) 2022-09-16 16:37:23 +05:30
Shrikant Sharat Kandula
8d2ac7ec87
fix: Fix NGINX in start-https clashing with system conf (#16803) 2022-09-16 16:08:32 +05:30
Shrikant Sharat Kandula
2a55633416
Change worker_connections to 1024 2022-09-14 19:53:03 +05:30
Shrikant Sharat Kandula
7ab3b4fbab
feat: Support running NGINX for development without Docker (#16667) 2022-09-14 09:58:31 +05:30
Aswath K
7c647b948c
Fix error with start-https.sh on directory with space in it (#12566) 2022-04-05 20:09:05 +05:30
Ankita Kinger
a905b33081
fix: Remove reset password button if form login is disabled (#11591)
* increased restart server timeout & showing reset pwd only if form login is enabled

* Updated callout for disconnect button

* added space
2022-03-03 18:49:10 +05:30
Ankita Kinger
13fe125a0c
feat: Add disconnect button on auth config pages and form login callout banner (#11389)
* added form login callout banner

* form login config page changes

* form login config page changes

* added redirecturl and uneditable field components

* added disconnect button on auth pages

* Added env variables for form login auth page

* added disconnect button on auth pages

* updated docs link for dform login callout doc

* added condition for disconnect button

* added ce changes done on ee

* updated css

* suggested changes in PR review

* suggested changes in PR review

* suggested changes in PR review

* reverted gitignore files changes

* reverted gitignore files changes

* updated logic for saving admin settings

* removed unused imports

* added changes for taginput field

* removed console

* removed warning

* removed unwanted changes
2022-03-02 23:48:50 +05:30
Shrikant Sharat Kandula
a9e46f950b
fix: Error out when server endpoint ends with a slash (#6981) 2021-08-31 11:46:29 +05:30
Rishabh Saxena
2e6b262f29
Revert specific handling at setup for macs with apple chips (#4591) 2021-06-07 16:23:18 +05:30
Rishabh Saxena
8964aea9df
[Feature] Comments feature updates (#4579) 2021-05-20 17:33:08 +05:30
Ashok Kumar M
0da3421dc2
Fix Local setup changes to accommodate M1 chip Macbooks. (#2959)
* Fix Local setup changes to accommodate M1 chip Macbooks.

* escaping quotes.

* formatting start-https.sh
2021-02-10 16:12:01 +05:30
Dwayne Forde
f8974f1911
Fixes a small syntax issue with ./start-https.sh (#2767) 2021-01-29 09:55:51 +05:30
Dwayne Forde
51ccd19081
Use IPv4 on WSL machines (#2729)
WSL has issues when handling IPv6 ips. In order to resolve this, on dev machines, we now check if it's a WSL environment. If yes, we default to using IPv4 instead of IPv6.
2021-01-28 12:08:44 +05:30
Piyush Mishra
b199c539be
Fix setup for local linux server (#1948) 2020-11-27 14:49:09 +05:30
Piyush Mishra
dbf947a1a6
Hotfix for mac start-https.sh script (#1891) 2020-11-24 18:58:05 +05:30
Piyush Mishra
e7c465eaae
Add support for WSL local dev (#1756)
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
2020-11-24 16:45:33 +05:30
Arpit Mohan
9d2b017bf3
Making the nginx root configuration also configurable. (#694)
This is required for enabling custom logging. In future, we can leverage this for proxy caching as well.

Not adding this nginx-root.conf.template file to the installation script because there's nothing for the user to configure there during installation. This file will be baked into the Dockerfile and only the environment variables will be replaced during container start.
2020-10-16 10:00:33 +05:30
Abhinav Jha
94b28311c6
Use injected configuration from Nginx at runtime instead of build time (#30)
* Use envsubst and nginx templates to generate nginx configs which can substitute environment variables and inject into the index.html file

* Fix path in dockerfile. Add .gitignore and .env.example files. Fix nginx-linux template.

* Add all environment variables. Add prefix to all environment variables. Update scripts to attempt to substitute all environment variables with the prefix

* Setup dockerfile to execute a bash script. use env.example for fetching environment variables in development

* Toggle features based on injected configs. Fix nginx template substitution script.

* Update env.example file

* Remove debug code from start-nginx.sh

* Fix nginx config templates by adding quotes by default. Fix sed regex to include numerals. Toggle social login buttons on Login page based on the config.

* Update rapid api environment variable name. Toggle oauth buttons based on config in SignUp page. Update .env.example to be a union of server and client environment variables

* Adding a Map disabled message on Map widget

* Adding links to Privacy policy and TNC

* Use REACT_APP_ env variables with higher priority over injected config variables for toggling features

* Update netlify.toml by commenting out the build environment variables

* Remove env variables not required by the client

* Remove start-storybook entry from package.json

* Fix netlify.toml. Fallback algolia configs

* Add contexts to netlify.toml for successful deploys. Swith to using APPSMITH_MARKETPLACE_URL as the toggle for RapidAPI feature on the client. Remove comments in nginx config templates. Fix template used in dockerfile.

Co-authored-by: Satbir Singh <apple@apples-MacBook-Pro.local>
Co-authored-by: Satbir Singh <satbir121@gmail.com>
2020-07-07 15:52:17 +05:30
Abhinav Jha
f57cf9d903 Service workers : Caching 2020-05-05 12:16:51 +00:00