Commit graph

32 commits

Author SHA1 Message Date
Adish M
6ddbb7fedc
feat: implement SSRF protection with URL validation across plugins (#14257)
* feat: implement SSRF protection with URL validation across plugins

* refactor SSRF protection to focus on cloud metadata endpoints and improve configuration options

* remove legacy whitelist functionality and streamline SSRF validation process

* enhance SSRF protection by adding configurable blocked schemes and validation checks

* enhance SSRF protection by integrating configurable options across services

* replace dns.lookup with dns.lookup from dns module for improved clarity

* refactor: enhance SSRF protection by merging request options and improving IP format normalization

* Fix: update comments for clarity and enhance IP normalization in SSRF protection

* enhance SSRF protection by validating URL and applying protection options in GraphqlQueryService

* enhance SSRF protection with detailed validation for redirects and URL schemes
2026-02-23 17:25:13 +05:30
Akshay
8c9d79c012
Fix: Use loadSync for gRPC filesystem proto loading and add lightweight service discovery (#15225)
* fix(grpcv2): use loadSync for filesystem proto loading to prevent server crash

protobufjs has an unfixed bug (protobufjs/protobuf.js#1098) where
async Root.load() calls resolveAll() outside its try-catch in the
finish() callback. When resolveAll() throws (e.g. unresolvable types),
the error becomes an uncaught exception that crashes the Node.js
process — the Promise never resolves/rejects.

Switch from protoLoader.load() to protoLoader.loadSync() for all
filesystem-based proto loading. With loadSync, resolveAll() errors
propagate as normal synchronous throws caught by existing try-catch
blocks. This is consistent with loadProtoFromRemoteUrl() which
already uses loadSync.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(grpcv2): add filesystem proto discovery with lightweight scanning

Add discoverServiceNames and discoverMethodsForServices to support
two-phase service discovery from filesystem proto files. Uses
protobufjs.parse() for lightweight name scanning (~30KB/file) and
only loads full gRPC definitions for selected services, preventing
OOM on large proto directories.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(DynamicSelector): add multi-select and autoFetch for grpcv2 filesystem services

Add isMulti and autoFetch props to DynamicSelector. autoFetch triggers
service discovery on mount without requiring a manual button click,
and skips cache persistence to avoid false "Unsaved Changes" prompts.
Multi-select renders services as chips with custom styles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(data-sources): handle non-array elements in resolveKeyValuePair

resolveKeyValuePair assumed all array option elements are sub-arrays
(like metadata key-value pairs). Options like selected_services contain
plain strings, causing arr.map crash during test connection. Guard with
Array.isArray check and fall back to resolveValue for scalar elements.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(grpcv2): require service selection for filesystem mode in query manager

Filesystem mode without selected services would fall back to full
proto discovery (loading every file), defeating the purpose of the
two-phase discovery. Now shows an error asking the user to select
services in the datasource config instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(grpcv2): require selected services for filesystem test connection

Test connection in filesystem mode now validates that at least one
service is selected and uses a selected service for the connectivity
check instead of picking an arbitrary one from the proto directory.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(grpcv2): simplify filesystem test connection to validate proto parsing

Test connection for filesystem mode now just validates that proto files
can be parsed and services discovered — no service selection required.
Removes the meaningless waitForReady check which only tested TCP
connectivity without validating anything about the proto definitions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(grpcv2): remove filesystem branch from discoverServices

Filesystem mode never flows through discoverServices — it uses the
two-phase discoverServiceNames + discoverMethodsForServices path.
Remove the dead branch and add a comment documenting the filesystem
flow for clarity.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(grpcv2): add comment documenting test connection behavior per mode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(grpcv2): add TCP connectivity check for filesystem mode test connection

Filesystem mode now falls through to checkFirstServiceConnection (waitForReady)
like reflection and URL modes, instead of returning early after proto parsing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* cleanup(DynamicForm): remove unused snake_case prop aliases for isMulti and autoFetch

No plugin manifest uses is_multi or auto_fetch — the gRPC v2 manifest
(the only consumer of these props) uses camelCase exclusively, and there
is no transformation layer in the pipeline.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(DynamicSelector): suppress noAccessError flash during loading

The no-access warning and red border briefly flashed on page reload
because validateSelectedValue ran with an empty array before the
fetch completed. Gate both on !isLoading so they only appear after
data is actually loaded.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(DynamicSelector): skip cache validation for autoFetch on unrelated prop changes

When autoFetch is enabled, cache is never persisted to options (to avoid
"Unsaved Changes"). So every time selectedDataSource changes for
unrelated reasons (e.g. title edit), the cache-checking useEffect finds
no cache and calls validateSelectedValue([]), falsely triggering the
no-access warning. Skip this effect for autoFetch since it has its own
dedicated fetch/validation lifecycle.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(grpcv2): remove QueryResult wrapping from plugin invokeMethod returns

grpcv2 plugin methods (discoverServiceNames, discoverMethodsForServices)
were returning QueryResult-wrapped responses which got double-wrapped by
DataSourcesService.invokeMethod, causing GRPCv2Component to crash with
"servicesData.services.map is not a function" when opening filesystem
proto queries.

Plugin invokeMethod now returns raw data (arrays) instead of QueryResult
objects. The server's invokeMethod always wraps with { status: 'ok', data }
consistently. DynamicSelector adds an Array.isArray guard for plugins
that return raw arrays vs { data: [...] }.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(DynamicSelector): skip access validation for autoFetch fields

autoFetch fields (e.g. gRPC services) are discovered from proto files,
not OAuth-scoped resources — "no access" warnings don't apply.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(grpcv2): unify service discovery into single getServiceDefinitions entry point

Consolidate discoverServices, discoverServiceNames, and discoverMethodsForServices
into two clear methods: listServices (lightweight name scan for DS config) and
getServiceDefinitions (full method discovery for query editor, all modes).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(grpcv2): prevent OOM on filesystem test connection and query fallback

Filesystem test connection no longer parses proto files — just counts
them with fast-glob and checks TCP connectivity via a raw gRPC client.
Query execution fallback after server restart now uses the lightweight
protobufjs.parse() scanner instead of the heavy protoLoader.loadSync()
path. Removes two dead functions (discoverServicesIndividually,
discoverServicesUsingFilesystem).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: update version to 3.20.95-lts across all components

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
2026-02-17 17:52:48 +05:30
Priyansh Rai
59c941bc82
Feat: GoogleSheets 2.0 Marketplace Plugin (#14813)
* Feat: Dynamic Selector (#14685)

* feat: introduce the dynamic-selector abstracted component with support for caching dependent dropdowns

* feat: introduce fx toggle option to enable fx editor in the dynamic-selector component

* feat: set `fxEnabled` prop default to `false` in DynamicSelector.

* fix(DynamicForm): fix fxEnabled prop handling to support snake_case

* refactor: rename variables and clean code

* refactor: rename cache key from `__default` to `nonDependentCache` in DynamicSelector.

* feat: Simplify dynamic selector data handling by removing transformation logic.

* refactor: simplify DynamicSelector error log by removing data source ID.

* fix: Throw an error when multi-user authentication is enabled but no user ID is found.

* refactor: rename iteration variables for improved readability

* perf: memoize composite dependency key calculation using `useMemo` hook.

* refactor: simplify `isFxMode` state initialization by removing dynamic value checks and `useEffect`

* refactor: remove unused `responsePath` prop from `DynamicForm` component

* refactor(DynamicForm): remove unused `rest` prop from `getElementProps`.

* fix(DynamicForm): fix support for snake and camel case props

* feat: Add support for passing arguments when invoking data source methods.

* Feat/googlesheets-v2 plugin (#2)

* GoogleSheets v2

* Changes in Operations

* feat: introduce the dynamic-selector abstracted component with support for caching dependent dropdowns

* feat: introduce fx toggle option to enable fx editor in the dynamic-selector component

* feat: set `fxEnabled` prop default to `false` in DynamicSelector.

* Error Standarization

* fix(DynamicForm): fix fxEnabled prop handling to support snake_case

* refactor: rename variables and clean code

* refactor: rename cache key from `__default` to `nonDependentCache` in DynamicSelector.

* feat: Simplify dynamic selector data handling by removing transformation logic.

* refactor: simplify DynamicSelector error log by removing data source ID.

* fix: Throw an error when multi-user authentication is enabled but no user ID is found.

* refactor: rename iteration variables for improved readability

* perf: memoize composite dependency key calculation using `useMemo` hook.

* refactor: simplify `isFxMode` state initialization by removing dynamic value checks and `useEffect`

* refactor: remove unused `responsePath` prop from `DynamicForm` component

* refactor(DynamicForm): remove unused `rest` prop from `getElementProps`.

* fix(DynamicForm): fix support for snake and camel case props

* feat: Add support for passing arguments when invoking data source methods.

* feat: Integrate the dynamic-selector component to the googlesheetsv2 datasource

---------

Co-authored-by: Pratush Sinha <pratushsinha619@gmail.com>
Co-authored-by: Pratush <pratush@Pratushs-MacBook-Pro.local>

* fix: correct FxButton import path

* Bug fixes

* ui-fixes

* authenticate button

* authenticate button design

* bug fixes

* Pass ENV ID to DyanamicForm

* refresh token fixed

* added helper

* query error from invoke method

* Fix/Googlesheets v2 bug fixes (#15043)

* fix: reduce font size of googlesheets authorize description

* fix: update labels

* fix: replace legacy googlesheets with v2 in commonly used

* fix: address review comments

* save button (#15035)

* save button

* sheet required

* conditional connect

* authUrl Fixes

* authUrl Query Fix

* dependency fixed (#15083)

* chore: bump version to 3.20.80-lts across all modules

---------

Co-authored-by: Pratush Sinha <pratushsinha619@gmail.com>
Co-authored-by: Pratush <pratush@Pratushs-MacBook-Pro.local>
Co-authored-by: Ganesh Kumar <ganesh8056234@gmail.com>
Co-authored-by: Rudhra Deep Biswas <rudra21ultra@gmail.com>
Co-authored-by: abhijeet760 <abhijeet@tooljet.com>
Co-authored-by: Rudhra Deep Biswas <98055396+rudeUltra@users.noreply.github.com>
Co-authored-by: Sahil Dewangan <123866478+sahil7303@users.noreply.github.com>
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
2026-01-29 22:00:29 +05:30
Ganesh Kumar
3a4d7da1c1
Feat: Query level timeout for Postgresql datasource (#14612)
* POstgresql query level timeout implementation

* for query without parameters query level timeout has been updated

* Query level timeout at Run Query endpoint

* label for timeout is updated

* Timeout is applied at run query level

* Method name has been modified

* ref updated

* Error message modified

* Abort controller is abstracted

---------

Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
2025-11-27 19:47:59 +05:30
parthy007
d1f62405a4 fix: configure body correctly for token call
fix: add hubspot in querymanager auth flow
2025-10-23 15:44:51 +05:30
Parth
03505b0174
fix: token headers & client-auth dropdown (#14082) 2025-10-22 15:19:20 +05:30
gsmithun4
f40be5b1b5 feat(logging): integrate transaction logging across various guards and services
- Updated `AbilityGuard` to utilize `TransactionLogger` for logging execution time and errors.
- Enhanced `ResponseInterceptor` to include transaction metadata in logs.
- Modified `QueryAuthGuard`, `ValidateQueryAppGuard`, and `ValidateQuerySourceGuard` to log completion times and transaction IDs.
- Introduced `TransactionLogger` service for structured logging with transaction context.
- Added transaction ID and route information to request context in `RequestContextMiddleware`.
- Updated `JwtStrategy` to log validation completion times.
- Refactored logging configuration in `AppModuleLoader` to support pretty printing in non-production environments.
- Removed console logs in favor of structured logging for better traceability.
2025-09-19 02:08:49 +05:30
Priyansh Rai
94e4a13043
Feat: Add Gmail plugin (#13843)
* ee commit

* merge commit

* feat: updated openapi operation component

* updated query operation sepctype

* fix: updated query dropdown style

* feat: config dropdown update

* feat: add Gmail plugin with API integration and initial setup

* refactor: enhance type definitions

* refactor: clean up code and refactor variable names

* fix: update Gmail OAuth scope to allow full access to Gmail

* feat: standardize error handling for Gmail plugin

* fix: include oauth_type handling in Gmail plugin for cloud environment

* fix: update spec_url for Gmail operations

* refactor: remove unused fields in gmail manifest.json

* fix: update Content-Type header to application/x-www-form-urlencoded for token requests

* feat: add environment variable prefix for Gmail in OAuth handling

* fix: remove encryption requirement for client_id in Gmail manifest

* fix: update Gmail plugin to use form data for token requests and simplify response handling

* fix: add Gmail to OAuth data sources in DataSourceManager

* fix: encode path parameters in Gmail plugin URL construction

* fix: add back margin to Client ID label in CommonOAuthFields component

* fix: adjust width of input field in RenderParameterFields for better alignment

* fix: set response type to 'json' in requestOptions for Gmail service

---------

Co-authored-by: Devanshu Gupta <devanshuguptaknp@gmail.com>
2025-09-08 12:20:32 +05:30
Devanshu Gupta
6f572315c1
feat: added hubspot (#13854)
* feat: added hubspot

* fix: updated name

* feat: updated spec url

* fix: added options in manifest

* fix: resolved comments

* fix: added kind

* fix: updated query options check

* fix: kind index
2025-08-21 18:54:05 +05:30
Akshay
ca71355d8e
Feature[LTS]: GRPC Plugin revamp (#13894)
* feat: Add new gRPC v2 plugin

- Enhanced DataSourcesController to support invoking methods on data sources.
- Introduced InvokeDataSourceMethodDto for method invocation requests.
- Added WhitelistPluginGuard to restrict method invocation based on data source kind.
- Updated IDataSourcesController and IDataSourcesService interfaces to include invoke method functionality.
- Implemented invokeMethod in DataSourcesService to handle method calls for gRPC v2.
- Added method whitelisting for gRPC v2 in the service layer.

* refactor: invokeMethod to use method dispatch pattern

* fix: improve error handling in testConnection method

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* refactor: update types and interface

* fix: remove unnecessary border styles for improved UI consistency

* refactor: simplify error handling

- Introduced a new SCSS file for styling the gRPC v2 query editor components.
- Styled request sections, server URL input, dropdown menus, and method buttons for better user experience.

refactor(grpcv2): enhance error handling and type safety

- Updated error handling in gRPC query service to use a new `toError` utility function for consistent error conversion.
- Improved type definitions for gRPC client and service methods to ensure better type safety.
- Refactored method existence validation and gRPC call execution to handle errors more gracefully.

fix(grpcv2): improve service discovery and proto file loading

- Enhanced service discovery logic to handle reflection and proto file clients more robustly.
- Added checks for valid service constructors and improved error messages for better debugging.
- Updated the `loadProtoFromRemoteUrl` function to handle HTTP errors more effectively.

chore(grpcv2): add utility functions for type checks

- Introduced utility functions `isRecord`, `hasProperty`, and `toError` for better type checking and error handling throughout the codebase.

* feat: add LegacyBanner component for gRPC legacy tag display

* fix: styling changes

* fix: correct text in LegacyBanner component

* feat: enhance GRPCv2 component with request handling and state management improvements

* refactor: update metadata handling in GRPCv2 component and service

* refactor: update GRPCv2 component to use raw_message instead of requestData

* fix: Styling issues and labels

* refactor: gRPC test connection checks for proto file and url

* fix: improve error handling in service discovery

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-21 16:39:31 +05:30
Devanshu Gupta
cb0a87e1a1
Feat/ms graph pre release (#13581)
* ee commit

* merge commit

* feat: updated openapi operation component

* updated query operation sepctype

* fix: updated query dropdown style

* init plugin

* init plugin

* feat: config dropdown update

* feat: added ms plugin

* fix: plugin connection name

* submodule reference updated

* plugin label updated

* added back margin top class

---------

Co-authored-by: Ganesh Kumar <ganesh8056234@gmail.com>
2025-08-11 18:59:49 +05:30
Ganesh Kumar
f46340b477
Enhance: Extract OAuth 2.0 flow for Salesforce & Snowflake (#13529)
* salesforce & snowflake changes added to prerelease

* module import error fixes

* optional parameter for getAuthUrl method
2025-07-23 22:18:50 +05:30
parthy007
2dd4a4cfbe Add hashing function centrally
Update the caching function name
2025-05-27 16:42:17 +05:30
parthy007
fc03fefee6 Add new in-mem cache based on datasource config 2025-05-25 03:28:06 +05:30
Parth
4563a42032
Handle invalid headers (#12654) 2025-04-28 13:54:57 +05:30
Kushagra Srivastava
43ac4f251f
add metadata to QueryError and populating metadata in inspector on error (#12501)
* add metadata to QueryError

Signed-off-by: thesynthax <kushagra1403@gmail.com>

* add TODO, minor changes

Signed-off-by: thesynthax <kushagra1403@gmail.com>

* minor changes

Signed-off-by: thesynthax <kushagra1403@gmail.com>

* metadata gets populated on query error/failure

Signed-off-by: thesynthax <kushagra1403@gmail.com>

* add headers to metadata.response

Signed-off-by: thesynthax <kushagra1403@gmail.com>

* redact headers

Signed-off-by: thesynthax <kushagra1403@gmail.com>

---------

Signed-off-by: thesynthax <kushagra1403@gmail.com>
2025-04-28 10:08:34 +05:30
Ganesh Kumar
de9d9b5924
graphql plugin url appended with empty urlparams (#12353) 2025-04-28 09:53:05 +05:30
Parth
6dbdfe2f79 Fix: Api call for token generation in client-credentials grant type (#2785) 2024-11-29 00:58:35 +05:30
Devanshu Rastogi
e4196adae1 Enhance: Rest api body to accept raw input instead of raw json. (#2249)
* Enhanced rest api body to accept raw input instead of raw json.

* Changed content type from application/json to text/json and changed copywrite to RAW.

* Changed rest api body toggle label from 'RAW' to 'Raw'.

* Added request label for static REST API data source.

* Fixed issue where GET query failed since body was undefined.

* Integrated json_body to add backward compatibility.

* Removed console logs.

* Added support for 'text/json' type in checkIfContentTypeIsJson function.

* Made changes according to new frontend architecture in v3.

* Fixed request URL field overflow issue.

---------

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2024-11-22 12:49:08 +05:30
Akshay
5652f10806 fix numerical/boolean value not sent on restapi (#662) 2024-11-11 22:55:53 +05:30
Akshay Sasidharan
03329abfa6 sync marketplace and tooljet database changes 2024-10-28 23:37:40 +05:30
Parth
056d23dd94
Feature: Add cookies support in the REST API datasource & query builder for static and global datasource (#10166)
* Add cookies parameter to querybuilder frontend

* Add cookies parameter to datasource page

* Add cookies to the request headers in backend

* Change return type of sanitizeCookies function

* Change empty state styling in query-builder

* Add style changes for button

* fix : rounded corners in border for key field in rest api datasource

---------

Co-authored-by: Abd-Rahman-1999 <s.rahmanabd1999@gmail.com>
2024-07-01 15:32:24 +05:30
Arpit
b91029a008
[hotfix] CE fixes (#8395)
* events should be synced for multi-edit

* remove console

* removes db constrainsts for layouts and handles corrupeted apps created from prev migrations

* Revert "removes db constrainsts for layouts and handles corrupeted apps created from prev migrations"

This reverts commit 10a307118b.

* removing constrainsts fro CE

* bumped the patched version ~ 2.26.3

* fixes: import/export general styles for components

* fixes: viewer crash on adding plugin as gds due to accessing camalised data

* fixes: plugin queries gds

* preserve duplicate search params on restapi

* preserve duplicate params in query manager params fields

* fixes: edge cases where undo of some components crashes thew widget

---------

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2023-12-28 15:16:50 +05:30
Akshay Sasidharan
17ff9f540c explictly check for multipart headers for restapi 2023-11-17 12:36:10 +05:30
Akshay
a9f641d0cc
fix plugins redirection on subpath (#8037) 2023-11-01 15:09:41 +05:30
Muhsin Shah C P
80ee7b7cac
[Improvement] Auth flow improvements for RestAPI, OpenAPI & GraphQL (#5324)
* Added access token url headers option to open api

* removing and adding code

* add authentication in GraphQL as RestAPI (#6687)

* add authentication in GraphQL as RestAPI

* fix: remove double header check

---------

Co-authored-by: Jean-Baptiste PIN <jeanbaptiste@idruide.com>

* refactor auth flows for restapi, openapi & graphql

* fix type errors

* remove redundant declarations

* fix openapi build error

* update authUrl for OAuth

* fix oauth check

---------

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
Co-authored-by: Jean-Baptiste PIN <jibet.pin@gmail.com>
Co-authored-by: Jean-Baptiste PIN <jeanbaptiste@idruide.com>
2023-07-21 15:38:56 +05:30
Muhsin Shah C P
638fcf7223
[Feature] Now multiple users can login through RestAPI-Oauth 🚀 (#4052)
* Implemented multiple access token feature
- working on refresh token case

* worked on refresh token flow

* added multiple token ability to openapi plugin too
- fixed some bugs

* changed tokenData to token_data
- fixed some issues

* added user type with user id

* changed user type

* Rewrote some function
- added switch for enabling and disable multi auth
- fixed some bugs
- refactored the code

* fixed view app issue

* Fixed public app issue

* cleaning some code

* (public_app) add a check to avoid oauth login redirect when there is no access token

* reverted all changes of openapi (temporary)
- will add multi token functionality once done with restapi

* fixed a bug

* fixed a bug

* refactored some code

* changed the switch text

* pr changes

* changed token_data back to tokenData

* cleaning code

* removed token data from datasources query

* removed some lines

* added a comment
2022-09-19 20:27:37 +05:30
Midhun G S
3fac991da8
clead data call made recursive (#3133) 2022-05-26 19:38:03 +05:30
Midhun G S
b05ea813c2
[BUG] Hide authorization header for Rest API (#3129)
* Hide authorization header for Rest API

* Fixed mutatting response
2022-05-26 18:29:05 +05:30
Maurits Lourens
60f515d19c
Feature/2395 - add eslint to plugins (#2402)
* merge develop

* Add eslint dependencies, configs and scripts to plugins project

* run lint with Github action

* ignore tests and dist folders

* fun eslint with --fix and manual fixes, renamed __tests_ to __tests__

* add plugins packages folder to lint-staged config

* fix lint issue
2022-03-10 12:29:48 +05:30
Akshay
59cf3b1931
Fix: Googlesheets OAuth refresh token flow (#2118)
* implement google sheet oauh token refresh flow

* format lint

* make use of constructor name as instanceof fails

* remove unused import

* force consent to get refresh token on googlesheets ds
2022-02-05 07:09:40 +05:30
Gandharv
2f3b441c0a
Move plugins to root (#1728)
* feat: move plugins to root

* modify tsconfig

* add .gitignore

* delete old plugins file

* add parcel

* docker compose volume mount

* add gcs

* add typescript to plugins folder

* gcs to ts

* add dynamodb

* add elastic search

* add firestore

* add gsheets

* add graphql

* add mongodb

* mssql

* add mysql

* add postgresql

* add redis

* add s3

* add slack

* add stripe

* remove plugin related packages from pkgjson

* add lib folder

* add gitignore

* remove typescript generated files

* remove generated file

* remove generated files

* add twilio

* add dist to docker compose cache binding

* add dist prefix

* cleanup - 1

* delete dist

* rename to index.ts + add jest config

* add it.todo in tests

* test fixes

* test file changes

* fix type checks

* add @tooljet/plugins to server package json

* esm vs commonjs bug, reduce got to 11.8.2 from 12.0.0

* docker file npm package version fix

* add typesense

* cleaup - 2

* add sendgrid

* add lerna build and clean script for all packages + tsconfig

* cleanup -3

* add plugins build step

* add missing plugins build step in npm run build

* add mssql, mysql & postgres as singleton classes

* add db connection to cache only if datasourceId is available

* client: add data source schema/manifest files

* add query operations files

* logic for wrapping form with schema

* add script to create index file

* add @tooljet/plugins to frontend folder

* cleanup 1 -frontend

* cleanup - 2 // frontend // data queries

* add client and index to gitignore

* update gitignore

* fix lint & test

* update ci

* fix unit, e2e

* cleanup -3

* fix test

* fix tests

* fix indent

* try npm ci

* fix tests

* fix typo

* fix

* rename file for server entry

* heroku fix

* add main and types entry points in pkg json

* move common to root

* cleanup - 4: remove redundant $ sign prefix

* cleanup - 4: remove redundant $ sign prefix

* update options in-sync before DOM is painted

* change type cloud to cloud storage

* update readme

* update ci.yml

* update ci yml

* add pkg-lock.json

* rename index.ts to server.ts

* update lock files

* add server package.lock

* remove unused import

* revert commit: add minio

* add root dep

* import server.ts

* remove plugins build step

* add npm shrinkwrap

* update version - plugins

* add new version - 0.0.8

* upgrade version

* move to symlinked package

* add lock file

* feat: add icon inside package

* add plugin creation docs

* Remove seed

* move icons to plugins folder

* install pg dep

* add react to packages

* add seed cmd

* revert change

* add plugins build in lint, e2e, unit

* e2e, lint use npm ci

* update dockerfile for plugins

* try combining release with web

* limit memory on release

* try executing seed script post transpile

* try executing seed from server directory

* update seed execution

* add minio

* add correct type

* add minio to pkg json

* remove old file

* fix provider key

* add python installable + npm ^7.2.0 (#1752)

* add python installable + npm ^7.2.0

* add py to prod file

* pin npm version to 7.20.0

* pin npm version to 7.20.0

* split into multi stage build and remove python for buildx

* copy plugins from buider stage

* update dependencies

* add freetds dependency

* update server dockerfile

* update client dockerfile

* update dev dockerfile and compose file

* fix entrypoint

* fix server dev dockerfile

* update docker-compose

* remove npm install on root dir on docker build

* fix heroku script

* make lerna prod dependency to enable prod builds

* remove redundant env setup

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
Co-authored-by: navaneeth <navaneethpk@outlook.com>
2022-01-17 12:38:17 +05:30