martmull and GitHub
22a203680e
Fix wrong type usage ( #18499 )
...
fix wrong type usage + add tests
2026-03-09 14:51:46 +00:00
Paul Rastoin and GitHub
57d8954973
[SDK] Pure ESM (#18427 )
...
# Introduction
While testing the sdk and overall apps in
https://github.com/prastoin/twenty-app-hello-world
Faced a lot of pure `CJS` external dependencies import issue
Replaced all the cjs deps to either esm equivalent or node native
replacement
2026-03-05 17:19:01 +01:00
d021f7e369
Fix self host application ( #18292 )
...
- Fixes self host application
- add new telemetry information
- add serverId to identify a server instance
- remove .twenty from git tracking
- tree-shake "twenty-sdk" usage in built logic functions and front
components
- fix "twenty-sdk" version usage
- fix twenty-zapier cli
---------
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-03-02 12:06:05 +01:00
martmull and GitHub
120096346a
Add define post isntall logic function ( #18248 )
...
As title
2026-02-26 11:09:21 +01:00
martmull and GitHub
e365b546d9
Deploy new cli version ( #18216 )
...
as title
2026-02-25 10:58:21 +01:00
martmull and GitHub
e3753bf822
App feedbacks ( #18028 )
...
as title
2026-02-18 11:04:54 +00:00
martmull and GitHub
c3d8404112
Update cli tool versions ( #17933 )
...
as title
2026-02-13 18:03:13 +01:00
martmull and GitHub
0befb021d0
Add scripts to publish cli tools ( #17914 )
...
- moves workspace:* dependencies to dev-dependencies to avoid spreading
them in npm releases
- remove fix on rollup.external
- remove prepublishOnly and postpublish scripts
- set bundle packages to private
- add release-dump-version that update package.json version before
releasing to npm
- add release-verify-build that check no externalized twenty package
exists in `dist` before releasing to npm
- works with new release github action here ->
https://github.com/twentyhq/twenty-infra/pull/397
2026-02-13 15:43:32 +00:00
martmull and GitHub
8ffc554c9a
Fix twenty sdk build ( #17902 )
...
as title
2026-02-12 17:04:07 +00:00
martmull and GitHub
a4ed043d43
Logic function refactorization ( #17861 )
...
As title
2026-02-12 11:40:49 +01:00
Charles Bochet and GitHub
987ed845ac
Release Twenty SDK 0.5.0 ( #17818 )
...
As per title + create-twenty-app
2026-02-09 19:16:24 +01:00
martmull and GitHub
9162685b2e
Reorganize logic function files ( #17766 )
...
reorganize according to
<img width="1243" height="725" alt="Pasted Graphic"
src="https://github.com/user-attachments/assets/ba65dd10-8eec-4b13-ad49-9726edd3b79c "
/>
Not working yet
2026-02-09 12:36:39 +01:00
martmull and GitHub
23df33172a
Fix twenty sdk build 5 ( #17744 )
...
use prepublish instead of prepack
2026-02-05 15:54:06 +01:00
martmull and GitHub
de5764ede0
Fix twenty sdk build ( #17729 )
...
- remove worksapce:* dependencies from published packages
- Use common tsconfig.ts in create-twenty-app
- Increase version to 0.4.4
2026-02-05 14:25:49 +01:00
martmull and GitHub
bef643970b
Fix twenty sdk build 3 ( #17715 )
...
final final fix
2026-02-04 15:21:17 +00:00
martmull and GitHub
6407474461
Fix build without nx build ( #17700 )
...
as title
2026-02-04 11:14:28 +00:00
martmull and GitHub
e10e0b337e
Fix twenty sdk build ( #17696 )
...
- add twenty-ui in dist/vendor folder
- fix ts issue due to react version mismatch
2026-02-04 08:46:13 +00:00
martmull and GitHub
b9586769b9
2081 extensibility publish cli tools and update doc with recent changes ( #17495 )
...
- increase to 0.4.0
- update READMEs and doc
2026-01-27 20:49:33 +00:00
martmull and GitHub
936ec06fe8
Improve application ast 3 ( #17061 )
...
- fix should generate
- fix errors not displayed properly
2026-01-10 14:52:28 +00:00
martmull and GitHub
3509838a3a
Improve application ast 2 ( #17045 )
...
fix some issues with cli tools
2026-01-09 14:54:13 +00:00
martmull and GitHub
40eef5c464
Improve application ast ( #17016 )
...
# Summary
- Introduces a new, flexible folder structure for Twenty SDK
applications using file suffix-based entity detection
- Adds defineApp, defineFunction, defineObject, and defineRole helper
functions with built-in validation
- Refactors manifest loading to use jiti runtime evaluation for
TypeScript config files
- Separates validation logic into dedicated module with comprehensive
error reporting
# New Application Folder Structure
Applications now use a convention-over-configuration approach where
entities are detected by their file suffix, allowing flexible
organization within the src/app/ folder.
# Required Structure
my-app/
├── package.json
├── yarn.lock
└── src/
├── app/
│ └── application.config.ts # Required - main application configuration
└── utils/ # Optional - handler implementations & utilities
# Entity Detection by File Suffix
- *.object.ts - Custom object definitions
- *.function.ts - Serverless function definitions
- *.role.ts - Role definitions
# Supported Folder Organizations
## Traditional (by type):
src/app/
├── application.config.ts
├── objects/
│ └── postCard.object.ts
├── functions/
│ └── createPostCard.function.ts
└── roles/
└── admin.role.ts
## Feature-based:
src/app/
├── application.config.ts
└── post-card/
├── postCard.object.ts
├── createPostCard.function.ts
└── postCardAdmin.role.ts
## Flat:
src/app/
├── application.config.ts
├── postCard.object.ts
├── createPostCard.function.ts
└── admin.role.ts
# New Helper Functions
## defineApp(config)
import { defineApp } from 'twenty-sdk';
export default defineApp({
universalIdentifier: '4ec0391d-...',
displayName: 'My App',
description: 'App description',
icon: 'IconWorld',
});
## defineObject(config)
import { defineObject, FieldType } from 'twenty-sdk';
export default defineObject({
universalIdentifier: '54b589ca-...',
nameSingular: 'postCard',
namePlural: 'postCards',
labelSingular: 'Post Card',
labelPlural: 'Post Cards',
icon: 'IconMail',
fields: [
{
universalIdentifier: '58a0a314-...',
type: FieldType.TEXT,
name: 'content',
label: 'Content',
},
],
});
## defineFunction(config)
import { defineFunction } from 'twenty-sdk';
import { myHandler } from '../utils/my-handler';
export default defineFunction({
universalIdentifier: 'e56d363b-...',
name: 'My Function',
handler: myHandler,
triggers: [
{
universalIdentifier: 'c9f84c8d-...',
type: 'route',
path: '/my-route',
httpMethod: 'POST',
},
],
});
## defineRole(config)
import { defineRole, PermissionFlag } from 'twenty-sdk';
export default defineRole({
universalIdentifier: 'b648f87b-...',
label: 'App User',
objectPermissions: [
{
objectNameSingular: 'postCard',
canReadObjectRecords: true,
},
],
permissionFlags: [PermissionFlag.UPLOAD_FILE],
});
# Test plan
- Verify npx twenty app sync works with new folder structure
- Verify npx twenty app dev works with new folder structure
- Verify validation errors display correctly for invalid configs
- Verify all three folder organization styles work (traditional,
feature-based, flat)
- Run existing E2E tests to ensure backward compatibility
2026-01-09 13:06:30 +00:00
martmull and GitHub
bb73cbc380
1774 extensibility v1 create an exhaustive documentation readme or dedicated section in twenty contributing doc ( #16751 )
...
As title
<img width="1108" height="894" alt="image"
src="https://github.com/user-attachments/assets/e2dc7e12-72e3-4ca3-ac7b-a94de547f82a "
/>
2025-12-22 15:19:11 +01:00
martmull and GitHub
57dc1ae6e8
Fix create twenty app template ( #16708 )
...
Adds a default function role to scaffolded application
2025-12-19 16:40:12 +01:00
martmull and GitHub
1cbbd04761
Function trigger updates 2 ( #16608 )
...
- Improves route trigger job performances
- expose function params types
## Before
<img width="938" height="271" alt="image"
src="https://github.com/user-attachments/assets/5752ba64-f31d-44ed-974d-536e63458f2c "
/>
## After
<img width="1000" height="559" alt="image"
src="https://github.com/user-attachments/assets/b1f4927a-5f43-49f0-a606-244c72356772 "
/>
2025-12-16 18:20:26 +01:00
martmull and GitHub
9b00084fb0
Vendor twenty-shared into twenty-sdk ( #16592 )
...
twenty-shared is not bundled properly when deploying twenty-sdk to npm.
This aims to fix that issue
2025-12-16 16:48:38 +01:00
martmull and GitHub
7f1e69740a
1895 extensibility v1 application tokens ( #16365 )
...
First PR to implement application tokens
- add new application role in twenty-server
- move duplicated constants and types to twenty-shared
- will add role configuration utils into twenty-sdk in another PR
2025-12-08 10:42:46 +01:00
martmull and GitHub
5e8fbc7c5c
1825 extensibility v1 see serverless logs using subscriptions in twnty cli or settings serverkess section ( #16321 )
...
- Adds a log section to settings serverless functions test tab
<img width="1303" height="827" alt="image"
src="https://github.com/user-attachments/assets/2ce70558-91bc-4cfc-aced-42ac9e0226bf "
/>
- Adds a new subscription endpoint to graphql api
`serverlessFunctionLogs` that that emit function logs
- Adds a new command `twenty app logs` to `twenty-sdk` to watch logs in
terminal
<img width="1109" height="182" alt="image"
src="https://github.com/user-attachments/assets/2e874060-e99d-4978-ab9c-c91e52cb7478 "
/>
<img width="1061" height="176" alt="image"
src="https://github.com/user-attachments/assets/1f533e32-7435-4d7b-89c6-d1154816a8ab "
/>
- add new version for create-twenty-app and twenty-sdk `0.1.3`
2025-12-04 16:40:58 +01:00
martmull and GitHub
ea79425fc0
Fix twenty sdk and create twenty app ( #16282 )
...
As title
2025-12-03 15:12:34 +01:00
Paul Rastoin and GitHub
a7c5969ede
[create-twenty-app] Use vite config lib (#16273 )
2025-12-03 10:47:37 +00:00
martmull and GitHub
e498367e2f
Merge twenty-cli into twenty-sdk ( #16150 )
...
- Moves twenty-cli content into twenty-sdk
- add a new twenty-sdk:0.1.0 version
- this new twenty-sdk exports a cli command called 'twenty' (like
twenty-cli before)
- deprecates twenty-cli
- simplify app init command base-project
- use `twenty-sdk:0.1.0` in base project
- move the "twenty-sdk/application" barrel to "twenty-sdk"
- add `create-twenty-app` package
<img width="1512" height="919" alt="image"
src="https://github.com/user-attachments/assets/007bef45-4e71-419a-9213-cebed376adbf "
/>
<img width="1506" height="929" alt="image"
src="https://github.com/user-attachments/assets/3de2fec6-1624-4923-ae13-f4e1cf165eb5 "
/>
2025-12-01 11:44:35 +01:00