Skip to content

Support App Slug for PAT#15714

Merged
gsmithun4 merged 1 commit intorebase/lts-main-10-mgsfrom
fix/appslug-support
Mar 26, 2026
Merged

Support App Slug for PAT#15714
gsmithun4 merged 1 commit intorebase/lts-main-10-mgsfrom
fix/appslug-support

Conversation

@rudeUltra
Copy link
Copy Markdown
Collaborator

No description provided.

@gsmithun4 gsmithun4 changed the base branch from main to rebase/lts-main-10-mgs March 26, 2026 12:56
@gsmithun4 gsmithun4 merged commit 2678a3e into rebase/lts-main-10-mgs Mar 26, 2026
13 checks passed
@gsmithun4 gsmithun4 deleted the fix/appslug-support branch March 26, 2026 13:15
gsmithun4 added a commit that referenced this pull request Mar 26, 2026
* Fix pipeline

* Fix pipeline: matrix

* Fix label matching using toJSON() for exact match to prevent
  substring collisions (e.g. 'run-cypress' matching 'run-cypress-marketplace-ee')

* final updates

* Remove CE from pipeline

* feat: add portal dimensions handling to CodeHinter and related components

- Implemented onPortalDimensionsChange callback in CodeHinter to manage popup editor dimensions.
- Updated MultiLineCodeEditor and SingleLineCodeEditor to pass onPortalDimensionsChange prop.
- Enhanced Portal component to utilize dimensions from the editor and handle resizing events.
- Introduced helper functions for reading and setting default dimensions.

This improves the user experience by allowing dynamic resizing of the code editor popups.

* fix(mongodb): resolve double encoding in connection strings

* fix: use safeDecode function

* add log for seeding

* test

* fix: split onboarding seeding into separate steps and complete onboarding flow

Split the single seeding run block into three distinct steps (Setup Super Admin,
Authenticate, Complete Onboarding) so each has independent logs and a clear
pass/fail indicator in Actions. Also adds the missing authenticate + finish
calls so onboarding_status is set to onboarding_completed, preventing the
frontend from redirecting every UI test visit to /setup.

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

* Update Cypress Marketplace workflow. (#15467)

* test

* final updates

* Remove CE from pipeline

* Update config

* fix: pass dataCy prop to ToggleV2 in FlipComponentDropdown

toggle-flip fields rendered via FlipComponentDropdown were not
receiving a dataCy prop, so ToggleV2 rendered without a data-cy
attribute. Now passes generateCypressDataCy(label) so toggle-flip
fields get the correct data-cy selector for Cypress tests.

* fix: update marketplace dataSource form helpers

- verifyToggleFieldUI: check both -label and -toggle-label selectors
- fillDSConnectionKeyValuePairs: use addMoreButton() instead of addButton()
- add fillDynamicSelectorFxMode for DynamicSelector fx fields
- add dynamicSelectorFx case to processFields switch

* fix: fix postgres marketplace Cypress spec

- constants: SSL → SSL/TLS, Database name → Database, fix placeholders
- constants: Primary key column(s) → Primary key column-s (cyParamName compat)
- constants: bulkUpdate schema/table as dynamicSelectorFx type
- spec: fix invalid port error message to current backend message
- spec: afterEach delete app before datasource, track appCreated flag
- spec: add pre-cleanup for orphaned apps

* fix: fix mysql marketplace Cypress spec

- constants: connection_type defaultValue Hostname → Manual connection
- constants: Database name → Database, fix host/port placeholders to manifest descriptions
- constants: SSL → SSL/TLS, isRequired false for username/database
- constants: remove SSL certificate from defaultFields (conditional field)
- spec: connection_type manual + protocol hostname in API payload
- spec: trim error messages to remove hardcoded server IPs

* fix: fix redis marketplace Cypress spec

* fix: fix mssql marketplace Cypress spec

- constants: add missing Connection type dropdown and Allow dynamic connection parameters toggle
- constants: fix host/port placeholders to manifest descriptions (localhost, 1433)
- constants: Database name → Database, isRequired false for database/username/password
- constants: Azure (encrypt connection) → Azure encrypt connection (manifest label)
- constants: add SSL/TLS toggle, remove SSH tunnel (conditional field)
- spec: add connection_type manual + SSL state keys in API payload
- spec: trim error messages to remove hardcoded IPs and timing values

* fix: fix mongodb marketplace Cypress spec

- constants: Database name → Database, fix placeholders to manifest descriptions
- constants: host/port isRequired true in manual branch (manifest required: true)
- constants: remove conditional TLS/SSL certificate dropdown from defaultFields
- constants: add missing Connection options keyValue, SSL/TLS toggle, SSH tunnel toggle
- constants: add missing Connection string encrypted field in connection string branch
- constants: remove hasEyeIcon from password-v3/password-v3-textarea fields (no eye icon)
- spec: add use_ssl and ssh_enabled state keys in API payload

* fix: fix elasticsearch marketplace Cypress spec

- constants: remove stale moment/moment import
- constants: remove hasEyeIcon from password field (password-v3 has no eye icon)
- spec: fix certificate fields encrypted flag to true in API payload
- spec: trim SSL EPROTO error message to stable partial "wrong version number"

* fix: update marketplace config specPattern to explicit datasources path

Replace **/*.cy.js glob with datasources/*.cy.js to scope the
marketplace test run to the datasources directory only.

* feat: migrate restAPI spec to datasources directory with new format

- move selectors/texts/utils to marketplace subdirectories
- update imports to use new marketplace paths
- replace cy.visit('/') with cy.viewport(1400,1600) in beforeEach
- fix cy.apiDeleteApp() to use UUID (no-arg form)
- fix datasource count assertions (44->45, APIs 22->23)
- replace fragile CSS-in-JS class selectors with stable data-cy selectors
- fix dropdown assertions: have.text -> contain.text for react-select
- fix SSL certificate label casing
- add scrollIntoView().first() for datasource button after reload

* fix: correct import casing for dataSourceForm helpers in datasource specs

Import paths used lowercase 'datasourceform' but actual filenames use
camelCase 'dataSourceForm', causing Webpack module-not-found errors on
Linux CI (case-sensitive filesystem).


* test

* update: cypress config

---------

* fix: pass tj-workspace-id header and extract org ID for onboarding finish step

JwtStrategy requires the tj-workspace-id header to resolve the authenticated
user; without it the guard returns false and the finish endpoint 401s.

Extract current_organization_id from the authenticate response using jq,
export it to GITHUB_ENV as TJ_ORG_ID, then pass it as the tj-workspace-id
header in the Complete Onboarding step.

Validated locally: all three seeding steps exit 0 and onboarding_status
is set to onboarding_completed in the DB.

* fix(appCanvasUtils): update modal header padding logic to correctly handle close button visibility

* fix: initialize prevComponentsOrder to an empty array to ensure sorting on first render in Viewer

* fix: update comment in useSortedComponents to clarify initialization of prevComponentsOrder

* refactor: remove unnecessary resize property from table component styles

* 🚀 chore: update submodules to latest lts-3.16 after auto-merge (#15694)

Co-authored-by: johnsoncherian <57667706+johnsoncherian@users.noreply.github.com>

* Chore: db:seed script for first user setup (#15684)

* Chore: db:seed script for first user setup

Replaces the stale commented-out seed script with a working HTTP-based
implementation that calls POST /api/onboarding/setup-super-admin — the
exact same endpoint QA uses via curl. This ensures the seed creates all
required database records (org, user, roles, environments, groups,
themes, default data sources, instance settings) without duplicating
any business logic.

Supports env var overrides (SEED_EMAIL, SEED_PASSWORD, SEED_NAME,
SEED_WORKSPACE) for CI/preview deployments. Idempotent — skips if
users already exist.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Chore: use got instead of raw http, improve re-seed message

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Chore: trim verbose logs from seed script

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Chore: remove redundant comment

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

* fix: Allow sharing cookie for prompt & template id while onbaording to sub domain (#15695)

* 🚀 chore: update submodules to latest lts-3.16 after auto-merge (#15698)

Co-authored-by: gsmithun4 <3417097+gsmithun4@users.noreply.github.com>

* Fix : REST API datasource allows for parsing new file picker component files (#15612)

* File base64 data is added to the post request

* Object and Array is converted to string before appending to form data

* bump version to 3.20.130-lts across all components

---------

Co-authored-by: gsmithun4 <gsmithun4@gmail.com>

* refactor: datasource case inconsistencies (#15618)

* Feature: Implement OIDC refresh token flow (#15389)

* feat(oidc): implement OIDC refresh token flow

- Update server/ee submodule with OIDC refresh token support
- Set isSSOLogin for workspace OIDC + decrypt client secret in refresh

* fix: register OidcRefreshService in SessionModule

The EE JwtStrategy depends on OidcRefreshService but SessionModule
never loaded or provided it. Add CE stub, load via getProviders,
and add OidcRefreshService + SSOConfigsRepository to providers.

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

* feat(oidc): add frontend sync for ssoUserInfo refresh

- Frontend now detects X-SSO-Info-Updated header when backend refreshes tokens
- Async session refresh updates globals.currentUser.ssoUserInfo without page reload
- Deduplicates concurrent refresh requests to prevent N+1 session fetches
- Add SsoInfoUpdatedInterceptor to set header when tokens refresh
- Update OidcRefreshService with docs explaining binding recommendations
- Return boolean from checkAndRefreshIfNeeded to signal when refresh occurs

Changes:
- Backend: Set X-SSO-Info-Updated header after successful token refresh
- Frontend: Detect header in http-client.js and handle-response.js
- Interception: Global interceptor manages header setting
- Documentation: JSDoc explains two binding patterns
  * {{globals.currentUser.ssoUserInfo}} - stale but auto-syncs now
  * {{globals.server.currentUser.ssoUserInfo}} - always fresh (recommended)

Closes: ToolJet/tj-ee#4245

* refactor(oidc): use Symbol for ssoInfoUpdated + export from CE interceptor

- SsoInfoUpdatedInterceptor now exports SSO_INFO_UPDATED Symbol as the
  canonical flag. EE JwtStrategy imports and sets it on req instead of
  using Express module augmentation.
- CE OidcRefreshService stub return type updated: void → boolean.

* fix: remove stale submodule from index

* chore: ignore .serena/ directory

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

* wip: OIDC refresh token - token refresh interceptor and session handling

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

* fix: correct sso_user_info property path in refreshSsoInfo

The /api/session endpoint returns sso_user_info at the top level of the
response, not nested under current_user. This caused refreshSsoInfo() to
always read undefined, so the Zustand store was never updated after OIDC
token refresh — leaving component bindings stale until a full page reload.

Also deduplicate refreshSsoInfo() from handle-response.js and http-client.js
into a shared module to prevent future drift.

* fix: address PR review feedback for OIDC refresh token flow

- Remove debug console.log statements from handle-response.js
- Add console.debug to empty catch in refreshSsoInfo.js for diagnostics
- Broaden JSDoc to reflect non-editor usage contexts
- Add cross-reference comments between duplicate SSO header checks
- Update CE stub with pointer to EE implementation
- Update server/ee submodule pointer

* chore: update submodule commits for frontend and server

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Souvik <psouvik260@gmail.com>
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>

* 🚀 chore: update submodules to latest lts-3.16 after auto-merge (#15699)

Co-authored-by: gsmithun4 <3417097+gsmithun4@users.noreply.github.com>

* fix(QueryManagerBody): prevent stale writes when switching queries by validating current query ID

* Enabled dynamic height in mobile view

* Modal height fix

* Marketplace pipeline test PR [Do not merge] (#15680)

* test

* fix: update MSSQL DNS error assertion and REST API datasource count for CI

* update Ds count

* test: update verifyDSConnection to use toast assertions (PR #15616)

TestConnection.jsx no longer renders inline status badges — success/failure
feedback is now via react-hot-toast. Update helper to:
- Success: assert toast 'Test connection verified' instead of test-connection-verified-text badge
- Failed: assert toast 'Test connection could not be verified' + keep connection-alert-text assertion for specific error messages
- Remove test-connection-failed-text assertion (element removed from UI)

* update timeout on toast

* test: fix lastName sanitization regex in mssql spec and fake.js

* refactor: rewrite seed script to use TypeORM directly

The old seed script was fully commented out and its backing service
(seed.service.ts_ig) had broken imports and missing onboarding status,
causing the frontend to redirect to /setup on every page load.

The new script connects directly via TypeORM DataSource and creates:
org, SSO config, super admin user, org-user mapping, default
environments, permission groups, and marks both user.onboardingStatus
and metadata.onboarded so the frontend skips /setup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor: rewrite seed script to use TypeORM directly

The old seed script was fully commented out and its backing service
(seed.service.ts_ig) had broken imports and missing onboarding status,
causing the frontend to redirect to /setup on every page load.

The new script connects directly via TypeORM DataSource and creates:
org, SSO config, super admin user, org-user mapping, default
environments, permission groups, and marks both user.onboardingStatus
and metadata.onboarded so the frontend skips /setup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: bump version to 3.20.131-lts across all components

* fix: form fields prioritize (#15657)

* fix: Handle template app creation from website (#15717)

* Support App Slug for PAT (#15714)

---------

Co-authored-by: emidhun <midhun752@gmail.com>
Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
Co-authored-by: sahil7303 <sahildewangan73@gmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Johnson Cherian <johnsonc.dev@gmail.com>
Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com>
Co-authored-by: johnsoncherian <57667706+johnsoncherian@users.noreply.github.com>
Co-authored-by: Akshay <akshaysasidrn@gmail.com>
Co-authored-by: Nishidh Jain <61869195+NishidhJain@users.noreply.github.com>
Co-authored-by: gsmithun4 <3417097+gsmithun4@users.noreply.github.com>
Co-authored-by: Ganesh Kumar <40178541+ganesh8056@users.noreply.github.com>
Co-authored-by: Sahil Dewangan <123866478+sahil7303@users.noreply.github.com>
Co-authored-by: Souvik <psouvik260@gmail.com>
Co-authored-by: Shaurya Sharma <shaurya064@gmail.com>
Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
Co-authored-by: Rudhra Deep Biswas <98055396+rudeUltra@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants