diff --git a/packages/twenty-docs/l/de/developers/extend/apps/config/application.mdx b/packages/twenty-docs/l/de/developers/extend/apps/config/application.mdx index 5283b42de7..028c930112 100644 --- a/packages/twenty-docs/l/de/developers/extend/apps/config/application.mdx +++ b/packages/twenty-docs/l/de/developers/extend/apps/config/application.mdx @@ -32,7 +32,7 @@ export default defineApplication({ Notizen: * `universalIdentifier`-Felder sind deterministische IDs, die Ihnen gehören. Erzeugen Sie sie einmal und halten Sie sie über Synchronisierungen hinweg stabil. -* `applicationVariables` werden zu Umgebungsvariablen für Ihre Funktionen und Frontend-Komponenten (z. B. ist `DEFAULT_RECIPIENT_NAME` als `process.env.DEFAULT_RECIPIENT_NAME` verfügbar). +* `applicationVariables` werden zu Umgebungsvariablen für Ihre Funktionen und Front-Komponenten. In Logikfunktionen (serverseitig) sind sie als `process.env.VARIABLE_NAME` verfügbar. In Front-Komponenten verwenden Sie `getApplicationVariable('VARIABLE_NAME')` aus `twenty-sdk/front-component`. Variablen, die mit `isSecret: true` gekennzeichnet sind, werden nur in Logikfunktionen injiziert. Front-Komponenten erhalten nur nicht-geheime Variablen. * Die Standardrolle wird automatisch aus der Rollen-Datei erkannt, die mit [`defineApplicationRole()`](/l/de/developers/extend/apps/config/roles) markiert ist – Sie müssen sie nicht aus `defineApplication()` referenzieren. * Pre- und Post-Installationsfunktionen werden während des Manifest-Builds automatisch erkannt — Sie müssen sie in `defineApplication()` nicht referenzieren. * Die explizite Übergabe von `defaultRoleUniversalIdentifier` wird für die Abwärtskompatibilität weiterhin unterstützt, ist jedoch zugunsten von `defineApplicationRole()` veraltet. diff --git a/packages/twenty-docs/l/de/developers/extend/apps/layout/front-components.mdx b/packages/twenty-docs/l/de/developers/extend/apps/layout/front-components.mdx index 0628c10b66..a2a950eb3e 100644 --- a/packages/twenty-docs/l/de/developers/extend/apps/layout/front-components.mdx +++ b/packages/twenty-docs/l/de/developers/extend/apps/layout/front-components.mdx @@ -239,6 +239,38 @@ Verfügbare Hooks: | `useFrontComponentId()` | `string` | Die ID dieser Komponenteninstanz | | `useFrontComponentExecutionContext(selector)` | variiert | Zugriff auf den vollständigen Ausführungskontext mit einer Selektorfunktion | +## Anwendungsvariablen + +In [`defineApplication()`](/l/de/developers/extend/apps/config/application) mit `isSecret: false` definierte Anwendungsvariablen sind in Front-Komponenten über das Hilfsprogramm `getApplicationVariable` verfügbar: + +```tsx src/front-components/greeting.tsx +import { defineFrontComponent } from 'twenty-sdk/define'; +import { getApplicationVariable } from 'twenty-sdk/front-component'; + +const Greeting = () => { + const recipientName = getApplicationVariable('DEFAULT_RECIPIENT_NAME') ?? 'World'; + + return

Hello, {recipientName}!

; +}; + +export default defineFrontComponent({ + universalIdentifier: '...', + name: 'greeting', + component: Greeting, +}); +``` + + +Geheime Variablen (`isSecret: true`) werden **nicht** in Front-Komponenten offengelegt. Sie sind nur in [Logikfunktionen](/l/de/developers/extend/apps/logic/logic-functions) verfügbar, die serverseitig ausgeführt werden. Dadurch wird verhindert, dass sensible Werte wie API-Schlüssel an den Browser gesendet werden. + + +Die folgenden Systemvariablen sind immer über `process.env` verfügbar: + +| Variable | Beschreibung | +| ------------------------- | ------------------------------------------------------------- | +| `TWENTY_API_URL` | Basis-URL der Twenty API | +| `TWENTY_APP_ACCESS_TOKEN` | Kurzlebiges Token mit dem Geltungsbereich der Rolle Ihrer App | + ## Host-Kommunikations-API Front-Komponenten können Navigation, Modals und Benachrichtigungen mittels Funktionen aus `twenty-sdk` auslösen: diff --git a/packages/twenty-docs/l/pt/developers/extend/apps/config/application.mdx b/packages/twenty-docs/l/pt/developers/extend/apps/config/application.mdx index 9b29bdb52a..30bdd07735 100644 --- a/packages/twenty-docs/l/pt/developers/extend/apps/config/application.mdx +++ b/packages/twenty-docs/l/pt/developers/extend/apps/config/application.mdx @@ -32,7 +32,7 @@ export default defineApplication({ Notas: * Os campos `universalIdentifier` são IDs determinísticos que você controla. Gere-os uma vez e mantenha-os estáveis entre sincronizações. -* `applicationVariables` tornam-se variáveis de ambiente para suas funções e componentes de front-end (por exemplo, `DEFAULT_RECIPIENT_NAME` fica disponível como `process.env.DEFAULT_RECIPIENT_NAME`). +* `applicationVariables` tornam-se variáveis de ambiente para suas funções e componentes de front-end. Em funções lógicas (no lado do servidor), elas ficam disponíveis como `process.env.VARIABLE_NAME`. Em componentes de front-end, use `getApplicationVariable('VARIABLE_NAME')` de `twenty-sdk/front-component`. Variáveis marcadas com `isSecret: true` são injetadas apenas em funções lógicas. Componentes de front-end recebem apenas variáveis não secretas. * O papel padrão é detectado automaticamente a partir do arquivo de definição de papel marcado com [`defineApplicationRole()`](/l/pt/developers/extend/apps/config/roles) — você não precisa referenciá-lo em `defineApplication()`. * As funções de pré-instalação e pós-instalação são detectadas automaticamente durante a construção do manifesto — você não precisa referenciá-las em `defineApplication()`. * Passar `defaultRoleUniversalIdentifier` explicitamente ainda é compatível para retrocompatibilidade, mas foi preterido em favor de `defineApplicationRole()`. diff --git a/packages/twenty-docs/l/pt/developers/extend/apps/layout/front-components.mdx b/packages/twenty-docs/l/pt/developers/extend/apps/layout/front-components.mdx index ffa933c791..ec816fff85 100644 --- a/packages/twenty-docs/l/pt/developers/extend/apps/layout/front-components.mdx +++ b/packages/twenty-docs/l/pt/developers/extend/apps/layout/front-components.mdx @@ -239,6 +239,38 @@ Hooks disponíveis: | `useFrontComponentId()` | `string` | O ID desta instância do componente | | `useFrontComponentExecutionContext(selector)` | varia | Acesse o contexto de execução completo com uma função seletora | +## Variáveis de aplicação + +Variáveis de aplicação definidas em [`defineApplication()`](/l/pt/developers/extend/apps/config/application) com `isSecret: false` estão disponíveis nos componentes de front por meio do utilitário `getApplicationVariable`: + +```tsx src/front-components/greeting.tsx +import { defineFrontComponent } from 'twenty-sdk/define'; +import { getApplicationVariable } from 'twenty-sdk/front-component'; + +const Greeting = () => { + const recipientName = getApplicationVariable('DEFAULT_RECIPIENT_NAME') ?? 'World'; + + return

Hello, {recipientName}!

; +}; + +export default defineFrontComponent({ + universalIdentifier: '...', + name: 'greeting', + component: Greeting, +}); +``` + + +Variáveis secretas (`isSecret: true`) **não** são expostas aos componentes de front. Elas estão disponíveis apenas em [funções de lógica](/l/pt/developers/extend/apps/logic/logic-functions), que são executadas no lado do servidor. Isso impede que valores sigilosos, como chaves de API, sejam enviados para o navegador. + + +As seguintes variáveis de sistema estão sempre disponíveis via `process.env`: + +| Variável | Descrição | +| ------------------------- | ------------------------------------------------------------- | +| `TWENTY_API_URL` | URL base da API da Twenty | +| `TWENTY_APP_ACCESS_TOKEN` | Token de curta duração limitado ao escopo do papel do seu app | + ## API de comunicação do host Componentes de front-end podem acionar navegação, modais e notificações usando funções de `twenty-sdk`: diff --git a/packages/twenty-docs/l/ro/developers/extend/apps/config/application.mdx b/packages/twenty-docs/l/ro/developers/extend/apps/config/application.mdx index d66699ee46..f5a0316a62 100644 --- a/packages/twenty-docs/l/ro/developers/extend/apps/config/application.mdx +++ b/packages/twenty-docs/l/ro/developers/extend/apps/config/application.mdx @@ -32,7 +32,7 @@ export default defineApplication({ Notițe: * Câmpurile `universalIdentifier` sunt ID-uri deterministe pe care le dețineți. Generați-le o singură dată și mențineți-le stabile între sincronizări. -* `applicationVariables` devin variabile de mediu pentru funcțiile și componentele front-end (de exemplu, `DEFAULT_RECIPIENT_NAME` este disponibil ca `process.env.DEFAULT_RECIPIENT_NAME`). +* `applicationVariables` devin variabile de mediu pentru funcțiile și componentele front-end. În funcțiile de logică (server-side), acestea sunt disponibile ca `process.env.VARIABLE_NAME`. În componentele front-end, folosește `getApplicationVariable('VARIABLE_NAME')` din `twenty-sdk/front-component`. Variabilele marcate cu `isSecret: true` sunt injectate doar în funcțiile de logică. Componentele front-end primesc doar variabile non-secrete. * Rolul implicit este detectat automat din fișierul de rol marcat cu [`defineApplicationRole()`](/l/ro/developers/extend/apps/config/roles) — nu este necesar să faci referire la el în `defineApplication()`. * Funcțiile de pre-instalare și post-instalare sunt detectate automat în timpul construirii manifestului — nu trebuie să le referiți în `defineApplication()`. * Transmiterea explicită a `defaultRoleUniversalIdentifier` este în continuare acceptată pentru compatibilitate retroactivă, dar este considerată învechită în favoarea `defineApplicationRole()`. diff --git a/packages/twenty-docs/l/ro/developers/extend/apps/layout/front-components.mdx b/packages/twenty-docs/l/ro/developers/extend/apps/layout/front-components.mdx index 4b1be3977a..69d25df57c 100644 --- a/packages/twenty-docs/l/ro/developers/extend/apps/layout/front-components.mdx +++ b/packages/twenty-docs/l/ro/developers/extend/apps/layout/front-components.mdx @@ -239,6 +239,38 @@ Hook-uri disponibile: | `useFrontComponentId()` | `string` | ID-ul acestei instanțe de componentă | | `useFrontComponentExecutionContext(selector)` | variază | Accesați întregul context de execuție cu o funcție selector | +## Variabile de aplicație + +Variabilele de aplicație definite în [`defineApplication()`](/l/ro/developers/extend/apps/config/application) cu `isSecret: false` sunt disponibile în componentele de interfață prin utilitarul `getApplicationVariable`: + +```tsx src/front-components/greeting.tsx +import { defineFrontComponent } from 'twenty-sdk/define'; +import { getApplicationVariable } from 'twenty-sdk/front-component'; + +const Greeting = () => { + const recipientName = getApplicationVariable('DEFAULT_RECIPIENT_NAME') ?? 'World'; + + return

Hello, {recipientName}!

; +}; + +export default defineFrontComponent({ + universalIdentifier: '...', + name: 'greeting', + component: Greeting, +}); +``` + + +Variabilele secrete (`isSecret: true`) **nu** sunt expuse componentelor de interfață. Acestea sunt disponibile doar în [funcțiile logice](/l/ro/developers/extend/apps/logic/logic-functions), care rulează pe server. Acest lucru împiedică trimiterea către browser a valorilor sensibile, cum ar fi cheile API. + + +Următoarele variabile de sistem sunt întotdeauna disponibile prin `process.env`: + +| Variabilă | Descriere | +| ------------------------- | -------------------------------------------------------- | +| `TWENTY_API_URL` | URL de bază al API-ului Twenty | +| `TWENTY_APP_ACCESS_TOKEN` | Token cu durată scurtă, limitat la rolul aplicației dvs. | + ## API-ul de comunicare cu gazda Componentele front-end pot declanșa navigare, ferestre modale și notificări folosind funcții din `twenty-sdk`: diff --git a/packages/twenty-docs/l/ru/developers/extend/apps/config/application.mdx b/packages/twenty-docs/l/ru/developers/extend/apps/config/application.mdx index de9ebb45bf..6c79e0136e 100644 --- a/packages/twenty-docs/l/ru/developers/extend/apps/config/application.mdx +++ b/packages/twenty-docs/l/ru/developers/extend/apps/config/application.mdx @@ -32,7 +32,7 @@ export default defineApplication({ Заметки: * Поля `universalIdentifier` — это детерминированные идентификаторы, которые принадлежат вам. Сгенерируйте их один раз и сохраняйте неизменными между синхронизациями. -* `applicationVariables` становятся переменными окружения для ваших функций и фронтенд-компонентов (например, `DEFAULT_RECIPIENT_NAME` доступна как `process.env.DEFAULT_RECIPIENT_NAME`). +* `applicationVariables` становятся переменными окружения для ваших функций и фронтенд-компонентов. В логических функциях (на стороне сервера) они доступны как `process.env.VARIABLE_NAME`. Во фронтенд-компонентах используйте `getApplicationVariable('VARIABLE_NAME')` из `twenty-sdk/front-component`. Переменные, помеченные как `isSecret: true`, внедряются только в логические функции. Фронтенд-компоненты получают только несекретные переменные. * Роль по умолчанию автоматически определяется из файла роли, помеченного с помощью [`defineApplicationRole()`](/l/ru/developers/extend/apps/config/roles) — вам не нужно ссылаться на неё из `defineApplication()`. * Предустановочные и постустановочные функции обнаруживаются автоматически во время сборки манифеста — вам не нужно указывать их в `defineApplication()`. * Явная передача `defaultRoleUniversalIdentifier` по-прежнему поддерживается для обратной совместимости, но считается устаревшей и вместо неё рекомендуется использовать `defineApplicationRole()`. diff --git a/packages/twenty-docs/l/ru/developers/extend/apps/layout/front-components.mdx b/packages/twenty-docs/l/ru/developers/extend/apps/layout/front-components.mdx index cd257aecfb..361baa89b0 100644 --- a/packages/twenty-docs/l/ru/developers/extend/apps/layout/front-components.mdx +++ b/packages/twenty-docs/l/ru/developers/extend/apps/layout/front-components.mdx @@ -239,6 +239,38 @@ export default defineFrontComponent({ | `useFrontComponentId()` | `string` | ID этого экземпляра компонента | | `useFrontComponentExecutionContext(selector)` | различается | Доступ к полному контексту выполнения с помощью функции-селектора | +## Переменные приложения + +Переменные приложения, определенные в [`defineApplication()`](/l/ru/developers/extend/apps/config/application) с `isSecret: false`, доступны внутри фронтенд-компонентов через утилиту `getApplicationVariable`: + +```tsx src/front-components/greeting.tsx +import { defineFrontComponent } from 'twenty-sdk/define'; +import { getApplicationVariable } from 'twenty-sdk/front-component'; + +const Greeting = () => { + const recipientName = getApplicationVariable('DEFAULT_RECIPIENT_NAME') ?? 'World'; + + return

Hello, {recipientName}!

; +}; + +export default defineFrontComponent({ + universalIdentifier: '...', + name: 'greeting', + component: Greeting, +}); +``` + + +Секретные переменные (`isSecret: true`) **не** доступны фронтенд-компонентам. Они доступны только в [логических функциях](/l/ru/developers/extend/apps/logic/logic-functions), которые выполняются на стороне сервера. Это предотвращает отправку в браузер конфиденциальных значений, таких как ключи API. + + +Следующие системные переменные всегда доступны через `process.env`: + +| Переменная | Описание | +| ------------------------- | ----------------------------------------------------------------------------- | +| `TWENTY_API_URL` | Базовый URL API Twenty | +| `TWENTY_APP_ACCESS_TOKEN` | Краткоживущий токен с областью действия, ограниченной ролью вашего приложения | + ## API взаимодействия с хостом Компоненты фронтенда могут вызывать навигацию, модальные окна и уведомления с помощью функций из `twenty-sdk`: diff --git a/packages/twenty-docs/l/tr/developers/extend/apps/config/application.mdx b/packages/twenty-docs/l/tr/developers/extend/apps/config/application.mdx index 357e088221..bb25fddcd3 100644 --- a/packages/twenty-docs/l/tr/developers/extend/apps/config/application.mdx +++ b/packages/twenty-docs/l/tr/developers/extend/apps/config/application.mdx @@ -32,7 +32,7 @@ export default defineApplication({ Notlar: * `universalIdentifier` alanları, size ait deterministik kimliklerdir. Bunları bir kez oluşturun ve senkronizasyonlar boyunca kararlı tutun. -* `applicationVariables`, fonksiyonlarınız ve ön uç bileşenleriniz için ortam değişkenlerine dönüşür (örn. `DEFAULT_RECIPIENT_NAME`, `process.env.DEFAULT_RECIPIENT_NAME` olarak kullanılabilir). +* `applicationVariables`, fonksiyonlarınız ve ön bileşenleriniz için ortam değişkenlerine dönüşür. Mantık fonksiyonlarında (sunucu tarafında), `process.env.VARIABLE_NAME` olarak kullanılabilirler. Ön bileşenlerde, `twenty-sdk/front-component` içindeki `getApplicationVariable('VARIABLE_NAME')` fonksiyonunu kullanın. `isSecret: true` ile işaretlenen değişkenler yalnızca mantık fonksiyonlarına enjekte edilir. Ön bileşenler yalnızca gizli olmayan değişkenleri alır. * Varsayılan rol, [`defineApplicationRole()`](/l/tr/developers/extend/apps/config/roles) ile işaretlenmiş rol dosyasından otomatik olarak algılanır — onu `defineApplication()` içinden belirtmenize gerek yoktur. * Kurulum öncesi ve kurulum sonrası fonksiyonlar manifest derlemesi sırasında otomatik olarak algılanır — bunlara `defineApplication()` içinde referans vermeniz gerekmez. * Geriye dönük uyumluluk için `defaultRoleUniversalIdentifier` değerini açıkça geçmek hâlâ desteklenmektedir, ancak `defineApplicationRole()` lehine kullanımdan kaldırılmıştır. diff --git a/packages/twenty-docs/l/tr/developers/extend/apps/layout/front-components.mdx b/packages/twenty-docs/l/tr/developers/extend/apps/layout/front-components.mdx index 275efb27b8..eb7f36dd1f 100644 --- a/packages/twenty-docs/l/tr/developers/extend/apps/layout/front-components.mdx +++ b/packages/twenty-docs/l/tr/developers/extend/apps/layout/front-components.mdx @@ -239,6 +239,38 @@ Kullanılabilir hook'lar: | `useFrontComponentId()` | `string` | Bu bileşen örneğinin ID'si | | `useFrontComponentExecutionContext(selector)` | değişir | Bir seçici işlevle tam yürütme bağlamına erişin | +## Uygulama değişkenleri + +`isSecret: false` ile [`defineApplication()`](/l/tr/developers/extend/apps/config/application) içinde tanımlanan uygulama değişkenleri, `getApplicationVariable` yardımcı işlevi aracılığıyla ön uç bileşenleri içinde kullanılabilir: + +```tsx src/front-components/greeting.tsx +import { defineFrontComponent } from 'twenty-sdk/define'; +import { getApplicationVariable } from 'twenty-sdk/front-component'; + +const Greeting = () => { + const recipientName = getApplicationVariable('DEFAULT_RECIPIENT_NAME') ?? 'World'; + + return

Hello, {recipientName}!

; +}; + +export default defineFrontComponent({ + universalIdentifier: '...', + name: 'greeting', + component: Greeting, +}); +``` + + +Gizli değişkenler (`isSecret: true`) ön uç bileşenlere açıklanmaz. Bunlar yalnızca sunucu tarafında çalışan [mantık işlevlerinde](/l/tr/developers/extend/apps/logic/logic-functions) kullanılabilir. Bu, API anahtarları gibi hassas değerlerin tarayıcıya gönderilmesini engeller. + + +Aşağıdaki sistem değişkenleri her zaman `process.env` aracılığıyla kullanılabilir: + +| Değişken | Açıklama | +| ------------------------- | --------------------------------------------------------- | +| `TWENTY_API_URL` | Twenty API'nin temel URL'si | +| `TWENTY_APP_ACCESS_TOKEN` | Uygulamanızın rolüyle sınırlanan kısa ömürlü bir belirteç | + ## Host iletişim API'si Ön uç bileşenleri, `twenty-sdk`'deki işlevleri kullanarak gezinmeyi, modalları ve bildirimleri tetikleyebilir: diff --git a/packages/twenty-docs/l/zh/developers/extend/apps/config/application.mdx b/packages/twenty-docs/l/zh/developers/extend/apps/config/application.mdx index 871c507b45..ff274d972d 100644 --- a/packages/twenty-docs/l/zh/developers/extend/apps/config/application.mdx +++ b/packages/twenty-docs/l/zh/developers/extend/apps/config/application.mdx @@ -32,7 +32,7 @@ export default defineApplication({ 备注: * `universalIdentifier` 字段是你拥有的确定性 ID。 只需生成一次,并在多次同步过程中保持稳定不变。 -* `applicationVariables` 会变成你的函数和前端组件可用的环境变量(例如,`DEFAULT_RECIPIENT_NAME` 可作为 `process.env.DEFAULT_RECIPIENT_NAME` 使用)。 +* `applicationVariables` 会变成你的函数和前端组件可用的环境变量。 在逻辑函数(服务端)中,可以通过 `process.env.VARIABLE_NAME` 使用它们。 在前端组件中,使用 `twenty-sdk/front-component` 中的 `getApplicationVariable('VARIABLE_NAME')`。 标记为 `isSecret: true` 的变量只会注入到逻辑函数中。 前端组件只会接收非机密变量。 * 默认角色会根据使用 [`defineApplicationRole()`](/l/zh/developers/extend/apps/config/roles) 标记的角色文件自动检测——你不需要在 `defineApplication()` 中引用它。 * 在构建清单时会自动检测安装前/安装后函数——无需在 `defineApplication()` 中引用它们。 * 显式传递 `defaultRoleUniversalIdentifier` 仍然受支持以保持向后兼容性,但已弃用,推荐改用 `defineApplicationRole()`。 diff --git a/packages/twenty-docs/l/zh/developers/extend/apps/layout/front-components.mdx b/packages/twenty-docs/l/zh/developers/extend/apps/layout/front-components.mdx index f493c99dde..d62b8c933f 100644 --- a/packages/twenty-docs/l/zh/developers/extend/apps/layout/front-components.mdx +++ b/packages/twenty-docs/l/zh/developers/extend/apps/layout/front-components.mdx @@ -239,6 +239,38 @@ export default defineFrontComponent({ | `useFrontComponentId()` | `string` | 此组件实例的 ID | | `useFrontComponentExecutionContext(selector)` | 因情况而异 | 使用选择器函数访问完整的执行上下文 | +## 应用程序变量 + +在 [`defineApplication()`](/l/zh/developers/extend/apps/config/application) 中定义、且 `isSecret: false` 的应用程序变量,可以通过 `getApplicationVariable` 实用工具在前端组件中使用: + +```tsx src/front-components/greeting.tsx +import { defineFrontComponent } from 'twenty-sdk/define'; +import { getApplicationVariable } from 'twenty-sdk/front-component'; + +const Greeting = () => { + const recipientName = getApplicationVariable('DEFAULT_RECIPIENT_NAME') ?? 'World'; + + return

Hello, {recipientName}!

; +}; + +export default defineFrontComponent({ + universalIdentifier: '...', + name: 'greeting', + component: Greeting, +}); +``` + + +机密变量(`isSecret: true`)**不会**暴露给前端组件。 它们仅在服务器端运行的 [逻辑函数](/l/zh/developers/extend/apps/logic/logic-functions) 中可用。 这可以防止诸如 API 密钥之类的敏感值被发送到浏览器。 + + +以下系统变量始终可以通过 `process.env` 获取: + +| 变量 | 描述 | +| ------------------------- | ------------------ | +| `TWENTY_API_URL` | Twenty API 的基础 URL | +| `TWENTY_APP_ACCESS_TOKEN` | 限定在你的应用角色范围内的短期令牌 | + ## 宿主通信 API 前端组件可以使用来自 `twenty-sdk` 的函数触发导航、模态框和通知: