Skip to content

Feature - HTTP request node #12509

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 158 commits into from
Jun 13, 2025

Conversation

abdulrahmancodes
Copy link
Contributor

@abdulrahmancodes abdulrahmancodes commented Jun 10, 2025

Closes #1072

Screen.Recording.2025-06-10.at.5.20.37.PM.mov

abdulrahmancodes and others added 30 commits June 10, 2025 04:41
…ted utility functions for header type and icon color
…kflowRunStepNodeDetail and WorkflowStepDetail for handling HTTP request actions
…ok for form management and move HTTP methods and placeholders to constants.
Fixes twentyhq#10177

Modified `usePersistField` to check for deep equality between the value
to persist and the current record store value before sending an update
query.
better logging to troubleshoot calendar events failure :

```
[Nest] 1  - � [GoogleCalendarGetEventsService] Error: internal_failure�
```
…q#12368)

# Improved participant matching with additional emails support

Closes twentyhq#8991 

This PR extends the participant matching system to support additional
emails in addition to primary emails for both calendar events and
messages. Previously, the system only matched participants based on
primary emails, missing matches with secondary email addresses.

- Contact creation now consider both primary and additional emails when
checking for existing contacts
- Calendar and message participant listeners now handle both primary and
additional email changes
- Added tests

## To test this PR:

Check that:
- Primary emails take precedence over additional emails in matching
- Case-insensitive email comparisons work correctly
- A contact is not created if a person already exists with the email as
its additional email
- Event listeners handle both creation and update scenarios
- Matching and unmatching logic works for complex email change scenarios
- When unmatching after a change in a primary or secondary email, events
and messages should be rematched if another person has this email as its
primary or secondary email.

---------

Co-authored-by: guillim <[email protected]>
Add a post hook to restore workflow sub-entities
As title
Fix consist by awaiting for getFunctionInputFromSourceCode response
If you tried to add a delay in `refreshObjectMetadataItems` like this`
await new Promise((resolve) => setTimeout(resolve, 5000))`, then this
caused an issue where the user was redirected to his workspace because
the metadata was not loaded.

This happened because I had removed the call to fetch metadata
explicitly in useAuth (instead relying on the effect to fetch it because
it was done twice). I had removed it because this was causing issues in
the onboarding process where /metadata was called too early and then
cached with the wrong reply.

The correct fix is instead to change the fetch policy to `network only`
to stop hiding re-renders to the object metadata effect with Apollo's
cache mechanism. Now the [] reply isn't cached in the onboarding, the
metadata effect is only triggered during initial page load and refresh
should be called explicitely.

I also noticed a bug on the server side where sometimes the frontend was
passing a token for public requests (login token exchange request,
public domain data request). I removed the check so that the backend
completely ignores the token when it's passed on public request. The
downside is that we're losing information for logs (who did that request
to a public endpoint), but it doesn't make much sense to throw
authentication errors on that endpoint imo. Probably a better root-cause
fix would be to understand why a token is still passed on the frontend,
but that would require more investigation — the bug happened when I was
signing up and redirected from the app.xxx domain to the workspace
domain
Fixes twentyhq#11942

This PR creates two different dropdown z indexes, one for normal
dropdowns, and one for the dropdowns inside modals.
Closes twentyhq#12427 

This PR introduces a comprehensive search filter system that enhances
the application's data filtering capabilities. At its core, the
implementation leverages a custom useSearchFilter hook that manages
search state and operations, providing a consistent search experience
across different components. The search functionality is optimized for
performance through debounced operations (500ms) and efficient state
management using Recoil. Users can trigger search through keyboard
shortcuts (Ctrl/Cmd + F) or UI interactions, with the system maintaining
search state persistence and providing clear visual feedback. The
implementation integrates seamlessly with the existing record filtering
system, view bar components, and advanced filter system, while ensuring
good performance through optimized re-renders and component state
isolation.


https://github.com/user-attachments/assets/12936189-fba8-44b3-a30c-d8cb6d6bd514

---------

Co-authored-by: Félix Malfait <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Marie <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Jordan Chalupka <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Thomas Trompette <[email protected]>
Co-authored-by: Guillim <[email protected]>
Co-authored-by: Raphaël Bosi <[email protected]>
Co-authored-by: jaspass04 <[email protected]>
Co-authored-by: martmull <[email protected]>
Co-authored-by: Thomas des Francs <[email protected]>
Co-authored-by: Etienne <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <[email protected]>
Co-authored-by: Weiko <[email protected]>
Co-authored-by: Matt Dvertola <[email protected]>
Co-authored-by: guillim <[email protected]>
Co-authored-by: Zeroday BYTE <[email protected]>
Created by Github action

---------

Co-authored-by: github-actions <[email protected]>
Cleaning up to prepare for a few tests
- Add some subfield imports : primaryLinkLabel / primaryPhoneCallingCode
/ additionalPhones
- Add validation rules for field and subfield

Comments
- Check other validations that can be done
- Refacto on subFieldKey ("...Label")
- Add global tests on validation step -
[issue](twentyhq/core-team-issues#1067)

closes twentyhq/core-team-issues#903 
closes twentyhq/core-team-issues#910
closes twentyhq/core-team-issues#985
closes twentyhq/core-team-issues#904
Created by Github action

---------

Co-authored-by: github-actions <[email protected]>
abdulrahmancodes and others added 28 commits June 12, 2025 20:14
…nd icon assignment based on action type and name
…abel to 'HTTP Method' for consistency in capitalization
…cing InputMode type with a boolean state for raw JSON. Update conditional rendering for input fields accordingly.
…put and WorkflowEditActionHttpRequest components
… in enrichment check, clarifying OutputSchema handling for both code and HTTP request types.
Copy link
Member

@FelixMalfait FelixMalfait left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work!!!

@FelixMalfait FelixMalfait merged commit 19b7ab5 into twentyhq:main Jun 13, 2025
54 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

HTTP Request Node